From 2804585b14a62cc1fdec876b65267a4db8bc8995 Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期二, 14 一月 2025 10:55:47 +0800
Subject: [PATCH] #
---
src/main/webapp/static/js/basShuttleErrLog/basShuttleErrLog.js | 287
src/main/resources/mapper/WrkMastLogMapper.xml | 2
src/main/java/com/zy/asrs/controller/ApiLogController.java | 129
src/main/java/com/zy/asrs/controller/LocMastController.java | 122
src/main/webapp/static/js/operateLog/operateLog.js | 396 +
src/main/java/com/zy/asrs/controller/BasLiftErrController.java | 127
src/main/webapp/static/js/basLocSts/basLocSts.js | 440 +
src/main/webapp/views/admin/wrkMast/wrkMast.html | 12
src/main/webapp/views/admin/basWrkIotype/basWrkIotype.html | 54
src/main/webapp/views/admin/wrkMastLog/wrkMastLog.html | 98
src/main/webapp/views/admin/role/role.html | 60
src/main/java/com/zy/asrs/mapper/BasLocStsMapper.java | 12
src/main/webapp/views/admin/tpl/tpl-note.html | 206
src/main/webapp/static/images/zy-logo-dark.png | 0
src/main/webapp/views/admin/basShuttleErr/basShuttleErr.html | 134
src/main/webapp/views/shuttle.html | 2
src/main/webapp/views/admin/apiLog/apiLog.html | 187
src/main/webapp/views/admin/basPlcerror/basPlcerror.html | 56
src/main/java/com/zy/asrs/controller/BasLocStsController.java | 147
src/main/java/com/zy/system/controller/UserController.java | 12
src/main/webapp/views/shuttle_zs.html | 2
src/main/webapp/static/layui/lay/modules/notice/notice.css | 1929 ++++
src/main/webapp/views/admin/wrkLastno/wrkLastno.html | 58
src/main/webapp/static/js/basLiftOpt/basLiftOpt.js | 264
src/main/webapp/static/layui/lay/modules/tableMerge.js | 75
src/main/java/com/zy/asrs/entity/WrkMastLog.java | 24
src/main/webapp/views/admin/tpl/theme/img/theme-cyan.png | 0
src/main/webapp/views/admin/user/user_detail.html | 87
src/main/webapp/views/admin/basLiftOpt/basLiftOpt.html | 134
src/main/webapp/static/js/basLiftErrLog/basLiftErrLog.js | 287
src/main/webapp/static/layui/lay/modules/notice/5.wav | 0
src/main/java/com/zy/asrs/controller/BasWrkIotypeController.java | 147
src/main/webapp/views/admin/basWrkStatus/basWrkStatus.html | 54
src/main/java/com/zy/asrs/service/impl/ApiLogServiceImpl.java | 51
src/main/webapp/views/admin/tpl/theme/img/theme-my.png | 0
src/main/java/com/zy/asrs/service/BasWrkIotypeService.java | 8
src/main/webapp/static/css/cool.css | 48
src/main/webapp/static/js/role/rolePower.js | 82
src/main/java/com/zy/asrs/service/BasWrkStatusService.java | 8
src/main/webapp/views/forklift.html | 2
src/main/webapp/views/admin/role/role_power_detail.html | 37
src/main/webapp/static/js/basShuttleErr/basShuttleErr.js | 267
src/main/webapp/views/admin/tpl/theme/img/ic_loading.gif | 0
src/main/webapp/views/admin/permission/permission.html | 66
src/main/java/com/zy/asrs/controller/WrkMastLogController.java | 143
src/main/webapp/views/admin/wrkMastLog/wrkDetlLog.html | 99
src/main/webapp/static/layui/lay/modules/notice/3.wav | 0
src/main/java/com/zy/asrs/service/BasPlcerrorService.java | 8
src/main/webapp/views/admin/tpl/theme/img/theme-admin.png | 0
src/main/webapp/static/js/basShuttleErrLog/basShuttleOpt.js | 275
src/main/webapp/static/js/permission/permission.js | 378
src/main/webapp/views/admin/basPlcerror/basPlcerror_detail.html | 96
src/main/webapp/views/admin/operateLog/operateLog.html | 70
src/main/webapp/static/layui/lay/modules/contextMenu.js | 228
src/main/java/com/zy/asrs/controller/BasShuttleController.java | 127
src/main/java/com/zy/asrs/controller/BasShuttleErrLogController.java | 128
src/main/java/com/zy/asrs/service/impl/BasWrkStatusServiceImpl.java | 12
src/main/webapp/views/admin/basLiftErrLog/basLiftErrLog.html | 240
src/main/webapp/static/layui/lay/modules/notice/1.wav | 0
src/main/webapp/views/admin/tpl/tpl-theme.html | 229
src/main/java/com/zy/asrs/controller/BasPlcerrorController.java | 133
src/main/webapp/static/layui/lay/modules/notice/notice.js | 1241 +++
src/main/webapp/views/admin/tpl/theme/img/theme-pink.png | 0
src/main/java/com/zy/asrs/controller/BasLiftOptController.java | 128
src/main/webapp/views/admin/tpl/alarm-detl.html | 52
src/main/java/com/zy/asrs/controller/BasLiftErrLogController.java | 128
src/main/webapp/static/layui/lay/modules/xmSelect.js | 8
src/main/java/com/zy/asrs/entity/ApiLog.java | 193
src/main/webapp/static/layui/lay/modules/admin.js | 1667 ++++
src/main/java/com/zy/asrs/controller/BasLiftController.java | 127
src/main/webapp/static/layui/lay/modules/tableX.js | 645 +
src/main/webapp/views/admin/tpl/theme/img/theme-blue.png | 0
src/main/java/com/zy/asrs/controller/ShuttleController.java | 1
src/main/webapp/static/js/userLogin/userLogin.js | 369
src/main/resources/mapper/ApiLogMapper.xml | 32
src/main/webapp/static/js/locMast/locMast.js | 590 +
src/main/webapp/static/js/basWrkStatus/basWrkStatus.js | 441 +
src/main/java/com/zy/asrs/entity/BasLocSts.java | 164
src/main/webapp/views/admin/config/config_detail.html | 83
src/main/webapp/views/admin/role/role_detail.html | 82
src/main/webapp/views/admin/wrkLastno/wrkLastno_detail.html | 78
src/main/webapp/static/css/loader.css | 59
src/main/webapp/views/admin/basWrkIotype/basWrkIotype_detail.html | 94
src/main/webapp/views/admin/index.html | 199
src/main/webapp/views/admin/tpl/theme/img/theme-colorful.png | 0
src/main/webapp/views/admin/locMast/locMast.html | 177
src/main/webapp/views/admin/resource/resource.html | 309
src/main/webapp/views/admin/tpl/theme/img/theme-white.png | 0
src/main/webapp/views/admin/basLocSts/basLocSts_detail.html | 88
src/main/webapp/views/admin/basWrkStatus/basWrkStatus_detail.html | 96
src/main/java/com/zy/asrs/mapper/ApiLogMapper.java | 14
src/main/webapp/static/css/originTable.css | 29
src/main/webapp/static/layui/lay/modules/index.js | 302
src/main/java/com/zy/asrs/entity/LocMast.java | 10
src/main/java/com/zy/asrs/controller/BasShuttleOptController.java | 53
src/main/webapp/static/layui/lay/modules/notice/6.wav | 0
src/main/webapp/views/admin/tpl/theme/img/theme-purple.png | 0
src/main/java/com/zy/asrs/service/impl/BasPlcerrorServiceImpl.java | 12
src/main/java/com/zy/asrs/service/impl/BasLocStsServiceImpl.java | 12
src/main/java/com/zy/asrs/entity/BasShuttleOpt.java | 9
src/main/webapp/views/admin/userLogin/userLogin.html | 61
src/main/webapp/views/admin/basLiftErr/basLiftErr.html | 134
src/main/webapp/views/lift.html | 2
src/main/webapp/views/admin/wrkMastLog/wrkMastLog_detail.html | 196
src/main/webapp/views/shuttle2.html | 2
src/main/webapp/static/js/basLift/basLift.js | 277
src/main/webapp/static/css/admin.css | 445 +
src/main/webapp/static/images/zy-logo.png | 0
src/main/java/com/zy/asrs/controller/WrkLastnoController.java | 133
src/main/webapp/views/admin/userLogin/userLogin_detail.html | 69
src/main/webapp/static/js/basLiftErr/basLiftErr.js | 260
src/main/java/com/zy/system/controller/ResourceController.java | 24
src/main/webapp/views/admin/basLift/basLift.html | 260
src/main/webapp/views/admin/basShuttleErrLog/basShuttleErrLog.html | 240
src/main/java/com/zy/asrs/controller/BasWrkStatusController.java | 147
src/main/java/com/zy/asrs/service/BasLocStsService.java | 8
src/main/webapp/static/layui/lay/modules/treeTable.js | 2
src/main/java/com/zy/asrs/service/impl/BasWrkIotypeServiceImpl.java | 12
src/main/webapp/static/js/resource/resource.js | 382
src/main/webapp/views/admin/user/user.html | 177
src/main/webapp/static/js/wrkMastLog/wrkMastLog.js | 532 +
src/main/webapp/views/admin/config/config.html | 55
src/main/webapp/static/js/basShuttle/basShuttle.js | 279
src/main/webapp/views/admin/locMast/locMast_detail.html | 88
src/main/webapp/views/index.html | 7
src/main/webapp/views/admin/operateLog/operateLog_detail.html | 87
src/main/java/com/zy/asrs/service/ApiLogService.java | 12
src/main/webapp/static/js/config/config.js | 345
src/main/webapp/static/js/user/user.js | 238
src/main/webapp/static/js/wrkLastno/wrkLastno.js | 475 +
src/main/webapp/static/layui/lay/modules/notice/4.wav | 0
src/main/webapp/views/admin/permission/permission_detail.html | 79
src/main/webapp/views/admin/basShuttle/basShuttle.html | 148
src/main/webapp/views/admin/basLocSts/basLocSts.html | 54
src/main/webapp/views/admin/tpl/theme/img/theme-green.png | 0
src/main/webapp/static/js/apiLog/apiLog.js | 268
src/main/webapp/views/admin/password.html | 146
src/main/webapp/views/pipeline.html | 2
src/main/java/com/zy/asrs/controller/BasShuttleErrController.java | 127
src/main/webapp/static/js/role/role.js | 410 +
src/main/resources/mapper/BasLocStsMapper.xml | 16
src/main/webapp/views/admin/basShuttleErrLog/basShuttleOpt.html | 57
src/main/webapp/views/admin/tpl/theme/img/theme-red.png | 0
src/main/webapp/views/admin/detail.html | 172
src/main/webapp/static/css/common.css | 254
/dev/null | 10
src/main/webapp/static/js/basWrkIotype/basWrkIotype.js | 443 +
src/main/webapp/views/admin/tpl/theme/img/icon_search.png | 0
src/main/webapp/views/admin/tpl/theme/img/icon_date.png | 0
src/main/webapp/static/js/basPlcerror/basPlcerror.js | 369
src/main/webapp/static/layui/lay/modules/notice/2.wav | 0
151 files changed, 23,183 insertions(+), 92 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/ApiLogController.java b/src/main/java/com/zy/asrs/controller/ApiLogController.java
new file mode 100644
index 0000000..36ed259
--- /dev/null
+++ b/src/main/java/com/zy/asrs/controller/ApiLogController.java
@@ -0,0 +1,129 @@
+package com.zy.asrs.controller;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.core.annotations.ManagerAuth;
+import com.core.common.BaseRes;
+import com.core.common.Cools;
+import com.core.common.DateUtils;
+import com.core.common.R;
+import com.zy.asrs.entity.ApiLog;
+import com.zy.asrs.service.ApiLogService;
+import com.zy.common.web.BaseController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@RestController
+public class ApiLogController extends BaseController {
+
+ @Autowired
+ private ApiLogService apiLogService;
+
+ @RequestMapping(value = "/apiLog/{id}/auth")
+ @ManagerAuth
+ public R get(@PathVariable("id") String id) {
+ return R.ok(apiLogService.selectById(String.valueOf(id)));
+ }
+
+ @RequestMapping(value = "/apiLog/list/auth")
+ @ManagerAuth
+ public R list(@RequestParam(defaultValue = "1")Integer curr,
+ @RequestParam(defaultValue = "10")Integer limit,
+ @RequestParam(required = false)String orderByField,
+ @RequestParam(required = false)String orderByType,
+ @RequestParam(required = false)String condition,
+ @RequestParam Map<String, Object> param){
+ EntityWrapper<ApiLog> wrapper = new EntityWrapper<>();
+ excludeTrash(param);
+ convert(param, wrapper);
+ allLike(ApiLog.class, param.keySet(), wrapper, condition);
+ if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} else {
+ wrapper.orderBy("create_time", false);
+ }
+ return R.ok(apiLogService.selectPage(new Page<>(curr, limit), wrapper));
+ }
+
+ private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){
+ for (Map.Entry<String, Object> entry : map.entrySet()){
+ String val = String.valueOf(entry.getValue());
+ if (val.contains(RANGE_TIME_LINK)){
+ String[] dates = val.split(RANGE_TIME_LINK);
+ wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
+ wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
+ } else {
+ wrapper.like(entry.getKey(), val);
+ }
+ }
+ }
+
+ @RequestMapping(value = "/apiLog/add/auth")
+ @ManagerAuth
+ public R add(ApiLog apiLog) {
+ apiLogService.insert(apiLog);
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/apiLog/update/auth")
+ @ManagerAuth
+ public R update(ApiLog apiLog){
+ if (Cools.isEmpty(apiLog) || null==apiLog.getId()){
+ return R.error();
+ }
+ apiLogService.updateById(apiLog);
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/apiLog/delete/auth")
+ @ManagerAuth
+ public R delete(@RequestParam(value="ids[]") Long[] ids){
+ for (Long id : ids){
+ apiLogService.deleteById(id);
+ }
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/apiLog/export/auth")
+ @ManagerAuth
+ public R export(@RequestBody JSONObject param){
+ EntityWrapper<ApiLog> wrapper = new EntityWrapper<>();
+ List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
+ Map<String, Object> map = excludeTrash(param.getJSONObject("apiLog"));
+ convert(map, wrapper);
+ List<ApiLog> list = apiLogService.selectList(wrapper);
+ return R.ok(exportSupport(list, fields));
+ }
+
+ @RequestMapping(value = "/apiLogQuery/auth")
+ @ManagerAuth
+ public R query(String condition) {
+ EntityWrapper<ApiLog> wrapper = new EntityWrapper<>();
+ wrapper.like("uuid", condition);
+ Page<ApiLog> page = apiLogService.selectPage(new Page<>(0, 10), wrapper);
+ List<Map<String, Object>> result = new ArrayList<>();
+ for (ApiLog apiLog : page.getRecords()){
+ Map<String, Object> map = new HashMap<>();
+ map.put("id", apiLog.getId());
+ map.put("value", apiLog.getId());
+ result.add(map);
+ }
+ return R.ok(result);
+ }
+
+ @RequestMapping(value = "/apiLog/check/column/auth")
+ @ManagerAuth
+ public R query(@RequestBody JSONObject param) {
+ Wrapper<ApiLog> wrapper = new EntityWrapper<ApiLog>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val"));
+ if (null != apiLogService.selectOne(wrapper)){
+ return R.parse(BaseRes.REPEAT).add(getComment(ApiLog.class, String.valueOf(param.get("key"))));
+ }
+ return R.ok();
+ }
+
+}
diff --git a/src/main/java/com/zy/asrs/controller/BasLiftController.java b/src/main/java/com/zy/asrs/controller/BasLiftController.java
new file mode 100644
index 0000000..d103c38
--- /dev/null
+++ b/src/main/java/com/zy/asrs/controller/BasLiftController.java
@@ -0,0 +1,127 @@
+package com.zy.asrs.controller;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.core.annotations.ManagerAuth;
+import com.core.common.BaseRes;
+import com.core.common.Cools;
+import com.core.common.DateUtils;
+import com.core.common.R;
+import com.zy.asrs.entity.BasLift;
+import com.zy.asrs.service.BasLiftService;
+import com.zy.common.web.BaseController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@RestController
+public class BasLiftController extends BaseController {
+
+ @Autowired
+ private BasLiftService basLiftService;
+
+ @RequestMapping(value = "/basLift/{id}/auth")
+ @ManagerAuth
+ public R get(@PathVariable("id") String id) {
+ return R.ok(basLiftService.selectById(String.valueOf(id)));
+ }
+
+ @RequestMapping(value = "/basLift/list/auth")
+ @ManagerAuth
+ public R list(@RequestParam(defaultValue = "1")Integer curr,
+ @RequestParam(defaultValue = "10")Integer limit,
+ @RequestParam(required = false)String orderByField,
+ @RequestParam(required = false)String orderByType,
+ @RequestParam(required = false)String condition,
+ @RequestParam Map<String, Object> param){
+ EntityWrapper<BasLift> wrapper = new EntityWrapper<>();
+ excludeTrash(param);
+ convert(param, wrapper);
+ allLike(BasLift.class, param.keySet(), wrapper, condition);
+ if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
+ return R.ok(basLiftService.selectPage(new Page<>(curr, limit), wrapper));
+ }
+
+ private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){
+ for (Map.Entry<String, Object> entry : map.entrySet()){
+ String val = String.valueOf(entry.getValue());
+ if (val.contains(RANGE_TIME_LINK)){
+ String[] dates = val.split(RANGE_TIME_LINK);
+ wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
+ wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
+ } else {
+ wrapper.like(entry.getKey(), val);
+ }
+ }
+ }
+
+ @RequestMapping(value = "/basLift/add/auth")
+ @ManagerAuth
+ public R add(BasLift basLift) {
+ basLiftService.insert(basLift);
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/basLift/update/auth")
+ @ManagerAuth
+ public R update(BasLift basLift){
+ if (Cools.isEmpty(basLift) || null==basLift.getLiftNo()){
+ return R.error();
+ }
+ basLiftService.updateById(basLift);
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/basLift/delete/auth")
+ @ManagerAuth
+ public R delete(@RequestParam(value="ids[]") Long[] ids){
+ for (Long id : ids){
+ basLiftService.delete(new EntityWrapper<BasLift>().eq("lift_no", id));
+ }
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/basLift/export/auth")
+ @ManagerAuth
+ public R export(@RequestBody JSONObject param){
+ EntityWrapper<BasLift> wrapper = new EntityWrapper<>();
+ List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
+ Map<String, Object> map = excludeTrash(param.getJSONObject("basLift"));
+ convert(map, wrapper);
+ List<BasLift> list = basLiftService.selectList(wrapper);
+ return R.ok(exportSupport(list, fields));
+ }
+
+ @RequestMapping(value = "/basLiftQuery/auth")
+ @ManagerAuth
+ public R query(String condition) {
+ EntityWrapper<BasLift> wrapper = new EntityWrapper<>();
+ wrapper.like("lift_no", condition);
+ Page<BasLift> page = basLiftService.selectPage(new Page<>(0, 10), wrapper);
+ List<Map<String, Object>> result = new ArrayList<>();
+ for (BasLift basLift : page.getRecords()){
+ Map<String, Object> map = new HashMap<>();
+ map.put("id", basLift.getLiftNo());
+ map.put("value", basLift.getLiftNo());
+ result.add(map);
+ }
+ return R.ok(result);
+ }
+
+ @RequestMapping(value = "/basLift/check/column/auth")
+ @ManagerAuth
+ public R query(@RequestBody JSONObject param) {
+ Wrapper<BasLift> wrapper = new EntityWrapper<BasLift>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val"));
+ if (null != basLiftService.selectOne(wrapper)){
+ return R.parse(BaseRes.REPEAT).add(getComment(BasLift.class, String.valueOf(param.get("key"))));
+ }
+ return R.ok();
+ }
+
+}
diff --git a/src/main/java/com/zy/asrs/controller/BasLiftErrController.java b/src/main/java/com/zy/asrs/controller/BasLiftErrController.java
new file mode 100644
index 0000000..a8b67e3
--- /dev/null
+++ b/src/main/java/com/zy/asrs/controller/BasLiftErrController.java
@@ -0,0 +1,127 @@
+package com.zy.asrs.controller;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.core.annotations.ManagerAuth;
+import com.core.common.BaseRes;
+import com.core.common.Cools;
+import com.core.common.DateUtils;
+import com.core.common.R;
+import com.zy.asrs.entity.BasLiftErr;
+import com.zy.asrs.service.BasLiftErrService;
+import com.zy.common.web.BaseController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@RestController
+public class BasLiftErrController extends BaseController {
+
+ @Autowired
+ private BasLiftErrService basLiftErrService;
+
+ @RequestMapping(value = "/basLiftErr/{id}/auth")
+ @ManagerAuth
+ public R get(@PathVariable("id") String id) {
+ return R.ok(basLiftErrService.selectById(String.valueOf(id)));
+ }
+
+ @RequestMapping(value = "/basLiftErr/list/auth")
+ @ManagerAuth
+ public R list(@RequestParam(defaultValue = "1")Integer curr,
+ @RequestParam(defaultValue = "10")Integer limit,
+ @RequestParam(required = false)String orderByField,
+ @RequestParam(required = false)String orderByType,
+ @RequestParam(required = false)String condition,
+ @RequestParam Map<String, Object> param){
+ EntityWrapper<BasLiftErr> wrapper = new EntityWrapper<>();
+ excludeTrash(param);
+ convert(param, wrapper);
+ allLike(BasLiftErr.class, param.keySet(), wrapper, condition);
+ if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
+ return R.ok(basLiftErrService.selectPage(new Page<>(curr, limit), wrapper));
+ }
+
+ private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){
+ for (Map.Entry<String, Object> entry : map.entrySet()){
+ String val = String.valueOf(entry.getValue());
+ if (val.contains(RANGE_TIME_LINK)){
+ String[] dates = val.split(RANGE_TIME_LINK);
+ wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
+ wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
+ } else {
+ wrapper.like(entry.getKey(), val);
+ }
+ }
+ }
+
+ @RequestMapping(value = "/basLiftErr/add/auth")
+ @ManagerAuth
+ public R add(BasLiftErr basLiftErr) {
+ basLiftErrService.insert(basLiftErr);
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/basLiftErr/update/auth")
+ @ManagerAuth
+ public R update(BasLiftErr basLiftErr){
+ if (Cools.isEmpty(basLiftErr) || null==basLiftErr.getErrorCode()){
+ return R.error();
+ }
+ basLiftErrService.updateById(basLiftErr);
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/basLiftErr/delete/auth")
+ @ManagerAuth
+ public R delete(@RequestParam(value="ids[]") Long[] ids){
+ for (Long id : ids){
+ basLiftErrService.deleteById(id);
+ }
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/basLiftErr/export/auth")
+ @ManagerAuth
+ public R export(@RequestBody JSONObject param){
+ EntityWrapper<BasLiftErr> wrapper = new EntityWrapper<>();
+ List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
+ Map<String, Object> map = excludeTrash(param.getJSONObject("basLiftErr"));
+ convert(map, wrapper);
+ List<BasLiftErr> list = basLiftErrService.selectList(wrapper);
+ return R.ok(exportSupport(list, fields));
+ }
+
+ @RequestMapping(value = "/basLiftErrQuery/auth")
+ @ManagerAuth
+ public R query(String condition) {
+ EntityWrapper<BasLiftErr> wrapper = new EntityWrapper<>();
+ wrapper.like("id", condition);
+ Page<BasLiftErr> page = basLiftErrService.selectPage(new Page<>(0, 10), wrapper);
+ List<Map<String, Object>> result = new ArrayList<>();
+ for (BasLiftErr basLiftErr : page.getRecords()){
+ Map<String, Object> map = new HashMap<>();
+ map.put("id", basLiftErr.getErrorCode());
+ map.put("value", basLiftErr.getErrorCode());
+ result.add(map);
+ }
+ return R.ok(result);
+ }
+
+ @RequestMapping(value = "/basLiftErr/check/column/auth")
+ @ManagerAuth
+ public R query(@RequestBody JSONObject param) {
+ Wrapper<BasLiftErr> wrapper = new EntityWrapper<BasLiftErr>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val"));
+ if (null != basLiftErrService.selectOne(wrapper)){
+ return R.parse(BaseRes.REPEAT).add(getComment(BasLiftErr.class, String.valueOf(param.get("key"))));
+ }
+ return R.ok();
+ }
+
+}
diff --git a/src/main/java/com/zy/asrs/controller/BasLiftErrLogController.java b/src/main/java/com/zy/asrs/controller/BasLiftErrLogController.java
new file mode 100644
index 0000000..83b79e6
--- /dev/null
+++ b/src/main/java/com/zy/asrs/controller/BasLiftErrLogController.java
@@ -0,0 +1,128 @@
+package com.zy.asrs.controller;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.core.annotations.ManagerAuth;
+import com.core.common.BaseRes;
+import com.core.common.Cools;
+import com.core.common.DateUtils;
+import com.core.common.R;
+import com.zy.asrs.entity.BasLiftErrLog;
+import com.zy.asrs.service.BasLiftErrLogService;
+import com.zy.common.web.BaseController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@RestController
+public class BasLiftErrLogController extends BaseController {
+
+ @Autowired
+ private BasLiftErrLogService basLiftErrLogService;
+
+ @RequestMapping(value = "/basLiftErrLog/{id}/auth")
+ @ManagerAuth
+ public R get(@PathVariable("id") String id) {
+ return R.ok(basLiftErrLogService.selectById(String.valueOf(id)));
+ }
+
+ @RequestMapping(value = "/basLiftErrLog/list/auth")
+ @ManagerAuth
+ public R list(@RequestParam(defaultValue = "1")Integer curr,
+ @RequestParam(defaultValue = "10")Integer limit,
+ @RequestParam(required = false)String orderByField,
+ @RequestParam(required = false)String orderByType,
+ @RequestParam(required = false)String condition,
+ @RequestParam Map<String, Object> param){
+ EntityWrapper<BasLiftErrLog> wrapper = new EntityWrapper<>();
+ excludeTrash(param);
+ convert(param, wrapper);
+ allLike(BasLiftErrLog.class, param.keySet(), wrapper, condition);
+ wrapper.orderBy("create_time", false);
+ if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
+ return R.ok(basLiftErrLogService.selectPage(new Page<>(curr, limit), wrapper));
+ }
+
+ private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){
+ for (Map.Entry<String, Object> entry : map.entrySet()){
+ String val = String.valueOf(entry.getValue());
+ if (val.contains(RANGE_TIME_LINK)){
+ String[] dates = val.split(RANGE_TIME_LINK);
+ wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
+ wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
+ } else {
+ wrapper.like(entry.getKey(), val);
+ }
+ }
+ }
+
+ @RequestMapping(value = "/basLiftErrLog/add/auth")
+ @ManagerAuth
+ public R add(BasLiftErrLog basLiftErrLog) {
+ basLiftErrLogService.insert(basLiftErrLog);
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/basLiftErrLog/update/auth")
+ @ManagerAuth
+ public R update(BasLiftErrLog basLiftErrLog){
+ if (Cools.isEmpty(basLiftErrLog) || null==basLiftErrLog.getId()){
+ return R.error();
+ }
+ basLiftErrLogService.updateById(basLiftErrLog);
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/basLiftErrLog/delete/auth")
+ @ManagerAuth
+ public R delete(@RequestParam(value="ids[]") Long[] ids){
+ for (Long id : ids){
+ basLiftErrLogService.deleteById(id);
+ }
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/basLiftErrLog/export/auth")
+ @ManagerAuth
+ public R export(@RequestBody JSONObject param){
+ EntityWrapper<BasLiftErrLog> wrapper = new EntityWrapper<>();
+ List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
+ Map<String, Object> map = excludeTrash(param.getJSONObject("basLiftErrLog"));
+ convert(map, wrapper);
+ List<BasLiftErrLog> list = basLiftErrLogService.selectList(wrapper);
+ return R.ok(exportSupport(list, fields));
+ }
+
+ @RequestMapping(value = "/basLiftErrLogQuery/auth")
+ @ManagerAuth
+ public R query(String condition) {
+ EntityWrapper<BasLiftErrLog> wrapper = new EntityWrapper<>();
+ wrapper.like("id", condition);
+ Page<BasLiftErrLog> page = basLiftErrLogService.selectPage(new Page<>(0, 10), wrapper);
+ List<Map<String, Object>> result = new ArrayList<>();
+ for (BasLiftErrLog basLiftErrLog : page.getRecords()){
+ Map<String, Object> map = new HashMap<>();
+ map.put("id", basLiftErrLog.getId());
+ map.put("value", basLiftErrLog.getId());
+ result.add(map);
+ }
+ return R.ok(result);
+ }
+
+ @RequestMapping(value = "/basLiftErrLog/check/column/auth")
+ @ManagerAuth
+ public R query(@RequestBody JSONObject param) {
+ Wrapper<BasLiftErrLog> wrapper = new EntityWrapper<BasLiftErrLog>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val"));
+ if (null != basLiftErrLogService.selectOne(wrapper)){
+ return R.parse(BaseRes.REPEAT).add(getComment(BasLiftErrLog.class, String.valueOf(param.get("key"))));
+ }
+ return R.ok();
+ }
+
+}
diff --git a/src/main/java/com/zy/asrs/controller/BasLiftOptController.java b/src/main/java/com/zy/asrs/controller/BasLiftOptController.java
new file mode 100644
index 0000000..4e21bdd
--- /dev/null
+++ b/src/main/java/com/zy/asrs/controller/BasLiftOptController.java
@@ -0,0 +1,128 @@
+package com.zy.asrs.controller;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.core.annotations.ManagerAuth;
+import com.core.common.BaseRes;
+import com.core.common.Cools;
+import com.core.common.DateUtils;
+import com.core.common.R;
+import com.zy.asrs.entity.BasLiftOpt;
+import com.zy.asrs.service.BasLiftOptService;
+import com.zy.common.web.BaseController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@RestController
+public class BasLiftOptController extends BaseController {
+
+ @Autowired
+ private BasLiftOptService basLiftOptService;
+
+ @RequestMapping(value = "/basLiftOpt/{id}/auth")
+ @ManagerAuth
+ public R get(@PathVariable("id") String id) {
+ return R.ok(basLiftOptService.selectById(String.valueOf(id)));
+ }
+
+ @RequestMapping(value = "/basLiftOpt/list/auth")
+ @ManagerAuth
+ public R list(@RequestParam(defaultValue = "1")Integer curr,
+ @RequestParam(defaultValue = "10")Integer limit,
+ @RequestParam(required = false)String orderByField,
+ @RequestParam(required = false)String orderByType,
+ @RequestParam(required = false)String condition,
+ @RequestParam Map<String, Object> param){
+ EntityWrapper<BasLiftOpt> wrapper = new EntityWrapper<>();
+ excludeTrash(param);
+ convert(param, wrapper);
+ allLike(BasLiftOpt.class, param.keySet(), wrapper, condition);
+ wrapper.orderBy("send_time", false);
+ if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
+ return R.ok(basLiftOptService.selectPage(new Page<>(curr, limit), wrapper));
+ }
+
+ private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){
+ for (Map.Entry<String, Object> entry : map.entrySet()){
+ String val = String.valueOf(entry.getValue());
+ if (val.contains(RANGE_TIME_LINK)){
+ String[] dates = val.split(RANGE_TIME_LINK);
+ wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
+ wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
+ } else {
+ wrapper.like(entry.getKey(), val);
+ }
+ }
+ }
+
+ @RequestMapping(value = "/basLiftOpt/add/auth")
+ @ManagerAuth
+ public R add(BasLiftOpt basLiftOpt) {
+ basLiftOptService.insert(basLiftOpt);
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/basLiftOpt/update/auth")
+ @ManagerAuth
+ public R update(BasLiftOpt basLiftOpt){
+ if (Cools.isEmpty(basLiftOpt) || null==basLiftOpt.getId()){
+ return R.error();
+ }
+ basLiftOptService.updateById(basLiftOpt);
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/basLiftOpt/delete/auth")
+ @ManagerAuth
+ public R delete(@RequestParam(value="ids[]") Long[] ids){
+ for (Long id : ids){
+ basLiftOptService.deleteById(id);
+ }
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/basLiftOpt/export/auth")
+ @ManagerAuth
+ public R export(@RequestBody JSONObject param){
+ EntityWrapper<BasLiftOpt> wrapper = new EntityWrapper<>();
+ List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
+ Map<String, Object> map = excludeTrash(param.getJSONObject("basLiftOpt"));
+ convert(map, wrapper);
+ List<BasLiftOpt> list = basLiftOptService.selectList(wrapper);
+ return R.ok(exportSupport(list, fields));
+ }
+
+ @RequestMapping(value = "/basLiftOptQuery/auth")
+ @ManagerAuth
+ public R query(String condition) {
+ EntityWrapper<BasLiftOpt> wrapper = new EntityWrapper<>();
+ wrapper.like("id", condition);
+ Page<BasLiftOpt> page = basLiftOptService.selectPage(new Page<>(0, 10), wrapper);
+ List<Map<String, Object>> result = new ArrayList<>();
+ for (BasLiftOpt basLiftOpt : page.getRecords()){
+ Map<String, Object> map = new HashMap<>();
+ map.put("id", basLiftOpt.getId());
+ map.put("value", basLiftOpt.getId());
+ result.add(map);
+ }
+ return R.ok(result);
+ }
+
+ @RequestMapping(value = "/basLiftOpt/check/column/auth")
+ @ManagerAuth
+ public R query(@RequestBody JSONObject param) {
+ Wrapper<BasLiftOpt> wrapper = new EntityWrapper<BasLiftOpt>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val"));
+ if (null != basLiftOptService.selectOne(wrapper)){
+ return R.parse(BaseRes.REPEAT).add(getComment(BasLiftOpt.class, String.valueOf(param.get("key"))));
+ }
+ return R.ok();
+ }
+
+}
diff --git a/src/main/java/com/zy/asrs/controller/BasLocStsController.java b/src/main/java/com/zy/asrs/controller/BasLocStsController.java
new file mode 100644
index 0000000..2a40cc2
--- /dev/null
+++ b/src/main/java/com/zy/asrs/controller/BasLocStsController.java
@@ -0,0 +1,147 @@
+package com.zy.asrs.controller;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.core.annotations.ManagerAuth;
+import com.core.common.BaseRes;
+import com.core.common.Cools;
+import com.core.common.DateUtils;
+import com.core.common.R;
+import com.zy.asrs.entity.BasLocSts;
+import com.zy.asrs.service.BasLocStsService;
+import com.zy.common.web.BaseController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.*;
+
+@RestController
+public class BasLocStsController extends BaseController {
+
+ @Autowired
+ private BasLocStsService basLocStsService;
+
+ @RequestMapping(value = "/basLocSts/{id}/auth")
+ @ManagerAuth
+ public R get(@PathVariable("id") String id) {
+ return R.ok(basLocStsService.selectById(id));
+ }
+
+ @RequestMapping(value = "/basLocSts/list/auth")
+ @ManagerAuth
+ public R list(@RequestParam(defaultValue = "1")Integer curr,
+ @RequestParam(defaultValue = "10")Integer limit,
+ @RequestParam(required = false)String orderByField,
+ @RequestParam(required = false)String orderByType,
+ @RequestParam Map<String, Object> param){
+ excludeTrash(param);
+ EntityWrapper<BasLocSts> wrapper = new EntityWrapper<>();
+ convert(param, wrapper);
+ if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
+ return R.ok(basLocStsService.selectPage(new Page<>(curr, limit), wrapper));
+ }
+
+ private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){
+ for (Map.Entry<String, Object> entry : map.entrySet()){
+ String val = String.valueOf(entry.getValue());
+ if (val.contains(RANGE_TIME_LINK)){
+ String[] dates = val.split(RANGE_TIME_LINK);
+ wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
+ wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
+ } else {
+ wrapper.like(entry.getKey(), val);
+ }
+ }
+ }
+
+ @RequestMapping(value = "/basLocSts/edit/auth")
+ @ManagerAuth
+ public R edit(BasLocSts basLocSts) {
+ if (Cools.isEmpty(basLocSts)){
+ return R.error();
+ }
+ if (null == basLocSts.getLocSts()){
+ basLocStsService.insert(basLocSts);
+ } else {
+ basLocStsService.updateById(basLocSts);
+ }
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/basLocSts/add/auth")
+ @ManagerAuth(memo = "搴撲綅鐘舵�佹坊鍔�")
+ public R add(BasLocSts basLocSts) {
+ basLocSts.setModiUser(getUserId());
+ basLocSts.setModiTime(new Date());
+ basLocSts.setAppeUser(getUserId());
+ basLocSts.setAppeTime(new Date());
+ basLocStsService.insert(basLocSts);
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/basLocSts/update/auth")
+ @ManagerAuth(memo = "搴撲綅鐘舵�佷慨鏀�")
+ public R update(BasLocSts basLocSts){
+ if (Cools.isEmpty(basLocSts) || null==basLocSts.getLocSts()){
+ return R.error();
+ }
+ basLocSts.setModiUser(getUserId());
+ basLocSts.setModiTime(new Date());
+ basLocStsService.updateById(basLocSts);
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/basLocSts/delete/auth")
+ @ManagerAuth(memo = "搴撲綅鐘舵�佸垹闄�")
+ public R delete(@RequestParam String param){
+ List<BasLocSts> list = JSONArray.parseArray(param, BasLocSts.class);
+ if (Cools.isEmpty(list)){
+ return R.error();
+ }
+ for (BasLocSts entity : list){
+ basLocStsService.delete(new EntityWrapper<>(entity));
+ }
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/basLocSts/export/auth")
+ @ManagerAuth(memo = "搴撲綅鐘舵�佸鍑�")
+ public R export(@RequestBody JSONObject param){
+ List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
+ EntityWrapper<BasLocSts> wrapper = new EntityWrapper<>();
+ Map<String, Object> map = excludeTrash(param.getJSONObject("basLocSts"));
+ convert(map, wrapper);
+ List<BasLocSts> list = basLocStsService.selectList(wrapper);
+ return R.ok(exportSupport(list, fields));
+ }
+
+ @RequestMapping(value = "/basLocStsQuery/auth")
+ @ManagerAuth
+ public R query(String condition) {
+ EntityWrapper<BasLocSts> wrapper = new EntityWrapper<>();
+ wrapper.like("loc_desc", condition);
+ Page<BasLocSts> page = basLocStsService.selectPage(new Page<>(0, 10), wrapper);
+ List<Map<String, Object>> result = new ArrayList<>();
+ for (BasLocSts basLocSts : page.getRecords()){
+ Map<String, Object> map = new HashMap<>();
+ map.put("id", basLocSts.getLocSts());
+ map.put("value", basLocSts.getLocDesc());
+ result.add(map);
+ }
+ return R.ok(result);
+ }
+
+ @RequestMapping(value = "/basLocSts/check/column/auth")
+ @ManagerAuth
+ public R query(@RequestBody JSONObject param) {
+ Wrapper<BasLocSts> wrapper = new EntityWrapper<BasLocSts>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val"));
+ if (null != basLocStsService.selectOne(wrapper)){
+ return R.parse(BaseRes.REPEAT).add(getComment(BasLocSts.class, String.valueOf(param.get("key"))));
+ }
+ return R.ok();
+ }
+
+}
diff --git a/src/main/java/com/zy/asrs/controller/BasPlcerrorController.java b/src/main/java/com/zy/asrs/controller/BasPlcerrorController.java
new file mode 100644
index 0000000..5e81cc1
--- /dev/null
+++ b/src/main/java/com/zy/asrs/controller/BasPlcerrorController.java
@@ -0,0 +1,133 @@
+package com.zy.asrs.controller;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.core.annotations.ManagerAuth;
+import com.core.common.BaseRes;
+import com.core.common.Cools;
+import com.core.common.DateUtils;
+import com.core.common.R;
+import com.zy.asrs.entity.BasPlcerror;
+import com.zy.asrs.service.BasPlcerrorService;
+import com.zy.common.web.BaseController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.*;
+
+@RestController
+public class BasPlcerrorController extends BaseController {
+
+ @Autowired
+ private BasPlcerrorService basPlcerrorService;
+
+ @RequestMapping(value = "/basPlcerror/{id}/auth")
+ @ManagerAuth
+ public R get(@PathVariable("id") String id) {
+ return R.ok(basPlcerrorService.selectById(String.valueOf(id)));
+ }
+
+ @RequestMapping(value = "/basPlcerror/list/auth")
+ @ManagerAuth
+ public R list(@RequestParam(defaultValue = "1")Integer curr,
+ @RequestParam(defaultValue = "10")Integer limit,
+ @RequestParam(required = false)String orderByField,
+ @RequestParam(required = false)String orderByType,
+ @RequestParam Map<String, Object> param){
+ EntityWrapper<BasPlcerror> wrapper = new EntityWrapper<>();
+ excludeTrash(param);
+ convert(param, wrapper);
+ if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
+ return R.ok(basPlcerrorService.selectPage(new Page<>(curr, limit), wrapper));
+ }
+
+ private void convert(Map<String, Object> map, EntityWrapper wrapper){
+ for (Map.Entry<String, Object> entry : map.entrySet()){
+ String val = String.valueOf(entry.getValue());
+ if (val.contains(RANGE_TIME_LINK)){
+ String[] dates = val.split(RANGE_TIME_LINK);
+ wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
+ wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
+ } else {
+ wrapper.like(entry.getKey(), val);
+ }
+ }
+ }
+
+ @RequestMapping(value = "/basPlcerror/add/auth")
+ @ManagerAuth
+ public R add(BasPlcerror basPlcerror) {
+ basPlcerror.setModiUser(getUserId());
+ basPlcerror.setModiTime(new Date());
+ basPlcerror.setAppeUser(getUserId());
+ basPlcerror.setAppeTime(new Date());
+ basPlcerrorService.insert(basPlcerror);
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/basPlcerror/update/auth")
+ @ManagerAuth
+ public R update(BasPlcerror basPlcerror){
+ if (Cools.isEmpty(basPlcerror) || null==basPlcerror.getErrorCode()){
+ return R.error();
+ }
+ basPlcerror.setModiUser(getUserId());
+ basPlcerror.setModiTime(new Date());
+ basPlcerrorService.updateById(basPlcerror);
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/basPlcerror/delete/auth")
+ @ManagerAuth
+ public R delete(@RequestParam String param){
+ List<BasPlcerror> list = JSONArray.parseArray(param, BasPlcerror.class);
+ if (Cools.isEmpty(list)){
+ return R.error();
+ }
+ for (BasPlcerror entity : list){
+ basPlcerrorService.delete(new EntityWrapper<>(entity));
+ }
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/basPlcerror/export/auth")
+ @ManagerAuth
+ public R export(@RequestBody JSONObject param){
+ EntityWrapper<BasPlcerror> wrapper = new EntityWrapper<>();
+ List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
+ Map<String, Object> map = excludeTrash(param.getJSONObject("basPlcerror"));
+ convert(map, wrapper);
+ List<BasPlcerror> list = basPlcerrorService.selectList(wrapper);
+ return R.ok(exportSupport(list, fields));
+ }
+
+ @RequestMapping(value = "/basPlcerrorQuery/auth")
+ @ManagerAuth
+ public R query(String condition) {
+ EntityWrapper<BasPlcerror> wrapper = new EntityWrapper<>();
+ wrapper.like("error_desc", condition);
+ Page<BasPlcerror> page = basPlcerrorService.selectPage(new Page<>(0, 10), wrapper);
+ List<Map<String, Object>> result = new ArrayList<>();
+ for (BasPlcerror basPlcerror : page.getRecords()){
+ Map<String, Object> map = new HashMap<>();
+ map.put("id", basPlcerror.getErrorCode());
+ map.put("value", basPlcerror.getErrorDesc());
+ result.add(map);
+ }
+ return R.ok(result);
+ }
+
+ @RequestMapping(value = "/basPlcerror/check/column/auth")
+ @ManagerAuth
+ public R query(@RequestBody JSONObject param) {
+ Wrapper<BasPlcerror> wrapper = new EntityWrapper<BasPlcerror>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val"));
+ if (null != basPlcerrorService.selectOne(wrapper)){
+ return R.parse(BaseRes.REPEAT).add(getComment(BasPlcerror.class, String.valueOf(param.get("key"))));
+ }
+ return R.ok();
+ }
+
+}
diff --git a/src/main/java/com/zy/asrs/controller/BasShuttleController.java b/src/main/java/com/zy/asrs/controller/BasShuttleController.java
new file mode 100644
index 0000000..88a5cc9
--- /dev/null
+++ b/src/main/java/com/zy/asrs/controller/BasShuttleController.java
@@ -0,0 +1,127 @@
+package com.zy.asrs.controller;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.core.annotations.ManagerAuth;
+import com.core.common.BaseRes;
+import com.core.common.Cools;
+import com.core.common.DateUtils;
+import com.core.common.R;
+import com.zy.asrs.entity.BasShuttle;
+import com.zy.asrs.service.BasShuttleService;
+import com.zy.common.web.BaseController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@RestController
+public class BasShuttleController extends BaseController {
+
+ @Autowired
+ private BasShuttleService basShuttleService;
+
+ @RequestMapping(value = "/basShuttle/{id}/auth")
+ @ManagerAuth
+ public R get(@PathVariable("id") String id) {
+ return R.ok(basShuttleService.selectById(String.valueOf(id)));
+ }
+
+ @RequestMapping(value = "/basShuttle/list/auth")
+ @ManagerAuth
+ public R list(@RequestParam(defaultValue = "1")Integer curr,
+ @RequestParam(defaultValue = "10")Integer limit,
+ @RequestParam(required = false)String orderByField,
+ @RequestParam(required = false)String orderByType,
+ @RequestParam(required = false)String condition,
+ @RequestParam Map<String, Object> param){
+ EntityWrapper<BasShuttle> wrapper = new EntityWrapper<>();
+ excludeTrash(param);
+ convert(param, wrapper);
+ allLike(BasShuttle.class, param.keySet(), wrapper, condition);
+ if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
+ return R.ok(basShuttleService.selectPage(new Page<>(curr, limit), wrapper));
+ }
+
+ private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){
+ for (Map.Entry<String, Object> entry : map.entrySet()){
+ String val = String.valueOf(entry.getValue());
+ if (val.contains(RANGE_TIME_LINK)){
+ String[] dates = val.split(RANGE_TIME_LINK);
+ wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
+ wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
+ } else {
+ wrapper.like(entry.getKey(), val);
+ }
+ }
+ }
+
+ @RequestMapping(value = "/basShuttle/add/auth")
+ @ManagerAuth
+ public R add(BasShuttle basShuttle) {
+ basShuttleService.insert(basShuttle);
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/basShuttle/update/auth")
+ @ManagerAuth
+ public R update(BasShuttle basShuttle){
+ if (Cools.isEmpty(basShuttle) || null==basShuttle.getShuttleNo()){
+ return R.error();
+ }
+ basShuttleService.updateById(basShuttle);
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/basShuttle/delete/auth")
+ @ManagerAuth
+ public R delete(@RequestParam(value="ids[]") Long[] ids){
+ for (Long id : ids){
+ basShuttleService.deleteById(id);
+ }
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/basShuttle/export/auth")
+ @ManagerAuth
+ public R export(@RequestBody JSONObject param){
+ EntityWrapper<BasShuttle> wrapper = new EntityWrapper<>();
+ List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
+ Map<String, Object> map = excludeTrash(param.getJSONObject("basShuttle"));
+ convert(map, wrapper);
+ List<BasShuttle> list = basShuttleService.selectList(wrapper);
+ return R.ok(exportSupport(list, fields));
+ }
+
+ @RequestMapping(value = "/basShuttleQuery/auth")
+ @ManagerAuth
+ public R query(String condition) {
+ EntityWrapper<BasShuttle> wrapper = new EntityWrapper<>();
+ wrapper.like("shuttle_no", condition);
+ Page<BasShuttle> page = basShuttleService.selectPage(new Page<>(0, 10), wrapper);
+ List<Map<String, Object>> result = new ArrayList<>();
+ for (BasShuttle basShuttle : page.getRecords()){
+ Map<String, Object> map = new HashMap<>();
+ map.put("id", basShuttle.getShuttleNo());
+ map.put("value", basShuttle.getShuttleNo());
+ result.add(map);
+ }
+ return R.ok(result);
+ }
+
+ @RequestMapping(value = "/basShuttle/check/column/auth")
+ @ManagerAuth
+ public R query(@RequestBody JSONObject param) {
+ Wrapper<BasShuttle> wrapper = new EntityWrapper<BasShuttle>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val"));
+ if (null != basShuttleService.selectOne(wrapper)){
+ return R.parse(BaseRes.REPEAT).add(getComment(BasShuttle.class, String.valueOf(param.get("key"))));
+ }
+ return R.ok();
+ }
+
+}
diff --git a/src/main/java/com/zy/asrs/controller/BasShuttleErrController.java b/src/main/java/com/zy/asrs/controller/BasShuttleErrController.java
new file mode 100644
index 0000000..440bd93
--- /dev/null
+++ b/src/main/java/com/zy/asrs/controller/BasShuttleErrController.java
@@ -0,0 +1,127 @@
+package com.zy.asrs.controller;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.core.annotations.ManagerAuth;
+import com.core.common.BaseRes;
+import com.core.common.Cools;
+import com.core.common.DateUtils;
+import com.core.common.R;
+import com.zy.asrs.entity.BasShuttleErr;
+import com.zy.asrs.service.BasShuttleErrService;
+import com.zy.common.web.BaseController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@RestController
+public class BasShuttleErrController extends BaseController {
+
+ @Autowired
+ private BasShuttleErrService basShuttleErrService;
+
+ @RequestMapping(value = "/basShuttleErr/{id}/auth")
+ @ManagerAuth
+ public R get(@PathVariable("id") String id) {
+ return R.ok(basShuttleErrService.selectById(String.valueOf(id)));
+ }
+
+ @RequestMapping(value = "/basShuttleErr/list/auth")
+ @ManagerAuth
+ public R list(@RequestParam(defaultValue = "1")Integer curr,
+ @RequestParam(defaultValue = "10")Integer limit,
+ @RequestParam(required = false)String orderByField,
+ @RequestParam(required = false)String orderByType,
+ @RequestParam(required = false)String condition,
+ @RequestParam Map<String, Object> param){
+ EntityWrapper<BasShuttleErr> wrapper = new EntityWrapper<>();
+ excludeTrash(param);
+ convert(param, wrapper);
+ allLike(BasShuttleErr.class, param.keySet(), wrapper, condition);
+ if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
+ return R.ok(basShuttleErrService.selectPage(new Page<>(curr, limit), wrapper));
+ }
+
+ private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){
+ for (Map.Entry<String, Object> entry : map.entrySet()){
+ String val = String.valueOf(entry.getValue());
+ if (val.contains(RANGE_TIME_LINK)){
+ String[] dates = val.split(RANGE_TIME_LINK);
+ wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
+ wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
+ } else {
+ wrapper.like(entry.getKey(), val);
+ }
+ }
+ }
+
+ @RequestMapping(value = "/basShuttleErr/add/auth")
+ @ManagerAuth
+ public R add(BasShuttleErr basShuttleErr) {
+ basShuttleErrService.insert(basShuttleErr);
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/basShuttleErr/update/auth")
+ @ManagerAuth
+ public R update(BasShuttleErr basShuttleErr){
+ if (Cools.isEmpty(basShuttleErr) || null==basShuttleErr.getErrorCode()){
+ return R.error();
+ }
+ basShuttleErrService.updateById(basShuttleErr);
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/basShuttleErr/delete/auth")
+ @ManagerAuth
+ public R delete(@RequestParam(value="ids[]") Long[] ids){
+ for (Long id : ids){
+ basShuttleErrService.deleteById(id);
+ }
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/basShuttleErr/export/auth")
+ @ManagerAuth
+ public R export(@RequestBody JSONObject param){
+ EntityWrapper<BasShuttleErr> wrapper = new EntityWrapper<>();
+ List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
+ Map<String, Object> map = excludeTrash(param.getJSONObject("basShuttleErr"));
+ convert(map, wrapper);
+ List<BasShuttleErr> list = basShuttleErrService.selectList(wrapper);
+ return R.ok(exportSupport(list, fields));
+ }
+
+ @RequestMapping(value = "/basShuttleErrQuery/auth")
+ @ManagerAuth
+ public R query(String condition) {
+ EntityWrapper<BasShuttleErr> wrapper = new EntityWrapper<>();
+ wrapper.like("id", condition);
+ Page<BasShuttleErr> page = basShuttleErrService.selectPage(new Page<>(0, 10), wrapper);
+ List<Map<String, Object>> result = new ArrayList<>();
+ for (BasShuttleErr basShuttleErr : page.getRecords()){
+ Map<String, Object> map = new HashMap<>();
+ map.put("id", basShuttleErr.getErrorCode());
+ map.put("value", basShuttleErr.getErrorCode());
+ result.add(map);
+ }
+ return R.ok(result);
+ }
+
+ @RequestMapping(value = "/basShuttleErr/check/column/auth")
+ @ManagerAuth
+ public R query(@RequestBody JSONObject param) {
+ Wrapper<BasShuttleErr> wrapper = new EntityWrapper<BasShuttleErr>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val"));
+ if (null != basShuttleErrService.selectOne(wrapper)){
+ return R.parse(BaseRes.REPEAT).add(getComment(BasShuttleErr.class, String.valueOf(param.get("key"))));
+ }
+ return R.ok();
+ }
+
+}
diff --git a/src/main/java/com/zy/asrs/controller/BasShuttleErrLogController.java b/src/main/java/com/zy/asrs/controller/BasShuttleErrLogController.java
new file mode 100644
index 0000000..31b3aef
--- /dev/null
+++ b/src/main/java/com/zy/asrs/controller/BasShuttleErrLogController.java
@@ -0,0 +1,128 @@
+package com.zy.asrs.controller;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.core.annotations.ManagerAuth;
+import com.core.common.BaseRes;
+import com.core.common.Cools;
+import com.core.common.DateUtils;
+import com.core.common.R;
+import com.zy.asrs.entity.BasShuttleErrLog;
+import com.zy.asrs.service.BasShuttleErrLogService;
+import com.zy.common.web.BaseController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@RestController
+public class BasShuttleErrLogController extends BaseController {
+
+ @Autowired
+ private BasShuttleErrLogService basShuttleErrLogService;
+
+ @RequestMapping(value = "/basShuttleErrLog/{id}/auth")
+ @ManagerAuth
+ public R get(@PathVariable("id") String id) {
+ return R.ok(basShuttleErrLogService.selectById(String.valueOf(id)));
+ }
+
+ @RequestMapping(value = "/basShuttleErrLog/list/auth")
+ @ManagerAuth
+ public R list(@RequestParam(defaultValue = "1")Integer curr,
+ @RequestParam(defaultValue = "10")Integer limit,
+ @RequestParam(required = false)String orderByField,
+ @RequestParam(required = false)String orderByType,
+ @RequestParam(required = false)String condition,
+ @RequestParam Map<String, Object> param){
+ EntityWrapper<BasShuttleErrLog> wrapper = new EntityWrapper<>();
+ excludeTrash(param);
+ convert(param, wrapper);
+ allLike(BasShuttleErrLog.class, param.keySet(), wrapper, condition);
+ wrapper.orderBy("create_time", false);
+ if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
+ return R.ok(basShuttleErrLogService.selectPage(new Page<>(curr, limit), wrapper));
+ }
+
+ private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){
+ for (Map.Entry<String, Object> entry : map.entrySet()){
+ String val = String.valueOf(entry.getValue());
+ if (val.contains(RANGE_TIME_LINK)){
+ String[] dates = val.split(RANGE_TIME_LINK);
+ wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
+ wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
+ } else {
+ wrapper.like(entry.getKey(), val);
+ }
+ }
+ }
+
+ @RequestMapping(value = "/basShuttleErrLog/add/auth")
+ @ManagerAuth
+ public R add(BasShuttleErrLog basShuttleErrLog) {
+ basShuttleErrLogService.insert(basShuttleErrLog);
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/basShuttleErrLog/update/auth")
+ @ManagerAuth
+ public R update(BasShuttleErrLog basShuttleErrLog){
+ if (Cools.isEmpty(basShuttleErrLog) || null==basShuttleErrLog.getId()){
+ return R.error();
+ }
+ basShuttleErrLogService.updateById(basShuttleErrLog);
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/basShuttleErrLog/delete/auth")
+ @ManagerAuth
+ public R delete(@RequestParam(value="ids[]") Long[] ids){
+ for (Long id : ids){
+ basShuttleErrLogService.deleteById(id);
+ }
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/basShuttleErrLog/export/auth")
+ @ManagerAuth
+ public R export(@RequestBody JSONObject param){
+ EntityWrapper<BasShuttleErrLog> wrapper = new EntityWrapper<>();
+ List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
+ Map<String, Object> map = excludeTrash(param.getJSONObject("basShuttleErrLog"));
+ convert(map, wrapper);
+ List<BasShuttleErrLog> list = basShuttleErrLogService.selectList(wrapper);
+ return R.ok(exportSupport(list, fields));
+ }
+
+ @RequestMapping(value = "/basShuttleErrLogQuery/auth")
+ @ManagerAuth
+ public R query(String condition) {
+ EntityWrapper<BasShuttleErrLog> wrapper = new EntityWrapper<>();
+ wrapper.like("id", condition);
+ Page<BasShuttleErrLog> page = basShuttleErrLogService.selectPage(new Page<>(0, 10), wrapper);
+ List<Map<String, Object>> result = new ArrayList<>();
+ for (BasShuttleErrLog basShuttleErrLog : page.getRecords()){
+ Map<String, Object> map = new HashMap<>();
+ map.put("id", basShuttleErrLog.getId());
+ map.put("value", basShuttleErrLog.getId());
+ result.add(map);
+ }
+ return R.ok(result);
+ }
+
+ @RequestMapping(value = "/basShuttleErrLog/check/column/auth")
+ @ManagerAuth
+ public R query(@RequestBody JSONObject param) {
+ Wrapper<BasShuttleErrLog> wrapper = new EntityWrapper<BasShuttleErrLog>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val"));
+ if (null != basShuttleErrLogService.selectOne(wrapper)){
+ return R.parse(BaseRes.REPEAT).add(getComment(BasShuttleErrLog.class, String.valueOf(param.get("key"))));
+ }
+ return R.ok();
+ }
+
+}
diff --git a/src/main/java/com/zy/asrs/controller/BasShuttleOptController.java b/src/main/java/com/zy/asrs/controller/BasShuttleOptController.java
new file mode 100644
index 0000000..a3ecca1
--- /dev/null
+++ b/src/main/java/com/zy/asrs/controller/BasShuttleOptController.java
@@ -0,0 +1,53 @@
+package com.zy.asrs.controller;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.core.annotations.ManagerAuth;
+import com.core.common.Cools;
+import com.core.common.DateUtils;
+import com.core.common.R;
+import com.zy.asrs.entity.BasShuttleOpt;
+import com.zy.asrs.service.BasShuttleOptService;
+import com.zy.common.web.BaseController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Map;
+
+@RestController
+public class BasShuttleOptController extends BaseController {
+ @Autowired
+ private BasShuttleOptService basShuttleOptService;
+
+ @RequestMapping(value = "/basShuttleOpt/list/auth")
+ @ManagerAuth
+ public R list(@RequestParam(defaultValue = "1")Integer curr,
+ @RequestParam(defaultValue = "10")Integer limit,
+ @RequestParam(required = false)String orderByField,
+ @RequestParam(required = false)String orderByType,
+ @RequestParam(required = false)String condition,
+ @RequestParam Map<String, Object> param){
+ EntityWrapper<BasShuttleOpt> wrapper = new EntityWrapper<>();
+ excludeTrash(param);
+ convert(param, wrapper);
+ allLike(BasShuttleOpt.class, param.keySet(), wrapper, condition);
+ wrapper.orderBy("send_time", false);
+ if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
+ return R.ok(basShuttleOptService.selectPage(new Page<>(curr, limit), wrapper));
+ }
+
+ private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){
+ for (Map.Entry<String, Object> entry : map.entrySet()){
+ String val = String.valueOf(entry.getValue());
+ if (val.contains(RANGE_TIME_LINK)){
+ String[] dates = val.split(RANGE_TIME_LINK);
+ wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
+ wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
+ } else {
+ wrapper.like(entry.getKey(), val);
+ }
+ }
+ }
+}
diff --git a/src/main/java/com/zy/asrs/controller/BasWrkIotypeController.java b/src/main/java/com/zy/asrs/controller/BasWrkIotypeController.java
new file mode 100644
index 0000000..0136af7
--- /dev/null
+++ b/src/main/java/com/zy/asrs/controller/BasWrkIotypeController.java
@@ -0,0 +1,147 @@
+package com.zy.asrs.controller;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.core.annotations.ManagerAuth;
+import com.core.common.BaseRes;
+import com.core.common.Cools;
+import com.core.common.DateUtils;
+import com.core.common.R;
+import com.zy.asrs.entity.BasWrkIotype;
+import com.zy.asrs.service.BasWrkIotypeService;
+import com.zy.common.web.BaseController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.*;
+
+@RestController
+public class BasWrkIotypeController extends BaseController {
+
+ @Autowired
+ private BasWrkIotypeService basWrkIotypeService;
+
+ @RequestMapping(value = "/basWrkIotype/{id}/auth")
+ @ManagerAuth
+ public R get(@PathVariable("id") Long id) {
+ return R.ok(basWrkIotypeService.selectById(String.valueOf(id)));
+ }
+
+ @RequestMapping(value = "/basWrkIotype/list/auth")
+ @ManagerAuth
+ public R list(@RequestParam(defaultValue = "1")Integer curr,
+ @RequestParam(defaultValue = "10")Integer limit,
+ @RequestParam(required = false)String orderByField,
+ @RequestParam(required = false)String orderByType,
+ @RequestParam Map<String, Object> param){
+ excludeTrash(param);
+ EntityWrapper<BasWrkIotype> wrapper = new EntityWrapper<>();
+ convert(param, wrapper);
+ if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
+ return R.ok(basWrkIotypeService.selectPage(new Page<>(curr, limit), wrapper));
+ }
+
+ private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){
+ for (Map.Entry<String, Object> entry : map.entrySet()){
+ String val = String.valueOf(entry.getValue());
+ if (val.contains(RANGE_TIME_LINK)){
+ String[] dates = val.split(RANGE_TIME_LINK);
+ wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
+ wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
+ } else {
+ wrapper.like(entry.getKey(), val);
+ }
+ }
+ }
+
+ @RequestMapping(value = "/basWrkIotype/edit/auth")
+ @ManagerAuth
+ public R edit(BasWrkIotype basWrkIotype) {
+ if (Cools.isEmpty(basWrkIotype)){
+ return R.error();
+ }
+ if (null == basWrkIotype.getIoType()){
+ basWrkIotypeService.insert(basWrkIotype);
+ } else {
+ basWrkIotypeService.updateById(basWrkIotype);
+ }
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/basWrkIotype/add/auth")
+ @ManagerAuth(memo = "鍏ュ嚭搴撶被鍨嬫坊鍔�")
+ public R add(BasWrkIotype basWrkIotype) {
+ basWrkIotype.setModiUser(getUserId());
+ basWrkIotype.setModiTime(new Date());
+ basWrkIotype.setAppeUser(getUserId());
+ basWrkIotype.setAppeTime(new Date());
+ basWrkIotypeService.insert(basWrkIotype);
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/basWrkIotype/update/auth")
+ @ManagerAuth(memo = "鍏ュ嚭搴撶被鍨嬩慨鏀�")
+ public R update(BasWrkIotype basWrkIotype){
+ if (Cools.isEmpty(basWrkIotype) || null==basWrkIotype.getIoType()){
+ return R.error();
+ }
+ basWrkIotype.setModiUser(getUserId());
+ basWrkIotype.setModiTime(new Date());
+ basWrkIotypeService.updateById(basWrkIotype);
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/basWrkIotype/delete/auth")
+ @ManagerAuth(memo = "鍏ュ嚭搴撶被鍨嬪垹闄�")
+ public R delete(@RequestParam String param){
+ List<BasWrkIotype> list = JSONArray.parseArray(param, BasWrkIotype.class);
+ if (Cools.isEmpty(list)){
+ return R.error();
+ }
+ for (BasWrkIotype entity : list){
+ basWrkIotypeService.delete(new EntityWrapper<>(entity));
+ }
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/basWrkIotype/export/auth")
+ @ManagerAuth(memo = "鍏ュ嚭搴撶被鍨嬪鍑�")
+ public R export(@RequestBody JSONObject param){
+ List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
+ EntityWrapper<BasWrkIotype> wrapper = new EntityWrapper<>();
+ Map<String, Object> map = excludeTrash(param.getJSONObject("basWrkIotype"));
+ convert(map, wrapper);
+ List<BasWrkIotype> list = basWrkIotypeService.selectList(wrapper);
+ return R.ok(exportSupport(list, fields));
+ }
+
+ @RequestMapping(value = "/basWrkIotypeQuery/auth")
+ @ManagerAuth
+ public R query(String condition) {
+ EntityWrapper<BasWrkIotype> wrapper = new EntityWrapper<>();
+ wrapper.like("io_desc", condition);
+ Page<BasWrkIotype> page = basWrkIotypeService.selectPage(new Page<>(0, 10), wrapper);
+ List<Map<String, Object>> result = new ArrayList<>();
+ for (BasWrkIotype basWrkIotype : page.getRecords()){
+ Map<String, Object> map = new HashMap<>();
+ map.put("id", basWrkIotype.getIoType());
+ map.put("value", basWrkIotype.getIoDesc());
+ result.add(map);
+ }
+ return R.ok(result);
+ }
+
+ @RequestMapping(value = "/basWrkIotype/check/column/auth")
+ @ManagerAuth
+ public R query(@RequestBody JSONObject param) {
+ Wrapper<BasWrkIotype> wrapper = new EntityWrapper<BasWrkIotype>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val"));
+ if (null != basWrkIotypeService.selectOne(wrapper)){
+ return R.parse(BaseRes.REPEAT).add(getComment(BasWrkIotype.class, String.valueOf(param.get("key"))));
+ }
+ return R.ok();
+ }
+
+}
diff --git a/src/main/java/com/zy/asrs/controller/BasWrkStatusController.java b/src/main/java/com/zy/asrs/controller/BasWrkStatusController.java
new file mode 100644
index 0000000..321b8f6
--- /dev/null
+++ b/src/main/java/com/zy/asrs/controller/BasWrkStatusController.java
@@ -0,0 +1,147 @@
+package com.zy.asrs.controller;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.core.annotations.ManagerAuth;
+import com.core.common.BaseRes;
+import com.core.common.Cools;
+import com.core.common.DateUtils;
+import com.core.common.R;
+import com.zy.asrs.entity.BasWrkStatus;
+import com.zy.asrs.service.BasWrkStatusService;
+import com.zy.common.web.BaseController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.*;
+
+@RestController
+public class BasWrkStatusController extends BaseController {
+
+ @Autowired
+ private BasWrkStatusService basWrkStatusService;
+
+ @RequestMapping(value = "/basWrkStatus/{id}/auth")
+ @ManagerAuth
+ public R get(@PathVariable("id") Long id) {
+ return R.ok(basWrkStatusService.selectById(String.valueOf(id)));
+ }
+
+ @RequestMapping(value = "/basWrkStatus/list/auth")
+ @ManagerAuth
+ public R list(@RequestParam(defaultValue = "1")Integer curr,
+ @RequestParam(defaultValue = "10")Integer limit,
+ @RequestParam(required = false)String orderByField,
+ @RequestParam(required = false)String orderByType,
+ @RequestParam Map<String, Object> param){
+ excludeTrash(param);
+ EntityWrapper<BasWrkStatus> wrapper = new EntityWrapper<>();
+ convert(param, wrapper);
+ if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
+ return R.ok(basWrkStatusService.selectPage(new Page<>(curr, limit), wrapper));
+ }
+
+ private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){
+ for (Map.Entry<String, Object> entry : map.entrySet()){
+ String val = String.valueOf(entry.getValue());
+ if (val.contains(RANGE_TIME_LINK)){
+ String[] dates = val.split(RANGE_TIME_LINK);
+ wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
+ wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
+ } else {
+ wrapper.like(entry.getKey(), val);
+ }
+ }
+ }
+
+ @RequestMapping(value = "/basWrkStatus/edit/auth")
+ @ManagerAuth
+ public R edit(BasWrkStatus basWrkStatus) {
+ if (Cools.isEmpty(basWrkStatus)){
+ return R.error();
+ }
+ if (null == basWrkStatus.getWrkSts()){
+ basWrkStatusService.insert(basWrkStatus);
+ } else {
+ basWrkStatusService.updateById(basWrkStatus);
+ }
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/basWrkStatus/add/auth")
+ @ManagerAuth(memo = "宸ヤ綔鐘舵�佹坊鍔�")
+ public R add(BasWrkStatus basWrkStatus) {
+ basWrkStatus.setModiUser(getUserId());
+ basWrkStatus.setModiTime(new Date());
+ basWrkStatus.setAppeUser(getUserId());
+ basWrkStatus.setAppeTime(new Date());
+ basWrkStatusService.insert(basWrkStatus);
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/basWrkStatus/update/auth")
+ @ManagerAuth(memo = "宸ヤ綔鐘舵�佷慨鏀�")
+ public R update(BasWrkStatus basWrkStatus){
+ if (Cools.isEmpty(basWrkStatus) || null==basWrkStatus.getWrkSts()){
+ return R.error();
+ }
+ basWrkStatus.setModiUser(getUserId());
+ basWrkStatus.setModiTime(new Date());
+ basWrkStatusService.updateById(basWrkStatus);
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/basWrkStatus/delete/auth")
+ @ManagerAuth(memo = "宸ヤ綔鐘舵�佸垹闄�")
+ public R delete(@RequestParam String param){
+ List<BasWrkStatus> list = JSONArray.parseArray(param, BasWrkStatus.class);
+ if (Cools.isEmpty(list)){
+ return R.error();
+ }
+ for (BasWrkStatus entity : list){
+ basWrkStatusService.delete(new EntityWrapper<>(entity));
+ }
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/basWrkStatus/export/auth")
+ @ManagerAuth(memo = "宸ヤ綔鐘舵�佸鍑�")
+ public R export(@RequestBody JSONObject param){
+ List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
+ EntityWrapper<BasWrkStatus> wrapper = new EntityWrapper<>();
+ Map<String, Object> map = excludeTrash(param.getJSONObject("basWrkStatus"));
+ convert(map, wrapper);
+ List<BasWrkStatus> list = basWrkStatusService.selectList(wrapper);
+ return R.ok(exportSupport(list, fields));
+ }
+
+ @RequestMapping(value = "/basWrkStatusQuery/auth")
+ @ManagerAuth
+ public R query(String condition) {
+ EntityWrapper<BasWrkStatus> wrapper = new EntityWrapper<>();
+ wrapper.like("wrk_desc", condition);
+ Page<BasWrkStatus> page = basWrkStatusService.selectPage(new Page<>(0, 10), wrapper);
+ List<Map<String, Object>> result = new ArrayList<>();
+ for (BasWrkStatus basWrkStatus : page.getRecords()){
+ Map<String, Object> map = new HashMap<>();
+ map.put("id", basWrkStatus.getWrkSts());
+ map.put("value", basWrkStatus.getWrkDesc());
+ result.add(map);
+ }
+ return R.ok(result);
+ }
+
+ @RequestMapping(value = "/basWrkStatus/check/column/auth")
+ @ManagerAuth
+ public R query(@RequestBody JSONObject param) {
+ Wrapper<BasWrkStatus> wrapper = new EntityWrapper<BasWrkStatus>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val"));
+ if (null != basWrkStatusService.selectOne(wrapper)){
+ return R.parse(BaseRes.REPEAT).add(getComment(BasWrkStatus.class, String.valueOf(param.get("key"))));
+ }
+ return R.ok();
+ }
+
+}
diff --git a/src/main/java/com/zy/asrs/controller/LocMastController.java b/src/main/java/com/zy/asrs/controller/LocMastController.java
index 787d39d..a08e8c3 100644
--- a/src/main/java/com/zy/asrs/controller/LocMastController.java
+++ b/src/main/java/com/zy/asrs/controller/LocMastController.java
@@ -1,36 +1,142 @@
package com.zy.asrs.controller;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.baomidou.mybatisplus.plugins.Page;
import com.core.annotations.ManagerAuth;
+import com.core.common.BaseRes;
+import com.core.common.Cools;
+import com.core.common.DateUtils;
import com.core.common.R;
+import com.core.exception.CoolException;
import com.zy.asrs.entity.LocMast;
+import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.service.LocMastService;
import com.zy.asrs.utils.Utils;
import com.zy.common.model.MapNode;
import com.zy.common.utils.NavigateMapData;
+import com.zy.common.web.BaseController;
import com.zy.core.enums.LocStsType;
import com.zy.core.enums.MapNodeType;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
-import java.util.ArrayList;
-import java.util.List;
+import java.util.*;
@Slf4j
@RestController
-@RequestMapping("/locMast")
-public class LocMastController {
+public class LocMastController extends BaseController {
@Autowired
private NavigateMapData navigateMapData;
@Autowired
private LocMastService locMastService;
- @PostMapping("/init")
+ @RequestMapping(value = "/locMast/{id}/auth")
+ @ManagerAuth
+ public R get(@PathVariable("id") String id) {
+ return R.ok(locMastService.selectById(String.valueOf(id)));
+ }
+
+ @RequestMapping(value = "/locMast/list/auth")
+ @ManagerAuth
+ public R list(@RequestParam(defaultValue = "1")Integer curr,
+ @RequestParam(defaultValue = "10")Integer limit,
+ @RequestParam(required = false)String orderByField,
+ @RequestParam(required = false)String orderByType,
+ @RequestParam Map<String, Object> param){
+ excludeTrash(param);
+ EntityWrapper<LocMast> wrapper = new EntityWrapper<>();
+ convert(param, wrapper);
+ if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
+ return R.ok(locMastService.selectPage(new Page<>(curr, limit), wrapper));
+ }
+
+ private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){
+ for (Map.Entry<String, Object> entry : map.entrySet()){
+ String val = String.valueOf(entry.getValue());
+ if (val.contains(RANGE_TIME_LINK)){
+ String[] dates = val.split(RANGE_TIME_LINK);
+ wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
+ wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
+ } else {
+ wrapper.like(entry.getKey(), val);
+ }
+ }
+ }
+
+ @RequestMapping(value = "/locMast/update/auth")
+ @ManagerAuth(memo = "搴撲綅淇敼")
+ @Transactional
+ public R update(LocMast locMast){
+ if (Cools.isEmpty(locMast) || null==locMast.getLocNo()){
+ return R.error();
+ }
+
+ Date now = new Date();
+ locMast.setModiUser(getUserId());
+ locMast.setModiTime(now);
+ if(!locMastService.updateById(locMast)) {
+ throw new CoolException("鏈嶅姟鍣ㄩ敊璇紝璇疯仈绯荤鐞嗗憳");
+ }
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/locMast/delete/auth")
+ @ManagerAuth(memo = "搴撲綅鍒犻櫎")
+ public R delete(@RequestParam String param){
+ List<LocMast> list = JSONArray.parseArray(param, LocMast.class);
+ if (Cools.isEmpty(list)){
+ return R.error();
+ }
+ for (LocMast entity : list){
+ locMastService.delete(new EntityWrapper<>(entity));
+ }
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/locMast/export/auth")
+ @ManagerAuth(memo = "搴撲綅瀵煎嚭")
+ public R export(@RequestBody JSONObject param){
+ List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
+ EntityWrapper<LocMast> wrapper = new EntityWrapper<>();
+ Map<String, Object> map = excludeTrash(param.getJSONObject("locMast"));
+ convert(map, wrapper);
+ List<LocMast> list = locMastService.selectList(wrapper);
+ return R.ok(exportSupport(list, fields));
+ }
+
+ @RequestMapping(value = "/locMastQuery/auth")
+ @ManagerAuth
+ public R query(String condition) {
+ EntityWrapper<LocMast> wrapper = new EntityWrapper<>();
+ wrapper.like("loc_no", condition);
+ Page<LocMast> page = locMastService.selectPage(new Page<>(0, 10), wrapper);
+ List<Map<String, Object>> result = new ArrayList<>();
+ for (LocMast locMast : page.getRecords()){
+ Map<String, Object> map = new HashMap<>();
+ map.put("id", locMast.getLocNo());
+ map.put("value", locMast.getLocNo());
+ result.add(map);
+ }
+ return R.ok(result);
+ }
+
+ @RequestMapping(value = "/locMast/check/column/auth")
+ @ManagerAuth
+ public R query(@RequestBody JSONObject param) {
+ Wrapper<LocMast> wrapper = new EntityWrapper<LocMast>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val"));
+ if (null != locMastService.selectOne(wrapper)){
+ return R.parse(BaseRes.REPEAT).add(getComment(LocMast.class, String.valueOf(param.get("key"))));
+ }
+ return R.ok();
+ }
+
+ @PostMapping("/locMast/init")
@ManagerAuth(memo = "鍒濆鍖栧簱浣�")
@Transactional
public R shuttleStateTable(){
diff --git a/src/main/java/com/zy/asrs/controller/ShuttleController.java b/src/main/java/com/zy/asrs/controller/ShuttleController.java
index 54e8772..d2c475c 100644
--- a/src/main/java/com/zy/asrs/controller/ShuttleController.java
+++ b/src/main/java/com/zy/asrs/controller/ShuttleController.java
@@ -15,7 +15,6 @@
import com.zy.asrs.service.LocMastService;
import com.zy.asrs.service.WrkMastService;
import com.zy.asrs.utils.Utils;
-import com.zy.common.model.NavigateNode;
import com.zy.common.model.enums.NavigationMapType;
import com.zy.common.service.CommonService;
import com.zy.common.utils.NavigateMapUtils;
diff --git a/src/main/java/com/zy/asrs/controller/WrkLastnoController.java b/src/main/java/com/zy/asrs/controller/WrkLastnoController.java
new file mode 100644
index 0000000..0ee6a4e
--- /dev/null
+++ b/src/main/java/com/zy/asrs/controller/WrkLastnoController.java
@@ -0,0 +1,133 @@
+package com.zy.asrs.controller;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.core.annotations.ManagerAuth;
+import com.core.common.BaseRes;
+import com.core.common.Cools;
+import com.core.common.DateUtils;
+import com.core.common.R;
+import com.zy.asrs.entity.WrkLastno;
+import com.zy.asrs.service.WrkLastnoService;
+import com.zy.common.web.BaseController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.*;
+
+@RestController
+public class WrkLastnoController extends BaseController {
+
+ @Autowired
+ private WrkLastnoService wrkLastnoService;
+
+ @RequestMapping(value = "/wrkLastno/{id}/auth")
+ @ManagerAuth
+ public R get(@PathVariable("id") String id) {
+ return R.ok(wrkLastnoService.selectById(String.valueOf(id)));
+ }
+
+ @RequestMapping(value = "/wrkLastno/list/auth")
+ @ManagerAuth
+ public R list(@RequestParam(defaultValue = "1")Integer curr,
+ @RequestParam(defaultValue = "10")Integer limit,
+ @RequestParam(required = false)String orderByField,
+ @RequestParam(required = false)String orderByType,
+ @RequestParam Map<String, Object> param){
+ excludeTrash(param);
+ EntityWrapper<WrkLastno> wrapper = new EntityWrapper<>();
+ convert(param, wrapper);
+ if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
+ return R.ok(wrkLastnoService.selectPage(new Page<>(curr, limit), wrapper));
+ }
+
+ private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){
+ for (Map.Entry<String, Object> entry : map.entrySet()){
+ String val = String.valueOf(entry.getValue());
+ if (val.contains(RANGE_TIME_LINK)){
+ String[] dates = val.split(RANGE_TIME_LINK);
+ wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
+ wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
+ } else {
+ wrapper.like(entry.getKey(), val);
+ }
+ }
+ }
+
+ @RequestMapping(value = "/wrkLastno/add/auth")
+ @ManagerAuth(memo = "宸ヤ綔搴忓彿娣诲姞")
+ public R add(WrkLastno wrkLastno) {
+ wrkLastno.setModiUser(getUserId());
+ wrkLastno.setModiTime(new Date());
+ wrkLastno.setAppeUser(getUserId());
+ wrkLastno.setAppeTime(new Date());
+ wrkLastnoService.insert(wrkLastno);
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/wrkLastno/update/auth")
+ @ManagerAuth(memo = "宸ヤ綔搴忓彿淇敼")
+ public R update(WrkLastno wrkLastno){
+ if (Cools.isEmpty(wrkLastno) || null==wrkLastno.getWrkMk()){
+ return R.error();
+ }
+ wrkLastno.setModiUser(getUserId());
+ wrkLastno.setModiTime(new Date());
+ wrkLastnoService.updateById(wrkLastno);
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/wrkLastno/delete/auth")
+ @ManagerAuth(memo = "宸ヤ綔搴忓彿鍒犻櫎")
+ public R delete(@RequestParam String param){
+ List<WrkLastno> list = JSONArray.parseArray(param, WrkLastno.class);
+ if (Cools.isEmpty(list)){
+ return R.error();
+ }
+ for (WrkLastno entity : list){
+ wrkLastnoService.delete(new EntityWrapper<>(entity));
+ }
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/wrkLastno/export/auth")
+ @ManagerAuth(memo = "宸ヤ綔搴忓彿瀵煎嚭")
+ public R export(@RequestBody JSONObject param){
+ List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
+ EntityWrapper<WrkLastno> wrapper = new EntityWrapper<>();
+ Map<String, Object> map = excludeTrash(param.getJSONObject("wrkLastno"));
+ convert(map, wrapper);
+ List<WrkLastno> list = wrkLastnoService.selectList(wrapper);
+ return R.ok(exportSupport(list, fields));
+ }
+
+ @RequestMapping(value = "/wrkLastnoQuery/auth")
+ @ManagerAuth
+ public R query(String condition) {
+ EntityWrapper<WrkLastno> wrapper = new EntityWrapper<>();
+ wrapper.like("wrk_mk", condition);
+ Page<WrkLastno> page = wrkLastnoService.selectPage(new Page<>(0, 10), wrapper);
+ List<Map<String, Object>> result = new ArrayList<>();
+ for (WrkLastno wrkLastno : page.getRecords()){
+ Map<String, Object> map = new HashMap<>();
+ map.put("id", wrkLastno.getWrkMk());
+ map.put("value", wrkLastno.getWrkMk());
+ result.add(map);
+ }
+ return R.ok(result);
+ }
+
+ @RequestMapping(value = "/wrkLastno/check/column/auth")
+ @ManagerAuth
+ public R query(@RequestBody JSONObject param) {
+ Wrapper<WrkLastno> wrapper = new EntityWrapper<WrkLastno>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val"));
+ if (null != wrkLastnoService.selectOne(wrapper)){
+ return R.parse(BaseRes.REPEAT).add(getComment(WrkLastno.class, String.valueOf(param.get("key"))));
+ }
+ return R.ok();
+ }
+
+}
diff --git a/src/main/java/com/zy/asrs/controller/WrkMastLogController.java b/src/main/java/com/zy/asrs/controller/WrkMastLogController.java
new file mode 100644
index 0000000..7e0bec4
--- /dev/null
+++ b/src/main/java/com/zy/asrs/controller/WrkMastLogController.java
@@ -0,0 +1,143 @@
+package com.zy.asrs.controller;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.core.annotations.ManagerAuth;
+import com.core.common.BaseRes;
+import com.core.common.Cools;
+import com.core.common.DateUtils;
+import com.core.common.R;
+import com.zy.asrs.entity.WrkMastLog;
+import com.zy.asrs.service.WrkMastLogService;
+import com.zy.common.web.BaseController;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@RestController
+public class WrkMastLogController extends BaseController {
+
+ @Autowired
+ private WrkMastLogService wrkMastLogService;
+
+ @RequestMapping(value = "/wrkMastLog/{id}/auth")
+ @ManagerAuth
+ public R get(@PathVariable("id") String id) {
+ return R.ok(wrkMastLogService.selectById(String.valueOf(id)));
+ }
+
+ @RequestMapping(value = "/wrkMastLog/list/auth")
+ @ManagerAuth
+ public R list(@RequestParam(defaultValue = "1")Integer curr,
+ @RequestParam(defaultValue = "10")Integer limit,
+ @RequestParam(required = false)String orderByField,
+ @RequestParam(required = false)String orderByType,
+ @RequestParam(required = false)String condition,
+ @RequestParam Map<String, Object> param){
+ excludeTrash(param);
+ EntityWrapper<WrkMastLog> wrapper = new EntityWrapper<>();
+ convert(param, wrapper);
+ allLike(WrkMastLog.class, param.keySet(), wrapper, condition);
+ if (!Cools.isEmpty(orderByField)){
+ if (orderByField.endsWith("$")){
+ orderByField = orderByField.substring(0, orderByField.length()-1);
+ }
+ wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));
+ }else {
+ wrapper.orderBy("modi_time", false);
+ }
+ return R.ok(wrkMastLogService.selectPage(new Page<>(curr, limit), wrapper));
+ }
+
+ private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){
+ for (Map.Entry<String, Object> entry : map.entrySet()){
+ String val = String.valueOf(entry.getValue());
+ if (val.contains(RANGE_TIME_LINK)){
+ String[] dates = val.split(RANGE_TIME_LINK);
+ wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
+ wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
+ } else {
+ if (entry.getKey().equals("manu_type")) {
+ wrapper.like(entry.getKey(), val);
+ } else {
+ wrapper.eq(entry.getKey(), val);
+ }
+ }
+ }
+ }
+
+ @RequestMapping(value = "/wrkMastLog/add/auth")
+ @ManagerAuth(memo = "宸ヤ綔鍘嗗彶妗f坊鍔�")
+ public R add(WrkMastLog wrkMastLog) {
+ wrkMastLogService.insert(wrkMastLog);
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/wrkMastLog/update/auth")
+ @ManagerAuth(memo = "宸ヤ綔鍘嗗彶妗d慨鏀�")
+ public R update(WrkMastLog wrkMastLog){
+ if (Cools.isEmpty(wrkMastLog) || null==wrkMastLog.getId()){
+ return R.error();
+ }
+ wrkMastLogService.updateById(wrkMastLog);
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/wrkMastLog/delete/auth")
+ @ManagerAuth(memo = "宸ヤ綔鍘嗗彶妗e垹闄�")
+ public R delete(@RequestParam String param){
+ List<WrkMastLog> list = JSONArray.parseArray(param, WrkMastLog.class);
+ if (Cools.isEmpty(list)){
+ return R.error();
+ }
+ for (WrkMastLog entity : list){
+ wrkMastLogService.delete(new EntityWrapper<>(entity));
+ }
+ return R.ok();
+ }
+
+ @RequestMapping(value = "/wrkMastLog/export/auth")
+ @ManagerAuth(memo = "宸ヤ綔鍘嗗彶妗e鍑�")
+ public R export(@RequestBody JSONObject param){
+ List<String> fields = JSONObject.parseArray(param.getJSONArray("fields").toJSONString(), String.class);
+ EntityWrapper<WrkMastLog> wrapper = new EntityWrapper<>();
+ Map<String, Object> map = excludeTrash(param.getJSONObject("wrkMastLog"));
+ convert(map, wrapper);
+ List<WrkMastLog> list = wrkMastLogService.selectList(wrapper);
+ return R.ok(exportSupport(list, fields));
+ }
+
+ @RequestMapping(value = "/wrkMastLogQuery/auth")
+ @ManagerAuth
+ public R query(String condition) {
+ EntityWrapper<WrkMastLog> wrapper = new EntityWrapper<>();
+ wrapper.like("id", condition);
+ Page<WrkMastLog> page = wrkMastLogService.selectPage(new Page<>(0, 10), wrapper);
+ List<Map<String, Object>> result = new ArrayList<>();
+ for (WrkMastLog wrkMastLog : page.getRecords()){
+ Map<String, Object> map = new HashMap<>();
+ map.put("id", wrkMastLog.getId());
+ map.put("value", wrkMastLog.getId());
+ result.add(map);
+ }
+ return R.ok(result);
+ }
+
+ @RequestMapping(value = "/wrkMastLog/check/column/auth")
+ @ManagerAuth
+ public R query(@RequestBody JSONObject param) {
+ Wrapper<WrkMastLog> wrapper = new EntityWrapper<WrkMastLog>().eq(humpToLine(String.valueOf(param.get("key"))), param.get("val"));
+ if (null != wrkMastLogService.selectOne(wrapper)){
+ return R.parse(BaseRes.REPEAT).add(getComment(WrkMastLog.class, String.valueOf(param.get("key"))));
+ }
+ return R.ok();
+ }
+
+}
diff --git a/src/main/java/com/zy/asrs/entity/ApiLog.java b/src/main/java/com/zy/asrs/entity/ApiLog.java
new file mode 100644
index 0000000..45101d1
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/ApiLog.java
@@ -0,0 +1,193 @@
+package com.zy.asrs.entity;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+import com.core.common.Cools;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+@Data
+@TableName("man_api_log")
+public class ApiLog implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * ID
+ */
+ @ApiModelProperty(value= "ID")
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ /**
+ * 鏃ュ織缂栧彿
+ */
+ @ApiModelProperty(value= "鏃ュ織缂栧彿")
+ private String uuid;
+
+ /**
+ * 鍚嶇О绌洪棿
+ */
+ @ApiModelProperty(value= "鍚嶇О绌洪棿")
+ private String namespace;
+
+ /**
+ * 鎺ュ彛鍦板潃
+ */
+ @ApiModelProperty(value= "鎺ュ彛鍦板潃")
+ private String url;
+
+ /**
+ * 骞冲彴瀵嗛挜
+ */
+ @ApiModelProperty(value= "骞冲彴瀵嗛挜")
+ private String appkey;
+
+ /**
+ * 鏃堕棿鎴�
+ */
+ @ApiModelProperty(value= "鏃堕棿鎴�")
+ private String timestamp;
+
+ /**
+ * 瀹㈡埛绔疘P
+ */
+ @ApiModelProperty(value= "瀹㈡埛绔疘P")
+ @TableField("client_ip")
+ private String clientIp;
+
+ /**
+ * 璇锋眰鍐呭
+ */
+ @ApiModelProperty(value= "璇锋眰鍐呭")
+ private String request;
+
+ /**
+ * 鍝嶅簲鍐呭
+ */
+ @ApiModelProperty(value= "鍝嶅簲鍐呭")
+ private String response;
+
+ /**
+ * 寮傚父鍐呭
+ */
+ @ApiModelProperty(value= "寮傚父鍐呭")
+ private String err;
+
+ /**
+ * 缁撴灉 1: 鎴愬姛 0: 澶辫触
+ */
+ @ApiModelProperty(value= "缁撴灉 1: 鎴愬姛 0: 澶辫触 ")
+ private Integer result;
+
+ /**
+ * 鐘舵�� 1: 姝e父 0: 绂佺敤
+ */
+ @ApiModelProperty(value= "鐘舵�� 1: 姝e父 0: 绂佺敤 ")
+ private Integer status;
+
+ /**
+ * 娣诲姞鏃堕棿
+ */
+ @ApiModelProperty(value= "娣诲姞鏃堕棿")
+ @TableField("create_time")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private Date createTime;
+
+ /**
+ * 淇敼鏃堕棿
+ */
+ @ApiModelProperty(value= "淇敼鏃堕棿")
+ @TableField("update_time")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private Date updateTime;
+
+ /**
+ * 澶囨敞
+ */
+ @ApiModelProperty(value= "澶囨敞")
+ private String memo;
+
+ public ApiLog() {}
+
+ public ApiLog(String uuid, String namespace, String url, String appkey, String timestamp, String clientIp, String request, String response, String err, Integer result, Integer status, Date createTime, Date updateTime, String memo) {
+ this.uuid = uuid;
+ this.namespace = namespace;
+ this.url = url;
+ this.appkey = appkey;
+ this.timestamp = timestamp;
+ this.clientIp = clientIp;
+ this.request = request;
+ this.response = response;
+ this.err = err;
+ this.result = result;
+ this.status = status;
+ this.createTime = createTime;
+ this.updateTime = updateTime;
+ this.memo = memo;
+ }
+
+// ApiLog apiLog = new ApiLog(
+// null, // 鏃ュ織缂栧彿
+// null, // 鍚嶇О绌洪棿
+// null, // 鎺ュ彛鍦板潃
+// null, // 骞冲彴瀵嗛挜
+// null, // 鏃堕棿鎴�
+// null, // 瀹㈡埛绔疘P
+// null, // 璇锋眰鍐呭
+// null, // 鍝嶅簲鍐呭
+// null, // 寮傚父鍐呭
+// null, // 缁撴灉
+// null, // 鐘舵��
+// null, // 娣诲姞鏃堕棿
+// null, // 淇敼鏃堕棿
+// null // 澶囨敞
+// );
+
+ public String getResult$(){
+ if (null == this.result){ return null; }
+ switch (this.result){
+ case 1:
+ return "鎴愬姛";
+ case 0:
+ return "澶辫触";
+ default:
+ return String.valueOf(this.result);
+ }
+ }
+
+ public String getStatus$(){
+ if (null == this.status){ return null; }
+ switch (this.status){
+ case 1:
+ return "姝e父";
+ case 0:
+ return "绂佺敤";
+ default:
+ return String.valueOf(this.status);
+ }
+ }
+
+ public String getCreateTime$(){
+ if (Cools.isEmpty(this.createTime)){
+ return "";
+ }
+ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.createTime);
+ }
+
+ public String getUpdateTime$(){
+ if (Cools.isEmpty(this.updateTime)){
+ return "";
+ }
+ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime);
+ }
+
+
+}
diff --git a/src/main/java/com/zy/asrs/entity/BasLocSts.java b/src/main/java/com/zy/asrs/entity/BasLocSts.java
new file mode 100644
index 0000000..13d16b9
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/BasLocSts.java
@@ -0,0 +1,164 @@
+package com.zy.asrs.entity;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+import com.core.common.Cools;
+import com.core.common.SpringUtils;
+import com.zy.system.entity.User;
+import com.zy.system.service.UserService;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+@TableName("asr_bas_loc_sts")
+public class BasLocSts implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 搴撲綅鐘舵�佷唬鍙�
+ */
+ @ApiModelProperty(value= "搴撲綅鐘舵�佷唬鍙�")
+ @TableId(value = "loc_sts", type = IdType.INPUT)
+ @TableField("loc_sts")
+ private String locSts;
+
+ /**
+ * 搴撲綅鐘舵�佹弿杩�
+ */
+ @ApiModelProperty(value= "搴撲綅鐘舵�佹弿杩�")
+ @TableField("loc_desc")
+ private String locDesc;
+
+ /**
+ * 淇敼浜哄憳
+ */
+ @ApiModelProperty(value= "淇敼浜哄憳")
+ @TableField("modi_user")
+ private Long modiUser;
+
+ /**
+ * 淇敼鏃堕棿
+ */
+ @ApiModelProperty(value= "淇敼鏃堕棿")
+ @TableField("modi_time")
+ private Date modiTime;
+
+ /**
+ * 鍒涘缓鑰�
+ */
+ @ApiModelProperty(value= "鍒涘缓鑰�")
+ @TableField("appe_user")
+ private Long appeUser;
+
+ /**
+ * 娣诲姞鏃堕棿
+ */
+ @ApiModelProperty(value= "娣诲姞鏃堕棿")
+ @TableField("appe_time")
+ private Date appeTime;
+
+ public BasLocSts() {}
+
+ public BasLocSts(String locDesc, Long modiUser, Date modiTime, Long appeUser, Date appeTime) {
+ this.locDesc = locDesc;
+ this.modiUser = modiUser;
+ this.modiTime = modiTime;
+ this.appeUser = appeUser;
+ this.appeTime = appeTime;
+ }
+
+// BasLocSts basLocSts = new BasLocSts(
+// null, // 搴撲綅鐘舵�佹弿杩�
+// null, // 淇敼浜哄憳
+// null, // 淇敼鏃堕棿
+// null, // 鍒涘缓鑰�
+// null // 娣诲姞鏃堕棿
+// );
+
+ public String getLocSts() {
+ return locSts;
+ }
+
+ public void setLocSts(String locSts) {
+ this.locSts = locSts;
+ }
+
+ public String getLocDesc() {
+ return locDesc;
+ }
+
+ public void setLocDesc(String locDesc) {
+ this.locDesc = locDesc;
+ }
+
+ public Long getModiUser() {
+ return modiUser;
+ }
+
+ public String getModiUser$(){
+ UserService service = SpringUtils.getBean(UserService.class);
+ User user = service.selectById(this.modiUser);
+ if (!Cools.isEmpty(user)){
+ return String.valueOf(user.getUsername());
+ }
+ return null;
+ }
+
+ public void setModiUser(Long modiUser) {
+ this.modiUser = modiUser;
+ }
+
+ public Date getModiTime() {
+ return modiTime;
+ }
+
+ public String getModiTime$(){
+ if (Cools.isEmpty(this.modiTime)){
+ return "";
+ }
+ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modiTime);
+ }
+
+ public void setModiTime(Date modiTime) {
+ this.modiTime = modiTime;
+ }
+
+ public Long getAppeUser() {
+ return appeUser;
+ }
+
+ public String getAppeUser$(){
+ UserService service = SpringUtils.getBean(UserService.class);
+ User user = service.selectById(this.appeUser);
+ if (!Cools.isEmpty(user)){
+ return String.valueOf(user.getUsername());
+ }
+ return null;
+ }
+
+ public void setAppeUser(Long appeUser) {
+ this.appeUser = appeUser;
+ }
+
+ public Date getAppeTime() {
+ return appeTime;
+ }
+
+ public String getAppeTime$(){
+ if (Cools.isEmpty(this.appeTime)){
+ return "";
+ }
+ return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appeTime);
+ }
+
+ public void setAppeTime(Date appeTime) {
+ this.appeTime = appeTime;
+ }
+
+
+}
diff --git a/src/main/java/com/zy/asrs/entity/BasShuttleOpt.java b/src/main/java/com/zy/asrs/entity/BasShuttleOpt.java
index 1e476d8..2a1325f 100644
--- a/src/main/java/com/zy/asrs/entity/BasShuttleOpt.java
+++ b/src/main/java/com/zy/asrs/entity/BasShuttleOpt.java
@@ -97,12 +97,6 @@
private String command;
/**
- * 鍛戒护
- */
- @ApiModelProperty(value= "鍛戒护鎶ユ枃(涓嬪彂)")
- private String commandSend;
-
- /**
* 绯荤粺鐘舵��
*/
@ApiModelProperty(value= "绯荤粺鐘舵��")
@@ -132,7 +126,7 @@
public BasShuttleOpt() {}
- public BasShuttleOpt(Integer wrkNo, Integer shuttleNo, Date sendTime, String mode, String sourceLocNo, String distLocNo, Date updateTime, Long updateBy, String memo, String command, String commandSend, String systemStatus) {
+ public BasShuttleOpt(Integer wrkNo, Integer shuttleNo, Date sendTime, String mode, String sourceLocNo, String distLocNo, Date updateTime, Long updateBy, String memo, String command, String systemStatus) {
this.wrkNo = wrkNo;
this.shuttleNo = shuttleNo;
this.sendTime = sendTime;
@@ -143,7 +137,6 @@
this.updateBy = updateBy;
this.memo = memo;
this.command = command;
- this.commandSend = commandSend;
this.systemStatus = systemStatus;
}
diff --git a/src/main/java/com/zy/asrs/entity/LocMast.java b/src/main/java/com/zy/asrs/entity/LocMast.java
index fa8ef82..24b77db 100644
--- a/src/main/java/com/zy/asrs/entity/LocMast.java
+++ b/src/main/java/com/zy/asrs/entity/LocMast.java
@@ -6,6 +6,7 @@
import com.baomidou.mybatisplus.enums.IdType;
import com.core.common.Cools;
import com.core.common.SpringUtils;
+import com.zy.asrs.service.BasLocStsService;
import com.zy.system.entity.User;
import com.zy.system.service.UserService;
import io.swagger.annotations.ApiModelProperty;
@@ -111,6 +112,15 @@
@TableField("qr_code_value")
private String qrCodeValue;
+ public String getLocSts$(){
+ BasLocStsService service = SpringUtils.getBean(BasLocStsService.class);
+ BasLocSts basLocSts = service.selectById(this.locSts);
+ if (!Cools.isEmpty(basLocSts)){
+ return String.valueOf(basLocSts.getLocDesc());
+ }
+ return null;
+ }
+
public String getIoTime$(){
if (Cools.isEmpty(this.ioTime)){
return "";
diff --git a/src/main/java/com/zy/asrs/entity/WrkMastLog.java b/src/main/java/com/zy/asrs/entity/WrkMastLog.java
index 18bfcc7..0679314 100644
--- a/src/main/java/com/zy/asrs/entity/WrkMastLog.java
+++ b/src/main/java/com/zy/asrs/entity/WrkMastLog.java
@@ -6,6 +6,8 @@
import com.baomidou.mybatisplus.enums.IdType;
import com.core.common.Cools;
import com.core.common.SpringUtils;
+import com.zy.asrs.mapper.BasWrkIotypeMapper;
+import com.zy.asrs.mapper.BasWrkStatusMapper;
import com.zy.asrs.service.BasDevpService;
import com.zy.asrs.service.LocMastService;
import com.zy.asrs.service.WrkMastService;
@@ -135,8 +137,8 @@
private String errorMemo;
@ApiModelProperty(value= "")
- @TableField("memo_m")
- private String memoM;
+ @TableField("memo")
+ private String memo;
/**
* 鏉$爜
@@ -166,6 +168,24 @@
public WrkMastLog() {}
+ public String getWrkSts$(){
+ BasWrkStatusMapper mapper = SpringUtils.getBean(BasWrkStatusMapper.class);
+ BasWrkStatus entity = mapper.selectById(this.wrkSts);
+ if (entity != null) {
+ return entity.getWrkDesc();
+ }
+ return null;
+ }
+
+ public String getIoType$(){
+ BasWrkIotypeMapper mapper = SpringUtils.getBean(BasWrkIotypeMapper.class);
+ BasWrkIotype entity = mapper.selectById(this.ioType);
+ if (entity != null) {
+ return entity.getIoDesc();
+ }
+ return null;
+ }
+
public String getWrkNo$(){
WrkMastService service = SpringUtils.getBean(WrkMastService.class);
WrkMast wrkMast = service.selectById(this.wrkNo);
diff --git a/src/main/java/com/zy/asrs/mapper/ApiLogMapper.java b/src/main/java/com/zy/asrs/mapper/ApiLogMapper.java
new file mode 100644
index 0000000..a20d98f
--- /dev/null
+++ b/src/main/java/com/zy/asrs/mapper/ApiLogMapper.java
@@ -0,0 +1,14 @@
+package com.zy.asrs.mapper;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.zy.asrs.entity.ApiLog;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+@Mapper
+@Repository
+public interface ApiLogMapper extends BaseMapper<ApiLog> {
+
+ int clearWeekBefore();
+
+}
diff --git a/src/main/java/com/zy/asrs/mapper/BasLocStsMapper.java b/src/main/java/com/zy/asrs/mapper/BasLocStsMapper.java
new file mode 100644
index 0000000..6b4fbce
--- /dev/null
+++ b/src/main/java/com/zy/asrs/mapper/BasLocStsMapper.java
@@ -0,0 +1,12 @@
+package com.zy.asrs.mapper;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.zy.asrs.entity.BasLocSts;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+@Mapper
+@Repository
+public interface BasLocStsMapper extends BaseMapper<BasLocSts> {
+
+}
diff --git a/src/main/java/com/zy/asrs/service/ApiLogService.java b/src/main/java/com/zy/asrs/service/ApiLogService.java
new file mode 100644
index 0000000..8e3c698
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/ApiLogService.java
@@ -0,0 +1,12 @@
+package com.zy.asrs.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.zy.asrs.entity.ApiLog;
+
+public interface ApiLogService extends IService<ApiLog> {
+
+ void save(String namespace, String url, String appkey, String ip, String request, String response, boolean success);
+
+ boolean clearWeekBefore();
+
+}
diff --git a/src/main/java/com/zy/asrs/service/BasLocStsService.java b/src/main/java/com/zy/asrs/service/BasLocStsService.java
new file mode 100644
index 0000000..85f68fb
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/BasLocStsService.java
@@ -0,0 +1,8 @@
+package com.zy.asrs.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.zy.asrs.entity.BasLocSts;
+
+public interface BasLocStsService extends IService<BasLocSts> {
+
+}
diff --git a/src/main/java/com/zy/asrs/service/BasPlcerrorService.java b/src/main/java/com/zy/asrs/service/BasPlcerrorService.java
new file mode 100644
index 0000000..45c6c91
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/BasPlcerrorService.java
@@ -0,0 +1,8 @@
+package com.zy.asrs.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.zy.asrs.entity.BasPlcerror;
+
+public interface BasPlcerrorService extends IService<BasPlcerror> {
+
+}
diff --git a/src/main/java/com/zy/asrs/service/BasWrkIotypeService.java b/src/main/java/com/zy/asrs/service/BasWrkIotypeService.java
new file mode 100644
index 0000000..aeb603d
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/BasWrkIotypeService.java
@@ -0,0 +1,8 @@
+package com.zy.asrs.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.zy.asrs.entity.BasWrkIotype;
+
+public interface BasWrkIotypeService extends IService<BasWrkIotype> {
+
+}
diff --git a/src/main/java/com/zy/asrs/service/BasWrkStatusService.java b/src/main/java/com/zy/asrs/service/BasWrkStatusService.java
new file mode 100644
index 0000000..d64196e
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/BasWrkStatusService.java
@@ -0,0 +1,8 @@
+package com.zy.asrs.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.zy.asrs.entity.BasWrkStatus;
+
+public interface BasWrkStatusService extends IService<BasWrkStatus> {
+
+}
diff --git a/src/main/java/com/zy/asrs/service/impl/ApiLogServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/ApiLogServiceImpl.java
new file mode 100644
index 0000000..30a725f
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/impl/ApiLogServiceImpl.java
@@ -0,0 +1,51 @@
+package com.zy.asrs.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.core.common.SnowflakeIdWorker;
+import com.zy.asrs.entity.ApiLog;
+import com.zy.asrs.mapper.ApiLogMapper;
+import com.zy.asrs.service.ApiLogService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+
+@Slf4j
+@Service("apiLogService")
+public class ApiLogServiceImpl extends ServiceImpl<ApiLogMapper, ApiLog> implements ApiLogService {
+
+ @Autowired
+ private SnowflakeIdWorker snowflakeIdWorker;
+
+ @Async
+ @Override
+ public void save(String namespace, String url, String appkey, String ip, String request, String response, boolean success) {
+ Date now = new Date();
+ ApiLog apiLog = new ApiLog(
+ String.valueOf(snowflakeIdWorker.nextId()), // 鏃ュ織缂栧彿
+ namespace, // 鍚嶇О绌洪棿
+ url, // 鎺ュ彛鍦板潃
+ appkey, // 骞冲彴瀵嗛挜
+ String.valueOf(now.getTime()), // 鏃堕棿鎴�
+ ip, // 瀹㈡埛绔疘P
+ request, // 璇锋眰鍐呭
+ response,
+ null, // 寮傚父鍐呭
+ success?1:0 , // 缁撴灉
+ 1, // 鐘舵��
+ now, // 娣诲姞鏃堕棿
+ null, // 淇敼鏃堕棿
+ null // 澶囨敞
+ );
+ if (!this.insert(apiLog)) {
+ log.error("鎺ュ彛璋冪敤鏃ュ織淇濆瓨澶辫触锛�");
+ }
+ }
+
+ @Override
+ public boolean clearWeekBefore() {
+ return this.baseMapper.clearWeekBefore() > 0;
+ }
+}
diff --git a/src/main/java/com/zy/asrs/service/impl/BasLocStsServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/BasLocStsServiceImpl.java
new file mode 100644
index 0000000..59a5106
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/impl/BasLocStsServiceImpl.java
@@ -0,0 +1,12 @@
+package com.zy.asrs.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.zy.asrs.entity.BasLocSts;
+import com.zy.asrs.mapper.BasLocStsMapper;
+import com.zy.asrs.service.BasLocStsService;
+import org.springframework.stereotype.Service;
+
+@Service("basLocStsService")
+public class BasLocStsServiceImpl extends ServiceImpl<BasLocStsMapper, BasLocSts> implements BasLocStsService {
+
+}
diff --git a/src/main/java/com/zy/asrs/service/impl/BasPlcerrorServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/BasPlcerrorServiceImpl.java
new file mode 100644
index 0000000..0d48f6f
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/impl/BasPlcerrorServiceImpl.java
@@ -0,0 +1,12 @@
+package com.zy.asrs.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.zy.asrs.entity.BasPlcerror;
+import com.zy.asrs.mapper.BasPlcerrorMapper;
+import com.zy.asrs.service.BasPlcerrorService;
+import org.springframework.stereotype.Service;
+
+@Service("basPlcerrorService")
+public class BasPlcerrorServiceImpl extends ServiceImpl<BasPlcerrorMapper, BasPlcerror> implements BasPlcerrorService {
+
+}
diff --git a/src/main/java/com/zy/asrs/service/impl/BasWrkIotypeServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/BasWrkIotypeServiceImpl.java
new file mode 100644
index 0000000..9c6c8c6
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/impl/BasWrkIotypeServiceImpl.java
@@ -0,0 +1,12 @@
+package com.zy.asrs.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.zy.asrs.entity.BasWrkIotype;
+import com.zy.asrs.mapper.BasWrkIotypeMapper;
+import com.zy.asrs.service.BasWrkIotypeService;
+import org.springframework.stereotype.Service;
+
+@Service("basWrkIotypeService")
+public class BasWrkIotypeServiceImpl extends ServiceImpl<BasWrkIotypeMapper, BasWrkIotype> implements BasWrkIotypeService {
+
+}
diff --git a/src/main/java/com/zy/asrs/service/impl/BasWrkStatusServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/BasWrkStatusServiceImpl.java
new file mode 100644
index 0000000..9684470
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/impl/BasWrkStatusServiceImpl.java
@@ -0,0 +1,12 @@
+package com.zy.asrs.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.zy.asrs.entity.BasWrkStatus;
+import com.zy.asrs.mapper.BasWrkStatusMapper;
+import com.zy.asrs.service.BasWrkStatusService;
+import org.springframework.stereotype.Service;
+
+@Service("basWrkStatusService")
+public class BasWrkStatusServiceImpl extends ServiceImpl<BasWrkStatusMapper, BasWrkStatus> implements BasWrkStatusService {
+
+}
diff --git a/src/main/java/com/zy/system/controller/ResourceController.java b/src/main/java/com/zy/system/controller/ResourceController.java
index aded982..4cc94dc 100644
--- a/src/main/java/com/zy/system/controller/ResourceController.java
+++ b/src/main/java/com/zy/system/controller/ResourceController.java
@@ -89,11 +89,10 @@
@RequestMapping(value = "/resource/delete/auth")
@ManagerAuth(memo = "鑿滃崟鍒犻櫎")
- public R delete(Integer[] ids){
- if (Cools.isEmpty(ids)){
- return R.error();
+ public R delete(@RequestParam(value="ids[]") Long[] ids){
+ for (Long id : ids){
+ resourceService.deleteById(id);
}
- resourceService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
@@ -124,4 +123,21 @@
return R.ok(result);
}
+ @RequestMapping(value = "/resource/tree/auth")
+ @ManagerAuth
+ public R tree(@RequestParam(defaultValue = "1")Integer curr,
+ @RequestParam(defaultValue = "10")Integer limit,
+ @RequestParam(required = false)String orderByField,
+ @RequestParam(required = false)String orderByType,
+ @RequestParam Map<String, Object> param){
+ EntityWrapper<Resource> wrapper = new EntityWrapper<>();
+ excludeTrash(param);
+ convert(param, wrapper);
+ if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
+ else {
+ wrapper.orderBy("sort");
+ }
+ return R.parse("0-鎿嶄綔鎴愬姛").add(resourceService.selectList(wrapper));
+ }
+
}
diff --git a/src/main/java/com/zy/system/controller/UserController.java b/src/main/java/com/zy/system/controller/UserController.java
index f3ec1c2..9344ff6 100644
--- a/src/main/java/com/zy/system/controller/UserController.java
+++ b/src/main/java/com/zy/system/controller/UserController.java
@@ -96,7 +96,7 @@
return R.ok();
}
- @RequestMapping(value = "/user/update/auth")
+ @RequestMapping(value = "/user/update/auth")
@ManagerAuth(memo = "绯荤粺鐢ㄦ埛淇敼")
public R update(User user){
if (Cools.isEmpty(user) || null==user.getId()){
@@ -112,17 +112,19 @@
if (user.getMobile()!=null) {
entity.setMobile(user.getMobile());
}
+ if (user.getRoleId() !=null) {
+ entity.setRoleId(user.getRoleId());
+ }
userService.updateById(entity);
return R.ok();
}
@RequestMapping(value = "/user/delete/auth")
@ManagerAuth(memo = "绯荤粺鐢ㄦ埛鍒犻櫎")
- public R delete(Integer[] ids){
- if (Cools.isEmpty(ids)){
- return R.error();
+ public R delete(@RequestParam(value="ids[]") Long[] ids){
+ for (Long id : ids){
+ userService.deleteById(id);
}
- userService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
diff --git a/src/main/resources/mapper/ApiLogMapper.xml b/src/main/resources/mapper/ApiLogMapper.xml
new file mode 100644
index 0000000..05e704e
--- /dev/null
+++ b/src/main/resources/mapper/ApiLogMapper.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.zy.asrs.mapper.ApiLogMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.zy.asrs.entity.ApiLog">
+ <id column="id" property="id" />
+ <result column="uuid" property="uuid" />
+ <result column="namespace" property="namespace" />
+ <result column="url" property="url" />
+ <result column="appkey" property="appkey" />
+ <result column="timestamp" property="timestamp" />
+ <result column="client_ip" property="clientIp" />
+ <result column="request" property="request" />
+ <result column="response" property="response" />
+ <result column="err" property="err" />
+ <result column="result" property="result" />
+ <result column="status" property="status" />
+ <result column="create_time" property="createTime" />
+ <result column="update_time" property="updateTime" />
+ <result column="memo" property="memo" />
+
+ </resultMap>
+
+ <delete id="clearWeekBefore">
+ delete from man_api_log
+ where 1=1
+ and datediff(week,create_time,getdate()) >= 1
+ and result != 1
+ </delete>
+
+</mapper>
diff --git a/src/main/resources/mapper/BasLocStsMapper.xml b/src/main/resources/mapper/BasLocStsMapper.xml
new file mode 100644
index 0000000..1933fd0
--- /dev/null
+++ b/src/main/resources/mapper/BasLocStsMapper.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.zy.asrs.mapper.BasLocStsMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.zy.asrs.entity.BasLocSts">
+ <id column="loc_sts" property="locSts" />
+ <result column="loc_desc" property="locDesc" />
+ <result column="modi_user" property="modiUser" />
+ <result column="modi_time" property="modiTime" />
+ <result column="appe_user" property="appeUser" />
+ <result column="appe_time" property="appeTime" />
+
+ </resultMap>
+
+</mapper>
diff --git a/src/main/resources/mapper/WrkMastLogMapper.xml b/src/main/resources/mapper/WrkMastLogMapper.xml
index 10b5858..eba392f 100644
--- a/src/main/resources/mapper/WrkMastLogMapper.xml
+++ b/src/main/resources/mapper/WrkMastLogMapper.xml
@@ -21,7 +21,7 @@
<result column="appe_time" property="appeTime" />
<result column="error_time" property="errorTime" />
<result column="error_memo" property="errorMemo" />
- <result column="memo_m" property="memoM" />
+ <result column="memo" property="memo" />
<result column="barcode" property="barcode" />
<result column="lift_no" property="liftNo" />
<result column="shuttle_no" property="shuttleNo" />
diff --git a/src/main/webapp/static/css/admin.css b/src/main/webapp/static/css/admin.css
new file mode 100644
index 0000000..b4ecfd4
--- /dev/null
+++ b/src/main/webapp/static/css/admin.css
@@ -0,0 +1,445 @@
+锘�/** EasyWeb iframe v3.1.8 date:2020-05-04 License By http://easyweb.vip */
+*{font-family:"Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","寰蒋闆呴粦",Arial,sans-serif}body{color:#595959;background-color:#f5f7f9}.layui-layout-body{overflow:auto}.layui-layout-admin{position:absolute;top:0;left:0;right:0;bottom:0;overflow:hidden;-webkit-transition:left .3s,right .3s;transition:left .3s,right .3s}.layui-layout-admin .layui-header{position:absolute;top:0;left:0;right:0;height:50px;background-color:#fff;box-shadow:0 1px 0 0 rgba(0,0,0,.03);z-index:999}.layui-layout-admin .layui-header .layui-logo{color:#ddd;width:235px;line-height:50px;background-color:#191a23;box-shadow:1px 2px 2px 0 rgba(0,0,0,.05);position:relative;vertical-align:top;white-space:nowrap;display:inline-block;-webkit-transition:width .3s;transition:width .3s;overflow:hidden}.layui-layout-admin .layui-header .layui-logo img{height:28px;vertical-align:middle}.layui-layout-admin .layui-header .layui-logo cite{font-style:normal;vertical-align:middle}.layui-layout-admin .layui-header .layui-layout-left{padding:0;vertical-align:top;display:inline-block;position:static!important}.layui-layout-admin .layui-header .layui-layout-right{padding:0}.layui-layout-admin .layui-header .layui-nav .layui-this:after,.layui-layout-admin .layui-header .layui-nav-bar{height:2px;top:0!important;background-color:#191a23}.layui-layout-admin .layui-header .layui-nav .layui-nav-item{line-height:50px;vertical-align:top}.layui-layout-admin .layui-header .layui-nav .layui-nav-item .layui-nav-child{top:55px}.layui-layout-admin .layui-header .layui-nav-item .layui-icon{font-size:16px}.layui-layout-admin .layui-header a{color:#595959;padding:0 15px;cursor:pointer}.layui-layout-admin .layui-header a:hover{color:#595959}.layui-layout-admin .layui-header .layui-nav-child a{color:#595959;text-align:center}.layui-layout-admin .layui-header .layui-nav .layui-nav-more{border-color:#8c8c8c transparent transparent}.layui-layout-admin .layui-header .layui-nav .layui-nav-mored{border-color:transparent transparent #8c8c8c}.layui-layout-admin .layui-header .layui-nav-img{width:26px;height:26px;margin-right:2px;vertical-align:middle}.layui-layout-admin .layui-header .layui-nav-img+cite{margin-right:3px;vertical-align:middle}.layui-layout-admin .layui-header .layui-badge-dot{right:8px;margin:-10px 0 0 0}.layui-layout-admin .layui-body{position:absolute;left:235px;top:50px;z-index:auto;overflow:auto;-webkit-transition:left .3s;transition:left .3s;-webkit-overflow-scrolling:touch}.admin-iframe{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%}.layui-fluid{padding:15px}.layui-layout-admin .layui-footer{position:absolute;left:235px;background:#fff;box-sizing:border-box;border-top:1px solid #f5f7f9;-webkit-transition:left .3s;transition:left .3s;overflow:hidden}.close-footer .layui-layout-admin .layui-footer{display:none}.close-footer .layui-layout-admin .layui-body{bottom:0}.layui-layout-admin .layui-side{position:absolute;top:50px;width:235px;background-color:#191a23;box-shadow:1px 2px 2px 0 rgba(0,0,0,.05);-webkit-transition:width .3s;transition:width .3s;-webkit-user-select:none;user-select:none;z-index:1000}.layui-layout-admin .layui-side .layui-side-scroll{width:255px;-webkit-transition:width .3s;transition:width .3s}.layui-layout-admin .layui-side .layui-nav{width:235px;background-color:transparent;-webkit-transition:width .3s;transition:width .3s}.layui-layout-admin .layui-side>.layui-side-scroll>.layui-nav:first-child{margin-top:10px}.layui-layout-admin .layui-side .layui-nav .layui-nav-item>a{cursor:pointer;padding-top:5px;padding-bottom:5px}.layui-layout-admin .layui-side .layui-nav .layui-nav-item a{-webkit-transition:color .3s,background-color .3s;transition:color .3s,background-color .3s}.layui-layout-admin .layui-side .layui-nav .layui-nav-more{right:15px}.layui-layout-admin .layui-side .layui-nav .layui-nav-item>.layui-nav-child{position:static}.layui-layout-admin .layui-side .layui-nav .layui-nav-item .layui-nav-child a{padding-left:50px;cursor:pointer}.layui-layout-admin .layui-side .layui-nav .layui-nav-item .layui-nav-child .layui-nav-child a{padding-left:70px}.layui-layout-admin .layui-side .layui-nav .layui-nav-item .layui-nav-child .layui-nav-child .layui-nav-child a{padding-left:90px}.layui-layout-admin .layui-side .layui-nav .layui-nav-item .layui-nav-child .layui-nav-child .layui-nav-child .layui-nav-child a{padding-left:110px}@media screen and (min-width:769px){.layui-layout-admin.admin-nav-mini .layui-header .layui-logo{width:60px}.layui-layout-admin.admin-nav-mini .layui-header .layui-logo cite{display:none}.layui-layout-admin.admin-nav-mini .layui-header .layui-icon-shrink-right:before{content:"\e66b"}.layui-layout-admin.admin-nav-mini .layui-body,.layui-layout-admin.admin-nav-mini .layui-footer{left:60px}.layui-layout-admin.admin-nav-mini .layui-side,.layui-layout-admin.admin-nav-mini .layui-side .layui-nav{width:60px}.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item>a{overflow:visible}.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item>a>cite,.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item>a .layui-nav-more,.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-itemed>.layui-nav-child{display:none!important}.layui-layout-admin.admin-nav-mini .layui-side .layui-nav li.layui-nav-itemed>a{background:rgba(0,0,0,.3)}.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .layui-nav-item>a>.layui-icon{font-size:16px;-webkit-transition:font-size .3s;transition:font-size .3s}.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child{position:fixed;top:60px;left:60px;padding:5px;min-width:150px;display:block!important;background:transparent!important}.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child:before{content:'';position:absolute;right:5px;left:5px;bottom:0;top:0;border-radius:4px;background:#191a23;box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child dd:first-child>.layui-nav-child{margin-top:-5px}.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child dd:last-child>.layui-nav-child.show-top{margin-top:5px}.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child>dd>a{padding:0 20px!important}.layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child>dd>a .layui-nav-more{border-color:transparent transparent transparent rgba(255,255,255,.7);right:7px;margin-top:-6px}.layui-layout-admin.admin-nav-mini .layui-side .layui-nav.arrow2 .admin-nav-hover>.layui-nav-child>dd>a .layui-nav-more,.layui-layout-admin.admin-nav-mini .layui-side .layui-nav.arrow3 .admin-nav-hover>.layui-nav-child>dd>a .layui-nav-more{-o-transform:rotate(0deg);-ms-transform:rotate(0deg);-moz-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg);width:6px;height:10px;right:10px;margin-top:-5px;font-weight:600}.layui-layout-admin.admin-nav-mini .layui-side .layui-nav.arrow2 .admin-nav-hover>.layui-nav-child>dd>a .layui-nav-more:before,.layui-layout-admin.admin-nav-mini .layui-side .layui-nav.arrow3 .admin-nav-hover>.layui-nav-child>dd>a .layui-nav-more:before{content:"\e602";left:-4px;top:-2px}.layui-layout-admin.admin-nav-mini .layui-side .layui-nav.arrow3 .admin-nav-hover>.layui-nav-child>dd>a .layui-nav-more:before{-o-transform:rotate(0deg);-ms-transform:rotate(0deg);-moz-transform:rotate(0deg);-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@media screen and (max-width:768px){.layui-layout-admin{left:-235px}.layui-layout-admin .layui-side,.layui-layout-admin .layui-header .layui-logo{box-shadow:none!important}.layui-layout-admin .layui-header .layui-icon-shrink-right:before{content:"\e66b"}.layui-layout-admin.admin-nav-mini{left:0;right:-235px;position:fixed}.layui-layout-admin.admin-nav-mini .layui-header .layui-icon-shrink-right:before{content:"\e668"}.layui-layout-admin.admin-nav-mini .layui-side,.layui-layout-admin.admin-nav-mini .layui-header .layui-logo{box-shadow:1px 0 2px 0 rgba(0,0,0,.05)}.layui-layout-admin.admin-nav-mini .site-mobile-shade{position:absolute;top:0;right:0;bottom:0;left:235px;background-color:rgba(0,0,0,.25);-webkit-transition:background-color .3s;transition:background-color .3s;cursor:pointer;z-index:1000}}.ew-anim-drop-in{-webkit-animation:ewTransitionDropIn .3s ease-in-out;animation:ewTransitionDropIn .3s ease-in-out;-webkit-transform-origin:0 0;transform-origin:0 0}@-webkit-keyframes ewTransitionDropIn{from{opacity:0;-webkit-transform:scale(0.8)}to{opacity:1;-webkit-transform:scale(1)}}@keyframes ewTransitionDropIn{from{opacity:0;transform:scale(0.8)}to{opacity:1;transform:scale(1)}}.layui-nav-tree .layui-nav-bar{display:none}.layui-nav-tree>.layui-nav-item>a:before{content:"";position:absolute;top:0;left:0;bottom:100%;width:4px;background-color:#009688;-webkit-transition:all .3s ease;transition:all .3s ease}.layui-nav-tree>.layui-nav-item:hover>a:before{bottom:0}.layui-nav-tree .layui-nav-item a:hover{background-color:transparent}.layui-nav-tree .layui-this>a:hover{background-color:#009688}.layui-nav-tree .layui-nav-child dd.layui-this,.layui-nav-tree .layui-this{background:transparent}.layui-nav-tree .layui-nav-item .layui-nav-child{padding:5px 0;background-color:rgba(0,0,0,.3)!important}.layui-nav-tree.arrow2 .layui-nav-more{font-family:layui-icon!important;font-size:12px;font-weight:600;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden;line-height:normal;border:0;margin:-3px 0 0 0;padding:0;width:10px;height:6px;top:50%;display:inline-block;-webkit-transition:all .3s ease;transition:all .3s ease}.layui-nav-tree.arrow2 .layui-nav-more:before{content:"\e61a";position:absolute;right:-1px;top:-4px}.layui-nav-tree.arrow2 .layui-nav-itemed>a>.layui-nav-more{-ms-transform:rotate(-180deg);-moz-transform:rotate(-180deg);-webkit-transform:rotate(-180deg);-o-transform:rotate(-180deg);transform:rotate(-180deg)}.layui-nav-tree.arrow3 .layui-nav-more{font-family:layui-icon!important;font-size:12px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden;line-height:normal;border:0;margin:-5px 0 0 0;padding:0;width:10px;height:10px;top:50%;display:inline-block;-webkit-transition:all .3s ease;transition:all .3s ease}.layui-nav-tree.arrow3 .layui-nav-more:before{content:"\e654";position:absolute;top:-2px;left:-1px}.layui-nav-tree.arrow3 .layui-nav-itemed>a>.layui-nav-more{-ms-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-webkit-transform:rotate(-45deg);-o-transform:rotate(-45deg);transform:rotate(-45deg)}.layui-nav-tree.arrow3 .layui-nav-itemed>a>.layui-nav-more:before{content:'';width:8px;height:2px;background-color:rgba(255,255,255,.7);top:4px;left:1px;-ms-transform:rotate(45deg);-moz-transform:rotate(45deg);-webkit-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}.layui-layout-admin .layui-body>.layui-tab{position:absolute;top:0;left:0;right:0;bottom:0;margin:0}.layui-layout-admin .layui-body>.layui-tab>.layui-tab-content{position:absolute;left:0;right:0;bottom:0;top:40px;padding:0}.layui-layout-admin .layui-body>.layui-tab>.layui-tab-content>.layui-tab-item{position:absolute;bottom:0;right:0;top:0;left:0;overflow:auto;-webkit-overflow-scrolling:touch;display:block;visibility:hidden;opacity:0;filter:Alpha(opacity=0)}.layui-layout-admin .layui-body>.layui-tab>.layui-tab-content>.layui-tab-item.layui-show{visibility:visible;opacity:1;filter:Alpha(opacity=100)}.layui-layout-admin.admin-side-flexible .layui-body>.layui-tab>.layui-tab-content>.layui-tab-item{display:none}.layui-layout-admin .layui-body>.layui-tab>.layui-tab-title{height:40px;line-height:40px;padding:0 80px 0 40px;background-color:#fff;box-shadow:0 1px 2px 0 rgba(0,0,0,.1);position:absolute;top:0;left:0;right:0;border:0;overflow:hidden;-webkit-transition:none;transition:none;z-index:998}.layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li{min-width:auto;max-width:160px;line-height:40px;padding:0 30px 0 15px;border-right:1px solid #f6f6f6;overflow:hidden;text-overflow:ellipsis;vertical-align:top;-webkit-transition:background-color .2s;transition:background-color .2s}.layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li.layui-this,.layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li:hover{background-color:#f6f6f6}.layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li.layui-this:after{height:2px;border:0;border-radius:0;background-color:#191a23}.layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li:first-child{padding:0 15px}.layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li cite{font-style:normal}.layui-layout-admin .layui-body>.layui-tab>.layui-tab-title .layui-tab-bar{display:none}.layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li .layui-tab-close{width:16px;height:16px;line-height:16px;font-size:12px;border-radius:50%;position:absolute;top:12px;right:8px;-webkit-transition:background-color .2s,color .2s;transition:background-color .2s,color .2s}.layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li:first-child .layui-tab-close{display:none}.admin-tabs-control{position:absolute;top:0;width:40px;height:40px;line-height:40px;background-color:#fff;border-left:1px solid #f6f6f6;-webkit-transition:background-color .2s;transition:background-color .2s;text-align:center;cursor:pointer;z-index:998}.admin-tabs-control:hover{background-color:#f6f6f6}.admin-tabs-control.layui-icon-prev{left:0;border-left:none;border-right:1px solid #f6f6f6}.admin-tabs-control.layui-icon-next{right:40px}.admin-tabs-control.layui-icon-down{right:0}.admin-tabs-control>.layui-nav,.admin-tabs-control>.layui-nav .layui-nav-item{position:absolute;top:0;left:0;padding:0;width:100%;height:100%;background:transparent}.admin-tabs-control>.layui-nav .layui-nav-child{right:0;top:40px;left:auto}.admin-tabs-control>.layui-nav .layui-nav-child a{color:#595959}.admin-tabs-control>.layui-nav .layui-nav-bar,.admin-tabs-control>.layui-nav .layui-nav-more{display:none}.layui-body-header{padding:0 20px;height:40px;line-height:40px;background-color:#fff;box-shadow:0 1px 2px 0 rgba(0,0,0,.1);box-sizing:border-box;position:absolute;left:0;right:0;z-index:998;display:none}.layui-body-header.show{display:block}.layui-body-header-title{padding-left:6px;border-left:4px solid #009688}.layui-body-header.show+div{position:absolute;left:0;right:0;top:40px;bottom:0;overflow:auto;-webkit-overflow-scrolling:touch}.hide-body-title .layui-body-header.show{display:none}.hide-body-title .layui-body-header.show+div{top:0}.layui-layout-admin .layui-body>.page-loading,.layui-layout-admin .layui-body>.layui-tab>.layui-tab-content>.layui-tab-item>.page-loading,.layui-layout-admin .layui-body>div>iframe[lay-id]+.page-loading{z-index:997}.layui-layer.layui-layer-adminRight{bottom:0;top:50px!important;border:none!important;box-shadow:1px 1px 50px rgba(0,0,0,.3)!important;overflow:auto}.layui-layer.layui-layer-adminRight0{bottom:0;top:0!important;border:none!important;box-shadow:1px 1px 50px rgba(0,0,0,.3)!important;overflow:auto}.layui-layer.layui-layer-adminRight>.layui-layer-content,.layui-layer.layui-layer-adminRight>.layui-layer-content>iframe{height:100%!important}.layui-layer.layui-layer-adminRight>.layui-layer-title+.layui-layer-content{position:absolute;top:43px;left:0;right:0;bottom:0;height:auto!important}.layui-anim-rl{-webkit-animation-name:layui-rl;animation-name:layui-rl}@-webkit-keyframes layui-rl{from{-webkit-transform:translate3d(100%,0,0)}to{-webkit-transform:translate3d(0,0,0)}}@keyframes layui-rl{from{transform:translate3d(100%,0,0)}to{transform:translate3d(0,0,0)}}.layui-anim-lr,.layui-anim-rl.layer-anim-close{-webkit-animation-name:layui-lr;animation-name:layui-lr}@-webkit-keyframes layui-lr{from{-webkit-transform:translate3d(0,0,0);opacity:1}to{-webkit-transform:translate3d(100%,0,0);opacity:1}}@keyframes layui-lr{from{transform:translate3d(0,0,0)}to{transform:translate3d(100%,0,0)}}.layui-layer.layui-layer-admin{border:none!important;box-shadow:1px 1px 50px rgba(0,0,0,.3)!important}.layui-layer.layui-layer-admin .layui-layer-title{color:#fff;height:50px;line-height:50px;background-color:#191a23;border:0}.layui-layer.layui-layer-admin .layui-layer-setwin{top:17px}.layui-layer.layui-layer-admin .layui-layer-setwin a{color:#fff;font-size:16px;font-style:normal;font-family:layui-icon!important;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.layui-layer.layui-layer-admin .layui-layer-setwin .layui-layer-close1{background:0;margin-top:-1px}.layui-layer.layui-layer-admin .layui-layer-setwin .layui-layer-close1:before{content:"\1006"}.layui-layer.layui-layer-admin .layui-layer-setwin .layui-layer-min cite{background-color:#ddd}.layui-layer.layui-layer-admin .layui-layer-setwin .layui-layer-max{font-size:14px;padding-top:1px;background:0}.layui-layer.layui-layer-admin .layui-layer-setwin .layui-layer-max:before{content:"\e622"}.layui-layer.layui-layer-admin .layui-layer-setwin .layui-layer-maxmin:before{content:"\e758"}.layui-layer.layui-layer-admin .layui-layer-btn{padding-bottom:15px}.layui-layer.layui-layer-admin .layui-layer-btn .layui-layer-btn0{border-color:#009688;background-color:#009688}.layui-layer.layui-layer-admin .layui-layer-btn a{height:34px;line-height:34px}.layui-layer-admin{max-width:100%}.layui-layer-iframe .layui-layer-content{overflow:auto;-webkit-overflow-scrolling:touch}@media screen and (max-width:768px){.layui-layer-admin{max-width:98%;max-width:-webkit-calc(100% - 30px);max-width:-moz-calc(100% - 30px);max-width:calc(100% - 30px);width:max-content;left:0!important;right:0!important;margin:auto!important;margin-bottom:15px!important}.layui-layer-admin[area]{max-width:100%;margin-bottom:0!important}}body .layui-layer-msg{border:0;border-radius:4px;box-shadow:0 2px 12px 0 rgba(0,0,0,0.1)}body .layui-layer-load{background:transparent}.page-loading{position:absolute;display:block;width:100%;height:100%;top:0;left:0;right:0;bottom:0;z-index:19891017;background-color:#fff}body>.page-loading{position:fixed;background-color:#f5f7f9}.layui-layout-admin>.layui-body>.layui-tab>.layui-tab-content>.layui-tab-item>.page-loading,.layui-layout-admin>.layui-body>.page-loading,.layui-layout-admin>.layui-body>div>iframe[lay-id]+.page-loading{background-color:#f5f7f9}.layui-layout-admin>.layui-body>.layui-body-header.show+div+.page-loading{top:40px;height:auto}.page-no-scroll{overflow-x:hidden!important;overflow-y:hidden!important;min-height:80px}.rubik-loader,.ball-loader,.signal-loader,.layui-loader{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.ball-loader>span,.signal-loader>span{background-color:#4aca85;display:inline-block}.ball-loader>span:nth-child(1),.ball-loader.sm>span:nth-child(1),.signal-loader>span:nth-child(1),.signal-loader.sm>span:nth-child(1){-webkit-animation-delay:0s;animation-delay:0s}.ball-loader>span:nth-child(2),.ball-loader.sm>span:nth-child(2),.signal-loader>span:nth-child(2),.signal-loader.sm>span:nth-child(2){-webkit-animation-delay:.1s;animation-delay:.1s}.ball-loader>span:nth-child(3),.ball-loader.sm>span:nth-child(3),.signal-loader>span:nth-child(3),.signal-loader.sm>span:nth-child(3){-webkit-animation-delay:.15s;animation-delay:.15s}.ball-loader>span:nth-child(4),.ball-loader.sm>span:nth-child(4),.signal-loader>span:nth-child(4),.signal-loader.sm>span:nth-child(4){-webkit-animation-delay:.2s;animation-delay:.2s}.rubik-loader{width:64px;height:64px;background-image:url(img/ic_loading.gif);background-repeat:no-repeat;background-position:center;background-size:contain}.rubik-loader.sm{width:50px;height:50px}.ball-loader>span{width:20px;height:20px;margin:0 3px;border-radius:50%;-webkit-transform:scale(0);-ms-transform:scale(0);transform:scale(0);-webkit-animation:1s ball-load ease-in-out infinite;animation:ball-load 1s ease-in-out infinite}@-webkit-keyframes ball-load{0%{-webkit-transform:scale(0)}50%{-webkit-transform:scale(1)}100%{-webkit-transform:scale(0)}}@keyframes ball-load{0%{transform:scale(0)}50%{transform:scale(1)}100%{transform:scale(0)}}.ball-loader.sm>span{width:15px;height:15px;margin:0 2px}.signal-loader{width:50px;height:22px}.signal-loader>span{width:8px;height:0;position:absolute;bottom:0;left:0;margin:0;-webkit-animation:signal-load 1s infinite;animation:signal-load 1s infinite}.signal-loader>span:nth-child(2){left:14px}.signal-loader>span:nth-child(3){left:28px}.signal-loader>span:nth-child(4){left:42px}@-webkit-keyframes signal-load{0%{height:0}50%{height:22px}100%{height:0}}@keyframes signal-load{0%{height:0}50%{height:22px}100%{height:0}}.signal-loader.sm{width:32px;height:15px}.signal-loader.sm>span{width:5px;-webkit-animation:signal-load-sm 1s infinite;animation:signal-load-sm 1s infinite}.signal-loader.sm>span:nth-child(2){left:9px}.signal-loader.sm>span:nth-child(3){left:18px}.signal-loader.sm>span:nth-child(4){left:27px}@-webkit-keyframes signal-load-sm{0%{height:0}50%{height:15px}100%{height:0}}@keyframes signal-load-sm{0%{height:0}50%{height:15px}100%{height:0}}.layui-loader .layui-icon{font-size:36px;color:#bbb}.layui-loader.sm .layui-icon{font-size:30px}.layui-form.toolbar .layui-form-item,.layui-form.toolbar .layui-form-item .layui-inline>.layui-input-inline{margin-bottom:0}.layui-form.toolbar .layui-form-item .layui-inline{margin-bottom:10px}.toolbar+.layui-table,.layui-card-body>.layui-table,.toolbar+table+.layui-table-view,.layui-card-body>.layui-table-view,.toolbar+table+.ew-tree-table{margin:0}.mr0,.layui-form.toolbar .layui-form-item .layui-inline>.layui-input-inline{margin-right:0!important}.w-auto{width:auto!important}.model-form{padding:25px 30px 0 0}.model-form.no-padding{padding:0}.model-form .model-form-body{overflow-y:auto;padding:25px 30px 0 0;max-height:calc(100vh - 180px)}.model-form.no-padding .model-form-footer{padding-top:10px;padding-right:30px}.layui-form.model-form>.layui-form-item:last-child{margin-bottom:0;padding-bottom:20px}.layui-form-required:before{content:"*";display:inline-block;font-family:SimSun;margin-right:4px;font-size:14px;line-height:1;color:#ed4014}.layui-input,.layui-textarea{color:#595959}.layui-form-select .layui-input{padding-right:0}.layui-form-select-top .layui-form-select>dl{top:auto;bottom:42px}.ew-select-fixed .layui-form-selected dl{position:fixed;min-width:auto;bottom:auto;right:auto}body .layui-form-checked[lay-skin=primary] i,body .layui-form-checked[lay-skin=primary]:hover i{color:#fff}body .layui-form-checkbox[lay-skin=primary] span,body .layui-form-checkbox[lay-skin=primary]:hover span{background-color:transparent}body .layui-form-danger+.layui-form-select .layui-input,body .layui-input.layui-form-danger:focus,body .layui-textarea.layui-form-danger:focus{border-color:#ff5722!important}body .layui-laypage input.layui-input{height:30px;line-height:30px}body .layui-table-page .layui-laypage input.layui-input{height:26px;line-height:26px}body .layui-form-onswitch em{margin-left:3px;margin-right:18px}.layui-btn{-webkit-transition:background-color .2s;transition:background-color .2s}body .layui-btn.layui-btn-radius{border-radius:100px}.layui-btn-primary{color:#595959;border-color:#e6e6e6}.layui-btn-primary:hover{border-color:#bbb}.layui-btn-group .layui-btn-primary:hover{border-color:#e6e6e6}.layui-btn-group .layui-btn-primary:first-child{border-left:1px solid #e6e6e6}body .layui-btn.layui-btn-disabled,body .layui-transfer-active .layui-btn.layui-btn-disabled{background-color:#fbfbfb!important;border-color:#e6e6e6!important;color:#c9c9c9!important}body .layui-btn.layui-btn-primary{background-color:#fff}body .layui-btn.layui-btn-normal{background-color:#1e9fff}body .layui-btn.layui-btn-warm{background-color:#ffb800}body .layui-btn.layui-btn-danger{background-color:#ff5722}.layui-btn-group>.layui-btn+.layui-btn{border-radius:0}.layui-btn-group>.layui-btn:last-child{border-top-right-radius:2px;border-bottom-right-radius:2px}body .layui-transfer-active .layui-btn{background-color:#5fb878!important;border-color:#5fb878!important;color:#fff!important}.btn-circle{width:50px;height:50px;line-height:50px;border-radius:50%;background:#009688;position:fixed;right:15px;bottom:15px;color:#fff;text-align:center;box-shadow:0 0 8px rgba(0,0,0,.2);cursor:pointer}.btn-circle:hover{color:#fff;opacity:.8}.btn-circle .layui-icon{font-size:24px}.icon-date,.date-icon{background-image:url(img/icon_date.png);background-repeat:no-repeat;background-position:right center;padding-right:28px}.icon-search{background-image:url(img/icon_search.png);background-repeat:no-repeat;background-position:right center;padding-right:26px}span.icon-text>.layui-icon,a.icon-text>.layui-icon,.layui-form-label.icon-text>.layui-icon{font-size:14px;margin:0 2px}.layui-btn.icon-btn{padding:0 10px}.layui-btn.layui-btn-sm.icon-btn{padding:0 6px}.bg-white,html.bg-white>body{background-color:white}[ew-href],[lay-tips]{cursor:pointer}.inline-block{display:inline-block}.pull-right{float:right}.pull-left{float:left}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-primary,.layui-link{color:#009688!important}.text-success{color:#5fb878!important}.text-warning{color:#ffb800!important}.text-danger{color:#ff5722!important}.text-info{color:#01aaed!important}.text-muted{color:#c2c2c2!important}.layui-text a:not(.layui-btn){color:#2d8cf0;cursor:pointer}.layui-text a:not(.layui-btn):hover{text-decoration:none}.ew-console-wrapper .layui-card{box-shadow:none;border-radius:4px}.layui-card-header{color:#595959}.lay-big-font{font-size:36px;line-height:36px;padding:5px 0 10px;overflow:hidden;white-space:nowrap;word-break:break-all;text-overflow:ellipsis}.no-scrollbar{overflow-x:hidden!important;overflow-y:hidden!important}input.layui-disabled,input.layui-disabled:hover,textarea.layui-disabled,textarea.layui-disabled:hover{color:#595959!important;background-color:#f6f6f6}.layui-input::-webkit-input-placeholder,.layui-textarea::-webkit-input-placeholder{color:#ccc}.layui-input::-moz-placeholder,.layui-textarea::-moz-placeholder{color:#ccc}.layui-input::-ms-input-placeholder,.layui-textarea::-ms-input-placeholder{color:#ccc}.dropdown-menu{display:inline-block}.dropdown-menu .dropdown-menu-nav{display:none}.dropdown-menu+.dropdown-menu,.layui-btn+.dropdown-menu,.dropdown-menu+.layui-btn{margin-left:10px}::-webkit-scrollbar{width:10px;height:10px;background:transparent}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{border-radius:5px;background-color:#c1c1c1}::-webkit-scrollbar-thumb:hover{background-color:#a8a8a8}.mini-bar::-webkit-scrollbar{width:6px;height:6px}.mini-bar::-webkit-scrollbar-thumb{border-radius:3px}@media screen and (max-width:768px){::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-thumb{border-radius:0}}#ew-map-select-map{height:450px}#ew-map-select-pois{height:450px;overflow-x:hidden;overflow-y:auto}.ew-map-select-search-list-item{padding:10px 30px 10px 15px;border-bottom:1px solid #e8e8e8;cursor:pointer;position:relative}.ew-map-select-search-list-item:hover{background:#f2f2f2}.ew-map-select-search-list-item:last-child{border-bottom:0}.ew-map-select-search-list-item .ew-map-select-search-list-item-title{font-size:14px;color:#262626}.ew-map-select-search-list-item .ew-map-select-search-list-item-address{font-size:12px;color:#595959;padding-top:5px}.ew-map-select-search-list-item-icon-ok{position:absolute;right:15px;top:50%;transform:translateY(-50%)}.ew-map-select-search-list-item-icon-ok .layui-icon{color:#3b74ff}.ew-map-select-tool{padding:5px 15px;box-shadow:0 1px 0 0 rgba(0,0,0,.05)}#ew-map-select-center-img{position:absolute;bottom:50%;left:50%;width:26px;margin-left:-13px}#ew-map-select-center-img2{position:absolute;left:50%;top:50%;font-size:12px;display:inline-block;margin-left:-6px;margin-top:-7px;color:#3b74ff}.bounceInDown{animation:bounceInDown 500ms;animation-direction:alternate;-webkit-animation:bounceInDown 500ms;-webkit-animation-direction:alternate}@-webkit-keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1)}0%,to{-webkit-transform:translate3d(0,0,0)}25%{-webkit-transform:translate3d(0,-30px,0)}50%{-webkit-transform:translate3d(0,-15px,0)}75%{-webkit-transform:translate3d(0,-4px,0)}}@keyframes bounceInDown{0%,60%,75%,90%,to{transition-timing-function:cubic-bezier(.215,.61,.355,1)}0%,to{transform:translate3d(0,0,0)}25%{transform:translate3d(0,-10px,0)}50%{transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,-10px,0)}}#ew-map-select-tips{position:absolute;z-index:999;background:#fff;max-height:430px;overflow:auto;top:48px;left:56px;width:280px;box-shadow:0 2px 4px rgba(0,0,0,.12);border:1px solid #d2d2d2}#ew-map-select-tips .ew-map-select-search-list-item{padding:10px 15px 10px 35px}.ew-map-select-search-list-item-icon-search{position:absolute;left:10px;top:50%;transform:translateY(-50%)}.ew-map-select-search-list-item-icon-search .layui-icon{color:#8c8c8c}.table-tool-mini .layui-table-view{position:relative}.table-tool-mini .layui-table-tool{position:absolute;min-height:unset;height:auto;padding:3px 10px;width:auto;top:-38px;right:-1px;border-top-right-radius:8px;border-top-left-radius:8px;border:1px solid #e6e6e6;border-bottom:0}.table-tool-mini .layui-table-tool .layui-table-tool-temp{padding-right:0;display:inline-block}.table-tool-mini .layui-table-tool .layui-table-tool-self{position:static;display:inline-block}.table-tool-mini .layui-table-tool .layui-table-tool-self .layui-inline[lay-event]:first-child{margin:0}.table-tool-mini.full-table .layui-table-tool{top:-35px;height:1px;padding:0 10px;background:transparent;border:0}.table-tool-mini.full-table .layui-table-tool:before{content:"";position:absolute;top:-3px;right:0;left:0;height:36px;background-color:#f2f2f2;border-top-right-radius:8px;border-top-left-radius:8px;border:1px solid #e6e6e6;border-bottom:0}@media screen and (max-width:768px){.layui-laydate-range{left:0!important;top:0!important;right:0!important;margin:10px auto!important;max-width:95%}.layui-laydate-range .layui-laydate-main,.layui-laydate-range .layui-laydate-content table{width:100%}.layui-laydate-range .laydate-main-list-0 .laydate-next-m,.layui-laydate-range .laydate-main-list-0 .laydate-next-y,.layui-laydate-range .laydate-main-list-1 .laydate-prev-m,.layui-laydate-range .laydate-main-list-1 .laydate-prev-y{display:inline-block!important}.layui-laydate-range .laydate-main-list-1 .layui-laydate-header{border-top:1px solid #e2e2e2}.layui-laydate-range .laydate-main-list-1 .layui-laydate-content{border-left:none!important}.layui-laydate-range .laydate-time-list ol li{padding-left:0!important;text-align:center}.layui-laydate-range .laydate-time-list ol{overflow:auto!important}}.layui-tree-spread>div>div>span>.layui-tree-iconArrow:after{border-color:#c0c4cc transparent transparent transparent;top:6px;left:0}.layui-tree .layui-tree-iconArrow:after{transition:none}.ew-tb-cell-ck .layui-form-checkbox[lay-skin=primary]{padding-left:22px}.ew-tb-cell-ck .layui-form-checkbox[lay-skin=primary] span{padding-right:5px}.ew-field-group>.layui-elem-field{border-bottom:0;margin:0}.ew-field-group>.ew-field-box{border:1px solid #e6e6e6;padding:10px 15px;border-top:0}body .layui-elem-quote.layui-quote-nm{border-color:#e6e6e6}.layui-card>.layui-tab-brief>.layui-tab-title li{padding:0 5px;margin:0 10px;line-height:43px;height:43px;transition:color .2s;-webkit-transition:color .2s}.layui-card>.layui-tab-brief>.layui-tab-title li:after{height:43px}.layui-card>.layui-tab-brief>.layui-tab-title{border-bottom-color:#f6f6f6;height:42px;transition:none;-webkit-transition:none}.layui-card>.layui-tab-brief>.layui-tab-content{padding:10px 15px}.layui-tab.layui-tab-vertical{position:relative}.layui-tab.layui-tab-vertical:after{content:"";clear:both;display:block}.layui-tab.layui-tab-vertical>.layui-tab-title{width:130px;height:auto;border:0;border-right:1px solid #e9e9e9;box-sizing:border-box;padding:10px 0;float:left}.layui-tab.layui-tab-vertical>.layui-tab-title>li{display:block;margin-right:-1px;border-right:2px solid transparent;white-space:normal;line-height:normal;padding:10px 20px;text-align:right}.layui-tab.layui-tab-vertical>.layui-tab-title>li.layui-this{border-right:2px solid #5fb878;color:#5fb878}.layui-tab.layui-tab-vertical>.layui-tab-title>li.layui-this:after{display:none}.layui-tab.layui-tab-vertical>.layui-tab-title>li>.layui-icon{font-size:14px;margin-right:5px}.layui-tab.layui-tab-vertical>.layui-tab-content{margin-left:130px}.layui-tab.layui-tab-vertical.layui-tab-vertical-right>.layui-tab-title{float:right;border-right:0;border-left:1px solid #e9e9e9}.layui-tab.layui-tab-vertical.layui-tab-vertical-right>.layui-tab-content{margin-left:0;margin-right:130px}.layui-tab.layui-tab-vertical.layui-tab-vertical-right>.layui-tab-title>li{text-align:left;border-left:2px solid transparent;border-right:0}.layui-tab.layui-tab-vertical.layui-tab-vertical-right>.layui-tab-title>li.layui-this{border-left:2px solid #5fb878}.layui-tab.layui-tab-vertical.layui-tab-vertical-full>.layui-tab-title{position:absolute;top:0;left:0;right:auto;min-height:100%}.layui-tab.layui-tab-vertical.layui-tab-vertical-right.layui-tab-vertical-full>.layui-tab-title{right:0;left:auto}.ew-btn-loading{opacity:.8;pointer-events:none;font-size:0!important}.ew-btn-loading *{display:none!important}.ew-btn-loading>.ew-btn-loading-text{font-size:14px!important;display:inline-block!important}.ew-btn-loading.layui-btn-sm>.ew-btn-loading-text,.ew-btn-loading.layui-btn-xs>.ew-btn-loading-text{font-size:12px!important}.ew-btn-loading.layui-btn-lg>.ew-btn-loading-text{font-size:16px!important}.ew-btn-loading>.ew-btn-loading-text *{display:inline-block!important}.form-search-expand,.form-search-expand:hover{padding:0!important;color:#2d8cf0!important;border:none!important;box-shadow:none!important;background-color:transparent!important}.form-search-expand .layui-icon{font-size:12px!important;font-weight:600!important}.form-search-show-expand{display:none!important}.layui-badge-green{color:#52c41a;background:#f6ffed;border:1px solid #b7eb8f}.layui-badge-blue{color:#1890ff;background:#e6f7ff;border:1px solid #91d5ff}.layui-badge-red{color:#f5222d;background:#fff1f0;border:1px solid #ffa39e}.layui-badge-yellow{color:#faad14;background:#fffbe6;border:1px solid #ffe58f}.layui-badge-gray{color:#8c8c8c;background:#fafafa;border:1px solid #ccc}.layui-badge{height:20px;line-height:19px;box-sizing:border-box}.layui-badge-list .layui-badge{height:23px;line-height:22px;margin:0 6px 8px 0}.layui-badge-list .layui-badge.layui-bg-gray{border:1px solid #ccc;background-color:#fafafa!important}.layui-card .layui-card-header .layui-badge.pull-right{top:50%;margin-top:-10px}#ew-lock-screen-group{position:fixed;top:0;left:0;right:0;bottom:0;z-index:19891099}.ios-iframe-body{position:absolute;top:0;left:0;right:0;bottom:0}xm-select>.xm-body{margin-left:-2px}xm-select>.xm-body .xm-option{background-color:transparent!important}xm-select>.xm-body .xm-option.hide-icon.selected{background-color:#5fb878!important}xm-select>.xm-body .xm-option:hover{background-color:#f2f2f2!important}.xm-body .xm-tree{min-width:200px}.xm-body .xm-tree .xm-option-content{padding-left:6px}xm-select{border-color:#e6e6e6!important}xm-select:hover{border-color:#d2d2d2!important}xm-select[style="border-color: rgb(229, 77, 66);"]{border-color:#e54d42!important}body .ew-xmselect-tree xm-select .xm-body .xm-option .xm-option-icon{position:absolute;left:30px;top:0;right:0;bottom:0;width:auto;height:auto;border:none!important;z-index:1}body .ew-xmselect-tree xm-select .xm-body .xm-option .xm-option-icon:before{display:none}body .ew-xmselect-tree xm-select .xm-body .xm-option.selected{background-color:#f2f2f2!important}body .ew-xmselect-tree xm-select .xm-body .xm-option.selected .xm-option-content{color:#5fb878!important}.theme-blue .layui-layout-admin .layui-header .layui-logo{color:#fff;box-shadow:none;background-color:transparent}.theme-blue .layui-layout-admin .layui-header{background-color:#3c8dbc}.theme-blue .layui-layout-admin .layui-header a{color:#fff}.theme-blue .layui-layout-admin .layui-header a:hover{color:#fff}.theme-blue .layui-layout-admin .layui-header .layui-nav-child a{color:#595959}.theme-blue .layui-layout-admin .layui-header .layui-nav .layui-nav-more{border-color:#eee transparent transparent}.theme-blue .layui-layout-admin .layui-header .layui-nav .layui-nav-mored{border-color:transparent transparent #eee}.theme-blue .layui-layout-admin .layui-header .layui-nav .layui-this:after,.theme-blue .layui-layout-admin .layui-header .layui-nav-bar{background-color:#fff}.theme-blue .layui-layout-admin .layui-side{background-color:#222d32}.theme-blue .layui-side .layui-nav .layui-nav-item a{color:#b8c7ce}.theme-blue .layui-nav-tree .layui-nav-child dd.layui-this a,.theme-blue .layui-nav-tree .layui-this>a,.theme-blue .layui-nav-tree .layui-this>a:hover{color:#fff;background-color:#3c8dbc}.theme-blue .layui-nav-tree>.layui-nav-item>a:before{background-color:#3c8dbc}.theme-blue .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child:before{background:#222d32!important}.theme-blue .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li.layui-this:after{background-color:#3c8dbc;top:38px}.theme-blue .layui-body-header-title{border-left-color:#3c8dbc}.theme-blue .layui-layer.layui-layer-admin .layui-layer-title{background-color:#3c8dbc}.theme-blue .layui-layer.layui-layer-admin .layui-layer-btn .layui-layer-btn0{border-color:#3c8dbc;background-color:#3c8dbc}.theme-blue .ball-loader>span,.theme-blue .signal-loader>span{background-color:#3c8dbc}.theme-blue .btn-circle{background:#3c8dbc}.theme-blue .more-theme-item:hover,.theme-blue .more-theme-item.active{border-color:#3c8dbc}.theme-blue .text-primary,.theme-blue .layui-link{color:#3c8dbc!important}.theme-blue .layui-btn{background-color:#3c8dbc}.theme-blue .layui-form-onswitch{border-color:#3c8dbc;background-color:#3c8dbc}.theme-blue .layui-form-radio>i:hover,.theme-blue .layui-form-radioed>i,.theme-blue .layui-form-checked i,.theme-blue .layui-form-checked:hover i{color:#3c8dbc}.theme-blue .layui-form-checked[lay-skin=primary] i,.theme-blue .layui-form-checked span,.theme-blue .layui-form-checked:hover span{border-color:#3c8dbc!important;background-color:#3c8dbc}.theme-blue .layui-form-checked[lay-skin=primary] i:hover,.theme-blue .layui-form-checkbox[lay-skin=primary]:hover i{border-color:#3c8dbc!important}.theme-blue .layui-form-select dl dd.layui-this{background-color:#3c8dbc}.theme-blue .layui-laypage .layui-laypage-curr .layui-laypage-em{background-color:#3c8dbc}.theme-blue .layui-laypage input:focus,.theme-blue .layui-laypage select:focus{border-color:#3c8dbc!important}.theme-blue .layui-laypage a:hover{color:#3c8dbc}.theme-blue .layui-tab-brief>.layui-tab-title .layui-this{color:#3c8dbc}.theme-blue .layui-tab-brief>.layui-tab-more li.layui-this:after,.theme-blue .layui-tab-brief>.layui-tab-title .layui-this:after{border-color:#3c8dbc!important}.theme-blue .layui-tab.layui-tab-vertical>.layui-tab-title>li.layui-this{border-color:#3c8dbc;color:#3c8dbc}.theme-blue .layui-breadcrumb a:hover{color:#3c8dbc!important}.theme-blue .layui-laydate-footer span:hover,.theme-blue .layui-laydate-header i:hover,.theme-blue .layui-laydate-header span:hover{color:#3c8dbc}.theme-blue .layui-laydate .layui-this{background-color:#3c8dbc!important}.theme-blue .layui-laydate-content td.laydate-selected{background-color:rgba(60,141,188,.1)}.theme-blue .laydate-selected:hover{background-color:rgba(60,141,188,.1)!important}.theme-blue .layui-timeline-axis{color:#3c8dbc}.theme-blue .layui-transfer-active .layui-btn{background-color:#3c8dbc!important;border-color:#3c8dbc!important}.theme-blue .layui-progress-bar{background-color:#3c8dbc}.theme-blue .layui-slider-bar{background-color:#3c8dbc!important}.theme-blue .layui-slider-wrap-btn{border-color:#3c8dbc!important}.theme-blue .layui-tab.layui-steps>.layui-tab-title>li>.layui-icon{color:#3c8dbc}.theme-blue .layui-tab.layui-steps>.layui-tab-title>li>.layui-icon.layui-icon-ok,.theme-blue .layui-elem-quote{border-color:#3c8dbc}.theme-blue .layui-tab.layui-steps>.layui-tab-title>li:before,.theme-blue .layui-tab.layui-steps>.layui-tab-title>li.layui-this>.layui-icon.layui-icon-ok{background-color:#3c8dbc}.theme-blue .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li{background-color:#9dc6dd}.theme-blue .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li.layui-this{background-color:#3c8dbc}.theme-blue .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li:after{border-left-color:#9dc6dd!important}.theme-blue .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li.layui-this+li:after{border-left-color:#3c8dbc!important}.theme-blue .ew-cascader-dropdown-list-item.active,.theme-blue .ew-cascader-dropdown-list-item.active .ew-icon-right{color:#3c8dbc}.theme-blue div.tagsinput span.tag{background:#3c8dbc}.theme-blue xm-select .xm-body .xm-option .xm-option-icon{border-color:#3c8dbc!important}.theme-blue xm-select .xm-body .xm-option.selected .xm-option-icon,.theme-blue xm-select>.xm-body .xm-toolbar .toolbar-tag:hover,.theme-blue .ew-xmselect-tree xm-select .xm-body .xm-option.selected .xm-option-content{color:#3c8dbc!important}.theme-blue xm-select .xm-label .xm-label-block,.theme-blue xm-select .xm-body .xm-option.hide-icon.selected{background-color:#3c8dbc!important}.theme-blue .city-select a.active{color:#fff!important;background-color:#3c8dbc!important}.theme-blue .city-select a:hover,.theme-blue .city-select a:focus{background-color:rgba(60,141,188,.1);color:#3c8dbc}.theme-blue .city-picker-span>.title>span:hover{background-color:rgba(60,141,188,.1)}.theme-blue .city-select-tab>a.active{color:#3c8dbc}.theme-green .layui-layout-admin .layui-header .layui-logo{color:#fff;box-shadow:none;background-color:transparent}.theme-green .layui-layout-admin .layui-header{background-color:#00a65a}.theme-green .layui-layout-admin .layui-header a{color:#fff}.theme-green .layui-layout-admin .layui-header a:hover{color:#fff}.theme-green .layui-layout-admin .layui-header .layui-nav-child a{color:#595959}.theme-green .layui-layout-admin .layui-header .layui-nav .layui-nav-more{border-color:#eee transparent transparent}.theme-green .layui-layout-admin .layui-header .layui-nav .layui-nav-mored{border-color:transparent transparent #eee}.theme-green .layui-layout-admin .layui-header .layui-nav .layui-this:after,.theme-green .layui-layout-admin .layui-header .layui-nav-bar{background-color:#fff}.theme-green .layui-layout-admin .layui-side{background-color:#222d32}.theme-green .layui-side .layui-nav .layui-nav-item a{color:#b8c7ce}.theme-green .layui-nav-tree .layui-nav-child dd.layui-this a,.theme-green .layui-nav-tree .layui-this>a,.theme-green .layui-nav-tree .layui-this>a:hover{color:#fff;background-color:#00a65a}.theme-green .layui-nav-tree>.layui-nav-item>a:before{background-color:#00a65a}.theme-green .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child:before{background:#222d32!important}.theme-green .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li.layui-this:after{background-color:#00a65a;top:38px}.theme-green .layui-body-header-title{border-left-color:#00a65a}.theme-green .layui-layer.layui-layer-admin .layui-layer-title{background-color:#00a65a}.theme-green .layui-layer.layui-layer-admin .layui-layer-btn .layui-layer-btn0{border-color:#00a65a;background-color:#00a65a}.theme-green .more-theme-item:hover,.theme-green .more-theme-item.active{border-color:#00a65a}.theme-green .btn-circle{background:#00a65a}.theme-green .ball-loader>span,.theme-green .signal-loader>span{background-color:#00a65a}.theme-green .text-primary,.theme-green .layui-link{color:#00a65a!important}.theme-green .layui-btn{background-color:#00a65a}.theme-green .layui-form-onswitch{border-color:#00a65a;background-color:#00a65a}.theme-green .layui-form-radio>i:hover,.theme-green .layui-form-radioed>i,.theme-green .layui-form-checked i,.theme-green .layui-form-checked:hover i{color:#00a65a}.theme-green .layui-form-checked[lay-skin=primary] i,.theme-green .layui-form-checked span,.theme-green .layui-form-checked:hover span{border-color:#00a65a!important;background-color:#00a65a}.theme-green .layui-form-checked[lay-skin=primary] i:hover,.theme-green .layui-form-checkbox[lay-skin=primary]:hover i{border-color:#00a65a!important}.theme-green .layui-form-select dl dd.layui-this{background-color:#00a65a}.theme-green .layui-laypage .layui-laypage-curr .layui-laypage-em{background-color:#00a65a}.theme-green .layui-laypage input:focus,.theme-green .layui-laypage select:focus{border-color:#00a65a!important}.theme-green .layui-laypage a:hover{color:#00a65a}.theme-green .layui-tab-brief>.layui-tab-title .layui-this{color:#00a65a}.theme-green .layui-tab-brief>.layui-tab-more li.layui-this:after,.theme-green .layui-tab-brief>.layui-tab-title .layui-this:after{border-color:#00a65a!important}.theme-green .layui-tab.layui-tab-vertical>.layui-tab-title>li.layui-this{border-color:#00a65a;color:#00a65a}.theme-green .layui-breadcrumb a:hover{color:#00a65a!important}.theme-green .layui-laydate-footer span:hover,.theme-green .layui-laydate-header i:hover,.theme-green .layui-laydate-header span:hover{color:#00a65a}.theme-green .layui-laydate .layui-this{background-color:#00a65a!important}.theme-green .layui-laydate-content td.laydate-selected{background-color:rgba(0,166,90,.1)}.theme-green .laydate-selected:hover{background-color:rgba(0,166,90,.1)!important}.theme-green .layui-timeline-axis{color:#00a65a}.theme-green .layui-transfer-active .layui-btn{background-color:#00a65a!important;border-color:#00a65a!important}.theme-green .layui-progress-bar{background-color:#00a65a}.theme-green .layui-slider-bar{background-color:#00a65a!important}.theme-green .layui-slider-wrap-btn{border-color:#00a65a!important}.theme-green .layui-tab.layui-steps>.layui-tab-title>li>.layui-icon{color:#00a65a}.theme-green .layui-tab.layui-steps>.layui-tab-title>li>.layui-icon.layui-icon-ok,.theme-green .layui-elem-quote{border-color:#00a65a}.theme-green .layui-tab.layui-steps>.layui-tab-title>li:before,.theme-green .layui-tab.layui-steps>.layui-tab-title>li.layui-this>.layui-icon.layui-icon-ok{background-color:#00a65a}.theme-green .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li{background-color:#7fd2ac}.theme-green .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li.layui-this{background-color:#00a65a}.theme-green .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li:after{border-left-color:#7fd2ac!important}.theme-green .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li.layui-this+li:after{border-left-color:#00a65a!important}.theme-green .ew-cascader-dropdown-list-item.active,.theme-green .ew-cascader-dropdown-list-item.active .ew-icon-right{color:#00a65a}.theme-green div.tagsinput span.tag{background:#00a65a}.theme-green xm-select .xm-body .xm-option .xm-option-icon{border-color:#00a65a!important}.theme-green xm-select .xm-body .xm-option.selected .xm-option-icon,.theme-green xm-select>.xm-body .xm-toolbar .toolbar-tag:hover,.theme-green .ew-xmselect-tree xm-select .xm-body .xm-option.selected .xm-option-content{color:#00a65a!important}.theme-green xm-select .xm-label .xm-label-block,.theme-green xm-select .xm-body .xm-option.hide-icon.selected{background-color:#00a65a!important}.theme-green .city-select a.active{color:#fff!important;background-color:#00a65a!important}.theme-green .city-select a:hover,.theme-green .city-select a:focus{background-color:rgba(0,166,90,.1);color:#00a65a}.theme-green .city-picker-span>.title>span:hover{background-color:rgba(0,166,90,.1)}.theme-green .city-select-tab>a.active{color:#00a65a}.theme-purple .layui-layout-admin .layui-header .layui-logo{color:#fff;box-shadow:none;background-color:transparent}.theme-purple .layui-layout-admin .layui-header{background-color:#722ed1}.theme-purple .layui-layout-admin .layui-header a{color:#fff}.theme-purple .layui-layout-admin .layui-header a:hover{color:#fff}.theme-purple .layui-layout-admin .layui-header .layui-nav-child a{color:#595959}.theme-purple .layui-layout-admin .layui-header .layui-nav .layui-nav-more{border-color:#eee transparent transparent}.theme-purple .layui-layout-admin .layui-header .layui-nav .layui-nav-mored{border-color:transparent transparent #eee}.theme-purple .layui-layout-admin .layui-header .layui-nav .layui-this:after,.theme-purple .layui-layout-admin .layui-header .layui-nav-bar{background-color:#fff}.theme-purple .layui-layout-admin .layui-side{background-color:#222d32}.theme-purple .layui-side .layui-nav .layui-nav-item a{color:#b8c7ce}.theme-purple .layui-nav-tree .layui-nav-child dd.layui-this a,.theme-purple .layui-nav-tree .layui-this>a,.theme-purple .layui-nav-tree .layui-this>a:hover{color:#fff;background-color:#722ed1}.theme-purple .layui-nav-tree>.layui-nav-item>a:before{background-color:#722ed1}.theme-purple .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child:before{background:#222d32!important}.theme-purple .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li.layui-this:after{background-color:#722ed1;top:38px}.theme-purple .layui-body-header-title{border-left-color:#722ed1}.theme-purple .layui-layer.layui-layer-admin .layui-layer-title{background-color:#722ed1}.theme-purple .layui-layer.layui-layer-admin .layui-layer-btn .layui-layer-btn0{border-color:#722ed1;background-color:#722ed1}.theme-purple .more-theme-item:hover,.theme-purple .more-theme-item.active{border-color:#722ed1}.theme-purple .btn-circle{background:#722ed1}.theme-purple .ball-loader>span,.theme-purple .signal-loader>span{background-color:#722ed1}.theme-purple .text-primary,.theme-purple .layui-link{color:#722ed1!important}.theme-purple .layui-btn{background-color:#722ed1}.theme-purple .layui-form-onswitch{border-color:#722ed1;background-color:#722ed1}.theme-purple .layui-form-radio>i:hover,.theme-purple .layui-form-radioed>i,.theme-purple .layui-form-checked i,.theme-purple .layui-form-checked:hover i{color:#722ed1}.theme-purple .layui-form-checked[lay-skin=primary] i,.theme-purple .layui-form-checked span,.theme-purple .layui-form-checked:hover span{border-color:#722ed1!important;background-color:#722ed1}.theme-purple .layui-form-checked[lay-skin=primary] i:hover,.theme-purple .layui-form-checkbox[lay-skin=primary]:hover i{border-color:#722ed1!important}.theme-purple .layui-form-select dl dd.layui-this{background-color:#722ed1}.theme-purple .layui-laypage .layui-laypage-curr .layui-laypage-em{background-color:#722ed1}.theme-purple .layui-laypage input:focus,.theme-purple .layui-laypage select:focus{border-color:#722ed1!important}.theme-purple .layui-laypage a:hover{color:#722ed1}.theme-purple .layui-tab-brief>.layui-tab-title .layui-this{color:#722ed1}.theme-purple .layui-tab-brief>.layui-tab-more li.layui-this:after,.theme-purple .layui-tab-brief>.layui-tab-title .layui-this:after{border-color:#722ed1!important}.theme-purple .layui-tab.layui-tab-vertical>.layui-tab-title>li.layui-this{border-color:#722ed1;color:#722ed1}.theme-purple .layui-breadcrumb a:hover{color:#722ed1!important}.theme-purple .layui-laydate-footer span:hover,.theme-purple .layui-laydate-header i:hover,.theme-purple .layui-laydate-header span:hover{color:#722ed1}.theme-purple .layui-laydate .layui-this{background-color:#722ed1!important}.theme-purple .layui-laydate-content td.laydate-selected{background-color:rgba(114,46,209,.1)}.theme-purple .laydate-selected:hover{background-color:rgba(114,46,209,.1)!important}.theme-purple .layui-timeline-axis{color:#722ed1}.theme-purple .layui-transfer-active .layui-btn{background-color:#722ed1!important;border-color:#722ed1!important}.theme-purple .layui-progress-bar{background-color:#722ed1}.theme-purple .layui-slider-bar{background-color:#722ed1!important}.theme-purple .layui-slider-wrap-btn{border-color:#722ed1!important}.theme-purple .layui-tab.layui-steps>.layui-tab-title>li>.layui-icon{color:#722ed1}.theme-purple .layui-tab.layui-steps>.layui-tab-title>li>.layui-icon.layui-icon-ok,.theme-purple .layui-elem-quote{border-color:#722ed1}.theme-purple .layui-tab.layui-steps>.layui-tab-title>li:before,.theme-purple .layui-tab.layui-steps>.layui-tab-title>li.layui-this>.layui-icon.layui-icon-ok{background-color:#722ed1}.theme-purple .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li{background-color:#b896e8}.theme-purple .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li.layui-this{background-color:#722ed1}.theme-purple .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li:after{border-left-color:#b896e8!important}.theme-purple .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li.layui-this+li:after{border-left-color:#722ed1!important}.theme-purple .ew-cascader-dropdown-list-item.active,.theme-purple .ew-cascader-dropdown-list-item.active .ew-icon-right{color:#722ed1}.theme-purple div.tagsinput span.tag{background:#722ed1}.theme-purple xm-select .xm-body .xm-option .xm-option-icon{border-color:#722ed1!important}.theme-purple xm-select .xm-body .xm-option.selected .xm-option-icon,.theme-purple xm-select>.xm-body .xm-toolbar .toolbar-tag:hover,.theme-purple .ew-xmselect-tree xm-select .xm-body .xm-option.selected .xm-option-content{color:#722ed1!important}.theme-purple xm-select .xm-label .xm-label-block,.theme-purple xm-select .xm-body .xm-option.hide-icon.selected{background-color:#722ed1!important}.theme-purple .city-select a.active{color:#fff!important;background-color:#722ed1!important}.theme-purple .city-select a:hover,.theme-purple .city-select a:focus{background-color:rgba(114,46,209,.1);color:#722ed1}.theme-purple .city-picker-span>.title>span:hover{background-color:rgba(114,46,209,.1)}.theme-purple .city-select-tab>a.active{color:#722ed1}.theme-red .layui-layout-admin .layui-header .layui-logo{color:#fff;box-shadow:none;background-color:transparent}.theme-red .layui-layout-admin .layui-header{background-color:#dd4b39}.theme-red .layui-layout-admin .layui-header a{color:#fff}.theme-red .layui-layout-admin .layui-header a:hover{color:#fff}.theme-red .layui-layout-admin .layui-header .layui-nav-child a{color:#595959}.theme-red .layui-layout-admin .layui-header .layui-nav .layui-nav-more{border-color:#eee transparent transparent}.theme-red .layui-layout-admin .layui-header .layui-nav .layui-nav-mored{border-color:transparent transparent #eee}.theme-red .layui-layout-admin .layui-header .layui-nav .layui-this:after,.theme-red .layui-layout-admin .layui-header .layui-nav-bar{background-color:#fff}.theme-red .layui-layout-admin .layui-side{background-color:#28333e}.theme-red .layui-nav-tree .layui-nav-child dd.layui-this a,.theme-red .layui-nav-tree .layui-this>a,.theme-red .layui-nav-tree .layui-this>a:hover{background-color:#dd4b39}.theme-red .layui-nav-tree>.layui-nav-item>a:before{background-color:#dd4b39}.theme-red .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child:before{background:#28333e!important}.theme-red .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li.layui-this:after{background-color:#dd4b39;top:38px}.theme-red .layui-body-header-title{border-left-color:#dd4b39}.theme-red .layui-layer.layui-layer-admin .layui-layer-title{background-color:#dd4b39}.theme-red .layui-layer.layui-layer-admin .layui-layer-btn .layui-layer-btn0{border-color:#dd4b39;background-color:#dd4b39}.theme-red .more-theme-item:hover,.theme-red .more-theme-item.active{border-color:#dd4b39}.theme-red .btn-circle{background:#dd4b39}.theme-red .ball-loader>span,.theme-red .signal-loader>span{background-color:#dd4b39}.theme-red .text-primary,.theme-red .layui-link{color:#dd4b39!important}.theme-red .layui-btn{background-color:#dd4b39}.theme-red .layui-form-onswitch{border-color:#dd4b39;background-color:#dd4b39}.theme-red .layui-form-radio>i:hover,.theme-red .layui-form-radioed>i,.theme-red .layui-form-checked i,.theme-red .layui-form-checked:hover i{color:#dd4b39}.theme-red .layui-form-checked[lay-skin=primary] i,.theme-red .layui-form-checked span,.theme-red .layui-form-checked:hover span{border-color:#dd4b39!important;background-color:#dd4b39}.theme-red .layui-form-checked[lay-skin=primary] i:hover,.theme-red .layui-form-checkbox[lay-skin=primary]:hover i{border-color:#dd4b39!important}.theme-red .layui-form-select dl dd.layui-this{background-color:#dd4b39}.theme-red .layui-laypage .layui-laypage-curr .layui-laypage-em{background-color:#dd4b39}.theme-red .layui-laypage input:focus,.theme-red .layui-laypage select:focus{border-color:#dd4b39!important}.theme-red .layui-laypage a:hover{color:#dd4b39}.theme-red .layui-tab-brief>.layui-tab-title .layui-this{color:#dd4b39}.theme-red .layui-tab-brief>.layui-tab-more li.layui-this:after,.theme-red .layui-tab-brief>.layui-tab-title .layui-this:after{border-color:#dd4b39!important}.theme-red .layui-tab.layui-tab-vertical>.layui-tab-title>li.layui-this{border-color:#dd4b39;color:#dd4b39}.theme-red .layui-breadcrumb a:hover{color:#dd4b39!important}.theme-red .layui-laydate-footer span:hover,.theme-red .layui-laydate-header i:hover,.theme-red .layui-laydate-header span:hover{color:#dd4b39}.theme-red .layui-laydate .layui-this{background-color:#dd4b39!important}.theme-red .layui-laydate-content td.laydate-selected{background-color:rgba(221,75,57,.1)}.theme-red .laydate-selected:hover{background-color:rgba(221,75,57,.1)!important}.theme-red .layui-timeline-axis{color:#dd4b39}.theme-red .layui-transfer-active .layui-btn{background-color:#dd4b39!important;border-color:#dd4b39!important}.theme-red .layui-progress-bar{background-color:#dd4b39}.theme-red .layui-slider-bar{background-color:#dd4b39!important}.theme-red .layui-slider-wrap-btn{border-color:#dd4b39!important}.theme-red .layui-tab.layui-steps>.layui-tab-title>li>.layui-icon{color:#dd4b39}.theme-red .layui-tab.layui-steps>.layui-tab-title>li>.layui-icon.layui-icon-ok,.theme-red .layui-elem-quote{border-color:#dd4b39}.theme-red .layui-tab.layui-steps>.layui-tab-title>li:before,.theme-red .layui-tab.layui-steps>.layui-tab-title>li.layui-this>.layui-icon.layui-icon-ok{background-color:#dd4b39}.theme-red .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li{background-color:#eea39a}.theme-red .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li.layui-this{background-color:#dd4b39}.theme-red .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li:after{border-left-color:#eea39a!important}.theme-red .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li.layui-this+li:after{border-left-color:#dd4b39!important}.theme-red .ew-cascader-dropdown-list-item.active,.theme-red .ew-cascader-dropdown-list-item.active .ew-icon-right{color:#dd4b39}.theme-red div.tagsinput span.tag{background:#dd4b39}.theme-red xm-select .xm-body .xm-option .xm-option-icon{border-color:#dd4b39!important}.theme-red xm-select .xm-body .xm-option.selected .xm-option-icon,.theme-red xm-select>.xm-body .xm-toolbar .toolbar-tag:hover,.theme-red .ew-xmselect-tree xm-select .xm-body .xm-option.selected .xm-option-content{color:#dd4b39!important}.theme-red xm-select .xm-label .xm-label-block,.theme-red xm-select .xm-body .xm-option.hide-icon.selected{background-color:#dd4b39!important}.theme-red .city-select a.active{color:#fff!important;background-color:#dd4b39!important}.theme-red .city-select a:hover,.theme-red .city-select a:focus{background-color:rgba(221,75,57,.1);color:#dd4b39}.theme-red .city-picker-span>.title>span:hover{background-color:rgba(221,75,57,.1)}.theme-red .city-select-tab>a.active{color:#dd4b39}.theme-cyan .layui-layout-admin .layui-header .layui-logo{background-color:#001529}.theme-cyan .layui-layout-admin .layui-header .layui-nav .layui-this:after,.theme-cyan .layui-layout-admin .layui-header .layui-nav-bar{background-color:#001529}.theme-cyan .layui-layout-admin .layui-side{background-color:#001529}.theme-cyan .layui-nav-tree .layui-nav-child dd.layui-this a,.theme-cyan .layui-nav-tree .layui-this>a,.theme-cyan .layui-nav-tree .layui-this>a:hover{background-color:#1890ff}.theme-cyan .layui-nav-tree>.layui-nav-item>a:before{background-color:#1890ff}.theme-cyan .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child:before{background:#001529!important}.theme-cyan .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li.layui-this:after{background-color:#001529}.theme-cyan .layui-body-header-title{border-left-color:#1890ff}.theme-cyan .layui-layer.layui-layer-admin{border-radius:4px}.theme-cyan .layui-layer.layui-layer-admin .layui-layer-title{color:#333;font-size:16px;padding-left:23px;background-color:#fff;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom:1px solid #f1f1f1}.theme-cyan .layui-layer.layui-layer-admin .layui-layer-setwin a{color:#8c8c8c;font-weight:600}.theme-cyan .layui-layer.layui-layer-admin .layui-layer-setwin .layui-layer-min cite{background-color:#8c8c8c}.theme-cyan .layui-layer.layui-layer-admin .layui-layer-btn a{height:32px;line-height:32px;border-radius:4px;box-shadow:0 1px 0 rgba(0,0,0,.03)}.theme-cyan .layui-layer.layui-layer-admin .layui-layer-btn .layui-layer-btn0{border-color:#1890ff;background-color:#1890ff}.theme-cyan .more-theme-item:hover,.theme-cyan .more-theme-item.active{border-color:#1890ff}.theme-cyan .btn-circle{background:#1890ff}.theme-cyan .ball-loader>span,.theme-cyan .signal-loader>span{background-color:#1890ff}.theme-cyan .text-primary,.theme-cyan .layui-link{color:#1890ff!important}.theme-cyan .layui-btn{height:36px;line-height:36px;border-radius:4px;background-color:#1890ff;box-shadow:0 1px 0 rgba(0,0,0,.03)}.theme-cyan .layui-btn-lg{height:42px;line-height:42px}.theme-cyan .layui-btn-sm{height:28px;line-height:28px}.theme-cyan .layui-btn-xs{height:22px;line-height:22px}.theme-cyan .layui-input,.theme-cyan .layui-select,.theme-cyan .layui-textarea,.theme-cyan xm-select{height:36px;border-radius:4px}.theme-cyan .layui-input:focus,.theme-cyan .layui-textarea:focus,.theme-cyan xm-select:hover{border-color:#40a9ff!important}.theme-cyan .layui-form-label,.theme-cyan .layui-form-mid{padding-top:8px;padding-bottom:8px}.theme-cyan .layui-input-block{min-height:36px}.theme-cyan .layui-form-radio{margin-top:4px}.theme-cyan .layui-form-onswitch{border-color:#1890ff;background-color:#1890ff}.theme-cyan .layui-form-radio>i:hover,.theme-cyan .layui-form-radioed>i,.theme-cyan .layui-form-checked i,.theme-cyan .layui-form-checked:hover i{color:#1890ff}.theme-cyan .layui-form-checked[lay-skin=primary] i,.theme-cyan .layui-form-checked span,.theme-cyan .layui-form-checked:hover span{border-color:#1890ff!important;background-color:#1890ff}.theme-cyan .layui-form-checked[lay-skin=primary] i:hover,.theme-cyan .layui-form-checkbox[lay-skin=primary]:hover i{border-color:#1890ff!important}.theme-cyan .layui-form-select dl dd.layui-this{background-color:#1890ff}.theme-cyan .layui-laypage .layui-laypage-curr .layui-laypage-em{background-color:#1890ff}.theme-cyan .layui-laypage input:focus,.theme-cyan .layui-laypage select:focus{border-color:#1890ff!important}.theme-cyan .layui-laypage a:hover{color:#1890ff}.theme-cyan .layui-tab-brief>.layui-tab-title .layui-this{color:#1890ff}.theme-cyan .layui-tab-brief>.layui-tab-more li.layui-this:after,.theme-cyan .layui-tab-brief>.layui-tab-title .layui-this:after{border-color:#1890ff!important}.theme-cyan .layui-tab.layui-tab-vertical>.layui-tab-title>li.layui-this{border-color:#2d8cf0;color:#2d8cf0}.theme-cyan .layui-breadcrumb a:hover{color:#1890ff!important}.theme-cyan .layui-laydate-footer span:hover,.theme-cyan .layui-laydate-header i:hover,.theme-cyan .layui-laydate-header span:hover{color:#1890ff}.theme-cyan .layui-laydate .layui-this{background-color:#1890ff!important}.theme-cyan .layui-laydate-content td.laydate-selected{background-color:rgba(24,144,255,.1)}.theme-cyan .laydate-selected:hover{background-color:rgba(24,144,255,.1)!important}.theme-cyan .layui-timeline-axis{color:#1890ff}.theme-cyan .layui-transfer-active .layui-btn{background-color:#1890ff!important;border-color:#1890ff!important}.theme-cyan .layui-progress-bar{background-color:#1890ff}.theme-cyan .layui-slider-bar{background-color:#1890ff!important}.theme-cyan .layui-slider-wrap-btn{border-color:#1890ff!important}.theme-cyan .layui-tab.layui-steps>.layui-tab-title>li>.layui-icon{color:#1890ff}.theme-cyan .layui-tab.layui-steps>.layui-tab-title>li>.layui-icon.layui-icon-ok,.theme-cyan .layui-elem-quote{border-color:#1890ff}.theme-cyan .layui-tab.layui-steps>.layui-tab-title>li:before,.theme-cyan .layui-tab.layui-steps>.layui-tab-title>li.layui-this>.layui-icon.layui-icon-ok{background-color:#1890ff}.theme-cyan .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li{background-color:#89c6ff}.theme-cyan .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li.layui-this{background-color:#1890ff}.theme-cyan .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li:after{border-left-color:#89c6ff!important}.theme-cyan .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li.layui-this+li:after{border-left-color:#1890ff!important}.theme-cyan .ew-cascader-dropdown-list-item.active,.theme-cyan .ew-cascader-dropdown-list-item.active .ew-icon-right{color:#1890ff}.theme-cyan div.tagsinput span.tag{background:#1890ff}.theme-cyan xm-select .xm-body .xm-option .xm-option-icon{border-color:#1890ff!important}.theme-cyan xm-select .xm-body .xm-option.selected .xm-option-icon,.theme-cyan xm-select>.xm-body .xm-toolbar .toolbar-tag:hover,.theme-cyan .ew-xmselect-tree xm-select .xm-body .xm-option.selected .xm-option-content{color:#1890ff!important}.theme-cyan xm-select .xm-label .xm-label-block,.theme-cyan xm-select .xm-body .xm-option.hide-icon.selected{background-color:#1890ff!important}.theme-cyan .city-select a.active{color:#fff!important;background-color:#1890ff!important}.theme-cyan .city-select a:hover,.theme-cyan .city-select a:focus{background-color:#f0faff;color:#1890ff}.theme-cyan .city-picker-span>.title>span:hover{background-color:#f0faff}.theme-cyan .city-select-tab>a.active{color:#1890ff}.theme-white .layui-layout-admin .layui-header .layui-logo{color:#262626;background-color:transparent;box-shadow:2px 8px 8px 0 rgba(29,35,41,.05)}.theme-white .layui-layout-admin .layui-header{box-shadow:0 1px 4px rgba(0,21,41,.08)}.theme-white .layui-layout-admin .layui-header .layui-nav .layui-this:after,.theme-white .layui-layout-admin .layui-header .layui-nav-bar{background-color:#2d8cf0}.theme-white .layui-layout-admin .layui-side{background-color:#fff;box-shadow:2px 8px 8px 0 rgba(29,35,41,.05)}.theme-white .layui-side .layui-nav .layui-nav-item a{color:#595959}.theme-white .layui-side .layui-nav .layui-nav-item a:hover{color:#2d8cf0}.theme-white .layui-side .layui-nav-itemed>a,.theme-white .layui-side .layui-nav-tree .layui-nav-title a,.theme-white .layui-side .layui-nav-tree .layui-nav-title a:hover{color:#595959!important}.theme-white .layui-side .layui-nav-itemed>a:hover{color:#2d8cf0!important}.theme-white .layui-side .layui-nav-tree .layui-nav-child dd.layui-this a,.theme-white .layui-side .layui-nav-tree .layui-this>a,.theme-white .layui-side .layui-nav-tree .layui-this>a:hover{color:#2d8cf0;background:#f0faff;border-right:2px solid #2d8cf0}.theme-white .layui-side .layui-nav-tree .layui-nav-item .layui-nav-child{background-color:transparent!important}.theme-white .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child:before{background:#fff!important}@media screen and (min-width:769px){.theme-white .layui-layout-admin.admin-nav-mini .layui-side .layui-nav li.layui-nav-itemed>a{background:#f0faff;color:#2d8cf0!important}}.theme-white .layui-nav-tree>.layui-nav-item>a:before{display:none}.theme-white .layui-side .layui-nav .layui-nav-more{border-color:rgba(89,89,89,.7) transparent transparent}.theme-white .layui-side .layui-nav .layui-nav-mored,.theme-white .layui-side .layui-nav-itemed>a .layui-nav-more{border-color:transparent transparent rgba(89,89,89,.7)}.theme-white .layui-side .layui-nav-tree.arrow3 .layui-nav-itemed>a>.layui-nav-more:before{background-color:rgba(89,89,89,.7)}@media screen and (min-width:769px){.theme-white .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child>dd>a .layui-nav-more{border-color:transparent transparent transparent rgba(89,89,89,.7)}}.theme-white .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title{top:8px;right:8px;height:32px;line-height:32px;box-sizing:border-box;background-color:transparent;box-shadow:-4px 4px 0 #f5f7f9;padding-right:70px}.theme-white .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li{border:0;margin-right:6px;border-radius:4px;background-color:#fff;line-height:32px;height:32px}.theme-white .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li.layui-this{color:#2d8cf0;background-color:#fff}.theme-white .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li:hover{background-color:#fff}.theme-white .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li.layui-this:after{display:none}.theme-white .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li .layui-tab-close,.theme-white .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li .layui-tab-close:hover{top:8px;color:#8c8c8c;background-color:transparent}.theme-white .layui-layout-admin .layui-body .admin-tabs-control,.theme-white .layui-layout-admin .layui-body .admin-tabs-control:hover{top:8px;height:32px;line-height:32px;background-color:#f5f7f9;border:0}.theme-white .layui-layout-admin .layui-body .admin-tabs-control.layui-icon-down{border-radius:4px;background-color:#fff;width:32px;right:8px}.theme-white .admin-tabs-control>.layui-nav .layui-nav-item{line-height:32px}.theme-white .admin-tabs-control>.layui-nav .layui-nav-item>a{height:32px;width:32px;padding:0}.theme-white .admin-tabs-control>.layui-nav .layui-nav-child{top:36px;border:0;border-radius:4px;box-shadow:0 1px 6px rgba(0,0,0,.2)}.theme-white .layui-layout-admin .layui-body .admin-tabs-control.layui-icon-prev:before{content:"\e603"}.theme-white .layui-layout-admin .layui-body .admin-tabs-control.layui-icon-next:before{content:"\e602"}.theme-white .layui-body-header-title{border-left-color:#2d8cf0}.theme-white .layui-body-header{box-shadow:0 1px 4px rgba(0,21,41,.08)}.theme-white .layui-layer.layui-layer-admin{border-radius:4px}.theme-white .layui-layer.layui-layer-admin .layui-layer-title{color:#262626;font-size:16px;padding-left:23px;background-color:#fff;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom:1px solid #f1f1f1}.theme-white .layui-layer.layui-layer-admin .layui-layer-setwin a{color:#8c8c8c;font-weight:600}.theme-white .layui-layer.layui-layer-admin .layui-layer-setwin .layui-layer-min cite{background-color:#8c8c8c}.theme-white .layui-layer.layui-layer-admin .layui-layer-btn a{height:32px;line-height:32px;border-radius:4px;box-shadow:0 1px 0 rgba(0,0,0,.03)}.theme-white .layui-layer.layui-layer-admin .layui-layer-btn .layui-layer-btn0{border-color:#2d8cf0;background-color:#2d8cf0}.theme-white .more-theme-item:hover,.theme-white .more-theme-item.active{border-color:#2d8cf0}.theme-white .btn-circle{background:#2d8cf0}.theme-white .ball-loader>span,.theme-white .signal-loader>span{background-color:#2d8cf0}.theme-white .text-primary,.theme-white .layui-link{color:#2d8cf0!important}.theme-white .layui-card{border-radius:4px;box-shadow:none}.theme-white .layui-btn{height:36px;line-height:36px;border-radius:4px;background-color:#2d8cf0;box-shadow:0 1px 0 rgba(0,0,0,.03)}.theme-white .layui-btn-lg{height:42px;line-height:42px}.theme-white .layui-btn-sm{height:28px;line-height:28px}.theme-white .layui-btn-xs{height:22px;line-height:22px}.theme-white .layui-input,.theme-white .layui-select,.theme-white .layui-textarea,.theme-white xm-select{height:36px;border-radius:4px}.theme-white .layui-input:focus,.theme-white .layui-textarea:focus,.theme-white xm-select:hover{border-color:#2d8cf0!important}.theme-white .layui-form-label,.theme-white .layui-form-mid{padding-top:8px;padding-bottom:8px}.theme-white .layui-input-block{min-height:36px}.theme-white .layui-form-radio{margin-top:4px}.theme-white .layui-form-onswitch{border-color:#2d8cf0;background-color:#2d8cf0}.theme-white .layui-form-radio>i:hover,.theme-white .layui-form-radioed>i,.theme-white .layui-form-checked i,.theme-white .layui-form-checked:hover i{color:#2d8cf0}.theme-white .layui-form-checked[lay-skin=primary] i,.theme-white .layui-form-checked span,.theme-white .layui-form-checked:hover span{border-color:#2d8cf0!important;background-color:#2d8cf0}.theme-white .layui-form-checked[lay-skin=primary] i:hover,.theme-white .layui-form-checkbox[lay-skin=primary]:hover i{border-color:#2d8cf0!important}.theme-white .layui-form-select dl dd.layui-this{background-color:#2d8cf0}.theme-white .layui-laypage .layui-laypage-curr .layui-laypage-em{background-color:#2d8cf0}.theme-white .layui-laypage input:focus,.theme-white .layui-laypage select:focus{border-color:#2d8cf0!important}.theme-white .layui-laypage a:hover{color:#2d8cf0}.theme-white .layui-tab-brief>.layui-tab-title .layui-this{color:#2d8cf0}.theme-white .layui-tab-brief>.layui-tab-more li.layui-this:after,.theme-white .layui-tab-brief>.layui-tab-title .layui-this:after{border-color:#2d8cf0!important}.theme-white .layui-tab.layui-tab-vertical>.layui-tab-title>li.layui-this{border-color:#2d8cf0;color:#2d8cf0}.theme-white .layui-breadcrumb a:hover{color:#2d8cf0!important}.theme-white .layui-laydate-footer span:hover,.theme-white .layui-laydate-header i:hover,.theme-white .layui-laydate-header span:hover{color:#2d8cf0}.theme-white .layui-laydate .layui-this{background-color:#2d8cf0!important}.theme-white .layui-laydate-content td.laydate-selected{background-color:rgba(45,140,240,.1)}.theme-white .laydate-selected:hover{background-color:rgba(45,140,240,.1)!important}.theme-white .layui-timeline-axis{color:#2d8cf0}.theme-white .layui-transfer-active .layui-btn{background-color:#2d8cf0!important;border-color:#2d8cf0!important}.theme-white .layui-progress-bar{background-color:#2d8cf0}.theme-white .layui-slider-bar{background-color:#2d8cf0!important}.theme-white .layui-slider-wrap-btn{border-color:#2d8cf0!important}.theme-white .layui-tab.layui-steps>.layui-tab-title>li>.layui-icon{color:#2d8cf0}.theme-white .layui-tab.layui-steps>.layui-tab-title>li>.layui-icon.layui-icon-ok,.theme-white .layui-elem-quote{border-color:#2d8cf0}.theme-white .layui-tab.layui-steps>.layui-tab-title>li:before,.theme-white .layui-tab.layui-steps>.layui-tab-title>li.layui-this>.layui-icon.layui-icon-ok{background-color:#2d8cf0}.theme-white .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li{background-color:#95c5f7}.theme-white .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li.layui-this{background-color:#2d8cf0}.theme-white .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li:after{border-left-color:#95c5f7!important}.theme-white .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li.layui-this+li:after{border-left-color:#2d8cf0!important}.theme-white .ew-cascader-dropdown-list-item.active,.theme-white .ew-cascader-dropdown-list-item.active .ew-icon-right{color:#2d8cf0}.theme-white div.tagsinput span.tag{background:#2d8cf0}.theme-white xm-select .xm-body .xm-option .xm-option-icon{border-color:#2d8cf0!important}.theme-white xm-select .xm-body .xm-option.selected .xm-option-icon,.theme-white xm-select>.xm-body .xm-toolbar .toolbar-tag:hover,.theme-white .ew-xmselect-tree xm-select .xm-body .xm-option.selected .xm-option-content{color:#2d8cf0!important}.theme-white xm-select .xm-label .xm-label-block,.theme-white xm-select .xm-body .xm-option.hide-icon.selected{background-color:#2d8cf0!important}.theme-white .city-select a.active{color:#fff!important;background-color:#2d8cf0!important}.theme-white .city-select a:hover,.theme-white .city-select a:focus{background-color:#f0faff;color:#2d8cf0}.theme-white .city-picker-span>.title>span:hover{background-color:#f0faff}.theme-white .city-select-tab>a.active{color:#2d8cf0}.theme-pink .layui-layout-admin .layui-header .layui-logo{color:#262626;background-color:transparent;box-shadow:2px 8px 8px 0 rgba(29,35,41,.05)}.theme-pink .layui-layout-admin .layui-header{box-shadow:0 1px 4px rgba(0,21,41,.08)}.theme-pink .layui-layout-admin .layui-header .layui-nav .layui-this:after,.theme-pink .layui-layout-admin .layui-header .layui-nav-bar{background-color:#fb7299}.theme-pink .layui-layout-admin .layui-side{background-color:#fff;box-shadow:2px 8px 8px 0 rgba(29,35,41,.05)}.theme-pink .layui-side .layui-nav .layui-nav-item a{color:#595959}.theme-pink .layui-side .layui-nav .layui-nav-item a:hover{color:#fb7299}.theme-pink .layui-side .layui-nav-itemed>a,.theme-pink .layui-side .layui-nav-tree .layui-nav-title a,.theme-pink .layui-side .layui-nav-tree .layui-nav-title a:hover{color:#595959!important}.theme-pink .layui-side .layui-nav-itemed>a:hover{color:#fb7299!important}.theme-pink .layui-side .layui-nav-tree .layui-nav-child dd.layui-this a,.theme-pink .layui-side .layui-nav-tree .layui-this>a,.theme-pink .layui-side .layui-nav-tree .layui-this>a:hover{color:#fb7299;background:#fff7f9;border-right:2px solid #fb7299}.theme-pink .layui-side .layui-nav-tree .layui-nav-item .layui-nav-child{background-color:transparent!important}.theme-pink .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child:before{background:#fff!important}@media screen and (min-width:769px){.theme-pink .layui-layout-admin.admin-nav-mini .layui-side .layui-nav li.layui-nav-itemed>a{background:#fff1f5;color:#fb7299!important}}.theme-pink .layui-nav-tree>.layui-nav-item>a:before{display:none}.theme-pink .layui-side .layui-nav .layui-nav-more{border-color:rgba(89,89,89,.7) transparent transparent}.theme-pink .layui-side .layui-nav .layui-nav-mored,.theme-pink .layui-side .layui-nav-itemed>a .layui-nav-more{border-color:transparent transparent rgba(89,89,89,.7)}.theme-pink .layui-side .layui-nav-tree.arrow3 .layui-nav-itemed>a>.layui-nav-more:before{background-color:rgba(89,89,89,.7)}@media screen and (min-width:769px){.theme-pink .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child>dd>a .layui-nav-more{border-color:transparent transparent transparent rgba(89,89,89,.7)}}.theme-pink .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title{top:8px;right:8px;height:32px;line-height:32px;box-sizing:border-box;background-color:transparent;box-shadow:-4px 4px 0 #f5f7f9;padding-right:70px}.theme-pink .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li{border:0;margin-right:6px;border-radius:4px;background-color:#fff;line-height:32px;height:32px}.theme-pink .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li.layui-this{color:#fb7299;background-color:#fff}.theme-pink .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li:hover{background-color:#fff}.theme-pink .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li.layui-this:after{display:none}.theme-pink .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li .layui-tab-close,.theme-pink .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li .layui-tab-close:hover{top:8px;color:#8c8c8c;background-color:transparent}.theme-pink .layui-layout-admin .layui-body .admin-tabs-control,.theme-pink .layui-layout-admin .layui-body .admin-tabs-control:hover{top:8px;height:32px;line-height:32px;background-color:#f5f7f9;border:0}.theme-pink .layui-layout-admin .layui-body .admin-tabs-control.layui-icon-down{border-radius:4px;background-color:#fff;width:32px;right:8px}.theme-pink .admin-tabs-control>.layui-nav .layui-nav-item{line-height:32px}.theme-pink .admin-tabs-control>.layui-nav .layui-nav-item>a{height:32px;width:32px;padding:0}.theme-pink .admin-tabs-control>.layui-nav .layui-nav-child{top:36px;border:0;border-radius:4px;box-shadow:0 1px 6px rgba(0,0,0,.2)}.theme-pink .layui-layout-admin .layui-body .admin-tabs-control.layui-icon-prev:before{content:"\e603"}.theme-pink .layui-layout-admin .layui-body .admin-tabs-control.layui-icon-next:before{content:"\e602"}.theme-pink .layui-body-header-title{border-left-color:#fb7299}.theme-pink .layui-body-header{box-shadow:0 1px 4px rgba(0,21,41,.08)}.theme-pink .layui-layer.layui-layer-admin{border-radius:4px}.theme-pink .layui-layer.layui-layer-admin .layui-layer-title{color:#262626;font-size:16px;padding-left:23px;background-color:#fff;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom:1px solid #f1f1f1}.theme-pink .layui-layer.layui-layer-admin .layui-layer-setwin a{color:#8c8c8c;font-weight:600}.theme-pink .layui-layer.layui-layer-admin .layui-layer-setwin .layui-layer-min cite{background-color:#8c8c8c}.theme-pink .layui-layer.layui-layer-admin .layui-layer-btn a{height:32px;line-height:32px;border-radius:4px;box-shadow:0 1px 0 rgba(0,0,0,.03)}.theme-pink .layui-layer.layui-layer-admin .layui-layer-btn .layui-layer-btn0{border-color:#fb7299;background-color:#fb7299}.theme-pink .more-theme-item:hover,.theme-pink .more-theme-item.active{border-color:#fb7299}.theme-pink .btn-circle{background:#fb7299}.theme-pink .ball-loader>span,.theme-pink .signal-loader>span{background-color:#fb7299}.theme-pink .text-primary,.theme-pink .layui-link{color:#fb7299!important}.theme-pink .layui-card{border-radius:4px;box-shadow:none}.theme-pink .layui-btn{height:36px;line-height:36px;border-radius:4px;background-color:#fb7299;box-shadow:0 1px 0 rgba(0,0,0,.03)}.theme-pink .layui-btn-lg{height:42px;line-height:42px}.theme-pink .layui-btn-sm{height:28px;line-height:28px}.theme-pink .layui-btn-xs{height:22px;line-height:22px}.theme-pink .layui-input,.theme-pink .layui-select,.theme-pink .layui-textarea,.theme-pink xm-select{height:36px;border-radius:4px}.theme-pink .layui-input:focus,.theme-pink .layui-textarea:focus,.theme-pink xm-select:hover{border-color:#fb7299!important}.theme-pink .layui-form-label,.theme-pink .layui-form-mid{padding-top:8px;padding-bottom:8px}.theme-pink .layui-input-block{min-height:36px}.theme-pink .layui-form-radio{margin-top:4px}.theme-pink .layui-form-onswitch{border-color:#fb7299;background-color:#fb7299}.theme-pink .layui-form-radio>i:hover,.theme-pink .layui-form-radioed>i,.theme-pink .layui-form-checked i,.theme-pink .layui-form-checked:hover i{color:#fb7299}.theme-pink .layui-form-checked[lay-skin=primary] i,.theme-pink .layui-form-checked span,.theme-pink .layui-form-checked:hover span{border-color:#fb7299!important;background-color:#fb7299}.theme-pink .layui-form-checked[lay-skin=primary] i:hover,.theme-pink .layui-form-checkbox[lay-skin=primary]:hover i{border-color:#fb7299!important}.theme-pink .layui-form-select dl dd.layui-this{background-color:#fb7299}.theme-pink .layui-laypage .layui-laypage-curr .layui-laypage-em{background-color:#fb7299}.theme-pink .layui-laypage input:focus,.theme-pink .layui-laypage select:focus{border-color:#fb7299!important}.theme-pink .layui-laypage a:hover{color:#fb7299}.theme-pink .layui-tab-brief>.layui-tab-title .layui-this{color:#fb7299}.theme-pink .layui-tab-brief>.layui-tab-more li.layui-this:after,.theme-pink .layui-tab-brief>.layui-tab-title .layui-this:after{border-color:#fb7299!important}.theme-pink .layui-tab.layui-tab-vertical>.layui-tab-title>li.layui-this{border-color:#fb7299;color:#fb7299}.theme-pink .layui-breadcrumb a:hover{color:#fb7299!important}.theme-pink .layui-laydate-footer span:hover,.theme-pink .layui-laydate-header i:hover,.theme-pink .layui-laydate-header span:hover{color:#fb7299}.theme-pink .layui-laydate .layui-this{background-color:#fb7299!important}.theme-pink .layui-laydate-content td.laydate-selected{background-color:#fff1f5}.theme-pink .laydate-selected:hover{background-color:#fff1f5!important}.theme-pink .layui-timeline-axis{color:#fb7299}.theme-pink .layui-transfer-active .layui-btn{background-color:#fb7299!important;border-color:#fb7299!important}.theme-pink .layui-progress-bar{background-color:#fb7299}.theme-pink .layui-slider-bar{background-color:#fb7299!important}.theme-pink .layui-slider-wrap-btn{border-color:#fb7299!important}.theme-pink .layui-tab.layui-steps>.layui-tab-title>li>.layui-icon{color:#fb7299}.theme-pink .layui-tab.layui-steps>.layui-tab-title>li>.layui-icon.layui-icon-ok,.theme-pink .layui-elem-quote{border-color:#fb7299}.theme-pink .layui-tab.layui-steps>.layui-tab-title>li:before,.theme-pink .layui-tab.layui-steps>.layui-tab-title>li.layui-this>.layui-icon.layui-icon-ok{background-color:#fb7299}.theme-pink .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li{background-color:#fdb8cc}.theme-pink .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li.layui-this{background-color:#fb7299}.theme-pink .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li:after{border-left-color:#fdb8cc!important}.theme-pink .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li.layui-this+li:after{border-left-color:#fb7299!important}.theme-pink .ew-cascader-dropdown-list-item.active,.theme-pink .ew-cascader-dropdown-list-item.active .ew-icon-right{color:#fb7299}.theme-pink div.tagsinput span.tag{background:#fb7299}.theme-pink xm-select .xm-body .xm-option .xm-option-icon{border-color:#fb7299!important}.theme-pink xm-select .xm-body .xm-option.selected .xm-option-icon,.theme-pink xm-select>.xm-body .xm-toolbar .toolbar-tag:hover,.theme-pink .ew-xmselect-tree xm-select .xm-body .xm-option.selected .xm-option-content{color:#fb7299!important}.theme-pink xm-select .xm-label .xm-label-block,.theme-pink xm-select .xm-body .xm-option.hide-icon.selected{background-color:#fb7299!important}.theme-pink .city-select a.active{color:#fff!important;background-color:#fb7299!important}.theme-pink .city-select a:hover,.theme-pink .city-select a:focus{background-color:#fff1f5;color:#fb7299}.theme-pink .city-picker-span>.title>span:hover{background-color:#fff1f5}.theme-pink .city-select-tab>a.active{color:#fb7299}.theme-colorful .layui-layout-admin .layui-header .layui-logo{color:#262626;background-color:transparent;box-shadow:2px 8px 8px 0 rgba(29,35,41,.05)}.theme-colorful .layui-layout-admin .layui-header{box-shadow:0 1px 4px rgba(0,21,41,.08)}.theme-colorful .layui-layout-admin .layui-header .layui-nav .layui-this:after,.theme-colorful .layui-layout-admin .layui-header .layui-nav-bar{background-color:#2d8cf0}.theme-colorful .layui-layout-admin .layui-side{background-color:#fff;box-shadow:2px 8px 8px 0 rgba(29,35,41,.05)}.theme-colorful .layui-side .layui-nav .layui-nav-item a{color:#595959}.theme-colorful .layui-side .layui-nav .layui-nav-item a:hover{color:#2d8cf0}.theme-colorful .layui-side .layui-nav-itemed>a,.theme-colorful .layui-side .layui-nav-tree .layui-nav-title a,.theme-colorful .layui-side .layui-nav-tree .layui-nav-title a:hover{color:#595959!important}.theme-colorful .layui-side .layui-nav-itemed>a:hover{color:#2d8cf0!important}.theme-colorful .layui-side .layui-nav-tree .layui-nav-child dd.layui-this a,.theme-colorful .layui-side .layui-nav-tree .layui-this>a,.theme-colorful .layui-side .layui-nav-tree .layui-this>a:hover{color:#2d8cf0;background:#f0faff;border-right:2px solid #2d8cf0}.theme-colorful .layui-side .layui-nav-tree .layui-nav-item .layui-nav-child{background-color:transparent!important}.theme-colorful .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child:before{background:#fff!important}@media screen and (min-width:769px){.theme-colorful .layui-layout-admin.admin-nav-mini .layui-side .layui-nav li.layui-nav-itemed>a{background:#f0faff;color:#2d8cf0!important}}.theme-colorful .layui-nav-tree>.layui-nav-item>a:before{display:none}.theme-colorful .layui-side .layui-nav .layui-nav-more{border-color:rgba(89,89,89,.7) transparent transparent}.theme-colorful .layui-side .layui-nav .layui-nav-mored,.theme-colorful .layui-side .layui-nav-itemed>a .layui-nav-more{border-color:transparent transparent rgba(89,89,89,.7)}.theme-colorful .layui-side .layui-nav-tree.arrow3 .layui-nav-itemed>a>.layui-nav-more:before{background-color:rgba(89,89,89,.7)}@media screen and (min-width:769px){.theme-colorful .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover>.layui-nav-child>dd>a .layui-nav-more{border-color:transparent transparent transparent rgba(89,89,89,.7)}}.theme-colorful .layui-side .layui-nav .layui-nav-item a cite{vertical-align:middle}.theme-colorful .layui-side .layui-nav-item>a>.layui-icon{color:#fff;width:28px;height:28px;font-size:12px!important;line-height:28px;text-align:center;border-radius:50%;display:inline-block;vertical-align:middle;background-color:#61b2fc}.theme-colorful .layui-side .layui-nav-item:nth-child(even)>a>.layui-icon{background-color:#7dd733}.theme-colorful .layui-side .layui-nav-item:nth-child(3)>a>.layui-icon{background-color:#32a2d4}.theme-colorful .layui-side .layui-nav-item:nth-child(4)>a>.layui-icon{background-color:#2bccce}.theme-colorful .layui-side .layui-nav-item:nth-child(5)>a>.layui-icon{background-color:#7383cf}@media screen and (min-width:768px){.theme-colorful .admin-nav-mini .layui-side .layui-nav-item>a{padding-left:16px}}.theme-colorful .layui-layout-admin .layui-side .layui-nav .layui-nav-item .layui-nav-child a{padding-left:63px}.theme-colorful .layui-layout-admin .layui-side .layui-nav .layui-nav-item .layui-nav-child .layui-nav-child a{padding-left:83px}.theme-colorful .layui-layout-admin .layui-side .layui-nav .layui-nav-item .layui-nav-child .layui-nav-child .layui-nav-child a{padding-left:103px}.theme-colorful .layui-layout-admin .layui-side .layui-nav .layui-nav-item .layui-nav-child .layui-nav-child .layui-nav-child .layui-nav-child a{padding-left:123px}.theme-colorful .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title{top:8px;right:8px;height:32px;line-height:32px;box-sizing:border-box;background-color:transparent;box-shadow:-4px 4px 0 #f5f7f9;padding-right:70px}.theme-colorful .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li{border:0;margin-right:6px;border-radius:4px;background-color:#fff;line-height:32px;height:32px}.theme-colorful .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li.layui-this{color:#2d8cf0;background-color:#fff}.theme-colorful .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li:hover{background-color:#fff}.theme-colorful .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li.layui-this:after{display:none}.theme-colorful .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li .layui-tab-close,.theme-colorful .layui-layout-admin .layui-body>.layui-tab>.layui-tab-title li .layui-tab-close:hover{top:8px;color:#8c8c8c;background-color:transparent}.theme-colorful .layui-layout-admin .layui-body .admin-tabs-control,.theme-colorful .layui-layout-admin .layui-body .admin-tabs-control:hover{top:8px;height:32px;line-height:32px;background-color:#f5f7f9;border:0}.theme-colorful .layui-layout-admin .layui-body .admin-tabs-control.layui-icon-down{border-radius:4px;background-color:#fff;width:32px;right:8px}.theme-colorful .admin-tabs-control>.layui-nav .layui-nav-item{line-height:32px}.theme-colorful .admin-tabs-control>.layui-nav .layui-nav-item>a{height:32px;width:32px;padding:0}.theme-colorful .admin-tabs-control>.layui-nav .layui-nav-child{top:36px;border:0;border-radius:4px;box-shadow:0 1px 6px rgba(0,0,0,.2)}.theme-colorful .layui-layout-admin .layui-body .admin-tabs-control.layui-icon-prev:before{content:"\e603"}.theme-colorful .layui-layout-admin .layui-body .admin-tabs-control.layui-icon-next:before{content:"\e602"}.theme-colorful .layui-body-header-title{border-left-color:#2d8cf0}.theme-colorful .layui-body-header{box-shadow:0 1px 4px rgba(0,21,41,.08)}.theme-colorful .layui-layer.layui-layer-admin{border-radius:4px}.theme-colorful .layui-layer.layui-layer-admin .layui-layer-title{color:#262626;font-size:16px;padding-left:23px;background-color:#fff;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom:1px solid #f1f1f1}.theme-colorful .layui-layer.layui-layer-admin .layui-layer-setwin a{color:#8c8c8c;font-weight:600}.theme-colorful .layui-layer.layui-layer-admin .layui-layer-setwin .layui-layer-min cite{background-color:#8c8c8c}.theme-colorful .layui-layer.layui-layer-admin .layui-layer-btn a{height:32px;line-height:32px;border-radius:4px;box-shadow:0 1px 0 rgba(0,0,0,.03)}.theme-colorful .layui-layer.layui-layer-admin .layui-layer-btn .layui-layer-btn0{border-color:#2d8cf0;background-color:#2d8cf0}.theme-colorful .more-theme-item:hover,.theme-colorful .more-theme-item.active{border-color:#2d8cf0}.theme-colorful .btn-circle{background:#2d8cf0}.theme-colorful .ball-loader>span,.theme-colorful .signal-loader>span{background-color:#2d8cf0}.theme-colorful .text-primary,.theme-colorful .layui-link{color:#2d8cf0!important}.theme-colorful .layui-card{border-radius:4px;box-shadow:none}.theme-colorful .layui-btn{height:36px;line-height:36px;border-radius:4px;background-color:#2d8cf0;box-shadow:0 1px 0 rgba(0,0,0,.03)}.theme-colorful .layui-btn-lg{height:42px;line-height:42px}.theme-colorful .layui-btn-sm{height:28px;line-height:28px}.theme-colorful .layui-btn-xs{height:22px;line-height:22px}.theme-colorful .layui-input,.theme-colorful .layui-select,.theme-colorful .layui-textarea,.theme-colorful xm-select{height:36px;border-radius:4px}.theme-colorful .layui-input:focus,.theme-colorful .layui-textarea:focus,.theme-colorful xm-select:hover{border-color:#2d8cf0!important}.theme-colorful .layui-form-label,.theme-colorful .layui-form-mid{padding-top:8px;padding-bottom:8px}.theme-colorful .layui-input-block{min-height:36px}.theme-colorful .layui-form-radio{margin-top:4px}.theme-colorful .layui-form-onswitch{border-color:#2d8cf0;background-color:#2d8cf0}.theme-colorful .layui-form-radio>i:hover,.theme-colorful .layui-form-radioed>i,.theme-colorful .layui-form-checked i,.theme-colorful .layui-form-checked:hover i{color:#2d8cf0}.theme-colorful .layui-form-checked[lay-skin=primary] i,.theme-colorful .layui-form-checked span,.theme-colorful .layui-form-checked:hover span{border-color:#2d8cf0!important;background-color:#2d8cf0}.theme-colorful .layui-form-checkbox[lay-skin=primary] i:hover,.theme-colorful .layui-form-checkbox[lay-skin=primary]:hover i{border-color:#2d8cf0}.theme-colorful .layui-form-select dl dd.layui-this{background-color:#2d8cf0}.theme-colorful .layui-laypage .layui-laypage-curr .layui-laypage-em{background-color:#2d8cf0}.theme-colorful .layui-laypage input:focus,.theme-colorful .layui-laypage select:focus{border-color:#2d8cf0!important}.theme-colorful .layui-laypage a:hover{color:#2d8cf0}.theme-colorful .layui-tab-brief>.layui-tab-title .layui-this{color:#2d8cf0}.theme-colorful .layui-tab-brief>.layui-tab-more li.layui-this:after,.theme-colorful .layui-tab-brief>.layui-tab-title .layui-this:after{border-color:#2d8cf0!important}.theme-colorful .layui-tab.layui-tab-vertical>.layui-tab-title>li.layui-this{border-color:#2d8cf0;color:#2d8cf0}.theme-colorful .layui-breadcrumb a:hover{color:#2d8cf0!important}.theme-colorful .layui-laydate-footer span:hover,.theme-colorful .layui-laydate-header i:hover,.theme-colorful .layui-laydate-header span:hover{color:#2d8cf0}.theme-colorful .layui-laydate .layui-this{background-color:#2d8cf0!important}.theme-colorful .layui-laydate-content td.laydate-selected{background-color:rgba(45,140,240,.1)}.theme-colorful .laydate-selected:hover{background-color:rgba(45,140,240,.1)!important}.theme-colorful .layui-timeline-axis{color:#2d8cf0}.theme-colorful .layui-transfer-active .layui-btn{background-color:#2d8cf0!important;border-color:#2d8cf0!important}.theme-colorful .layui-progress-bar{background-color:#2d8cf0}.theme-colorful .layui-slider-bar{background-color:#2d8cf0!important}.theme-colorful .layui-slider-wrap-btn{border-color:#2d8cf0!important}.theme-colorful .layui-tab.layui-steps>.layui-tab-title>li>.layui-icon{color:#2d8cf0}.theme-colorful .layui-tab.layui-steps>.layui-tab-title>li>.layui-icon.layui-icon-ok,.theme-colorful .layui-elem-quote{border-color:#2d8cf0}.theme-colorful .layui-tab.layui-steps>.layui-tab-title>li:before,.theme-colorful .layui-tab.layui-steps>.layui-tab-title>li.layui-this>.layui-icon.layui-icon-ok{background-color:#2d8cf0}.theme-colorful .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li{background-color:#96c6f8}.theme-colorful .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li.layui-this{background-color:#2d8cf0}.theme-colorful .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li:after{border-left-color:#96c6f8!important}.theme-colorful .layui-tab.layui-steps.layui-steps-simple>.layui-tab-title>li.layui-this+li:after{border-left-color:#2d8cf0!important}.theme-colorful .ew-cascader-dropdown-list-item.active,.theme-colorful .ew-cascader-dropdown-list-item.active .ew-icon-right{color:#2d8cf0}.theme-colorful div.tagsinput span.tag{background:#2d8cf0}.theme-colorful xm-select .xm-body .xm-option .xm-option-icon{border-color:#2d8cf0!important}.theme-colorful xm-select .xm-body .xm-option.selected .xm-option-icon,.theme-colorful xm-select>.xm-body .xm-toolbar .toolbar-tag:hover,.theme-colorful .ew-xmselect-tree xm-select .xm-body .xm-option.selected .xm-option-content{color:#2d8cf0!important}.theme-colorful xm-select .xm-label .xm-label-block,.theme-colorful xm-select .xm-body .xm-option.hide-icon.selected{background-color:#2d8cf0!important}.theme-colorful .city-select a.active{color:#fff!important;background-color:#2d8cf0!important}.theme-colorful .city-select a:hover,.theme-colorful .city-select a:focus{background-color:#f0faff;color:#2d8cf0}.theme-colorful .city-picker-span>.title>span:hover{background-color:#f0faff}.theme-colorful .city-select-tab>a.active{color:#2d8cf0}
+
+/** ---------------------------theme-my涓婚start----------------------------------- */
+/* logo */
+.theme-my .layui-layout-admin .layui-header .layui-logo {
+ color: #dddddd;
+ background-color: #191a23;
+
+}
+
+/* header */
+
+
+.theme-my .layui-layout-admin .layui-header {
+ background-color: #191a23;
+}
+
+.theme-my .layui-layout-admin .layui-header a {
+ color: #dddddd;
+}
+
+.theme-my .layui-layout-admin .layui-header a:hover {
+ color: #dddddd;
+}
+
+.theme-my .layui-layout-admin .layui-header .layui-nav-child a {
+ color: #595959;
+}
+
+.theme-my .layui-layout-admin .layui-header .layui-nav .layui-nav-more {
+ border-color: #dddddd transparent transparent;
+}
+
+.theme-my .layui-layout-admin .layui-header .layui-nav .layui-nav-mored {
+ border-color: transparent transparent #dddddd;
+}
+
+.theme-my .layui-layout-admin .layui-header .layui-nav .layui-this:after,
+.theme-my .layui-layout-admin .layui-header .layui-nav-bar {
+ background-color: #191a23;
+}
+
+
+
+/* side */
+.theme-my .layui-layout-admin .layui-side {
+ background-color: #191a23;
+
+}
+
+
+.theme-my .layui-nav-tree .layui-nav-child dd.layui-this a,
+.theme-my .layui-nav-tree .layui-this > a,
+.theme-my .layui-nav-tree .layui-this > a:hover {
+ background-color: #009688;
+}
+
+.theme-my .layui-nav-tree > .layui-nav-item > a:before {
+ background-color: #009688;
+}
+
+
+.theme-my .layui-layout-admin.admin-nav-mini .layui-side .layui-nav .admin-nav-hover > .layui-nav-child:before {
+ background: #191a23 !important;
+}
+
+
+
+
+
+/* body tab */
+
+.theme-my .layui-layout-admin .layui-body > .layui-tab > .layui-tab-title {
+ top: 8px;
+ right: 8px;
+ height: 32px;
+ line-height: 32px;
+ box-sizing: border-box;
+ background-color: transparent;
+ box-shadow: -4px 4px 0 #f5f7f9;
+ padding-right: 70px;
+}
+
+.theme-my .layui-layout-admin .layui-body > .layui-tab > .layui-tab-content {
+ top: 40px;
+}
+
+.theme-my .layui-layout-admin .layui-body > .layui-tab > .layui-tab-title li {
+ border: none;
+ margin-right: 6px;
+ border-radius: 4px;
+ background-color: #fff;
+ line-height: 32px;
+ height: 32px;
+}
+
+.theme-my .layui-layout-admin .layui-body > .layui-tab > .layui-tab-title li.layui-this {
+ color: #2d8cf0;
+ background-color: #fff;
+}
+
+.theme-my .layui-layout-admin .layui-body > .layui-tab > .layui-tab-title li:hover {
+ background-color: #fff;
+}
+
+.theme-my .layui-layout-admin .layui-body > .layui-tab > .layui-tab-title li.layui-this:after {
+ display: none;
+}
+
+.theme-my .layui-layout-admin .layui-body > .layui-tab > .layui-tab-title li .layui-tab-close,
+.theme-my .layui-layout-admin .layui-body > .layui-tab > .layui-tab-title li .layui-tab-close:hover {
+ top: 8px;
+ color: #8c8c8c;
+ background-color: transparent;
+}
+
+.theme-my .layui-layout-admin .layui-body .admin-tabs-control,
+.theme-my .layui-layout-admin .layui-body .admin-tabs-control:hover {
+ top: 8px;
+ height: 32px;
+ line-height: 32px;
+ background-color: #f5f7f9;
+ border: none;
+}
+
+.theme-my .layui-layout-admin .layui-body .admin-tabs-control.layui-icon-down {
+ border-radius: 4px;
+ background-color: #fff;
+ width: 32px;
+ right: 8px;
+}
+
+.theme-my .admin-tabs-control > .layui-nav .layui-nav-item {
+ line-height: 32px;
+}
+
+.theme-my .admin-tabs-control > .layui-nav .layui-nav-item > a {
+ height: 32px;
+ width: 32px;
+ padding: 0;
+}
+
+.theme-my .admin-tabs-control > .layui-nav .layui-nav-child {
+ top: 36px;
+ border: none;
+ border-radius: 4px;
+ box-shadow: 0 1px 6px rgba(0, 0, 0, .2);
+}
+
+.theme-my .layui-layout-admin .layui-body .admin-tabs-control.layui-icon-prev:before {
+ content: "\e603";
+}
+
+.theme-my .layui-layout-admin .layui-body .admin-tabs-control.layui-icon-next:before {
+ content: "\e602";
+}
+
+
+/* body title */
+.theme-my .layui-body-header-title {
+ border-left-color: #009688;
+}
+
+
+
+/* admin dialog */
+.theme-my .layui-layer.layui-layer-admin .layui-layer-title {
+ color: #ffffff;
+ background-color: #191a23;
+
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px;
+
+
+}
+
+
+
+.theme-my .layui-layer.layui-layer-admin .layui-layer-btn .layui-layer-btn0 {
+ border-color: #009688;
+ background-color: #009688;
+}
+
+
+.theme-my .layui-layer.layui-layer-admin .layui-layer-btn a {
+ box-shadow: 0 1px 0 rgba(0, 0, 0, .03);
+}
+
+.theme-my .layui-layer.layui-layer-admin {
+ border-radius: 4px;
+}
+
+
+
+
+/* other */
+.theme-my .more-theme-item:hover,
+.theme-my .more-theme-item.active {
+ border-color: #009688;
+}
+
+.theme-my .btn-circle {
+ background: #009688;
+}
+
+.theme-my .ball-loader > span,
+.theme-my .signal-loader > span {
+ background-color: #009688;
+}
+
+.theme-my .text-primary,
+.theme-my .layui-link {
+ color: #009688 !important;;
+}
+
+
+.theme-my .layui-card {
+ border-radius: 4px;
+ box-shadow: none;
+}
+
+.theme-my .layui-fluid {
+ padding-top: 10px;
+}
+
+
+/* button */
+.theme-my .layui-btn {
+ background-color: #009688;
+
+ box-shadow: 0 1px 0 rgba(0, 0, 0, .03);
+
+}
+
+
+/* input */
+.theme-my .layui-input:focus,
+.theme-my .layui-textarea:focus,
+.theme-my xm-select:hover {
+ border-color: #009688 !important;
+}
+
+
+
+
+
+
+/* switch */
+.theme-my .layui-form-onswitch {
+ border-color: #009688;
+ background-color: #009688;
+}
+
+/* radio */
+.theme-my .layui-form-radio > i:hover,
+.theme-my .layui-form-radioed > i,
+.theme-my .layui-form-checked i,
+.theme-my .layui-form-checked:hover i {
+ color: #009688;
+}
+
+/* checkbox */
+.theme-my .layui-form-checked[lay-skin=primary] i,
+.theme-my .layui-form-checked span,
+.theme-my .layui-form-checked:hover span {
+ border-color: #009688 !important;
+ background-color: #009688;
+}
+
+.theme-my .layui-form-checkbox[lay-skin=primary] i:hover,
+.theme-my .layui-form-checkbox[lay-skin=primary]:hover i {
+ border-color: #009688;
+}
+
+/* select */
+.theme-my .layui-form-select dl dd.layui-this {
+ background-color: #009688;
+}
+
+/* laypage */
+.theme-my .layui-laypage .layui-laypage-curr .layui-laypage-em {
+ background-color: #009688;
+}
+
+.theme-my .layui-laypage input:focus,
+.theme-my select:focus {
+ border-color: #009688 !important;
+}
+
+.theme-my .layui-laypage a:hover {
+ color: #009688;
+}
+
+/* tab */
+.theme-my .layui-tab-brief > .layui-tab-title .layui-this {
+ color: #009688;
+}
+
+.theme-my .layui-tab-brief > .layui-tab-more li.layui-this:after,
+.theme-my .layui-tab-brief > .layui-tab-title .layui-this:after {
+ border-color: #009688 !important;
+}
+
+.theme-my .layui-tab.layui-tab-vertical > .layui-tab-title > li.layui-this {
+ border-color: #009688;
+ color: #009688;
+}
+
+/* breadcrumb */
+.theme-my .layui-breadcrumb a:hover {
+ color: #009688 !important;
+}
+
+/* laydate */
+.theme-my .layui-laydate-footer span:hover,
+.theme-my .layui-laydate-header i:hover,
+.theme-my .layui-laydate-header span:hover {
+ color: #009688;
+}
+
+.theme-my .layui-laydate .layui-this {
+ background-color: #009688 !important;
+}
+
+.theme-my .layui-laydate-content td.laydate-selected {
+ background-color: rgba(0,150,136,.1);
+}
+
+.theme-my .laydate-selected:hover {
+ background-color: rgba(0,150,136,.1) !important;
+}
+
+/* timeline */
+.theme-my .layui-timeline-axis {
+ color: #009688;
+}
+
+/* transfer */
+.theme-my .layui-transfer-active .layui-btn {
+ background-color: #009688 !important;
+ border-color: #009688 !important;
+}
+
+/* progress-bar */
+.theme-my .layui-progress-bar {
+ background-color: #009688;
+}
+
+/* slider */
+.theme-my .layui-slider-bar {
+ background-color: #009688 !important;
+}
+
+.theme-colorful .layui-slider-wrap-btn {
+ border-color: #009688 !important;
+}
+
+/* steps */
+.theme-my .layui-tab.layui-steps > .layui-tab-title > li > .layui-icon {
+ color: #009688;
+}
+
+.theme-my .layui-tab.layui-steps > .layui-tab-title > li > .layui-icon.layui-icon-ok,
+.theme-my .layui-elem-quote {
+ border-color: #009688;
+}
+
+.theme-my .layui-tab.layui-steps > .layui-tab-title > li:before,
+.theme-my .layui-tab.layui-steps > .layui-tab-title > li.layui-this > .layui-icon.layui-icon-ok {
+ background-color: #009688;
+}
+
+.theme-my .layui-tab.layui-steps.layui-steps-simple > .layui-tab-title > li {
+ background-color: rgba(0,150,136,.5);
+}
+
+.theme-my .layui-tab.layui-steps.layui-steps-simple > .layui-tab-title > li.layui-this {
+ background-color: #009688;
+}
+
+.theme-my .layui-tab.layui-steps.layui-steps-simple > .layui-tab-title > li:after {
+ border-left-color: rgba(0,150,136,.5) !important;
+}
+
+.theme-my .layui-tab.layui-steps.layui-steps-simple > .layui-tab-title > li.layui-this + li:after {
+ border-left-color: #009688 !important;
+}
+
+/* xmSelect */
+.theme-my xm-select .xm-body .xm-option .xm-option-icon {
+ border-color: #009688 !important;
+}
+
+.theme-my xm-select .xm-body .xm-option.selected .xm-option-icon,
+.theme-my xm-select > .xm-body .xm-toolbar .toolbar-tag:hover,
+.theme-my .ew-xmselect-tree xm-select .xm-body .xm-option.selected .xm-option-content {
+ color: #009688 !important;
+}
+
+.theme-my xm-select .xm-label .xm-label-block,
+.theme-my xm-select > .xm-body .xm-option.hide-icon.selected {
+ background-color: #009688 !important;
+}
+
+/* tagsinput */
+.theme-my div.tagsinput span.tag {
+ background: #009688;
+}
+
+/* cascader */
+.theme-my .ew-cascader-dropdown-list-item.active,
+.theme-my .ew-cascader-dropdown-list-item.active .ew-icon-right {
+ color: #009688;
+}
+
+/* city-select */
+.theme-my .city-select a.active {
+ color: #fff !important;
+ background-color: #009688 !important;
+}
+
+.theme-my .city-select a:hover,
+.theme-my .city-select a:focus {
+ background-color: rgba(0,150,136,.07);
+ color: #009688;
+}
+
+.theme-my .city-picker-span > .title > span:hover {
+ background-color: rgba(0,150,136,.07);
+}
+
+.theme-my .city-select-tab > a.active {
+ color: #009688;
+}
+
+.theme-my .layui-layer.layui-layer-admin {
+ border-radius: 4px;
+}
+
+.theme-my .layui-btn {
+ border-radius: 4px;
+}
+
+/** ---------------------------theme-my涓婚end----------------------------------- */
diff --git a/src/main/webapp/static/css/common.css b/src/main/webapp/static/css/common.css
index f388ea3..d1a71bc 100644
--- a/src/main/webapp/static/css/common.css
+++ b/src/main/webapp/static/css/common.css
@@ -1,49 +1,225 @@
-/* 缁熶竴澶勭悊 */
-*, *::before, *::after {
- -webkit-box-sizing: border-box;
- box-sizing: border-box;
- margin: 0;
- padding: 0;
-}
-html {
- line-height: 1.5;
- font-size: 15px;
- font-family: sans-serif;
- height: 100%;
-}
+/**, *::before, *::after {*/
+/* -webkit-box-sizing: border-box;*/
+/* box-sizing: border-box;*/
+/* margin: 0;*/
+/* padding: 0;*/
+/*}*/
+
body {
- height: 100%;
+ background-color: #fff;
}
-iframe {
+input::placeholder {
+ color: #b4b4b4;
+}
+input::-webkit-input-placeholder { /* WebKit browsers 閫傞厤璋锋瓕 */
+ color: #b4b4b4;
+}
+.layui-input input:-moz-placeholder { /* Mozilla Firefox 4 to 18 閫傞厤鐏嫄 */
+ color: #b4b4b4;
+}
+.layui-input input::-moz-placeholder { /* Mozilla Firefox 19+ 閫傞厤鐏嫄 */
+ color: #b4b4b4;
+}
+.layui-input input:-ms-input-placeholder { /* Internet Explorer 10+ 閫傞厤ie*/
+ color: #b4b4b4;
+}
+
+/* layui浼樺寲 */
+.layui-form-label {
+ /*color: #595959;*/
+}
+.layui-input:focus {
+ border-color: #007bff !important;
+}
+/*鎼滅储鏍�*/
+.layui-form.layui-card-header {
+ padding: 20px 0 5px 0;
+ height: auto;
+}
+#search-box {
+ margin-left: 10px;
+ z-index: 999;
+ position: relative;
+ padding: 30px 30px 10px 30px;
+}
+#search-box .layui-inline{
+ margin-bottom: 10px;
+ margin-right: 5px;
+}
+#search-box .layui-input-inline {
+ width: 150px;
+}
+.layui-form-label{
+ font-size: 100%;
+ padding: 13px 0 9px 5px;
+ text-align: right;
+}
+#data-search-btn {
+ display: inline-block;
+ margin: 8px 0 0 10px;
+ justify-content: center;
+ align-items: center;
+}
+#data-search-btn.layui-btn-container .layui-btn{
+ margin-right: 20px;
+}
+
+/*澶村伐鍏锋爮*/
+.layui-table-tool-temp {
+ padding-right: 70px;
+}
+.layui-btn .layui-icon {
+ margin: 1px 5px;
+}
+#btn-add{
+ background: #007DDB
+}
+#btn-delete{
+ background: #ff5722
+}
+#btn-export{
+ float: right;
+}
+
+/*琛ㄦ牸*/
+.layui-table thead th {
+ font-weight: bold;
+ text-align: center;
+}
+div .layui-table-tool .layui-table-tool-self .layui-inline[title='瀵煎嚭']{
+ display: none;
+}
+.layui-form.layui-border-box.layui-table-view{
+ margin: 15px 0 35px 0;
+ width: 100%;
border-width: 0;
}
+.layui-table-box{
+ padding-bottom: 10px;
+}
+/*.layui-table-body.layui-table-main{*/
+/* overflow: hidden;*/
+/*}*/
+.layui-table-page{
+ border-width: 0;
+}
+.layui-table tbody tr:hover, .layui-table thead tr, .layui-table-click, .layui-table-header, .layui-table-hover, .layui-table-mend, .layui-table-patch, .layui-table-tool, .layui-table-total, .layui-table-total tr, .layui-table[lay-even] tr:nth-child(even) {
+ background-color: #f9f9f9;
+}
+.layui-table-tool {
+ /*background-color: #fff;*/
+}
+/* table 锛堟崲琛�/璇︽儏锛夋樉绀烘帶鍒� */
+/*.layui-table-cell {*/
+/*font-size:14px;*/
+/*padding:0 5px;*/
+/*height:auto;*/
+/*overflow:visible;*/
+/*text-overflow:inherit;*/
+/*white-space:normal;*/
+/*word-break: break-all;*/
+/*}*/
+/*.layui-table-grid-down {*/
+/*display: none;*/
+/*}*/
-/* 甯冨眬 */
-.row::after, .row::before {
- content: "";
- display: table;
- clear: both;
+/*璇︽儏*/
+#detail .layui-form-label{
+ white-space: nowrap;
+ font-size: 100%;
+ padding: 9px 0 9px 5px;
+ text-align: right;
}
-.col-md3:empty {
- background:rgba(0,0,0,0.04);
- border: 1px solid rgba(0,0,0,.3);
- min-height:32px;
+#detail {
+ padding: 25px 0;
+ margin: 0 20px 0 30px;
+}
+#detail .layui-inline {
+ margin: 10px 15px 15px 0;
+}
+#detail .layui-input-inline {
+ margin-right: 40px;
+ margin-left: 95px;
+ display: block;
+}
+.layui-bg-gray {
+ margin-top: 40px;
+}
+#prompt {
+ margin-top: 20px;
+ width: 90%;
+ text-indent: 40px;
+ color: #505050;
+}
+#data-detail-btn {
+ padding-top: 25px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+#data-detail-btn.layui-btn-container .layui-btn{
+ margin-right: 30px;
+}
+.not-null {
+ color:red;
+}
+
+#detail .layui-form-checkbox {
+ top: 10px;
+}
+
+/*鍥剧墖*/
+.cool-img {
+ cursor:pointer;
+ width: 200px;
+ height: 200px;
+}
+
+/*
+ 甯冨眬
+ */
+.col:empty{min-height:32px;height: inherit;z-index:1;position:relative;box-sizing: border-box;}
+.col:empty:after{
+ z-index:0;display:flex;align-items: center;justify-content: center;
+ clear: both;content:attr(title);position:absolute;
+ background:rgba(0,0,0,0.04);top:2px;left:2px;right:2px;bottom:2px;
+ text-align:center;color:rgba(0,0,0,0.1); border-radius: inherit;
+}
+.col{
height: inherit;
- z-index:1;
}
-.col-md1,.col-md10,.col-md11,.col-md12,.col-md2,.col-md3,.col-md4,.col-md5,.col-md6,.col-md7,.col-md8,.col-md9{
- float:left;
+
+/*鏉冮檺*/
+#btn-add {
+ display: none;
}
-.col-md1{width:8.33333333%}
-.col-md2{width:16.66666667%}
-.col-md3{width:25%}
-.col-md4{width:33.33333333%}
-.col-md5{width:41.66666667%}
-.col-md6{width:50%}
-.col-md7{width:58.33333333%}
-.col-md8{width:66.66666667%}
-.col-md9{width:75%}
-.col-md10{width:83.33333333%}
-.col-md11{width:91.66666667%}
-.col-md12{width:100%}
\ No newline at end of file
+.btn-edit {
+ display: none;
+}
+#btn-delete {
+ display: none;
+}
+#btn-export {
+ display: none;
+}
+#btn-into {
+ display: none;
+}
+
+/*淇敼澶嶉�夋棰滆壊*/
+/*.layui-form-checked[lay-skin=primary] i {*/
+/*border-color: #4c95b8!important;*/
+/*background-color: #4c95b8;*/
+/*color: #fff;*/
+/*}*/
+/*.layui-form-checkbox[lay-skin=primary]:hover i {*/
+/*border-color: #4c95b8;*/
+/*color: #fff;*/
+/*}*/
+
+/* 濯掍綋鏌ヨ 鈥斺�� 鍝嶅簲甯冨眬 */
+/* 鍋氬搷搴斿紡甯冨眬鏃讹紝涓嶅缓璁敤鍥哄畾灏哄锛屽敖閲忕敤% */
+@media only screen and (max-width: 800px) {
+
+}
diff --git a/src/main/webapp/static/css/cool.css b/src/main/webapp/static/css/cool.css
new file mode 100644
index 0000000..b592730
--- /dev/null
+++ b/src/main/webapp/static/css/cool.css
@@ -0,0 +1,48 @@
+/*鑷姩琛ュ叏*/
+.cool-auto-complete .layui-unselect.layui-form-select {
+ display: none;
+}
+
+.cool-auto-complete-div {
+ cursor: pointer;
+}
+
+.cool-auto-complete-window {
+ width: 100%;
+ display: none;
+ position: absolute;
+ line-height: normal;
+ z-index: 999;
+}
+
+.cool-auto-complete-window-input {
+ height: 28px;
+ box-sizing: border-box;
+ border: 1px solid #dedede;
+ width: 100%;
+}
+.cool-auto-complete-window-input:focus {
+ border-color: #007bff !important;
+}
+.cool-auto-complete-window-select {
+ width: 100%;
+ border: 1px solid #dedede;
+ margin: 0;
+ height: 142px;
+
+}
+
+.cool-auto-complete-window-select option:hover {
+ background-color: #f1f1f1;
+}
+
+.cool-auto-complete-window-select option{
+ padding: 3px 2px;
+}
+.cool-auto-complete-window-select option:first-child{
+ color:#aaaaaa;
+}
+
+/*.layui-table-grid-down {*/
+/* display: none;*/
+/*}*/
diff --git a/src/main/webapp/static/css/loader.css b/src/main/webapp/static/css/loader.css
new file mode 100644
index 0000000..6990738
--- /dev/null
+++ b/src/main/webapp/static/css/loader.css
@@ -0,0 +1,59 @@
+/**鍒濆鍖栧姞杞藉眰*/
+.layuimini-loader {
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background-color: #ffffff;
+ z-index: 999999;
+}
+
+.layuimini-loader .layuimini-loader-inner {
+ display: block;
+ position: relative;
+ left: 50%;
+ top: 50%;
+ width: 150px;
+ height: 150px;
+ margin: -75px 0 0 -75px;
+ border-radius: 50%;
+ border: 3px solid transparent;
+ border-top-color: #1E9FFF;
+ animation: spin 2s linear infinite;
+}
+
+.layuimini-loader .layuimini-loader-inner:before {
+ content: "";
+ position: absolute;
+ top: 5px;
+ left: 5px;
+ right: 5px;
+ bottom: 5px;
+ border-radius: 50%;
+ border: 3px solid transparent;
+ border-top-color: #1E9FFF;
+ animation: spin 3s linear infinite;
+}
+
+.layuimini-loader .layuimini-loader-inner:after {
+ content: "";
+ position: absolute;
+ top: 15px;
+ left: 15px;
+ right: 15px;
+ bottom: 15px;
+ border-radius: 50%;
+ border: 3px solid transparent;
+ border-top-color: #1E9FFF;
+ animation: spin 1.5s linear infinite;
+}
+
+@keyframes spin {
+ 0% {
+ transform: rotate(0deg);
+ }
+ to {
+ transform: rotate(1turn);
+ }
+}
diff --git a/src/main/webapp/static/css/originTable.css b/src/main/webapp/static/css/originTable.css
new file mode 100644
index 0000000..a86612d
--- /dev/null
+++ b/src/main/webapp/static/css/originTable.css
@@ -0,0 +1,29 @@
+#originTable + .layui-table-view .layui-table-tool-temp {
+ padding-right: 0;
+}
+#originTable + .layui-table-view .layui-table-body tbody > tr td {
+ cursor: pointer;
+}
+#originTable + .layui-table-view .layui-table-body tbody > tr.layui-table-click {
+ background-color: #fff3e0;
+}
+#originTable + .layui-table-view .layui-table-body tbody > tr.layui-table-click td:last-child > div:before {
+ position: absolute;
+ right: 6px;
+ content: "\e602";
+ font-size: 12px;
+ font-style: normal;
+ font-family: layui-icon,serif !important;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+#left-table .layui-table-grid-down {
+ display: none;
+}
+.layui-form.layui-border-box.layui-table-view {
+ border-width: 1px;
+}
+#left-table .layui-table thead th {
+ /* font-weight: bold; */
+ text-align: left;
+}
diff --git a/src/main/webapp/static/images/zy-logo-dark.png b/src/main/webapp/static/images/zy-logo-dark.png
new file mode 100644
index 0000000..df4e153
--- /dev/null
+++ b/src/main/webapp/static/images/zy-logo-dark.png
Binary files differ
diff --git a/src/main/webapp/static/images/zy-logo.png b/src/main/webapp/static/images/zy-logo.png
index 4865504..21a19b9 100644
--- a/src/main/webapp/static/images/zy-logo.png
+++ b/src/main/webapp/static/images/zy-logo.png
Binary files differ
diff --git a/src/main/webapp/static/js/apiLog/apiLog.js b/src/main/webapp/static/js/apiLog/apiLog.js
new file mode 100644
index 0000000..8e72f1a
--- /dev/null
+++ b/src/main/webapp/static/js/apiLog/apiLog.js
@@ -0,0 +1,268 @@
+var pageCurr;
+layui.config({
+ base: baseUrl + "/static/layui/lay/modules/"
+}).use(['table','laydate', 'form', 'admin'], function(){
+ var table = layui.table;
+ var $ = layui.jquery;
+ var layer = layui.layer;
+ var layDate = layui.laydate;
+ var form = layui.form;
+ var admin = layui.admin;
+
+ // 鏁版嵁娓叉煋
+ tableIns = table.render({
+ elem: '#apiLog',
+ headers: {token: localStorage.getItem('token')},
+ url: baseUrl+'/apiLog/list/auth',
+ page: true,
+ limit: 15,
+ limits: [15, 30, 50, 100, 200, 500],
+ toolbar: '#toolbar',
+ cellMinWidth: 50,
+ height: 'full-120',
+ cols: [[
+ {type: 'checkbox'}
+ // ,{field: 'id', align: 'center',title: 'ID'}
+ // ,{field: 'uuid', align: 'center',title: '鏃ュ織缂栧彿'}
+ ,{field: 'namespace', align: 'center',title: '鍚嶇О绌洪棿'}
+ ,{field: 'url', align: 'center',title: '鎺ュ彛鍦板潃'}
+ // ,{field: 'appkey', align: 'center',title: '骞冲彴瀵嗛挜'}
+ // ,{field: 'timestamp', align: 'center',title: '鏃堕棿鎴�'}
+ // ,{field: 'clientIp', align: 'center',title: '瀹㈡埛绔疘P'}
+ ,{field: 'request', align: 'center',title: '璇锋眰鍐呭'}
+ ,{field: 'response', align: 'center',title: '鍝嶅簲鍐呭'}
+ // ,{field: 'err', align: 'center',title: '寮傚父鍐呭'}
+ ,{field: 'result$', align: 'center',title: '缁撴灉', templet: '#resTpl', width: 80}
+ // ,{field: 'status$', align: 'center',title: '鐘舵��'}
+ ,{field: 'createTime$', align: 'center',title: '娣诲姞鏃堕棿'}
+ // ,{field: 'updateTime$', align: 'center',title: '淇敼鏃堕棿'}
+ ,{field: 'memo', align: 'center',title: '澶囨敞', hide: true}
+
+ ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width: 80}
+ ]],
+ request: {
+ pageName: 'curr',
+ pageSize: 'limit'
+ },
+ parseData: function (res) {
+ return {
+ 'code': res.code,
+ 'msg': res.msg,
+ 'count': res.data.total,
+ 'data': res.data.records
+ }
+ },
+ response: {
+ statusCode: 200
+ },
+ done: function(res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ limit();
+ }
+ });
+
+ // 鐩戝惉鎺掑簭浜嬩欢
+ table.on('sort(apiLog)', function (obj) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ searchData['orderByField'] = obj.field;
+ searchData['orderByType'] = obj.type;
+ tableIns.reload({
+ where: searchData,
+ page: {curr: 1}
+ });
+ });
+
+ // 鐩戝惉澶村伐鍏锋爮浜嬩欢
+ table.on('toolbar(apiLog)', function (obj) {
+ var checkStatus = table.checkStatus(obj.config.id).data;
+ switch(obj.event) {
+ case 'addData':
+ showEditModel();
+ break;
+ case 'deleteData':
+ if (checkStatus.length === 0) {
+ layer.msg('璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁', {icon: 2});
+ return;
+ }
+ del(checkStatus.map(function (d) {
+ return d.id;
+ }));
+ break;
+ case 'exportData':
+ admin.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function(){
+ var titles=[];
+ var fields=[];
+ obj.config.cols[0].map(function (col) {
+ if (col.type === 'normal' && col.hide === false && col.toolbar == null) {
+ titles.push(col.title);
+ fields.push(col.field);
+ }
+ });
+ var exportData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ exportData[this.name] = this.value;
+ });
+ var param = {
+ 'apiLog': exportData,
+ 'fields': fields
+ };
+ $.ajax({
+ url: baseUrl+"/apiLog/export/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: JSON.stringify(param),
+ dataType:'json',
+ contentType:'application/json;charset=UTF-8',
+ method: 'POST',
+ success: function (res) {
+ layer.closeAll();
+ if (res.code === 200) {
+ table.exportFile(titles,res.data,'xls');
+ } else if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg, {icon: 2})
+ }
+ }
+ });
+ });
+ break;
+ }
+ });
+
+ // 鐩戝惉琛屽伐鍏蜂簨浠�
+ table.on('tool(apiLog)', function(obj){
+ var data = obj.data;
+ switch (obj.event) {
+ case 'edit':
+ showEditModel(data);
+ break;
+ case "del":
+ del([data.id]);
+ break;
+ }
+ });
+
+ /* 寮圭獥 - 鏂板銆佷慨鏀� */
+ function showEditModel(mData) {
+ admin.open({
+ type: 1,
+ area: '600px',
+ title: (mData ? '淇敼' : '娣诲姞') + '璁㈠崟鐘舵��',
+ content: $('#editDialog').html(),
+ success: function (layero, dIndex) {
+ layDateRender(mData);
+ form.val('detail', mData);
+ form.on('submit(editSubmit)', function (data) {
+ var loadIndex = layer.load(2);
+ $.ajax({
+ url: baseUrl+"/apiLog/"+(mData?'update':'add')+"/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: data.field,
+ method: 'POST',
+ success: function (res) {
+ layer.close(loadIndex);
+ if (res.code === 200){
+ layer.close(dIndex);
+ layer.msg(res.msg, {icon: 1});
+ tableReload();
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg, {icon: 2});
+ }
+ }
+ })
+ return false;
+ });
+ $(layero).children('.layui-layer-content').css('overflow', 'visible');
+ layui.form.render('select');
+ }
+ });
+ }
+
+ /* 鍒犻櫎 */
+ function del(ids) {
+ layer.confirm('纭畾瑕佸垹闄ら�変腑鏁版嵁鍚楋紵', {
+ skin: 'layui-layer-admin',
+ shade: .1
+ }, function (i) {
+ layer.close(i);
+ var loadIndex = layer.load(2);
+ $.ajax({
+ url: baseUrl+"/apiLog/delete/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: {ids: ids},
+ method: 'POST',
+ success: function (res) {
+ layer.close(loadIndex);
+ if (res.code === 200){
+ layer.msg(res.msg, {icon: 1});
+ tableReload();
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg, {icon: 2});
+ }
+ }
+ })
+ });
+ }
+
+ // 鎼滅储
+ form.on('submit(search)', function (data) {
+ pageCurr = 1;
+ tableReload(false);
+ });
+
+ // 閲嶇疆
+ form.on('submit(reset)', function (data) {
+ pageCurr = 1;
+ clearFormVal($('#search-box'));
+ tableReload(false);
+ });
+
+ // 鏃堕棿閫夋嫨鍣�
+ function layDateRender(data) {
+ setTimeout(function () {
+ layDate.render({
+ elem: '#createTime\\$',
+ type: 'datetime',
+ value: data!==undefined?data['createTime\\$']:null
+ });
+ layDate.render({
+ elem: '#updateTime\\$',
+ type: 'datetime',
+ value: data!==undefined?data['updateTime\\$']:null
+ });
+ layDate.render({
+ elem: '.layui-laydate-range'
+ ,type: 'datetime'
+ ,range: true
+ });
+ }, 300);
+ }
+ layDateRender();
+
+});
+
+// 鍏抽棴鍔ㄤ綔
+$(document).on('click','#data-detail-close', function () {
+ parent.layer.closeAll();
+});
+
+function tableReload(child) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ tableIns.reload({
+ where: searchData,
+ page: {curr: pageCurr}
+ });
+}
diff --git a/src/main/webapp/static/js/basLift/basLift.js b/src/main/webapp/static/js/basLift/basLift.js
new file mode 100644
index 0000000..cdef2d8
--- /dev/null
+++ b/src/main/webapp/static/js/basLift/basLift.js
@@ -0,0 +1,277 @@
+var pageCurr;
+layui.config({
+ base: baseUrl + "/static/layui/lay/modules/"
+}).use(['table','laydate', 'form', 'admin'], function(){
+ var table = layui.table;
+ var $ = layui.jquery;
+ var layer = layui.layer;
+ var layDate = layui.laydate;
+ var form = layui.form;
+ var admin = layui.admin;
+
+ // 鏁版嵁娓叉煋
+ tableIns = table.render({
+ elem: '#basLift',
+ headers: {token: localStorage.getItem('token')},
+ url: baseUrl+'/basLift/list/auth',
+ page: true,
+ limit: 15,
+ limits: [15, 30, 50, 100, 200, 500],
+ toolbar: '#toolbar',
+ cellMinWidth: 50,
+ height: 'full-120',
+ cols: [[
+ {type: 'checkbox'}
+ ,{field: 'liftNo', align: 'center',title: '鎻愬崌鏈哄彿'}
+ ,{field: 'status', align: 'center',title: '褰撳墠浠诲姟鐘舵��'}
+ ,{field: 'wrkNo', align: 'center',title: '浠诲姟鍙�'}
+ // ,{field: 'updateTime$', align: 'center',title: '淇敼鏃堕棿'}
+ // ,{field: 'updateBy$', align: 'center',title: '淇敼浜哄憳'}
+ ,{field: 'memo', align: 'center',title: '澶囨敞'}
+ ,{field: 'pakMk$', align: 'center',title: '浣滀笟鏍囪'}
+ ,{field: 'liftLock$', align: 'center',title: '鎻愬崌鏈洪攣瀹�'}
+ ,{field: 'positionArrivalFeedback', align: 'center',title: '浣嶇疆鍒拌揪鍙嶉'}
+ ,{field: 'ready$', align: 'center',title: '鍑嗗灏辩华'}
+ ,{field: 'running', align: 'center',title: '杩愯涓�'}
+ ,{field: 'mode$', align: 'center',title: '鑱旀満/鍗曟満'}
+ // ,{field: 'lineFrontHasStock', align: 'center',title: '杈撻�佺嚎鍓嶇鍏夌數鏈夎揣'}
+ // ,{field: 'forwardRotationFeedback', align: 'center',title: '杈撻�佺嚎姝h浆鍙嶉'}
+ // ,{field: 'reverseFeedback', align: 'center',title: '杈撻�佺嚎鍙嶈浆鍙嶉'}
+ // ,{field: 'motorOverload', align: 'center',title: '杈撻�佺嚎鐢垫満杩囪浇'}
+ // ,{field: 'lineEndHasStock', align: 'center',title: '杈撻�佺嚎鏈鍏夌數鏈夎揣'}
+ // ,{field: 'inConveyLineCardTrayAlarm', align: 'center',title: '杩涜緭閫佺嚎鍗℃墭鐩樻姤璀�'}
+ // ,{field: 'outConveyLineCardTrayAlarm', align: 'center',title: '鍑鸿緭閫佺嚎鍗℃墭鐩樻姤璀�'}
+ // ,{field: 'platPositionDeviationAlarm', align: 'center',title: '骞冲彴浣嶇疆鍋忓樊鎶ヨ'}
+ // ,{field: 'platTorqueDeviationAlarm', align: 'center',title: '骞冲彴鎵煩鍋忓樊鎶ヨ'}
+ // ,{field: 'platShuttleCheck', align: 'center',title: '骞冲彴鍥涘悜杞︽娴�'}
+ ,{field: 'notReady$', align: 'center',title: '鏈氨缁姸鎬�'}
+ // ,{field: 'servoError1', align: 'center',title: '浼烘湇1閿欒'}
+ // ,{field: 'servoError2', align: 'center',title: '浼烘湇2閿欒'}
+ // ,{field: 'servoError3', align: 'center',title: '浼烘湇3閿欒'}
+ // ,{field: 'servoError4', align: 'center',title: '浼烘湇4閿欒'}
+ // ,{field: 'liftActualSpeed', align: 'center',title: '鎻愬崌鏈哄疄闄呴�熷害鍙嶉'}
+
+ ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:120}
+ ]],
+ request: {
+ pageName: 'curr',
+ pageSize: 'limit'
+ },
+ parseData: function (res) {
+ return {
+ 'code': res.code,
+ 'msg': res.msg,
+ 'count': res.data.total,
+ 'data': res.data.records
+ }
+ },
+ response: {
+ statusCode: 200
+ },
+ done: function(res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ limit();
+ }
+ });
+
+ // 鐩戝惉鎺掑簭浜嬩欢
+ table.on('sort(basLift)', function (obj) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ searchData['orderByField'] = obj.field;
+ searchData['orderByType'] = obj.type;
+ tableIns.reload({
+ where: searchData,
+ page: {curr: 1}
+ });
+ });
+
+ // 鐩戝惉澶村伐鍏锋爮浜嬩欢
+ table.on('toolbar(basLift)', function (obj) {
+ var checkStatus = table.checkStatus(obj.config.id).data;
+ switch(obj.event) {
+ case 'addData':
+ showEditModel();
+ break;
+ case 'deleteData':
+ if (checkStatus.length === 0) {
+ layer.msg('璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁', {icon: 2});
+ return;
+ }
+ del(checkStatus.map(function (d) {
+ return d.liftNo;
+ }));
+ break;
+ case 'exportData':
+ admin.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function(){
+ var titles=[];
+ var fields=[];
+ obj.config.cols[0].map(function (col) {
+ if (col.type === 'normal' && col.hide === false && col.toolbar == null) {
+ titles.push(col.title);
+ fields.push(col.field);
+ }
+ });
+ var exportData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ exportData[this.name] = this.value;
+ });
+ var param = {
+ 'basLift': exportData,
+ 'fields': fields
+ };
+ $.ajax({
+ url: baseUrl+"/basLift/export/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: JSON.stringify(param),
+ dataType:'json',
+ contentType:'application/json;charset=UTF-8',
+ method: 'POST',
+ success: function (res) {
+ layer.closeAll();
+ if (res.code === 200) {
+ table.exportFile(titles,res.data,'xls');
+ } else if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg, {icon: 2})
+ }
+ }
+ });
+ });
+ break;
+ }
+ });
+
+ // 鐩戝惉琛屽伐鍏蜂簨浠�
+ table.on('tool(basLift)', function(obj){
+ var data = obj.data;
+ switch (obj.event) {
+ case 'edit':
+ showEditModel(data);
+ break;
+ case "del":
+ del([data.liftNo]);
+ break;
+ }
+ });
+
+ /* 寮圭獥 - 鏂板銆佷慨鏀� */
+ function showEditModel(mData) {
+ admin.open({
+ type: 1,
+ area: '600px',
+ title: (mData ? '淇敼' : '娣诲姞') + '璁㈠崟鐘舵��',
+ content: $('#editDialog').html(),
+ success: function (layero, dIndex) {
+ layDateRender(mData);
+ form.val('detail', mData);
+ form.on('submit(editSubmit)', function (data) {
+ var loadIndex = layer.load(2);
+ $.ajax({
+ url: baseUrl+"/basLift/"+(mData?'update':'add')+"/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: data.field,
+ method: 'POST',
+ success: function (res) {
+ layer.close(loadIndex);
+ if (res.code === 200){
+ layer.close(dIndex);
+ layer.msg(res.msg, {icon: 1});
+ tableReload();
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg, {icon: 2});
+ }
+ }
+ })
+ return false;
+ });
+ $(layero).children('.layui-layer-content').css('overflow', 'visible');
+ layui.form.render('select');
+ }
+ });
+ }
+
+ /* 鍒犻櫎 */
+ function del(ids) {
+ layer.confirm('纭畾瑕佸垹闄ら�変腑鏁版嵁鍚楋紵', {
+ skin: 'layui-layer-admin',
+ shade: .1
+ }, function (i) {
+ layer.close(i);
+ var loadIndex = layer.load(2);
+ $.ajax({
+ url: baseUrl+"/basLift/delete/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: {ids: ids},
+ method: 'POST',
+ success: function (res) {
+ layer.close(loadIndex);
+ if (res.code === 200){
+ layer.msg(res.msg, {icon: 1});
+ tableReload();
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg, {icon: 2});
+ }
+ }
+ })
+ });
+ }
+
+ // 鎼滅储
+ form.on('submit(search)', function (data) {
+ pageCurr = 1;
+ tableReload(false);
+ });
+
+ // 閲嶇疆
+ form.on('submit(reset)', function (data) {
+ pageCurr = 1;
+ clearFormVal($('#search-box'));
+ tableReload(false);
+ });
+
+ // 鏃堕棿閫夋嫨鍣�
+ function layDateRender(data) {
+ setTimeout(function () {
+ layDate.render({
+ elem: '.layui-laydate-range'
+ ,type: 'datetime'
+ ,range: true
+ });
+ layDate.render({
+ elem: '#updateTime\\$',
+ type: 'datetime',
+ value: data!==undefined?data['updateTime\\$']:null
+ });
+
+ }, 300);
+ }
+ layDateRender();
+
+});
+
+// 鍏抽棴鍔ㄤ綔
+$(document).on('click','#data-detail-close', function () {
+ parent.layer.closeAll();
+});
+
+function tableReload(child) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ tableIns.reload({
+ where: searchData,
+ page: {curr: pageCurr}
+ });
+}
diff --git a/src/main/webapp/static/js/basLiftErr/basLiftErr.js b/src/main/webapp/static/js/basLiftErr/basLiftErr.js
new file mode 100644
index 0000000..8014559
--- /dev/null
+++ b/src/main/webapp/static/js/basLiftErr/basLiftErr.js
@@ -0,0 +1,260 @@
+var pageCurr;
+layui.config({
+ base: baseUrl + "/static/layui/lay/modules/"
+}).use(['table','laydate', 'form', 'admin'], function(){
+ var table = layui.table;
+ var $ = layui.jquery;
+ var layer = layui.layer;
+ var layDate = layui.laydate;
+ var form = layui.form;
+ var admin = layui.admin;
+
+ // 鏁版嵁娓叉煋
+ tableIns = table.render({
+ elem: '#basLiftErr',
+ headers: {token: localStorage.getItem('token')},
+ url: baseUrl+'/basLiftErr/list/auth',
+ page: true,
+ limit: 15,
+ limits: [15, 30, 50, 100, 200, 500],
+ toolbar: '#toolbar',
+ cellMinWidth: 50,
+ height: 'full-120',
+ cols: [[
+ {type: 'checkbox'}
+ ,{field: 'errorCode', align: 'center',title: '寮傚父鐮�'}
+ ,{field: 'errName', align: 'center',title: '寮傚父'}
+ ,{field: 'modiUser$', align: 'center',title: '淇敼浜哄憳'}
+ ,{field: 'modiTime$', align: 'center',title: '淇敼鏃堕棿'}
+ ,{field: 'appeUser$', align: 'center',title: '娣诲姞浜哄憳'}
+ ,{field: 'appeTime$', align: 'center',title: '娣诲姞鏃堕棿'}
+
+ ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:120}
+ ]],
+ request: {
+ pageName: 'curr',
+ pageSize: 'limit'
+ },
+ parseData: function (res) {
+ return {
+ 'code': res.code,
+ 'msg': res.msg,
+ 'count': res.data.total,
+ 'data': res.data.records
+ }
+ },
+ response: {
+ statusCode: 200
+ },
+ done: function(res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ limit();
+ }
+ });
+
+ // 鐩戝惉鎺掑簭浜嬩欢
+ table.on('sort(basLiftErr)', function (obj) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ searchData['orderByField'] = obj.field;
+ searchData['orderByType'] = obj.type;
+ tableIns.reload({
+ where: searchData,
+ page: {curr: 1}
+ });
+ });
+
+ // 鐩戝惉澶村伐鍏锋爮浜嬩欢
+ table.on('toolbar(basLiftErr)', function (obj) {
+ var checkStatus = table.checkStatus(obj.config.id).data;
+ switch(obj.event) {
+ case 'addData':
+ showEditModel();
+ break;
+ case 'deleteData':
+ if (checkStatus.length === 0) {
+ layer.msg('璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁', {icon: 2});
+ return;
+ }
+ del(checkStatus.map(function (d) {
+ return d.errorCode;
+ }));
+ break;
+ case 'exportData':
+ admin.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function(){
+ var titles=[];
+ var fields=[];
+ obj.config.cols[0].map(function (col) {
+ if (col.type === 'normal' && col.hide === false && col.toolbar == null) {
+ titles.push(col.title);
+ fields.push(col.field);
+ }
+ });
+ var exportData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ exportData[this.name] = this.value;
+ });
+ var param = {
+ 'basLiftErr': exportData,
+ 'fields': fields
+ };
+ $.ajax({
+ url: baseUrl+"/basLiftErr/export/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: JSON.stringify(param),
+ dataType:'json',
+ contentType:'application/json;charset=UTF-8',
+ method: 'POST',
+ success: function (res) {
+ layer.closeAll();
+ if (res.code === 200) {
+ table.exportFile(titles,res.data,'xls');
+ } else if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg, {icon: 2})
+ }
+ }
+ });
+ });
+ break;
+ }
+ });
+
+ // 鐩戝惉琛屽伐鍏蜂簨浠�
+ table.on('tool(basLiftErr)', function(obj){
+ var data = obj.data;
+ switch (obj.event) {
+ case 'edit':
+ showEditModel(data);
+ break;
+ case "del":
+ del([data.errorCode]);
+ break;
+ }
+ });
+
+ /* 寮圭獥 - 鏂板銆佷慨鏀� */
+ function showEditModel(mData) {
+ admin.open({
+ type: 1,
+ area: '600px',
+ title: (mData ? '淇敼' : '娣诲姞') + '鎻愬崌鏈哄紓甯哥爜',
+ content: $('#editDialog').html(),
+ success: function (layero, dIndex) {
+ layDateRender(mData);
+ form.val('detail', mData);
+ form.on('submit(editSubmit)', function (data) {
+ var loadIndex = layer.load(2);
+ $.ajax({
+ url: baseUrl+"/basLiftErr/"+(mData?'update':'add')+"/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: data.field,
+ method: 'POST',
+ success: function (res) {
+ layer.close(loadIndex);
+ if (res.code === 200){
+ layer.close(dIndex);
+ layer.msg(res.msg, {icon: 1});
+ tableReload();
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg, {icon: 2});
+ }
+ }
+ })
+ return false;
+ });
+ $(layero).children('.layui-layer-content').css('overflow', 'visible');
+ layui.form.render('select');
+ }
+ });
+ }
+
+ /* 鍒犻櫎 */
+ function del(ids) {
+ layer.confirm('纭畾瑕佸垹闄ら�変腑鏁版嵁鍚楋紵', {
+ skin: 'layui-layer-admin',
+ shade: .1
+ }, function (i) {
+ layer.close(i);
+ var loadIndex = layer.load(2);
+ $.ajax({
+ url: baseUrl+"/basLiftErr/delete/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: {ids: ids},
+ method: 'POST',
+ success: function (res) {
+ layer.close(loadIndex);
+ if (res.code === 200){
+ layer.msg(res.msg, {icon: 1});
+ tableReload();
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg, {icon: 2});
+ }
+ }
+ })
+ });
+ }
+
+ // 鎼滅储
+ form.on('submit(search)', function (data) {
+ pageCurr = 1;
+ tableReload(false);
+ });
+
+ // 閲嶇疆
+ form.on('submit(reset)', function (data) {
+ pageCurr = 1;
+ clearFormVal($('#search-box'));
+ tableReload(false);
+ });
+
+ // 鏃堕棿閫夋嫨鍣�
+ function layDateRender(data) {
+ setTimeout(function () {
+ layDate.render({
+ elem: '.layui-laydate-range'
+ ,type: 'datetime'
+ ,range: true
+ });
+ layDate.render({
+ elem: '#modiTime\\$',
+ type: 'datetime',
+ value: data!==undefined?data['modiTime\\$']:null
+ });
+ layDate.render({
+ elem: '#appeTime\\$',
+ type: 'datetime',
+ value: data!==undefined?data['appeTime\\$']:null
+ });
+
+ }, 300);
+ }
+ layDateRender();
+
+});
+
+// 鍏抽棴鍔ㄤ綔
+$(document).on('click','#data-detail-close', function () {
+ parent.layer.closeAll();
+});
+
+function tableReload(child) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ tableIns.reload({
+ where: searchData,
+ page: {curr: pageCurr}
+ });
+}
diff --git a/src/main/webapp/static/js/basLiftErrLog/basLiftErrLog.js b/src/main/webapp/static/js/basLiftErrLog/basLiftErrLog.js
new file mode 100644
index 0000000..6406a58
--- /dev/null
+++ b/src/main/webapp/static/js/basLiftErrLog/basLiftErrLog.js
@@ -0,0 +1,287 @@
+var pageCurr;
+layui.config({
+ base: baseUrl + "/static/layui/lay/modules/"
+}).use(['table','laydate', 'form', 'admin'], function(){
+ var table = layui.table;
+ var $ = layui.jquery;
+ var layer = layui.layer;
+ var layDate = layui.laydate;
+ var form = layui.form;
+ var admin = layui.admin;
+
+ // 鏁版嵁娓叉煋
+ tableIns = table.render({
+ elem: '#basLiftErrLog',
+ headers: {token: localStorage.getItem('token')},
+ url: baseUrl+'/basLiftErrLog/list/auth',
+ page: true,
+ limit: 15,
+ limits: [15, 30, 50, 100, 200, 500],
+ toolbar: '#toolbar',
+ cellMinWidth: 50,
+ height: 'full-120',
+ cols: [[
+ // {type: 'checkbox'}
+ {field: 'id', align: 'center',title: '缂栧彿'}
+ // ,{field: 'uuid', align: 'center',title: '缂栧彿'}
+ ,{field: 'wrkNo', align: 'center',title: '宸ヤ綔鍙�'}
+ ,{field: 'startTime$', align: 'center',title: '鍙戠敓鏃堕棿'}
+ ,{field: 'endTime$', align: 'center',title: '缁撴潫鏃堕棿'}
+ ,{field: 'wrkSts$', align: 'center',title: '宸ヤ綔鐘舵��'}
+ ,{field: 'ioType$', align: 'center',title: '鍏ュ嚭搴撶被鍨�'}
+ ,{field: 'liftNo', align: 'center',title: '鎻愬崌鏈�'}
+ ,{field: 'plcNo', align: 'center',title: 'plc'}
+ ,{field: 'locNo', align: 'center',title: '鐩爣搴撲綅'}
+ ,{field: 'staNo', align: 'center',title: '鐩爣绔�'}
+ ,{field: 'sourceStaNo', align: 'center',title: '婧愮珯'}
+ ,{field: 'sourceLocNo', align: 'center',title: '婧愬簱浣�'}
+ ,{field: 'barcode', align: 'center',title: '鏉$爜'}
+ ,{field: 'errCode', align: 'center',title: '寮傚父鐮�'}
+ ,{field: 'error', align: 'center',title: '寮傚父'}
+ ,{field: 'status$', align: 'center',title: '寮傚父鎯呭喌'}
+ ,{field: 'systemStatus', align: 'center',title: '绯荤粺鐘舵��'}
+ ,{field: 'createTime$', align: 'center',title: '娣诲姞鏃堕棿'}
+ ,{field: 'createBy$', align: 'center',title: '娣诲姞浜哄憳'}
+ ,{field: 'updateTime$', align: 'center',title: '淇敼鏃堕棿'}
+ ,{field: 'updateBy$', align: 'center',title: '淇敼浜哄憳'}
+ ,{field: 'memo', align: 'center',title: '澶囨敞'}
+
+ // ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:120}
+ ]],
+ request: {
+ pageName: 'curr',
+ pageSize: 'limit'
+ },
+ parseData: function (res) {
+ return {
+ 'code': res.code,
+ 'msg': res.msg,
+ 'count': res.data.total,
+ 'data': res.data.records
+ }
+ },
+ response: {
+ statusCode: 200
+ },
+ done: function(res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ limit();
+ }
+ });
+
+ // 鐩戝惉鎺掑簭浜嬩欢
+ table.on('sort(basLiftErrLog)', function (obj) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ searchData['orderByField'] = obj.field;
+ searchData['orderByType'] = obj.type;
+ tableIns.reload({
+ where: searchData,
+ page: {curr: 1}
+ });
+ });
+
+ // 鐩戝惉澶村伐鍏锋爮浜嬩欢
+ table.on('toolbar(basLiftErrLog)', function (obj) {
+ var checkStatus = table.checkStatus(obj.config.id).data;
+ switch(obj.event) {
+ case 'addData':
+ showEditModel();
+ break;
+ case 'deleteData':
+ if (checkStatus.length === 0) {
+ layer.msg('璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁', {icon: 2});
+ return;
+ }
+ del(checkStatus.map(function (d) {
+ return d.id;
+ }));
+ break;
+ case 'exportData':
+ admin.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function(){
+ var titles=[];
+ var fields=[];
+ obj.config.cols[0].map(function (col) {
+ if (col.type === 'normal' && col.hide === false && col.toolbar == null) {
+ titles.push(col.title);
+ fields.push(col.field);
+ }
+ });
+ var exportData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ exportData[this.name] = this.value;
+ });
+ var param = {
+ 'basLiftErrLog': exportData,
+ 'fields': fields
+ };
+ $.ajax({
+ url: baseUrl+"/basLiftErrLog/export/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: JSON.stringify(param),
+ dataType:'json',
+ contentType:'application/json;charset=UTF-8',
+ method: 'POST',
+ success: function (res) {
+ layer.closeAll();
+ if (res.code === 200) {
+ table.exportFile(titles,res.data,'xls');
+ } else if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg, {icon: 2})
+ }
+ }
+ });
+ });
+ break;
+ }
+ });
+
+ // 鐩戝惉琛屽伐鍏蜂簨浠�
+ table.on('tool(basLiftErrLog)', function(obj){
+ var data = obj.data;
+ switch (obj.event) {
+ case 'edit':
+ showEditModel(data);
+ break;
+ case "del":
+ del([data.id]);
+ break;
+ }
+ });
+
+ /* 寮圭獥 - 鏂板銆佷慨鏀� */
+ function showEditModel(mData) {
+ admin.open({
+ type: 1,
+ area: '600px',
+ title: (mData ? '淇敼' : '娣诲姞') + '璁㈠崟鐘舵��',
+ content: $('#editDialog').html(),
+ success: function (layero, dIndex) {
+ layDateRender(mData);
+ form.val('detail', mData);
+ form.on('submit(editSubmit)', function (data) {
+ var loadIndex = layer.load(2);
+ $.ajax({
+ url: baseUrl+"/basLiftErrLog/"+(mData?'update':'add')+"/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: data.field,
+ method: 'POST',
+ success: function (res) {
+ layer.close(loadIndex);
+ if (res.code === 200){
+ layer.close(dIndex);
+ layer.msg(res.msg, {icon: 1});
+ tableReload();
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg, {icon: 2});
+ }
+ }
+ })
+ return false;
+ });
+ $(layero).children('.layui-layer-content').css('overflow', 'visible');
+ layui.form.render('select');
+ }
+ });
+ }
+
+ /* 鍒犻櫎 */
+ function del(ids) {
+ layer.confirm('纭畾瑕佸垹闄ら�変腑鏁版嵁鍚楋紵', {
+ skin: 'layui-layer-admin',
+ shade: .1
+ }, function (i) {
+ layer.close(i);
+ var loadIndex = layer.load(2);
+ $.ajax({
+ url: baseUrl+"/basLiftErrLog/delete/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: {ids: ids},
+ method: 'POST',
+ success: function (res) {
+ layer.close(loadIndex);
+ if (res.code === 200){
+ layer.msg(res.msg, {icon: 1});
+ tableReload();
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg, {icon: 2});
+ }
+ }
+ })
+ });
+ }
+
+ // 鎼滅储
+ form.on('submit(search)', function (data) {
+ pageCurr = 1;
+ tableReload(false);
+ });
+
+ // 閲嶇疆
+ form.on('submit(reset)', function (data) {
+ pageCurr = 1;
+ clearFormVal($('#search-box'));
+ tableReload(false);
+ });
+
+ // 鏃堕棿閫夋嫨鍣�
+ function layDateRender(data) {
+ setTimeout(function () {
+ layDate.render({
+ elem: '.layui-laydate-range'
+ ,type: 'datetime'
+ ,range: true
+ });
+ layDate.render({
+ elem: '#startTime\\$',
+ type: 'datetime',
+ value: data!==undefined?data['startTime\\$']:null
+ });
+ layDate.render({
+ elem: '#endTime\\$',
+ type: 'datetime',
+ value: data!==undefined?data['endTime\\$']:null
+ });
+ layDate.render({
+ elem: '#createTime\\$',
+ type: 'datetime',
+ value: data!==undefined?data['createTime\\$']:null
+ });
+ layDate.render({
+ elem: '#updateTime\\$',
+ type: 'datetime',
+ value: data!==undefined?data['updateTime\\$']:null
+ });
+
+ }, 300);
+ }
+ layDateRender();
+
+});
+
+// 鍏抽棴鍔ㄤ綔
+$(document).on('click','#data-detail-close', function () {
+ parent.layer.closeAll();
+});
+
+function tableReload(child) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ tableIns.reload({
+ where: searchData,
+ page: {curr: pageCurr}
+ });
+}
diff --git a/src/main/webapp/static/js/basLiftOpt/basLiftOpt.js b/src/main/webapp/static/js/basLiftOpt/basLiftOpt.js
new file mode 100644
index 0000000..977e32f
--- /dev/null
+++ b/src/main/webapp/static/js/basLiftOpt/basLiftOpt.js
@@ -0,0 +1,264 @@
+var pageCurr;
+layui.config({
+ base: baseUrl + "/static/layui/lay/modules/"
+}).use(['table','laydate', 'form', 'admin'], function(){
+ var table = layui.table;
+ var $ = layui.jquery;
+ var layer = layui.layer;
+ var layDate = layui.laydate;
+ var form = layui.form;
+ var admin = layui.admin;
+
+ // 鏁版嵁娓叉煋
+ tableIns = table.render({
+ elem: '#basLiftOpt',
+ headers: {token: localStorage.getItem('token')},
+ url: baseUrl+'/basLiftOpt/list/auth',
+ page: true,
+ limit: 15,
+ limits: [15, 30, 50, 100, 200, 500],
+ toolbar: '#toolbar',
+ cellMinWidth: 50,
+ height: 'full-120',
+ cols: [[
+ // {type: 'checkbox'}
+ {field: 'id', align: 'center',title: '缂栧彿'}
+ ,{field: 'wrkNo', align: 'center',title: '浠诲姟鍙�'}
+ ,{field: 'liftNo', align: 'center',title: '鎻愬崌鏈哄彿'}
+ ,{field: 'command', align: 'center',title: '鍛戒护'}
+ ,{field: 'systemStatus', align: 'center',title: '绯荤粺鐘舵��'}
+ ,{field: 'deviceWrk', align: 'center',title: '璁惧宸ヤ綔鍙�'}
+ ,{field: 'sendTime$', align: 'center',title: '涓嬪彂鏃堕棿'}
+ ,{field: 'updateTime$', align: 'center',title: '淇敼鏃堕棿'}
+ ,{field: 'updateBy$', align: 'center',title: '淇敼浜哄憳'}
+ ,{field: 'memo', align: 'center',title: '澶囨敞'}
+
+ // ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:120}
+ ]],
+ request: {
+ pageName: 'curr',
+ pageSize: 'limit'
+ },
+ parseData: function (res) {
+ return {
+ 'code': res.code,
+ 'msg': res.msg,
+ 'count': res.data.total,
+ 'data': res.data.records
+ }
+ },
+ response: {
+ statusCode: 200
+ },
+ done: function(res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ limit();
+ }
+ });
+
+ // 鐩戝惉鎺掑簭浜嬩欢
+ table.on('sort(basLiftOpt)', function (obj) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ searchData['orderByField'] = obj.field;
+ searchData['orderByType'] = obj.type;
+ tableIns.reload({
+ where: searchData,
+ page: {curr: 1}
+ });
+ });
+
+ // 鐩戝惉澶村伐鍏锋爮浜嬩欢
+ table.on('toolbar(basLiftOpt)', function (obj) {
+ var checkStatus = table.checkStatus(obj.config.id).data;
+ switch(obj.event) {
+ case 'addData':
+ showEditModel();
+ break;
+ case 'deleteData':
+ if (checkStatus.length === 0) {
+ layer.msg('璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁', {icon: 2});
+ return;
+ }
+ del(checkStatus.map(function (d) {
+ return d.id;
+ }));
+ break;
+ case 'exportData':
+ admin.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function(){
+ var titles=[];
+ var fields=[];
+ obj.config.cols[0].map(function (col) {
+ if (col.type === 'normal' && col.hide === false && col.toolbar == null) {
+ titles.push(col.title);
+ fields.push(col.field);
+ }
+ });
+ var exportData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ exportData[this.name] = this.value;
+ });
+ var param = {
+ 'basLiftOpt': exportData,
+ 'fields': fields
+ };
+ $.ajax({
+ url: baseUrl+"/basLiftOpt/export/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: JSON.stringify(param),
+ dataType:'json',
+ contentType:'application/json;charset=UTF-8',
+ method: 'POST',
+ success: function (res) {
+ layer.closeAll();
+ if (res.code === 200) {
+ table.exportFile(titles,res.data,'xls');
+ } else if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg, {icon: 2})
+ }
+ }
+ });
+ });
+ break;
+ }
+ });
+
+ // 鐩戝惉琛屽伐鍏蜂簨浠�
+ table.on('tool(basLiftOpt)', function(obj){
+ var data = obj.data;
+ switch (obj.event) {
+ case 'edit':
+ showEditModel(data);
+ break;
+ case "del":
+ del([data.id]);
+ break;
+ }
+ });
+
+ /* 寮圭獥 - 鏂板銆佷慨鏀� */
+ function showEditModel(mData) {
+ admin.open({
+ type: 1,
+ area: '600px',
+ title: (mData ? '淇敼' : '娣诲姞') + '璁㈠崟鐘舵��',
+ content: $('#editDialog').html(),
+ success: function (layero, dIndex) {
+ layDateRender(mData);
+ form.val('detail', mData);
+ form.on('submit(editSubmit)', function (data) {
+ var loadIndex = layer.load(2);
+ $.ajax({
+ url: baseUrl+"/basLiftOpt/"+(mData?'update':'add')+"/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: data.field,
+ method: 'POST',
+ success: function (res) {
+ layer.close(loadIndex);
+ if (res.code === 200){
+ layer.close(dIndex);
+ layer.msg(res.msg, {icon: 1});
+ tableReload();
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg, {icon: 2});
+ }
+ }
+ })
+ return false;
+ });
+ $(layero).children('.layui-layer-content').css('overflow', 'visible');
+ layui.form.render('select');
+ }
+ });
+ }
+
+ /* 鍒犻櫎 */
+ function del(ids) {
+ layer.confirm('纭畾瑕佸垹闄ら�変腑鏁版嵁鍚楋紵', {
+ skin: 'layui-layer-admin',
+ shade: .1
+ }, function (i) {
+ layer.close(i);
+ var loadIndex = layer.load(2);
+ $.ajax({
+ url: baseUrl+"/basLiftOpt/delete/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: {ids: ids},
+ method: 'POST',
+ success: function (res) {
+ layer.close(loadIndex);
+ if (res.code === 200){
+ layer.msg(res.msg, {icon: 1});
+ tableReload();
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg, {icon: 2});
+ }
+ }
+ })
+ });
+ }
+
+ // 鎼滅储
+ form.on('submit(search)', function (data) {
+ pageCurr = 1;
+ tableReload(false);
+ });
+
+ // 閲嶇疆
+ form.on('submit(reset)', function (data) {
+ pageCurr = 1;
+ clearFormVal($('#search-box'));
+ tableReload(false);
+ });
+
+ // 鏃堕棿閫夋嫨鍣�
+ function layDateRender(data) {
+ setTimeout(function () {
+ layDate.render({
+ elem: '.layui-laydate-range'
+ ,type: 'datetime'
+ ,range: true
+ });
+ layDate.render({
+ elem: '#sendTime\\$',
+ type: 'datetime',
+ value: data!==undefined?data['sendTime\\$']:null
+ });
+ layDate.render({
+ elem: '#updateTime\\$',
+ type: 'datetime',
+ value: data!==undefined?data['updateTime\\$']:null
+ });
+
+ }, 300);
+ }
+ layDateRender();
+
+});
+
+// 鍏抽棴鍔ㄤ綔
+$(document).on('click','#data-detail-close', function () {
+ parent.layer.closeAll();
+});
+
+function tableReload(child) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ tableIns.reload({
+ where: searchData,
+ page: {curr: pageCurr}
+ });
+}
diff --git a/src/main/webapp/static/js/basLocSts/basLocSts.js b/src/main/webapp/static/js/basLocSts/basLocSts.js
new file mode 100644
index 0000000..47ac4ca
--- /dev/null
+++ b/src/main/webapp/static/js/basLocSts/basLocSts.js
@@ -0,0 +1,440 @@
+var pageCurr;
+layui.use(['table','laydate', 'form'], function(){
+ var table = layui.table;
+ var $ = layui.jquery;
+ var layer = layui.layer;
+ var layDate = layui.laydate;
+ var form = layui.form;
+
+ // 鏁版嵁娓叉煋
+ tableIns = table.render({
+ elem: '#basLocSts',
+ headers: {token: localStorage.getItem('token')},
+ url: baseUrl+'/basLocSts/list/auth',
+ page: true,
+ limit: 16,
+ limits: [16, 30, 50, 100, 200, 500],
+ even: true,
+ toolbar: '#toolbar',
+ cellMinWidth: 50,
+ cols: [[
+ {type: 'checkbox', fixed: 'left'}
+// ,{field: 'id', title: 'ID', sort: true,align: 'center', fixed: 'left', width: 80}
+ ,{field: 'locSts', align: 'center',sort:true,title: '搴撲綅鐘舵�佷唬鍙�'}
+ ,{field: 'locDesc', align: 'center',sort: true,title: '搴撲綅鐘舵�佹弿杩�'}
+ ,{field: 'modiUser$', align: 'center',title: '淇敼浜哄憳'}
+ ,{field: 'modiTime$', align: 'center',title: '淇敼鏃堕棿'}
+ // ,{field: 'appeUser$', align: 'center',title: '鍒涘缓鑰�',event: 'appeUser', style: 'text-decoration: underline;cursor:pointer'}
+ // ,{field: 'appeTime$', align: 'center',title: '娣诲姞鏃堕棿'}
+
+ ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:150}
+ ]],
+ request: {
+ pageName: 'curr',
+ pageSize: 'limit'
+ },
+ parseData: function (res) {
+ return {
+ 'code': res.code,
+ 'msg': res.msg,
+ 'count': res.data.total,
+ 'data': res.data.records
+ }
+ },
+ response: {
+ statusCode: 200
+ },
+ done: function(res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ limit();
+ }
+ });
+
+ // 鐩戝惉鎺掑簭浜嬩欢
+ table.on('sort(basLocSts)', function (obj) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ searchData['orderByField'] = obj.field;
+ searchData['orderByType'] = obj.type;
+ tableIns.reload({
+ where: searchData,
+ page: {
+ curr: 1
+ },
+ done: function (res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ limit();
+ }
+ });
+ });
+
+ // 鐩戝惉澶村伐鍏锋爮浜嬩欢
+ table.on('toolbar(basLocSts)', function (obj) {
+ var checkStatus = table.checkStatus(obj.config.id);
+ switch(obj.event) {
+ case 'addData':
+ layer.open({
+ type: 2,
+ title: '鏂板',
+ maxmin: true,
+ area: ['500px', top.detailHeight],
+ shadeClose: false,
+ content: 'basLocSts_detail.html',
+ success: function(layero, index){
+ layer.getChildFrame('#data-detail-submit-edit', index).hide();
+ clearFormVal(layer.getChildFrame('#detail', index));
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ }
+ });
+ break;
+ case 'refreshData':
+ tableIns.reload({
+ page: {
+ curr: pageCurr
+ }
+ });
+ limit();
+ break;
+ case 'deleteData':
+ var data = checkStatus.data;
+ if (data.length === 0){
+ layer.msg('璇烽�夋嫨鏁版嵁');
+ } else {
+ layer.confirm('纭畾鍒犻櫎'+(data.length===1?'姝�':data.length)+'鏉℃暟鎹悧', function(){
+ $.ajax({
+ url: baseUrl+"/basLocSts/delete/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: {param: JSON.stringify(data)},
+ method: 'POST',
+ traditional:true,
+ success: function (res) {
+ if (res.code === 200){
+ layer.closeAll();
+ tableReload(false);
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+ });
+ }
+ break;
+ case 'exportData':
+ layer.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function(){
+ var titles=[];
+ var fields=[];
+ obj.config.cols[0].map(function (col) {
+ if (col.type === 'normal' && col.hide === false && col.toolbar == null) {
+ titles.push(col.title);
+ fields.push(col.field);
+ }
+ });
+ var exportData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ exportData[this.name] = this.value;
+ });
+ var param = {
+ 'basLocSts': exportData,
+ 'fields': fields
+ };
+ $.ajax({
+ url: baseUrl+"/basLocSts/export/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: JSON.stringify(param),
+ dataType:'json',
+ contentType:'application/json;charset=UTF-8',
+ method: 'POST',
+ success: function (res) {
+ layer.closeAll();
+ if (res.code === 200) {
+ table.exportFile(titles,res.data,'xls');
+ } else if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg)
+ }
+ }
+ });
+ });
+ break;
+ }
+ });
+
+ // 鐩戝惉琛屽伐鍏蜂簨浠�
+ table.on('tool(basLocSts)', function(obj){
+ var data = obj.data;
+ switch (obj.event) {
+ // 璇︽儏
+ case 'detail':
+ layer.open({
+ type: 2,
+ title: '璇︽儏',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: 'basLocSts_detail.html',
+ success: function(layero, index){
+ setFormVal(layer.getChildFrame('#detail', index), data, true);
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
+ layer.getChildFrame('#data-detail-submit-save,#prompt', index).hide();
+ layer.getChildFrame('#data-detail-submit-edit', index).hide();
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ }
+ });
+ break;
+ // 缂栬緫
+ case 'edit':
+ layer.open({
+ type: 2,
+ title: '淇敼',
+ maxmin: true,
+ area: ['500px', top.detailHeight],
+ shadeClose: false,
+ content: 'basLocSts_detail.html',
+ success: function(layero, index){
+ layer.getChildFrame('#data-detail-submit-save', index).hide();
+ setFormVal(layer.getChildFrame('#detail', index), data, false);
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), false);
+ top.convertDisabled(layer.getChildFrame('#locSts', index), true);
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ }
+ });
+ break;
+ case 'modiUser':
+ var param = top.reObject(data).modiUser;
+ if (param === undefined) {
+ layer.msg("鏃犳暟鎹�");
+ } else {
+ layer.open({
+ type: 2,
+ title: '淇敼璇︽儏',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: '../user/user_detail.html',
+ success: function(layero, index){
+ $.ajax({
+ url: baseUrl+"/user/"+ param +"/auth",
+ headers: {'token': localStorage.getItem('token')},
+ method: 'GET',
+ success: function (res) {
+ if (res.code === 200){
+ setFormVal(layer.getChildFrame('#detail', index), res.data, true);
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
+ layer.getChildFrame('#password,#createTime\\$,#status', index).parent().parent().hide();
+ layer.getChildFrame('#data-detail-submit,#prompt', index).hide();
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ } else if (res.code === 403){
+ parent.location.href = "/";
+ }else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+ }
+ });
+ }
+ break;
+ case 'appeUser':
+ var param = top.reObject(data).appeUser;
+ if (param === undefined) {
+ layer.msg("鏃犳暟鎹�");
+ } else {
+ layer.open({
+ type: 2,
+ title: '鍒涜鎯�',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: '../user/user_detail.html',
+ success: function(layero, index){
+ $.ajax({
+ url: baseUrl+"/user/"+ param +"/auth",
+ headers: {'token': localStorage.getItem('token')},
+ method: 'GET',
+ success: function (res) {
+ if (res.code === 200){
+ setFormVal(layer.getChildFrame('#detail', index), res.data, true);
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
+ layer.getChildFrame('#data-detail-submit', index).hide();
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ } else if (res.code === 403){
+ parent.location.href = "/";
+ }else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+ }
+ });
+ }
+ break;
+
+ }
+ });
+
+ // 鏁版嵁淇濆瓨鍔ㄤ綔
+ form.on('submit(save)', function () {
+ if (banMsg != null){
+ layer.msg(banMsg);
+ return;
+ }
+ method("add");
+ });
+
+ // 鏁版嵁淇敼鍔ㄤ綔
+ form.on('submit(edit)', function () {
+ method("update")
+ });
+
+ function method(name){
+ var index = layer.load(1, {
+ shade: [0.5,'#000'] //0.1閫忔槑搴︾殑鑳屾櫙
+ });
+ var data = {
+// id: $('#id').val(),
+ locSts: $('#locSts').val(),
+ locDesc: $('#locDesc').val(),
+ modiUser: $('#modiUser').val(),
+ modiTime: top.strToDate($('#modiTime\\$').val()),
+ appeUser: $('#appeUser').val(),
+ appeTime: top.strToDate($('#appeTime\\$').val()),
+
+ };
+ $.ajax({
+ url: baseUrl+"/basLocSts/"+name+"/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: top.reObject(data),
+ method: 'POST',
+ success: function (res) {
+ if (res.code === 200){
+ parent.layer.closeAll();
+ tableReload(true);
+ $("#data-detail :input").each(function () {
+ $(this).val("");
+ });
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg)
+ }
+ layer.close(index);
+ }
+ })
+ }
+
+ // 鎼滅储鏍忔悳绱簨浠�
+ form.on('submit(search)', function (data) {
+ pageCurr = 1;
+ tableReload(false);
+ });
+
+ // 鎼滅储鏍忛噸缃簨浠�
+ form.on('submit(reset)', function (data) {
+ pageCurr = 1;
+ clearFormVal($('#search-box'));
+ tableReload(false);
+ });
+
+ // 鏃堕棿閫夋嫨鍣�
+ layDate.render({
+ elem: '#modiTime\\$',
+ type: 'datetime'
+ });
+ layDate.render({
+ elem: '#appeTime\\$',
+ type: 'datetime'
+ });
+
+
+});
+
+// 鍏抽棴鍔ㄤ綔
+$(document).on('click','#data-detail-close', function () {
+ parent.layer.closeAll();
+});
+
+function tableReload(child) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ (child ? parent.tableIns : tableIns).reload({
+ where: searchData,
+ page: {
+ curr: pageCurr
+ },
+ done: function (res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ if (res.data.length === 0 && count !== 0) {
+ tableIns.reload({
+ where: searchData,
+ page: {
+ curr: pageCurr-1
+ }
+ });
+ pageCurr -= 1;
+ }
+ limit(child);
+ }
+ });
+}
+
+function setFormVal(el, data, showImg) {
+ for (var val in data) {
+ var find = el.find(":input[id='" + val + "']");
+ find.val(data[val]);
+ if (showImg){
+ var next = find.next();
+ if (next.get(0)){
+ if (next.get(0).localName === "img") {
+ find.hide();
+ next.attr("src", data[val]);
+ next.show();
+ }
+ }
+ }
+ }
+}
+
+function clearFormVal(el) {
+ $(':input', el)
+ .val('')
+ .removeAttr('checked')
+ .removeAttr('selected');
+}
+
+function detailScreen(index) {
+ var detail = layer.getChildFrame('#data-detail', index);
+ var height = detail.height()+60;
+ if (height > ($(window).height()*0.9)) {
+ height = ($(window).height()*0.9);
+ }
+ layer.style(index, {
+// top: (($(window).height()-height)/3)+"px",
+ height: height+'px'
+ });
+}
+
+$('body').keydown(function () {
+ if (event.keyCode === 13) {
+ $("#search").click();
+ }
+});
diff --git a/src/main/webapp/static/js/basPlcerror/basPlcerror.js b/src/main/webapp/static/js/basPlcerror/basPlcerror.js
new file mode 100644
index 0000000..7bd32da
--- /dev/null
+++ b/src/main/webapp/static/js/basPlcerror/basPlcerror.js
@@ -0,0 +1,369 @@
+var pageCurr;
+layui.use(['table','laydate', 'form'], function(){
+ var table = layui.table;
+ var $ = layui.jquery;
+ var layer = layui.layer;
+ var layDate = layui.laydate;
+ var form = layui.form;
+
+ // 鏁版嵁娓叉煋
+ tableIns = table.render({
+ elem: '#basPlcerror',
+ headers: {token: localStorage.getItem('token')},
+ url: baseUrl+'/basPlcerror/list/auth',
+ page: true,
+ limit: 16,
+ limits: [16, 30, 50, 100, 200, 500],
+ even: true,
+ toolbar: '#toolbar',
+ cellMinWidth: 50,
+ cols: [[
+ {type: 'checkbox'}
+// ,{field: 'id', title: 'ID', sort: true,align: 'center', fixed: 'left', width: 80}
+ ,{field: 'errorCode', align: 'center',title: '寮傚父缂栧彿'}
+ ,{field: 'errorDesc', align: 'center',title: '寮傚父鎻忚堪'}
+ ,{field: 'modiTime$', align: 'center',title: '淇敼鏃堕棿'}
+ ,{field: 'modiUser$', align: 'center',title: '淇敼浜哄憳'}
+
+ ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:150}
+ ]],
+ request: {
+ pageName: 'curr',
+ pageSize: 'limit'
+ },
+ parseData: function (res) {
+ return {
+ 'code': res.code,
+ 'msg': res.msg,
+ 'count': res.data.total,
+ 'data': res.data.records
+ }
+ },
+ response: {
+ statusCode: 200
+ },
+ done: function(res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ limit();
+ form.on('checkbox(tableCheckbox)', function (data) {
+ var _index = $(data.elem).attr('table-index')||0;
+ if(data.elem.checked){
+ res.data[_index][data.value] = 'Y';
+ }else{
+ res.data[_index][data.value] = 'N';
+ }
+ });
+ }
+ });
+
+ // 鐩戝惉鎺掑簭浜嬩欢
+ table.on('sort(locMast)', function (obj) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ searchData['orderByField'] = obj.field;
+ searchData['orderByType'] = obj.type;
+ tableIns.reload({
+ where: searchData,
+ page: {
+ curr: 1
+ },
+ done: function (res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ limit();
+ }
+ });
+ });
+
+ // 鐩戝惉澶村伐鍏锋爮浜嬩欢
+ table.on('toolbar(basPlcerror)', function (obj) {
+ var checkStatus = table.checkStatus(obj.config.id);
+ switch(obj.event) {
+ case 'addData':
+ layer.open({
+ type: 2,
+ title: '鏂板',
+ maxmin: true,
+ area: ['50%', top.detailHeight],
+ content: 'basPlcerror_detail.html',
+ success: function(layero, index){
+ layer.getChildFrame('#data-detail-submit-edit', index).hide();
+ clearFormVal(layer.getChildFrame('#detail', index));
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ }
+ });
+ break;
+ case 'deleteData':
+ var data = checkStatus.data;
+ if (data.length === 0){
+ layer.msg('璇烽�夋嫨鏁版嵁');
+ } else {
+ layer.confirm('纭畾鍒犻櫎'+(data.length===1?'姝�':data.length)+'鏉℃暟鎹悧', function(){
+ $.ajax({
+ url: baseUrl+"/basPlcerror/delete/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: {param: JSON.stringify(data)},
+ method: 'POST',
+ traditional:true,
+ success: function (res) {
+ if (res.code === 200){
+ layer.closeAll();
+ tableReload(false);
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+ });
+ }
+ break;
+ case 'exportData':
+ layer.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function(){
+ var titles=[];
+ var fields=[];
+ obj.config.cols[0].map(function (col) {
+ if (col.type === 'normal' && col.hide === false && col.toolbar == null) {
+ titles.push(col.title);
+ fields.push(col.field);
+ }
+ });
+ var exportData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ exportData[this.name] = this.value;
+ });
+ var param = {
+ 'basPlcerror': exportData,
+ 'fields': fields
+ };
+ $.ajax({
+ url: baseUrl+"/basPlcerror/export/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: JSON.stringify(param),
+ dataType:'json',
+ contentType:'application/json;charset=UTF-8',
+ method: 'POST',
+ success: function (res) {
+ layer.closeAll();
+ if (res.code === 200) {
+ table.exportFile(titles,res.data,'xls');
+ } else if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg)
+ }
+ }
+ });
+ });
+ break;
+ }
+ });
+
+ // 鐩戝惉琛屽伐鍏蜂簨浠�
+ table.on('tool(basPlcerror)', function(obj){
+ var data = obj.data;
+ switch (obj.event) {
+ // 缂栬緫
+ case 'edit':
+ layer.open({
+ type: 2,
+ title: '淇敼',
+ maxmin: true,
+ area: ['50%', top.detailHeight],
+ content: 'basPlcerror_detail.html',
+ success: function(layero, index){
+ layer.getChildFrame('#data-detail-submit-save', index).hide();
+ setFormVal(layer.getChildFrame('#detail', index), data, false);
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), false);
+ top.convertDisabled(layer.getChildFrame('#errorCode', index), true);
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ layero.find('iframe')[0].contentWindow.layui.form.render('checkbox');
+ }
+ });
+ break;
+
+ }
+ });
+
+ // 鏁版嵁淇濆瓨鍔ㄤ綔
+ form.on('submit(save)', function () {
+ if (banMsg != null){
+ layer.msg(banMsg);
+ return;
+ }
+ method("add");
+ });
+
+ // 鏁版嵁淇敼鍔ㄤ綔
+ form.on('submit(edit)', function () {
+ method("update")
+ });
+
+ function method(name){
+ var index = layer.load(1, {
+ shade: [0.5,'#000'] //0.1閫忔槑搴︾殑鑳屾櫙
+ });
+ var data = {
+// id: $('#id').val(),
+ errorCode: $('#errorCode').val(),
+ errorDesc: $('#errorDesc').val(),
+ modiTime: top.strToDate($('#modiTime\\$').val()),
+ modiUser: $('#modiUser').val(),
+ appeTime: top.strToDate($('#appeTime\\$').val()),
+ appeUser: $('#appeUser').val(),
+
+ };
+ $.ajax({
+ url: baseUrl+"/basPlcerror/"+name+"/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: top.reObject(data),
+ method: 'POST',
+ success: function (res) {
+ if (res.code === 200){
+ parent.layer.closeAll();
+ parent.$(".layui-laypage-btn")[0].click();
+ $("#data-detail :input").each(function () {
+ $(this).val("");
+ });
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg)
+ }
+ layer.close(index);
+ }
+ })
+ }
+
+ // 澶嶉�夋浜嬩欢
+ form.on('checkbox(detailCheckbox)', function (data) {
+ var el = data.elem;
+ if (el.checked) {
+ $(el).val('Y');
+ } else {
+ $(el).val('N');
+ }
+ });
+
+ // 鎼滅储鏍忔悳绱簨浠�
+ form.on('submit(search)', function (data) {
+ pageCurr = 1;
+ tableReload(false);
+ });
+
+ // 鎼滅储鏍忛噸缃簨浠�
+ form.on('submit(reset)', function (data) {
+ pageCurr = 1;
+ clearFormVal($('#search-box'));
+ tableReload(false);
+ });
+
+ // 鏃堕棿閫夋嫨鍣�
+ layDate.render({
+ elem: '#modiTime\\$',
+ type: 'datetime'
+ });
+ layDate.render({
+ elem: '#appeTime\\$',
+ type: 'datetime'
+ });
+
+
+});
+
+// 鍏抽棴鍔ㄤ綔
+$(document).on('click','#data-detail-close', function () {
+ parent.layer.closeAll();
+});
+
+function tableReload(child) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ (child ? parent.tableIns : tableIns).reload({
+ where: searchData,
+ page: {
+ curr: pageCurr
+ },
+ done: function (res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ if (res.data.length === 0 && count !== 0) {
+ tableIns.reload({
+ where: searchData,
+ page: {
+ curr: pageCurr-1
+ }
+ });
+ pageCurr -= 1;
+ }
+ limit(child);
+ }
+ });
+}
+
+function setFormVal(el, data, showImg) {
+ for (var val in data) {
+ var find = el.find(":input[id='" + val + "']");
+ if (find[0]!=null){
+ if (find[0].type === 'checkbox'){
+ if (data[val]==='Y'){
+ find.attr("checked","checked");
+ find.val('Y');
+ } else {
+ find.remove("checked");
+ find.val('N');
+ }
+ continue;
+ }
+ }
+ find.val(data[val]);
+ if (showImg){
+ var next = find.next();
+ if (next.get(0)){
+ if (next.get(0).localName === "img") {
+ find.hide();
+ next.attr("src", data[val]);
+ next.show();
+ }
+ }
+ }
+ }
+}
+
+function clearFormVal(el) {
+ $(':input', el)
+ .val('')
+ .removeAttr('checked')
+ .removeAttr('selected');
+}
+
+function detailScreen(index) {
+ var detail = layer.getChildFrame('#data-detail', index);
+ var height = detail.height()+60;
+ if (height > ($(window).height()*0.9)) {
+ height = ($(window).height()*0.8);
+ }
+ layer.style(index, {
+// top: (($(window).height()-height)/3)+"px",
+ height: height+'px'
+ });
+}
+
+$('body').keydown(function () {
+ if (event.keyCode === 13) {
+ $("#search").click();
+ }
+});
diff --git a/src/main/webapp/static/js/basShuttle/basShuttle.js b/src/main/webapp/static/js/basShuttle/basShuttle.js
new file mode 100644
index 0000000..e4811cb
--- /dev/null
+++ b/src/main/webapp/static/js/basShuttle/basShuttle.js
@@ -0,0 +1,279 @@
+var pageCurr;
+layui.config({
+ base: baseUrl + "/static/layui/lay/modules/"
+}).use(['table','laydate', 'form', 'admin'], function(){
+ var table = layui.table;
+ var $ = layui.jquery;
+ var layer = layui.layer;
+ var layDate = layui.laydate;
+ var form = layui.form;
+ var admin = layui.admin;
+
+ // 鏁版嵁娓叉煋
+ tableIns = table.render({
+ elem: '#basShuttle',
+ headers: {token: localStorage.getItem('token')},
+ url: baseUrl+'/basShuttle/list/auth',
+ page: true,
+ limit: 15,
+ limits: [15, 30, 50, 100, 200, 500],
+ toolbar: '#toolbar',
+ cellMinWidth: 50,
+ height: 'full-120',
+ cols: [[
+ {type: 'checkbox'}
+ ,{field: 'shuttleNo', align: 'center',title: '鍥涘悜绌挎杞﹀彿', width: 120}
+ ,{field: 'status$', align: 'center',title: '鐘舵��'}
+ ,{field: 'shuttleStatus', align: 'center',title: '浣滀笟鎬�'}
+ ,{field: 'wrkNo', align: 'center',title: '浠诲姟鍙�'}
+ ,{field: 'idleLoc', align: 'center',title: '鏆傚瓨搴撲綅'}
+ // ,{field: 'autoCharge', align: 'center',title: '鑷姩鍏呯數'}
+ ,{field: 'chargeLine', align: 'center',title: '鐢甸噺绾�'}
+ ,{field: 'busyStatus$', align: 'center',title: '灏忚溅蹇欑姸鎬�'}
+ ,{field: 'currentCode', align: 'center',title: '浜岀淮鐮�'}
+ ,{field: 'batteryPower$', align: 'center',title: '鐢甸噺'}
+ ,{field: 'batteryTemp$', align: 'center',title: '鐢垫睜娓╁害'}
+ // ,{field: 'createBy$', align: 'center',title: '娣诲姞浜哄憳'}
+ // ,{field: 'createTime$', align: 'center',title: '娣诲姞鏃堕棿'}
+ // ,{field: 'updateBy$', align: 'center',title: '淇敼浜哄憳'}
+ // ,{field: 'updateTime$', align: 'center',title: '淇敼鏃堕棿'}
+ ,{field: 'memo', align: 'center',title: '澶囨敞'}
+ ,{field: 'liftNo', align: 'center',title: '鎻愬崌鏈哄彿'}
+ ,{field: 'pakMk$', align: 'center',title: '鏍囪'}
+
+ ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:120}
+ ]],
+ request: {
+ pageName: 'curr',
+ pageSize: 'limit'
+ },
+ parseData: function (res) {
+ return {
+ 'code': res.code,
+ 'msg': res.msg,
+ 'count': res.data.total,
+ 'data': res.data.records
+ }
+ },
+ response: {
+ statusCode: 200
+ },
+ done: function(res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ limit();
+ }
+ });
+
+ // 鐩戝惉鎺掑簭浜嬩欢
+ table.on('sort(basShuttle)', function (obj) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ searchData['orderByField'] = obj.field;
+ searchData['orderByType'] = obj.type;
+ tableIns.reload({
+ where: searchData,
+ page: {curr: 1}
+ });
+ });
+
+ // 鐩戝惉澶村伐鍏锋爮浜嬩欢
+ table.on('toolbar(basShuttle)', function (obj) {
+ var checkStatus = table.checkStatus(obj.config.id).data;
+ switch(obj.event) {
+ case 'addData':
+ showEditModel();
+ break;
+ case 'deleteData':
+ if (checkStatus.length === 0) {
+ layer.msg('璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁', {icon: 2});
+ return;
+ }
+ del(checkStatus.map(function (d) {
+ return d.shuttleNo;
+ }));
+ break;
+ case 'exportData':
+ admin.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function(){
+ var titles=[];
+ var fields=[];
+ obj.config.cols[0].map(function (col) {
+ if (col.type === 'normal' && col.hide === false && col.toolbar == null) {
+ titles.push(col.title);
+ fields.push(col.field);
+ }
+ });
+ var exportData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ exportData[this.name] = this.value;
+ });
+ var param = {
+ 'basShuttle': exportData,
+ 'fields': fields
+ };
+ $.ajax({
+ url: baseUrl+"/basShuttle/export/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: JSON.stringify(param),
+ dataType:'json',
+ contentType:'application/json;charset=UTF-8',
+ method: 'POST',
+ success: function (res) {
+ layer.closeAll();
+ if (res.code === 200) {
+ table.exportFile(titles,res.data,'xls');
+ } else if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg, {icon: 2})
+ }
+ }
+ });
+ });
+ break;
+ }
+ });
+
+ // 鐩戝惉琛屽伐鍏蜂簨浠�
+ table.on('tool(basShuttle)', function(obj){
+ var data = obj.data;
+ switch (obj.event) {
+ case 'edit':
+ showEditModel(data);
+ break;
+ case "del":
+ del([data.shuttleNo]);
+ break;
+ }
+ });
+
+ /* 寮圭獥 - 鏂板銆佷慨鏀� */
+ function showEditModel(mData) {
+ admin.open({
+ type: 1,
+ area: '600px',
+ title: (mData ? '淇敼' : '娣诲姞') + '璁㈠崟鐘舵��',
+ content: $('#editDialog').html(),
+ success: function (layero, dIndex) {
+ layDateRender(mData);
+ form.val('detail', mData);
+ form.on('submit(editSubmit)', function (data) {
+ var loadIndex = layer.load(2);
+ $.ajax({
+ url: baseUrl+"/basShuttle/"+(mData?'update':'add')+"/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: data.field,
+ method: 'POST',
+ success: function (res) {
+ layer.close(loadIndex);
+ if (res.code === 200){
+ layer.close(dIndex);
+ layer.msg(res.msg, {icon: 1});
+ tableReload();
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg, {icon: 2});
+ }
+ }
+ })
+ return false;
+ });
+ $(layero).children('.layui-layer-content').css('overflow', 'visible');
+ layui.form.render('select');
+ }
+ });
+ }
+
+ /* 鍒犻櫎 */
+ function del(ids) {
+ layer.confirm('纭畾瑕佸垹闄ら�変腑鏁版嵁鍚楋紵', {
+ skin: 'layui-layer-admin',
+ shade: .1
+ }, function (i) {
+ layer.close(i);
+ var loadIndex = layer.load(2);
+ $.ajax({
+ url: baseUrl+"/basShuttle/delete/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: {ids: ids},
+ method: 'POST',
+ success: function (res) {
+ layer.close(loadIndex);
+ if (res.code === 200){
+ layer.msg(res.msg, {icon: 1});
+ tableReload();
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg, {icon: 2});
+ }
+ }
+ })
+ });
+ }
+
+ // 鎼滅储
+ form.on('submit(search)', function (data) {
+ pageCurr = 1;
+ tableReload(false);
+ });
+
+ // 閲嶇疆
+ form.on('submit(reset)', function (data) {
+ pageCurr = 1;
+ clearFormVal($('#search-box'));
+ tableReload(false);
+ });
+
+ function clearFormVal(el) {
+ $(':input', el)
+ .val('')
+ .removeAttr('checked')
+ .removeAttr('selected');
+ }
+
+ // 鏃堕棿閫夋嫨鍣�
+ function layDateRender(data) {
+ setTimeout(function () {
+ layDate.render({
+ elem: '.layui-laydate-range'
+ ,type: 'datetime'
+ ,range: true
+ });
+ layDate.render({
+ elem: '#createTime\\$',
+ type: 'datetime',
+ value: data!==undefined?data['createTime\\$']:null
+ });
+ layDate.render({
+ elem: '#updateTime\\$',
+ type: 'datetime',
+ value: data!==undefined?data['updateTime\\$']:null
+ });
+
+ }, 300);
+ }
+ layDateRender();
+
+});
+
+// 鍏抽棴鍔ㄤ綔
+$(document).on('click','#data-detail-close', function () {
+ parent.layer.closeAll();
+});
+
+function tableReload(child) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ tableIns.reload({
+ where: searchData,
+ page: {curr: pageCurr}
+ });
+}
diff --git a/src/main/webapp/static/js/basShuttleErr/basShuttleErr.js b/src/main/webapp/static/js/basShuttleErr/basShuttleErr.js
new file mode 100644
index 0000000..72559a6
--- /dev/null
+++ b/src/main/webapp/static/js/basShuttleErr/basShuttleErr.js
@@ -0,0 +1,267 @@
+var pageCurr;
+layui.config({
+ base: baseUrl + "/static/layui/lay/modules/"
+}).use(['table','laydate', 'form', 'admin'], function(){
+ var table = layui.table;
+ var $ = layui.jquery;
+ var layer = layui.layer;
+ var layDate = layui.laydate;
+ var form = layui.form;
+ var admin = layui.admin;
+
+ // 鏁版嵁娓叉煋
+ tableIns = table.render({
+ elem: '#basShuttleErr',
+ headers: {token: localStorage.getItem('token')},
+ url: baseUrl+'/basShuttleErr/list/auth',
+ page: true,
+ limit: 15,
+ limits: [15, 30, 50, 100, 200, 500],
+ toolbar: '#toolbar',
+ cellMinWidth: 50,
+ height: 'full-120',
+ cols: [[
+ {type: 'checkbox'}
+ ,{field: 'errorCode', align: 'center',title: '寮傚父鐮�'}
+ ,{field: 'errName', align: 'center',title: '寮傚父'}
+ ,{field: 'modiUser$', align: 'center',title: '淇敼浜哄憳'}
+ ,{field: 'modiTime$', align: 'center',title: '淇敼鏃堕棿'}
+ ,{field: 'appeUser$', align: 'center',title: '娣诲姞浜哄憳'}
+ ,{field: 'appeTime$', align: 'center',title: '娣诲姞鏃堕棿'}
+
+ ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:120}
+ ]],
+ request: {
+ pageName: 'curr',
+ pageSize: 'limit'
+ },
+ parseData: function (res) {
+ return {
+ 'code': res.code,
+ 'msg': res.msg,
+ 'count': res.data.total,
+ 'data': res.data.records
+ }
+ },
+ response: {
+ statusCode: 200
+ },
+ done: function(res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ limit();
+ }
+ });
+
+ // 鐩戝惉鎺掑簭浜嬩欢
+ table.on('sort(basShuttleErr)', function (obj) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ searchData['orderByField'] = obj.field;
+ searchData['orderByType'] = obj.type;
+ tableIns.reload({
+ where: searchData,
+ page: {curr: 1}
+ });
+ });
+
+ // 鐩戝惉澶村伐鍏锋爮浜嬩欢
+ table.on('toolbar(basShuttleErr)', function (obj) {
+ var checkStatus = table.checkStatus(obj.config.id).data;
+ switch(obj.event) {
+ case 'addData':
+ showEditModel();
+ break;
+ case 'deleteData':
+ if (checkStatus.length === 0) {
+ layer.msg('璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁', {icon: 2});
+ return;
+ }
+ del(checkStatus.map(function (d) {
+ return d.errorCode;
+ }));
+ break;
+ case 'exportData':
+ admin.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function(){
+ var titles=[];
+ var fields=[];
+ obj.config.cols[0].map(function (col) {
+ if (col.type === 'normal' && col.hide === false && col.toolbar == null) {
+ titles.push(col.title);
+ fields.push(col.field);
+ }
+ });
+ var exportData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ exportData[this.name] = this.value;
+ });
+ var param = {
+ 'basShuttleErr': exportData,
+ 'fields': fields
+ };
+ $.ajax({
+ url: baseUrl+"/basShuttleErr/export/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: JSON.stringify(param),
+ dataType:'json',
+ contentType:'application/json;charset=UTF-8',
+ method: 'POST',
+ success: function (res) {
+ layer.closeAll();
+ if (res.code === 200) {
+ table.exportFile(titles,res.data,'xls');
+ } else if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg, {icon: 2})
+ }
+ }
+ });
+ });
+ break;
+ }
+ });
+
+ // 鐩戝惉琛屽伐鍏蜂簨浠�
+ table.on('tool(basShuttleErr)', function(obj){
+ var data = obj.data;
+ switch (obj.event) {
+ case 'edit':
+ showEditModel(data);
+ break;
+ case "del":
+ del([data.errorCode]);
+ break;
+ }
+ });
+
+ /* 寮圭獥 - 鏂板銆佷慨鏀� */
+ function showEditModel(mData) {
+ admin.open({
+ type: 1,
+ area: '600px',
+ title: (mData ? '淇敼' : '娣诲姞') + '鍥涘悜杞﹀紓甯哥爜',
+ content: $('#editDialog').html(),
+ success: function (layero, dIndex) {
+ layDateRender(mData);
+ form.val('detail', mData);
+ form.on('submit(editSubmit)', function (data) {
+ var loadIndex = layer.load(2);
+ $.ajax({
+ url: baseUrl+"/basShuttleErr/"+(mData?'update':'add')+"/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: data.field,
+ method: 'POST',
+ success: function (res) {
+ layer.close(loadIndex);
+ if (res.code === 200){
+ layer.close(dIndex);
+ layer.msg(res.msg, {icon: 1});
+ tableReload();
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg, {icon: 2});
+ }
+ }
+ })
+ return false;
+ });
+ $(layero).children('.layui-layer-content').css('overflow', 'visible');
+ layui.form.render('select');
+ }
+ });
+ }
+
+ /* 鍒犻櫎 */
+ function del(ids) {
+ layer.confirm('纭畾瑕佸垹闄ら�変腑鏁版嵁鍚楋紵', {
+ skin: 'layui-layer-admin',
+ shade: .1
+ }, function (i) {
+ layer.close(i);
+ var loadIndex = layer.load(2);
+ $.ajax({
+ url: baseUrl+"/basShuttleErr/delete/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: {ids: ids},
+ method: 'POST',
+ success: function (res) {
+ layer.close(loadIndex);
+ if (res.code === 200){
+ layer.msg(res.msg, {icon: 1});
+ tableReload();
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg, {icon: 2});
+ }
+ }
+ })
+ });
+ }
+
+ // 鎼滅储
+ form.on('submit(search)', function (data) {
+ pageCurr = 1;
+ tableReload(false);
+ });
+
+ // 閲嶇疆
+ form.on('submit(reset)', function (data) {
+ pageCurr = 1;
+ clearFormVal($('#search-box'));
+ tableReload(false);
+ });
+
+ function clearFormVal(el) {
+ $(':input', el)
+ .val('')
+ .removeAttr('checked')
+ .removeAttr('selected');
+ }
+
+ // 鏃堕棿閫夋嫨鍣�
+ function layDateRender(data) {
+ setTimeout(function () {
+ layDate.render({
+ elem: '.layui-laydate-range'
+ ,type: 'datetime'
+ ,range: true
+ });
+ layDate.render({
+ elem: '#modiTime\\$',
+ type: 'datetime',
+ value: data!==undefined?data['modiTime\\$']:null
+ });
+ layDate.render({
+ elem: '#appeTime\\$',
+ type: 'datetime',
+ value: data!==undefined?data['appeTime\\$']:null
+ });
+
+ }, 300);
+ }
+ layDateRender();
+
+});
+
+// 鍏抽棴鍔ㄤ綔
+$(document).on('click','#data-detail-close', function () {
+ parent.layer.closeAll();
+});
+
+function tableReload(child) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ tableIns.reload({
+ where: searchData,
+ page: {curr: pageCurr}
+ });
+}
diff --git a/src/main/webapp/static/js/basShuttleErrLog/basShuttleErrLog.js b/src/main/webapp/static/js/basShuttleErrLog/basShuttleErrLog.js
new file mode 100644
index 0000000..241c6bb
--- /dev/null
+++ b/src/main/webapp/static/js/basShuttleErrLog/basShuttleErrLog.js
@@ -0,0 +1,287 @@
+var pageCurr;
+layui.config({
+ base: baseUrl + "/static/layui/lay/modules/"
+}).use(['table','laydate', 'form', 'admin'], function(){
+ var table = layui.table;
+ var $ = layui.jquery;
+ var layer = layui.layer;
+ var layDate = layui.laydate;
+ var form = layui.form;
+ var admin = layui.admin;
+
+ // 鏁版嵁娓叉煋
+ tableIns = table.render({
+ elem: '#basShuttleErrLog',
+ headers: {token: localStorage.getItem('token')},
+ url: baseUrl+'/basShuttleErrLog/list/auth',
+ page: true,
+ limit: 15,
+ limits: [15, 30, 50, 100, 200, 500],
+ toolbar: '#toolbar',
+ cellMinWidth: 50,
+ height: 'full-120',
+ cols: [[
+ // {type: 'checkbox'}
+ {field: 'id', align: 'center',title: '缂栧彿'}
+ // ,{field: 'uuid', align: 'center',title: '缂栧彿'}
+ ,{field: 'wrkNo', align: 'center',title: '宸ヤ綔鍙�'}
+ ,{field: 'startTime$', align: 'center',title: '鍙戠敓鏃堕棿'}
+ ,{field: 'endTime$', align: 'center',title: '缁撴潫鏃堕棿'}
+ ,{field: 'wrkSts$', align: 'center',title: '宸ヤ綔鐘舵��'}
+ ,{field: 'ioType$', align: 'center',title: '鍏ュ嚭搴撶被鍨�'}
+ ,{field: 'steNo', align: 'center',title: '绌挎杞�'}
+ ,{field: 'plcNo', align: 'center',title: 'plc'}
+ ,{field: 'locNo', align: 'center',title: '鐩爣搴撲綅'}
+ ,{field: 'staNo', align: 'center',title: '鐩爣绔�'}
+ ,{field: 'sourceStaNo', align: 'center',title: '婧愮珯'}
+ ,{field: 'sourceLocNo', align: 'center',title: '婧愬簱浣�'}
+ ,{field: 'barcode', align: 'center',title: '鏉$爜'}
+ ,{field: 'errCode', align: 'center',title: '寮傚父鐮�'}
+ ,{field: 'error', align: 'center',title: '寮傚父'}
+ ,{field: 'status$', align: 'center',title: '寮傚父鎯呭喌'}
+ ,{field: 'systemStatus', align: 'center',title: '绯荤粺鐘舵��'}
+ ,{field: 'createTime$', align: 'center',title: '娣诲姞鏃堕棿'}
+ ,{field: 'createBy$', align: 'center',title: '娣诲姞浜哄憳'}
+ ,{field: 'updateTime$', align: 'center',title: '淇敼鏃堕棿'}
+ ,{field: 'updateBy$', align: 'center',title: '淇敼浜哄憳'}
+ ,{field: 'memo', align: 'center',title: '澶囨敞'}
+
+ // ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:120}
+ ]],
+ request: {
+ pageName: 'curr',
+ pageSize: 'limit'
+ },
+ parseData: function (res) {
+ return {
+ 'code': res.code,
+ 'msg': res.msg,
+ 'count': res.data.total,
+ 'data': res.data.records
+ }
+ },
+ response: {
+ statusCode: 200
+ },
+ done: function(res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ limit();
+ }
+ });
+
+ // 鐩戝惉鎺掑簭浜嬩欢
+ table.on('sort(basShuttleErrLog)', function (obj) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ searchData['orderByField'] = obj.field;
+ searchData['orderByType'] = obj.type;
+ tableIns.reload({
+ where: searchData,
+ page: {curr: 1}
+ });
+ });
+
+ // 鐩戝惉澶村伐鍏锋爮浜嬩欢
+ table.on('toolbar(basShuttleErrLog)', function (obj) {
+ var checkStatus = table.checkStatus(obj.config.id).data;
+ switch(obj.event) {
+ case 'addData':
+ showEditModel();
+ break;
+ case 'deleteData':
+ if (checkStatus.length === 0) {
+ layer.msg('璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁', {icon: 2});
+ return;
+ }
+ del(checkStatus.map(function (d) {
+ return d.id;
+ }));
+ break;
+ case 'exportData':
+ admin.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function(){
+ var titles=[];
+ var fields=[];
+ obj.config.cols[0].map(function (col) {
+ if (col.type === 'normal' && col.hide === false && col.toolbar == null) {
+ titles.push(col.title);
+ fields.push(col.field);
+ }
+ });
+ var exportData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ exportData[this.name] = this.value;
+ });
+ var param = {
+ 'basShuttleErrLog': exportData,
+ 'fields': fields
+ };
+ $.ajax({
+ url: baseUrl+"/basShuttleErrLog/export/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: JSON.stringify(param),
+ dataType:'json',
+ contentType:'application/json;charset=UTF-8',
+ method: 'POST',
+ success: function (res) {
+ layer.closeAll();
+ if (res.code === 200) {
+ table.exportFile(titles,res.data,'xls');
+ } else if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg, {icon: 2})
+ }
+ }
+ });
+ });
+ break;
+ }
+ });
+
+ // 鐩戝惉琛屽伐鍏蜂簨浠�
+ table.on('tool(basShuttleErrLog)', function(obj){
+ var data = obj.data;
+ switch (obj.event) {
+ case 'edit':
+ showEditModel(data);
+ break;
+ case "del":
+ del([data.id]);
+ break;
+ }
+ });
+
+ /* 寮圭獥 - 鏂板銆佷慨鏀� */
+ function showEditModel(mData) {
+ admin.open({
+ type: 1,
+ area: '600px',
+ title: (mData ? '淇敼' : '娣诲姞') + '璁㈠崟鐘舵��',
+ content: $('#editDialog').html(),
+ success: function (layero, dIndex) {
+ layDateRender(mData);
+ form.val('detail', mData);
+ form.on('submit(editSubmit)', function (data) {
+ var loadIndex = layer.load(2);
+ $.ajax({
+ url: baseUrl+"/basShuttleErrLog/"+(mData?'update':'add')+"/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: data.field,
+ method: 'POST',
+ success: function (res) {
+ layer.close(loadIndex);
+ if (res.code === 200){
+ layer.close(dIndex);
+ layer.msg(res.msg, {icon: 1});
+ tableReload();
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg, {icon: 2});
+ }
+ }
+ })
+ return false;
+ });
+ $(layero).children('.layui-layer-content').css('overflow', 'visible');
+ layui.form.render('select');
+ }
+ });
+ }
+
+ /* 鍒犻櫎 */
+ function del(ids) {
+ layer.confirm('纭畾瑕佸垹闄ら�変腑鏁版嵁鍚楋紵', {
+ skin: 'layui-layer-admin',
+ shade: .1
+ }, function (i) {
+ layer.close(i);
+ var loadIndex = layer.load(2);
+ $.ajax({
+ url: baseUrl+"/basShuttleErrLog/delete/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: {ids: ids},
+ method: 'POST',
+ success: function (res) {
+ layer.close(loadIndex);
+ if (res.code === 200){
+ layer.msg(res.msg, {icon: 1});
+ tableReload();
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg, {icon: 2});
+ }
+ }
+ })
+ });
+ }
+
+ // 鎼滅储
+ form.on('submit(search)', function (data) {
+ pageCurr = 1;
+ tableReload(false);
+ });
+
+ // 閲嶇疆
+ form.on('submit(reset)', function (data) {
+ pageCurr = 1;
+ clearFormVal($('#search-box'));
+ tableReload(false);
+ });
+
+ // 鏃堕棿閫夋嫨鍣�
+ function layDateRender(data) {
+ setTimeout(function () {
+ layDate.render({
+ elem: '.layui-laydate-range'
+ ,type: 'datetime'
+ ,range: true
+ });
+ layDate.render({
+ elem: '#startTime\\$',
+ type: 'datetime',
+ value: data!==undefined?data['startTime\\$']:null
+ });
+ layDate.render({
+ elem: '#endTime\\$',
+ type: 'datetime',
+ value: data!==undefined?data['endTime\\$']:null
+ });
+ layDate.render({
+ elem: '#createTime\\$',
+ type: 'datetime',
+ value: data!==undefined?data['createTime\\$']:null
+ });
+ layDate.render({
+ elem: '#updateTime\\$',
+ type: 'datetime',
+ value: data!==undefined?data['updateTime\\$']:null
+ });
+
+ }, 300);
+ }
+ layDateRender();
+
+});
+
+// 鍏抽棴鍔ㄤ綔
+$(document).on('click','#data-detail-close', function () {
+ parent.layer.closeAll();
+});
+
+function tableReload(child) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ tableIns.reload({
+ where: searchData,
+ page: {curr: pageCurr}
+ });
+}
diff --git a/src/main/webapp/static/js/basShuttleErrLog/basShuttleOpt.js b/src/main/webapp/static/js/basShuttleErrLog/basShuttleOpt.js
new file mode 100644
index 0000000..aa8aead
--- /dev/null
+++ b/src/main/webapp/static/js/basShuttleErrLog/basShuttleOpt.js
@@ -0,0 +1,275 @@
+var pageCurr;
+layui.config({
+ base: baseUrl + "/static/layui/lay/modules/"
+}).use(['table','laydate', 'form', 'admin'], function(){
+ var table = layui.table;
+ var $ = layui.jquery;
+ var layer = layui.layer;
+ var layDate = layui.laydate;
+ var form = layui.form;
+ var admin = layui.admin;
+
+ // 鏁版嵁娓叉煋
+ tableIns = table.render({
+ elem: '#basShuttleOpt',
+ headers: {token: localStorage.getItem('token')},
+ url: baseUrl+'/basShuttleOpt/list/auth',
+ page: true,
+ limit: 15,
+ limits: [15, 30, 50, 100, 200, 500],
+ toolbar: '#toolbar',
+ cellMinWidth: 50,
+ height: 'full-120',
+ cols: [[
+ {field: 'wrkNo', align: 'center',title: '宸ヤ綔鍙�'}
+ ,{field: 'shuttleNo', align: 'center',title: '鍥涘悜杞�'}
+ ,{field: 'mode', align: 'center',title: '浣滀笟'}
+ ,{field: 'sourceLocNo', align: 'center',title: '璧风偣搴撲綅'}
+ ,{field: 'distLocNo', align: 'center',title: '鐩爣搴撲綅'}
+ ,{field: 'command', align: 'center',title: '鍛戒护'}
+ ,{field: 'systemStatus', align: 'center',title: '绯荤粺鐘舵��'}
+ ,{field: 'deviceWrk', align: 'center',title: '璁惧宸ヤ綔鍙�'}
+ ,{field: 'sendTime$', align: 'center',title: '涓嬪彂鏃堕棿'}
+ ,{field: 'updateTime$', align: 'center',title: '淇敼鏃堕棿'}
+ ,{field: 'updateBy$', align: 'center',title: '淇敼浜哄憳'}
+ ,{field: 'memo', align: 'center',title: '澶囨敞'}
+
+ // ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:120}
+ ]],
+ request: {
+ pageName: 'curr',
+ pageSize: 'limit'
+ },
+ parseData: function (res) {
+ return {
+ 'code': res.code,
+ 'msg': res.msg,
+ 'count': res.data.total,
+ 'data': res.data.records
+ }
+ },
+ response: {
+ statusCode: 200
+ },
+ done: function(res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ limit();
+ }
+ });
+
+ // 鐩戝惉鎺掑簭浜嬩欢
+ table.on('sort(basShuttleOpt)', function (obj) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ searchData['orderByField'] = obj.field;
+ searchData['orderByType'] = obj.type;
+ tableIns.reload({
+ where: searchData,
+ page: {curr: 1}
+ });
+ });
+
+ // 鐩戝惉澶村伐鍏锋爮浜嬩欢
+ table.on('toolbar(basShuttleOpt)', function (obj) {
+ var checkStatus = table.checkStatus(obj.config.id).data;
+ switch(obj.event) {
+ case 'addData':
+ showEditModel();
+ break;
+ case 'deleteData':
+ if (checkStatus.length === 0) {
+ layer.msg('璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁', {icon: 2});
+ return;
+ }
+ del(checkStatus.map(function (d) {
+ return d.id;
+ }));
+ break;
+ case 'exportData':
+ admin.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function(){
+ var titles=[];
+ var fields=[];
+ obj.config.cols[0].map(function (col) {
+ if (col.type === 'normal' && col.hide === false && col.toolbar == null) {
+ titles.push(col.title);
+ fields.push(col.field);
+ }
+ });
+ var exportData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ exportData[this.name] = this.value;
+ });
+ var param = {
+ 'basShuttleOpt': exportData,
+ 'fields': fields
+ };
+ $.ajax({
+ url: baseUrl+"/basShuttleOpt/export/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: JSON.stringify(param),
+ dataType:'json',
+ contentType:'application/json;charset=UTF-8',
+ method: 'POST',
+ success: function (res) {
+ layer.closeAll();
+ if (res.code === 200) {
+ table.exportFile(titles,res.data,'xls');
+ } else if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg, {icon: 2})
+ }
+ }
+ });
+ });
+ break;
+ }
+ });
+
+ // 鐩戝惉琛屽伐鍏蜂簨浠�
+ table.on('tool(basShuttleOpt)', function(obj){
+ var data = obj.data;
+ switch (obj.event) {
+ case 'edit':
+ showEditModel(data);
+ break;
+ case "del":
+ del([data.id]);
+ break;
+ }
+ });
+
+ /* 寮圭獥 - 鏂板銆佷慨鏀� */
+ function showEditModel(mData) {
+ admin.open({
+ type: 1,
+ area: '600px',
+ title: (mData ? '淇敼' : '娣诲姞') + '璁㈠崟鐘舵��',
+ content: $('#editDialog').html(),
+ success: function (layero, dIndex) {
+ layDateRender(mData);
+ form.val('detail', mData);
+ form.on('submit(editSubmit)', function (data) {
+ var loadIndex = layer.load(2);
+ $.ajax({
+ url: baseUrl+"/basShuttleOpt/"+(mData?'update':'add')+"/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: data.field,
+ method: 'POST',
+ success: function (res) {
+ layer.close(loadIndex);
+ if (res.code === 200){
+ layer.close(dIndex);
+ layer.msg(res.msg, {icon: 1});
+ tableReload();
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg, {icon: 2});
+ }
+ }
+ })
+ return false;
+ });
+ $(layero).children('.layui-layer-content').css('overflow', 'visible');
+ layui.form.render('select');
+ }
+ });
+ }
+
+ /* 鍒犻櫎 */
+ function del(ids) {
+ layer.confirm('纭畾瑕佸垹闄ら�変腑鏁版嵁鍚楋紵', {
+ skin: 'layui-layer-admin',
+ shade: .1
+ }, function (i) {
+ layer.close(i);
+ var loadIndex = layer.load(2);
+ $.ajax({
+ url: baseUrl+"/basShuttleOpt/delete/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: {ids: ids},
+ method: 'POST',
+ success: function (res) {
+ layer.close(loadIndex);
+ if (res.code === 200){
+ layer.msg(res.msg, {icon: 1});
+ tableReload();
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg, {icon: 2});
+ }
+ }
+ })
+ });
+ }
+
+ // 鎼滅储
+ form.on('submit(search)', function (data) {
+ pageCurr = 1;
+ tableReload(false);
+ });
+
+ // 閲嶇疆
+ form.on('submit(reset)', function (data) {
+ pageCurr = 1;
+ clearFormVal($('#search-box'));
+ tableReload(false);
+ });
+
+ // 鏃堕棿閫夋嫨鍣�
+ function layDateRender(data) {
+ setTimeout(function () {
+ layDate.render({
+ elem: '.layui-laydate-range'
+ ,type: 'datetime'
+ ,range: true
+ });
+ layDate.render({
+ elem: '#startTime\\$',
+ type: 'datetime',
+ value: data!==undefined?data['startTime\\$']:null
+ });
+ layDate.render({
+ elem: '#endTime\\$',
+ type: 'datetime',
+ value: data!==undefined?data['endTime\\$']:null
+ });
+ layDate.render({
+ elem: '#createTime\\$',
+ type: 'datetime',
+ value: data!==undefined?data['createTime\\$']:null
+ });
+ layDate.render({
+ elem: '#updateTime\\$',
+ type: 'datetime',
+ value: data!==undefined?data['updateTime\\$']:null
+ });
+
+ }, 300);
+ }
+ layDateRender();
+
+});
+
+// 鍏抽棴鍔ㄤ綔
+$(document).on('click','#data-detail-close', function () {
+ parent.layer.closeAll();
+});
+
+function tableReload(child) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ tableIns.reload({
+ where: searchData,
+ page: {curr: pageCurr}
+ });
+}
diff --git a/src/main/webapp/static/js/basWrkIotype/basWrkIotype.js b/src/main/webapp/static/js/basWrkIotype/basWrkIotype.js
new file mode 100644
index 0000000..723120b
--- /dev/null
+++ b/src/main/webapp/static/js/basWrkIotype/basWrkIotype.js
@@ -0,0 +1,443 @@
+var pageCurr;
+layui.use(['table','laydate', 'form'], function(){
+ var table = layui.table;
+ var $ = layui.jquery;
+ var layer = layui.layer;
+ var layDate = layui.laydate;
+ var form = layui.form;
+
+ // 鏁版嵁娓叉煋
+ tableIns = table.render({
+ elem: '#basWrkIotype',
+ headers: {token: localStorage.getItem('token')},
+ url: baseUrl+'/basWrkIotype/list/auth',
+ page: true,
+ limit: 16,
+ limits: [16, 30, 50, 100, 200, 500],
+ // skin: 'line',
+ even: true,
+ toolbar: '#toolbar',
+ cellMinWidth: 50,
+ cols: [[
+ {type: 'checkbox', fixed: 'left'}
+// ,{field: 'id', title: 'ID', sort: true,align: 'center', fixed: 'left', width: 80}
+ ,{field: 'ioType', align: 'center',sort:true,title: '鍏ュ嚭绫诲瀷浠e彿'}
+ // ,{field: 'ioPri', align: 'center',title: '涓昏'}
+ ,{field: 'ioDesc', align: 'center',title: '鍏ュ嚭绫诲瀷鎻忚堪'}
+ ,{field: 'modiUser$', align: 'center',title: '淇敼浜哄憳'}
+ ,{field: 'modiTime$', align: 'center',title: '淇敼鏃堕棿'}
+ // ,{field: 'appeUser$', align: 'center',title: '鍒涘缓鑰�',event: 'appeUser', style: 'text-decoration: underline;cursor:pointer'}
+ // ,{field: 'appeTime$', align: 'center',title: '娣诲姞鏃堕棿'}
+
+ ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:150}
+ ]],
+ request: {
+ pageName: 'curr',
+ pageSize: 'limit'
+ },
+ parseData: function (res) {
+ return {
+ 'code': res.code,
+ 'msg': res.msg,
+ 'count': res.data.total,
+ 'data': res.data.records
+ }
+ },
+ response: {
+ statusCode: 200
+ },
+ done: function(res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ limit();
+ }
+ });
+
+ // 鐩戝惉鎺掑簭浜嬩欢
+ table.on('sort(basWrkIotype)', function (obj) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ searchData['orderByField'] = obj.field;
+ searchData['orderByType'] = obj.type;
+ tableIns.reload({
+ where: searchData,
+ page: {
+ curr: 1
+ },
+ done: function (res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ limit();
+ }
+ });
+ });
+
+ // 鐩戝惉澶村伐鍏锋爮浜嬩欢
+ table.on('toolbar(basWrkIotype)', function (obj) {
+ var checkStatus = table.checkStatus(obj.config.id);
+ switch(obj.event) {
+ case 'addData':
+ layer.open({
+ type: 2,
+ title: '鏂板',
+ maxmin: true,
+ area: ['500px', top.detailHeight],
+ shadeClose: false,
+ content: 'basWrkIotype_detail.html',
+ success: function(layero, index){
+ layer.getChildFrame('#data-detail-submit-edit', index).hide();
+ clearFormVal(layer.getChildFrame('#detail', index));
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ }
+ });
+ break;
+ case 'refreshData':
+ tableIns.reload({
+ page: {
+ curr: pageCurr
+ }
+ });
+ limit();
+ break;
+ case 'deleteData':
+ var data = checkStatus.data;
+ if (data.length === 0){
+ layer.msg('璇烽�夋嫨鏁版嵁');
+ } else {
+ layer.confirm('纭畾鍒犻櫎'+(data.length===1?'姝�':data.length)+'鏉℃暟鎹悧', function(){
+ $.ajax({
+ url: baseUrl+"/basWrkIotype/delete/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: {param: JSON.stringify(data)},
+ method: 'POST',
+ traditional:true,
+ success: function (res) {
+ if (res.code === 200){
+ layer.closeAll();
+ tableReload(false);
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+ });
+ }
+ break;
+ case 'exportData':
+ layer.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function(){
+ var titles=[];
+ var fields=[];
+ obj.config.cols[0].map(function (col) {
+ if (col.type === 'normal' && col.hide === false && col.toolbar == null) {
+ titles.push(col.title);
+ fields.push(col.field);
+ }
+ });
+ var exportData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ exportData[this.name] = this.value;
+ });
+ var param = {
+ 'basWrkIotype': exportData,
+ 'fields': fields
+ };
+ $.ajax({
+ url: baseUrl+"/basWrkIotype/export/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: JSON.stringify(param),
+ dataType:'json',
+ contentType:'application/json;charset=UTF-8',
+ method: 'POST',
+ success: function (res) {
+ layer.closeAll();
+ if (res.code === 200) {
+ table.exportFile(titles,res.data,'xls');
+ } else if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg)
+ }
+ }
+ });
+ });
+ break;
+ }
+ });
+
+ // 鐩戝惉琛屽伐鍏蜂簨浠�
+ table.on('tool(basWrkIotype)', function(obj){
+ var data = obj.data;
+ switch (obj.event) {
+ // 璇︽儏
+ case 'detail':
+ layer.open({
+ type: 2,
+ title: '璇︽儏',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: 'basWrkIotype_detail.html',
+ success: function(layero, index){
+ setFormVal(layer.getChildFrame('#detail', index), data, true);
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
+ layer.getChildFrame('#data-detail-submit-save,#prompt', index).hide();
+ layer.getChildFrame('#data-detail-submit-edit', index).hide();
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ }
+ });
+ break;
+ // 缂栬緫
+ case 'edit':
+ layer.open({
+ type: 2,
+ title: '淇敼',
+ maxmin: true,
+ area: ['500px', top.detailHeight],
+ shadeClose: false,
+ content: 'basWrkIotype_detail.html',
+ success: function(layero, index){
+ layer.getChildFrame('#data-detail-submit-save', index).hide();
+ setFormVal(layer.getChildFrame('#detail', index), data, false);
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), false);
+ top.convertDisabled(layer.getChildFrame('#ioType', index), true);
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ }
+ });
+ break;
+ case 'modiUser':
+ var param = top.reObject(data).modiUser;
+ if (param === undefined) {
+ layer.msg("鏃犳暟鎹�");
+ } else {
+ layer.open({
+ type: 2,
+ title: '淇敼璇︽儏',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: '../user/user_detail.html',
+ success: function(layero, index){
+ $.ajax({
+ url: baseUrl+"/user/"+ param +"/auth",
+ headers: {'token': localStorage.getItem('token')},
+ method: 'GET',
+ success: function (res) {
+ if (res.code === 200){
+ setFormVal(layer.getChildFrame('#detail', index), res.data, true);
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
+ layer.getChildFrame('#password,#createTime\\$,#status', index).parent().parent().hide();
+ layer.getChildFrame('#data-detail-submit,#prompt', index).hide();
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ } else if (res.code === 403){
+ parent.location.href = "/";
+ }else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+ }
+ });
+ }
+ break;
+ case 'appeUser':
+ var param = top.reObject(data).appeUser;
+ if (param === undefined) {
+ layer.msg("鏃犳暟鎹�");
+ } else {
+ layer.open({
+ type: 2,
+ title: '鍒涜鎯�',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: '../user/user_detail.html',
+ success: function(layero, index){
+ $.ajax({
+ url: baseUrl+"/user/"+ param +"/auth",
+ headers: {'token': localStorage.getItem('token')},
+ method: 'GET',
+ success: function (res) {
+ if (res.code === 200){
+ setFormVal(layer.getChildFrame('#detail', index), res.data, true);
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
+ layer.getChildFrame('#data-detail-submit', index).hide();
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ } else if (res.code === 403){
+ parent.location.href = "/";
+ }else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+ }
+ });
+ }
+ break;
+
+ }
+ });
+
+ // 鏁版嵁淇濆瓨鍔ㄤ綔
+ form.on('submit(save)', function () {
+ if (banMsg != null){
+ layer.msg(banMsg);
+ return;
+ }
+ method("add");
+ });
+
+ // 鏁版嵁淇敼鍔ㄤ綔
+ form.on('submit(edit)', function () {
+ method("update")
+ });
+
+ function method(name){
+ var index = layer.load(1, {
+ shade: [0.5,'#000'] //0.1閫忔槑搴︾殑鑳屾櫙
+ });
+ var data = {
+// id: $('#id').val(),
+ ioType: $('#ioType').val(),
+ ioPri: $('#ioPri').val(),
+ ioDesc: $('#ioDesc').val(),
+ modiUser: $('#modiUser').val(),
+ modiTime: top.strToDate($('#modiTime\\$').val()),
+ appeUser: $('#appeUser').val(),
+ appeTime: top.strToDate($('#appeTime\\$').val()),
+
+ };
+ $.ajax({
+ url: baseUrl+"/basWrkIotype/"+name+"/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: top.reObject(data),
+ method: 'POST',
+ success: function (res) {
+ if (res.code === 200){
+ parent.layer.closeAll();
+ tableReload(true);
+ $("#data-detail :input").each(function () {
+ $(this).val("");
+ });
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg)
+ }
+ layer.close(index);
+ }
+ })
+ }
+
+ // 鎼滅储鏍忔悳绱簨浠�
+ form.on('submit(search)', function (data) {
+ pageCurr = 1;
+ tableReload(false);
+ });
+
+ // 鎼滅储鏍忛噸缃簨浠�
+ form.on('submit(reset)', function (data) {
+ pageCurr = 1;
+ clearFormVal($('#search-box'));
+ tableReload(false);
+ });
+
+ // 鏃堕棿閫夋嫨鍣�
+ layDate.render({
+ elem: '#modiTime\\$',
+ type: 'datetime'
+ });
+ layDate.render({
+ elem: '#appeTime\\$',
+ type: 'datetime'
+ });
+
+
+});
+
+// 鍏抽棴鍔ㄤ綔
+$(document).on('click','#data-detail-close', function () {
+ parent.layer.closeAll();
+});
+
+function tableReload(child) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ (child ? parent.tableIns : tableIns).reload({
+ where: searchData,
+ page: {
+ curr: pageCurr
+ },
+ done: function (res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ if (res.data.length === 0 && count !== 0) {
+ tableIns.reload({
+ where: searchData,
+ page: {
+ curr: pageCurr-1
+ }
+ });
+ pageCurr -= 1;
+ }
+ limit(child);
+ }
+ });
+}
+
+function setFormVal(el, data, showImg) {
+ for (var val in data) {
+ var find = el.find(":input[id='" + val + "']");
+ find.val(data[val]);
+ if (showImg){
+ var next = find.next();
+ if (next.get(0)){
+ if (next.get(0).localName === "img") {
+ find.hide();
+ next.attr("src", data[val]);
+ next.show();
+ }
+ }
+ }
+ }
+}
+
+function clearFormVal(el) {
+ $(':input', el)
+ .val('')
+ .removeAttr('checked')
+ .removeAttr('selected');
+}
+
+function detailScreen(index) {
+ var detail = layer.getChildFrame('#data-detail', index);
+ var height = detail.height()+60;
+ if (height > ($(window).height()*0.9)) {
+ height = ($(window).height()*0.9);
+ }
+ layer.style(index, {
+// top: (($(window).height()-height)/3)+"px",
+ height: height+'px'
+ });
+}
+
+$('body').keydown(function () {
+ if (event.keyCode === 13) {
+ $("#search").click();
+ }
+});
diff --git a/src/main/webapp/static/js/basWrkStatus/basWrkStatus.js b/src/main/webapp/static/js/basWrkStatus/basWrkStatus.js
new file mode 100644
index 0000000..a64f6da
--- /dev/null
+++ b/src/main/webapp/static/js/basWrkStatus/basWrkStatus.js
@@ -0,0 +1,441 @@
+var pageCurr;
+layui.use(['table','laydate', 'form'], function(){
+ var table = layui.table;
+ var $ = layui.jquery;
+ var layer = layui.layer;
+ var layDate = layui.laydate;
+ var form = layui.form;
+
+ // 鏁版嵁娓叉煋
+ tableIns = table.render({
+ elem: '#basWrkStatus',
+ headers: {token: localStorage.getItem('token')},
+ url: baseUrl+'/basWrkStatus/list/auth',
+ page: true,
+ limit: 16,
+ limits: [16, 30, 50, 100, 200, 500],
+ // skin: 'line',
+ even: true,
+ toolbar: '#toolbar',
+ cellMinWidth: 50,
+ cols: [[
+ {type: 'checkbox', fixed: 'left'}
+// ,{field: 'id', title: 'ID', sort: true,align: 'center', fixed: 'left', width: 80}
+ ,{field: 'wrkSts', align: 'center',sort:true,title: '浠e彿'}
+ ,{field: 'wrkDesc', align: 'center',title: '鐘舵�佹弿杩�'}
+ ,{field: 'modiUser$', align: 'center',title: '淇敼浜哄憳'}
+ ,{field: 'modiTime$', align: 'center',title: '淇敼鏃堕棿'}
+ // ,{field: 'appeUser$', align: 'center',title: '鍒涘缓鑰�',event: 'appeUser', style: 'text-decoration: underline;cursor:pointer'}
+ // ,{field: 'appeTime$', align: 'center',title: '娣诲姞鏃堕棿'}
+
+ ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:150}
+ ]],
+ request: {
+ pageName: 'curr',
+ pageSize: 'limit'
+ },
+ parseData: function (res) {
+ return {
+ 'code': res.code,
+ 'msg': res.msg,
+ 'count': res.data.total,
+ 'data': res.data.records
+ }
+ },
+ response: {
+ statusCode: 200
+ },
+ done: function(res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ limit();
+ }
+ });
+
+ // 鐩戝惉鎺掑簭浜嬩欢
+ table.on('sort(basWrkStatus)', function (obj) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ searchData['orderByField'] = obj.field;
+ searchData['orderByType'] = obj.type;
+ tableIns.reload({
+ where: searchData,
+ page: {
+ curr: 1
+ },
+ done: function (res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ limit();
+ }
+ });
+ });
+
+ // 鐩戝惉澶村伐鍏锋爮浜嬩欢
+ table.on('toolbar(basWrkStatus)', function (obj) {
+ var checkStatus = table.checkStatus(obj.config.id);
+ switch(obj.event) {
+ case 'addData':
+ layer.open({
+ type: 2,
+ title: '鏂板',
+ maxmin: true,
+ area: ['500px', top.detailHeight],
+ shadeClose: false,
+ content: 'basWrkStatus_detail.html',
+ success: function(layero, index){
+ layer.getChildFrame('#data-detail-submit-edit', index).hide();
+ clearFormVal(layer.getChildFrame('#detail', index));
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ }
+ });
+ break;
+ case 'refreshData':
+ tableIns.reload({
+ page: {
+ curr: pageCurr
+ }
+ });
+ limit();
+ break;
+ case 'deleteData':
+ var data = checkStatus.data;
+ if (data.length === 0){
+ layer.msg('璇烽�夋嫨鏁版嵁');
+ } else {
+ layer.confirm('纭畾鍒犻櫎'+(data.length===1?'姝�':data.length)+'鏉℃暟鎹悧', function(){
+ $.ajax({
+ url: baseUrl+"/basWrkStatus/delete/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: {param: JSON.stringify(data)},
+ method: 'POST',
+ traditional:true,
+ success: function (res) {
+ if (res.code === 200){
+ layer.closeAll();
+ tableReload(false);
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+ });
+ }
+ break;
+ case 'exportData':
+ layer.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function(){
+ var titles=[];
+ var fields=[];
+ obj.config.cols[0].map(function (col) {
+ if (col.type === 'normal' && col.hide === false && col.toolbar == null) {
+ titles.push(col.title);
+ fields.push(col.field);
+ }
+ });
+ var exportData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ exportData[this.name] = this.value;
+ });
+ var param = {
+ 'basWrkStatus': exportData,
+ 'fields': fields
+ };
+ $.ajax({
+ url: baseUrl+"/basWrkStatus/export/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: JSON.stringify(param),
+ dataType:'json',
+ contentType:'application/json;charset=UTF-8',
+ method: 'POST',
+ success: function (res) {
+ layer.closeAll();
+ if (res.code === 200) {
+ table.exportFile(titles,res.data,'xls');
+ } else if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg)
+ }
+ }
+ });
+ });
+ break;
+ }
+ });
+
+ // 鐩戝惉琛屽伐鍏蜂簨浠�
+ table.on('tool(basWrkStatus)', function(obj){
+ var data = obj.data;
+ switch (obj.event) {
+ // 璇︽儏
+ case 'detail':
+ layer.open({
+ type: 2,
+ title: '璇︽儏',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: 'basWrkStatus_detail.html',
+ success: function(layero, index){
+ setFormVal(layer.getChildFrame('#detail', index), data, true);
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
+ layer.getChildFrame('#data-detail-submit-save,#prompt', index).hide();
+ layer.getChildFrame('#data-detail-submit-edit', index).hide();
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ }
+ });
+ break;
+ // 缂栬緫
+ case 'edit':
+ layer.open({
+ type: 2,
+ title: '淇敼',
+ maxmin: true,
+ area: ['500px', top.detailHeight],
+ shadeClose: false,
+ content: 'basWrkStatus_detail.html',
+ success: function(layero, index){
+ layer.getChildFrame('#data-detail-submit-save', index).hide();
+ setFormVal(layer.getChildFrame('#detail', index), data, false);
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), false);
+ top.convertDisabled(layer.getChildFrame('#wrkSts', index), true);
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ }
+ });
+ break;
+ case 'modiUser':
+ var param = top.reObject(data).modiUser;
+ if (param === undefined) {
+ layer.msg("鏃犳暟鎹�");
+ } else {
+ layer.open({
+ type: 2,
+ title: '淇敼璇︽儏',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: '../user/user_detail.html',
+ success: function(layero, index){
+ $.ajax({
+ url: baseUrl+"/user/"+ param +"/auth",
+ headers: {'token': localStorage.getItem('token')},
+ method: 'GET',
+ success: function (res) {
+ if (res.code === 200){
+ setFormVal(layer.getChildFrame('#detail', index), res.data, true);
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
+ layer.getChildFrame('#data-detail-submit,#prompt', index).hide();
+ layer.getChildFrame('#password,#createTime\\$,#status', index).parent().parent().hide();
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ } else if (res.code === 403){
+ parent.location.href = "/";
+ }else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+ }
+ });
+ }
+ break;
+ case 'appeUser':
+ var param = top.reObject(data).appeUser;
+ if (param === undefined) {
+ layer.msg("鏃犳暟鎹�");
+ } else {
+ layer.open({
+ type: 2,
+ title: '鍒涜鎯�',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: '../user/user_detail.html',
+ success: function(layero, index){
+ $.ajax({
+ url: baseUrl+"/user/"+ param +"/auth",
+ headers: {'token': localStorage.getItem('token')},
+ method: 'GET',
+ success: function (res) {
+ if (res.code === 200){
+ setFormVal(layer.getChildFrame('#detail', index), res.data, true);
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
+ layer.getChildFrame('#data-detail-submit', index).hide();
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ } else if (res.code === 403){
+ parent.location.href = "/";
+ }else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+ }
+ });
+ }
+ break;
+
+ }
+ });
+
+ // 鏁版嵁淇濆瓨鍔ㄤ綔
+ form.on('submit(save)', function () {
+ if (banMsg != null){
+ layer.msg(banMsg);
+ return;
+ }
+ method("add");
+ });
+
+ // 鏁版嵁淇敼鍔ㄤ綔
+ form.on('submit(edit)', function () {
+ method("update")
+ });
+
+ function method(name){
+ var index = layer.load(1, {
+ shade: [0.5,'#000'] //0.1閫忔槑搴︾殑鑳屾櫙
+ });
+ var data = {
+// id: $('#id').val(),
+ wrkSts: $('#wrkSts').val(),
+ wrkDesc: $('#wrkDesc').val(),
+ modiUser: $('#modiUser').val(),
+ modiTime: top.strToDate($('#modiTime\\$').val()),
+ appeUser: $('#appeUser').val(),
+ appeTime: top.strToDate($('#appeTime\\$').val()),
+
+ };
+ $.ajax({
+ url: baseUrl+"/basWrkStatus/"+name+"/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: top.reObject(data),
+ method: 'POST',
+ success: function (res) {
+ if (res.code === 200){
+ parent.layer.closeAll();
+ tableReload(true);
+ $("#data-detail :input").each(function () {
+ $(this).val("");
+ });
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg)
+ }
+ layer.close(index);
+ }
+ })
+ }
+
+ // 鎼滅储鏍忔悳绱簨浠�
+ form.on('submit(search)', function (data) {
+ pageCurr = 1;
+ tableReload(false);
+ });
+
+ // 鎼滅储鏍忛噸缃簨浠�
+ form.on('submit(reset)', function (data) {
+ pageCurr = 1;
+ clearFormVal($('#search-box'));
+ tableReload(false);
+ });
+
+ // 鏃堕棿閫夋嫨鍣�
+ layDate.render({
+ elem: '#modiTime\\$',
+ type: 'datetime'
+ });
+ layDate.render({
+ elem: '#appeTime\\$',
+ type: 'datetime'
+ });
+
+
+});
+
+// 鍏抽棴鍔ㄤ綔
+$(document).on('click','#data-detail-close', function () {
+ parent.layer.closeAll();
+});
+
+function tableReload(child) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ (child ? parent.tableIns : tableIns).reload({
+ where: searchData,
+ page: {
+ curr: pageCurr
+ },
+ done: function (res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ if (res.data.length === 0 && count !== 0) {
+ tableIns.reload({
+ where: searchData,
+ page: {
+ curr: pageCurr-1
+ }
+ });
+ pageCurr -= 1;
+ }
+ limit(child);
+ }
+ });
+}
+
+function setFormVal(el, data, showImg) {
+ for (var val in data) {
+ var find = el.find(":input[id='" + val + "']");
+ find.val(data[val]);
+ if (showImg){
+ var next = find.next();
+ if (next.get(0)){
+ if (next.get(0).localName === "img") {
+ find.hide();
+ next.attr("src", data[val]);
+ next.show();
+ }
+ }
+ }
+ }
+}
+
+function clearFormVal(el) {
+ $(':input', el)
+ .val('')
+ .removeAttr('checked')
+ .removeAttr('selected');
+}
+
+function detailScreen(index) {
+ var detail = layer.getChildFrame('#data-detail', index);
+ var height = detail.height()+60;
+ if (height > ($(window).height()*0.9)) {
+ height = ($(window).height()*0.9);
+ }
+ layer.style(index, {
+// top: (($(window).height()-height)/3)+"px",
+ height: height+'px'
+ });
+}
+
+$('body').keydown(function () {
+ if (event.keyCode === 13) {
+ $("#search").click();
+ }
+});
diff --git a/src/main/webapp/static/js/config/config.js b/src/main/webapp/static/js/config/config.js
new file mode 100644
index 0000000..4043b9c
--- /dev/null
+++ b/src/main/webapp/static/js/config/config.js
@@ -0,0 +1,345 @@
+var pageCurr;
+layui.use(['table','laydate', 'form'], function(){
+ var table = layui.table;
+ var $ = layui.jquery;
+ var layer = layui.layer;
+ var layDate = layui.laydate;
+ var form = layui.form;
+
+ // 鏁版嵁娓叉煋
+ tableIns = table.render({
+ elem: '#config',
+ headers: {token: localStorage.getItem('token')},
+ url: baseUrl+'/config/list/auth',
+ page: true,
+ limit: 16,
+ limits: [16, 30, 50, 100, 200, 500],
+ toolbar: '#toolbar',
+ cellMinWidth: 50,
+ cols: [[
+ {type: 'checkbox', fixed: 'left'}
+ ,{field: 'id', title: 'ID', sort: true,align: 'center', fixed: 'left', width: 80}
+ ,{field: 'name', align: 'center',title: '鍚嶇О'}
+ ,{field: 'code', align: 'center',title: '缂栫爜'}
+ ,{field: 'value', align: 'center',title: '瀵瑰簲鍊�'}
+ ,{field: 'type$', align: 'center',title: '绫诲瀷'}
+ ,{field: 'status$', align: 'center',title: '鐘舵��'}
+
+ ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:150}
+ ]],
+ request: {
+ pageName: 'curr',
+ pageSize: 'limit'
+ },
+ parseData: function (res) {
+ return {
+ 'code': res.code,
+ 'msg': res.msg,
+ 'count': res.data.total,
+ 'data': res.data.records
+ }
+ },
+ response: {
+ statusCode: 200
+ },
+ done: function(res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ limit();
+ }
+ });
+
+ // 鐩戝惉鎺掑簭浜嬩欢
+ table.on('sort(config)', function (obj) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ searchData['orderByField'] = obj.field;
+ searchData['orderByType'] = obj.type;
+ tableIns.reload({
+ where: searchData,
+ page: {
+ curr: 1
+ },
+ done: function (res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ limit();
+ }
+ });
+ });
+
+ // 鐩戝惉澶村伐鍏锋爮浜嬩欢
+ table.on('toolbar(config)', function (obj) {
+ var checkStatus = table.checkStatus(obj.config.id);
+ switch(obj.event) {
+ case 'addData':
+ layer.open({
+ type: 2,
+ title: '鏂板',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: 'config_detail.html',
+ success: function(layero, index){
+ clearFormVal(layer.getChildFrame('#detail', index));
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ }
+ });
+ break;
+ case 'refreshData':
+ tableIns.reload({
+ page: {
+ curr: pageCurr
+ }
+ });
+ limit();
+ break;
+ case 'deleteData':
+ var data = checkStatus.data;
+ var ids=[];
+ data.map(function (track) {
+ ids.push(track.id);
+ });
+ if (ids.length === 0){
+ layer.msg('璇烽�夋嫨鏁版嵁');
+ } else {
+ layer.confirm('纭畾鍒犻櫎'+(ids.length===1?'姝�':ids.length)+'鏉℃暟鎹悧', function(){
+ $.ajax({
+ url: baseUrl+"/config/delete/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: {ids: ids},
+ method: 'POST',
+ traditional:true,
+ success: function (res) {
+ if (res.code === 200){
+ layer.closeAll();
+ tableReload(false);
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+ });
+ }
+ break;
+ case 'exportData':
+ layer.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function(){
+ var titles=[];
+ var fields=[];
+ obj.config.cols[0].map(function (col) {
+ if (col.type === 'normal' && col.hide === false && col.toolbar == null) {
+ titles.push(col.title);
+ fields.push(col.field);
+ }
+ });
+ var exportData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ exportData[this.name] = this.value;
+ });
+ var param = {
+ 'config': exportData,
+ 'fields': fields
+ };
+ $.ajax({
+ url: baseUrl+"/config/export/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: JSON.stringify(param),
+ dataType:'json',
+ contentType:'application/json;charset=UTF-8',
+ method: 'POST',
+ success: function (res) {
+ layer.closeAll();
+ if (res.code === 200) {
+ table.exportFile(titles,res.data,'xls');
+ } else if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg)
+ }
+ }
+ });
+ });
+ break;
+ }
+ });
+
+ // 鐩戝惉琛屽伐鍏蜂簨浠�
+ table.on('tool(config)', function(obj){
+ var data = obj.data;
+ switch (obj.event) {
+ // 璇︽儏
+ case 'detail':
+ layer.open({
+ type: 2,
+ title: '璇︽儏',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: 'config_detail.html',
+ success: function(layero, index){
+ setFormVal(layer.getChildFrame('#detail', index), data, true);
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
+ layer.getChildFrame('#data-detail-submit,#prompt', index).hide();
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ }
+ });
+ break;
+ // 缂栬緫
+ case 'edit':
+ layer.open({
+ type: 2,
+ title: '淇敼',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: 'config_detail.html',
+ success: function(layero, index){
+ setFormVal(layer.getChildFrame('#detail', index), data, false);
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), false);
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ }
+ });
+ break;
+
+ }
+ });
+
+ // 鏁版嵁淇敼鍔ㄤ綔
+ form.on('submit(edit)', function () {
+ var index = layer.load(1, {
+ shade: [0.5,'#000'] //0.1閫忔槑搴︾殑鑳屾櫙
+ });
+ var data = {
+ id: $('#id').val(),
+ name: $('#name').val(),
+ code: $('#code').val(),
+ value: $('#value').val(),
+ type: $('#type').val(),
+ status: $('#status').val(),
+
+ };
+ $.ajax({
+ url: baseUrl+"/config/edit/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: top.reObject(data),
+ method: 'POST',
+ success: function (res) {
+ if (res.code === 200){
+ parent.layer.closeAll();
+ tableReload(true);
+ $("#data-detail :input").each(function () {
+ $(this).val("");
+ });
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg)
+ }
+ layer.close(index);
+ }
+ })
+ });
+
+ // 鎼滅储鏍忔悳绱簨浠�
+ form.on('submit(search)', function (data) {
+ pageCurr = 1;
+ tableReload(false);
+ });
+
+ // 鎼滅储鏍忛噸缃簨浠�
+ form.on('submit(reset)', function (data) {
+ pageCurr = 1;
+ clearFormVal($('#search-box'));
+ tableReload(false);
+ });
+
+ // 鏃堕棿閫夋嫨鍣�
+
+});
+
+// 鍏抽棴鍔ㄤ綔
+$(document).on('click','#data-detail-close', function () {
+ parent.layer.closeAll();
+});
+
+function tableReload(child) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ (child ? parent.tableIns : tableIns).reload({
+ where: searchData,
+ page: {
+ curr: pageCurr
+ },
+ done: function (res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ if (res.data.length === 0 && count !== 0) {
+ tableIns.reload({
+ where: searchData,
+ page: {
+ curr: pageCurr-1
+ }
+ });
+ pageCurr -= 1;
+ }
+ limit(child);
+ }
+ });
+}
+
+function setFormVal(el, data, showImg) {
+ for (var val in data) {
+ var find = el.find(":input[id='" + val + "']");
+ find.val(data[val]);
+ if (showImg){
+ var next = find.next();
+ if (next.get(0)){
+ if (next.get(0).localName === "img") {
+ find.hide();
+ next.attr("src", data[val]);
+ next.show();
+ }
+ }
+ }
+ }
+}
+
+function clearFormVal(el) {
+ $(':input', el)
+ .val('')
+ .removeAttr('checked')
+ .removeAttr('selected');
+}
+
+function detailScreen(index) {
+ var detail = layer.getChildFrame('#data-detail', index);
+ var height = detail.height()+60;
+ if (height > ($(window).height()*0.9)) {
+ height = ($(window).height()*0.9);
+ }
+ layer.style(index, {
+ top: (($(window).height()-height)/3)+"px",
+ height: height+'px'
+ });
+ $(".layui-layer-shade").remove();
+}
+
+$('body').keydown(function () {
+ if (event.keyCode === 13) {
+ $("#search").click();
+ }
+});
diff --git a/src/main/webapp/static/js/locMast/locMast.js b/src/main/webapp/static/js/locMast/locMast.js
new file mode 100644
index 0000000..7ee7a4e
--- /dev/null
+++ b/src/main/webapp/static/js/locMast/locMast.js
@@ -0,0 +1,590 @@
+var pageCurr;
+layui.use(['table','laydate', 'form'], function(){
+ var table = layui.table;
+ var $ = layui.jquery;
+ var layer = layui.layer;
+ var layDate = layui.laydate;
+ var form = layui.form;
+
+ // 鏁版嵁娓叉煋
+ tableIns = table.render({
+ elem: '#locMast',
+ headers: {token: localStorage.getItem('token')},
+ url: baseUrl+'/locMast/list/auth',
+ page: true,
+ limit: 16,
+ limits: [16, 30, 50, 100, 200, 500],
+ even: true,
+ toolbar: '#toolbar',
+ cellMinWidth: 50,
+ cols: [[
+ {type: 'checkbox', fixed: 'left'}
+ ,{field: 'locNo', align: 'center',title: '搴撲綅鍙�',sort:true}
+ ,{field: 'locSts$', align: 'center',title: '搴撲綅鐘舵��',width:200}
+ ,{field: 'qrCodeValue', align: 'center',title: '浜岀淮鐮佸��', sort:true}
+ ,{field: 'row1', align: 'center',title: '鎺�', sort:true}
+ ,{field: 'bay1', align: 'center',title: '鍒�', sort:true}
+ ,{field: 'lev1', align: 'center',title: '灞�', sort:true}
+ ,{field: 'modiUser$', align: 'center',title: '淇敼浜哄憳', hide:true}
+ ,{field: 'modiTime$', align: 'center',title: '淇敼鏃堕棿', hide:true}
+
+ ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:100}
+ ]],
+ request: {
+ pageName: 'curr',
+ pageSize: 'limit'
+ },
+ parseData: function (res) {
+ return {
+ 'code': res.code,
+ 'msg': res.msg,
+ 'count': res.data.total,
+ 'data': res.data.records
+ }
+ },
+ response: {
+ statusCode: 200
+ },
+ done: function(res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ limit();
+ form.on('checkbox(tableCheckbox)', function (data) {
+ var _index = $(data.elem).attr('table-index')||0;
+ if(data.elem.checked){
+ res.data[_index][data.value] = 'Y';
+ }else{
+ res.data[_index][data.value] = 'N';
+ }
+ });
+ }
+ });
+
+ // 鐩戝惉鎺掑簭浜嬩欢
+ table.on('sort(locMast)', function (obj) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ searchData['orderByField'] = obj.field;
+ searchData['orderByType'] = obj.type;
+ tableIns.reload({
+ where: searchData,
+ page: {
+ curr: 1
+ },
+ done: function (res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ limit();
+ }
+ });
+ });
+
+ // 鐩戝惉澶村伐鍏锋爮浜嬩欢
+ table.on('toolbar(locMast)', function (obj) {
+ var checkStatus = table.checkStatus(obj.config.id);
+ switch(obj.event) {
+ case 'addData':
+ layer.open({
+ type: 2,
+ title: '鏂板',
+ maxmin: true,
+ area: ['500px', top.detailHeight],
+ shadeClose: false,
+ content: 'locMast_detail.html',
+ success: function(layero, index){
+ layer.getChildFrame('#data-detail-submit-edit', index).hide();
+ clearFormVal(layer.getChildFrame('#detail', index));
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), false);
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ }
+ });
+ break;
+ case 'refreshData':
+ tableIns.reload({
+ page: {
+ curr: pageCurr
+ }
+ });
+ limit();
+ break;
+ case 'deleteData':
+ var data = checkStatus.data;
+ if (data.length === 0){
+ layer.msg('璇烽�夋嫨鏁版嵁');
+ } else {
+ layer.confirm('纭畾鍒犻櫎'+(data.length===1?'姝�':data.length)+'鏉℃暟鎹悧', function(){
+ $.ajax({
+ url: baseUrl+"/locMast/delete/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: {param: JSON.stringify(data)},
+ method: 'POST',
+ traditional:true,
+ success: function (res) {
+ if (res.code === 200){
+ layer.closeAll();
+ tableReload(false);
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+ });
+ }
+ break;
+ case 'exportData':
+ layer.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function(){
+ var titles=[];
+ var fields=[];
+ obj.config.cols[0].map(function (col) {
+ if (col.type === 'normal' && col.hide === false && col.toolbar == null) {
+ titles.push(col.title);
+ fields.push(col.field);
+ }
+ });
+ var exportData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ exportData[this.name] = this.value;
+ });
+ var param = {
+ 'locMast': exportData,
+ 'fields': fields
+ };
+ $.ajax({
+ url: baseUrl+"/locMast/export/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: JSON.stringify(param),
+ dataType:'json',
+ contentType:'application/json;charset=UTF-8',
+ method: 'POST',
+ success: function (res) {
+ layer.closeAll();
+ if (res.code === 200) {
+ table.exportFile(titles,res.data,'xls');
+ } else if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg)
+ }
+ }
+ });
+ });
+ break;
+ case "init":
+ layer.prompt({title: '璇疯緭鍏ュ彛浠わ紝骞堕噸缃簱浣�', formType: 1, shadeClose: true}, function(pass, idx){
+ http.get(baseUrl+"/locMast/init/pwd", {pwd: pass}, function (res) {
+ if (res.data) {
+ layer.open({
+ type: 1,
+ title: '鍒濆鍖栧簱浣�',
+ area: ["400px"],
+ maxmin: true,
+ shadeClose: true,
+ content: $("#resetLocDiv"),
+ success: function (layero, index) {
+
+ }
+ })
+ } else {
+ layer.msg("鍙d护閿欒");
+ }
+ layer.close(idx);
+ })
+ });
+ break;
+ }
+ });
+
+ // 鐩戝惉琛屽伐鍏蜂簨浠�
+ table.on('tool(locMast)', function(obj){
+ var data = obj.data;
+ switch (obj.event) {
+ // 璇︽儏
+ case 'detail':
+ layer.open({
+ type: 2,
+ title: '璇︽儏',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: 'locMast_detail.html',
+ success: function(layero, index){
+ setFormVal(layer.getChildFrame('#detail', index), data, true);
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
+ layer.getChildFrame('#data-detail-submit-save,#prompt', index).hide();
+ layer.getChildFrame('#data-detail-submit-edit', index).hide();
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ layero.find('iframe')[0].contentWindow.layui.form.render('checkbox');
+ }
+ });
+ break;
+ // 缂栬緫
+ case 'edit':
+ layer.open({
+ type: 2,
+ title: '淇敼',
+ maxmin: true,
+ area: ['500px', top.detailHeight],
+ shadeClose: false,
+ content: 'locMast_detail.html',
+ success: function(layero, index){
+ layer.getChildFrame('#data-detail-submit-save', index).hide();
+ setFormVal(layer.getChildFrame('#detail', index), data, false);
+ // top.convertDisabled(layer.getChildFrame('#data-detail :input', index), false);
+ top.convertDisabled(layer.getChildFrame('#locNo', index), true);
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ layero.find('iframe')[0].contentWindow.layui.form.render('checkbox');
+ }
+ });
+ break;
+ case 'whsType':
+ var param = top.reObject(data).whsType;
+ if (param === undefined) {
+ layer.msg("鏃犳暟鎹�");
+ } else {
+ layer.open({
+ type: 2,
+ title: '搴撲綅璇︽儏',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: '../basWhs/basWhs_detail.html',
+ success: function(layero, index){
+ $.ajax({
+ url: baseUrl+"/basWhs/"+ param +"/auth",
+ headers: {'token': localStorage.getItem('token')},
+ method: 'GET',
+ success: function (res) {
+ if (res.code === 200){
+ setFormVal(layer.getChildFrame('#detail', index), res.data, true);
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
+ layer.getChildFrame('#data-detail-submit-save,#data-detail-submit-edit,#prompt', index).hide();
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ layero.find('iframe')[0].contentWindow.layui.form.render('checkbox');
+ } else if (res.code === 403){
+ parent.location.href = "/";
+ }else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+ }
+ });
+ }
+ break;
+ case 'modiUser':
+ var param = top.reObject(data).modiUser;
+ if (param === undefined) {
+ layer.msg("鏃犳暟鎹�");
+ } else {
+ layer.open({
+ type: 2,
+ title: '淇敼璇︽儏',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: '../user/user_detail.html',
+ success: function(layero, index){
+ $.ajax({
+ url: baseUrl+"/user/"+ param +"/auth",
+ headers: {'token': localStorage.getItem('token')},
+ method: 'GET',
+ success: function (res) {
+ if (res.code === 200){
+ setFormVal(layer.getChildFrame('#detail', index), res.data, true);
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
+ layer.getChildFrame('#password,#createTime\\$,#status', index).parent().parent().hide();
+ layer.getChildFrame('#data-detail-submit,#prompt', index).hide();
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ layero.find('iframe')[0].contentWindow.layui.form.render('checkbox');
+ } else if (res.code === 403){
+ parent.location.href = "/";
+ }else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+ }
+ });
+ }
+ break;
+ case 'appeUser':
+ var param = top.reObject(data).appeUser;
+ if (param === undefined) {
+ layer.msg("鏃犳暟鎹�");
+ } else {
+ layer.open({
+ type: 2,
+ title: '鍒涜鎯�',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: '../user/user_detail.html',
+ success: function(layero, index){
+ $.ajax({
+ url: baseUrl+"/user/"+ param +"/auth",
+ headers: {'token': localStorage.getItem('token')},
+ method: 'GET',
+ success: function (res) {
+ if (res.code === 200){
+ setFormVal(layer.getChildFrame('#detail', index), res.data, true);
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
+ layer.getChildFrame('#data-detail-submit', index).hide();
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ layero.find('iframe')[0].contentWindow.layui.form.render('checkbox');
+ } else if (res.code === 403){
+ parent.location.href = "/";
+ }else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+ }
+ });
+ }
+ break;
+
+ }
+ });
+
+ // 鍒濆鍖栦繚瀛�
+ form.on('submit(initDo)', function (data) {
+ $.ajax({
+ url: baseUrl+"/locMast/init/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: data.field,
+ method: 'POST',
+ async: false,
+ success: function (res) {
+ if (res.code === 200){
+ layer.msg(res.msg);
+ layer.closeAll();
+ tableReload(false);
+ } else if (res.code === 403){
+ parent.location.href = "/";
+ }else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+ });
+
+ // 鏁版嵁淇濆瓨鍔ㄤ綔
+ form.on('submit(save)', function () {
+ if (banMsg != null){
+ layer.msg(banMsg);
+ return;
+ }
+ method("add");
+ });
+
+ // 鏁版嵁淇敼鍔ㄤ綔
+ form.on('submit(edit)', function () {
+ method("update")
+ });
+
+ function method(name){
+ var index = layer.load(1, {
+ shade: [0.5,'#000'] //0.1閫忔槑搴︾殑鑳屾櫙
+ });
+ var data = {
+// id: $('#id').val(),
+ locNo: $('#locNo').val(),
+ whsType: $('#whsType').val(),
+ pltType: $('#pltType').val(),
+ ctnType: $('#ctnType').val(),
+ locSts: $('#locSts').val(),
+ sheetNo: $('#sheetNo').val(),
+ crnNo: $('#crnNo').val(),
+ row1: $('#row1').val(),
+ bay1: $('#bay1').val(),
+ lev1: $('#lev1').val(),
+ fullPlt: $('#fullPlt').val(),
+ locType1: $('#locType1').val(),
+ outEnable: $('#outEnable').val(),
+ ioTime: top.strToDate($('#ioTime\\$').val()),
+ firstTime: top.strToDate($('#firstTime\\$').val()),
+ modiUser: $('#modiUser').val(),
+ modiTime: top.strToDate($('#modiTime\\$').val()),
+ appeUser: $('#appeUser').val(),
+ appeTime: top.strToDate($('#appeTime\\$').val()),
+ errorTime: top.strToDate($('#errorTime\\$').val()),
+ errorMemo: $('#errorMemo').val(),
+ ctnKind: $('#ctnKind').val(),
+ scWeight: $('#scWeight').val(),
+ invWh: $('#invWh').val(),
+ mk: $('#mk').val(),
+ barcode: $('#barcode').val(),
+ PdcType: $('#PdcType').val(),
+ ctnNo: $('#ctnNo').val(),
+
+ };
+ $.ajax({
+ url: baseUrl+"/locMast/"+name+"/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: top.reObject(data),
+ method: 'POST',
+ success: function (res) {
+ if (res.code === 200){
+ parent.layer.closeAll();
+ parent.$(".layui-laypage-btn")[0].click();
+ $("#data-detail :input").each(function () {
+ $(this).val("");
+ });
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg)
+ }
+ layer.close(index);
+ }
+ })
+ }
+
+ // 澶嶉�夋浜嬩欢
+ form.on('checkbox(detailCheckbox)', function (data) {
+ var el = data.elem;
+ if (el.checked) {
+ $(el).val('Y');
+ } else {
+ $(el).val('N');
+ }
+ });
+
+ // 鎼滅储鏍忔悳绱簨浠�
+ form.on('submit(search)', function (data) {
+ pageCurr = 1;
+ tableReload(false);
+ });
+
+ // 鎼滅储鏍忛噸缃簨浠�
+ form.on('submit(reset)', function (data) {
+ pageCurr = 1;
+ clearFormVal($('#search-box'));
+ tableReload(false);
+ });
+
+ // 鏃堕棿閫夋嫨鍣�
+ layDate.render({
+ elem: '#ioTime\\$',
+ type: 'datetime'
+ });
+ layDate.render({
+ elem: '#firstTime\\$',
+ type: 'datetime'
+ });
+ layDate.render({
+ elem: '#modiTime\\$',
+ type: 'datetime'
+ });
+ layDate.render({
+ elem: '#appeTime\\$',
+ type: 'datetime'
+ });
+ layDate.render({
+ elem: '#errorTime\\$',
+ type: 'datetime'
+ });
+
+
+});
+
+// 鍏抽棴鍔ㄤ綔
+$(document).on('click','#data-detail-close', function () {
+ parent.layer.closeAll();
+});
+
+function tableReload(child) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ (child ? parent.tableIns : tableIns).reload({
+ where: searchData,
+ page: {
+ curr: pageCurr
+ },
+ done: function (res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ if (res.data.length === 0 && count !== 0) {
+ tableIns.reload({
+ where: searchData,
+ page: {
+ curr: pageCurr-1
+ }
+ });
+ pageCurr -= 1;
+ }
+ limit(child);
+ }
+ });
+}
+
+function setFormVal(el, data, showImg) {
+ for (var val in data) {
+ var find = el.find(":input[id='" + val + "']");
+ if (find[0]!=null){
+ if (find[0].type === 'checkbox'){
+ if (data[val]==='Y'){
+ find.attr("checked","checked");
+ find.val('Y');
+ } else {
+ find.remove("checked");
+ find.val('N');
+ }
+ continue;
+ }
+ }
+ find.val(data[val]);
+ if (showImg){
+ var next = find.next();
+ if (next.get(0)){
+ if (next.get(0).localName === "img") {
+ find.hide();
+ next.attr("src", data[val]);
+ next.show();
+ }
+ }
+ }
+ }
+}
+
+function clearFormVal(el) {
+ $(':input', el)
+ .val('')
+ .removeAttr('checked')
+ .removeAttr('selected');
+}
+
+function detailScreen(index) {
+ var detail = layer.getChildFrame('#data-detail', index);
+ var height = detail.height()+60;
+ if (height > ($(window).height()*0.9)) {
+ height = ($(window).height()*0.8);
+ }
+ layer.style(index, {
+// top: (($(window).height()-height)/3)+"px",
+ height: height+'px'
+ });
+}
+
+$('body').keydown(function () {
+ if (event.keyCode === 13) {
+ $("#search").click();
+ }
+});
diff --git a/src/main/webapp/static/js/operateLog/operateLog.js b/src/main/webapp/static/js/operateLog/operateLog.js
new file mode 100644
index 0000000..d8c9acf
--- /dev/null
+++ b/src/main/webapp/static/js/operateLog/operateLog.js
@@ -0,0 +1,396 @@
+var pageCurr;
+layui.use(['table','laydate', 'form'], function(){
+ var table = layui.table;
+ var $ = layui.jquery;
+ var layer = layui.layer;
+ var layDate = layui.laydate;
+ var form = layui.form;
+
+ // 鏁版嵁娓叉煋
+ tableIns = table.render({
+ elem: '#operateLog',
+ headers: {token: localStorage.getItem('token')},
+ url: baseUrl+'/operateLog/list/auth',
+ page: true,
+ limit: 16,
+ limits: [16, 30, 50, 100, 200, 500],
+ even: true,
+ toolbar: '#toolbar',
+ cellMinWidth: 50,
+ cols: [[
+ // {type: 'checkbox'}
+ {field: 'id', title: 'ID', sort: true,align: 'center', width: 80}
+ ,{field: 'userId$', align: 'center',title: '鐢ㄦ埛'}
+ ,{field: 'action', align: 'center',title: '鎿嶄綔鍐呭'}
+ ,{field: 'ip', align: 'center',title: '瀹㈡埛绔疘P'}
+ ,{field: 'request', align: 'center',title: '璇锋眰鏁版嵁'}
+ ,{field: 'response', align: 'center',title: '鍝嶅簲鏁版嵁'}
+ ,{field: 'createTime$', align: 'center',title: '娣诲姞鏃堕棿'}
+
+ // ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:100}
+ ]],
+ request: {
+ pageName: 'curr',
+ pageSize: 'limit'
+ },
+ parseData: function (res) {
+ return {
+ 'code': res.code,
+ 'msg': res.msg,
+ 'count': res.data.total,
+ 'data': res.data.records
+ }
+ },
+ response: {
+ statusCode: 200
+ },
+ done: function(res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ limit();
+ }
+ });
+
+ table.on('edit(operateLog)', function (obj) {
+ $('body').keydown(function () {
+ if (event.keyCode === 13) {
+ layer.confirm('淇濆瓨淇敼?', function(){
+
+ });
+ }
+ });
+ });
+
+ // 鐩戝惉鎺掑簭浜嬩欢
+ table.on('sort(operateLog)', function (obj) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ searchData['orderByField'] = obj.field;
+ searchData['orderByType'] = obj.type;
+ tableIns.reload({
+ where: searchData,
+ page: {
+ curr: 1
+ },
+ done: function (res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ limit();
+ }
+ });
+ });
+
+ // 鐩戝惉澶村伐鍏锋爮浜嬩欢
+ table.on('toolbar(operateLog)', function (obj) {
+ var checkStatus = table.checkStatus(obj.config.id);
+ switch(obj.event) {
+ case 'addData':
+ layer.open({
+ type: 2,
+ title: '鏂板',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: 'operateLog_detail.html',
+ success: function(layero, index){
+ clearFormVal(layer.getChildFrame('#detail', index));
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ }
+ });
+ break;
+ case 'refreshData':
+ tableIns.reload({
+ page: {
+ curr: pageCurr
+ }
+ });
+ limit();
+ break;
+ case 'deleteData':
+ var data = checkStatus.data;
+ var ids=[];
+ data.map(function (track) {
+ ids.push(track.id);
+ });
+ if (ids.length === 0){
+ layer.msg('璇烽�夋嫨鏁版嵁');
+ } else {
+ layer.confirm('纭畾鍒犻櫎'+(ids.length===1?'姝�':ids.length)+'鏉℃暟鎹悧', function(){
+ $.ajax({
+ url: baseUrl+"/operateLog/delete/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: {ids: ids},
+ method: 'POST',
+ traditional:true,
+ success: function (res) {
+ if (res.code === 200){
+ layer.closeAll();
+ tableReload(false);
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+ });
+ }
+ break;
+ case 'exportData':
+ layer.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function(){
+ var titles=[];
+ var fields=[];
+ obj.config.cols[0].map(function (col) {
+ if (col.type === 'normal' && col.hide === false && col.toolbar == null) {
+ titles.push(col.title);
+ fields.push(col.field);
+ }
+ });
+ var exportData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ exportData[this.name] = this.value;
+ });
+ var param = {
+ 'operateLog': exportData,
+ 'fields': fields
+ };
+ $.ajax({
+ url: baseUrl+"/operateLog/export/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: JSON.stringify(param),
+ dataType:'json',
+ contentType:'application/json;charset=UTF-8',
+ method: 'POST',
+ success: function (res) {
+ layer.closeAll();
+ if (res.code === 200) {
+ table.exportFile(titles,res.data,'xls');
+ } else if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg)
+ }
+ }
+ });
+ });
+ break;
+ }
+ });
+
+ // 鐩戝惉琛屽伐鍏蜂簨浠�
+ table.on('tool(operateLog)', function(obj){
+ var data = obj.data;
+ switch (obj.event) {
+ // 璇︽儏
+ case 'detail':
+ layer.open({
+ type: 2,
+ title: '璇︽儏',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: 'operateLog_detail.html',
+ success: function(layero, index){
+ setFormVal(layer.getChildFrame('#detail', index), data, true);
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
+ layer.getChildFrame('#data-detail-submit,#prompt', index).hide();
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ }
+ });
+ break;
+ // 缂栬緫
+ case 'edit':
+ layer.open({
+ type: 2,
+ title: '淇敼',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: 'operateLog_detail.html',
+ success: function(layero, index){
+ setFormVal(layer.getChildFrame('#detail', index), data, false);
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), false);
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ }
+ });
+ break;
+ case 'userId':
+ var param = top.reObject(data).userId;
+ if (param === undefined) {
+ layer.msg("鏃犳暟鎹�");
+ } else {
+ layer.open({
+ type: 2,
+ title: '璇︽儏',
+ maxmin: true,
+ area: [top.detailHeight, top.detailWidth],
+ shadeClose: false,
+ content: '../user/user_detail.html',
+ success: function(layero, index){
+ $.ajax({
+ url: baseUrl+"/user/"+ param +"/auth",
+ headers: {'token': localStorage.getItem('token')},
+ method: 'GET',
+ success: function (res) {
+ if (res.code === 200){
+ setFormVal(layer.getChildFrame('#detail', index), res.data, true);
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
+ layer.getChildFrame('#data-detail-submit,#prompt', index).hide();
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ } else if (res.code === 403){
+ parent.location.href = "/";
+ }else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+ }
+ });
+ }
+ break;
+
+ }
+ });
+
+ // 鏁版嵁淇敼鍔ㄤ綔
+ form.on('submit(edit)', function () {
+ var index = layer.load(1, {
+ shade: [0.5,'#000'] //0.1閫忔槑搴︾殑鑳屾櫙
+ });
+ var data = {
+ id: $('#id').val(),
+ action: $('#action').val(),
+ userId: $('#userId').val(),
+ ip: $('#ip').val(),
+ request: $('#request').val(),
+ response: $('#response').val(),
+ createTime: top.strToDate($('#createTime\\$').val()),
+
+ };
+ $.ajax({
+ url: baseUrl+"/operateLog/edit/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: top.reObject(data),
+ method: 'POST',
+ success: function (res) {
+ if (res.code === 200){
+ parent.layer.closeAll();
+ tableReload(true);
+ $("#data-detail :input").each(function () {
+ $(this).val("");
+ });
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg)
+ }
+ layer.close(index);
+ }
+ })
+ });
+
+ // 鎼滅储鏍忔悳绱簨浠�
+ form.on('submit(search)', function (data) {
+ pageCurr = 1;
+ tableReload(false);
+ });
+
+ // 鎼滅储鏍忛噸缃簨浠�
+ form.on('submit(reset)', function (data) {
+ pageCurr = 1;
+ clearFormVal($('#search-box'));
+ tableReload(false);
+ });
+
+ // 鏃堕棿閫夋嫨鍣�
+ layDate.render({
+ elem: '#createTime\\$',
+ type: 'datetime'
+ });
+ layDate.render({
+ elem: '.layui-laydate-range'
+ ,type: 'datetime'
+ ,range: true
+ });
+});
+
+// 鍏抽棴鍔ㄤ綔
+$(document).on('click','#data-detail-close', function () {
+ parent.layer.closeAll();
+});
+
+function tableReload(child) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ (child ? parent.tableIns : tableIns).reload({
+ where: searchData,
+ page: {
+ curr: pageCurr
+ },
+ done: function (res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ if (res.data.length === 0 && count !== 0) {
+ tableIns.reload({
+ where: searchData,
+ page: {
+ curr: pageCurr-1
+ }
+ });
+ pageCurr -= 1;
+ }
+ limit(child);
+ }
+ });
+}
+
+function setFormVal(el, data, showImg) {
+ for (var val in data) {
+ var find = el.find(":input[id='" + val + "']");
+ find.val(data[val]);
+ if (showImg){
+ var next = find.next();
+ if (next.get(0)){
+ if (next.get(0).localName === "img") {
+ find.hide();
+ next.attr("src", data[val]);
+ next.show();
+ }
+ }
+ }
+ }
+}
+
+function clearFormVal(el) {
+ $(':input', el)
+ .val('')
+ .removeAttr('checked')
+ .removeAttr('selected');
+}
+
+function detailScreen(index) {
+ var detail = layer.getChildFrame('#data-detail', index);
+ var height = detail.height()+60;
+ if (height > ($(window).height()*0.9)) {
+ height = ($(window).height()*0.9);
+ }
+ layer.style(index, {
+ top: (($(window).height()-height)/3)+"px",
+ height: height+'px'
+ });
+ $(".layui-layer-shade").remove();
+}
+
diff --git a/src/main/webapp/static/js/permission/permission.js b/src/main/webapp/static/js/permission/permission.js
new file mode 100644
index 0000000..ca06b66
--- /dev/null
+++ b/src/main/webapp/static/js/permission/permission.js
@@ -0,0 +1,378 @@
+var pageCurr;
+layui.use(['table','laydate', 'form'], function(){
+ var table = layui.table;
+ var $ = layui.jquery;
+ var layer = layui.layer;
+ var layDate = layui.laydate;
+ var form = layui.form;
+
+ // 鏁版嵁娓叉煋
+ tableIns = table.render({
+ elem: '#permission',
+ headers: {token: localStorage.getItem('token')},
+ url: baseUrl+'/permission/list/auth',
+ page: true,
+ limit: 16,
+ limits: [16, 30, 50, 100, 200, 500],
+ toolbar: '#toolbar',
+ cellMinWidth: 50,
+ cols: [[
+ {type: 'checkbox', fixed: 'left'}
+ ,{field: 'id', title: 'ID', sort: true,align: 'center', fixed: 'left', width: 80}
+ ,{field: 'name', align: 'center',title: '鏉冮檺鍚嶇О'}
+ ,{field: 'action', align: 'center',title: '鎺ュ彛鍦板潃'}
+ ,{field: 'resourceName', align: 'center',title: '鎵�灞炶彍鍗�',event: 'Resource', style: 'text-decoration: underline;cursor:pointer'}
+ ,{field: 'status$', align: 'center',title: '鐘舵��'}
+
+ ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:150}
+ ]],
+ request: {
+ pageName: 'curr',
+ pageSize: 'limit'
+ },
+ parseData: function (res) {
+ return {
+ 'code': res.code,
+ 'msg': res.msg,
+ 'count': res.data.total,
+ 'data': res.data.records
+ }
+ },
+ response: {
+ statusCode: 200
+ },
+ done: function(res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ limit();
+ }
+ });
+
+ // 鐩戝惉鎺掑簭浜嬩欢
+ table.on('sort(permission)', function (obj) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ searchData['orderByField'] = obj.field;
+ searchData['orderByType'] = obj.type;
+ tableIns.reload({
+ where: searchData,
+ page: {
+ curr: 1
+ },
+ done: function (res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ limit();
+ }
+ });
+ });
+
+ // 鐩戝惉澶村伐鍏锋爮浜嬩欢
+ table.on('toolbar(permission)', function (obj) {
+ var checkStatus = table.checkStatus(obj.config.id);
+ switch(obj.event) {
+ case 'addData':
+ layer.open({
+ type: 2,
+ title: '鏂板',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: 'permission_detail.html',
+ success: function(layero, index){
+ clearFormVal(layer.getChildFrame('#detail', index));
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ }
+ });
+ break;
+ case 'refreshData':
+ tableIns.reload({
+ page: {
+ curr: pageCurr
+ }
+ });
+ limit();
+ break;
+ case 'deleteData':
+ var data = checkStatus.data;
+ var ids=[];
+ data.map(function (track) {
+ ids.push(track.id);
+ });
+ if (ids.length === 0){
+ layer.msg('璇烽�夋嫨鏁版嵁');
+ } else {
+ layer.confirm('纭畾鍒犻櫎'+(ids.length===1?'姝�':ids.length)+'鏉℃暟鎹悧', function(){
+ $.ajax({
+ url: baseUrl+"/permission/delete/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: {ids: ids},
+ method: 'POST',
+ traditional:true,
+ success: function (res) {
+ if (res.code === 200){
+ layer.closeAll();
+ tableReload(false);
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+ });
+ }
+ break;
+ case 'exportData':
+ layer.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function(){
+ var titles=[];
+ var fields=[];
+ obj.config.cols[0].map(function (col) {
+ if (col.type === 'normal' && col.hide === false && col.toolbar == null) {
+ titles.push(col.title);
+ fields.push(col.field);
+ }
+ });
+ var exportData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ exportData[this.name] = this.value;
+ });
+ var param = {
+ 'permission': exportData,
+ 'fields': fields
+ };
+ $.ajax({
+ url: baseUrl+"/permission/export/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: JSON.stringify(param),
+ dataType:'json',
+ contentType:'application/json;charset=UTF-8',
+ method: 'POST',
+ success: function (res) {
+ layer.closeAll();
+ if (res.code === 200) {
+ table.exportFile(titles,res.data,'xls');
+ } else if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg)
+ }
+ }
+ });
+ });
+ break;
+ }
+ });
+
+ // 鐩戝惉琛屽伐鍏蜂簨浠�
+ table.on('tool(permission)', function(obj){
+ var data = obj.data;
+ switch (obj.event) {
+ // 璇︽儏
+ case 'detail':
+ layer.open({
+ type: 2,
+ title: '璇︽儏',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: 'permission_detail.html',
+ success: function(layero, index){
+ setFormVal(layer.getChildFrame('#detail', index), data, true);
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
+ layer.getChildFrame('#data-detail-submit', index).hide();
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ }
+ });
+ break;
+ // 缂栬緫
+ case 'edit':
+ layer.open({
+ type: 2,
+ title: '淇敼',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: 'permission_detail.html',
+ success: function(layero, index){
+ setFormVal(layer.getChildFrame('#detail', index), data, false);
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), false);
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ }
+ });
+ break;
+ case 'Resource':
+ var param = top.reObject(data).resourceId;
+ if (param === undefined) {
+ layer.msg("鏃犳暟鎹�");
+ } else {
+ layer.open({
+ type: 2,
+ title: '鎵�灞炶鎯�',
+ maxmin: true,
+ area: [top.detailHeight, top.detailWidth],
+ shadeClose: false,
+ content: '../resource/resource_detail.html',
+ success: function(layero, index){
+ $.ajax({
+ url: baseUrl+"/resource/"+ param +"/auth",
+ headers: {'token': localStorage.getItem('token')},
+ method: 'GET',
+ success: function (res) {
+ if (res.code === 200){
+ setFormVal(layer.getChildFrame('#detail', index), res.data, true);
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
+ layer.getChildFrame('#data-detail-submit', index).hide();
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ } else if (res.code === 403){
+ parent.location.href = "/";
+ }else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+ }
+ });
+ }
+ break;
+
+ }
+ });
+
+ // 鏁版嵁淇敼鍔ㄤ綔
+ form.on('submit(edit)', function () {
+ var index = layer.load(1, {
+ shade: [0.5,'#000'] //0.1閫忔槑搴︾殑鑳屾櫙
+ });
+ var data = {
+ id: $('#id').val(),
+ name: $('#name').val(),
+ action: $('#action').val(),
+ resourceId: $('#resourceId').val(),
+ status: $('#status').val(),
+
+ };
+ $.ajax({
+ url: baseUrl+"/permission/edit/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: top.reObject(data),
+ method: 'POST',
+ success: function (res) {
+ if (res.code === 200){
+ parent.layer.closeAll();
+ tableReload(true);
+ $("#data-detail :input").each(function () {
+ $(this).val("");
+ });
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg)
+ }
+ layer.close(index);
+ }
+ })
+ });
+
+ // 鎼滅储鏍忔悳绱簨浠�
+ form.on('submit(search)', function (data) {
+ pageCurr = 1;
+ tableReload(false);
+ });
+
+ // 鎼滅储鏍忛噸缃簨浠�
+ form.on('submit(reset)', function (data) {
+ pageCurr = 1;
+ clearFormVal($('#search-box'));
+ tableReload(false);
+ });
+
+ // 鏃堕棿閫夋嫨鍣�
+
+});
+
+// 鍏抽棴鍔ㄤ綔
+$(document).on('click','#data-detail-close', function () {
+ parent.layer.closeAll();
+});
+
+function tableReload(child) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ (child ? parent.tableIns : tableIns).reload({
+ where: searchData,
+ page: {
+ curr: pageCurr
+ },
+ done: function (res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ if (res.data.length === 0 && count !== 0) {
+ tableIns.reload({
+ where: searchData,
+ page: {
+ curr: pageCurr-1
+ }
+ });
+ pageCurr -= 1;
+ }
+ limit(child);
+ }
+ });
+}
+
+function setFormVal(el, data, showImg) {
+ for (var val in data) {
+ var find = el.find(":input[id='" + val + "']");
+ find.val(data[val]);
+ if (showImg){
+ var next = find.next();
+ if (next.get(0)){
+ if (next.get(0).localName === "img") {
+ find.hide();
+ next.attr("src", data[val]);
+ next.show();
+ }
+ }
+ }
+ }
+}
+
+function clearFormVal(el) {
+ $(':input', el)
+ .val('')
+ .removeAttr('checked')
+ .removeAttr('selected');
+}
+
+function detailScreen(index) {
+ var detail = layer.getChildFrame('#data-detail', index);
+ var height = detail.height()+60;
+ if (height > ($(window).height()*0.9)) {
+ height = ($(window).height()*0.9);
+ }
+ layer.style(index, {
+ top: (($(window).height()-height)/3)+"px",
+ height: height+'px'
+ });
+ $(".layui-layer-shade").remove();
+}
+
+$('body').keydown(function () {
+ if (event.keyCode === 13) {
+ $("#search").click();
+ }
+});
diff --git a/src/main/webapp/static/js/resource/resource.js b/src/main/webapp/static/js/resource/resource.js
new file mode 100644
index 0000000..5b5610d
--- /dev/null
+++ b/src/main/webapp/static/js/resource/resource.js
@@ -0,0 +1,382 @@
+var pageCurr;
+layui.use(['table','laydate', 'form'], function(){
+ var table = layui.table;
+ var $ = layui.jquery;
+ var layer = layui.layer;
+ var layDate = layui.laydate;
+ var form = layui.form;
+
+ // 鏁版嵁娓叉煋
+ tableIns = table.render({
+ elem: '#resource',
+ headers: {token: localStorage.getItem('token')},
+ url: baseUrl+'/resource/list/auth',
+ page: true,
+ limit: 16,
+ limits: [16, 30, 50, 100, 200, 500],
+ toolbar: '#toolbar',
+ cellMinWidth: 50,
+ cols: [[
+ {type: 'checkbox', fixed: 'left'}
+ ,{field: 'id', title: 'ID', sort: true,align: 'center', fixed: 'left', width: 80}
+ ,{field: 'code', align: 'center',title: '鑿滃崟缂栫爜'}
+ ,{field: 'name', align: 'center',title: '鑿滃崟鍚嶇О'}
+ ,{field: 'resourceName', align: 'center',title: '鐖剁骇鑿滃崟'}
+ ,{field: 'level$', align: 'center',title: '鑿滃崟绛夌骇'}
+ ,{field: 'sort', align: 'center',title: '鎺掑簭'}
+ // ,{field: 'status$', align: 'center',title: '鐘舵��'}
+
+ ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:150}
+ ]],
+ request: {
+ pageName: 'curr',
+ pageSize: 'limit'
+ },
+ parseData: function (res) {
+ return {
+ 'code': res.code,
+ 'msg': res.msg,
+ 'count': res.data.total,
+ 'data': res.data.records
+ }
+ },
+ response: {
+ statusCode: 200
+ },
+ done: function(res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ limit();
+ }
+ });
+
+ // 鐩戝惉鎺掑簭浜嬩欢
+ table.on('sort(resource)', function (obj) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ searchData['orderByField'] = obj.field;
+ searchData['orderByType'] = obj.type;
+ tableIns.reload({
+ where: searchData,
+ page: {
+ curr: 1
+ },
+ done: function (res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ limit();
+ }
+ });
+ });
+
+ // 鐩戝惉澶村伐鍏锋爮浜嬩欢
+ table.on('toolbar(resource)', function (obj) {
+ var checkStatus = table.checkStatus(obj.config.id);
+ switch(obj.event) {
+ case 'addData':
+ layer.open({
+ type: 2,
+ title: '鏂板',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: 'resource_detail.html',
+ success: function(layero, index){
+ clearFormVal(layer.getChildFrame('#detail', index));
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ }
+ });
+ break;
+ case 'refreshData':
+ tableIns.reload({
+ page: {
+ curr: pageCurr
+ }
+ });
+ limit();
+ break;
+ case 'deleteData':
+ var data = checkStatus.data;
+ var ids=[];
+ data.map(function (track) {
+ ids.push(track.id);
+ });
+ if (ids.length === 0){
+ layer.msg('璇烽�夋嫨鏁版嵁');
+ } else {
+ layer.confirm('纭畾鍒犻櫎'+(ids.length===1?'姝�':ids.length)+'鏉℃暟鎹悧', function(){
+ $.ajax({
+ url: baseUrl+"/resource/delete/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: {ids: ids},
+ method: 'POST',
+ traditional:true,
+ success: function (res) {
+ if (res.code === 200){
+ layer.closeAll();
+ tableReload(false);
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+ });
+ }
+ break;
+ case 'exportData':
+ layer.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function(){
+ var titles=[];
+ var fields=[];
+ obj.config.cols[0].map(function (col) {
+ if (col.type === 'normal' && col.hide === false && col.toolbar == null) {
+ titles.push(col.title);
+ fields.push(col.field);
+ }
+ });
+ var exportData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ exportData[this.name] = this.value;
+ });
+ var param = {
+ 'resource': exportData,
+ 'fields': fields
+ };
+ $.ajax({
+ url: baseUrl+"/resource/export/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: JSON.stringify(param),
+ dataType:'json',
+ contentType:'application/json;charset=UTF-8',
+ method: 'POST',
+ success: function (res) {
+ layer.closeAll();
+ if (res.code === 200) {
+ table.exportFile(titles,res.data,'xls');
+ } else if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg)
+ }
+ }
+ });
+ });
+ break;
+ }
+ });
+
+ // 鐩戝惉琛屽伐鍏蜂簨浠�
+ table.on('tool(resource)', function(obj){
+ var data = obj.data;
+ switch (obj.event) {
+ // 璇︽儏
+ case 'detail':
+ layer.open({
+ type: 2,
+ title: '璇︽儏',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: 'resource_detail.html',
+ success: function(layero, index){
+ setFormVal(layer.getChildFrame('#detail', index), data, true);
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
+ layer.getChildFrame('#data-detail-submit,#prompt', index).hide();
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ }
+ });
+ break;
+ // 缂栬緫
+ case 'edit':
+ layer.open({
+ type: 2,
+ title: '淇敼',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: 'resource_detail.html',
+ success: function(layero, index){
+ setFormVal(layer.getChildFrame('#detail', index), data, false);
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), false);
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ }
+ });
+ break;
+ case 'Resource':
+ var param = top.reObject(data).resourceId;
+ if (param === undefined) {
+ layer.msg("鏃犳暟鎹�");
+ } else {
+ layer.open({
+ type: 2,
+ title: '鐖剁骇璇︽儏',
+ maxmin: true,
+ area: [top.detailHeight, top.detailWidth],
+ shadeClose: false,
+ content: '../resource/resource_detail.html',
+ success: function(layero, index){
+ $.ajax({
+ url: baseUrl+"/resource/"+ param +"/auth",
+ headers: {'token': localStorage.getItem('token')},
+ method: 'GET',
+ success: function (res) {
+ if (res.code === 200){
+ setFormVal(layer.getChildFrame('#detail', index), res.data, true);
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
+ layer.getChildFrame('#data-detail-submit,#prompt', index).hide();
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ } else if (res.code === 403){
+ parent.location.href = "/";
+ }else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+ }
+ });
+ }
+ break;
+
+ }
+ });
+
+ // 鏁版嵁淇敼鍔ㄤ綔
+ form.on('submit(edit)', function () {
+ var index = layer.load(1, {
+ shade: [0.5,'#000'] //0.1閫忔槑搴︾殑鑳屾櫙
+ });
+ var data = {
+ id: $('#id').val(),
+ code: $('#code').val(),
+ name: $('#name').val(),
+ resourceId: $('#resourceId').val(),
+ level: $('#level').val(),
+ sort: $('#sort').val(),
+ status: $('#status').val(),
+
+ };
+ $.ajax({
+ url: baseUrl+"/resource/edit/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: top.reObject(data),
+ method: 'POST',
+ success: function (res) {
+ if (res.code === 200){
+ parent.layer.closeAll();
+ tableReload(true);
+ $("#data-detail :input").each(function () {
+ $(this).val("");
+ });
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg)
+ }
+ layer.close(index);
+ }
+ })
+ });
+
+ // 鎼滅储鏍忔悳绱簨浠�
+ form.on('submit(search)', function (data) {
+ pageCurr = 1;
+ tableReload(false);
+ });
+
+ // 鎼滅储鏍忛噸缃簨浠�
+ form.on('submit(reset)', function (data) {
+ pageCurr = 1;
+ clearFormVal($('#search-box'));
+ tableReload(false);
+ });
+
+ // 鏃堕棿閫夋嫨鍣�
+
+});
+
+// 鍏抽棴鍔ㄤ綔
+$(document).on('click','#data-detail-close', function () {
+ parent.layer.closeAll();
+});
+
+function tableReload(child) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ (child ? parent.tableIns : tableIns).reload({
+ where: searchData,
+ page: {
+ curr: pageCurr
+ },
+ done: function (res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ if (res.data.length === 0 && count !== 0) {
+ tableIns.reload({
+ where: searchData,
+ page: {
+ curr: pageCurr-1
+ }
+ });
+ pageCurr -= 1;
+ }
+ limit(child);
+ }
+ });
+}
+
+function setFormVal(el, data, showImg) {
+ for (var val in data) {
+ var find = el.find(":input[id='" + val + "']");
+ find.val(data[val]);
+ if (showImg){
+ var next = find.next();
+ if (next.get(0)){
+ if (next.get(0).localName === "img") {
+ find.hide();
+ next.attr("src", data[val]);
+ next.show();
+ }
+ }
+ }
+ }
+}
+
+function clearFormVal(el) {
+ $(':input', el)
+ .val('')
+ .removeAttr('checked')
+ .removeAttr('selected');
+}
+
+function detailScreen(index) {
+ var detail = layer.getChildFrame('#data-detail', index);
+ var height = detail.height()+60;
+ if (height > ($(window).height()*0.9)) {
+ height = ($(window).height()*0.9);
+ }
+ layer.style(index, {
+ top: (($(window).height()-height)/3)+"px",
+ height: height+'px'
+ });
+ $(".layui-layer-shade").remove();
+}
+
+$('body').keydown(function () {
+ if (event.keyCode === 13) {
+ $("#search").click();
+ }
+});
diff --git a/src/main/webapp/static/js/role/role.js b/src/main/webapp/static/js/role/role.js
new file mode 100644
index 0000000..3bdce29
--- /dev/null
+++ b/src/main/webapp/static/js/role/role.js
@@ -0,0 +1,410 @@
+var pageCurr;
+var roleId;
+var powerTreeData;
+$(function (){
+ $.ajax({
+ url: baseUrl+"/power/list/auth",
+ headers: {'token': localStorage.getItem('token')},
+ method: 'GET',
+ success: function (res) {
+ if (res.code === 200){
+ powerTreeData = res.data;
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+});
+
+layui.use(['table','laydate', 'form'], function(){
+ var table = layui.table;
+ var $ = layui.jquery;
+ var layer = layui.layer;
+ var layDate = layui.laydate;
+ var form = layui.form;
+
+ // 鏁版嵁娓叉煋
+ tableIns = table.render({
+ elem: '#role',
+ headers: {token: localStorage.getItem('token')},
+ url: baseUrl+'/role/list/auth',
+ page: true,
+ limit: 16,
+ limits: [16, 30, 50, 100, 200, 500],
+ toolbar: '#toolbar',
+ cellMinWidth: 50,
+ cols: [[
+ {type: 'checkbox', fixed: 'left'}
+ ,{field: 'id', title: 'ID', sort: true,align: 'center', fixed: 'left', width: 80}
+ ,{field: 'code', align: 'center',title: '缂栫爜'}
+ ,{field: 'name', align: 'center',title: '鍚嶇О'}
+ ,{field: 'leader$', align: 'center',title: '涓婄骇'}
+ // ,{field: 'level$', align: 'center',title: '瑙掕壊绛夌骇'}
+
+ ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:150}
+ ]],
+ request: {
+ pageName: 'curr',
+ pageSize: 'limit'
+ },
+ parseData: function (res) {
+ return {
+ 'code': res.code,
+ 'msg': res.msg,
+ 'count': res.data.total,
+ 'data': res.data.records
+ }
+ },
+ response: {
+ statusCode: 200
+ },
+ done: function(res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ limit();
+ }
+ });
+
+ // 鐩戝惉鎺掑簭浜嬩欢
+ table.on('sort(role)', function (obj) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ searchData['orderByField'] = obj.field;
+ searchData['orderByType'] = obj.type;
+ tableIns.reload({
+ where: searchData,
+ page: {
+ curr: 1
+ },
+ done: function (res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ limit();
+ }
+ });
+ });
+
+ // 鐩戝惉澶村伐鍏锋爮浜嬩欢
+ table.on('toolbar(role)', function (obj) {
+ var checkStatus = table.checkStatus(obj.config.id);
+ switch(obj.event) {
+ case 'addData':
+ layer.open({
+ type: 2,
+ title: '鏂板',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: 'role_detail.html',
+ success: function(layero, index){
+ clearFormVal(layer.getChildFrame('#detail', index));
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ }
+ });
+ break;
+ case 'refreshData':
+ tableIns.reload({
+ page: {
+ curr: pageCurr
+ }
+ });
+ limit();
+ break;
+ case 'deleteData':
+ var data = checkStatus.data;
+ var ids=[];
+ data.map(function (track) {
+ ids.push(track.id);
+ });
+ if (ids.length === 0){
+ layer.msg('璇烽�夋嫨鏁版嵁');
+ } else {
+ layer.confirm('纭畾鍒犻櫎'+(ids.length===1?'姝�':ids.length)+'鏉℃暟鎹悧', function(){
+ $.ajax({
+ url: baseUrl+"/role/delete/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: {ids: ids},
+ method: 'POST',
+ traditional:true,
+ success: function (res) {
+ if (res.code === 200){
+ layer.closeAll();
+ tableReload(false);
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+ });
+ }
+ break;
+ case 'exportData':
+ layer.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function(){
+ var titles=[];
+ var fields=[];
+ obj.config.cols[0].map(function (col) {
+ if (col.type === 'normal' && col.hide === false && col.toolbar == null) {
+ titles.push(col.title);
+ fields.push(col.field);
+ }
+ });
+ var exportData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ exportData[this.name] = this.value;
+ });
+ var param = {
+ 'role': exportData,
+ 'fields': fields
+ };
+ $.ajax({
+ url: baseUrl+"/role/export/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: JSON.stringify(param),
+ dataType:'json',
+ contentType:'application/json;charset=UTF-8',
+ method: 'POST',
+ success: function (res) {
+ layer.closeAll();
+ if (res.code === 200) {
+ table.exportFile(titles,res.data,'xls');
+ } else if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg)
+ }
+ }
+ });
+ });
+ break;
+ }
+ });
+
+ // 鐩戝惉琛屽伐鍏蜂簨浠�
+ table.on('tool(role)', function(obj){
+ var data = obj.data;
+ switch (obj.event) {
+ // 璇︽儏
+ case 'detail':
+ layer.open({
+ type: 2,
+ title: '璇︽儏',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: 'role_detail.html',
+ success: function(layero, index){
+ setFormVal(layer.getChildFrame('#detail', index), data, true);
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
+ layer.getChildFrame('#data-detail-submit,#prompt', index).hide();
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ }
+ });
+ break;
+ // 缂栬緫
+ case 'edit':
+ layer.open({
+ type: 2,
+ title: '淇敼',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: 'role_detail.html',
+ success: function(layero, index){
+ setFormVal(layer.getChildFrame('#detail', index), data, false);
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), false);
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ }
+ });
+ break;
+ case 'leader':
+ var param = top.reObject(data).leader;
+ if (param === undefined) {
+ layer.msg("鏃犳暟鎹�");
+ } else {
+ layer.open({
+ type: 2,
+ title: '璇︽儏',
+ maxmin: true,
+ area: [top.detailHeight, top.detailWidth],
+ shadeClose: false,
+ content: '../role/role_detail.html',
+ success: function(layero, index){
+ $.ajax({
+ url: baseUrl+"/role/"+ param +"/auth",
+ headers: {'token': localStorage.getItem('token')},
+ method: 'GET',
+ success: function (res) {
+ if (res.code === 200){
+ setFormVal(layer.getChildFrame('#detail', index), res.data, true);
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
+ layer.getChildFrame('#data-detail-submit,#prompt', index).hide();
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ } else if (res.code === 403){
+ parent.location.href = "/";
+ }else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+ }
+ });
+ }
+ break;
+ case 'power':
+ roleId = data.id;
+ layer.open({
+ type: 2,
+ title: data.name + ' 鏉冮檺鍒嗛厤',
+ maxmin: true,
+ area: [top.detailWidth/2, '85%'],
+ shadeClose: false,
+ content: 'role_power_detail.html',
+ success: function(layero, index){
+ }
+ });
+ break;
+ }
+ });
+
+ // 鏁版嵁淇敼鍔ㄤ綔
+ form.on('submit(edit)', function () {
+ var index = layer.load(1, {
+ shade: [0.5,'#000'] //0.1閫忔槑搴︾殑鑳屾櫙
+ });
+ var data = {
+ id: $('#id').val(),
+ code: $('#code').val(),
+ name: $('#name').val(),
+ leader: $('#leader').val(),
+ level: $('#level').val(),
+
+ };
+ $.ajax({
+ url: baseUrl+"/role/edit/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: top.reObject(data),
+ method: 'POST',
+ success: function (res) {
+ if (res.code === 200){
+ parent.layer.closeAll();
+ tableReload(true);
+ $("#data-detail :input").each(function () {
+ $(this).val("");
+ });
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg)
+ }
+ layer.close(index);
+ }
+ })
+ });
+
+ // 鎼滅储鏍忔悳绱簨浠�
+ form.on('submit(search)', function (data) {
+ pageCurr = 1;
+ tableReload(false);
+ });
+
+ // 鎼滅储鏍忛噸缃簨浠�
+ form.on('submit(reset)', function (data) {
+ pageCurr = 1;
+ clearFormVal($('#search-box'));
+ tableReload(false);
+ });
+
+ // 鏃堕棿閫夋嫨鍣�
+
+
+});
+
+// 鍏抽棴鍔ㄤ綔
+$(document).on('click','#data-detail-close', function () {
+ parent.layer.closeAll();
+});
+
+function tableReload(child) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ (child ? parent.tableIns : tableIns).reload({
+ where: searchData,
+ page: {
+ curr: pageCurr
+ },
+ done: function (res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ if (res.data.length === 0 && count !== 0) {
+ tableIns.reload({
+ where: searchData,
+ page: {
+ curr: pageCurr-1
+ }
+ });
+ pageCurr -= 1;
+ }
+ limit(child);
+ }
+ });
+}
+
+function setFormVal(el, data, showImg) {
+ for (var val in data) {
+ var find = el.find(":input[id='" + val + "']");
+ find.val(data[val]);
+ if (showImg){
+ var next = find.next();
+ if (next.get(0)){
+ if (next.get(0).localName === "img") {
+ find.hide();
+ next.attr("src", data[val]);
+ next.show();
+ }
+ }
+ }
+ }
+}
+
+function clearFormVal(el) {
+ $(':input', el)
+ .val('')
+ .removeAttr('checked')
+ .removeAttr('selected');
+}
+
+function detailScreen(index) {
+ var detail = layer.getChildFrame('#data-detail', index);
+ var height = detail.height()+60;
+ if (height > ($(window).height()*0.9)) {
+ height = ($(window).height()*0.9);
+ }
+ layer.style(index, {
+ top: (($(window).height()-height)/3)+"px",
+ height: height+'px'
+ });
+ $(".layui-layer-shade").remove();
+}
+
+$('body').keydown(function () {
+ if (event.keyCode === 13) {
+ $("#search").click();
+ }
+});
diff --git a/src/main/webapp/static/js/role/rolePower.js b/src/main/webapp/static/js/role/rolePower.js
new file mode 100644
index 0000000..212e2ba
--- /dev/null
+++ b/src/main/webapp/static/js/role/rolePower.js
@@ -0,0 +1,82 @@
+layui.use(['form', 'tree'], function() {
+ var form = layui.form;
+ var tree = layui.tree;
+ var $ = layui.jquery;
+ var layer = layui.layer;
+
+ // 鏉冮檺鍒嗛厤鏍戝舰鍥�
+ var powerTree = tree.render({
+ elem: '#power-tree',
+ id: 'powerTree',
+ showCheckbox: true,
+ data: parent.powerTreeData,
+ isJump: true
+ });
+
+ loadPower();
+ function loadPower(){
+ $.ajax({
+ url: baseUrl+"/power/"+parent.roleId+"/auth",
+ headers: {'token': localStorage.getItem('token')},
+ method: 'GET',
+ beforeSend: function () {
+ layer.load(1, {shade: [0.1,'#fff']});
+ },
+ success: function (res) {
+ if (res.code === 200){
+ tree.setChecked('powerTree', res.data);
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg)
+ }
+ layer.closeAll("loading");
+ }
+ });
+ }
+
+ // 鏁版嵁淇敼鍔ㄤ綔
+ form.on('submit(save)', function () {
+ var param = [];
+ var checkData = tree.getChecked('powerTree');
+ checkData.map(function (obj) {
+ obj.children.map(function (resource) {
+
+ var childrens = [];
+ resource.children.map(function (resource) {
+ childrens.push(resource.id);
+ });
+ var one = {
+ 'two': resource.id,
+ 'three': childrens
+ };
+ param.push(one);
+ })
+ });
+ $.ajax({
+ url: baseUrl+"/power/auth",
+ traditional: true,
+ headers: {'token': localStorage.getItem('token')},
+ data: {
+ 'roleId': parent.roleId,
+ 'powers': JSON.stringify(param)
+ },
+ method: 'POST',
+ success: function (res) {
+ if (res.code === 200){
+ parent.layer.closeAll();
+ parent.layer.msg(res.msg);
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg)
+ }
+ }
+ });
+ });
+});
+
+// 鍏抽棴鍔ㄤ綔
+$(document).on('click','#data-detail-close', function () {
+ parent.layer.closeAll();
+});
\ No newline at end of file
diff --git a/src/main/webapp/static/js/user/user.js b/src/main/webapp/static/js/user/user.js
new file mode 100644
index 0000000..0e06c7e
--- /dev/null
+++ b/src/main/webapp/static/js/user/user.js
@@ -0,0 +1,238 @@
+var pageCurr;
+var tableData;
+var insTb2;
+layui.config({
+ base: baseUrl + "/static/layui/lay/modules/"
+}).use(['table','laydate', 'form', 'util', 'admin'], function(){
+ var table = layui.table;
+ var $ = layui.jquery;
+ var layer = layui.layer;
+ var layDate = layui.laydate;
+ var form = layui.form;
+ var admin = layui.admin;
+ var util = layui.util;
+
+ insTb2 = table.render({
+ elem: '#userTable',
+ headers: {token: localStorage.getItem('token')},
+ url: baseUrl+'/user/list/auth',
+ page: true,
+ limit: 15,
+ limits: [15, 30, 50, 100, 200, 500],
+ toolbar: '#userToolbar',
+ height: 'full-100',
+ cols: [[
+ {type: 'checkbox'}
+ // ,{field: 'hostName', align: 'center',title: '鎺堟潈鍟嗘埛', templet: '#hostTpl', width: 140}
+ // ,{field: 'nickname', align: 'center',title: '鐢ㄦ埛鍚�'}
+ ,{field: 'username', align: 'center',title: '鐧诲綍璐︽埛'}
+ ,{field: 'mobile', align: 'center',title: '鎵嬫満鍙�'}
+ // ,{field: 'deptName', align: 'center',title: '鎵�灞為儴闂�'}
+ ,{field: 'roleName', align: 'center',title: '瑙掕壊'}
+ ,{field: 'email', align: 'center',title: '閭'}
+ // ,{field: 'sex$', align: 'center',title: '鎬у埆'}
+ ,{field: 'createTime$', align: 'center',title: '娉ㄥ唽鏃堕棿', hide: true}
+ ,{field: 'status$', align: 'center',title: '鐘舵��', templet: '#statusTpl', width: 120, unresize: true}
+
+ ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:170}
+ ]],
+ request: {
+ pageName: 'curr',
+ pageSize: 'limit'
+ },
+ parseData: function (res) {
+ return {
+ 'code': res.code,
+ 'msg': res.msg,
+ 'count': res.data.total,
+ 'data': res.data.records
+ }
+ },
+ response: {
+ statusCode: 200
+ },
+ done: function(res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ tableData = table.cache.userTable;
+ pageCurr=curr;
+ limit();
+ }
+ });
+ /* 琛ㄦ牸2鎼滅储 */
+ form.on('submit(userTbSearch)', function (data) {
+ insTb2.reload({where: data.field, page: {curr: 1}});
+ return false;
+ });
+
+ /* 琛ㄦ牸2澶村伐鍏锋爮鐐瑰嚮浜嬩欢 */
+ table.on('toolbar(userTable)', function (obj) {
+ var checkStatus = table.checkStatus(obj.config.id).data;
+ if (obj.event === 'add') { // 娣诲姞
+ showEditModel()
+ } else if (obj.event === 'del') { // 鍒犻櫎
+ if (checkStatus.length === 0) {
+ layer.msg('璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁', {icon: 2});
+ return;
+ }
+ del(checkStatus.map(function (d) {
+ return d.id;
+ }));
+ }
+ });
+
+ // 淇敼鐘舵��
+ form.on('switch(statusSwitch)', function (obj) {
+ var index = obj.othis.parents('tr').attr("data-index");
+ var data = tableData[index];
+ data[this.name] = obj.elem.checked?1:0;
+ http.post(baseUrl+"/user/edit/auth", {id: data.id, status: data[this.name]}, function (res) {
+ layer.msg(res.msg, {icon: 1});
+ })
+ })
+
+ /* 琛ㄦ牸2宸ュ叿鏉$偣鍑讳簨浠� */
+ table.on('tool(userTable)', function (obj) {
+ var data = obj.data;
+ switch (obj.event) {
+ // 缂栬緫
+ case 'edit':
+ showEditModel(data)
+ break;
+ // 鍒犻櫎
+ case 'del':
+ del([data.id]);
+ break;
+ // 閲嶇疆瀵嗙爜
+ case 'resetPwd':
+ admin.open({
+ type: 1,
+ title: '閲嶇疆瀵嗙爜',
+ offset: '150px',
+ area: ['360px'],
+ shade: 0.1,
+ shadeClose: true,
+ content: $("#resetpwd-window").html(),
+ success: function(layero, index){
+ layer.iframeAuto(index);
+ $('#resetUserId').val(data.id);
+ }
+ });
+ break;
+ }
+ });
+
+ /* 鏄剧ず琛ㄥ崟寮圭獥 */
+ function showEditModel(mData) {
+ admin.open({
+ type: 1,
+ area: '600px',
+ title: (mData ? '淇敼' : '娣诲姞') + '鐢ㄦ埛',
+ content: $('#editDialog').html(),
+ success: function (layero, dIndex) {
+ // 鍥炴樉琛ㄥ崟鏁版嵁
+ form.val('detail', mData);
+ // 琛ㄥ崟鎻愪氦浜嬩欢
+ form.on('submit(editSubmit)', function (data) {
+ if (isEmpty(data.field.roleId)) {
+ layer.msg('璇烽�夋嫨瑙掕壊', {icon: 2});
+ return false;
+ }
+ var loadIndex = layer.load(2);
+ $.ajax({
+ url: baseUrl+"/user/"+(mData?'update':'add')+"/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: data.field,
+ method: 'POST',
+ success: function (res) {
+ layer.close(loadIndex);
+ if (res.code === 200){
+ layer.close(dIndex);
+ layer.msg(res.msg, {icon: 1});
+ $(".layui-laypage-btn")[0].click();
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg, {icon: 2});
+ }
+ }
+ })
+ return false;
+ });
+ // 寮圭獥涓嶅嚭鐜版粴鍔ㄦ潯
+ $(layero).children('.layui-layer-content').css('overflow', 'visible');
+ layui.form.render('select');
+ }
+ });
+ }
+
+
+ /* 鍒犻櫎璁㈠崟 */
+ function del(ids) {
+ layer.confirm('纭畾瑕佸垹闄ら�変腑鏁版嵁鍚楋紵', {
+ skin: 'layui-layer-admin',
+ shade: .1
+ }, function (i) {
+ layer.close(i);
+ var loadIndex = layer.load(2);
+ $.ajax({
+ url: baseUrl+"/user/delete/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: {ids: ids},
+ method: 'POST',
+ success: function (res) {
+ layer.close(loadIndex);
+ if (res.code === 200){
+ layer.msg(res.msg, {icon: 1});
+ $(".layui-laypage-btn")[0].click();
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg, {icon: 2});
+ }
+ }
+ })
+
+ });
+ }
+
+ // 閲嶇疆瀵嗙爜
+ form.on('submit(savePwd)', function (data) {
+ $.ajax({
+ url: baseUrl+"/user/update/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: {
+ id: data.field.resetUserId,
+ password: hex_md5(data.field.resetPassword)
+ },
+ method: 'POST',
+ success: function (res) {
+ if (res.code === 200){
+ layer.closeAll();
+ layer.msg("閲嶇疆瀵嗙爜鎴愬姛", {icon: 1});
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg, {icon: 2})
+ }
+ }
+ })
+ return false;
+ })
+
+});
+
+function tableReload(child) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ (child ? parent.tableIns : tableIns).reload({
+ where: searchData,
+ page: {
+ curr: pageCurr
+ }
+ });
+}
+
diff --git a/src/main/webapp/static/js/userLogin/userLogin.js b/src/main/webapp/static/js/userLogin/userLogin.js
new file mode 100644
index 0000000..f0907ef
--- /dev/null
+++ b/src/main/webapp/static/js/userLogin/userLogin.js
@@ -0,0 +1,369 @@
+var pageCurr;
+layui.use(['table','laydate', 'form'], function(){
+ var table = layui.table;
+ var $ = layui.jquery;
+ var layer = layui.layer;
+ var layDate = layui.laydate;
+ var form = layui.form;
+
+ // 鏁版嵁娓叉煋
+ tableIns = table.render({
+ elem: '#userLogin',
+ headers: {token: localStorage.getItem('token')},
+ url: baseUrl+'/userLogin/list/auth',
+ page: true,
+ limit: 16,
+ limits: [16, 30, 50, 100, 200, 500],
+ toolbar: '#toolbar',
+ cellMinWidth: 50,
+ cols: [[
+ {type: 'checkbox', fixed: 'left'}
+ ,{field: 'id', title: 'ID', sort: true,align: 'center', fixed: 'left', width: 80}
+ ,{field: 'userUsername', align: 'center',title: '鍛樺伐',event: 'User', style: 'text-decoration: underline;cursor:pointer'}
+ ,{field: 'token', align: 'center',title: '鍑瘉鍊�'}
+ ,{field: 'createTime$', align: 'center',title: '娣诲姞鏃堕棿'}
+
+ ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:150}
+ ]],
+ request: {
+ pageName: 'curr',
+ pageSize: 'limit'
+ },
+ parseData: function (res) {
+ return {
+ 'code': res.code,
+ 'msg': res.msg,
+ 'count': res.data.total,
+ 'data': res.data.records
+ }
+ },
+ response: {
+ statusCode: 200
+ },
+ done: function(res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ limit();
+ }
+ });
+
+ // 鐩戝惉鎺掑簭浜嬩欢
+ table.on('sort(userLogin)', function (obj) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ searchData['orderByField'] = obj.field;
+ searchData['orderByType'] = obj.type;
+ tableIns.reload({
+ where: searchData,
+ page: {
+ curr: 1
+ },
+ done: function (res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ limit();
+ }
+ });
+ });
+
+ // 鐩戝惉澶村伐鍏锋爮浜嬩欢
+ table.on('toolbar(userLogin)', function (obj) {
+ var checkStatus = table.checkStatus(obj.config.id);
+ switch(obj.event) {
+ case 'addData':
+ layer.open({
+ type: 2,
+ title: '鏂板',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: 'userLogin_detail.html',
+ success: function(layero, index){
+ clearFormVal(layer.getChildFrame('#detail', index));
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ }
+ });
+ break;
+ case 'refreshData':
+ tableIns.reload({
+ page: {
+ curr: pageCurr
+ }
+ });
+ limit();
+ break;
+ case 'deleteData':
+ var data = checkStatus.data;
+ var ids=[];
+ data.map(function (track) {
+ ids.push(track.id);
+ });
+ if (ids.length === 0){
+ layer.msg('璇烽�夋嫨鏁版嵁');
+ } else {
+ layer.confirm('纭畾鍒犻櫎'+(ids.length===1?'姝�':ids.length)+'鏉℃暟鎹悧', function(){
+ $.ajax({
+ url: baseUrl+"/userLogin/delete/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: {ids: ids},
+ method: 'POST',
+ traditional:true,
+ success: function (res) {
+ if (res.code === 200){
+ layer.closeAll();
+ tableReload(false);
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+ });
+ }
+ break;
+ case 'exportData':
+ layer.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function() {
+ var titles = [];
+ var fields = [];
+ obj.config.cols[0].map(function (col) {
+ if (col.type === 'normal' && col.hide === false && col.toolbar == null) {
+ titles.push(col.title);
+ fields.push(col.field);
+ }
+ });
+ var exportData = {};
+ $.each($('#search-box [name]').serializeArray(), function () {
+ exportData[this.name] = this.value;
+ });
+ var param = {
+ 'userLogin': exportData,
+ 'fields': fields
+ };
+ $.ajax({
+ url: baseUrl+"/userLogin/export/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: JSON.stringify(param),
+ dataType: 'json',
+ contentType: 'application/json;charset=UTF-8',
+ method: 'POST',
+ success: function (res) {
+ layer.closeAll();
+ if (res.code === 200) {
+ table.exportFile(titles, res.data, 'xls');
+ } else if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg)
+ }
+ }
+ });
+ });
+ break;
+ }
+ });
+
+ // 鐩戝惉琛屽伐鍏蜂簨浠�
+ table.on('tool(userLogin)', function(obj){
+ var data = obj.data;
+ switch (obj.event) {
+ // 璇︽儏
+ case 'detail':
+ layer.open({
+ type: 2,
+ title: '璇︽儏',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: 'userLogin_detail.html',
+ success: function(layero, index){
+ setFormVal(layer.getChildFrame('#detail', index), data);
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
+ layer.getChildFrame('#data-detail-submit,#prompt', index).hide();
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ }
+ });
+ break;
+ // 缂栬緫
+ case 'edit':
+ layer.open({
+ type: 2,
+ title: '淇敼',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: 'userLogin_detail.html',
+ success: function(layero, index){
+ setFormVal(layer.getChildFrame('#detail', index), data);
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), false);
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ }
+ });
+ break;
+ case 'User':
+ var param = top.reObject(data).userId;
+ if (param === undefined) {
+ layer.msg("鏃犳暟鎹�");
+ } else {
+ layer.open({
+ type: 2,
+ title: '璇︽儏',
+ maxmin: true,
+ area: [top.detailHeight, top.detailWidth],
+ shadeClose: false,
+ content: '../user/user_detail.html',
+ success: function(layero, index){
+ $.ajax({
+ url: baseUrl+"/user/"+ param +"/auth",
+ headers: {'token': localStorage.getItem('token')},
+ method: 'GET',
+ success: function (res) {
+ if (res.code === 200){
+ setFormVal(layer.getChildFrame('#detail', index), res.data);
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
+ layer.getChildFrame('#data-detail-submit,#prompt', index).hide();
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ } else if (res.code === 403){
+ parent.location.href = "/";
+ }else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+ }
+ });
+ }
+ break;
+
+ }
+ });
+
+ // 鏁版嵁淇敼鍔ㄤ綔
+ form.on('submit(edit)', function () {
+ var index = layer.load(1, {
+ shade: [0.5,'#000'] //0.1閫忔槑搴︾殑鑳屾櫙
+ });
+ var data = {
+ id: $('#id').val(),
+ userId: $('#userId').val(),
+ token: $('#token').val(),
+ createTime: top.strToDate($('#createTime\\$').val()),
+
+ };
+ $.ajax({
+ url: baseUrl+"/userLogin/edit/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: top.reObject(data),
+ method: 'POST',
+ success: function (res) {
+ if (res.code === 200){
+ parent.layer.closeAll();
+ tableReload(true);
+ $("#data-detail :input").each(function () {
+ $(this).val("");
+ });
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg)
+ }
+ layer.close(index);
+ }
+ })
+ });
+
+ // 鎼滅储鏍忔悳绱簨浠�
+ form.on('submit(search)', function (data) {
+ pageCurr = 1;
+ tableReload(false);
+ });
+
+ // 鎼滅储鏍忛噸缃簨浠�
+ form.on('submit(reset)', function (data) {
+ pageCurr = 1;
+ clearFormVal($('#search-box'));
+ tableReload(false);
+ });
+
+ // 鏃堕棿閫夋嫨鍣�
+ layDate.render({
+ elem: '#createTime\\$',
+ type: 'datetime'
+ });
+
+});
+
+// 鍏抽棴鍔ㄤ綔
+$(document).on('click','#data-detail-close', function () {
+ parent.layer.closeAll();
+});
+
+function tableReload(child) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ (child ? parent.tableIns : tableIns).reload({
+ where: searchData,
+ page: {
+ curr: pageCurr
+ },
+ done: function (res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ if (res.data.length === 0 && count !== 0) {
+ tableIns.reload({
+ where: searchData,
+ page: {
+ curr: pageCurr-1
+ }
+ });
+ pageCurr -= 1;
+ }
+ limit(child);
+ }
+ });
+}
+
+function setFormVal(el, data) {
+ for (var val in data) {
+ el.find(":input[id='" + val + "']").val(data[val]);
+ }
+}
+
+function clearFormVal(el) {
+ $(':input', el)
+ .val('')
+ .removeAttr('checked')
+ .removeAttr('selected');
+}
+
+function detailScreen(index) {
+ var detail = layer.getChildFrame('#data-detail', index);
+ var height = detail.height()+60;
+ if (height > ($(window).height()*0.9)) {
+ height = ($(window).height()*0.9);
+ }
+ layer.style(index, {
+ top: (($(window).height()-height)/3)+"px",
+ height: height+'px'
+ });
+ $(".layui-layer-shade").remove();
+}
+
+$('body').keydown(function () {
+ if (event.keyCode === 13) {
+ $("#search").click();
+ }
+});
diff --git a/src/main/webapp/static/js/wrkLastno/wrkLastno.js b/src/main/webapp/static/js/wrkLastno/wrkLastno.js
new file mode 100644
index 0000000..97e1769
--- /dev/null
+++ b/src/main/webapp/static/js/wrkLastno/wrkLastno.js
@@ -0,0 +1,475 @@
+var pageCurr;
+layui.use(['table','laydate', 'form'], function(){
+ var table = layui.table;
+ var $ = layui.jquery;
+ var layer = layui.layer;
+ var layDate = layui.laydate;
+ var form = layui.form;
+
+ // 鏁版嵁娓叉煋
+ tableIns = table.render({
+ elem: '#wrkLastno',
+ headers: {token: localStorage.getItem('token')},
+ url: baseUrl+'/wrkLastno/list/auth',
+ page: true,
+ limit: 16,
+ limits: [16, 30, 50, 100, 200, 500],
+ even: true,
+ toolbar: '#toolbar',
+ cellMinWidth: 50,
+ cols: [[
+ {type: 'checkbox', fixed: 'left'}
+ ,{field: 'wrkMk', align: 'center',title: '绫诲瀷'}
+ ,{field: 'sno', align: 'center',title: '璧峰ID'}
+ ,{field: 'wrkNo', align: 'center',title: '褰撳墠ID', style: 'color: #AA3130;font-weight: bold'}
+ ,{field: 'eno', align: 'center',title: '缁堟ID'}
+ ,{field: 'memoM', align: 'center',title: '澶囨敞'}
+ ,{field: 'modiUser$', align: 'center',title: '淇敼浜哄憳'}
+ ,{field: 'modiTime$', align: 'center',title: '淇敼鏃堕棿'}
+ ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate'}
+ ]],
+ request: {
+ pageName: 'curr',
+ pageSize: 'limit'
+ },
+ parseData: function (res) {
+ return {
+ 'code': res.code,
+ 'msg': res.msg,
+ 'count': res.data.total,
+ 'data': res.data.records
+ }
+ },
+ response: {
+ statusCode: 200
+ },
+ done: function(res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ limit();
+ form.on('checkbox(tableCheckbox)', function (data) {
+ var _index = $(data.elem).attr('table-index')||0;
+ if(data.elem.checked){
+ res.data[_index][data.value] = 'Y';
+ }else{
+ res.data[_index][data.value] = 'N';
+ }
+ });
+ }
+ });
+
+ // 鐩戝惉鎺掑簭浜嬩欢
+ table.on('sort(wrkLastno)', function (obj) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ searchData['orderByField'] = obj.field;
+ searchData['orderByType'] = obj.type;
+ tableIns.reload({
+ where: searchData,
+ page: {
+ curr: 1
+ },
+ done: function (res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ limit();
+ }
+ });
+ });
+
+ // 鐩戝惉澶村伐鍏锋爮浜嬩欢
+ table.on('toolbar(wrkLastno)', function (obj) {
+ var checkStatus = table.checkStatus(obj.config.id);
+ switch(obj.event) {
+ case 'addData':
+ layer.open({
+ type: 2,
+ title: '鏂板',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: 'wrkLastno_detail.html',
+ success: function(layero, index){
+ layer.getChildFrame('#data-detail-submit-edit', index).hide();
+ clearFormVal(layer.getChildFrame('#detail', index));
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ }
+ });
+ break;
+ case 'refreshData':
+ tableIns.reload({
+ page: {
+ curr: pageCurr
+ }
+ });
+ limit();
+ break;
+ case 'deleteData':
+ var data = checkStatus.data;
+ if (data.length === 0){
+ layer.msg('璇烽�夋嫨鏁版嵁');
+ } else {
+ layer.confirm('纭畾鍒犻櫎'+(data.length===1?'姝�':data.length)+'鏉℃暟鎹悧', function(){
+ $.ajax({
+ url: baseUrl+"/wrkLastno/delete/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: {param: JSON.stringify(data)},
+ method: 'POST',
+ traditional:true,
+ success: function (res) {
+ if (res.code === 200){
+ layer.closeAll();
+ tableReload(false);
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+ });
+ }
+ break;
+ case 'exportData':
+ layer.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function(){
+ var titles=[];
+ var fields=[];
+ obj.config.cols[0].map(function (col) {
+ if (col.type === 'normal' && col.hide === false && col.toolbar == null) {
+ titles.push(col.title);
+ fields.push(col.field);
+ }
+ });
+ var exportData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ exportData[this.name] = this.value;
+ });
+ var param = {
+ 'wrkLastno': exportData,
+ 'fields': fields
+ };
+ $.ajax({
+ url: baseUrl+"/wrkLastno/export/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: JSON.stringify(param),
+ dataType:'json',
+ contentType:'application/json;charset=UTF-8',
+ method: 'POST',
+ success: function (res) {
+ layer.closeAll();
+ if (res.code === 200) {
+ table.exportFile(titles,res.data,'xls');
+ } else if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg)
+ }
+ }
+ });
+ });
+ break;
+ }
+ });
+
+ // 鐩戝惉琛屽伐鍏蜂簨浠�
+ table.on('tool(wrkLastno)', function(obj){
+ var data = obj.data;
+ switch (obj.event) {
+ // 璇︽儏
+ case 'detail':
+ layer.open({
+ type: 2,
+ title: '璇︽儏',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: 'wrkLastno_detail.html',
+ success: function(layero, index){
+ setFormVal(layer.getChildFrame('#detail', index), data, true);
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
+ layer.getChildFrame('#data-detail-submit-save,#data-detail-submit-edit,#prompt', index).hide();
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ layero.find('iframe')[0].contentWindow.layui.form.render('checkbox');
+ }
+ });
+ break;
+ // 缂栬緫
+ case 'edit':
+ layer.open({
+ type: 2,
+ title: '淇敼',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: 'wrkLastno_detail.html',
+ success: function(layero, index){
+ layer.getChildFrame('#data-detail-submit-save', index).hide();
+ setFormVal(layer.getChildFrame('#detail', index), data, false);
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), false);
+ top.convertDisabled(layer.getChildFrame('#wrkMk', index), true);
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ layero.find('iframe')[0].contentWindow.layui.form.render('checkbox');
+ }
+ });
+ break;
+ case 'modiUser':
+ var param = top.reObject(data).modiUser;
+ if (param === undefined) {
+ layer.msg("鏃犳暟鎹�");
+ } else {
+ layer.open({
+ type: 2,
+ title: '淇敼璇︽儏',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: '../user/user_detail.html',
+ success: function(layero, index){
+ $.ajax({
+ url: baseUrl+"/user/"+ param +"/auth",
+ headers: {'token': localStorage.getItem('token')},
+ method: 'GET',
+ success: function (res) {
+ if (res.code === 200){
+ setFormVal(layer.getChildFrame('#detail', index), res.data, true);
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
+ layer.getChildFrame('#password,#createTime\\$,#status', index).parent().parent().hide();
+ layer.getChildFrame('#data-detail-submit-save,#data-detail-submit-edit,#prompt', index).hide();
+ layer.getChildFrame('##dealDownLine', index).hide();layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ layero.find('iframe')[0].contentWindow.layui.form.render('checkbox');
+ } else if (res.code === 403){
+ parent.location.href = "/";
+ }else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+ }
+ });
+ }
+ break;
+ case 'appeUser':
+ var param = top.reObject(data).appeUser;
+ if (param === undefined) {
+ layer.msg("鏃犳暟鎹�");
+ } else {
+ layer.open({
+ type: 2,
+ title: '鍒涜鎯�',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: '../user/user_detail.html',
+ success: function(layero, index){
+ $.ajax({
+ url: baseUrl+"/user/"+ param +"/auth",
+ headers: {'token': localStorage.getItem('token')},
+ method: 'GET',
+ success: function (res) {
+ if (res.code === 200){
+ setFormVal(layer.getChildFrame('#detail', index), res.data, true);
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
+ layer.getChildFrame('#data-detail-submit-save,#data-detail-submit-edit,#prompt', index).hide();
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ layero.find('iframe')[0].contentWindow.layui.form.render('checkbox');
+ } else if (res.code === 403){
+ parent.location.href = "/";
+ }else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+ }
+ });
+ }
+ break;
+
+ }
+ });
+
+ // 鏁版嵁淇濆瓨鍔ㄤ綔
+ form.on('submit(save)', function () {
+ if (banMsg != null){
+ layer.msg(banMsg);
+ return;
+ }
+ method("add");
+ });
+
+ // 鏁版嵁淇敼鍔ㄤ綔
+ form.on('submit(edit)', function () {
+ method("update")
+ });
+
+ function method(name){
+ var index = layer.load(1, {
+ shade: [0.5,'#000'] //0.1閫忔槑搴︾殑鑳屾櫙
+ });
+ var data = {
+// id: $('#id').val(),
+ wrkMk: $('#wrkMk').val(),
+ wrkNo: $('#wrkNo').val(),
+ modiUser: $('#modiUser').val(),
+ modiTime: top.strToDate($('#modiTime\\$').val()),
+ appeUser: $('#appeUser').val(),
+ appeTime: top.strToDate($('#appeTime\\$').val()),
+ sNo: $('#sno').val(),
+ eNo: $('#eno').val(),
+ memoM: $('#memoM').val(),
+
+ };
+ $.ajax({
+ url: baseUrl+"/wrkLastno/"+name+"/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: top.reObject(data),
+ method: 'POST',
+ success: function (res) {
+ if (res.code === 200){
+ parent.layer.closeAll();
+ parent.$(".layui-laypage-btn")[0].click();
+ $("#data-detail :input").each(function () {
+ $(this).val("");
+ });
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg)
+ }
+ layer.close(index);
+ }
+ })
+ }
+
+ // 澶嶉�夋浜嬩欢
+ form.on('checkbox(detailCheckbox)', function (data) {
+ var el = data.elem;
+ if (el.checked) {
+ $(el).val('Y');
+ } else {
+ $(el).val('N');
+ }
+ });
+
+ // 鎼滅储鏍忔悳绱簨浠�
+ form.on('submit(search)', function (data) {
+ pageCurr = 1;
+ tableReload(false);
+ });
+
+ // 鎼滅储鏍忛噸缃簨浠�
+ form.on('submit(reset)', function (data) {
+ pageCurr = 1;
+ clearFormVal($('#search-box'));
+ tableReload(false);
+ });
+
+ // 鏃堕棿閫夋嫨鍣�
+ layDate.render({
+ elem: '#modiTime\\$',
+ type: 'datetime'
+ });
+ layDate.render({
+ elem: '#appeTime\\$',
+ type: 'datetime'
+ });
+
+
+});
+
+// 鍏抽棴鍔ㄤ綔
+$(document).on('click','#data-detail-close', function () {
+ parent.layer.closeAll();
+});
+
+function tableReload(child) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ (child ? parent.tableIns : tableIns).reload({
+ where: searchData,
+ page: {
+ curr: pageCurr
+ },
+ done: function (res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ if (res.data.length === 0 && count !== 0) {
+ tableIns.reload({
+ where: searchData,
+ page: {
+ curr: pageCurr-1
+ }
+ });
+ pageCurr -= 1;
+ }
+ limit(child);
+ }
+ });
+}
+
+function setFormVal(el, data, showImg) {
+ for (var val in data) {
+ var find = el.find(":input[id='" + val + "']");
+ if (find[0]!=null){
+ if (find[0].type === 'checkbox'){
+ if (data[val]==='Y'){
+ find.attr("checked","checked");
+ find.val('Y');
+ } else {
+ find.remove("checked");
+ find.val('N');
+ }
+ continue;
+ }
+ }
+ find.val(data[val]);
+ if (showImg){
+ var next = find.next();
+ if (next.get(0)){
+ if (next.get(0).localName === "img") {
+ find.hide();
+ next.attr("src", data[val]);
+ next.show();
+ }
+ }
+ }
+ }
+}
+
+function clearFormVal(el) {
+ $(':input', el)
+ .val('')
+ .removeAttr('checked')
+ .removeAttr('selected');
+}
+
+function detailScreen(index) {
+ var detail = layer.getChildFrame('#data-detail', index);
+ var height = detail.height()+60;
+ if (height > ($(window).height()*0.9)) {
+ height = ($(window).height()*0.8);
+ }
+ layer.style(index, {
+// top: (($(window).height()-height)/3)+"px",
+ height: height+'px'
+ });
+}
+
+$('body').keydown(function () {
+ if (event.keyCode === 13) {
+ $("#search").click();
+ }
+});
diff --git a/src/main/webapp/static/js/wrkMastLog/wrkMastLog.js b/src/main/webapp/static/js/wrkMastLog/wrkMastLog.js
new file mode 100644
index 0000000..c782e4c
--- /dev/null
+++ b/src/main/webapp/static/js/wrkMastLog/wrkMastLog.js
@@ -0,0 +1,532 @@
+var pageCurr;
+var wrkNo;
+var ioTime;
+layui.use(['table','laydate', 'form'], function(){
+ var table = layui.table;
+ var $ = layui.jquery;
+ var layer = layui.layer;
+ var layDate = layui.laydate;
+ var form = layui.form;
+
+ // 鏁版嵁娓叉煋
+ tableIns = table.render({
+ elem: '#wrkMastLog',
+ headers: {token: localStorage.getItem('token')},
+ url: baseUrl+'/wrkMastLog/list/auth',
+ page: true,
+ limit: 16,
+ limits: [16, 30, 50, 100, 200, 500],
+ even: true,
+ toolbar: '#toolbar',
+ cellMinWidth: 50,
+ cols: [[
+ // {type: 'checkbox'}
+// ,{field: 'id', title: 'ID', sort: true,align: 'center', fixed: 'left', width: 80}
+// ,{field: 'id', align: 'center',title: '缂栧彿'}
+ {field: 'wrkNo', align: 'center',title: '宸ヤ綔鍙�',event: 'wrkNo', sort: true}
+ ,{field: 'ioTime$', align: 'center',title: '宸ヤ綔鏃堕棿', width:160, sort: true}
+ ,{field: 'wrkSts$', align: 'center',title: '宸ヤ綔鐘舵��', width:160}
+ ,{field: 'ioType$', align: 'center',title: '鍏ュ嚭搴撶被鍨�', width:160}
+ ,{field: 'ioPri', align: 'center',title: '浼樺厛绾�'}
+ ,{field: 'sourceStaNo$', align: 'center',title: '婧愮珯'}
+ ,{field: 'staNo$', align: 'center',title: '鐩爣绔�'}
+ ,{field: 'sourceLocNo$', align: 'center',title: '婧愬簱浣�'}
+ ,{field: 'locNo$', align: 'center',title: '鐩爣搴撲綅'}
+ // ,{field: 'picking', align: 'center',title: '鎷f枡', templet:function(row){
+ // var html = "<input value='picking' type='checkbox' lay-skin='primary' lay-filter='tableCheckbox' table-index='"+row.LAY_TABLE_INDEX+"'";
+ // if(row.picking === 'Y'){html += " checked ";}
+ // html += ">";
+ // return html;
+ // }}
+ // ,{field: 'exitMk', align: 'center',title: '閫�鍑�', templet:function(row){
+ // var html = "<input value='exitMk' type='checkbox' lay-skin='primary' lay-filter='tableCheckbox' table-index='"+row.LAY_TABLE_INDEX+"'";
+ // if(row.exitMk === 'Y'){html += " checked ";}
+ // html += ">";
+ // return html;
+ // }}
+ // ,{field: 'emptyMk', align: 'center',title: '绌烘澘', templet:function(row){
+ // var html = "<input value='emptyMk' type='checkbox' lay-skin='primary' lay-filter='tableCheckbox' table-index='"+row.LAY_TABLE_INDEX+"'";
+ // if(row.emptyMk === 'Y'){html += " checked ";}
+ // html += ">";
+ // return html;
+ // }}
+ //
+ // ,{field: 'crnStrTime$', align: 'center',title: '鍫嗗灈鏈哄惎鍔ㄦ椂闂�'}
+ // ,{field: 'crnEndTime$', align: 'center',title: '鍫嗗灈鏈哄仠姝㈡椂闂�'}
+ // ,{field: 'plcStrTime$', align: 'center',title: '鎷f枡鏃堕棿'}
+ ,{field: 'modiUser$', align: 'center',title: '淇敼浜哄憳', hide:true}
+ ,{field: 'modiTime$', align: 'center',title: '淇敼鏃堕棿', hide:true}
+ // ,{field: 'appeUser$', align: 'center',title: '鍒涘缓鑰�',event: 'appeUser', style: 'cursor:pointer'}
+ // ,{field: 'appeTime$', align: 'center',title: '娣诲姞鏃堕棿'}
+ ,{field: 'barcode', align: 'center',title: '鏉$爜'}
+ // ,{field: 'fullPlt', align: 'center',title: '婊℃澘', templet:function(row){
+ // var html = "<input value='fullPlt' type='checkbox' lay-skin='primary' lay-filter='tableCheckbox' table-index='"+row.LAY_TABLE_INDEX+"'";
+ // if(row.fullPlt === 'Y'){html += " checked ";}
+ // html += ">";
+ // return html;
+ // }}
+
+ ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width: 80}
+ ]],
+ request: {
+ pageName: 'curr',
+ pageSize: 'limit'
+ },
+ parseData: function (res) {
+ return {
+ 'code': res.code,
+ 'msg': res.msg,
+ 'count': res.data.total,
+ 'data': res.data.records
+ }
+ },
+ response: {
+ statusCode: 200
+ },
+ done: function(res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ limit();
+ form.on('checkbox(tableCheckbox)', function (data) {
+ var _index = $(data.elem).attr('table-index')||0;
+ if(data.elem.checked){
+ res.data[_index][data.value] = 'Y';
+ }else{
+ res.data[_index][data.value] = 'N';
+ }
+ });
+ }
+ });
+
+ // 鐩戝惉鎺掑簭浜嬩欢
+ table.on('sort(wrkMastLog)', function (obj) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ searchData['orderByField'] = obj.field;
+ searchData['orderByType'] = obj.type;
+ tableIns.reload({
+ where: searchData,
+ page: {
+ curr: 1
+ },
+ done: function (res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ limit();
+ }
+ });
+ });
+
+ // 鐩戝惉澶村伐鍏锋爮浜嬩欢
+ table.on('toolbar(wrkMastLog)', function (obj) {
+ var checkStatus = table.checkStatus(obj.config.id);
+ switch(obj.event) {
+ case 'addData':
+ layer.open({
+ type: 2,
+ title: '鏂板',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: 'wrkMastLog_detail.html',
+ success: function(layero, index){
+ layer.getChildFrame('#data-detail-submit-edit', index).hide();
+ clearFormVal(layer.getChildFrame('#detail', index));
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+ }
+ });
+ break;
+ case 'refreshData':
+ tableIns.reload({
+ page: {
+ curr: pageCurr
+ }
+ });
+ limit();
+ break;
+ case 'deleteData':
+ var data = checkStatus.data;
+ if (data.length === 0){
+ layer.msg('璇烽�夋嫨鏁版嵁');
+ } else {
+ layer.confirm('纭畾鍒犻櫎'+(data.length===1?'姝�':data.length)+'鏉℃暟鎹悧', function(){
+ $.ajax({
+ url: baseUrl+"/wrkMastLog/delete/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: {param: JSON.stringify(data)},
+ method: 'POST',
+ traditional:true,
+ success: function (res) {
+ if (res.code === 200){
+ layer.closeAll();
+ tableReload(false);
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg)
+ }
+ }
+ })
+ });
+ }
+ break;
+ case 'exportData':
+ layer.confirm('纭畾瀵煎嚭Excel鍚�', {shadeClose: true}, function(){
+ var titles=[];
+ var fields=[];
+ obj.config.cols[0].map(function (col) {
+ if (col.type === 'normal' && col.hide === false && col.toolbar == null) {
+ titles.push(col.title);
+ fields.push(col.field);
+ }
+ });
+ var exportData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ exportData[this.name] = this.value;
+ });
+ var param = {
+ 'wrkMastLog': exportData,
+ 'fields': fields
+ };
+ $.ajax({
+ url: baseUrl+"/wrkMastLog/export/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: JSON.stringify(param),
+ dataType:'json',
+ contentType:'application/json;charset=UTF-8',
+ method: 'POST',
+ success: function (res) {
+ layer.closeAll();
+ if (res.code === 200) {
+ table.exportFile(titles,res.data,'xls');
+ } else if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg)
+ }
+ }
+ });
+ });
+ break;
+ }
+ });
+
+ // 鐩戝惉琛屽伐鍏蜂簨浠�
+ table.on('tool(wrkMastLog)', function(obj){
+ var data = obj.data;
+ switch (obj.event) {
+ // 鏄庣粏灞曠ず
+ case 'detlShow':
+ wrkNo = data.wrkNo;
+ ioTime = data.ioTime;
+ // 琛ㄦ牸涓嬫柟鏄剧ず
+ // locDetl(data.wrkNo);
+ // 寮瑰眰鏄剧ず
+ layer.open({
+ type: 2,
+ title: '宸ヤ綔鏄庣粏鍘嗗彶妗�',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: true,
+ content: 'wrkDetlLog.html',
+ success: function(layero, index){
+ }
+ });
+ break;
+ // 璇︽儏
+ case 'detail':
+ layer.open({
+ type: 2,
+ title: '璇︽儏',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: false,
+ content: 'wrkMastLog_detail.html',
+ success: function(layero, index){
+ setFormVal(layer.getChildFrame('#detail', index), data, true);
+ top.convertDisabled(layer.getChildFrame('#data-detail :input', index), true);
+ layero.find('iframe')[0].contentWindow.layui.form.render('select');
+ layero.find('iframe')[0].contentWindow.layui.form.render('checkbox');
+ layer.getChildFrame('#data-detail-submit-save,#data-detail-submit-edit,#prompt', index).hide();
+ layer.getChildFrame('##dealDownLine', index).hide();
+ layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"});
+
+ }
+ });
+ break;
+ }
+ });
+
+ // 鏁版嵁淇濆瓨鍔ㄤ綔
+ form.on('submit(save)', function () {
+ if (banMsg != null){
+ layer.msg(banMsg);
+ return;
+ }
+ method("add");
+ });
+
+ // 鏁版嵁淇敼鍔ㄤ綔
+ form.on('submit(edit)', function () {
+ method("update")
+ });
+
+ function method(name){
+ var index = layer.load(1, {
+ shade: [0.5,'#000'] //0.1閫忔槑搴︾殑鑳屾櫙
+ });
+ var data = {
+// id: $('#id').val(),
+ id: $('#id').val(),
+ wrkNo: $('#wrkNo').val(),
+ invWh: $('#invWh').val(),
+ ymd: top.strToDate($('#ymd\\$').val()),
+ mk: $('#mk').val(),
+ whsType: $('#whsType').val(),
+ wrkSts: $('#wrkSts').val(),
+ ioType: $('#ioType').val(),
+ crnNo: $('#crnNo').val(),
+ sheetNo: $('#sheetNo').val(),
+ ioPri: $('#ioPri').val(),
+ wrkDate: top.strToDate($('#wrkDate\\$').val()),
+ locNo: $('#locNo').val(),
+ staNo: $('#staNo').val(),
+ sourceStaNo: $('#sourceStaNo').val(),
+ sourceLocNo: $('#sourceLocNo').val(),
+ locSts: $('#locSts').val(),
+ picking: $('#picking').val(),
+ linkMis: $('#linkMis').val(),
+ onlineYn: $('#onlineYn').val(),
+ updMk: $('#updMk').val(),
+ exitMk: $('#exitMk').val(),
+ pltType: $('#pltType').val(),
+ emptyMk: $('#emptyMk').val(),
+ ioTime: top.strToDate($('#ioTime\\$').val()),
+ ctnType: $('#ctnType').val(),
+ packed: $('#packed').val(),
+ oveMk: $('#oveMk').val(),
+ mtnType: $('#mtnType').val(),
+ userNo: $('#userNo').val(),
+ crnStrTime: top.strToDate($('#crnStrTime\\$').val()),
+ crnEndTime: top.strToDate($('#crnEndTime\\$').val()),
+ plcStrTime: top.strToDate($('#plcStrTime\\$').val()),
+ crnPosTime: top.strToDate($('#crnPosTime\\$').val()),
+ loadTime: $('#loadTime').val(),
+ expTime: $('#expTime').val(),
+ refWrkno: $('#refWrkno').val(),
+ refIotime: top.strToDate($('#refIotime\\$').val()),
+ modiUser: $('#modiUser').val(),
+ modiTime: top.strToDate($('#modiTime\\$').val()),
+ appeUser: $('#appeUser').val(),
+ appeTime: top.strToDate($('#appeTime\\$').val()),
+ pauseMk: $('#pauseMk').val(),
+ errorTime: top.strToDate($('#errorTime\\$').val()),
+ errorMemo: $('#errorMemo').val(),
+ ctnKind: $('#ctnKind').val(),
+ manuType: $('#manuType').val(),
+ memoM: $('#memoM').val(),
+ scWeight: $('#scWeight').val(),
+ logMk: $('#logMk').val(),
+ logErrTime: top.strToDate($('#logErrTime\\$').val()),
+ logErrMemo: $('#logErrMemo').val(),
+ barcode: $('#barcode').val(),
+ PdcType: $('#PdcType').val(),
+ ctnNo: $('#ctnNo').val(),
+ fullPlt: $('#fullPlt').val(),
+
+ };
+ $.ajax({
+ url: baseUrl+"/wrkMastLog/"+name+"/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: top.reObject(data),
+ method: 'POST',
+ success: function (res) {
+ if (res.code === 200){
+ parent.layer.closeAll();
+ parent.$(".layui-laypage-btn")[0].click();
+ $("#data-detail :input").each(function () {
+ $(this).val("");
+ });
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg)
+ }
+ layer.close(index);
+ }
+ })
+ }
+
+ // 澶嶉�夋浜嬩欢
+ form.on('checkbox(detailCheckbox)', function (data) {
+ var el = data.elem;
+ if (el.checked) {
+ $(el).val('Y');
+ } else {
+ $(el).val('N');
+ }
+ });
+
+ // 鎼滅储鏍忔悳绱簨浠�
+ form.on('submit(search)', function (data) {
+ pageCurr = 1;
+ tableReload(false);
+ });
+
+ // 鎼滅储鏍忛噸缃簨浠�
+ form.on('submit(reset)', function (data) {
+ pageCurr = 1;
+ clearFormVal($('#search-box'));
+ tableReload(false);
+ });
+
+ // 鏃堕棿閫夋嫨鍣�
+ layDate.render({
+ elem: '#ymd\\$',
+ type: 'datetime'
+ });
+ layDate.render({
+ elem: '#wrkDate\\$',
+ type: 'datetime'
+ });
+ layDate.render({
+ elem: '#ioTime\\$',
+ type: 'datetime'
+ });
+ layDate.render({
+ elem: '#crnStrTime\\$',
+ type: 'datetime'
+ });
+ layDate.render({
+ elem: '#crnEndTime\\$',
+ type: 'datetime'
+ });
+ layDate.render({
+ elem: '#plcStrTime\\$',
+ type: 'datetime'
+ });
+ layDate.render({
+ elem: '#crnPosTime\\$',
+ type: 'datetime'
+ });
+ layDate.render({
+ elem: '#refIotime\\$',
+ type: 'datetime'
+ });
+ layDate.render({
+ elem: '#modiTime\\$',
+ type: 'datetime'
+ });
+ layDate.render({
+ elem: '#appeTime\\$',
+ type: 'datetime'
+ });
+ layDate.render({
+ elem: '#errorTime\\$',
+ type: 'datetime'
+ });
+ layDate.render({
+ elem: '#logErrTime\\$',
+ type: 'datetime'
+ });
+ layDate.render({
+ elem: '.layui-laydate-range'
+ ,type: 'datetime'
+ ,range: true
+ });
+
+});
+
+// 鍏抽棴鍔ㄤ綔
+$(document).on('click','#data-detail-close', function () {
+ parent.layer.closeAll();
+});
+
+function tableReload(child) {
+ var searchData = {};
+ $.each($('#search-box [name]').serializeArray(), function() {
+ searchData[this.name] = this.value;
+ });
+ (child ? parent.tableIns : tableIns).reload({
+ where: searchData,
+ page: {
+ curr: pageCurr
+ },
+ done: function (res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ if (res.data.length === 0 && count !== 0) {
+ tableIns.reload({
+ where: searchData,
+ page: {
+ curr: pageCurr-1
+ }
+ });
+ pageCurr -= 1;
+ }
+ limit(child);
+ }
+ });
+}
+
+function setFormVal(el, data, showImg) {
+ for (var val in data) {
+ var find = el.find(":input[id='" + val + "']");
+ if (find[0]!=null){
+ if (find[0].type === 'checkbox'){
+ if (data[val]==='Y'){
+ find.attr("checked","checked");
+ find.val('Y');
+ } else {
+ find.remove("checked");
+ find.val('N');
+ }
+ continue;
+ }
+ }
+ find.val(data[val]);
+ if (showImg){
+ var next = find.next();
+ if (next.get(0)){
+ if (next.get(0).localName === "img") {
+ find.hide();
+ next.attr("src", data[val]);
+ next.show();
+ }
+ }
+ }
+ }
+}
+
+function clearFormVal(el) {
+ $(':input', el)
+ .val('')
+ .removeAttr('checked')
+ .removeAttr('selected');
+}
+
+function detailScreen(index) {
+ var detail = layer.getChildFrame('#data-detail', index);
+ var height = detail.height()+60;
+ if (height > ($(window).height()*0.9)) {
+ height = ($(window).height()*0.8);
+ }
+ layer.style(index, {
+// top: (($(window).height()-height)/3)+"px",
+ height: height+'px'
+ });
+}
+
+$('body').keydown(function () {
+ if (event.keyCode === 13) {
+ $("#search").click();
+ }
+});
diff --git a/src/main/webapp/static/layui/lay/modules/admin.js b/src/main/webapp/static/layui/lay/modules/admin.js
new file mode 100644
index 0000000..fc8a4c4
--- /dev/null
+++ b/src/main/webapp/static/layui/lay/modules/admin.js
@@ -0,0 +1,1667 @@
+锘�/** EasyWeb iframe v3.1.8 date:2020-05-04 License By http://easyweb.vip */
+
+layui.define(['layer'], function (exports) {
+ var $ = layui.jquery;
+ var layer = layui.layer;
+ var setter = layui.cache;
+ var bodyDOM = '.layui-layout-admin>.layui-body';
+ var tabDOM = bodyDOM + '>.layui-tab';
+ var sideDOM = '.layui-layout-admin>.layui-side>.layui-side-scroll';
+ var headerDOM = '.layui-layout-admin>.layui-header';
+ var navFilter = 'admin-side-nav';
+ var admin = {version: '3.1.8', layerData: {}};
+
+ /** 璁剧疆渚ф爮鎶樺彔 */
+ admin.flexible = function (expand) {
+ if (window !== top && !admin.isTop() && top.layui && top.layui.admin) return top.layui.admin.flexible(expand);
+ var $layout = $('.layui-layout-admin');
+ var isExapnd = $layout.hasClass('admin-nav-mini');
+ if (expand === undefined) expand = isExapnd;
+ if (isExapnd === expand) {
+ if (window.sideFlexTimer) clearTimeout(window.sideFlexTimer);
+ $layout.addClass('admin-side-flexible');
+ window.sideFlexTimer = setTimeout(function () {
+ $layout.removeClass('admin-side-flexible');
+ }, 600);
+ if (expand) {
+ admin.hideTableScrollBar();
+ $layout.removeClass('admin-nav-mini');
+ } else {
+ $layout.addClass('admin-nav-mini');
+ }
+ layui.event.call(this, 'admin', 'flexible({*})', {expand: expand});
+ }
+ };
+
+ /** 璁剧疆瀵艰埅鏍忛�変腑 */
+ admin.activeNav = function (url) {
+ if (window !== top && !admin.isTop() && top.layui && top.layui.admin) return top.layui.admin.activeNav(url);
+ if (!url) return console.warn('active url is null');
+ $(sideDOM + '>.layui-nav .layui-nav-item .layui-nav-child dd.layui-this').removeClass('layui-this');
+ $(sideDOM + '>.layui-nav .layui-nav-item.layui-this').removeClass('layui-this');
+ var $a = $(sideDOM + '>.layui-nav a[lay-href="' + url + '"]');
+ if ($a.length === 0) return console.warn(url + ' not found');
+ var isMini = $('.layui-layout-admin').hasClass('admin-nav-mini');
+ if ($(sideDOM + '>.layui-nav').attr('lay-shrink') === '_all') { // 鎵嬮鐞存晥鏋�
+ var $pChilds = $a.parent('dd').parents('.layui-nav-child');
+ if (!isMini) {
+ $(sideDOM + '>.layui-nav .layui-nav-itemed>.layui-nav-child').not($pChilds)
+ .css('display', 'block').slideUp('fast', function () {
+ $(this).css('display', '');
+ });
+ }
+ $(sideDOM + '>.layui-nav .layui-nav-itemed').not($pChilds.parent()).removeClass('layui-nav-itemed');
+ }
+ $a.parent().addClass('layui-this'); // 閫変腑褰撳墠
+ // 灞曞紑鎵�鏈夌埗绾�
+ var $asParents = $a.parent('dd').parents('.layui-nav-child').parent();
+ if (!isMini) {
+ var $childs = $asParents.not('.layui-nav-itemed').children('.layui-nav-child');
+ $childs.slideDown('fast', function () {
+ if ($(this).is($childs.last())) {
+ $childs.css('display', '');
+ // 鑿滃崟瓒呭嚭灞忓箷鑷姩婊氬姩
+ var topBeyond = $a.offset().top + $a.outerHeight() + 30 - admin.getPageHeight();
+ var topDisparity = 50 + 65 - $a.offset().top;
+ if (topBeyond > 0) {
+ $(sideDOM).animate({'scrollTop': $(sideDOM).scrollTop() + topBeyond}, 300);
+ } else if (topDisparity > 0) {
+ $(sideDOM).animate({'scrollTop': $(sideDOM).scrollTop() - topDisparity}, 300);
+ }
+ }
+ });
+ }
+ $asParents.addClass('layui-nav-itemed');
+ // 閫傞厤澶氱郴缁熸ā寮�
+ $('ul[lay-filter="' + navFilter + '"]').addClass('layui-hide');
+ var $aUl = $a.parents('.layui-nav');
+ $aUl.removeClass('layui-hide');
+ $(headerDOM + '>.layui-nav>.layui-nav-item').removeClass('layui-this');
+ $(headerDOM + '>.layui-nav>.layui-nav-item>a[nav-bind="' + $aUl.attr('nav-id') + '"]').parent().addClass('layui-this');
+ };
+
+ /** 鍙充晶寮瑰嚭 */
+ admin.popupRight = function (param) {
+ param.anim = -1;
+ param.offset = 'r';
+ param.move = false;
+ param.fixed = true;
+ if (param.area === undefined) param.area = '336px';
+ if (param.title === undefined) param.title = false;
+ if (param.closeBtn === undefined) param.closeBtn = false;
+ if (param.shadeClose === undefined) param.shadeClose = true;
+ if (param.skin === undefined) param.skin = 'layui-anim layui-anim-rl layui-layer-adminRight';
+ return admin.open(param);
+ };
+
+ /** 灏佽layer.open */
+ admin.open = function (param) {
+ if (param.content && param.type === 2) param.url = undefined; // 鍙傛暟绾犳
+ if (param.url && (param.type === 2 || param.type === undefined)) param.type = 1; // 鍙傛暟绾犳
+ if (param.area === undefined) param.area = param.type === 2 ? ['360px', '300px'] : '360px';
+ if (param.offset === undefined) param.offset = '70px';
+ if (param.shade === undefined) param.shade = .1;
+ if (param.fixed === undefined) param.fixed = false;
+ if (param.resize === undefined) param.resize = false;
+ if (param.skin === undefined) param.skin = 'layui-layer-admin';
+ var eCallBack = param.end;
+ param.end = function () {
+ layer.closeAll('tips'); // 鍏抽棴琛ㄥ崟楠岃瘉鐨則ips
+ eCallBack && eCallBack();
+ };
+ if (param.url) {
+ var sCallBack = param.success;
+ param.success = function (layero, index) {
+ $(layero).data('tpl', param.tpl || '');
+ admin.reloadLayer(index, param.url, sCallBack);
+ };
+ } else if (param.tpl && param.content) {
+ param.content = admin.util.tpl(param.content, param.data, setter.tplOpen, setter.tplClose);
+ }
+ var layIndex = layer.open(param);
+ if (param.data) admin.layerData['d' + layIndex] = param.data;
+ return layIndex;
+ };
+
+ /** 鑾峰彇寮圭獥鏁版嵁 */
+ admin.getLayerData = function (index, key) {
+ if (index === undefined) {
+ index = parent.layer.getFrameIndex(window.name);
+ if (index === undefined) return null;
+ else return parent.layui.admin.getLayerData(parseInt(index), key);
+ } else if (isNaN(index)) {
+ index = admin.getLayerIndex(index);
+ }
+ if (index === undefined) return;
+ var layerData = admin.layerData['d' + index];
+ if (key && layerData) return layerData[key];
+ return layerData;
+ };
+
+ /** 鏀惧叆寮圭獥鏁版嵁 */
+ admin.putLayerData = function (key, value, index) {
+ if (index === undefined) {
+ index = parent.layer.getFrameIndex(window.name);
+ if (index === undefined) return;
+ else return parent.layui.admin.putLayerData(key, value, parseInt(index));
+ } else if (isNaN(index)) {
+ index = admin.getLayerIndex(index);
+ }
+ if (index === undefined) return;
+ var layerData = admin.getLayerData(index);
+ if (!layerData) layerData = {};
+ layerData[key] = value;
+ admin.layerData['d' + index] = layerData;
+ };
+
+ /** 鍒锋柊url鏂瑰紡鐨刲ayer */
+ admin.reloadLayer = function (index, url, success) {
+ if (typeof url === 'function') {
+ success = url;
+ url = undefined;
+ }
+ if (isNaN(index)) index = admin.getLayerIndex(index);
+ if (index === undefined) return;
+ var $layero = $('#layui-layer' + index);
+ if (url === undefined) url = $layero.data('url');
+ if (!url) return;
+ $layero.data('url', url);
+ admin.showLoading($layero);
+ admin.ajax({
+ url: url,
+ dataType: 'html',
+ success: function (res) {
+ admin.removeLoading($layero, false);
+ if (typeof res !== 'string') res = JSON.stringify(res);
+ var tpl = $layero.data('tpl');
+ // 妯℃澘瑙f瀽
+ if (tpl === true || tpl === 'true') {
+ var data = admin.getLayerData(index) || {};
+ data.layerIndex = index;
+ // 妯℃澘閲岄潰鏈夊姩鎬佹ā鏉垮鐞�
+ var $html = $('<div>' + res + '</div>'), tplAll = {};
+ $html.find('script,[tpl-ignore]').each(function (i) {
+ var $this = $(this);
+ tplAll['temp_' + i] = $this[0].outerHTML;
+ $this.after('${temp_' + i + '}').remove();
+ });
+ res = admin.util.tpl($html.html(), data, setter.tplOpen, setter.tplClose);
+ for (var f in tplAll) res = res.replace('${' + f + '}', tplAll[f]);
+ }
+ $layero.children('.layui-layer-content').html(res);
+ admin.renderTpl('#layui-layer' + index + ' [ew-tpl]');
+ success && success($layero[0], index);
+ }
+ });
+ };
+
+ /** 灏佽layer.alert */
+ admin.alert = function (content, options, yes) {
+ if (typeof options === 'function') {
+ yes = options;
+ options = {};
+ }
+ if (options.skin === undefined) options.skin = 'layui-layer-admin';
+ if (options.shade === undefined) options.shade = .1;
+ return layer.alert(content, options, yes);
+ };
+
+ /** 灏佽layer.confirm */
+ admin.confirm = function (content, options, yes, cancel) {
+ if (typeof options === 'function') {
+ cancel = yes;
+ yes = options;
+ options = {};
+ }
+ if (options.skin === undefined) options.skin = 'layui-layer-admin';
+ if (options.shade === undefined) options.shade = .1;
+ return layer.confirm(content, options, yes, cancel);
+ };
+
+ /** 灏佽layer.prompt */
+ admin.prompt = function (options, yes) {
+ if (typeof options === 'function') {
+ yes = options;
+ options = {};
+ }
+ if (options.skin === undefined) options.skin = 'layui-layer-admin layui-layer-prompt';
+ if (options.shade === undefined) options.shade = .1;
+ return layer.prompt(options, yes);
+ };
+
+ /** 灏佽ajax璇锋眰锛岃繑鍥炴暟鎹被鍨嬩负json */
+ admin.req = function (url, data, success, method, option) {
+ if (typeof data === 'function') {
+ option = method;
+ method = success;
+ success = data;
+ data = {};
+ }
+ if (method !== undefined && typeof method !== 'string') {
+ option = method;
+ method = undefined;
+ }
+ if (!method) method = 'GET';
+ if (typeof data === 'string') {
+ if (!option) option = {};
+ if (!option.contentType) option.contentType = 'application/json;charset=UTF-8';
+ } else if (setter.reqPutToPost) {
+ if ('put' === method.toLowerCase()) {
+ method = 'POST';
+ data._method = 'PUT';
+ } else if ('delete' === method.toLowerCase()) {
+ method = 'GET';
+ data._method = 'DELETE';
+ }
+ }
+ return admin.ajax($.extend({
+ url: (setter.baseServer || '') + url, data: data, type: method, dataType: 'json', success: success
+ }, option));
+ };
+
+ /** 灏佽ajax璇锋眰 */
+ admin.ajax = function (param) {
+ var oldParam = admin.util.deepClone(param);
+ if (!param.dataType) param.dataType = 'json';
+ if (!param.headers) param.headers = {};
+ // 缁熶竴璁剧疆header
+ var headers = setter.getAjaxHeaders(param.url);
+ if (headers) {
+ for (var i = 0; i < headers.length; i++) {
+ if (param.headers[headers[i].name] === undefined) param.headers[headers[i].name] = headers[i].value;
+ }
+ }
+ // success棰勫鐞�
+ var success = param.success;
+ param.success = function (result, status, xhr) {
+ var before = setter.ajaxSuccessBefore(admin.parseJSON(result), param.url, {
+ param: oldParam, reload: function (p) {
+ admin.ajax($.extend(true, oldParam, p));
+ }, update: function (r) {
+ result = r;
+ }, xhr: xhr
+ });
+ if (before !== false) success && success(result, status, xhr);
+ else param.cancel && param.cancel();
+ };
+ param.error = function (xhr, status) {
+ param.success({code: xhr.status, msg: xhr.statusText}, status, xhr);
+ };
+ // 瑙e喅缂撳瓨闂
+ if (layui.cache.version && (!setter.apiNoCache || param.dataType.toLowerCase() !== 'json')) {
+ if (param.url.indexOf('?') === -1) param.url += '?v=';
+ else param.url += '&v=';
+ if (layui.cache.version === true) param.url += new Date().getTime();
+ else param.url += layui.cache.version;
+ }
+ return $.ajax(param);
+ };
+
+ /** 瑙f瀽json */
+ admin.parseJSON = function (str) {
+ if (typeof str === 'string') {
+ try {
+ return JSON.parse(str);
+ } catch (e) {
+ }
+ }
+ return str;
+ };
+
+ /** 鏄剧ず鍔犺浇鍔ㄧ敾 */
+ admin.showLoading = function (elem, type, opacity, size) {
+ if (elem !== undefined && (typeof elem !== 'string') && !(elem instanceof $)) {
+ type = elem.type;
+ opacity = elem.opacity;
+ size = elem.size;
+ elem = elem.elem;
+ }
+ if (type === undefined) type = setter.defaultLoading || 1;
+ if (size === undefined) size = 'sm';
+ if (elem === undefined) elem = 'body';
+ var loader = [
+ '<div class="ball-loader ' + size + '"><span></span><span></span><span></span><span></span></div>',
+ '<div class="rubik-loader ' + size + '"></div>',
+ '<div class="signal-loader ' + size + '"><span></span><span></span><span></span><span></span></div>',
+ '<div class="layui-loader ' + size + '"><i class="layui-icon layui-icon-loading layui-anim layui-anim-rotate layui-anim-loop"></i></div>'
+ ];
+ $(elem).addClass('page-no-scroll'); // 绂佺敤婊氬姩鏉�
+ $(elem).scrollTop(0);
+ var $loading = $(elem).children('.page-loading');
+ if ($loading.length <= 0) {
+ $(elem).append('<div class="page-loading">' + loader[type - 1] + '</div>');
+ $loading = $(elem).children('.page-loading');
+ }
+ if (opacity !== undefined) $loading.css('background-color', 'rgba(255,255,255,' + opacity + ')');
+ $loading.show();
+ };
+
+ /** 绉婚櫎鍔犺浇鍔ㄧ敾 */
+ admin.removeLoading = function (elem, fade, del) {
+ if (elem === undefined) elem = 'body';
+ if (fade === undefined) fade = true;
+ var $loading = $(elem).children('.page-loading');
+ if (del) $loading.remove();
+ else if (fade) $loading.fadeOut('fast');
+ else $loading.hide();
+ $(elem).removeClass('page-no-scroll');
+ };
+
+ /** 缂撳瓨涓存椂鏁版嵁 */
+ admin.putTempData = function (key, value, local) {
+ var tableName = local ? setter.tableName : setter.tableName + '_tempData';
+ if (value === undefined || value === null) {
+ if (local) layui.data(tableName, {key: key, remove: true});
+ else layui.sessionData(tableName, {key: key, remove: true});
+ } else {
+ if (local) layui.data(tableName, {key: key, value: value});
+ else layui.sessionData(tableName, {key: key, value: value});
+ }
+ };
+
+ /** 鑾峰彇缂撳瓨涓存椂鏁版嵁 */
+ admin.getTempData = function (key, local) {
+ if (typeof key === 'boolean') {
+ local = key;
+ key = undefined;
+ }
+ var tableName = local ? setter.tableName : setter.tableName + '_tempData';
+ var tempData = local ? layui.data(tableName) : layui.sessionData(tableName);
+ if (!key) return tempData;
+ return tempData ? tempData[key] : undefined;
+ };
+
+ /** 婊戝姩閫夐」鍗� */
+ admin.rollPage = function (d) {
+ if (window !== top && !admin.isTop() && top.layui && top.layui.admin) return top.layui.admin.rollPage(d);
+ var $tabTitle = $(tabDOM + '>.layui-tab-title');
+ var left = $tabTitle.scrollLeft();
+ if ('left' === d) {
+ $tabTitle.animate({'scrollLeft': left - 120}, 100);
+ } else if ('auto' === d) {
+ var autoLeft = 0;
+ $tabTitle.children("li").each(function () {
+ if ($(this).hasClass('layui-this')) return false;
+ else autoLeft += $(this).outerWidth();
+ });
+ $tabTitle.animate({'scrollLeft': autoLeft - 120}, 100);
+ } else {
+ $tabTitle.animate({'scrollLeft': left + 120}, 100);
+ }
+ };
+
+ /** 鍒锋柊褰撳墠閫夐」鍗� */
+ admin.refresh = function (url, isIndex) {
+ if (window !== top && !admin.isTop() && top.layui && top.layui.admin) return top.layui.admin.refresh(url);
+ var $iframe;
+ if (!url) {
+ $iframe = $(tabDOM + '>.layui-tab-content>.layui-tab-item.layui-show>.admin-iframe');
+ if (!$iframe || $iframe.length <= 0) $iframe = $(bodyDOM + '>div>.admin-iframe');
+ } else {
+ $iframe = $(tabDOM + '>.layui-tab-content>.layui-tab-item>.admin-iframe[lay-id="' + url + '"]');
+ if (!$iframe || $iframe.length <= 0) $iframe = $(bodyDOM + '>.admin-iframe');
+ }
+ if (!$iframe || !$iframe[0]) return console.warn(url + ' is not found');
+ try {
+ if (isIndex && $iframe[0].contentWindow.refreshTab) {
+ $iframe[0].contentWindow.refreshTab();
+ } else {
+ admin.showLoading({elem: $iframe.parent(), size: ''});
+ $iframe[0].contentWindow.location.reload();
+ }
+ } catch (e) {
+ console.warn(e);
+ $iframe.attr('src', $iframe.attr('src'));
+ }
+ };
+
+ /** 鍏抽棴褰撳墠閫夐」鍗� */
+ admin.closeThisTabs = function (url) {
+ if (window !== top && !admin.isTop() && top.layui && top.layui.admin) return top.layui.admin.closeThisTabs(url);
+ admin.closeTabOperNav();
+ var $title = $(tabDOM + '>.layui-tab-title');
+ if (!url) {
+ if ($title.find('li').first().hasClass('layui-this')) return layer.msg('涓婚〉涓嶈兘鍏抽棴', {icon: 2});
+ $title.find('li.layui-this').find('.layui-tab-close').trigger('click');
+ } else {
+ if (url === $title.find('li').first().attr('lay-id')) return layer.msg('涓婚〉涓嶈兘鍏抽棴', {icon: 2});
+ $title.find('li[lay-id="' + url + '"]').find('.layui-tab-close').trigger('click');
+ }
+ };
+
+ /** 鍏抽棴鍏朵粬閫夐」鍗� */
+ admin.closeOtherTabs = function (url) {
+ if (window !== top && !admin.isTop() && top.layui && top.layui.admin) return top.layui.admin.closeOtherTabs(url);
+ if (!url) {
+ $(tabDOM + '>.layui-tab-title li:gt(0):not(.layui-this)').find('.layui-tab-close').trigger('click');
+ } else {
+ $(tabDOM + '>.layui-tab-title li:gt(0)').each(function () {
+ if (url !== $(this).attr('lay-id')) $(this).find('.layui-tab-close').trigger('click');
+ });
+ }
+ admin.closeTabOperNav();
+ };
+
+ /** 鍏抽棴鎵�鏈夐�夐」鍗� */
+ admin.closeAllTabs = function () {
+ if (window !== top && !admin.isTop() && top.layui && top.layui.admin) return top.layui.admin.closeAllTabs();
+ $(tabDOM + '>.layui-tab-title li:gt(0)').find('.layui-tab-close').trigger('click');
+ $(tabDOM + '>.layui-tab-title li:eq(0)').trigger('click');
+ admin.closeTabOperNav();
+ };
+
+ /** 鍏抽棴閫夐」鍗℃搷浣滆彍鍗� */
+ admin.closeTabOperNav = function () {
+ if (window !== top && !admin.isTop() && top.layui && top.layui.admin) return top.layui.admin.closeTabOperNav();
+ $('.layui-icon-down .layui-nav .layui-nav-child').removeClass('layui-show');
+ };
+
+ /** 璁剧疆涓婚 */
+ admin.changeTheme = function (theme, win, noCache, noChild) {
+ if (!noCache) admin.putSetting('defaultTheme', theme);
+ if (!win) win = top;
+ admin.removeTheme(win);
+ if (theme) {
+ try {
+ var $body = win.layui.jquery('body');
+ $body.addClass(theme);
+ $body.data('theme', theme);
+ } catch (e) {
+ }
+ }
+ if (noChild) return;
+ var ifs = win.frames;
+ for (var i = 0; i < ifs.length; i++) admin.changeTheme(theme, ifs[i], true, false);
+ };
+
+ /** 绉婚櫎涓婚 */
+ admin.removeTheme = function (w) {
+ if (!w) w = window;
+ try {
+ var $body = w.layui.jquery('body');
+ var theme = $body.data('theme');
+ if (theme) $body.removeClass(theme);
+ $body.removeData('theme');
+ } catch (e) {
+ }
+ };
+
+ /** 鍏抽棴褰撳墠iframe灞傚脊绐� */
+ admin.closeThisDialog = function () {
+ return admin.closeDialog();
+ };
+
+ /** 鍏抽棴elem鎵�鍦ㄧ殑椤甸潰灞傚脊绐� */
+ admin.closeDialog = function (elem) {
+ if (elem) layer.close(admin.getLayerIndex(elem));
+ else parent.layer.close(parent.layer.getFrameIndex(window.name));
+ };
+
+ /** 鑾峰彇椤甸潰灞傚脊绐楃殑index */
+ admin.getLayerIndex = function (elem) {
+ if (!elem) return parent.layer.getFrameIndex(window.name);
+ var id = $(elem).parents('.layui-layer').first().attr('id');
+ if (id && id.length >= 11) return id.substring(11);
+ };
+
+ /** 璁╁綋鍓嶇殑iframe寮瑰眰鑷�傚簲楂樺害 */
+ admin.iframeAuto = function () {
+ return parent.layer.iframeAuto(parent.layer.getFrameIndex(window.name));
+ };
+
+ /** 鑾峰彇娴忚鍣ㄩ珮搴� */
+ admin.getPageHeight = function () {
+ return document.documentElement.clientHeight || document.body.clientHeight;
+ };
+
+ /** 鑾峰彇娴忚鍣ㄥ搴� */
+ admin.getPageWidth = function () {
+ return document.documentElement.clientWidth || document.body.clientWidth;
+ };
+
+ /** 缁戝畾琛ㄥ崟寮圭獥 */
+ admin.modelForm = function (layero, btnFilter, formFilter) {
+ var $layero = $(layero);
+ $layero.addClass('layui-form');
+ if (formFilter) $layero.attr('lay-filter', formFilter);
+ // 纭畾鎸夐挳缁戝畾submit
+ var $btnSubmit = $layero.find('.layui-layer-btn .layui-layer-btn0');
+ $btnSubmit.attr('lay-submit', '');
+ $btnSubmit.attr('lay-filter', btnFilter);
+ };
+
+ /** loading鎸夐挳 */
+ admin.btnLoading = function (elem, text, loading) {
+ if (text !== undefined && (typeof text === 'boolean')) {
+ loading = text;
+ text = undefined;
+ }
+ if (text === undefined) text = ' 鍔犺浇涓�';
+ if (loading === undefined) loading = true;
+ var $elem = $(elem);
+ if (loading) {
+ $elem.addClass('ew-btn-loading');
+ $elem.prepend('<span class="ew-btn-loading-text"><i class="layui-icon layui-icon-loading layui-anim layui-anim-rotate layui-anim-loop"></i>' + text + '</span>');
+ $elem.attr('disabled', 'disabled').prop('disabled', true);
+ } else {
+ $elem.removeClass('ew-btn-loading');
+ $elem.children('.ew-btn-loading-text').remove();
+ $elem.removeProp('disabled').removeAttr('disabled');
+ }
+ };
+
+ /** 榧犳爣绉诲叆渚ц竟鏍忚嚜鍔ㄥ睍寮� */
+ admin.openSideAutoExpand = function () {
+ var $side = $('.layui-layout-admin>.layui-side');
+ $side.off('mouseenter.openSideAutoExpand').on("mouseenter.openSideAutoExpand", function () {
+ if (!$(this).parent().hasClass('admin-nav-mini')) return;
+ admin.flexible(true);
+ $(this).addClass('side-mini-hover');
+ });
+ $side.off('mouseleave.openSideAutoExpand').on("mouseleave.openSideAutoExpand", function () {
+ if (!$(this).hasClass('side-mini-hover')) return;
+ admin.flexible(false);
+ $(this).removeClass('side-mini-hover');
+ });
+ };
+
+ /** 琛ㄦ牸鍗曞厓鏍艰秴鍑哄唴瀹硅嚜鍔ㄥ睍寮� */
+ admin.openCellAutoExpand = function () {
+ var $body = $('body');
+ $body.off('mouseenter.openCellAutoExpand').on('mouseenter.openCellAutoExpand', '.layui-table-view td', function () {
+ $(this).find('.layui-table-grid-down').trigger('click');
+ });
+ $body.off('mouseleave.openCellAutoExpand').on('mouseleave.openCellAutoExpand', '.layui-table-tips>.layui-layer-content', function () {
+ $('.layui-table-tips-c').trigger('click');
+ });
+ };
+
+ /** open浜嬩欢瑙f瀽layer鍙傛暟 */
+ admin.parseLayerOption = function (option) {
+ // 鏁扮粍绫诲瀷杩涜杞崲
+ for (var f in option) {
+ if (!option.hasOwnProperty(f)) continue;
+ if (option[f] && option[f].toString().indexOf(',') !== -1) option[f] = option[f].toString().split(',');
+ }
+ // function绫诲瀷鍙傛暟杞崲
+ var fs = {'success': 'layero,index', 'cancel': 'index,layero', 'end': '', 'full': '', 'min': '', 'restore': ''};
+ for (var k in fs) {
+ if (!fs.hasOwnProperty(k) || !option[k]) continue;
+ try {
+ if (/^[a-zA-Z_]+[a-zA-Z0-9_]+$/.test(option[k])) option[k] += '()';
+ option[k] = new Function(fs[k], option[k]);
+ } catch (e) {
+ option[k] = undefined;
+ }
+ }
+ // content鍙栧唴瀹�
+ if (option.content && (typeof option.content === 'string') && option.content.indexOf('#') === 0) {
+ if ($(option.content).is('script')) option.content = $(option.content).html();
+ else option.content = $(option.content);
+ }
+ if (option.type === undefined && option.url === undefined) option.type = 2; // 榛樿涓篿frame绫诲瀷
+ return option;
+ };
+
+ /** 瀛楃涓插舰寮忕殑parent.parent杞瑆indow瀵硅薄 */
+ admin.strToWin = function (str) {
+ var win = window;
+ if (!str) return win;
+ var ws = str.split('.');
+ for (var i = 0; i < ws.length; i++) win = win[ws[i]];
+ return win;
+ };
+
+ /** 瑙e喅鎶樺彔渚ц竟鏍忚〃鏍兼粴鍔ㄦ潯闂幇 */
+ admin.hideTableScrollBar = function (win) {
+ if (admin.getPageWidth() <= 768) return;
+ if (!win) {
+ var $iframe = $(tabDOM + '>.layui-tab-content>.layui-tab-item.layui-show>.admin-iframe');
+ if ($iframe.length <= 0) $iframe = $(bodyDOM + '>div>.admin-iframe');
+ if ($iframe.length > 0) win = $iframe[0].contentWindow;
+ }
+ try { // 鍙兘浼氳法鍩�
+ if (window.hsbTimer) clearTimeout(window.hsbTimer);
+ win.layui.jquery('.layui-table-body.layui-table-main').addClass('no-scrollbar');
+ window.hsbTimer = setTimeout(function () {
+ win.layui.jquery('.layui-table-body.layui-table-main').removeClass('no-scrollbar');
+ }, 800);
+ } catch (e) {
+ }
+ };
+
+ /** 鍒ゆ柇鏄惁鏄富妗嗘灦 */
+ admin.isTop = function () {
+ return $(bodyDOM).length > 0;
+ };
+
+ /** admin鎻愪緵鐨勪簨浠� */
+ admin.events = {
+ /* 鎶樺彔渚у鑸� */
+ flexible: function () {
+ admin.strToWin($(this).data('window')).layui.admin.flexible();
+ },
+ /* 鍒锋柊涓讳綋閮ㄥ垎 */
+ refresh: function () {
+ admin.strToWin($(this).data('window')).layui.admin.refresh();
+ },
+ /* 鍚庨�� */
+ back: function () {
+ admin.strToWin($(this).data('window')).history.back();
+ },
+ /* 璁剧疆涓婚 */
+ theme: function () {
+ var option = admin.util.deepClone($(this).data());
+ admin.strToWin(option.window).layui.admin.popupRight($.extend({
+ id: 'layer-theme', url: option.url || 'tpl/tpl-theme.html'
+ }, admin.parseLayerOption(option)));
+ },
+ /* 鎵撳紑渚跨 */
+ note: function () {
+ var option = admin.util.deepClone($(this).data());
+ admin.strToWin(option.window).layui.admin.popupRight($.extend({
+ id: 'layer-note', url: option.url || 'tpl/tpl-note.html'
+ }, admin.parseLayerOption(option)));
+ },
+ /* 鎵撳紑娑堟伅 */
+ message: function () {
+ var option = admin.util.deepClone($(this).data());
+ admin.strToWin(option.window).layui.admin.popupRight($.extend({
+ id: 'layer-notice', url: option.url || 'tpl/tpl-message.html'
+ }, admin.parseLayerOption(option)));
+ },
+ /* 鎵撳紑淇敼瀵嗙爜寮圭獥 */
+ psw: function () {
+ var option = admin.util.deepClone($(this).data());
+ admin.strToWin(option.window).layui.admin.open($.extend({
+ id: 'layer-psw', title: '淇敼瀵嗙爜', shade: 0, url: option.url || 'tpl/tpl-password.html'
+ }, admin.parseLayerOption(option)));
+ },
+ /* 閫�鍑虹櫥褰� */
+ logout: function () {
+ var option = admin.util.deepClone($(this).data());
+ admin.unlockScreen();
+
+ function doLogout() {
+ if (option.ajax) {
+ var loadIndex = layer.load(2);
+ admin.req(option.ajax, function (res) {
+ layer.close(loadIndex);
+ if (option.parseData) {
+ try {
+ var parseData = new Function('res', option.parseData);
+ res = parseData(res);
+ } catch (e) {
+ console.error(e);
+ }
+ }
+ if (res.code == (option.code || 0)) {
+ setter.removeToken && setter.removeToken();
+ location.replace(option.url || '/');
+ } else {
+ layer.msg(res.msg, {icon: 2});
+ }
+ }, option.method || 'delete');
+ } else {
+ setter.removeToken && setter.removeToken();
+ location.replace(option.url || '/');
+ }
+ }
+
+ if (false === option.confirm || 'false' === option.confirm) return doLogout();
+ admin.strToWin(option.window).layui.layer.confirm(option.content || '纭畾瑕侀��鍑虹櫥褰曞悧锛�', $.extend({
+ title: '娓╅Θ鎻愮ず', skin: 'layui-layer-admin', shade: .1
+ }, admin.parseLayerOption(option)), function () {
+ doLogout();
+ });
+ },
+ /* 鎵撳紑寮圭獥 */
+ open: function () {
+ var option = admin.util.deepClone($(this).data());
+ admin.strToWin(option.window).layui.admin.open(admin.parseLayerOption(option));
+ },
+ /* 鎵撳紑鍙充晶寮圭獥 */
+ popupRight: function () {
+ var option = admin.util.deepClone($(this).data());
+ admin.strToWin(option.window).layui.admin.popupRight(admin.parseLayerOption(option));
+ },
+ /* 鍏ㄥ睆 */
+ fullScreen: function () {
+ var ac = 'layui-icon-screen-full', ic = 'layui-icon-screen-restore';
+ var $ti = $(this).find('i');
+ var isFullscreen = document.fullscreenElement || document.msFullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || false;
+ if (isFullscreen) {
+ var efs = document.exitFullscreen || document.webkitExitFullscreen || document.mozCancelFullScreen || document.msExitFullscreen;
+ if (efs) {
+ efs.call(document);
+ } else if (window.ActiveXObject) {
+ var ws = new ActiveXObject('WScript.Shell');
+ ws && ws.SendKeys('{F11}');
+ }
+ $ti.addClass(ac).removeClass(ic);
+ } else {
+ var el = document.documentElement;
+ var rfs = el.requestFullscreen || el.webkitRequestFullscreen || el.mozRequestFullScreen || el.msRequestFullscreen;
+ if (rfs) {
+ rfs.call(el);
+ } else if (window.ActiveXObject) {
+ var wss = new ActiveXObject('WScript.Shell');
+ wss && wss.SendKeys('{F11}');
+ }
+ $ti.addClass(ic).removeClass(ac);
+ }
+ },
+ /* 宸︽粦鍔╰ab */
+ leftPage: function () {
+ admin.strToWin($(this).data('window')).layui.admin.rollPage('left');
+ },
+ /* 鍙虫粦鍔╰ab */
+ rightPage: function () {
+ admin.strToWin($(this).data('window')).layui.admin.rollPage();
+ },
+ /* 鍏抽棴褰撳墠閫夐」鍗� */
+ closeThisTabs: function () {
+ var url = $(this).data('url');
+ admin.strToWin($(this).data('window')).layui.admin.closeThisTabs(url);
+ },
+ /* 鍏抽棴鍏朵粬閫夐」鍗� */
+ closeOtherTabs: function () {
+ admin.strToWin($(this).data('window')).layui.admin.closeOtherTabs();
+ },
+ /* 鍏抽棴鎵�鏈夐�夐」鍗� */
+ closeAllTabs: function () {
+ admin.strToWin($(this).data('window')).layui.admin.closeAllTabs();
+ },
+ /* 鍏抽棴褰撳墠寮圭獥(鏅鸿兘) */
+ closeDialog: function () {
+ if ($(this).parents('.layui-layer').length > 0) admin.closeDialog(this);
+ else admin.closeDialog();
+ },
+ /* 鍏抽棴褰撳墠iframe寮圭獥 */
+ closeIframeDialog: function () {
+ admin.closeDialog();
+ },
+ /* 鍏抽棴褰撳墠椤甸潰灞傚脊绐� */
+ closePageDialog: function () {
+ admin.closeDialog(this);
+ },
+ /* 閿佸睆 */
+ lockScreen: function () {
+ admin.strToWin($(this).data('window')).layui.admin.lockScreen($(this).data('url'));
+ }
+ };
+
+ /** 閫夋嫨浣嶇疆 */
+ admin.chooseLocation = function (param) {
+ var dialogTitle = param.title; // 寮圭獥鏍囬
+ var onSelect = param.onSelect; // 閫夋嫨鍥炶皟
+ var needCity = param.needCity; // 鏄惁杩斿洖琛屾斂鍖�
+ var mapCenter = param.center; // 鍦板浘涓績
+ var defaultZoom = param.defaultZoom; // 鍦板浘榛樿缂╂斁绾у埆
+ var pointZoom = param.pointZoom; // 閫変腑鏃跺湴鍥剧缉鏀剧骇鍒�
+ var searchKeywords = param.keywords; // poi妫�绱㈠叧閿瓧
+ var searchPageSize = param.pageSize; // poi妫�绱㈡渶澶ф暟閲�
+ var mapJsUrl = param.mapJsUrl; // 楂樺痉鍦板浘js鐨剈rl
+ if (dialogTitle === undefined) dialogTitle = '閫夋嫨浣嶇疆';
+ if (defaultZoom === undefined) defaultZoom = 11;
+ if (pointZoom === undefined) pointZoom = 17;
+ if (searchKeywords === undefined) searchKeywords = '';
+ if (searchPageSize === undefined) searchPageSize = 30;
+ if (mapJsUrl === undefined) mapJsUrl = 'https://webapi.amap.com/maps?v=1.4.14&key=006d995d433058322319fa797f2876f5';
+ var isSelMove = false, selLocation;
+ // 鎼滅储闄勮繎
+ var searchNearBy = function (lat, lng) {
+ AMap.service(['AMap.PlaceSearch'], function () {
+ var placeSearch = new AMap.PlaceSearch({
+ type: '', pageSize: searchPageSize, pageIndex: 1
+ });
+ var cpoint = [lng, lat];
+ placeSearch.searchNearBy(searchKeywords, cpoint, 1000, function (status, result) {
+ if (status === 'complete') {
+ var pois = result.poiList.pois;
+ var htmlList = '';
+ for (var i = 0; i < pois.length; i++) {
+ var poiItem = pois[i];
+ if (poiItem.location !== undefined) {
+ htmlList += '<div data-lng="' + poiItem.location.lng + '" data-lat="' + poiItem.location.lat + '" class="ew-map-select-search-list-item">';
+ htmlList += ' <div class="ew-map-select-search-list-item-title">' + poiItem.name + '</div>';
+ htmlList += ' <div class="ew-map-select-search-list-item-address">' + poiItem.address + '</div>';
+ htmlList += ' <div class="ew-map-select-search-list-item-icon-ok layui-hide"><i class="layui-icon layui-icon-ok-circle"></i></div>';
+ htmlList += '</div>';
+ }
+ }
+ $('#ew-map-select-pois').html(htmlList);
+ }
+ });
+ });
+ };
+ // 娓叉煋鍦板浘
+ var renderMap = function () {
+ var mapOption = {
+ resizeEnable: true, // 鐩戞帶鍦板浘瀹瑰櫒灏哄鍙樺寲
+ zoom: defaultZoom // 鍒濈缉鏀剧骇鍒�
+ };
+ mapCenter && (mapOption.center = mapCenter);
+ var map = new AMap.Map('ew-map-select-map', mapOption);
+ // 鍦板浘鍔犺浇瀹屾垚
+ map.on('complete', function () {
+ var center = map.getCenter();
+ searchNearBy(center.lat, center.lng);
+ });
+ // 鍦板浘绉诲姩缁撴潫浜嬩欢
+ map.on('moveend', function () {
+ if (isSelMove) {
+ isSelMove = false;
+ } else {
+ $('#ew-map-select-tips').addClass('layui-hide');
+ $('#ew-map-select-center-img').removeClass('bounceInDown');
+ setTimeout(function () {
+ $('#ew-map-select-center-img').addClass('bounceInDown');
+ });
+ var center = map.getCenter();
+ searchNearBy(center.lat, center.lng);
+ }
+ });
+ // poi鍒楄〃鐐瑰嚮浜嬩欢
+ $('#ew-map-select-pois').off('click').on('click', '.ew-map-select-search-list-item', function () {
+ $('#ew-map-select-tips').addClass('layui-hide');
+ $('#ew-map-select-pois .ew-map-select-search-list-item-icon-ok').addClass('layui-hide');
+ $(this).find('.ew-map-select-search-list-item-icon-ok').removeClass('layui-hide');
+ $('#ew-map-select-center-img').removeClass('bounceInDown');
+ setTimeout(function () {
+ $('#ew-map-select-center-img').addClass('bounceInDown');
+ });
+ var lng = $(this).data('lng');
+ var lat = $(this).data('lat');
+ var name = $(this).find('.ew-map-select-search-list-item-title').text();
+ var address = $(this).find('.ew-map-select-search-list-item-address').text();
+ selLocation = {name: name, address: address, lat: lat, lng: lng};
+ isSelMove = true;
+ map.setZoomAndCenter(pointZoom, [lng, lat]);
+ });
+ // 纭畾鎸夐挳鐐瑰嚮浜嬩欢
+ $('#ew-map-select-btn-ok').click(function () {
+ if (selLocation === undefined) {
+ layer.msg('璇风偣鍑讳綅缃垪琛ㄩ�夋嫨', {icon: 2, anim: 6});
+ } else if (onSelect) {
+ if (needCity) {
+ var loadIndex = layer.load(2);
+ map.setCenter([selLocation.lng, selLocation.lat]);
+ map.getCity(function (result) {
+ layer.close(loadIndex);
+ selLocation.city = result;
+ admin.closeDialog('#ew-map-select-btn-ok');
+ onSelect(selLocation);
+ });
+ } else {
+ admin.closeDialog('#ew-map-select-btn-ok');
+ onSelect(selLocation);
+ }
+ } else {
+ admin.closeDialog('#ew-map-select-btn-ok');
+ }
+ });
+ // 鎼滅储鎻愮ず
+ var $inputSearch = $('#ew-map-select-input-search');
+ $inputSearch.off('input').on('input', function () {
+ var keywords = $(this).val();
+ var $selectTips = $('#ew-map-select-tips');
+ if (!keywords) {
+ $selectTips.html('');
+ $selectTips.addClass('layui-hide');
+ }
+ AMap.plugin('AMap.Autocomplete', function () {
+ var autoComplete = new AMap.Autocomplete({city: '鍏ㄥ浗'});
+ autoComplete.search(keywords, function (status, result) {
+ if (result.tips) {
+ var tips = result.tips;
+ var htmlList = '';
+ for (var i = 0; i < tips.length; i++) {
+ var tipItem = tips[i];
+ if (tipItem.location !== undefined) {
+ htmlList += '<div data-lng="' + tipItem.location.lng + '" data-lat="' + tipItem.location.lat + '" class="ew-map-select-search-list-item">';
+ htmlList += ' <div class="ew-map-select-search-list-item-icon-search"><i class="layui-icon layui-icon-search"></i></div>';
+ htmlList += ' <div class="ew-map-select-search-list-item-title">' + tipItem.name + '</div>';
+ htmlList += ' <div class="ew-map-select-search-list-item-address">' + tipItem.address + '</div>';
+ htmlList += '</div>';
+ }
+ }
+ $selectTips.html(htmlList);
+ if (tips.length === 0) $('#ew-map-select-tips').addClass('layui-hide');
+ else $('#ew-map-select-tips').removeClass('layui-hide');
+ } else {
+ $selectTips.html('');
+ $selectTips.addClass('layui-hide');
+ }
+ });
+ });
+ });
+ $inputSearch.off('blur').on('blur', function () {
+ var keywords = $(this).val();
+ var $selectTips = $('#ew-map-select-tips');
+ if (!keywords) {
+ $selectTips.html('');
+ $selectTips.addClass('layui-hide');
+ }
+ });
+ $inputSearch.off('focus').on('focus', function () {
+ var keywords = $(this).val();
+ if (keywords) $('#ew-map-select-tips').removeClass('layui-hide');
+ });
+ // tips鍒楄〃鐐瑰嚮浜嬩欢
+ $('#ew-map-select-tips').off('click').on('click', '.ew-map-select-search-list-item', function () {
+ $('#ew-map-select-tips').addClass('layui-hide');
+ var lng = $(this).data('lng');
+ var lat = $(this).data('lat');
+ selLocation = undefined;
+ map.setZoomAndCenter(pointZoom, [lng, lat]);
+ });
+ };
+ // 鏄剧ず寮圭獥
+ var htmlStr = [
+ '<div class="ew-map-select-tool" style="position: relative;">',
+ ' 鎼滅储锛�<input id="ew-map-select-input-search" class="layui-input icon-search inline-block" style="width: 190px;" placeholder="杈撳叆鍏抽敭瀛楁悳绱�" autocomplete="off" />',
+ ' <button id="ew-map-select-btn-ok" class="layui-btn icon-btn pull-right" type="button"><i class="layui-icon"></i>纭畾</button>',
+ ' <div id="ew-map-select-tips" class="ew-map-select-search-list layui-hide">',
+ ' </div>',
+ '</div>',
+ '<div class="layui-row ew-map-select">',
+ ' <div class="layui-col-sm7 ew-map-select-map-group" style="position: relative;">',
+ ' <div id="ew-map-select-map"></div>',
+ ' <i id="ew-map-select-center-img2" class="layui-icon layui-icon-add-1"></i>',
+ ' <img id="ew-map-select-center-img" src="https://3gimg.qq.com/lightmap/components/locationPicker2/image/marker.png" alt=""/>',
+ ' </div>',
+ ' <div id="ew-map-select-pois" class="layui-col-sm5 ew-map-select-search-list">',
+ ' </div>',
+ '</div>'].join('');
+ admin.open({
+ id: 'ew-map-select', type: 1, title: dialogTitle, area: '750px', content: htmlStr,
+ success: function (layero, dIndex) {
+ var $content = $(layero).children('.layui-layer-content');
+ $content.css('overflow', 'visible');
+ admin.showLoading($content);
+ if (undefined === window.AMap) {
+ $.getScript(mapJsUrl, function () {
+ renderMap();
+ admin.removeLoading($content);
+ });
+ } else {
+ renderMap();
+ admin.removeLoading($content);
+ }
+ }
+ });
+ };
+
+ /** 瑁佸壀鍥剧墖 */
+ admin.cropImg = function (param) {
+ var uploadedImageType = 'image/jpeg'; // 褰撳墠鍥剧墖鐨勭被鍨�
+ var aspectRatio = param.aspectRatio; // 瑁佸壀姣斾緥
+ var imgSrc = param.imgSrc; // 瑁佸壀鍥剧墖
+ var imgType = param.imgType; // 鍥剧墖绫诲瀷
+ var onCrop = param.onCrop; // 瑁佸壀瀹屾垚鍥炶皟
+ var limitSize = param.limitSize; // 闄愬埗閫夋嫨鐨勫浘鐗囧ぇ灏�
+ var acceptMime = param.acceptMime; // 闄愬埗閫夋嫨鐨勫浘鐗囩被鍨�
+ var imgExts = param.exts; // 闄愬埗閫夋嫨鐨勫浘鐗囩被鍨�
+ var dialogTitle = param.title; // 寮圭獥鐨勬爣棰�
+ if (aspectRatio === undefined) aspectRatio = 1;
+ if (dialogTitle === undefined) dialogTitle = '瑁佸壀鍥剧墖';
+ if (imgType) uploadedImageType = imgType;
+ layui.use(['Cropper', 'upload'], function () {
+ var Cropper = layui.Cropper, upload = layui.upload;
+
+ // 娓叉煋缁勪欢
+ function renderElem() {
+ var imgCropper, $cropImg = $('#ew-crop-img');
+ // 涓婁紶鏂囦欢鎸夐挳缁戝畾浜嬩欢
+ var uploadOptions = {
+ elem: '#ew-crop-img-upload', auto: false, drag: false,
+ choose: function (obj) {
+ obj.preview(function (index, file, result) {
+ uploadedImageType = file.type;
+ $cropImg.attr('src', result);
+ if (!imgSrc || !imgCropper) {
+ imgSrc = result;
+ renderElem();
+ } else {
+ imgCropper.destroy();
+ imgCropper = new Cropper($cropImg[0], options);
+ }
+ });
+ }
+ };
+ if (limitSize !== undefined) uploadOptions.size = limitSize;
+ if (acceptMime !== undefined) uploadOptions.acceptMime = acceptMime;
+ if (imgExts !== undefined) uploadOptions.exts = imgExts;
+ upload.render(uploadOptions);
+ // 娌℃湁浼犲浘鐗囪Е鍙戜笂浼犲浘鐗�
+ if (!imgSrc) return $('#ew-crop-img-upload').trigger('click');
+ // 娓叉煋瑁佸壀缁勪欢
+ var options = {aspectRatio: aspectRatio, preview: '#ew-crop-img-preview'};
+ imgCropper = new Cropper($cropImg[0], options);
+ // 鎿嶄綔鎸夐挳缁戝畾浜嬩欢
+ $('.ew-crop-tool').on('click', '[data-method]', function () {
+ var data = $(this).data(), cropped, result;
+ if (!imgCropper || !data.method) return;
+ data = $.extend({}, data);
+ cropped = imgCropper.cropped;
+ switch (data.method) {
+ case 'rotate':
+ if (cropped && options.viewMode > 0) imgCropper.clear();
+ break;
+ case 'getCroppedCanvas':
+ if (uploadedImageType === 'image/jpeg') {
+ if (!data.option) data.option = {};
+ data.option.fillColor = '#fff';
+ }
+ break;
+ }
+ result = imgCropper[data.method](data.option, data.secondOption);
+ switch (data.method) {
+ case 'rotate':
+ if (cropped && options.viewMode > 0) imgCropper.crop();
+ break;
+ case 'scaleX':
+ case 'scaleY':
+ $(this).data('option', -data.option);
+ break;
+ case 'getCroppedCanvas':
+ if (result) {
+ onCrop && onCrop(result.toDataURL(uploadedImageType));
+ admin.closeDialog('#ew-crop-img');
+ } else {
+ layer.msg('瑁佸壀澶辫触', {icon: 2, anim: 6});
+ }
+ break;
+ }
+ });
+ }
+
+ // 鏄剧ず寮圭獥
+ var htmlStr = [
+ '<div class="layui-row">',
+ ' <div class="layui-col-sm8" style="min-height: 9rem;">',
+ ' <img id="ew-crop-img" src="', imgSrc || '', '" style="max-width:100%;" alt=""/>',
+ ' </div>',
+ ' <div class="layui-col-sm4 layui-hide-xs" style="padding: 15px;text-align: center;">',
+ ' <div id="ew-crop-img-preview" style="width: 100%;height: 9rem;overflow: hidden;display: inline-block;border: 1px solid #dddddd;"></div>',
+ ' </div>',
+ '</div>',
+ '<div class="text-center ew-crop-tool" style="padding: 15px 10px 5px 0;">',
+ ' <div class="layui-btn-group" style="margin-bottom: 10px;margin-left: 10px;">',
+ ' <button title="鏀惧ぇ" data-method="zoom" data-option="0.1" class="layui-btn icon-btn" type="button"><i class="layui-icon layui-icon-add-1"></i></button>',
+ ' <button title="缂╁皬" data-method="zoom" data-option="-0.1" class="layui-btn icon-btn" type="button"><span style="display: inline-block;width: 12px;height: 2.5px;background: rgba(255, 255, 255, 0.9);vertical-align: middle;margin: 0 4px;"></span></button>',
+ ' </div>',
+ ' <div class="layui-btn-group layui-hide-xs" style="margin-bottom: 10px;">',
+ ' <button title="鍚戝乏鏃嬭浆" data-method="rotate" data-option="-45" class="layui-btn icon-btn" type="button"><i class="layui-icon layui-icon-refresh-1" style="transform: rotateY(180deg) rotate(40deg);display: inline-block;"></i></button>',
+ ' <button title="鍚戝彸鏃嬭浆" data-method="rotate" data-option="45" class="layui-btn icon-btn" type="button"><i class="layui-icon layui-icon-refresh-1" style="transform: rotate(30deg);display: inline-block;"></i></button>',
+ ' </div>',
+ ' <div class="layui-btn-group" style="margin-bottom: 10px;">',
+ ' <button title="宸︾Щ" data-method="move" data-option="-10" data-second-option="0" class="layui-btn icon-btn" type="button"><i class="layui-icon layui-icon-left"></i></button>',
+ ' <button title="鍙崇Щ" data-method="move" data-option="10" data-second-option="0" class="layui-btn icon-btn" type="button"><i class="layui-icon layui-icon-right"></i></button>',
+ ' <button title="涓婄Щ" data-method="move" data-option="0" data-second-option="-10" class="layui-btn icon-btn" type="button"><i class="layui-icon layui-icon-up"></i></button>',
+ ' <button title="涓嬬Щ" data-method="move" data-option="0" data-second-option="10" class="layui-btn icon-btn" type="button"><i class="layui-icon layui-icon-down"></i></button>',
+ ' </div>',
+ ' <div class="layui-btn-group" style="margin-bottom: 10px;">',
+ ' <button title="宸﹀彸缈昏浆" data-method="scaleX" data-option="-1" class="layui-btn icon-btn" type="button" style="position: relative;width: 41px;"><i class="layui-icon layui-icon-triangle-r" style="position: absolute;left: 9px;top: 0;transform: rotateY(180deg);font-size: 16px;"></i><i class="layui-icon layui-icon-triangle-r" style="position: absolute; right: 3px; top: 0;font-size: 16px;"></i></button>',
+ ' <button title="涓婁笅缈昏浆" data-method="scaleY" data-option="-1" class="layui-btn icon-btn" type="button" style="position: relative;width: 41px;"><i class="layui-icon layui-icon-triangle-d" style="position: absolute;left: 11px;top: 6px;transform: rotateX(180deg);line-height: normal;font-size: 16px;"></i><i class="layui-icon layui-icon-triangle-d" style="position: absolute; left: 11px; top: 14px;line-height: normal;font-size: 16px;"></i></button>',
+ ' </div>',
+ ' <div class="layui-btn-group" style="margin-bottom: 10px;">',
+ ' <button title="閲嶆柊寮�濮�" data-method="reset" class="layui-btn icon-btn" type="button"><i class="layui-icon layui-icon-refresh"></i></button>',
+ ' <button title="閫夋嫨鍥剧墖" id="ew-crop-img-upload" class="layui-btn icon-btn" type="button" style="border-radius: 0 2px 2px 0;"><i class="layui-icon layui-icon-upload-drag"></i></button>',
+ ' </div>',
+ ' <button data-method="getCroppedCanvas" data-option="{ "maxWidth": 4096, "maxHeight": 4096 }" class="layui-btn icon-btn" type="button" style="margin-left: 10px;margin-bottom: 10px;"><i class="layui-icon"></i>瀹屾垚</button>',
+ '</div>'].join('');
+ admin.open({
+ title: dialogTitle, area: '665px', type: 1, content: htmlStr,
+ success: function (layero, dIndex) {
+ $(layero).children('.layui-layer-content').css('overflow', 'visible');
+ renderElem();
+ }
+ });
+ });
+ };
+
+ /** 宸ュ叿绫� */
+ admin.util = {
+ /* 鐧惧害鍦板浘鍧愭爣杞珮寰峰湴鍥惧潗鏍� */
+ Convert_BD09_To_GCJ02: function (point) {
+ var x_pi = (3.14159265358979324 * 3000.0) / 180.0;
+ var x = point.lng - 0.0065, y = point.lat - 0.006;
+ var z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * x_pi);
+ var theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * x_pi);
+ return {lng: z * Math.cos(theta), lat: z * Math.sin(theta)};
+ },
+ /* 楂樺痉鍦板浘鍧愭爣杞櫨搴﹀湴鍥惧潗鏍� */
+ Convert_GCJ02_To_BD09: function (point) {
+ var x_pi = (3.14159265358979324 * 3000.0) / 180.0;
+ var x = point.lng, y = point.lat;
+ var z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * x_pi);
+ var theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * x_pi);
+ return {lng: z * Math.cos(theta) + 0.0065, lat: z * Math.sin(theta) + 0.006};
+ },
+ /* 鍔ㄦ�佹暟瀛� */
+ animateNum: function (elem, isThd, delay, grain) {
+ isThd = isThd === null || isThd === undefined || isThd === true || isThd === 'true'; // 鏄惁鏄崈鍒嗕綅
+ delay = isNaN(delay) ? 500 : delay; // 鍔ㄧ敾寤惰繜
+ grain = isNaN(grain) ? 100 : grain; // 鍔ㄧ敾绮掑害
+ var getPref = function (str) {
+ var pref = '';
+ for (var i = 0; i < str.length; i++) if (!isNaN(str.charAt(i))) return pref; else pref += str.charAt(i);
+ }, getSuf = function (str) {
+ var suf = '';
+ for (var i = str.length - 1; i >= 0; i--) if (!isNaN(str.charAt(i))) return suf; else suf = str.charAt(i) + suf;
+ }, toThd = function (num, isThd) {
+ if (!isThd) return num;
+ if (!/^[0-9]+.?[0-9]*$/.test(num)) return num;
+ num = num.toString();
+ return num.replace(num.indexOf('.') > 0 ? /(\d)(?=(\d{3})+(?:\.))/g : /(\d)(?=(\d{3})+(?:$))/g, '$1,');
+ };
+ $(elem).each(function () {
+ var $this = $(this);
+ var num = $this.data('num');
+ if (!num) {
+ num = $this.text().replace(/,/g, ''); // 鍐呭
+ $this.data('num', num);
+ }
+ var flag = 'INPUT,TEXTAREA'.indexOf($this.get(0).tagName) >= 0; // 鏄惁鏄緭鍏ユ
+ var pref = getPref(num.toString()), suf = getSuf(num.toString());
+ var strNum = num.toString().replace(pref, '').replace(suf, '');
+ if (isNaN(strNum * 1) || strNum === '0') {
+ flag ? $this.val(num) : $this.html(num);
+ return console.error('not a number');
+ }
+ var int_dec = strNum.split('.');
+ var deciLen = int_dec[1] ? int_dec[1].length : 0;
+ var startNum = 0.0, endNum = strNum;
+ if (Math.abs(endNum * 1) > 10) startNum = parseFloat(int_dec[0].substring(0, int_dec[0].length - 1) + (int_dec[1] ? '.0' + int_dec[1] : ''));
+ var oft = (endNum - startNum) / grain, temp = 0;
+ var mTime = setInterval(function () {
+ var str = pref + toThd(startNum.toFixed(deciLen), isThd) + suf;
+ flag ? $this.val(str) : $this.html(str);
+ startNum += oft;
+ temp++;
+ if (Math.abs(startNum) >= Math.abs(endNum * 1) || temp > 5000) {
+ str = pref + toThd(endNum, isThd) + suf;
+ flag ? $this.val(str) : $this.html(str);
+ clearInterval(mTime);
+ }
+ }, delay / grain);
+ });
+ },
+ /* 娣卞害鍏嬮殕瀵硅薄 */
+ deepClone: function (obj) {
+ var result;
+ var oClass = admin.util.isClass(obj);
+ if (oClass === 'Object') result = {};
+ else if (oClass === 'Array') result = [];
+ else return obj;
+ for (var key in obj) {
+ if (!obj.hasOwnProperty(key)) continue;
+ var copy = obj[key], cClass = admin.util.isClass(copy);
+ if (cClass === 'Object') result[key] = arguments.callee(copy); // 閫掑綊璋冪敤
+ else if (cClass === 'Array') result[key] = arguments.callee(copy);
+ else result[key] = obj[key];
+ }
+ return result;
+ },
+ /* 鑾峰彇鍙橀噺绫诲瀷 */
+ isClass: function (o) {
+ if (o === null) return 'Null';
+ if (o === undefined) return 'Undefined';
+ return Object.prototype.toString.call(o).slice(8, -1);
+ },
+ /* 鍒ゆ柇瀵屾枃鏈槸鍚︿负绌� */
+ fullTextIsEmpty: function (text) {
+ if (!text) return true;
+ var noTexts = ['img', 'audio', 'video', 'iframe', 'object'];
+ for (var i = 0; i < noTexts.length; i++) {
+ if (text.indexOf('<' + noTexts[i]) > -1) return false;
+ }
+ var str = text.replace(/\s*/g, ''); // 鍘绘帀鎵�鏈夌┖鏍�
+ if (!str) return true;
+ str = str.replace(/ /ig, ''); // 鍘绘帀鎵�鏈�
+ if (!str) return true;
+ str = str.replace(/<[^>]+>/g, ''); // 鍘绘帀鎵�鏈塰tml鏍囩
+ return !str;
+ },
+ /* 绉婚櫎鍏冪礌鐨剆tyle */
+ removeStyle: function (elem, names) {
+ if (typeof names === 'string') names = [names];
+ for (var i = 0; i < names.length; i++) $(elem).css(names[i], '');
+ },
+ /* 婊氬姩鍒伴《閮� */
+ scrollTop: function (elem) {
+ $(elem || 'html,body').animate({scrollTop: 0}, 300);
+ },
+ /* 妯℃澘瑙f瀽 */
+ tpl: function (html, data, openCode, closeCode) {
+ if (html === undefined || html === null || typeof html !== 'string') return html;
+ if (!data) data = {};
+ if (!openCode) openCode = '{{';
+ if (!closeCode) closeCode = '}}';
+ var tool = {
+ exp: function (str) {
+ return new RegExp(str, 'g');
+ },
+ // 鍖归厤婊¤冻瑙勫垯鍐呭
+ query: function (type, _, __) {
+ var types = ['#([\\s\\S])+?', '([^{#}])*?'][type || 0];
+ return tool.exp((_ || '') + openCode + types + closeCode + (__ || ''));
+ },
+ escape: function (str) {
+ return String(str || '').replace(/&(?!#?[a-zA-Z0-9]+;)/g, '&')
+ .replace(/</g, '<').replace(/>/g, '>')
+ .replace(/'/g, ''').replace(/"/g, '"');
+ },
+ error: function (e, tplog) {
+ console.error('Laytpl Error锛�' + e + '\n' + (tplog || ''));
+ },
+ parse: function (tpl, data) {
+ var tplog = tpl;
+ try {
+ var jss = tool.exp('^' + openCode + '#'), jsse = tool.exp(closeCode + '$');
+ tpl = tpl.replace(tool.exp(openCode + '#'), openCode + '# ')
+ .replace(tool.exp(closeCode + '}'), '} ' + closeCode).replace(/\\/g, '\\\\')
+ // 涓嶅尮閰嶆寚瀹氬尯鍩熺殑鍐呭
+ .replace(tool.exp(openCode + '!(.+?)!' + closeCode), function (str) {
+ str = str.replace(tool.exp('^' + openCode + '!'), '')
+ .replace(tool.exp('!' + closeCode), '')
+ .replace(tool.exp(openCode + '|' + closeCode), function (tag) {
+ return tag.replace(/(.)/g, '\\$1')
+ });
+ return str
+ })
+ // 鍖归厤JS瑙勫垯鍐呭
+ .replace(/(?="|')/g, '\\').replace(tool.query(), function (str) {
+ str = str.replace(jss, '').replace(jsse, '');
+ return '";' + str.replace(/\\/g, '') + ';view+="';
+ })
+ // 鍖归厤鏅�氬瓧娈�
+ .replace(tool.query(1), function (str) {
+ var start = '"+(';
+ if (str.replace(/\s/g, '') === openCode + closeCode) return '';
+ str = str.replace(tool.exp(openCode + '|' + closeCode), '');
+ if (/^=/.test(str)) {
+ str = str.replace(/^=/, '');
+ start = '"+_escape_(';
+ }
+ return start + str.replace(/\\/g, '') + ')+"';
+ })
+ // 鎹㈣绗﹀鐞�
+ .replace(/\r\n/g, '\\r\\n" + "').replace(/\n/g, '\\n" + "').replace(/\r/g, '\\r" + "');
+ tpl = '"use strict";var view = "' + tpl + '";return view;';
+ tpl = new Function('d, _escape_', tpl);
+ return tpl(data, tool.escape);
+ } catch (e) {
+ tool.error(e, tplog);
+ return tplog;
+ }
+ }
+ };
+ return tool.parse(html, data);
+ },
+ /* 娓叉煋鍔ㄦ�佹ā鏉� */
+ render: function (option) {
+ if (typeof option.url === 'string') {
+ option.success = function (res) {
+ admin.util.render($.extend({}, option, {url: res}));
+ };
+ if (option.ajax === 'ajax') admin.ajax(option);
+ else admin.req(option.url, option.where, option.success, option.method, option);
+ return;
+ }
+ var html = admin.util.tpl(option.tpl, option.url,
+ option.open || setter.tplOpen, option.close || setter.tplClose);
+ $(option.elem).next('[ew-tpl-rs]').remove();
+ $(option.elem).after(html);
+ $(option.elem).next().attr('ew-tpl-rs', '');
+ option.done && option.done(option.url);
+ }
+ };
+
+ /** 閿佸睆鍔熻兘 */
+ admin.lockScreen = function (url) {
+ if (window !== top && !admin.isTop() && top.layui && top.layui.admin) return top.layui.admin.lockScreen(url);
+ if (!url) url = 'tpl/tpl-lock-screen.html';
+ var $lock = $('#ew-lock-screen-group');
+ if ($lock.length > 0) {
+ $lock.fadeIn('fast');
+ admin.isLockScreen = true;
+ admin.putTempData('isLockScreen', admin.isLockScreen, true);
+ } else {
+ var loadIndex = layer.load(2);
+ admin.ajax({
+ url: url, dataType: 'html',
+ success: function (res) {
+ layer.close(loadIndex);
+ if (typeof res === 'string') {
+ $('body').append('<div id="ew-lock-screen-group">' + res + '</div>');
+ admin.isLockScreen = true;
+ admin.putTempData('isLockScreen', admin.isLockScreen, true);
+ admin.putTempData('lockScreenUrl', url, true);
+ } else {
+ console.error(res);
+ layer.msg(JSON.stringify(res), {icon: 2, anim: 6});
+ }
+ }
+ });
+ }
+ };
+
+ /** 瑙i櫎閿佸睆 */
+ admin.unlockScreen = function (isRemove) {
+ if (window !== top && !admin.isTop() && top.layui && top.layui.admin) return top.layui.admin.unlockScreen(isRemove);
+ var $lock = $('#ew-lock-screen-group');
+ isRemove ? $lock.remove() : $lock.fadeOut('fast');
+ admin.isLockScreen = false;
+ admin.putTempData('isLockScreen', null, true);
+ };
+
+ /** tips鏂规硶灏佽 */
+ admin.tips = function (option) {
+ return layer.tips(option.text, option.elem, {
+ tips: [option.direction || 1, option.bg || '#191a23'],
+ tipsMore: option.tipsMore, time: option.time || -1,
+ success: function (layero) {
+ var $content = $(layero).children('.layui-layer-content');
+ if (option.padding || option.padding === 0) $content.css('padding', option.padding);
+ if (option.color) $content.css('color', option.color);
+ if (option.bgImg) $content.css('background-image', option.bgImg).children('.layui-layer-TipsG').css('z-index', '-1');
+ if (option.fontSize) $content.css('font-size', option.fontSize);
+ if (!option.offset) return;
+ var offset = option.offset.split(',');
+ var top = offset[0], left = offset.length > 1 ? offset[1] : undefined;
+ if (top) $(layero).css('margin-top', top);
+ if (left) $(layero).css('margin-left', left);
+ }
+ });
+ };
+
+ /** 娓叉煋鍔ㄦ�佹ā鏉� */
+ admin.renderTpl = function (elem) {
+ if (!layui.admin) layui.admin = admin;
+
+ // 瑙f瀽鏁版嵁
+ function parseData(data) {
+ if (!data) return;
+ try {
+ return new Function('return ' + data + ';')();
+ } catch (e) {
+ console.error(e + '\nlay-data: ' + data);
+ }
+ }
+
+ $(elem || '[ew-tpl]').each(function () {
+ var $this = $(this);
+ var option = admin.util.deepClone($(this).data());
+ option.elem = $this;
+ option.tpl = $this.html();
+ option.url = parseData($this.attr('ew-tpl'));
+ option.headers = parseData(option.headers);
+ option.where = parseData(option.where);
+ if (option.done) {
+ try {
+ option.done = new Function('res', option.done);
+ } catch (e) {
+ console.error(e + '\nlay-data:' + option.done);
+ option.done = undefined;
+ }
+ }
+ admin.util.render(option);
+ });
+ };
+
+ /** 浜嬩欢鐩戝惉 */
+ admin.on = function (events, callback) {
+ return layui.onevent.call(this, 'admin', events, callback);
+ };
+
+ /** 淇敼閰嶇疆淇℃伅 */
+ admin.putSetting = function (key, value) {
+ setter[key] = value;
+ admin.putTempData(key, value, true);
+ };
+
+ /** 鎭㈠閰嶇疆淇℃伅 */
+ admin.recoverState = function () {
+ // 鎭㈠閿佸睆鐘舵��
+ if (admin.getTempData('isLockScreen', true)) admin.lockScreen(admin.getTempData('lockScreenUrl', true));
+ // 鎭㈠閰嶇疆鐨勪富棰�
+ if (setter.defaultTheme) admin.changeTheme(setter.defaultTheme, window, true, true);
+ // 鎭㈠椤佃剼鐘舵�併�佸鑸澶�
+ if (setter.closeFooter) $('body').addClass('close-footer');
+ if (setter.navArrow !== undefined) {
+ var $nav = $(sideDOM + '>.layui-nav-tree');
+ $nav.removeClass('arrow2 arrow3');
+ if (setter.navArrow) $nav.addClass(setter.navArrow);
+ }
+ // 鎭㈠tab鑷姩鍒锋柊
+ if (setter.pageTabs && setter.tabAutoRefresh == 'true') $(tabDOM).attr('lay-autoRefresh', 'true');
+ };
+
+ /* 浜嬩欢鐩戝惉 */
+ admin.on = function (events, callback) {
+ return layui.onevent.call(this, 'admin', events, callback);
+ };
+
+ /** 渚у鑸姌鍙犵姸鎬佷笅榧犳爣缁忚繃鏃犻檺鎮诞鏁堟灉 */
+ var navItemDOM = '.layui-layout-admin.admin-nav-mini>.layui-side .layui-nav .layui-nav-item';
+ $(document).on('mouseenter', navItemDOM + ',' + navItemDOM + ' .layui-nav-child>dd', function () {
+ if (admin.getPageWidth() > 768) {
+ var $that = $(this), $navChild = $that.find('>.layui-nav-child');
+ if ($navChild.length > 0) {
+ $that.addClass('admin-nav-hover');
+ $navChild.css('left', $that.offset().left + $that.outerWidth());
+ var top = $that.offset().top;
+ if (top + $navChild.outerHeight() > admin.getPageHeight()) {
+ top = top - $navChild.outerHeight() + $that.outerHeight();
+ if (top < 60) top = 60;
+ $navChild.addClass('show-top');
+ }
+ $navChild.css('top', top);
+ $navChild.addClass('ew-anim-drop-in');
+ } else if ($that.hasClass('layui-nav-item')) {
+ admin.tips({elem: $that, text: $that.find('cite').text(), direction: 2, offset: '12px'});
+ }
+ }
+ }).on('mouseleave', navItemDOM + ',' + navItemDOM + ' .layui-nav-child>dd', function () {
+ layer.closeAll('tips');
+ var $this = $(this);
+ $this.removeClass('admin-nav-hover');
+ var $child = $this.find('>.layui-nav-child');
+ $child.removeClass('show-top ew-anim-drop-in');
+ $child.css({'left': 'auto', 'top': 'auto'});
+ });
+
+ /** 鎵�鏈塭w-event */
+ $(document).on('click', '*[ew-event]', function () {
+ var te = admin.events[$(this).attr('ew-event')];
+ te && te.call(this, $(this));
+ });
+
+ /** 鎵�鏈塴ay-tips澶勭悊 */
+ $(document).on('mouseenter', '*[lay-tips]', function () {
+ var $this = $(this);
+ admin.tips({
+ elem: $this, text: $this.attr('lay-tips'), direction: $this.attr('lay-direction'),
+ bg: $this.attr('lay-bg'), offset: $this.attr('lay-offset'),
+ padding: $this.attr('lay-padding'), color: $this.attr('lay-color'),
+ bgImg: $this.attr('lay-bgImg'), fontSize: $this.attr('lay-fontSize')
+ });
+ }).on('mouseleave', '*[lay-tips]', function () {
+ layer.closeAll('tips');
+ });
+
+ /** 琛ㄥ崟鎼滅储灞曞紑鏇村 */
+ $(document).on('click', '.form-search-expand,[search-expand]', function () {
+ var $this = $(this);
+ var $form = $this.parents('.layui-form').first();
+ var expand = $this.data('expand');
+ var change = $this.attr('search-expand');
+ if (expand === undefined || expand === true) {
+ expand = true;
+ $this.data('expand', false);
+ $this.html('鏀惰捣 <i class="layui-icon layui-icon-up"></i>');
+ var $elem = $form.find('.form-search-show-expand');
+ $elem.attr('expand-show', '');
+ $elem.removeClass('form-search-show-expand');
+ } else {
+ expand = false;
+ $this.data('expand', true);
+ $this.html('灞曞紑 <i class="layui-icon layui-icon-down"></i>');
+ $form.find('[expand-show]').addClass('form-search-show-expand');
+ }
+ if (!change) return;
+ new Function('d', change)({expand: expand, elem: $this});
+ });
+
+ /** select浣跨敤fixed瀹氫綅鏄剧ず */
+ $(document).on('click.ew-sel-fixed', '.ew-select-fixed .layui-form-select .layui-select-title', function () {
+ var $this = $(this), $dl = $this.parent().children('dl'), tTop = $this.offset().top;
+ var tWidth = $this.outerWidth(), tHeight = $this.outerHeight(), scrollT = $(document).scrollTop();
+ var dWidth = $dl.outerWidth(), dHeight = $dl.outerHeight();
+ var top = tTop + tHeight + 5 - scrollT, left = $this.offset().left;
+ if (top + dHeight > admin.getPageHeight()) top = top - dHeight - tHeight - 10;
+ if (left + dWidth > admin.getPageWidth()) left = left - dWidth + tWidth;
+ $dl.css({'left': left, 'top': top, 'min-width': tWidth});
+ });
+
+ /** 鐢ㄤ簬婊氬姩鏃跺叧闂竴浜沠ixed鐨勭粍浠� */
+ admin.hideFixedEl = function () {
+ $('.ew-select-fixed .layui-form-select').removeClass('layui-form-selected layui-form-selectup'); // select
+ $('body>.layui-laydate').remove(); // laydate
+ };
+
+ /** 鍨傜洿瀵艰埅鏍忓睍寮�鎶樺彔澧炲姞杩囨浮鏁堟灉 */
+ $(document).on('click', '.layui-nav-tree>.layui-nav-item a', function () {
+ var $this = $(this), $child = $this.siblings('.layui-nav-child'), $parent = $this.parent();
+ if ($child.length === 0) return;
+ if ($parent.hasClass('admin-nav-hover')) return;
+ if ($parent.hasClass('layui-nav-itemed')) { // 鍥犱负layui浼氬鐞嗕竴閬嶆墍浠ヨ繖閲岀姸鎬佹槸鐩稿弽鐨�
+ $child.css('display', 'none').slideDown('fast', function () {
+ $(this).css('display', '');
+ });
+ } else {
+ $child.css('display', 'block').slideUp('fast', function () {
+ $(this).css('display', '');
+ });
+ }
+ if ($this.parents('.layui-nav').attr('lay-shrink') === '_all') { // 鎵嬮鐞存晥鏋�
+ var $siblings = $this.parent().siblings('.layui-nav-itemed');
+ $siblings.children('.layui-nav-child').css('display', 'block').slideUp('fast', function () {
+ $(this).css('display', '');
+ });
+ $siblings.removeClass('layui-nav-itemed');
+ }
+ });
+ $('.layui-nav-tree[lay-shrink="all"]').attr('lay-shrink', '_all'); // 璁﹍ayui涓嶅鐞嗘墜椋庣惔鏁堟灉
+
+ /** 鎶樺彔闈㈡澘灞曞紑鎶樺彔澧炲姞杩囨浮鏁堟灉 */
+ $(document).on('click', '.layui-collapse>.layui-colla-item>.layui-colla-title', function () {
+ var $this = $(this), $content = $this.siblings('.layui-colla-content')
+ , $collapse = $this.parent().parent(), isNone = $content.hasClass('layui-show');
+ if (isNone) { // 鍥犱负layui浼氬鐞嗕竴閬嶆墍浠ヨ繖閲岀姸鎬佹槸鐩稿弽鐨�
+ $content.removeClass('layui-show').slideDown('fast').addClass('layui-show');
+ } else {
+ $content.css('display', 'block').slideUp('fast', function () {
+ $(this).css('display', '');
+ });
+ }
+ $this.children('.layui-colla-icon').html('')
+ .css({'transition': 'all .3s', 'transform': 'rotate(' + (isNone ? '90deg' : '0deg') + ')'});
+ if ($collapse.attr('lay-shrink') === '_all') { // 鎵嬮鐞存晥鏋�
+ var $show = $collapse.children('.layui-colla-item').children('.layui-colla-content.layui-show').not($content);
+ $show.css('display', 'block').slideUp('fast', function () {
+ $(this).css('display', '');
+ });
+ $show.removeClass('layui-show');
+ $show.siblings('.layui-colla-title').children('.layui-colla-icon').html('')
+ .css({'transition': 'all .3s', 'transform': 'rotate(0deg)'});
+ }
+ });
+ $('.layui-collapse[lay-accordion]').attr('lay-shrink', '_all').removeAttr('lay-accordion'); // 璁﹍ayui涓嶅鐞嗘墜椋庣惔鏁堟灉
+
+ /** 琛ㄥ崟楠岃瘉tips鎻愮ず鏍峰紡淇敼 */
+ layer.oldTips = layer.tips;
+ layer.tips = function (content, follow, options) {
+ var $fFip; // 鍒ゆ柇鏄惁鏄〃鍗曢獙璇佽皟鐢ㄧ殑tips
+ if ($(follow).length > 0 && $(follow).parents('.layui-form').length > 0) {
+ if ($(follow).is('input') || $(follow).is('textarea')) {
+ $fFip = $(follow);
+ } else if ($(follow).hasClass('layui-form-select') || $(follow).hasClass('layui-form-radio')
+ || $(follow).hasClass('layui-form-checkbox') || $(follow).hasClass('layui-form-switch')) {
+ $fFip = $(follow).prev();
+ }
+ }
+ if (!$fFip) return layer.oldTips(content, follow, options);
+ options.tips = [$fFip.attr('lay-direction') || 3, $fFip.attr('lay-bg') || '#ff4c4c'];
+ setTimeout(function () {
+ options.success = function (layero) {
+ $(layero).children('.layui-layer-content').css('padding', '6px 12px');
+ };
+ layer.oldTips(content, follow, options);
+ }, 100);
+ };
+
+ /** 鎵�鏈塭w-href澶勭悊 */
+ $(document).on('click', '*[ew-href]', function () {
+ var $this = $(this);
+ var href = $this.attr('ew-href');
+ if (!href || href === '#') return;
+ if (href.indexOf('javascript:') === 0) return new Function(href.substring(11))();
+ var title = $this.attr('ew-title') || $this.text();
+ var win = $this.data('window');
+ win ? (win = admin.strToWin(win)) : (win = top);
+ var end = $this.attr('ew-end');
+ try {
+ if (end) end = new Function(end);
+ else end = undefined;
+ } catch (e) {
+ console.error(e);
+ }
+ if (win.layui && win.layui.index) win.layui.index.openTab({title: title || '', url: href, end: end});
+ else location.href = href;
+ });
+
+ /** 甯姪榧犳爣鍙抽敭鑿滃崟瀹屾垚鐐瑰嚮绌虹櫧鍏抽棴鐨勫姛鑳� */
+ if (!layui.contextMenu) {
+ $(document).off('click.ctxMenu').on('click.ctxMenu', function () {
+ try {
+ var ifs = top.window.frames;
+ for (var i = 0; i < ifs.length; i++) {
+ var tif = ifs[i];
+ try { // 鍙兘浼氳法鍩�
+ if (tif.layui && tif.layui.jquery) tif.layui.jquery('body>.ctxMenu').remove();
+ } catch (e) {
+ }
+ }
+ try { // 鍙兘浼氳法鍩�
+ if (top.layui && top.layui.jquery) top.layui.jquery('body>.ctxMenu').remove();
+ } catch (e) {
+ }
+ } catch (e) {
+ }
+ });
+ }
+
+ /** 璇诲彇缂撳瓨鐨勯厤缃俊鎭� */
+ setter = $.extend({
+ pageTabs: true, cacheTab: true, openTabCtxMenu: true, maxTabNum: 20, tableName: 'easyweb-iframe',
+ apiNoCache: true, ajaxSuccessBefore: function (res, url, obj) {
+ return admin.ajaxSuccessBefore ? admin.ajaxSuccessBefore(res, url, obj) : true;
+ }, getAjaxHeaders: function (res, url, obj) {
+ return admin.getAjaxHeaders ? admin.getAjaxHeaders(res, url, obj) : [];
+ }
+ }, setter);
+ var cache = admin.getTempData(true);
+ if (cache) {
+ var keys = ['pageTabs', 'cacheTab', 'defaultTheme', 'navArrow', 'closeFooter', 'tabAutoRefresh'];
+ for (var i = 0; i < keys.length; i++) if (cache[keys[i]] !== undefined) setter[keys[i]] = cache[keys[i]];
+ }
+ admin.recoverState(); // 鎭㈠鏈湴閰嶇疆
+ admin.renderTpl(); // 娓叉煋鍔ㄦ�佹ā鏉�
+ admin.setter = setter;
+ if (layui.device().ios) $('body').addClass('ios-iframe-body'); // ios娴忚鍣╥frame鍏煎
+ exports('admin', admin);
+});
diff --git a/src/main/webapp/static/layui/lay/modules/contextMenu.js b/src/main/webapp/static/layui/lay/modules/contextMenu.js
new file mode 100644
index 0000000..2655031
--- /dev/null
+++ b/src/main/webapp/static/layui/lay/modules/contextMenu.js
@@ -0,0 +1,228 @@
+/** 鍙抽敭鑿滃崟妯″潡 date:2019-02-08 License By http://easyweb.vip */
+layui.define(["jquery"], function (exports) {
+ var $ = layui.jquery;
+
+ var contextMenu = {
+ // 缁戝畾鍏冪礌
+ bind: function (elem, items) {
+ $(elem).bind('contextmenu', function (e) {
+ contextMenu.show(items, e.clientX, e.clientY, e);
+ return false;
+ });
+ },
+ // 鍦ㄦ寚瀹氬潗鏍囨樉绀鸿彍鍗�
+ show: function (items, x, y, e) {
+ var xy = 'left: ' + x + 'px; top: ' + y + 'px;';
+ var htmlStr = '<div class="ctxMenu" style="' + xy + '">';
+ htmlStr += contextMenu.getHtml(items, '');
+ htmlStr += ' </div>';
+ contextMenu.remove();
+ $('body').append(htmlStr);
+ // 璋冩暣婧㈠嚭浣嶇疆
+ var $ctxMenu = $('.ctxMenu');
+ if (x + $ctxMenu.outerWidth() > contextMenu.getPageWidth()) {
+ x -= $ctxMenu.outerWidth();
+ }
+ if (y + $ctxMenu.outerHeight() > contextMenu.getPageHeight()) {
+ y = y - $ctxMenu.outerHeight();
+ if (y < 0) {
+ y = 0;
+ }
+ }
+ $ctxMenu.css({'top': y, 'left': x});
+ // 娣诲姞item鐐瑰嚮浜嬩欢
+ contextMenu.setEvents(items, e);
+ // 鏄剧ず瀛愯彍鍗曚簨浠�
+ $('.ctxMenu-item').on('mouseenter', function (e) {
+ e.stopPropagation();
+ $(this).parent().find('.ctxMenu-sub').css('display', 'none');
+ if (!$(this).hasClass('haveMore')) return;
+ var $item = $(this).find('>a');
+ var $sub = $(this).find('>.ctxMenu-sub');
+ var top = $item.offset().top - $('body,html').scrollTop();
+ var left = $item.offset().left + $item.outerWidth() - $('body,html').scrollLeft();
+ if (left + $sub.outerWidth() > contextMenu.getPageWidth()) {
+ left = $item.offset().left - $sub.outerWidth();
+ }
+ if (top + $sub.outerHeight() > contextMenu.getPageHeight()) {
+ top = top - $sub.outerHeight() + $item.outerHeight();
+ if (top < 0) {
+ top = 0;
+ }
+ }
+ $(this).find('>.ctxMenu-sub').css({
+ 'top': top,
+ 'left': left,
+ 'display': 'block'
+ });
+ })/*.on('mouseleave', function () {
+ $(this).find('>.ctxMenu-sub').css('display', 'none');
+ })*/;
+ },
+ // 绉婚櫎鎵�鏈�
+ remove: function () {
+ var ifs = parent.window.frames;
+ for (var i = 0; i < ifs.length; i++) {
+ var tif = ifs[i];
+ try {
+ tif.layui.jquery('body>.ctxMenu').remove();
+ } catch (e) {
+ }
+ }
+ try {
+ parent.layui.jquery('body>.ctxMenu').remove();
+ } catch (e) {
+ }
+ },
+ // 璁剧疆浜嬩欢鐩戝惉
+ setEvents: function (items, event) {
+ $('.ctxMenu').off('click').on('click', '[lay-id]', function (e) {
+ var itemId = $(this).attr('lay-id');
+ var item = getItemById(itemId, items);
+ item.click && item.click(e, event);
+ });
+
+ function getItemById(id, list) {
+ for (var i = 0; i < list.length; i++) {
+ var one = list[i];
+ if (id == one.itemId) {
+ return one;
+ } else if (one.subs && one.subs.length > 0) {
+ var temp = getItemById(id, one.subs);
+ if (temp) {
+ return temp;
+ }
+ }
+ }
+ }
+ },
+ // 鏋勫缓鏃犻檺绾�
+ getHtml: function (items, pid) {
+ var htmlStr = '';
+ for (var i = 0; i < items.length; i++) {
+ var item = items[i];
+ item.itemId = 'ctxMenu-' + pid + i;
+ if (item.subs && item.subs.length > 0) {
+ htmlStr += '<div class="ctxMenu-item haveMore" lay-id="' + item.itemId + '">';
+ htmlStr += '<a>';
+ if (item.icon) {
+ htmlStr += '<i class="' + item.icon + ' ctx-icon"></i>';
+ }
+ htmlStr += item.name;
+ htmlStr += '<i class="layui-icon layui-icon-right icon-more"></i>';
+ htmlStr += '</a>';
+ htmlStr += '<div class="ctxMenu-sub" style="display: none;">';
+ htmlStr += contextMenu.getHtml(item.subs, pid + i);
+ htmlStr += '</div>';
+ } else {
+ htmlStr += '<div class="ctxMenu-item" lay-id="' + item.itemId + '">';
+ htmlStr += '<a>';
+ if (item.icon) {
+ htmlStr += '<i class="' + item.icon + ' ctx-icon"></i>';
+ }
+ htmlStr += item.name;
+ htmlStr += '</a>';
+ }
+ htmlStr += '</div>';
+ if (item.hr == true) {
+ htmlStr += '<hr/>';
+ }
+ }
+ return htmlStr;
+ },
+ // 鑾峰彇css浠g爜
+ getCommonCss: function () {
+ var cssStr = '.ctxMenu, .ctxMenu-sub {';
+ cssStr += ' max-width: 250px;';
+ cssStr += ' min-width: 110px;';
+ cssStr += ' background: white;';
+ cssStr += ' border-radius: 2px;';
+ cssStr += ' padding: 5px 0;';
+ cssStr += ' white-space: nowrap;';
+ cssStr += ' position: fixed;';
+ cssStr += ' z-index: 2147483647;';
+ cssStr += ' box-shadow: 0 2px 4px rgba(0, 0, 0, .12);';
+ cssStr += ' border: 1px solid #d2d2d2;';
+ cssStr += ' overflow: visible;';
+ cssStr += ' }';
+
+ cssStr += ' .ctxMenu-item {';
+ cssStr += ' position: relative;';
+ cssStr += ' }';
+
+ cssStr += ' .ctxMenu-item > a {';
+ cssStr += ' font-size: 14px;';
+ cssStr += ' color: #666;';
+ cssStr += ' padding: 0 26px 0 35px;';
+ cssStr += ' cursor: pointer;';
+ cssStr += ' display: block;';
+ cssStr += ' line-height: 36px;';
+ cssStr += ' text-decoration: none;';
+ cssStr += ' position: relative;';
+ cssStr += ' }';
+
+ cssStr += ' .ctxMenu-item > a:hover {';
+ cssStr += ' background: #f2f2f2;';
+ cssStr += ' color: #666;';
+ cssStr += ' }';
+
+ cssStr += ' .ctxMenu-item > a > .icon-more {';
+ cssStr += ' position: absolute;';
+ cssStr += ' right: 5px;';
+ cssStr += ' top: 0;';
+ cssStr += ' font-size: 12px;';
+ cssStr += ' color: #666;';
+ cssStr += ' }';
+
+ cssStr += ' .ctxMenu-item > a > .ctx-icon {';
+ cssStr += ' position: absolute;';
+ cssStr += ' left: 12px;';
+ cssStr += ' top: 0;';
+ cssStr += ' font-size: 15px;';
+ cssStr += ' color: #666;';
+ cssStr += ' }';
+
+ cssStr += ' .ctxMenu hr {';
+ cssStr += ' background-color: #e6e6e6;';
+ cssStr += ' clear: both;';
+ cssStr += ' margin: 5px 0;';
+ cssStr += ' border: 0;';
+ cssStr += ' height: 1px;';
+ cssStr += ' }';
+
+ cssStr += ' .ctx-ic-lg {';
+ cssStr += ' font-size: 18px !important;';
+ cssStr += ' left: 11px !important;';
+ cssStr += ' }';
+ return cssStr;
+ },
+ // 鑾峰彇娴忚鍣ㄩ珮搴�
+ getPageHeight: function () {
+ return document.documentElement.clientHeight || document.body.clientHeight;
+ },
+ // 鑾峰彇娴忚鍣ㄥ搴�
+ getPageWidth: function () {
+ return document.documentElement.clientWidth || document.body.clientWidth;
+ },
+ };
+
+ // 鐐瑰嚮浠绘剰浣嶇疆鍏抽棴鑿滃崟
+ $(document).off('click.ctxMenu').on('click.ctxMenu', function () {
+ contextMenu.remove();
+ });
+
+ // 鐐瑰嚮鏈夊瓙鑿滃崟鐨勮妭鐐逛笉鍏抽棴鑿滃崟
+ $(document).off('click.ctxMenuMore').on('click.ctxMenuMore', '.ctxMenu-item', function (e) {
+ if ($(this).hasClass('haveMore')) {
+ if (e !== void 0) {
+ e.preventDefault();
+ e.stopPropagation();
+ }
+ } else {
+ contextMenu.remove();
+ }
+ });
+
+ $('head').append('<style id="ew-css-ctx">' + contextMenu.getCommonCss() + '</style>');
+ exports("contextMenu", contextMenu);
+});
\ No newline at end of file
diff --git a/src/main/webapp/static/layui/lay/modules/index.js b/src/main/webapp/static/layui/lay/modules/index.js
new file mode 100644
index 0000000..93d9297
--- /dev/null
+++ b/src/main/webapp/static/layui/lay/modules/index.js
@@ -0,0 +1,302 @@
+/** EasyWeb iframe v3.1.8 date:2020-05-04 License By http://easyweb.vip */
+
+layui.define(['layer', 'element', 'admin'], function (exports) {
+ var $ = layui.jquery;
+ var layer = layui.layer;
+ var element = layui.element;
+ var admin = layui.admin;
+ var setter = admin.setter;
+ var headerDOM = '.layui-layout-admin>.layui-header';
+ var sideDOM = '.layui-layout-admin>.layui-side>.layui-side-scroll';
+ var bodyDOM = '.layui-layout-admin>.layui-body';
+ var tabDOM = bodyDOM + '>.layui-tab';
+ var titleDOM = bodyDOM + '>.layui-body-header';
+ var tabFilter = 'admin-pagetabs';
+ var navFilter = 'admin-side-nav';
+ var tabEndCall = {}; // Tab鍏抽棴鐨勪簨浠跺洖璋�
+ var mIsAddTab = false; // 鏄惁鏄坊鍔燭ab锛屾坊鍔燭ab鐨勬椂鍊欏垏鎹笉鑷姩鍒锋柊
+ var index = {homeUrl: undefined, mTabPosition: undefined, mTabList: []};
+
+ /** 娓叉煋涓讳綋閮ㄥ垎 */
+ index.loadView = function (param) {
+ if (!param.menuPath) return layer.msg('url涓嶈兘涓虹┖', {icon: 2, anim: 6});
+ if (setter.pageTabs) { // 澶氭爣绛炬ā寮�
+ var flag; // 閫夐」鍗℃槸鍚﹀凡娣诲姞
+ $(tabDOM + '>.layui-tab-title>li').each(function () {
+ if ($(this).attr('lay-id') === param.menuPath) flag = true;
+ });
+ if (!flag) { // 娣诲姞閫夐」鍗�
+ if (index.mTabList.length + 1 >= setter.maxTabNum) {
+ layer.msg('鏈�澶氭墦寮�' + setter.maxTabNum + '涓�夐」鍗�', {icon: 2, anim: 6});
+ return admin.activeNav(index.mTabPosition);
+ }
+ mIsAddTab = true;
+ element.tabAdd(tabFilter, {
+ id: param.menuPath, title: '<span class="title">' + (param.menuName || '') + '</span>',
+ content: '<iframe class="admin-iframe" lay-id="' + param.menuPath + '" src="' + param.menuPath +
+ '" onload="layui.index.hideLoading(this);" frameborder="0"></iframe>'
+ });
+ admin.showLoading({elem: $('iframe[lay-id="' + param.menuPath + '"]').parent(), size: ''});
+ if (param.menuPath !== index.homeUrl) index.mTabList.push(param); // 璁板綍tab
+ if (setter.cacheTab) admin.putTempData('indexTabs', index.mTabList); // 缂撳瓨tab
+ }
+ if (!param.noChange) element.tabChange(tabFilter, param.menuPath); // 鍒囨崲鍒版tab
+ } else { // 鍗曟爣绛炬ā寮�
+ admin.activeNav(param.menuPath);
+ var $contentDom = $(bodyDOM + '>div>.admin-iframe');
+ if ($contentDom.length === 0) {
+ $(bodyDOM).html([
+ '<div class="layui-body-header">',
+ ' <span class="layui-body-header-title"></span>',
+ ' <span class="layui-breadcrumb pull-right" lay-filter="admin-body-breadcrumb" style="visibility: visible;"></span>',
+ '</div>',
+ '<div style="-webkit-overflow-scrolling: touch;">',
+ ' <iframe class="admin-iframe" lay-id="', param.menuPath, '" src="', param.menuPath, '"',
+ ' onload="layui.index.hideLoading(this);" frameborder="0"></iframe>',
+ '</div>'].join(''));
+ admin.showLoading({elem: $('iframe[lay-id="' + param.menuPath + '"]').parent(), size: ''});
+ } else {
+ admin.showLoading({elem: $contentDom.parent(), size: ''});
+ $contentDom.attr('lay-id', param.menuPath).attr('src', param.menuPath);
+ }
+ $('[lay-filter="admin-body-breadcrumb"]').html(index.getBreadcrumbHtml(param.menuPath));
+ index.mTabList.splice(0, index.mTabList.length);
+ if (param.menuPath === index.homeUrl) {
+ index.mTabPosition = undefined;
+ index.setTabTitle($(param.menuName).text() || $(sideDOM + ' [lay-href="' + index.homeUrl + '"]').text() || '涓婚〉');
+ } else {
+ index.mTabPosition = param.menuPath;
+ index.mTabList.push(param);
+ index.setTabTitle(param.menuName);
+ }
+ if (!setter.cacheTab) return;
+ admin.putTempData('indexTabs', index.mTabList);
+ admin.putTempData('tabPosition', index.mTabPosition);
+ }
+ if (admin.getPageWidth() <= 768) admin.flexible(true); // 绉诲姩绔嚜鍔ㄦ敹璧蜂晶瀵艰埅
+ };
+
+ /** 鍔犺浇涓婚〉 */
+ index.loadHome = function (param) {
+ var cacheTabs = admin.getTempData('indexTabs'); // 鑾峰彇缂撳瓨tab
+ var cachePosition = admin.getTempData('tabPosition');
+ var recover = (param.loadSetting === undefined || param.loadSetting) && (setter.cacheTab && cacheTabs && cacheTabs.length > 0);
+ index.homeUrl = param.menuPath;
+ param.noChange = cachePosition ? recover : false;
+ if (setter.pageTabs || !recover) index.loadView(param);
+ if (recover) { // 鎭㈠缂撳瓨tab
+ for (var i = 0; i < cacheTabs.length; i++) {
+ cacheTabs[i].noChange = cacheTabs[i].menuPath !== cachePosition;
+ if (!cacheTabs[i].noChange || (setter.pageTabs && !param.onlyLast)) index.loadView(cacheTabs[i]);
+ }
+ }
+ admin.removeLoading(undefined, false);
+ };
+
+ /** 鎵撳紑tab */
+ index.openTab = function (param) {
+ if (window !== top && !admin.isTop() && top.layui && top.layui.index) return top.layui.index.openTab(param);
+ if (param.end) tabEndCall[param.url] = param.end;
+ index.loadView({menuPath: param.url, menuName: param.title});
+ };
+
+ /** 鍏抽棴tab */
+ index.closeTab = function (url) {
+ if (window !== top && !admin.isTop() && top.layui && top.layui.index) return top.layui.index.closeTab(url);
+ element.tabDelete(tabFilter, url);
+ };
+
+ /** 璁剧疆鏄惁璁板繂Tab */
+ index.setTabCache = function (isCache) {
+ if (window !== top && !admin.isTop() && top.layui && top.layui.index) return top.layui.index.setTabCache(isCache);
+ admin.putSetting('cacheTab', isCache);
+ if (!isCache) return index.clearTabCache();
+ admin.putTempData('indexTabs', index.mTabList);
+ admin.putTempData('tabPosition', index.mTabPosition);
+ };
+
+ /** 娓呴櫎tab璁板繂 */
+ index.clearTabCache = function () {
+ admin.putTempData('indexTabs', null);
+ admin.putTempData('tabPosition', null);
+ };
+
+ /** 璁剧疆tab鏍囬 */
+ index.setTabTitle = function (title, tabId) {
+ if (window !== top && !admin.isTop() && top.layui && top.layui.index) return top.layui.index.setTabTitle(title, tabId);
+ if (setter.pageTabs) {
+ if (!tabId) tabId = $(tabDOM + '>.layui-tab-title>li.layui-this').attr('lay-id');
+ if (tabId) $(tabDOM + '>.layui-tab-title>li[lay-id="' + tabId + '"] .title').html(title || '');
+ } else if (title) {
+ $(titleDOM + '>.layui-body-header-title').html(title);
+ $(titleDOM).addClass('show');
+ $(headerDOM).css('box-shadow', '0 1px 0 0 rgba(0, 0, 0, .03)');
+ } else {
+ $(titleDOM).removeClass('show');
+ $(headerDOM).css('box-shadow', '');
+ }
+ };
+
+ /** 鑷畾涔塼ab鏍囬 */
+ index.setTabTitleHtml = function (html) {
+ if (window !== top && !admin.isTop() && top.layui && top.layui.index) return top.layui.index.setTabTitleHtml(html);
+ if (setter.pageTabs) return;
+ if (!html) return $(titleDOM).removeClass('show');
+ $(titleDOM).html(html);
+ $(titleDOM).addClass('show');
+ };
+
+ /** 鑾峰彇闈㈠寘灞� */
+ index.getBreadcrumb = function (tabId) {
+ if (!tabId) tabId = $(bodyDOM + '>div>.admin-iframe').attr('lay-id');
+ var breadcrumb = [];
+ var $href = $(sideDOM).find('[lay-href="' + tabId + '"]');
+ if ($href.length > 0) breadcrumb.push($href.text().replace(/(^\s*)|(\s*$)/g, ''));
+ while (true) {
+ $href = $href.parent('dd').parent('dl').prev('a');
+ if ($href.length === 0) break;
+ breadcrumb.unshift($href.text().replace(/(^\s*)|(\s*$)/g, ''));
+ }
+ return breadcrumb;
+ };
+
+ /** 鑾峰彇闈㈠寘灞戠粨鏋� */
+ index.getBreadcrumbHtml = function (tabId) {
+ var breadcrumb = index.getBreadcrumb(tabId);
+ var htmlStr = tabId === index.homeUrl ? '' : ('<a ew-href="' + index.homeUrl + '">棣栭〉</a>');
+ for (var i = 0; i < breadcrumb.length - 1; i++) {
+ if (htmlStr) htmlStr += '<span lay-separator="">/</span>';
+ htmlStr += ('<a><cite>' + breadcrumb[i] + '</cite></a>');
+ }
+ return htmlStr;
+ };
+
+ /** 鍏抽棴loading */
+ index.hideLoading = function (url) {
+ if (typeof url !== 'string') url = $(url).attr('lay-id');
+ admin.removeLoading($('iframe[lay-id="' + url + '"],' + bodyDOM + ' iframe[lay-id]').parent(), false);
+ };
+
+ /** 绉诲姩璁惧閬僵灞� */
+ var siteShadeDom = '.layui-layout-admin .site-mobile-shade';
+ if ($(siteShadeDom).length === 0) $('.layui-layout-admin').append('<div class="site-mobile-shade"></div>');
+ $(siteShadeDom).click(function () {
+ admin.flexible(true);
+ });
+
+ /** 琛ュ厖tab鐨刣om */
+ if (setter.pageTabs && $(tabDOM).length === 0) {
+ $(bodyDOM).html([
+ '<div class="layui-tab" lay-allowClose="true" lay-filter="', tabFilter, '" lay-autoRefresh="', setter.tabAutoRefresh == 'true', '">',
+ ' <ul class="layui-tab-title"></ul><div class="layui-tab-content"></div>',
+ '</div>',
+ '<div class="layui-icon admin-tabs-control layui-icon-prev" ew-event="leftPage"></div>',
+ '<div class="layui-icon admin-tabs-control layui-icon-next" ew-event="rightPage"></div>',
+ '<div class="layui-icon admin-tabs-control layui-icon-down">',
+ ' <ul class="layui-nav" lay-filter="admin-pagetabs-nav">',
+ ' <li class="layui-nav-item" lay-unselect>',
+ ' <dl class="layui-nav-child layui-anim-fadein">',
+ ' <dd ew-event="closeThisTabs" lay-unselect><a>鍏抽棴褰撳墠鏍囩椤�</a></dd>',
+ ' <dd ew-event="closeOtherTabs" lay-unselect><a>鍏抽棴鍏跺畠鏍囩椤�</a></dd>',
+ ' <dd ew-event="closeAllTabs" lay-unselect><a>鍏抽棴鍏ㄩ儴鏍囩椤�</a></dd>',
+ ' </dl>',
+ ' </li>',
+ ' </ul>',
+ '</div>'
+ ].join(''));
+ element.render('nav', 'admin-pagetabs-nav');
+ }
+
+ /** 渚у鑸偣鍑荤洃鍚� */
+ element.on('nav(' + navFilter + ')', function (elem) {
+ var $that = $(elem);
+ var href = $that.attr('lay-href');
+ if (!href || href === '#') return;
+ if (href.indexOf('javascript:') === 0) return new Function(href.substring(11))();
+ var name = $that.attr('ew-title') || $that.text().replace(/(^\s*)|(\s*$)/g, '');
+ var end = $that.attr('ew-end');
+ try {
+ if (end) end = new Function(end);
+ else end = undefined;
+ } catch (e) {
+ console.error(e);
+ }
+ index.openTab({url: href, title: name, end: end});
+ layui.event.call(this, 'admin', 'side({*})', {href: href});
+ });
+
+ /** tab鍒囨崲鐩戝惉 */
+ element.on('tab(' + tabFilter + ')', function () {
+ var layId = $(this).attr('lay-id');
+ index.mTabPosition = (layId !== index.homeUrl ? layId : undefined); // 璁板綍褰撳墠Tab浣嶇疆
+ if (setter.cacheTab) admin.putTempData('tabPosition', index.mTabPosition);
+ admin.activeNav(layId);
+ admin.rollPage('auto');
+ if ($(tabDOM).attr('lay-autoRefresh') == 'true' && !mIsAddTab) admin.refresh(layId, true); // 鍒囨崲tab鍒锋柊
+ mIsAddTab = false;
+ layui.event.call(this, 'admin', 'tab({*})', {layId: layId});
+ });
+
+ /** tab鍒犻櫎鐩戝惉 */
+ element.on('tabDelete(' + tabFilter + ')', function (data) {
+ var mTab = index.mTabList[data.index - 1];
+ if (mTab) {
+ index.mTabList.splice(data.index - 1, 1);
+ if (setter.cacheTab) admin.putTempData('indexTabs', index.mTabList);
+ tabEndCall[mTab.menuPath] && tabEndCall[mTab.menuPath].call();
+ layui.event.call(this, 'admin', 'tabDelete({*})', {layId: mTab.menuPath});
+ }
+ if ($(tabDOM + '>.layui-tab-title>li.layui-this').length === 0)
+ $(tabDOM + '>.layui-tab-title>li:last').trigger('click'); // 瑙e喅鍒犻櫎鍚庡彲鑳芥棤閫変腑bug
+ });
+
+ /** 澶氱郴缁熷垏鎹簨浠� */
+ $(document).off('click.navMore').on('click.navMore', '[nav-bind]', function () {
+ var navId = $(this).attr('nav-bind');
+ $('ul[lay-filter="' + navFilter + '"]').addClass('layui-hide');
+ $('ul[nav-id="' + navId + '"]').removeClass('layui-hide');
+ $(headerDOM + '>.layui-nav .layui-nav-item').removeClass('layui-this');
+ $(this).parent('.layui-nav-item').addClass('layui-this');
+ if (admin.getPageWidth() <= 768) admin.flexible(false); // 灞曞紑渚ц竟鏍�
+ layui.event.call(this, 'admin', 'nav({*})', {navId: navId});
+ });
+
+ /** 寮�鍚疶ab鍙抽敭鑿滃崟 */
+ if (setter.openTabCtxMenu && setter.pageTabs) {
+ layui.use('contextMenu', function () {
+ if (!layui.contextMenu) return;
+ $(tabDOM + '>.layui-tab-title').off('contextmenu.tab').on('contextmenu.tab', 'li', function (e) {
+ var layId = $(this).attr('lay-id');
+ layui.contextMenu.show([{
+ icon: 'layui-icon layui-icon-refresh',
+ name: '鍒锋柊褰撳墠',
+ click: function () {
+ element.tabChange(tabFilter, layId);
+ if ('true' != $(tabDOM).attr('lay-autoRefresh')) admin.refresh(layId);
+ }
+ }, {
+ icon: 'layui-icon layui-icon-close-fill ctx-ic-lg',
+ name: '鍏抽棴褰撳墠',
+ click: function () {
+ admin.closeThisTabs(layId);
+ }
+ }, {
+ icon: 'layui-icon layui-icon-unlink',
+ name: '鍏抽棴鍏朵粬',
+ click: function () {
+ admin.closeOtherTabs(layId);
+ }
+ }, {
+ icon: 'layui-icon layui-icon-close ctx-ic-lg',
+ name: '鍏抽棴鍏ㄩ儴',
+ click: function () {
+ admin.closeAllTabs();
+ }
+ }], e.clientX, e.clientY);
+ return false;
+ });
+ });
+ }
+
+ exports('index', index);
+});
diff --git a/src/main/webapp/static/layui/lay/modules/notice/1.wav b/src/main/webapp/static/layui/lay/modules/notice/1.wav
new file mode 100644
index 0000000..9c765d5
--- /dev/null
+++ b/src/main/webapp/static/layui/lay/modules/notice/1.wav
Binary files differ
diff --git a/src/main/webapp/static/layui/lay/modules/notice/2.wav b/src/main/webapp/static/layui/lay/modules/notice/2.wav
new file mode 100644
index 0000000..920f729
--- /dev/null
+++ b/src/main/webapp/static/layui/lay/modules/notice/2.wav
Binary files differ
diff --git a/src/main/webapp/static/layui/lay/modules/notice/3.wav b/src/main/webapp/static/layui/lay/modules/notice/3.wav
new file mode 100644
index 0000000..617cb1e
--- /dev/null
+++ b/src/main/webapp/static/layui/lay/modules/notice/3.wav
Binary files differ
diff --git a/src/main/webapp/static/layui/lay/modules/notice/4.wav b/src/main/webapp/static/layui/lay/modules/notice/4.wav
new file mode 100644
index 0000000..34679f9
--- /dev/null
+++ b/src/main/webapp/static/layui/lay/modules/notice/4.wav
Binary files differ
diff --git a/src/main/webapp/static/layui/lay/modules/notice/5.wav b/src/main/webapp/static/layui/lay/modules/notice/5.wav
new file mode 100644
index 0000000..400feb8
--- /dev/null
+++ b/src/main/webapp/static/layui/lay/modules/notice/5.wav
Binary files differ
diff --git a/src/main/webapp/static/layui/lay/modules/notice/6.wav b/src/main/webapp/static/layui/lay/modules/notice/6.wav
new file mode 100644
index 0000000..9d1beae
--- /dev/null
+++ b/src/main/webapp/static/layui/lay/modules/notice/6.wav
Binary files differ
diff --git a/src/main/webapp/static/layui/lay/modules/notice/notice.css b/src/main/webapp/static/layui/lay/modules/notice/notice.css
new file mode 100644
index 0000000..d723149
--- /dev/null
+++ b/src/main/webapp/static/layui/lay/modules/notice/notice.css
@@ -0,0 +1,1929 @@
+.iziToast-capsule {
+ font-size: 0;
+ height: 0;
+ width: 100%;
+ transform: translateZ(0);
+ backface-visibility: hidden;
+ transition: transform 0.5s cubic-bezier(0.25, 0.8, 0.25, 1), height 0.5s cubic-bezier(0.25, 0.8, 0.25, 1);
+}
+
+.iziToast-capsule, .iziToast-capsule * {
+ box-sizing: border-box;
+}
+
+.iziToast-overlay {
+ display: block;
+ position: fixed;
+ top: -100px;
+ left: 0;
+ right: 0;
+ bottom: -100px;
+ z-index: 19891100;
+}
+
+.iziToast {
+ display: inline-block;
+ clear: both;
+ position: relative;
+ font-family: 'Lato', Tahoma, Arial;
+ font-size: 14px;
+ padding: 8px 45px 9px 0;
+ background: #fff;
+ border-color: #fff;
+ width: 100%;
+ pointer-events: all;
+ cursor: default;
+ transform: translateX(0);
+ -webkit-touch-callout: none /* iOS Safari */;
+ -webkit-user-select: none /* Chrome/Safari/Opera */;
+ -khtml-user-select: none /* Konqueror */;
+ -moz-user-select: none /* Firefox */;
+ -ms-user-select: none /* Internet Explorer/Edge */;
+ user-select: none;
+ min-height: 45px;
+ box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1);
+ max-width: 90%;
+ margin: 5px 0;
+ border-radius: 4px;
+}
+
+.iziToast > .iziToast-progressbar {
+ position: absolute;
+ left: 0;
+ bottom: 0;
+ width: 100%;
+ z-index: 1;
+ background: rgba(255, 255, 255, 0.5);
+}
+
+.iziToast > .iziToast-progressbar > div {
+ height: 2px;
+ width: 100%;
+ background: #dddddd;
+ border-radius: 0 0 3px 3px;
+}
+
+.iziToast.iziToast-theme-dark > .iziToast-progressbar > div {
+ background: #fff;
+}
+
+.iziToast.iziToast-balloon:before {
+ content: '';
+ position: absolute;
+ right: 8px;
+ left: auto;
+ width: 0px;
+ height: 0px;
+ top: 100%;
+ border-right: 0px solid transparent;
+ border-left: 15px solid transparent;
+ border-top: 10px solid #000;
+ border-top-color: inherit;
+ border-radius: 0;
+}
+
+.iziToast.iziToast-balloon .iziToast-progressbar {
+ top: 0;
+ bottom: auto;
+}
+
+.iziToast.iziToast-balloon > div {
+ border-radius: 0 0 0 3px;
+}
+
+.iziToast > .iziToast-cover {
+ position: absolute;
+ left: 0;
+ top: 0;
+ bottom: 0;
+ height: 100%;
+ margin: 0;
+ background-size: 100%;
+ background-position: 50% 50%;
+ background-repeat: no-repeat;
+}
+
+.iziToast > .iziToast-close {
+ position: absolute;
+ right: 0;
+ top: 0;
+ border: 0;
+ padding: 0;
+ opacity: 0.6;
+ width: 42px;
+ height: 100%;
+ background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAJPAAACTwBcGfW0QAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAD3SURBVFiF1ZdtDoMgDEBfdi4PwAX8vLFn0qT7wxantojKupmQmCi8R4tSACpgjC2ICCUbEBa8ingjsU1AXRBeR8aLN64FiknswN8CYefBBDQ3whuFESy7WyQMeC0ipEI0A+0FeBvHUFN8xPaUhAH/iKoWsnXHGegy4J0yxialOfaHJAz4bhRzQzgDvdGnz4GbAonZbCQMuBm1K/kcFu8Mp1N2cFFpsxsMuJqqbIGExGl4loARajU1twskJLLhIsID7+tvUoDnIjTg5T9DPH9EBrz8rxjPzciAl9+O8SxI8CzJ8CxKFfh3ynK8Dyb8wNHM/XDqejx/AtNyPO87tNybAAAAAElFTkSuQmCC") no-repeat 50% 50%;
+ background-size: 8px;
+ cursor: pointer;
+ outline: none;
+}
+
+.iziToast > .iziToast-close:hover {
+ opacity: 1;
+}
+
+.iziToast > .iziToast-body {
+ position: relative;
+ padding: 0 0 0 10px;
+ height: auto;
+ min-height: 28px;
+ margin: 0 0 0 15px;
+ text-align: left;
+}
+
+.iziToast > .iziToast-body:after {
+ content: "";
+ display: table;
+ clear: both;
+}
+
+.iziToast > .iziToast-body .iziToast-texts {
+ margin: 6px 0;
+ padding-right: 2px;
+ display: inline-block;
+ float: left;
+}
+
+.iziToast > .iziToast-body .iziToast-inputs {
+ min-height: 19px;
+ float: left;
+ margin: 3px -2px;
+}
+
+.iziToast > .iziToast-body .iziToast-inputs > input:not([type=checkbox]):not([type=radio]),
+.iziToast > .iziToast-body .iziToast-inputs > select {
+ position: relative;
+ display: inline-block;
+ margin: 2px;
+ border-radius: 2px;
+ border: 0;
+ padding: 4px 7px;
+ font-size: 13px;
+ letter-spacing: 0.02em;
+ background: rgba(0, 0, 0, 0.1);
+ color: #000;
+ box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2);
+ min-height: 26px;
+}
+
+.iziToast > .iziToast-body .iziToast-inputs > input:not([type=checkbox]):not([type=radio]):focus,
+.iziToast > .iziToast-body .iziToast-inputs > select:focus {
+ box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.6);
+}
+
+.iziToast > .iziToast-body .iziToast-buttons {
+ min-height: 17px;
+ float: left;
+ margin: 4px 0 0 0;
+}
+
+.iziToast > .iziToast-body .iziToast-buttons > a,
+.iziToast > .iziToast-body .iziToast-buttons > button,
+.iziToast > .iziToast-body .iziToast-buttons > input:not([type=checkbox]):not([type=radio]) {
+ position: relative;
+ display: inline-block;
+ margin: 2px;
+ border-radius: 2px;
+ border: 0;
+ padding: 5px 10px;
+ font-size: 12px;
+ letter-spacing: 0.02em;
+ cursor: pointer;
+ background: rgba(0, 0, 0, 0.1);
+ color: #555;
+}
+
+.iziToast > .iziToast-body .iziToast-buttons > a:hover,
+.iziToast > .iziToast-body .iziToast-buttons > button:hover,
+.iziToast > .iziToast-body .iziToast-buttons > input:not([type=checkbox]):not([type=radio]):hover {
+ background: rgba(0, 0, 0, 0.15);
+}
+
+.iziToast > .iziToast-body .iziToast-buttons > a:focus,
+.iziToast > .iziToast-body .iziToast-buttons > button:focus,
+.iziToast > .iziToast-body .iziToast-buttons > input:not([type=checkbox]):not([type=radio]):focus {
+ box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.6);
+}
+
+.iziToast > .iziToast-body .iziToast-buttons > a:active,
+.iziToast > .iziToast-body .iziToast-buttons > button:active,
+.iziToast > .iziToast-body .iziToast-buttons > input:not([type=checkbox]):not([type=radio]):active {
+ top: 1px;
+}
+
+.iziToast > .iziToast-body .iziToast-icon {
+ height: 100%;
+ position: absolute;
+ left: 0;
+ top: 50%;
+ display: table;
+ font-size: 23px;
+ line-height: 24px;
+ margin-top: -11px;
+ color: #000;
+ width: 24px;
+ height: 24px;
+}
+
+.iziToast > .iziToast-body .iziToast-icon.ico-info {
+ background: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNTU1NzcxMTk5MzYwIiBjbGFzcz0iaWNvbiIgc3R5bGU9IiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjEwODAzIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiPjxkZWZzPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PC9zdHlsZT48L2RlZnM+PHBhdGggZD0iTTUxMiAyOC40MTZjLTI2Ny40Njg4IDAtNDg0LjI0OTYgMjE2LjgzMi00ODQuMjQ5NiA0ODQuMjQ5NiAwIDI2Ny40MTc2IDIxNi44MzIgNDg0LjI0OTYgNDg0LjI0OTYgNDg0LjI0OTYgMjY3LjQxNzYgMCA0ODQuMzAwOC0yMTYuODMyIDQ4NC4zMDA4LTQ4NC4yNDk2Qzk5Ni4zMDA4IDI0NS4yNDggNzc5LjQxNzYgMjguNDE2IDUxMiAyOC40MTZ6TTQ1NS41MjY0IDI0NS4wOTQ0QzQ3MC4zMjMyIDIyOS44ODggNDkwLjcwMDggMjIxLjMzNzYgNTExLjc5NTIgMjIxLjY0NDhjMjEuMTk2OC0wLjIwNDggNDEuNzc5MiA4LjI0MzIgNTYuNTI0OCAyMy40NDk2IDE1LjAwMTYgMTQuNzk2OCAyMy4yOTYgMzUuMTIzMiAyMy4wOTEyIDU2LjExNTIgMC4yMDQ4IDIxLjE5NjgtOC4yOTQ0IDQxLjU3NDQtMjMuMzk4NCA1Ni4yMTc2LTE0LjY5NDQgMTQuNjk0NC0zNC43MTM2IDIzLjA0LTU1LjM5ODQgMjMuMDRMNTExLjc5NTIgMzgwLjQ2NzJjLTIwLjk5MiAwLjIwNDgtNDEuMzY5Ni04LjE0MDgtNTYuMDY0LTIzLjE0MjRDNDQwLjY3ODQgMzQyLjY4MTYgNDMyLjMzMjggMzIyLjMwNCA0MzIuNTM3NiAzMDEuMjA5NiA0MzIuMzMyOCAyODAuMjE3NiA0NDAuNjc4NCAyNTkuODkxMiA0NTUuNTI2NCAyNDUuMDk0NHpNNjI3LjYwOTYgNzY4LjE1MzZsMCAxMy40MTQ0IDAgMjIuMjIwOEwzOTYuMjg4IDgwMy43ODg4bDAtNTcuMTM5MiAyMS42MDY0LTAuNzY4YzEwLjI0LTAuNDYwOCAxNC41OTItMi43MTM2IDE2Ljk5ODQtNC43NjE2bDEuMjI4OC01LjQyNzJjMC45NzI4LTUuNTgwOCAxLjYzODQtMTQuNDM4NCAxLjU4NzItMjUuOTA3Mkw0MzcuNzA4OCA1MDcuOTA0YzAuMjU2LTE3Ljc2NjQtMi4zNTUyLTI5LjkwMDgtMy40ODE2LTMyLjU2MzJsMCAwTDQzMS42MTYgNDc0LjA2MDhDNDI4Ljg1MTIgNDczLjA4OCA0MjMuOTM2IDQ3Mi4wNjQgNDE3LjE3NzYgNDcxLjY1NDRMMzk2LjI4OCA0NzAuMzc0NCAzOTYuMjg4IDQxMy40OTEybDE4OS40OTEyIDAgMCAyOTYuMjk0NGMtMC4zMDcyIDE3LjcxNTIgMi40MDY0IDI5Ljc5ODQgMy40MzA0IDMyLjU2MzJsMC4wNTEyIDAgMi43MTM2IDEuMTc3NmMyLjgxNiAwLjk3MjggNy43ODI0IDEuOTk2OCAxNC42OTQ0IDIuMzU1MmwyMC44ODk2IDEuMjhMNjI3LjU1ODQgNzY4LjE1MzZ6IiBwLWlkPSIxMDgwNCIgZmlsbD0iIzQwOUVGRiI+PC9wYXRoPjwvc3ZnPg==") no-repeat 50% 50%;
+ background-size: 85%;
+}
+
+.iziToast > .iziToast-body .iziToast-icon.ico-warning {
+ background: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNTU1NzcwODczNzUzIiBjbGFzcz0iaWNvbiIgc3R5bGU9IiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjUxMTgiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PGRlZnM+PHN0eWxlIHR5cGU9InRleHQvY3NzIj48L3N0eWxlPjwvZGVmcz48cGF0aCBkPSJNNTEyLjAyMzI3MyAxMDI0Qzc5NC43NjM2MzYgMTAyNCAxMDI0IDc5NC43ODY5MDkgMTAyNCA1MTEuOTc2NzI3IDEwMjQgMjI5LjIzNjM2NCA3OTQuNzg2OTA5LTAuMDIzMjczIDUxMi4wMjMyNzMtMC4wMjMyNzNTMCAyMjkuMjEzMDkxIDAgNTExLjk3NjcyN0MwIDc5NC43ODY5MDkgMjI5LjIzNjM2NCAxMDI0IDUxMi4wMjMyNzMgMTAyNE00NjkuMzQxMDkxIDc2OGMwLTIzLjU1MiAxOC45MjA3MjctNDIuNjU4OTA5IDQyLjcwNTQ1NS00Mi42NTg5MDkgMjMuNTUyIDAgNDIuNjU4OTA5IDE4LjkyMDcyNyA0Mi42NTg5MDkgNDIuNjU4OTA5IDAgMjMuNTc1MjczLTE4LjkyMDcyNyA0Mi43MDU0NTUtNDIuNjU4OTA5IDQyLjcwNTQ1NUM0ODguNDcxMjczIDgxMC43MDU0NTUgNDY5LjM0MTA5MSA3OTEuNzM4MTgyIDQ2OS4zNDEwOTEgNzY4TTQ2OS4zNDEwOTEgMjU1LjgxMzgxOGMwLTIzLjQ1ODkwOSAxOC45MjA3MjctNDIuNDcyNzI3IDQyLjcwNTQ1NS00Mi40NzI3MjcgMjMuNTUyIDAgNDIuNjU4OTA5IDE5LjQzMjcyNyA0Mi42NTg5MDkgNDIuNDcyNzI3bDAgMzQxLjczNjcyN2MwIDIzLjQ1ODkwOS0xOC45MjA3MjcgNDIuNDcyNzI3LTQyLjY1ODkwOSA0Mi40NzI3MjctMjMuNTc1MjczIDAtNDIuNzA1NDU1LTE5LjQzMjcyNy00Mi43MDU0NTUtNDIuNDcyNzI3TDQ2OS4zNDEwOTEgMjU1LjgxMzgxOHoiIHAtaWQ9IjUxMTkiIGZpbGw9IiNmZjk5MDAiPjwvcGF0aD48L3N2Zz4=") no-repeat 50% 50%;
+ background-size: 85%;
+}
+
+.iziToast > .iziToast-body .iziToast-icon.ico-error {
+ background: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNTU1NzcwNDI1NDkwIiBjbGFzcz0iaWNvbiIgc3R5bGU9IiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjEyNjUiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PGRlZnM+PHN0eWxlIHR5cGU9InRleHQvY3NzIj48L3N0eWxlPjwvZGVmcz48cGF0aCBkPSJNNTExLjk5NjQxOCAyMy41MjA2OTNjLTI2OS43NjcwNSAwLTQ4OC40NTQ3NDggMjE4LjY4ODcyMS00ODguNDU0NzQ4IDQ4OC40NTQ3NDggMCAyNjkuNzY4MDczIDIxOC42ODg3MjEgNDg4LjQ1MzcyNCA0ODguNDU0NzQ4IDQ4OC40NTM3MjQgMjY5Ljc2NjAyNyAwIDQ4OC40NTQ3NDgtMjE4LjY4NTY1MSA0ODguNDU0NzQ4LTQ4OC40NTM3MjRDMTAwMC40NTExNjYgMjQyLjIwOTQxNCA3ODEuNzYyNDQ1IDIzLjUyMDY5MyA1MTEuOTk2NDE4IDIzLjUyMDY5M3pNNzY5LjMzNDM5MSA3MTUuMTU1OTU2bC01NC4xNTY0MzQgNTQuMTU2NDM0TDUxMS45OTY0MTggNTY2LjEyOTgyOCAzMDguODEzODU2IDc2OS4zMTIzOWwtNTQuMTU1NDExLTU0LjE1NjQzNEw0NTcuODQxMDA4IDUxMS45NzU0NDEgMjU0LjY1ODQ0NiAzMDguNzkyODc4bDU0LjE1NTQxMS01NC4xNTU0MTFMNTExLjk5NjQxOCA0NTcuODIwMDNsMjAzLjE4MjU2Mi0yMDMuMTgyNTYyIDU0LjE1NjQzNCA1NC4xNTU0MTFMNTY2LjE1MTgyOSA1MTEuOTc1NDQxIDc2OS4zMzQzOTEgNzE1LjE1NTk1NnoiIHAtaWQ9IjEyNjYiIGZpbGw9IiNGNTZDNkMiPjwvcGF0aD48L3N2Zz4=") no-repeat 50% 50%;
+ background-size: 80%;
+}
+
+.iziToast > .iziToast-body .iziToast-icon.ico-success {
+ background: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNTU1NzcwNTI2MjA3IiBjbGFzcz0iaWNvbiIgc3R5bGU9IiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjQ5NjUiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PGRlZnM+PHN0eWxlIHR5cGU9InRleHQvY3NzIj48L3N0eWxlPjwvZGVmcz48cGF0aCBkPSJNMTAyNCA1MTEuOTk5NTAyYzAgMjgyLjc3MDU1Ny0yMjkuMjI5OTQxIDUxMi4wMDA0OTgtNTExLjk5OTUwMiA1MTIuMDAwNDk4LTI4Mi43Njk1NjEgMC01MTIuMDAwNDk4LTIyOS4yMjk5NDEtNTEyLjAwMDQ5OC01MTIuMDAwNDk4IDAtMjgyLjc2ODU2NiAyMjkuMjMwOTM2LTUxMS45OTk1MDIgNTEyLjAwMDQ5OC01MTEuOTk5NTAyQzc5NC43NjkwNjQgMCAxMDI0IDIyOS4yMzA5MzYgMTAyNCA1MTEuOTk5NTAyek03OTYuNTc3MDgxIDM3OC4zMTc3MTNsLTQ4LjQ1OTA1MS00OC40NTkwNTEtMjk3LjA3ODM4NyAyOTcuMDc3MzkyTDI3Ny4yNjc4NTIgNDUzLjE2NTI1OGwtNDguNDU4MDU2IDQ4LjQ1ODA1NiAyMjIuMjI4ODUxIDIyMi4yMzA4NDJMNzk2LjU3NzA4MSAzNzguMzE3NzEzeiIgcC1pZD0iNDk2NiIgZmlsbD0iIzY3YzIzYSI+PC9wYXRoPjwvc3ZnPg==") no-repeat 50% 50%;
+ background-size: 85%;
+}
+
+.iziToast > .iziToast-body .iziToast-icon.ico-question {
+ background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAQAAAAAYLlVAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfhCQkUEhFovxTxAAAEDklEQVRo3s2ZTWgTQRTHf03ipTRUqghNSgsRjHgQrFUQC6JgD1Kak3gQUUoPqRdBglf1oBehBws9Cn4cGk+1SOmh2upBxAYVoeJHrR9tgq0i1Cq0lqYeks7MbpPdmU00/c8hm9n33v/t7Nt5M2+qMEWQI0QIibZKRrQpHvLL2KI2wnQzzBKrDm2RIeKEy01dTYKUI7G1ZRknQXV5yP10kTYgly1NF/5S6duZ8ES+1iZodyaocrjXxE0OFeifYYgp0mRIkwFChAkRJsIxGgrIP+I0n82fvZW5dc/zkss0O2o1c5mX6/TmaDWl77RFe5YkUW3tKEmyFv0lOvXJ/fTYnmCEFuMRbGHEZqVHLyT9DFjUJmkzJl9DG5MWWwM6Llif/gF1nukB6nhgGwUXdFrE+wiURA8QoM9i0zEWWpXQW+ZsyeRrOMuyEo5Fv4gmy4dXPvqcC+pH2VRYaMwy+OWG+iLGCgm0W0Kv9HdvR8ASjmKCXpuK/bxiV/76A/v5UdDIZuKcJGjrnec5KZ7wwsWFOp6xPX/9mt2sqDe7FO+Kf/fXHBPPDWpdXGhTpLvUG9VKwh1xMDDjkvu+cNDFBTk7ptX1QkKZ850m3duu6fcrWxwdaFFyREJ2j4vOpKP6Du6z4uJCv8sYJIVkCnJBGGZaBONO3roY2EqNrSfIPi7SKP4fdXyNUd6I6wbSAHEl33tFLe+FlSsusnK90A0+oEPcuufZgXnOi+u9LrKSJQZQw6LwqBnv2CKsfHORbFbyQhA6xN/pEuihSdj56Co7LWRjPiKie6gkB2LiKuUqK5kiPkLiz1QJ9K1cNXBAMoUCigNpQ9IqDtMI1HKA4/jyvUsaoSyZLA5kjOjDPFZen8Ql5TsvBskUgjciIPSX3QAXC86DT7VWvlEh/xZ+ij9BDVWJ0QL0SbZq6QaFxoLPcXPmBLveLCc4wXdDK6s+6/vwhCSniFLPXW0NJe5UB8zKCsviqpc7vGPVQFcyZbyPwGD+d5ZnxmNWlhG4xSBZZjivjIWHEQgoDkSMjMwTo54569JSE5IpA7EyJSMTyGTUAUFlO1ZKOtaHTMeL1PhYYFTcihmY2cQ5+ullj7EDkiVfVez2sCTz8yiv84djhg7IJVk81xFWJlPdfHBG0flkRC/zQFZ+DSllNtfDdUsOMCliyGX5uOzU3ZhIXFDof4m1gDuKbEx0t2YS25gVGpcMnr/I1kx3c6piB8P8ZoqEwfMX3ZyCXynJTmq/U7NUXqfUzCbWL1wqVKBQUeESzQYoUlW8TAcVL1RCxUu1G6BYXfFyfQ4VPbDI4T8d2WzgQ6sc/vmxnTsqfHCZQzUJxm1h5dxS5Tu6lQgTZ0ipqRVqSwzTbbLHMt+c19iO76tsx/cLZub+Ali+tYC93olEAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE3LTA5LTA5VDIwOjE4OjE3KzAyOjAwjKtfjgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNy0wOS0wOVQyMDoxODoxNyswMjowMP325zIAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC") no-repeat 50% 50%;
+ background-size: 85%;
+}
+
+.iziToast > .iziToast-body .iziToast-icon.ico-load {
+ background: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNTQ1NTUyMzAyOTE3IiBjbGFzcz0iaWNvbiIgc3R5bGU9IiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjQyNDAiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+PGRlZnM+PHN0eWxlIHR5cGU9InRleHQvY3NzIj48L3N0eWxlPjwvZGVmcz48cGF0aCBkPSJNNTEyIDY0YzI0Ny4yIDAgNDQ4IDIwMC44IDQ0OCA0NDhoLTY0YzAtMjEyLTE3Mi0zODQtMzg0LTM4NFY2NHogbTAgODMyYy0yMTIgMC0zODQtMTcyLTM4NC0zODRINjRjMCAyNDcuMiAyMDAuOCA0NDggNDQ4IDQ0OHYtNjR6IiBwLWlkPSI0MjQxIiBmaWxsPSIjMUU5RkZGIj48L3BhdGg+PC9zdmc+') no-repeat 50% 50%;
+ background-size: 85%;
+ animation: rotating 1.2s linear infinite
+}
+
+@keyframes rotating {
+ from {
+ transform: rotate(0)
+ }
+ to {
+ transform: rotate(360deg)
+ }
+}
+
+.iziToast > .iziToast-body .iziToast-title {
+ padding: 0;
+ margin: 0 0 10px 0;
+ line-height: 16px;
+ font-size: 14px;
+ text-align: left;
+ float: left;
+ color: #303133;
+ white-space: normal;
+}
+
+.iziToast > .iziToast-body .iziToast-message {
+ padding: 0;
+ margin: 0;
+ font-size: 14px;
+ line-height: 16px;
+ text-align: left;
+ float: left;
+ color: #606266;
+ white-space: normal;
+}
+
+.iziToast.iziToast-animateInside .iziToast-title,
+.iziToast.iziToast-animateInside .iziToast-message,
+.iziToast.iziToast-animateInside .iziToast-icon,
+.iziToast.iziToast-animateInside .iziToast-buttons-child,
+.iziToast.iziToast-animateInside .iziToast-inputs-child {
+ opacity: 0;
+}
+
+.iziToast-target {
+ position: relative;
+ width: 100%;
+ margin: 0 auto;
+}
+
+.iziToast-target .iziToast-capsule {
+ overflow: hidden;
+}
+
+.iziToast-target .iziToast-capsule:after {
+ visibility: hidden;
+ display: block;
+ font-size: 0;
+ content: " ";
+ clear: both;
+ height: 0;
+}
+
+.iziToast-target .iziToast-capsule .iziToast {
+ width: 100%;
+ float: left;
+}
+
+.iziToast-wrapper {
+ z-index: 19891101;
+ position: fixed;
+ width: 100%;
+ pointer-events: none;
+ display: flex;
+ flex-direction: column;
+}
+
+.iziToast-wrapper .iziToast.iziToast-balloon:before {
+ border-right: 0 solid transparent;
+ border-left: 15px solid transparent;
+ border-top: 10px solid #000;
+ border-top-color: inherit;
+ right: 8px;
+ left: auto;
+}
+
+.iziToast-wrapper-bottomLeft {
+ left: 0;
+ bottom: 0;
+ text-align: left;
+}
+
+.iziToast-wrapper-bottomLeft .iziToast.iziToast-balloon:before {
+ border-right: 15px solid transparent;
+ border-left: 0 solid transparent;
+ right: auto;
+ left: 8px;
+}
+
+.iziToast-wrapper-bottomRight {
+ right: 0;
+ bottom: 0;
+ text-align: right;
+}
+
+.iziToast-wrapper-topLeft {
+ left: 0;
+ top: 0;
+ text-align: left;
+}
+
+.iziToast-wrapper-topLeft .iziToast.iziToast-balloon:before {
+ border-right: 15px solid transparent;
+ border-left: 0 solid transparent;
+ right: auto;
+ left: 8px;
+}
+
+.iziToast-wrapper-topRight {
+ top: 0;
+ right: 0;
+ text-align: right;
+}
+
+.iziToast-wrapper-topCenter {
+ top: 0;
+ left: 0;
+ right: 0;
+ text-align: center;
+}
+
+.iziToast-wrapper-bottomCenter {
+ bottom: 0;
+ left: 0;
+ right: 0;
+ text-align: center;
+}
+
+.iziToast-wrapper-center {
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ text-align: center;
+ justify-content: center;
+ flex-flow: column;
+ align-items: center;
+}
+
+.iziToast-rtl {
+ direction: rtl;
+ padding: 8px 0 9px 45px;
+ font-family: Tahoma, 'Lato', Arial;
+}
+
+.iziToast-rtl .iziToast-cover {
+ left: auto;
+ right: 0;
+}
+
+.iziToast-rtl .iziToast-close {
+ right: auto;
+ left: 0;
+}
+
+.iziToast-rtl .iziToast-body {
+ padding: 0 10px 0 0;
+ margin: 0 16px 0 0;
+ text-align: right;
+}
+
+.iziToast-rtl .iziToast-body .iziToast-buttons,
+.iziToast-rtl .iziToast-body .iziToast-inputs,
+.iziToast-rtl .iziToast-body .iziToast-texts,
+.iziToast-rtl .iziToast-body .iziToast-title,
+.iziToast-rtl .iziToast-body .iziToast-message {
+ float: right;
+ text-align: right;
+}
+
+.iziToast-rtl .iziToast-body .iziToast-icon {
+ left: auto;
+ right: 0;
+}
+
+@media only screen and (min-width: 568px) {
+ .iziToast-wrapper {
+ padding: 10px 15px;
+ }
+
+ .iziToast {
+ width: auto;
+ }
+
+ .iziToast:not(.iziToast-rtl) .iziToast-cover {
+ border-radius: 3px 0 0 3px;
+ }
+
+ .iziToast.iziToast-rtl .iziToast-cover {
+ border-radius: 0 3px 3px 0;
+ }
+
+ .iziToast.iziToast-color-dark:after {
+ box-shadow: inset 0 -10px 20px -10px rgba(255, 255, 255, 0.3), 0 10px 10px -5px rgba(0, 0, 0, 0.25);
+ }
+
+ .iziToast.iziToast-balloon .iziToast-progressbar {
+ background: transparent;
+ }
+
+ .iziToast.iziToast-balloon:after {
+ box-shadow: 0 10px 10px -5px rgba(0, 0, 0, 0.25), inset 0 10px 20px -5px rgba(0, 0, 0, 0.25);
+ }
+
+ .iziToast-target .iziToast:after {
+ box-shadow: inset 0 -10px 20px -10px rgba(0, 0, 0, 0.2), inset 0 0 5px rgba(0, 0, 0, 0.1);
+ }
+}
+
+.iziToast.iziToast-theme-dark {
+ background: #565c70;
+ border-color: #565c70;
+}
+
+.iziToast.iziToast-theme-dark .iziToast-title {
+ color: #fff;
+}
+
+.iziToast.iziToast-theme-dark .iziToast-message {
+ color: rgba(255, 255, 255, 0.9);
+ font-weight: 300;
+}
+
+.iziToast.iziToast-theme-dark .iziToast-close {
+ background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfgCR4OIQIPSao6AAAAwElEQVRIx72VUQ6EIAwFmz2XB+AConhjzqTJ7JeGKhLYlyx/BGdoBVpjIpMJNjgIZDKTkQHYmYfwmR2AfAqGFBcO2QjXZCd24bEggvd1KBx+xlwoDpYmvnBUUy68DYXD77ESr8WDtYqvxRex7a8oHP4Wo1Mkt5I68Mc+qYqv1h5OsZmZsQ3gj/02h6cO/KEYx29hu3R+VTTwz6D3TymIP1E8RvEiiVdZfEzicxYLiljSxKIqlnW5seitTW6uYnv/Aqh4whX3mEUrAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE2LTA5LTMwVDE0OjMzOjAyKzAyOjAwl6RMVgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNi0wOS0zMFQxNDozMzowMiswMjowMOb59OoAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC") no-repeat 50% 50%;
+ background-size: 8px;
+}
+
+.iziToast.iziToast-theme-dark .iziToast-icon {
+ color: #fff;
+}
+
+.iziToast.iziToast-theme-dark .iziToast-icon.ico-info {
+ background: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNTQxNjQ5NjA1MTc2IiBjbGFzcz0iaWNvbiIgc3R5bGU9IiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjM1MzIiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+PGRlZnM+PHN0eWxlIHR5cGU9InRleHQvY3NzIj48L3N0eWxlPjwvZGVmcz48cGF0aCBkPSJNODUxLjE3MTU1NiA3MTcuOTM3Nzc4YzMuMjQyNjY3IDExLjk0NjY2NyAyLjg0NDQ0NCAyNC40NjIyMjItMS40MjIyMjMgMzYuNDA4ODg5YTYyLjkxOTExMSA2Mi45MTkxMTEgMCAwIDEtMjEuOTU5MTExIDI5LjUyNTMzMyA2NS4yNTE1NTYgNjUuMjUxNTU2IDAgMCAxLTM4LjkxMiAxMi41MTU1NTZIMTc4LjExOTExMWE2NC44NTMzMzMgNjQuODUzMzMzIDAgMCAxLTM4Ljc5ODIyMi0xMi41NzI0NDUgNjIuMjM2NDQ0IDYyLjIzNjQ0NCAwIDAgMS0yMi4wMTYtMjkuNTI1MzMzIDYwLjY0MzU1NiA2MC42NDM1NTYgMCAwIDEtMS4zNjUzMzMtMzYuNDA4ODg5YzMuNTg0LTEzLjE0MTMzMyAxMS40MzQ2NjctMjQuNTc2IDIyLjY5ODY2Ni0zMy4xMDkzMzNsNTguNDgxNzc4LTQ0LjAzMmE0MC43MzI0NDQgNDAuNzMyNDQ0IDAgMCAwIDE2LjQ5Nzc3OC0zMi43MTExMTJ2LTIwMy4wOTMzMzNjMC0zNS4yMTQyMjIgNy4xNjgtNjkuNTE4MjIyIDIxLjIxOTU1NS0xMDEuNzE3MzMzIDEzLjY1MzMzMy0zMS4xNzUxMTEgMzMuMTA5MzMzLTU5LjE2NDQ0NCA1Ny44NTYtODMuMTE0NjY3QTI2OC44NTY4ODkgMjY4Ljg1Njg4OSAwIDAgMSA0MTQuNzIgMTUyLjA2NHYtMjguNTAxMzMzQzQxNC43MiA4Ni44MTI0NDQgNDQ1LjYxMDY2NyA1Ni44ODg4ODkgNDgzLjU1NTU1NiA1Ni44ODg4ODljMzcuOTQ0ODg5IDAgNjguODM1NTU2IDI5LjkyMzU1NiA2OC44MzU1NTUgNjYuNjczNzc4djI4LjUwMTMzM2MxMi4zNDQ4ODkgMy4xODU3NzggMjQuNDYyMjIyIDcuMTY4IDM2LjIzODIyMiAxMi4wMDM1NTZhMjY4LjY4NjIyMiAyNjguNjg2MjIyIDAgMCAxIDg1Ljc4ODQ0NSA1Ni4wMzU1NTVjMjQuNzQ2NjY3IDI0LjAwNzExMSA0NC4yMDI2NjcgNTEuOTM5NTU2IDU3Ljc5OTExMSA4My4wNTc3NzggMTQuMTA4NDQ0IDMyLjMxMjg4OSAyMS4yMTk1NTYgNjYuNTYgMjEuMjE5NTU1IDEwMS44MzExMTF2MjAzLjA5MzMzM2MwIDEyLjg1Njg4OSA2LjAzMDIyMiAyNC44NjA0NDQgMTYuNTU0NjY3IDMyLjcxMTExMWw1OC40ODE3NzggNDQuMDMyYzExLjIwNzExMSA4LjUzMzMzMyAxOS4wNTc3NzggMTkuOTExMTExIDIyLjc1NTU1NSAzMy4wNTI0NDV6TTM5OC4yMjIyMjIgODU2LjE3Nzc3OFY4NTMuMzMzMzMzaDE3MC42NjY2Njd2Mi44NDQ0NDVDNTY4Ljg4ODg4OSA5MzUuOTM2IDUzMC42MDI2NjcgOTY3LjExMTExMSA0ODMuNTU1NTU2IDk2Ny4xMTExMTFTMzk4LjIyMjIyMiA5MzUuOTM2IDM5OC4yMjIyMjIgODU2LjE3Nzc3OHoiIHAtaWQ9IjM1MzMiIGZpbGw9IiNmZmZmZmYiPjwvcGF0aD48L3N2Zz4=") no-repeat 50% 50%;
+ background-size: 85%;
+}
+
+.iziToast.iziToast-theme-dark .iziToast-icon.ico-warning {
+ background: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNTQxNjUxMTE1OTQ4IiBjbGFzcz0iaWNvbiIgc3R5bGU9IiIgdmlld0JveD0iMCAwIDEwMjUgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjUwOTYiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTI4LjEyNSIgaGVpZ2h0PSIxMjgiPjxkZWZzPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PC9zdHlsZT48L2RlZnM+PHBhdGggZD0iTTk4NC4wMjI5NTAwMiA3NDYuODc1NDk3NUw2NDEuOTY0NjA3NTIgMTMwLjM4MDY1Yy0zMC40OTE4NDI1LTU0Ljg2MTUwMjUtNzcuOTMxMzE1LTg2LjMzNTY3MjUtMTMwLjE0MzUxLTg2LjMzNTY3MjUtNTIuMjkxNTc1IDAtOTkuNzQwOTcgMzEuNTEzODYtMTMwLjE0MzUxIDg2LjQzNDg5NzVMMzkuOTc2NDU1MDIgNzQ2LjgyNTg4NUM5Ljk2MDg5MjUyIDgwMC45NjMwNDUgNy45MTY4NTc1MiA4NTguMDE3NDIgMzQuMzUwMzk3NTIgOTAzLjM1MzMyMjVjMjYuNTEyOTIgNDUuNDc0ODE3NSA3Ny4xOTcwNSA3MS41NjEwNyAxMzkuMDczNzYgNzEuNTYxMDdoNjc3LjIyMDU0NzVjNjEuOTA2NDc3NSAwIDExMi41OTA2MDc1LTI2LjA4NjI1MjUgMTM5LjAxNDIyNS03MS40OTE2MTI1IDI2LjQ4MzE1MjUtNDUuMjc2MzY3NSAyNC40MjkxOTUtMTAyLjM0MDY2NS01LjYzNTk4LTE1Ni41NDcyODI1ek05MTEuNzU3MzgyNTIgODU3Ljk5NzU3NWMtOS44OTI3MzI1IDE2Ljk4NzMyLTMyLjE1ODgyMjUgMjYuNzMxMjE1LTYxLjExMjY3NzUgMjYuNzMxMjE1SDE3My40MjQxNTc1MmMtMjguOTQzOTMyNSAwLTUxLjIyOTg2NzUtOS43NjM3NC02MS4xNjIyOS0yNi43OTA3NS0xMC4wMjE3MjUtMTcuMTg1NzctNy42MTA1NTc1LTQxLjc0Mzk1NzUgNi41ODg1NC02Ny4zNzM3NzVsMzQxLjcxMTA1NS02MTYuMzY1ODU1YzE0LjA2MDE4MjUtMjUuMzkxNjc3NSAzMi43NTQxNzI1LTM5Ljk1NzkwNzUgNTEuMjU5NjM1LTM5Ljk1NzkwNzUgMTguNDk1NTQgMCAzNy4xOTk0NTI1IDE0LjU2NjIzIDUxLjMwOTI0NzUgMzkuOTM4MDYyNWwzNDIuMDI4NTc1IDYxNi40NDUyMzVjMTQuMjI4ODY1IDI1LjY0OTY2MjUgMTYuNjQwMDMyNSA1MC4xODgwMDUgNi41OTg0NjI1IDY3LjM3Mzc3NXoiIGZpbGw9IiNmZmZmZmYiIHAtaWQ9IjUwOTciPjwvcGF0aD48cGF0aCBkPSJNNTEyLjAxOTU0NzUyIDYzMC4yODYxMjI1YTQ1LjA4Nzg0IDQ1LjA4Nzg0IDAgMCAwIDQ1LjA5Nzc2MjUtNDUuMDA4NDZWMzc0LjY1Mjc1NWE0NS4wNzc5MTc1IDQ1LjA3NzkxNzUgMCAwIDAtNDUuMDk3NzYyNS00NS4wMDg0NiA0NS4wODc4NCA0NS4wODc4NCAwIDAgMC00NS4wOTc3NjI1IDQ1LjAwODQ2djIxMC42MTQ5ODVhNDUuMDg3ODQgNDUuMDg3ODQgMCAwIDAgNDUuMDk3NzYyNSA0NS4wMTgzODI1ek01MTIuMDE5NTQ3NTIgNjc1LjM3Mzk2MjVhNjAuMTcwMDQgNjAuMTcwMDQgMCAwIDAtNjAuMTMwMzUgNjAuMTMwMzVjMCAzMy4xNDExNSAyNi45MTk3NDI1IDYwLjEzMDM1IDYwLjEzMDM1IDYwLjEzMDM1IDMzLjE0MTE1IDAgNjAuMTMwMzUtMjYuOTE5NzQyNSA2MC4xMzAzNS02MC4xMzAzNSAwLTMzLjE0MTE1LTI2LjkxOTc0MjUtNjAuMTMwMzUtNjAuMTMwMzUtNjAuMTMwMzV6IiBmaWxsPSIjZmZmZmZmIiBwLWlkPSI1MDk4Ij48L3BhdGg+PC9zdmc+") no-repeat 50% 50%;
+ background-size: 85%;
+}
+
+.iziToast.iziToast-theme-dark .iziToast-icon.ico-error {
+ background: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNTQxNjUxMzE1NTQ3IiBjbGFzcz0iaWNvbiIgc3R5bGU9IiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjY4MDYiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+PGRlZnM+PHN0eWxlIHR5cGU9InRleHQvY3NzIj48L3N0eWxlPjwvZGVmcz48cGF0aCBkPSJNNzcyLjI2NjY2NyA4ODMuMmMyNS42IDI1LjYgNjQgMjUuNiA4OS42IDAgMjUuNi0yNS42IDI1LjYtNjQgMC04OS42TDIzMC40IDE2Mi4xMzMzMzNjLTI1LjYtMjUuNi02NC0yNS42LTg5LjYgMC0yNS42IDI1LjYtMjUuNiA2NCAwIDg5LjZsNjMxLjQ2NjY2NyA2MzEuNDY2NjY3eiIgcC1pZD0iNjgwNyIgZmlsbD0iI2ZmZmZmZiI+PC9wYXRoPjxwYXRoIGQ9Ik04NjEuODY2NjY3IDI1MS43MzMzMzNjMjUuNi0yNS42IDI1LjYtNjQgMC04OS42LTI1LjYtMjUuNi02NC0yNS42LTg5LjYgMEwxNDAuOCA3OTMuNmMtMjUuNiAyNS42LTI1LjYgNjQgMCA4OS42czY0IDI1LjYgODkuNiAwbDYzMS40NjY2NjctNjMxLjQ2NjY2N3oiIHAtaWQ9IjY4MDgiIGZpbGw9IiNmZmZmZmYiPjwvcGF0aD48L3N2Zz4=") no-repeat 50% 50%;
+ background-size: 80%;
+}
+
+.iziToast.iziToast-theme-dark .iziToast-icon.ico-success {
+ background: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNTQxNjUxMjQyNTMxIiBjbGFzcz0iaWNvbiIgc3R5bGU9IiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjYwMjMiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCI+PGRlZnM+PHN0eWxlIHR5cGU9InRleHQvY3NzIj48L3N0eWxlPjwvZGVmcz48cGF0aCBkPSJNNDA0LjI1MTQyOCA4MDkuNjEwN2MtMTEuNjY0MTAyIDAtMjMuMzI3MTc5LTQuNDQ4NzgyLTMyLjIyNTc2Ny0xMy4zNDczNjlMODMuOTgwMDk4IDUwOC4yMTk4MTVjLTE3Ljc5ODE5OS0xNy43OTcxNzUtMTcuNzk4MTk5LTQ2LjY1MzMzNSAwLTY0LjQ1MTUzM3M0Ni42NTMzMzUtMTcuNzk4MTk5IDY0LjQ1MTUzNCAwbDI4OC4wNDQ1MzkgMjg4LjA0MjQ5MWMxNy43OTgxOTkgMTcuNzk4MTk5IDE3Ljc5ODE5OSA0Ni42NTQzNTkgMCA2NC40NTI1NTgtOC44OTc1NjMgOC44OTg1ODctMjAuNTYxNjY1IDEzLjM0NzM2OS0zMi4yMjQ3NDMgMTMuMzQ3MzY5eiIgcC1pZD0iNjAyNCIgZmlsbD0iI2ZmZmZmZiI+PC9wYXRoPjxwYXRoIGQ9Ik00MDQuMjczOTUzIDgwOS42MTE3MjNjLTExLjY2NDEwMiAwLTIzLjMyNjE1NS00LjQ0OTgwNi0zMi4yMjU3NjYtMTMuMzQ4MzkyLTE3Ljc5ODE5OS0xNy43OTcxNzUtMTcuNzk5MjIyLTQ2LjY1MzMzNS0wLjAwMTAyNC02NC40NTE1MzRMODc2LjEwMTgxMyAyMjcuNzM1NjQ2YzE3Ljc5NjE1MS0xNy43OTgxOTkgNDYuNjUzMzM1LTE3Ljc5OTIyMiA2NC40NTE1MzMtMC4wMDEwMjQgMTcuNzk4MTk5IDE3Ljc5NzE3NSAxNy43OTkyMjIgNDYuNjUzMzM1IDAuMDAxMDI0IDY0LjQ1MTUzM0w0MzYuNTAwNzQ0IDc5Ni4yNjIzMDdjLTguODk4NTg3IDguODk4NTg3LTIwLjU2MjY4OSAxMy4zNDk0MTctMzIuMjI2NzkxIDEzLjM0OTQxNnoiIHAtaWQ9IjYwMjUiIGZpbGw9IiNmZmZmZmYiPjwvcGF0aD48L3N2Zz4=") no-repeat 50% 50%;
+ background-size: 85%;
+}
+
+.iziToast.iziToast-theme-dark .iziToast-icon.ico-question {
+ background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAQAAAAAYLlVAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfhCQkUEg18vki+AAAETUlEQVRo3s1ZTWhbRxD+VlIuxsLFCYVIIQYVopBDoK5bKDWUBupDMNbJ5FBKg/FBziUQdE9yaC+FHBrwsdCfQ9RTGoLxwWl+DqHEojUFFydxnB9bInZDqOsErBrr6yGvs/ueX97bldTKo4Pe7puZb3Z33s7srIIjMY1jyCEjP6ImvyX8pF64arSHznKC06wzijY5xSKz7YbuYokV2lODsyyxqz3gSY6z6gCuqcpxJluFH+Z8U+D/0jyHoxFUBHgfvsGHIS9WMIUlVFFDFTUAGWSRQRY5HMeBEP6b+Ew9dh/7INd2jGeO59kfKdXP85zbIbfGQVf4sYC3N1hm3lo6zzIbPvk6x+zBk7wQGMEMB5xncIAzAS0XrFySSV72iS1yyBVcdA1x0afrsoUJgdFfY2+z8ADAXl7zz0KcwJiPfZKpVuABgClO+nRG+QIHDdfb4qlWwUXvKW4Z7vi6L4J9vg+vbfCeCeZH2RfOdMOc/HbCA4BvIW6EMQz7XK/ltd+hP+VzR9mgva2YSfyGI17fA7ynnocqeQNFfIJ0oHsdv6CC2+rXGBN6cQdveY3fcVRtmy/HDete+93zy8jA8zV7YkwYMrjHzRddRsCdiVCwwmh6wg9iTNC7Y9XIF1iS7kbUpsvvGEdPuTfSgAEjRpR096x0liPFD/Eqt2NMuBQzB2XhrACAApjFsuQFh9XdGAX70B3oSuNdnMVBaX+sopYxjwVpHFBVACyKTXNoktjD+6Ll8xhenS9MAAkAI/Lux2YNUOs4I413Ypg1SgEAu7kpFvWjaeJe0fJHDGe/cNaZBkekudw8PMA+0fMwlndZeAsJ5KR/qhUDUJCnSiyvRsolkJHGUgvjH8QXDgZopEzKMKDqCKrwEQ4C6MH7GEXC665buLJG8hlQc4LP4paxfJrOqYVYYY2UARfEIazTbgDg2dB98GebzJd54b8L/iWNdLyooeR6CHyZ+6xk0yKxkYg6nEVSUG4VJ9QJ9cxRCxO+9WiOyvgUeexXP1hLGH5nGuBWVtiSp4vqe3VP0UFWI9Wan4Er3v8q7jjPWVtm4FtcQQMrOKO2nOQCM5AyDMi56FDrKHA/1nyppS1ppBpYaE8wciEjGI2AaeM41kI4doDX4XiT3Qm1gevyruCgZg9P8xIv8m1nCzTKq6oiJ9xTMiZ505P5m8cdZ0CnZMVXHVljM7WMBzxpyDxygtdxoCEFTaMIWbZU85UvBjgUMYy0fBaAF8V1Lj9qWQ1aMZ5f4k9r+AGMSkMP1vZoZih6k6sicc5h/OFHM9vDqU/VIU7zJZdYYsKGH4g4nAJMGiXZRds1pVMoZ69RM5vfkbh0qkBhsnS2RLMLilQdL9MBHS9UAh0v1e6CYnXHy/WeeCcvLDwl/9OVze69tPKM+M+v7eJN6OzFpWdEF0ucDbhVNFXadnVrmJFlkVNGTS2M6pzmhMvltfPhnN2B63sVuL7fcNP3D1TSk2ihosPrAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE3LTA5LTA5VDIwOjE4OjEzKzAyOjAweOR7nQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNy0wOS0wOVQyMDoxODoxMyswMjowMAm5wyEAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC") no-repeat 50% 50%;
+ background-size: 85%;
+}
+
+.iziToast.iziToast-theme-dark .iziToast-buttons > a,
+.iziToast.iziToast-theme-dark .iziToast-buttons > button,
+.iziToast.iziToast-theme-dark .iziToast-buttons > input {
+ color: #fff;
+ background: rgba(255, 255, 255, 0.1);
+}
+
+.iziToast.iziToast-theme-dark .iziToast-buttons > a:hover,
+.iziToast.iziToast-theme-dark .iziToast-buttons > button:hover,
+.iziToast.iziToast-theme-dark .iziToast-buttons > input:hover {
+ background: rgba(255, 255, 255, 0.2);
+}
+
+.iziToast.iziToast-theme-dark .iziToast-buttons > a:focus,
+.iziToast.iziToast-theme-dark .iziToast-buttons > button:focus,
+.iziToast.iziToast-theme-dark .iziToast-buttons > input:focus {
+ box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.6);
+}
+
+.iziToast.iziToast-theme-dark.iziToast-color-red {
+ background: #F56C6C;
+ border-color: #F56C6C;
+}
+
+.iziToast.iziToast-theme-dark.iziToast-color-orange {
+ background: #E6A23C;
+ border-color: #E6A23C;
+}
+
+.iziToast.iziToast-theme-dark.iziToast-color-yellow {
+ background: rgba(255, 249, 178, 0.9);
+ border-color: rgba(255, 249, 178, 0.9);
+}
+
+.iziToast.iziToast-theme-dark.iziToast-color-blue {
+ background: #409EFF;
+ border-color: #409EFF;
+}
+
+.iziToast.iziToast-theme-dark.iziToast-color-green {
+ background: #67C23A;
+ border-color: #67C23A;
+}
+
+.iziToast.iziToast-layout2 .iziToast-body .iziToast-texts,
+.iziToast.iziToast-layout2 .iziToast-body .iziToast-message {
+ width: 100%;
+}
+
+.iziToast.iziToast-layout3 {
+ border-radius: 2px;
+}
+
+.iziToast.iziToast-layout3::after {
+ display: none;
+}
+
+.iziToast.revealIn,
+.iziToast .revealIn {
+ -webkit-animation: iziT-revealIn 1s cubic-bezier(0.25, 1.6, 0.25, 1) both;
+ -moz-animation: iziT-revealIn 1s cubic-bezier(0.25, 1.6, 0.25, 1) both;
+ animation: iziT-revealIn 1s cubic-bezier(0.25, 1.6, 0.25, 1) both;
+}
+
+.iziToast.slideIn,
+.iziToast .slideIn {
+ -webkit-animation: iziT-slideIn 1s cubic-bezier(0.16, 0.81, 0.32, 1) both;
+ -moz-animation: iziT-slideIn 1s cubic-bezier(0.16, 0.81, 0.32, 1) both;
+ animation: iziT-slideIn 1s cubic-bezier(0.16, 0.81, 0.32, 1) both;
+}
+
+.iziToast.bounceInLeft {
+ -webkit-animation: iziT-bounceInLeft 0.7s ease-in-out both;
+ animation: iziT-bounceInLeft 0.7s ease-in-out both;
+}
+
+.iziToast.bounceInRight {
+ -webkit-animation: iziT-bounceInRight 0.85s ease-in-out both;
+ animation: iziT-bounceInRight 0.85s ease-in-out both;
+}
+
+.iziToast.bounceInDown {
+ -webkit-animation: iziT-bounceInDown 0.7s ease-in-out both;
+ animation: iziT-bounceInDown 0.7s ease-in-out both;
+}
+
+.iziToast.bounceInUp {
+ -webkit-animation: iziT-bounceInUp 0.7s ease-in-out both;
+ animation: iziT-bounceInUp 0.7s ease-in-out both;
+}
+
+.iziToast.fadeIn,
+.iziToast .fadeIn {
+ -webkit-animation: iziT-fadeIn 0.5s ease both;
+ animation: iziT-fadeIn 0.5s ease both;
+}
+
+.iziToast.fadeInUp {
+ -webkit-animation: iziT-fadeInUp 0.7s ease both;
+ animation: iziT-fadeInUp 0.7s ease both;
+}
+
+.iziToast.fadeInDown {
+ -webkit-animation: iziT-fadeInDown 0.7s ease both;
+ animation: iziT-fadeInDown 0.7s ease both;
+}
+
+.iziToast.fadeInLeft {
+ -webkit-animation: iziT-fadeInLeft 0.85s cubic-bezier(0.25, 0.8, 0.25, 1) both;
+ animation: iziT-fadeInLeft 0.85s cubic-bezier(0.25, 0.8, 0.25, 1) both;
+}
+
+.iziToast.fadeInRight {
+ -webkit-animation: iziT-fadeInRight 0.85s cubic-bezier(0.25, 0.8, 0.25, 1) both;
+ animation: iziT-fadeInRight 0.85s cubic-bezier(0.25, 0.8, 0.25, 1) both;
+}
+
+.iziToast.flipInX {
+ -webkit-animation: iziT-flipInX 0.85s cubic-bezier(0.35, 0, 0.25, 1) both;
+ animation: iziT-flipInX 0.85s cubic-bezier(0.35, 0, 0.25, 1) both;
+}
+
+.iziToast.fadeOut {
+ -webkit-animation: iziT-fadeOut 0.7s ease both;
+ animation: iziT-fadeOut 0.7s ease both;
+}
+
+.iziToast.fadeOutDown {
+ -webkit-animation: iziT-fadeOutDown 0.7s cubic-bezier(0.4, 0.45, 0.15, 0.91) both;
+ animation: iziT-fadeOutDown 0.7s cubic-bezier(0.4, 0.45, 0.15, 0.91) both;
+}
+
+.iziToast.fadeOutUp {
+ -webkit-animation: iziT-fadeOutUp 0.7s cubic-bezier(0.4, 0.45, 0.15, 0.91) both;
+ animation: iziT-fadeOutUp 0.7s cubic-bezier(0.4, 0.45, 0.15, 0.91) both;
+}
+
+.iziToast.fadeOutLeft {
+ -webkit-animation: iziT-fadeOutLeft 0.5s ease both;
+ animation: iziT-fadeOutLeft 0.5s ease both;
+}
+
+.iziToast.fadeOutRight {
+ -webkit-animation: iziT-fadeOutRight 0.5s ease both;
+ animation: iziT-fadeOutRight 0.5s ease both;
+}
+
+.iziToast.flipOutX {
+ -webkit-backface-visibility: visible !important;
+ backface-visibility: visible !important;
+ -webkit-animation: iziT-flipOutX 0.7s cubic-bezier(0.4, 0.45, 0.15, 0.91) both;
+ animation: iziT-flipOutX 0.7s cubic-bezier(0.4, 0.45, 0.15, 0.91) both;
+}
+
+.iziToast-overlay.fadeIn {
+ -webkit-animation: iziT-fadeIn 0.5s ease both;
+ animation: iziT-fadeIn 0.5s ease both;
+}
+
+.iziToast-overlay.fadeOut {
+ -webkit-animation: iziT-fadeOut 0.7s ease both;
+ animation: iziT-fadeOut 0.7s ease both;
+}
+
+@-webkit-keyframes iziT-revealIn {
+ 0% {
+ opacity: 0;
+ -webkit-transform: scale3d(0.3, 0.3, 1);
+ }
+ 100% {
+ opacity: 1;
+ }
+}
+
+@-moz-keyframes iziT-revealIn {
+ 0% {
+ opacity: 0;
+ -moz-transform: scale3d(0.3, 0.3, 1);
+ }
+ 100% {
+ opacity: 1;
+ }
+}
+
+@-webkit-keyframes iziT-slideIn {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateX(50px);
+ }
+ 100% {
+ opacity: 1;
+ -webkit-transform: translateX(0);
+ }
+}
+
+@-moz-keyframes iziT-slideIn {
+ 0% {
+ opacity: 0;
+ -moz-transform: translateX(50px);
+ }
+ 100% {
+ opacity: 1;
+ -moz-transform: translateX(0);
+ }
+}
+
+@-webkit-keyframes iziT-bounceInLeft {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateX(280px);
+ }
+ 50% {
+ opacity: 1;
+ -webkit-transform: translateX(-20px);
+ }
+ 70% {
+ -webkit-transform: translateX(10px);
+ }
+ 100% {
+ -webkit-transform: translateX(0);
+ }
+}
+
+@-webkit-keyframes iziT-bounceInRight {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateX(-280px);
+ }
+ 50% {
+ opacity: 1;
+ -webkit-transform: translateX(20px);
+ }
+ 70% {
+ -webkit-transform: translateX(-10px);
+ }
+ 100% {
+ -webkit-transform: translateX(0);
+ }
+}
+
+@-webkit-keyframes iziT-bounceInDown {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateY(-200px);
+ }
+ 50% {
+ opacity: 1;
+ -webkit-transform: translateY(10px);
+ }
+ 70% {
+ -webkit-transform: translateY(-5px);
+ }
+ 100% {
+ -webkit-transform: translateY(0);
+ }
+}
+
+@-webkit-keyframes iziT-bounceInUp {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translateY(200px);
+ }
+ 50% {
+ opacity: 1;
+ -webkit-transform: translateY(-10px);
+ }
+ 70% {
+ -webkit-transform: translateY(5px);
+ }
+ 100% {
+ -webkit-transform: translateY(0);
+ }
+}
+
+@-webkit-keyframes iziT-fadeIn {
+ from {
+ opacity: 0;
+ }
+ to {
+ opacity: 1;
+ }
+}
+
+@-webkit-keyframes iziT-fadeInUp {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 100%, 0);
+ transform: translate3d(0, 100%, 0);
+ }
+ to {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+@-webkit-keyframes iziT-fadeInDown {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -100%, 0);
+ transform: translate3d(0, -100%, 0);
+ }
+ to {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+@-webkit-keyframes iziT-fadeInLeft {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(300px, 0, 0);
+ transform: translate3d(300px, 0, 0);
+ }
+ to {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+@-webkit-keyframes iziT-fadeInRight {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(-300px, 0, 0);
+ transform: translate3d(-300px, 0, 0);
+ }
+ to {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+@-webkit-keyframes iziT-flipInX {
+ from {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+ opacity: 0;
+ }
+ 40% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+ }
+ 60% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
+ opacity: 1;
+ }
+ 80% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
+ }
+ to {
+ -webkit-transform: perspective(400px);
+ transform: perspective(400px);
+ }
+}
+
+@-webkit-keyframes iziT-fadeOut {
+ from {
+ opacity: 1;
+ }
+ to {
+ opacity: 0;
+ }
+}
+
+@-webkit-keyframes iziT-fadeOutDown {
+ from {
+ opacity: 1;
+ }
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 100%, 0);
+ transform: translate3d(0, 100%, 0);
+ }
+}
+
+@-webkit-keyframes iziT-fadeOutUp {
+ from {
+ opacity: 1;
+ }
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -100%, 0);
+ transform: translate3d(0, -100%, 0);
+ }
+}
+
+@-webkit-keyframes iziT-fadeOutLeft {
+ from {
+ opacity: 1;
+ }
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(-200px, 0, 0);
+ transform: translate3d(-200px, 0, 0);
+ }
+}
+
+@-webkit-keyframes iziT-fadeOutRight {
+ from {
+ opacity: 1;
+ }
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(200px, 0, 0);
+ transform: translate3d(200px, 0, 0);
+ }
+}
+
+@-webkit-keyframes iziT-flipOutX {
+ from {
+ -webkit-transform: perspective(400px);
+ transform: perspective(400px);
+ }
+ 30% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+ opacity: 1;
+ }
+ to {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+ opacity: 0;
+ }
+}
+
+@-moz-keyframes iziT-revealIn {
+ 0% {
+ opacity: 0;
+ transform: scale3d(0.3, 0.3, 1);
+ }
+ 100% {
+ opacity: 1;
+ }
+}
+
+@-webkit-keyframes iziT-revealIn {
+ 0% {
+ opacity: 0;
+ transform: scale3d(0.3, 0.3, 1);
+ }
+ 100% {
+ opacity: 1;
+ }
+}
+
+@-o-keyframes iziT-revealIn {
+ 0% {
+ opacity: 0;
+ transform: scale3d(0.3, 0.3, 1);
+ }
+ 100% {
+ opacity: 1;
+ }
+}
+
+@keyframes iziT-revealIn {
+ 0% {
+ opacity: 0;
+ transform: scale3d(0.3, 0.3, 1);
+ }
+ 100% {
+ opacity: 1;
+ }
+}
+
+@-moz-keyframes iziT-slideIn {
+ 0% {
+ opacity: 0;
+ transform: translateX(50px);
+ }
+ 100% {
+ opacity: 1;
+ transform: translateX(0);
+ }
+}
+
+@-webkit-keyframes iziT-slideIn {
+ 0% {
+ opacity: 0;
+ transform: translateX(50px);
+ }
+ 100% {
+ opacity: 1;
+ transform: translateX(0);
+ }
+}
+
+@-o-keyframes iziT-slideIn {
+ 0% {
+ opacity: 0;
+ transform: translateX(50px);
+ }
+ 100% {
+ opacity: 1;
+ transform: translateX(0);
+ }
+}
+
+@keyframes iziT-slideIn {
+ 0% {
+ opacity: 0;
+ transform: translateX(50px);
+ }
+ 100% {
+ opacity: 1;
+ transform: translateX(0);
+ }
+}
+
+@-moz-keyframes iziT-bounceInLeft {
+ 0% {
+ opacity: 0;
+ transform: translateX(280px);
+ }
+ 50% {
+ opacity: 1;
+ transform: translateX(-20px);
+ }
+ 70% {
+ transform: translateX(10px);
+ }
+ 100% {
+ transform: translateX(0);
+ }
+}
+
+@-webkit-keyframes iziT-bounceInLeft {
+ 0% {
+ opacity: 0;
+ transform: translateX(280px);
+ }
+ 50% {
+ opacity: 1;
+ transform: translateX(-20px);
+ }
+ 70% {
+ transform: translateX(10px);
+ }
+ 100% {
+ transform: translateX(0);
+ }
+}
+
+@-o-keyframes iziT-bounceInLeft {
+ 0% {
+ opacity: 0;
+ transform: translateX(280px);
+ }
+ 50% {
+ opacity: 1;
+ transform: translateX(-20px);
+ }
+ 70% {
+ transform: translateX(10px);
+ }
+ 100% {
+ transform: translateX(0);
+ }
+}
+
+@keyframes iziT-bounceInLeft {
+ 0% {
+ opacity: 0;
+ transform: translateX(280px);
+ }
+ 50% {
+ opacity: 1;
+ transform: translateX(-20px);
+ }
+ 70% {
+ transform: translateX(10px);
+ }
+ 100% {
+ transform: translateX(0);
+ }
+}
+
+@-moz-keyframes iziT-bounceInRight {
+ 0% {
+ opacity: 0;
+ transform: translateX(-280px);
+ }
+ 50% {
+ opacity: 1;
+ transform: translateX(20px);
+ }
+ 70% {
+ transform: translateX(-10px);
+ }
+ 100% {
+ transform: translateX(0);
+ }
+}
+
+@-webkit-keyframes iziT-bounceInRight {
+ 0% {
+ opacity: 0;
+ transform: translateX(-280px);
+ }
+ 50% {
+ opacity: 1;
+ transform: translateX(20px);
+ }
+ 70% {
+ transform: translateX(-10px);
+ }
+ 100% {
+ transform: translateX(0);
+ }
+}
+
+@-o-keyframes iziT-bounceInRight {
+ 0% {
+ opacity: 0;
+ transform: translateX(-280px);
+ }
+ 50% {
+ opacity: 1;
+ transform: translateX(20px);
+ }
+ 70% {
+ transform: translateX(-10px);
+ }
+ 100% {
+ transform: translateX(0);
+ }
+}
+
+@keyframes iziT-bounceInRight {
+ 0% {
+ opacity: 0;
+ transform: translateX(-280px);
+ }
+ 50% {
+ opacity: 1;
+ transform: translateX(20px);
+ }
+ 70% {
+ transform: translateX(-10px);
+ }
+ 100% {
+ transform: translateX(0);
+ }
+}
+
+@-moz-keyframes iziT-bounceInDown {
+ 0% {
+ opacity: 0;
+ transform: translateY(-200px);
+ }
+ 50% {
+ opacity: 1;
+ transform: translateY(10px);
+ }
+ 70% {
+ transform: translateY(-5px);
+ }
+ 100% {
+ transform: translateY(0);
+ }
+}
+
+@-webkit-keyframes iziT-bounceInDown {
+ 0% {
+ opacity: 0;
+ transform: translateY(-200px);
+ }
+ 50% {
+ opacity: 1;
+ transform: translateY(10px);
+ }
+ 70% {
+ transform: translateY(-5px);
+ }
+ 100% {
+ transform: translateY(0);
+ }
+}
+
+@-o-keyframes iziT-bounceInDown {
+ 0% {
+ opacity: 0;
+ transform: translateY(-200px);
+ }
+ 50% {
+ opacity: 1;
+ transform: translateY(10px);
+ }
+ 70% {
+ transform: translateY(-5px);
+ }
+ 100% {
+ transform: translateY(0);
+ }
+}
+
+@keyframes iziT-bounceInDown {
+ 0% {
+ opacity: 0;
+ transform: translateY(-200px);
+ }
+ 50% {
+ opacity: 1;
+ transform: translateY(10px);
+ }
+ 70% {
+ transform: translateY(-5px);
+ }
+ 100% {
+ transform: translateY(0);
+ }
+}
+
+@-moz-keyframes iziT-bounceInUp {
+ 0% {
+ opacity: 0;
+ transform: translateY(200px);
+ }
+ 50% {
+ opacity: 1;
+ transform: translateY(-10px);
+ }
+ 70% {
+ transform: translateY(5px);
+ }
+ 100% {
+ transform: translateY(0);
+ }
+}
+
+@-webkit-keyframes iziT-bounceInUp {
+ 0% {
+ opacity: 0;
+ transform: translateY(200px);
+ }
+ 50% {
+ opacity: 1;
+ transform: translateY(-10px);
+ }
+ 70% {
+ transform: translateY(5px);
+ }
+ 100% {
+ transform: translateY(0);
+ }
+}
+
+@-o-keyframes iziT-bounceInUp {
+ 0% {
+ opacity: 0;
+ transform: translateY(200px);
+ }
+ 50% {
+ opacity: 1;
+ transform: translateY(-10px);
+ }
+ 70% {
+ transform: translateY(5px);
+ }
+ 100% {
+ transform: translateY(0);
+ }
+}
+
+@keyframes iziT-bounceInUp {
+ 0% {
+ opacity: 0;
+ transform: translateY(200px);
+ }
+ 50% {
+ opacity: 1;
+ transform: translateY(-10px);
+ }
+ 70% {
+ transform: translateY(5px);
+ }
+ 100% {
+ transform: translateY(0);
+ }
+}
+
+@-moz-keyframes iziT-fadeIn {
+ from {
+ opacity: 0;
+ }
+ to {
+ opacity: 1;
+ }
+}
+
+@-webkit-keyframes iziT-fadeIn {
+ from {
+ opacity: 0;
+ }
+ to {
+ opacity: 1;
+ }
+}
+
+@-o-keyframes iziT-fadeIn {
+ from {
+ opacity: 0;
+ }
+ to {
+ opacity: 1;
+ }
+}
+
+@keyframes iziT-fadeIn {
+ from {
+ opacity: 0;
+ }
+ to {
+ opacity: 1;
+ }
+}
+
+@-moz-keyframes iziT-fadeInUp {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 100%, 0);
+ transform: translate3d(0, 100%, 0);
+ }
+ to {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+@-webkit-keyframes iziT-fadeInUp {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 100%, 0);
+ transform: translate3d(0, 100%, 0);
+ }
+ to {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+@-o-keyframes iziT-fadeInUp {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 100%, 0);
+ transform: translate3d(0, 100%, 0);
+ }
+ to {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+@keyframes iziT-fadeInUp {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 100%, 0);
+ transform: translate3d(0, 100%, 0);
+ }
+ to {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+@-moz-keyframes iziT-fadeInDown {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -100%, 0);
+ transform: translate3d(0, -100%, 0);
+ }
+ to {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+@-webkit-keyframes iziT-fadeInDown {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -100%, 0);
+ transform: translate3d(0, -100%, 0);
+ }
+ to {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+@-o-keyframes iziT-fadeInDown {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -100%, 0);
+ transform: translate3d(0, -100%, 0);
+ }
+ to {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+@keyframes iziT-fadeInDown {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -100%, 0);
+ transform: translate3d(0, -100%, 0);
+ }
+ to {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+@-moz-keyframes iziT-fadeInLeft {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(300px, 0, 0);
+ transform: translate3d(300px, 0, 0);
+ }
+ to {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+@-webkit-keyframes iziT-fadeInLeft {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(300px, 0, 0);
+ transform: translate3d(300px, 0, 0);
+ }
+ to {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+@-o-keyframes iziT-fadeInLeft {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(300px, 0, 0);
+ transform: translate3d(300px, 0, 0);
+ }
+ to {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+@keyframes iziT-fadeInLeft {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(300px, 0, 0);
+ transform: translate3d(300px, 0, 0);
+ }
+ to {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+@-moz-keyframes iziT-fadeInRight {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(-300px, 0, 0);
+ transform: translate3d(-300px, 0, 0);
+ }
+ to {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+@-webkit-keyframes iziT-fadeInRight {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(-300px, 0, 0);
+ transform: translate3d(-300px, 0, 0);
+ }
+ to {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+@-o-keyframes iziT-fadeInRight {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(-300px, 0, 0);
+ transform: translate3d(-300px, 0, 0);
+ }
+ to {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+@keyframes iziT-fadeInRight {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(-300px, 0, 0);
+ transform: translate3d(-300px, 0, 0);
+ }
+ to {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+@-moz-keyframes iziT-flipInX {
+ from {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+ opacity: 0;
+ }
+ 40% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+ }
+ 60% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
+ opacity: 1;
+ }
+ 80% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
+ }
+ to {
+ -webkit-transform: perspective(400px);
+ transform: perspective(400px);
+ }
+}
+
+@-webkit-keyframes iziT-flipInX {
+ from {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+ opacity: 0;
+ }
+ 40% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+ }
+ 60% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
+ opacity: 1;
+ }
+ 80% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
+ }
+ to {
+ -webkit-transform: perspective(400px);
+ transform: perspective(400px);
+ }
+}
+
+@-o-keyframes iziT-flipInX {
+ from {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+ opacity: 0;
+ }
+ 40% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+ }
+ 60% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
+ opacity: 1;
+ }
+ 80% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
+ }
+ to {
+ -webkit-transform: perspective(400px);
+ transform: perspective(400px);
+ }
+}
+
+@keyframes iziT-flipInX {
+ from {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+ opacity: 0;
+ }
+ 40% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+ }
+ 60% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
+ opacity: 1;
+ }
+ 80% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
+ }
+ to {
+ -webkit-transform: perspective(400px);
+ transform: perspective(400px);
+ }
+}
+
+@-moz-keyframes iziT-fadeOut {
+ from {
+ opacity: 1;
+ }
+ to {
+ opacity: 0;
+ }
+}
+
+@-webkit-keyframes iziT-fadeOut {
+ from {
+ opacity: 1;
+ }
+ to {
+ opacity: 0;
+ }
+}
+
+@-o-keyframes iziT-fadeOut {
+ from {
+ opacity: 1;
+ }
+ to {
+ opacity: 0;
+ }
+}
+
+@keyframes iziT-fadeOut {
+ from {
+ opacity: 1;
+ }
+ to {
+ opacity: 0;
+ }
+}
+
+@-moz-keyframes iziT-fadeOutDown {
+ from {
+ opacity: 1;
+ }
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 100%, 0);
+ transform: translate3d(0, 100%, 0);
+ }
+}
+
+@-webkit-keyframes iziT-fadeOutDown {
+ from {
+ opacity: 1;
+ }
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 100%, 0);
+ transform: translate3d(0, 100%, 0);
+ }
+}
+
+@-o-keyframes iziT-fadeOutDown {
+ from {
+ opacity: 1;
+ }
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 100%, 0);
+ transform: translate3d(0, 100%, 0);
+ }
+}
+
+@keyframes iziT-fadeOutDown {
+ from {
+ opacity: 1;
+ }
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 100%, 0);
+ transform: translate3d(0, 100%, 0);
+ }
+}
+
+@-moz-keyframes iziT-fadeOutUp {
+ from {
+ opacity: 1;
+ }
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -100%, 0);
+ transform: translate3d(0, -100%, 0);
+ }
+}
+
+@-webkit-keyframes iziT-fadeOutUp {
+ from {
+ opacity: 1;
+ }
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -100%, 0);
+ transform: translate3d(0, -100%, 0);
+ }
+}
+
+@-o-keyframes iziT-fadeOutUp {
+ from {
+ opacity: 1;
+ }
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -100%, 0);
+ transform: translate3d(0, -100%, 0);
+ }
+}
+
+@keyframes iziT-fadeOutUp {
+ from {
+ opacity: 1;
+ }
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -100%, 0);
+ transform: translate3d(0, -100%, 0);
+ }
+}
+
+@-moz-keyframes iziT-fadeOutLeft {
+ from {
+ opacity: 1;
+ }
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(-200px, 0, 0);
+ transform: translate3d(-200px, 0, 0);
+ }
+}
+
+@-webkit-keyframes iziT-fadeOutLeft {
+ from {
+ opacity: 1;
+ }
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(-200px, 0, 0);
+ transform: translate3d(-200px, 0, 0);
+ }
+}
+
+@-o-keyframes iziT-fadeOutLeft {
+ from {
+ opacity: 1;
+ }
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(-200px, 0, 0);
+ transform: translate3d(-200px, 0, 0);
+ }
+}
+
+@keyframes iziT-fadeOutLeft {
+ from {
+ opacity: 1;
+ }
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(-200px, 0, 0);
+ transform: translate3d(-200px, 0, 0);
+ }
+}
+
+@-moz-keyframes iziT-fadeOutRight {
+ from {
+ opacity: 1;
+ }
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(200px, 0, 0);
+ transform: translate3d(200px, 0, 0);
+ }
+}
+
+@-webkit-keyframes iziT-fadeOutRight {
+ from {
+ opacity: 1;
+ }
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(200px, 0, 0);
+ transform: translate3d(200px, 0, 0);
+ }
+}
+
+@-o-keyframes iziT-fadeOutRight {
+ from {
+ opacity: 1;
+ }
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(200px, 0, 0);
+ transform: translate3d(200px, 0, 0);
+ }
+}
+
+@keyframes iziT-fadeOutRight {
+ from {
+ opacity: 1;
+ }
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(200px, 0, 0);
+ transform: translate3d(200px, 0, 0);
+ }
+}
+
+@-moz-keyframes iziT-flipOutX {
+ from {
+ -webkit-transform: perspective(400px);
+ transform: perspective(400px);
+ }
+ 30% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+ opacity: 1;
+ }
+ to {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+ opacity: 0;
+ }
+}
+
+@-webkit-keyframes iziT-flipOutX {
+ from {
+ -webkit-transform: perspective(400px);
+ transform: perspective(400px);
+ }
+ 30% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+ opacity: 1;
+ }
+ to {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+ opacity: 0;
+ }
+}
+
+@-o-keyframes iziT-flipOutX {
+ from {
+ -webkit-transform: perspective(400px);
+ transform: perspective(400px);
+ }
+ 30% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+ opacity: 1;
+ }
+ to {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+ opacity: 0;
+ }
+}
+
+@keyframes iziT-flipOutX {
+ from {
+ -webkit-transform: perspective(400px);
+ transform: perspective(400px);
+ }
+ 30% {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
+ opacity: 1;
+ }
+ to {
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+ transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
+ opacity: 0;
+ }
+}
diff --git a/src/main/webapp/static/layui/lay/modules/notice/notice.js b/src/main/webapp/static/layui/lay/modules/notice/notice.js
new file mode 100644
index 0000000..d414a51
--- /dev/null
+++ b/src/main/webapp/static/layui/lay/modules/notice/notice.js
@@ -0,0 +1,1241 @@
+layui.define([], function (exports) {
+ var PLUGIN_NAME = 'iziToast'; // 鏍峰紡绫诲悕
+ var BODY = document.querySelector('body');
+ var ISMOBILE = (/Mobi/.test(navigator.userAgent)) ? true : false;
+ var MOBILEWIDTH = 568;
+ var ISCHROME = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);
+ var ISFIREFOX = typeof InstallTrigger !== 'undefined';
+ var ACCEPTSTOUCH = 'ontouchstart' in document.documentElement;
+ // 鏄剧ず鍖哄煙
+ var POSITIONS = ['bottomRight', 'bottomLeft', 'bottomCenter', 'topRight', 'topLeft', 'topCenter', 'center'];
+ // 榛樿涓婚
+ var THEMES = {
+ info: {
+ color: 'blue',
+ icon: 'ico-info'
+ },
+ success: {
+ color: 'green',
+ icon: 'ico-success'
+ },
+ warning: {
+ color: 'orange',
+ icon: 'ico-warning'
+ },
+ error: {
+ color: 'red',
+ icon: 'ico-error'
+ },
+ question: {
+ color: 'yellow',
+ icon: 'ico-question'
+ }
+ };
+ var CONFIG = {}; // 鍏ㄥ眬閰嶇疆
+ // 榛樿閰嶇疆
+ var defaults = {
+ id: null,
+ className: '', // 鑷畾涔塩lass锛岀敤绌烘牸鍒嗗壊
+ title: '', // 鏍囬
+ titleColor: '', // 鏍囬鏂囧瓧棰滆壊
+ titleSize: '', // 鏍囬鏂囧瓧澶у皬
+ titleLineHeight: '', // 鏍囬楂樺害
+ message: '', // 鍐呭
+ messageColor: '', // 鍐呭鏂囧瓧棰滆壊
+ messageSize: '', // 鍐呭鏂囧瓧澶у皬
+ messageLineHeight: '', // 鍐呭楂樺害
+ backgroundColor: '', // 鑳屾櫙棰滆壊
+ theme: 'light', // dark
+ color: '', // 鑳屾櫙棰滆壊
+ icon: '', // 鍥炬爣
+ iconText: '', // 鍥炬爣鏂囧瓧
+ iconColor: '', // 鍥炬爣棰滆壊
+ iconUrl: null, // 鍥炬爣鍦板潃
+ image: '', // 鏄惁鏄剧ず鍥剧墖
+ imageWidth: 60, // 鍥剧墖瀹藉害
+ maxWidth: null, // 鏈�澶у搴�
+ zindex: null, //
+ layout: 2, // 甯冨眬绫诲瀷
+ balloon: false, // 姘旀场
+ close: true, // 鏄惁鏄剧ず鍏抽棴鎸夐挳
+ closeOnEscape: false,
+ closeOnClick: false, // 鐐瑰嚮鍏抽棴
+ displayMode: 0, // 0鏃犻檺鍒�,1瀛樺湪灏变笉鍙戝嚭,2閿�姣佷箣鍓�
+ position: 'topRight', // bottomRight, bottomLeft, topRight, topLeft, topCenter, bottomCenter, center
+ target: '', // 鏄剧ず浣嶇疆
+ targetFirst: null, // 鎻掑叆椤哄簭
+ timeout: 5000, // 鍏抽棴鏃堕棿锛宖alse涓嶈嚜鍔ㄥ叧闂�
+ rtl: false, // 鍐呭灞呭彸
+ animateInside: false, // 杩涘叆鍔ㄧ敾鏁堟灉
+ drag: true, // 鏄惁鍙粦鍔ㄧЩ闄�
+ pauseOnHover: true, // 榧犳爣绉诲叆鏆傚仠杩涘害鏉℃椂闂�
+ resetOnHover: false, // 榧犳爣绉诲叆閲嶇疆杩涘害鏉℃椂闂�
+ progressBar: true, // 鏄惁鏄剧ず杩涘害鏉�
+ progressBarColor: '', // 杩涘害鏉¢鑹�
+ progressBarEasing: 'linear', // 杩涘害鏉″姩鐢绘晥鏋�
+ overlay: false, // 鏄惁鏄剧ず閬僵灞�
+ overlayClose: false, // 鐐瑰嚮閬僵灞傛槸鍚﹀叧闂�
+ overlayColor: 'rgba(0, 0, 0, 0.1)', // 閬僵灞傞鑹�
+ transitionIn: 'fadeInLeft', // bounceInLeft, bounceInRight, bounceInUp, bounceInDown, fadeIn, fadeInDown, fadeInUp, fadeInLeft, fadeInRight, flipInX
+ transitionOut: 'fadeOutRight', // fadeOut, fadeOutUp, fadeOutDown, fadeOutLeft, fadeOutRight, flipOutX
+ transitionInMobile: 'bounceInDown', // 绉诲姩绔繘鍏ュ姩鐢�
+ transitionOutMobile: 'fadeOutUp', // 绉诲姩绔��鍑哄姩鐢�
+ buttons: {}, // 鎿嶄綔鎸夐挳
+ inputs: {}, // 杈撳叆妗�
+ audio: '', // 闊虫晥
+ onOpening: function () {
+ },
+ onOpened: function () {
+ },
+ onClosing: function () {
+ },
+ onClosed: function () {
+ }
+ };
+
+ var $iziToast = {
+ children: {},
+ setSetting: function (ref, option, value) {
+ $iziToast.children[ref][option] = value;
+ },
+ getSetting: function (ref, option) {
+ return $iziToast.children[ref][option];
+ },
+ // 鍏ㄥ眬璁剧疆
+ settings: function (options) {
+ $iziToast.destroy(); // 鍏ㄩ儴閿�姣佷箣鍓嶇殑閫氱煡
+ CONFIG = options;
+ defaults = extend(defaults, options || {});
+ },
+ // 鍏抽棴鎵�鏈夐�氱煡
+ destroy: function () {
+ forEach(document.querySelectorAll('.' + PLUGIN_NAME + '-overlay'), function (element, index) {
+ element.remove();
+ });
+ forEach(document.querySelectorAll('.' + PLUGIN_NAME + '-wrapper'), function (element, index) {
+ element.remove();
+ });
+ forEach(document.querySelectorAll('.' + PLUGIN_NAME), function (element, index) {
+ element.remove();
+ });
+ this.children = {};
+ // 绉婚櫎浜嬩欢鐩戝惉
+ document.removeEventListener(PLUGIN_NAME + '-opened', {}, false);
+ document.removeEventListener(PLUGIN_NAME + '-opening', {}, false);
+ document.removeEventListener(PLUGIN_NAME + '-closing', {}, false);
+ document.removeEventListener(PLUGIN_NAME + '-closed', {}, false);
+ document.removeEventListener('keyup', {}, false);
+ CONFIG = {}; // 绉婚櫎鍏ㄥ眬閰嶇疆
+ },
+ // msg绫诲瀷
+ msg: function (msg, options) {
+ if (options.icon == 4) {
+ options.overlay = true;
+ options.timeout = false;
+ options.drag = false;
+ options.displayMode = 0;
+ }
+ var icons = ['ico-success', 'ico-error', 'ico-warning', 'ico-load', 'ico-info'];
+ options.icon = icons[options.icon - 1];
+ var theme = {
+ message: msg,
+ position: 'topCenter',
+ transitionIn: 'bounceInDown',
+ transitionOut: 'fadeOut',
+ transitionOutMobile: 'fadeOut',
+ progressBar: false,
+ close: false,
+ layout: 1,
+ audio: ''
+ };
+ var settings = extend(CONFIG, options || {});
+ settings = extend(theme, settings || {});
+ this.show(settings);
+ }
+ };
+
+ // 鍏抽棴鎸囧畾鐨勯�氱煡
+ $iziToast.hide = function (options, $toast, closedBy) {
+ if (typeof $toast != 'object') {
+ $toast = document.querySelector($toast);
+ }
+ var that = this;
+ var settings = extend(this.children[$toast.getAttribute('data-iziToast-ref')], options || {});
+ settings.closedBy = closedBy || null;
+ delete settings.time.REMAINING;
+ $toast.classList.add(PLUGIN_NAME + '-closing');
+ // 绉婚櫎閬僵灞�
+ (function () {
+ var $overlay = document.querySelector('.' + PLUGIN_NAME + '-overlay');
+ if ($overlay !== null) {
+ var refs = $overlay.getAttribute('data-iziToast-ref');
+ refs = refs.split(',');
+ var index = refs.indexOf(String(settings.ref));
+ if (index !== -1) {
+ refs.splice(index, 1);
+ }
+ $overlay.setAttribute('data-iziToast-ref', refs.join());
+ if (refs.length === 0) {
+ $overlay.classList.remove('fadeIn');
+ $overlay.classList.add('fadeOut');
+ setTimeout(function () {
+ $overlay.remove();
+ }, 700);
+ }
+ }
+ })();
+ // 绉婚櫎鍔ㄧ敾
+ if (settings.transitionIn) {
+ $toast.classList.remove(settings.transitionIn);
+ }
+ if (settings.transitionInMobile) {
+ $toast.classList.remove(settings.transitionInMobile);
+ }
+ if (ISMOBILE || window.innerWidth <= MOBILEWIDTH) {
+ if (settings.transitionOutMobile)
+ $toast.classList.add(settings.transitionOutMobile);
+ } else {
+ if (settings.transitionOut)
+ $toast.classList.add(settings.transitionOut);
+ }
+ var H = $toast.parentNode.offsetHeight;
+ $toast.parentNode.style.height = H + 'px';
+ $toast.style.pointerEvents = 'none';
+ if (!ISMOBILE || window.innerWidth > MOBILEWIDTH) {
+ $toast.parentNode.style.transitionDelay = '0.2s';
+ }
+ try {
+ var event = new CustomEvent(PLUGIN_NAME + '-closing', {detail: settings, bubbles: true, cancelable: true});
+ document.dispatchEvent(event);
+ } catch (ex) {
+ console.warn(ex);
+ }
+ setTimeout(function () {
+ $toast.parentNode.style.height = '0px';
+ $toast.parentNode.style.overflow = '';
+ setTimeout(function () {
+ delete that.children[settings.ref];
+ $toast.parentNode.remove();
+ try {
+ var event = new CustomEvent(PLUGIN_NAME + '-closed', {
+ detail: settings,
+ bubbles: true,
+ cancelable: true
+ });
+ document.dispatchEvent(event);
+ } catch (ex) {
+ console.warn(ex);
+ }
+ if (typeof settings.onClosed !== 'undefined') {
+ settings.onClosed.apply(null, [settings, $toast, closedBy]);
+ }
+ }, 1000);
+ }, 200);
+ // 鍥炶皟鍏抽棴浜嬩欢
+ if (typeof settings.onClosing !== 'undefined') {
+ settings.onClosing.apply(null, [settings, $toast, closedBy]);
+ }
+ };
+
+ // 鏄剧ず閫氱煡
+ $iziToast.show = function (options) {
+ var that = this;
+ // Merge user options with defaults
+ var settings = extend(CONFIG, options || {});
+ settings = extend(defaults, settings);
+ settings.time = {};
+ if (settings.id === null) {
+ settings.id = generateId(settings.title + settings.message + settings.color);
+ }
+ if (settings.displayMode == 1 || settings.displayMode == 'once') {
+ try {
+ if (document.querySelectorAll('.' + PLUGIN_NAME + '#' + settings.id).length > 0) {
+ return false;
+ }
+ } catch (exc) {
+ console.warn('[' + PLUGIN_NAME + '] Could not find an element with this selector: ' + '#' + settings.id + '. Try to set an valid id.');
+ }
+ }
+ if (settings.displayMode == 2 || settings.displayMode == 'replace') {
+ try {
+ forEach(document.querySelectorAll('.' + PLUGIN_NAME + '#' + settings.id), function (element, index) {
+ that.hide(settings, element, 'replaced');
+ });
+ } catch (exc) {
+ console.warn('[' + PLUGIN_NAME + '] Could not find an element with this selector: ' + '#' + settings.id + '. Try to set an valid id.');
+ }
+ }
+ settings.ref = new Date().getTime() + Math.floor((Math.random() * 10000000) + 1);
+ $iziToast.children[settings.ref] = settings;
+ var $DOM = {
+ body: document.querySelector('body'),
+ overlay: document.createElement('div'),
+ toast: document.createElement('div'),
+ toastBody: document.createElement('div'),
+ toastTexts: document.createElement('div'),
+ toastCapsule: document.createElement('div'),
+ cover: document.createElement('div'),
+ buttons: document.createElement('div'),
+ inputs: document.createElement('div'),
+ icon: !settings.iconUrl ? document.createElement('i') : document.createElement('img'),
+ wrapper: null
+ };
+ $DOM.toast.setAttribute('data-iziToast-ref', settings.ref);
+ $DOM.toast.appendChild($DOM.toastBody);
+ $DOM.toastCapsule.appendChild($DOM.toast);
+ // CSS Settings
+ (function () {
+ $DOM.toast.classList.add(PLUGIN_NAME);
+ $DOM.toast.classList.add(PLUGIN_NAME + '-opening');
+ $DOM.toastCapsule.classList.add(PLUGIN_NAME + '-capsule');
+ $DOM.toastBody.classList.add(PLUGIN_NAME + '-body');
+ $DOM.toastTexts.classList.add(PLUGIN_NAME + '-texts');
+ if (ISMOBILE || window.innerWidth <= MOBILEWIDTH) {
+ if (settings.transitionInMobile)
+ $DOM.toast.classList.add(settings.transitionInMobile);
+ } else {
+ if (settings.transitionIn)
+ $DOM.toast.classList.add(settings.transitionIn);
+ }
+ if (settings.className) {
+ var classes = settings.className.split(' ');
+ forEach(classes, function (value, index) {
+ $DOM.toast.classList.add(value);
+ });
+ }
+ if (settings.id) {
+ $DOM.toast.id = settings.id;
+ }
+ if (settings.rtl) {
+ $DOM.toast.classList.add(PLUGIN_NAME + '-rtl');
+ $DOM.toast.setAttribute('dir', 'rtl');
+ }
+ if (settings.layout > 1) {
+ $DOM.toast.classList.add(PLUGIN_NAME + '-layout' + settings.layout);
+ }
+ if (settings.balloon) {
+ $DOM.toast.classList.add(PLUGIN_NAME + '-balloon');
+ }
+ if (settings.maxWidth) {
+ if (!isNaN(settings.maxWidth)) {
+ $DOM.toast.style.maxWidth = settings.maxWidth + 'px';
+ } else {
+ $DOM.toast.style.maxWidth = settings.maxWidth;
+ }
+ }
+ if (settings.theme !== '' || settings.theme !== 'light') {
+ $DOM.toast.classList.add(PLUGIN_NAME + '-theme-' + settings.theme);
+ }
+ if (settings.color) { //#, rgb, rgba, hsl
+ if (isColor(settings.color)) {
+ $DOM.toast.style.background = settings.color;
+ } else {
+ $DOM.toast.classList.add(PLUGIN_NAME + '-color-' + settings.color);
+ }
+ }
+ if (settings.backgroundColor) {
+ $DOM.toast.style.background = settings.backgroundColor;
+ if (settings.balloon) {
+ $DOM.toast.style.borderColor = settings.backgroundColor;
+ }
+ }
+ })();
+ // Cover image
+ (function () {
+ if (settings.image) {
+ $DOM.cover.classList.add(PLUGIN_NAME + '-cover');
+ $DOM.cover.style.width = settings.imageWidth + 'px';
+ if (isBase64(settings.image.replace(/ /g, ''))) {
+ $DOM.cover.style.backgroundImage = 'url(data:image/png;base64,' + settings.image.replace(/ /g, '') + ')';
+ } else {
+ $DOM.cover.style.backgroundImage = 'url(' + settings.image + ')';
+ }
+ if (settings.rtl) {
+ $DOM.toastBody.style.marginRight = (settings.imageWidth) + 'px';
+ } else {
+ $DOM.toastBody.style.marginLeft = (settings.imageWidth) + 'px';
+ }
+ $DOM.toast.appendChild($DOM.cover);
+ }
+ })();
+ // Button close
+ (function () {
+ if (settings.close) {
+ $DOM.buttonClose = document.createElement('button');
+ // $DOM.buttonClose.type = 'button';
+ $DOM.buttonClose.setAttribute('type', 'button');
+ $DOM.buttonClose.classList.add(PLUGIN_NAME + '-close');
+ $DOM.buttonClose.addEventListener('click', function (e) {
+ var button = e.target;
+ that.hide(settings, $DOM.toast, 'button');
+ });
+ $DOM.toast.appendChild($DOM.buttonClose);
+ } else {
+ if (settings.rtl) {
+ $DOM.toast.style.paddingLeft = '18px';
+ } else {
+ $DOM.toast.style.paddingRight = '18px';
+ }
+ }
+ })();
+ // Progress Bar & Timeout
+ (function () {
+ if (settings.progressBar) {
+ $DOM.progressBar = document.createElement('div');
+ $DOM.progressBarDiv = document.createElement('div');
+ $DOM.progressBar.classList.add(PLUGIN_NAME + '-progressbar');
+ $DOM.progressBarDiv.style.background = settings.progressBarColor;
+ $DOM.progressBar.appendChild($DOM.progressBarDiv);
+ $DOM.toast.appendChild($DOM.progressBar);
+ }
+ if (settings.timeout) {
+ if (settings.pauseOnHover && !settings.resetOnHover) {
+ $DOM.toast.addEventListener('mouseenter', function (e) {
+ that.progress(settings, $DOM.toast).pause();
+ });
+ $DOM.toast.addEventListener('mouseleave', function (e) {
+ that.progress(settings, $DOM.toast).resume();
+ });
+ }
+ if (settings.resetOnHover) {
+ $DOM.toast.addEventListener('mouseenter', function (e) {
+ that.progress(settings, $DOM.toast).reset();
+ });
+ $DOM.toast.addEventListener('mouseleave', function (e) {
+ that.progress(settings, $DOM.toast).start();
+ });
+ }
+ }
+ })();
+ // Icon
+ (function () {
+ if (settings.iconUrl) {
+ $DOM.icon.setAttribute('class', PLUGIN_NAME + '-icon');
+ $DOM.icon.setAttribute('src', settings.iconUrl);
+ } else if (settings.icon) {
+ $DOM.icon.setAttribute('class', PLUGIN_NAME + '-icon ' + settings.icon);
+ if (settings.iconText) {
+ $DOM.icon.appendChild(document.createTextNode(settings.iconText));
+ }
+ if (settings.iconColor) {
+ $DOM.icon.style.color = settings.iconColor;
+ }
+ }
+ if (settings.icon || settings.iconUrl) {
+ if (settings.rtl) {
+ $DOM.toastBody.style.paddingRight = '33px';
+ } else {
+ $DOM.toastBody.style.paddingLeft = '33px';
+ }
+ $DOM.toastBody.appendChild($DOM.icon);
+ }
+
+ })();
+ // Title & Message
+ (function () {
+ if (settings.title.length > 0) {
+ $DOM.strong = document.createElement('strong');
+ $DOM.strong.classList.add(PLUGIN_NAME + '-title');
+ $DOM.strong.appendChild(createFragElem(settings.title));
+ $DOM.toastTexts.appendChild($DOM.strong);
+ if (settings.titleColor) {
+ $DOM.strong.style.color = settings.titleColor;
+ }
+ if (settings.titleSize) {
+ if (!isNaN(settings.titleSize)) {
+ $DOM.strong.style.fontSize = settings.titleSize + 'px';
+ } else {
+ $DOM.strong.style.fontSize = settings.titleSize;
+ }
+ }
+ if (settings.titleLineHeight) {
+ if (!isNaN(settings.titleSize)) {
+ $DOM.strong.style.lineHeight = settings.titleLineHeight + 'px';
+ } else {
+ $DOM.strong.style.lineHeight = settings.titleLineHeight;
+ }
+ }
+ }
+ if (settings.message.length > 0) {
+ $DOM.p = document.createElement('p');
+ $DOM.p.classList.add(PLUGIN_NAME + '-message');
+ $DOM.p.appendChild(createFragElem(settings.message));
+ $DOM.toastTexts.appendChild($DOM.p);
+ if (settings.messageColor) {
+ $DOM.p.style.color = settings.messageColor;
+ }
+ if (settings.messageSize) {
+ if (!isNaN(settings.titleSize)) {
+ $DOM.p.style.fontSize = settings.messageSize + 'px';
+ } else {
+ $DOM.p.style.fontSize = settings.messageSize;
+ }
+ }
+ if (settings.messageLineHeight) {
+ if (!isNaN(settings.titleSize)) {
+ $DOM.p.style.lineHeight = settings.messageLineHeight + 'px';
+ } else {
+ $DOM.p.style.lineHeight = settings.messageLineHeight;
+ }
+ }
+ }
+ if (settings.title.length > 0 && settings.message.length > 0) {
+ if (settings.rtl) {
+ $DOM.strong.style.marginLeft = '10px';
+ } else if (settings.layout != 2 && !settings.rtl) {
+ $DOM.strong.style.marginRight = '10px';
+ $DOM.strong.style.marginBottom = '0px';
+ }
+ }
+ })();
+ $DOM.toastBody.appendChild($DOM.toastTexts);
+ // Inputs
+ var $inputs;
+ (function () {
+ if (settings.inputs.length > 0) {
+ $DOM.inputs.classList.add(PLUGIN_NAME + '-inputs');
+ forEach(settings.inputs, function (value, index) {
+ $DOM.inputs.appendChild(createFragElem(value[0]));
+ $inputs = $DOM.inputs.childNodes;
+ $inputs[index].classList.add(PLUGIN_NAME + '-inputs-child');
+ if (value[3]) {
+ setTimeout(function () {
+ $inputs[index].focus();
+ }, 300);
+ }
+ $inputs[index].addEventListener(value[1], function (e) {
+ var ts = value[2];
+ return ts(that, $DOM.toast, this, e);
+ });
+ });
+ $DOM.toastBody.appendChild($DOM.inputs);
+ }
+ })();
+ // Buttons
+ (function () {
+ if (settings.buttons.length > 0) {
+ $DOM.buttons.classList.add(PLUGIN_NAME + '-buttons');
+ forEach(settings.buttons, function (value, index) {
+ $DOM.buttons.appendChild(createFragElem(value[0]));
+ var $btns = $DOM.buttons.childNodes;
+ $btns[index].classList.add(PLUGIN_NAME + '-buttons-child');
+ if (value[2]) {
+ setTimeout(function () {
+ $btns[index].focus();
+ }, 300);
+ }
+ $btns[index].addEventListener('click', function (e) {
+ e.preventDefault();
+ var ts = value[1];
+ return ts(that, $DOM.toast, this, e, $inputs);
+ });
+ });
+ }
+ $DOM.toastTexts.appendChild($DOM.buttons);
+ })();
+ if (settings.message.length > 0 && (settings.inputs.length > 0 || settings.buttons.length > 0)) {
+ $DOM.p.style.marginBottom = '0';
+ }
+ if (settings.inputs.length > 0 || settings.buttons.length > 0) {
+ if (settings.rtl) {
+ $DOM.toastTexts.style.marginLeft = '10px';
+ } else {
+ $DOM.toastTexts.style.marginRight = '10px';
+ }
+ if (settings.inputs.length > 0 && settings.buttons.length > 0) {
+ if (settings.rtl) {
+ $DOM.inputs.style.marginLeft = '8px';
+ } else {
+ $DOM.inputs.style.marginRight = '8px';
+ }
+ }
+ }
+ // Wrap
+ (function () {
+ $DOM.toastCapsule.style.visibility = 'hidden';
+ setTimeout(function () {
+ var H = $DOM.toast.offsetHeight;
+ var style = $DOM.toast.currentStyle || window.getComputedStyle($DOM.toast);
+ var marginTop = style.marginTop;
+ marginTop = marginTop.split('px');
+ marginTop = parseInt(marginTop[0]);
+ var marginBottom = style.marginBottom;
+ marginBottom = marginBottom.split('px');
+ marginBottom = parseInt(marginBottom[0]);
+
+ $DOM.toastCapsule.style.visibility = '';
+ $DOM.toastCapsule.style.height = (H + marginBottom + marginTop) + 'px';
+
+ setTimeout(function () {
+ $DOM.toastCapsule.style.height = 'auto';
+ if (settings.target) {
+ $DOM.toastCapsule.style.overflow = 'visible';
+ }
+ }, 500);
+
+ if (settings.timeout) {
+ that.progress(settings, $DOM.toast).start();
+ }
+ }, 100);
+ })();
+ // Target
+ (function () {
+ var position = settings.position;
+ if (settings.target) {
+ $DOM.wrapper = document.querySelector(settings.target);
+ $DOM.wrapper.classList.add(PLUGIN_NAME + '-target');
+ if (settings.targetFirst) {
+ $DOM.wrapper.insertBefore($DOM.toastCapsule, $DOM.wrapper.firstChild);
+ } else {
+ $DOM.wrapper.appendChild($DOM.toastCapsule);
+ }
+ } else {
+ if (POSITIONS.indexOf(settings.position) == -1) {
+ console.warn('[' + PLUGIN_NAME + '] Incorrect position.\nIt can be 鈥� ' + POSITIONS);
+ return;
+ }
+ if (ISMOBILE || window.innerWidth <= MOBILEWIDTH) {
+ if (settings.position == 'bottomLeft' || settings.position == 'bottomRight' || settings.position == 'bottomCenter') {
+ position = PLUGIN_NAME + '-wrapper-bottomCenter';
+ } else if (settings.position == 'topLeft' || settings.position == 'topRight' || settings.position == 'topCenter') {
+ position = PLUGIN_NAME + '-wrapper-topCenter';
+ } else {
+ position = PLUGIN_NAME + '-wrapper-center';
+ }
+ } else {
+ position = PLUGIN_NAME + '-wrapper-' + position;
+ }
+ $DOM.wrapper = document.querySelector('.' + PLUGIN_NAME + '-wrapper.' + position);
+ if (!$DOM.wrapper) {
+ $DOM.wrapper = document.createElement('div');
+ $DOM.wrapper.classList.add(PLUGIN_NAME + '-wrapper');
+ $DOM.wrapper.classList.add(position);
+ document.body.appendChild($DOM.wrapper);
+ }
+ var targetFirst = settings.targetFirst;
+ if ((targetFirst == undefined || targetFirst == null) && (settings.position == 'topLeft' || settings.position == 'topCenter' || settings.position == 'topRight')) {
+ targetFirst = true;
+ }
+ if (targetFirst) {
+ $DOM.wrapper.insertBefore($DOM.toastCapsule, $DOM.wrapper.firstChild);
+ } else {
+ $DOM.wrapper.appendChild($DOM.toastCapsule);
+ }
+ }
+ if (!isNaN(settings.zindex)) {
+ $DOM.wrapper.style.zIndex = settings.zindex;
+ } else {
+ console.warn('[' + PLUGIN_NAME + '] Invalid zIndex.');
+ }
+ })();
+ // Overlay
+ (function () {
+ if (settings.overlay) {
+ if (document.querySelector('.' + PLUGIN_NAME + '-overlay.fadeIn') !== null) {
+ $DOM.overlay = document.querySelector('.' + PLUGIN_NAME + '-overlay');
+ $DOM.overlay.setAttribute('data-iziToast-ref', $DOM.overlay.getAttribute('data-iziToast-ref') + ',' + settings.ref);
+ if (!isNaN(settings.zindex) && settings.zindex !== null) {
+ $DOM.overlay.style.zIndex = settings.zindex - 1;
+ }
+ } else {
+ $DOM.overlay.classList.add(PLUGIN_NAME + '-overlay');
+ $DOM.overlay.classList.add('fadeIn');
+ $DOM.overlay.style.background = settings.overlayColor;
+ $DOM.overlay.setAttribute('data-iziToast-ref', settings.ref);
+ if (!isNaN(settings.zindex) && settings.zindex !== null) {
+ $DOM.overlay.style.zIndex = settings.zindex - 1;
+ }
+ document.querySelector('body').appendChild($DOM.overlay);
+ }
+ if (settings.overlayClose) {
+ $DOM.overlay.removeEventListener('click', {});
+ $DOM.overlay.addEventListener('click', function (e) {
+ that.hide(settings, $DOM.toast, 'overlay');
+ });
+ } else {
+ $DOM.overlay.removeEventListener('click', {});
+ }
+ }
+ })();
+ // Inside animations
+ (function () {
+ if (settings.animateInside) {
+ $DOM.toast.classList.add(PLUGIN_NAME + '-animateInside');
+ var animationTimes = [200, 100, 300];
+ if (settings.transitionIn == 'bounceInLeft' || settings.transitionIn == 'bounceInRight') {
+ animationTimes = [400, 200, 400];
+ }
+ if (settings.title.length > 0) {
+ setTimeout(function () {
+ $DOM.strong.classList.add('slideIn');
+ }, animationTimes[0]);
+ }
+ if (settings.message.length > 0) {
+ setTimeout(function () {
+ $DOM.p.classList.add('slideIn');
+ }, animationTimes[1]);
+ }
+ if (settings.icon || settings.iconUrl) {
+ setTimeout(function () {
+ $DOM.icon.classList.add('revealIn');
+ }, animationTimes[2]);
+ }
+ var counter = 150;
+ if (settings.buttons.length > 0 && $DOM.buttons) {
+ setTimeout(function () {
+ forEach($DOM.buttons.childNodes, function (element, index) {
+ setTimeout(function () {
+ element.classList.add('revealIn');
+ }, counter);
+ counter = counter + 150;
+ });
+ }, settings.inputs.length > 0 ? 150 : 0);
+ }
+ if (settings.inputs.length > 0 && $DOM.inputs) {
+ counter = 150;
+ forEach($DOM.inputs.childNodes, function (element, index) {
+ setTimeout(function () {
+ element.classList.add('revealIn');
+ }, counter);
+ counter = counter + 150;
+ });
+ }
+ }
+ })();
+ settings.onOpening.apply(null, [settings, $DOM.toast]);
+ try {
+ var event = new CustomEvent(PLUGIN_NAME + '-opening', {detail: settings, bubbles: true, cancelable: true});
+ document.dispatchEvent(event);
+ } catch (ex) {
+ console.warn(ex);
+ }
+ setTimeout(function () {
+ $DOM.toast.classList.remove(PLUGIN_NAME + '-opening');
+ $DOM.toast.classList.add(PLUGIN_NAME + '-opened');
+ try {
+ var event = new CustomEvent(PLUGIN_NAME + '-opened', {
+ detail: settings,
+ bubbles: true,
+ cancelable: true
+ });
+ document.dispatchEvent(event);
+ } catch (ex) {
+ console.warn(ex);
+ }
+ settings.onOpened.apply(null, [settings, $DOM.toast]);
+ }, 1000);
+ if (settings.drag) {
+ if (ACCEPTSTOUCH) {
+ $DOM.toast.addEventListener('touchstart', function (e) {
+ drag.startMoving(this, that, settings, e);
+ }, false);
+ $DOM.toast.addEventListener('touchend', function (e) {
+ drag.stopMoving(this, e);
+ }, false);
+ } else {
+ $DOM.toast.addEventListener('mousedown', function (e) {
+ e.preventDefault();
+ drag.startMoving(this, that, settings, e);
+ }, false);
+ $DOM.toast.addEventListener('mouseup', function (e) {
+ e.preventDefault();
+ drag.stopMoving(this, e);
+ }, false);
+ }
+ }
+ if (settings.closeOnEscape) {
+ document.addEventListener('keyup', function (evt) {
+ evt = evt || window.event;
+ if (evt.keyCode == 27) {
+ that.hide(settings, $DOM.toast, 'esc');
+ }
+ });
+ }
+ if (settings.closeOnClick) {
+ $DOM.toast.addEventListener('click', function (evt) {
+ that.hide(settings, $DOM.toast, 'toast');
+ });
+ }
+ // 鎾斁澹伴煶
+ if (settings.audio) {
+ that.playSound(settings.audio);
+ }
+ that.toast = $DOM.toast;
+ };
+
+ // 鎺у埗杩涘害鏉�
+ $iziToast.progress = function (options, $toast, callback) {
+ var that = this,
+ ref = $toast.getAttribute('data-iziToast-ref'),
+ settings = extend(this.children[ref], options || {}),
+ $elem = $toast.querySelector('.' + PLUGIN_NAME + '-progressbar div');
+ return {
+ start: function () {
+ if (typeof settings.time.REMAINING == 'undefined') {
+ $toast.classList.remove(PLUGIN_NAME + '-reseted');
+ if ($elem !== null) {
+ $elem.style.transition = 'width ' + settings.timeout + 'ms ' + settings.progressBarEasing;
+ $elem.style.width = '0%';
+ }
+ settings.time.START = new Date().getTime();
+ settings.time.END = settings.time.START + settings.timeout;
+ settings.time.TIMER = setTimeout(function () {
+ clearTimeout(settings.time.TIMER);
+ if (!$toast.classList.contains(PLUGIN_NAME + '-closing')) {
+ that.hide(settings, $toast, 'timeout');
+ if (typeof callback === 'function') {
+ callback.apply(that);
+ }
+ }
+ }, settings.timeout);
+ that.setSetting(ref, 'time', settings.time);
+ }
+ },
+ pause: function () {
+ if (typeof settings.time.START !== 'undefined' && !$toast.classList.contains(PLUGIN_NAME + '-paused') && !$toast.classList.contains(PLUGIN_NAME + '-reseted')) {
+ $toast.classList.add(PLUGIN_NAME + '-paused');
+ settings.time.REMAINING = settings.time.END - new Date().getTime();
+ clearTimeout(settings.time.TIMER);
+ that.setSetting(ref, 'time', settings.time);
+ if ($elem !== null) {
+ var computedStyle = window.getComputedStyle($elem),
+ propertyWidth = computedStyle.getPropertyValue('width');
+ $elem.style.transition = 'none';
+ $elem.style.width = propertyWidth;
+ }
+ if (typeof callback === 'function') {
+ setTimeout(function () {
+ callback.apply(that);
+ }, 10);
+ }
+ }
+ },
+ resume: function () {
+ if (typeof settings.time.REMAINING !== 'undefined') {
+ $toast.classList.remove(PLUGIN_NAME + '-paused');
+ if ($elem !== null) {
+ $elem.style.transition = 'width ' + settings.time.REMAINING + 'ms ' + settings.progressBarEasing;
+ $elem.style.width = '0%';
+ }
+ settings.time.END = new Date().getTime() + settings.time.REMAINING;
+ settings.time.TIMER = setTimeout(function () {
+ clearTimeout(settings.time.TIMER);
+ if (!$toast.classList.contains(PLUGIN_NAME + '-closing')) {
+ that.hide(settings, $toast, 'timeout');
+ if (typeof callback === 'function') {
+ callback.apply(that);
+ }
+ }
+ }, settings.time.REMAINING);
+ that.setSetting(ref, 'time', settings.time);
+ } else {
+ this.start();
+ }
+ },
+ reset: function () {
+ clearTimeout(settings.time.TIMER);
+ delete settings.time.REMAINING;
+ that.setSetting(ref, 'time', settings.time);
+ $toast.classList.add(PLUGIN_NAME + '-reseted');
+ $toast.classList.remove(PLUGIN_NAME + '-paused');
+ if ($elem !== null) {
+ $elem.style.transition = 'none';
+ $elem.style.width = '100%';
+ }
+ if (typeof callback === 'function') {
+ setTimeout(function () {
+ callback.apply(that);
+ }, 10);
+ }
+ }
+ };
+ };
+
+ // 鍒ゆ柇鏄惁鏄痠e9浠ヤ笅鐗堟湰
+ var isIE9_ = function () {
+ var userAgent = navigator.userAgent;
+ if (window.navigator.userAgent.indexOf("MSIE") >= 1) {
+ var reIE = new RegExp("MSIE (\\d+\\.\\d+);");
+ reIE.test(userAgent);
+ var fIEVersion = parseFloat(RegExp["$1"]);
+ if (fIEVersion != 10) {
+ return true;
+ }
+ }
+ return false;
+ };
+
+ // 缁橢lement娣诲姞remove鏂规硶
+ if (!('remove' in Element.prototype)) {
+ Element.prototype.remove = function () {
+ if (this.parentNode) {
+ this.parentNode.removeChild(this);
+ }
+ };
+ }
+
+ // 鑷畾涔変簨浠�
+ if (typeof window.CustomEvent !== 'function') {
+ var CustomEventPolyfill = function (event, params) {
+ params = params || {bubbles: false, cancelable: false, detail: undefined};
+ var evt = document.createEvent('CustomEvent');
+ evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);
+ return evt;
+ };
+ CustomEventPolyfill.prototype = window.Event.prototype;
+ window.CustomEvent = CustomEventPolyfill;
+ }
+
+ // 閬嶅巻鏁版嵁
+ var forEach = function (collection, callback, scope) {
+ if (Object.prototype.toString.call(collection) === '[object Object]') {
+ for (var prop in collection) {
+ if (Object.prototype.hasOwnProperty.call(collection, prop)) {
+ callback.call(scope, collection[prop], prop, collection);
+ }
+ }
+ } else {
+ if (collection) {
+ for (var i = 0, len = collection.length; i < len; i++) {
+ callback.call(scope, collection[i], i, collection);
+ }
+ }
+ }
+ };
+
+ // 鍚堝苟鑷畾涔夊弬鏁板拰榛樿鍙傛暟
+ var extend = function (defaults, options) {
+ var extended = {};
+ forEach(defaults, function (value, prop) {
+ extended[prop] = defaults[prop];
+ });
+ forEach(options, function (value, prop) {
+ extended[prop] = options[prop];
+ });
+ return extended;
+ };
+
+ // 鍒涘缓鏂扮殑鏂囨。鐗囨
+ var createFragElem = function (htmlStr) {
+ var frag = document.createDocumentFragment(),
+ temp = document.createElement('div');
+ temp.innerHTML = htmlStr;
+ while (temp.firstChild) {
+ frag.appendChild(temp.firstChild);
+ }
+ return frag;
+ };
+
+ // 鐢熸垚ID
+ var generateId = function (params) {
+ var newId = btoa(encodeURIComponent(params));
+ return newId.replace(/=/g, "");
+ };
+
+ // 鍒ゆ柇鏄惁鏄鑹插瓧绗︿覆
+ var isColor = function (color) {
+ if (color.substring(0, 1) == '#' || color.substring(0, 3) == 'rgb' || color.substring(0, 3) == 'hsl') {
+ return true;
+ } else {
+ return false;
+ }
+ };
+
+ // 鍒ゆ柇鏄惁鏄痓ase64瀛楃涓�
+ var isBase64 = function (str) {
+ try {
+ return btoa(atob(str)) == str;
+ } catch (err) {
+ return false;
+ }
+ };
+
+ // 鎷栨嫿鏂规硶
+ var drag = function () {
+ return {
+ move: function (toast, instance, settings, xpos) {
+ var opacity,
+ opacityRange = 0.3,
+ distance = 180;
+ if (xpos !== 0) {
+ toast.classList.add(PLUGIN_NAME + '-dragged');
+ toast.style.transform = 'translateX(' + xpos + 'px)';
+ if (xpos > 0) {
+ opacity = (distance - xpos) / distance;
+ if (opacity < opacityRange) {
+ instance.hide(extend(settings, {
+ transitionOut: 'fadeOutRight',
+ transitionOutMobile: 'fadeOutRight'
+ }), toast, 'drag');
+ }
+ } else {
+ opacity = (distance + xpos) / distance;
+ if (opacity < opacityRange) {
+ instance.hide(extend(settings, {
+ transitionOut: 'fadeOutLeft',
+ transitionOutMobile: 'fadeOutLeft'
+ }), toast, 'drag');
+ }
+ }
+ toast.style.opacity = opacity;
+ if (opacity < opacityRange) {
+ if (ISCHROME || ISFIREFOX)
+ toast.style.left = xpos + 'px';
+ toast.parentNode.style.opacity = opacityRange;
+ this.stopMoving(toast, null);
+ }
+ }
+ },
+ startMoving: function (toast, instance, settings, e) {
+ e = e || window.event;
+ var posX = ((ACCEPTSTOUCH) ? e.touches[0].clientX : e.clientX),
+ toastLeft = toast.style.transform.replace('px)', '');
+ toastLeft = toastLeft.replace('translateX(', '');
+ var offsetX = posX - toastLeft;
+ if (settings.transitionIn) {
+ toast.classList.remove(settings.transitionIn);
+ }
+ if (settings.transitionInMobile) {
+ toast.classList.remove(settings.transitionInMobile);
+ }
+ toast.style.transition = '';
+ if (ACCEPTSTOUCH) {
+ document.ontouchmove = function (e) {
+ e.preventDefault();
+ e = e || window.event;
+ var posX = e.touches[0].clientX,
+ finalX = posX - offsetX;
+ drag.move(toast, instance, settings, finalX);
+ };
+ } else {
+ document.onmousemove = function (e) {
+ e.preventDefault();
+ e = e || window.event;
+ var posX = e.clientX,
+ finalX = posX - offsetX;
+ drag.move(toast, instance, settings, finalX);
+ };
+ }
+ },
+ stopMoving: function (toast, e) {
+ if (ACCEPTSTOUCH) {
+ document.ontouchmove = function () {
+ };
+ } else {
+ document.onmousemove = function () {
+ };
+ }
+ toast.style.opacity = '';
+ toast.style.transform = '';
+ if (toast.classList.contains(PLUGIN_NAME + '-dragged')) {
+ toast.classList.remove(PLUGIN_NAME + '-dragged');
+ toast.style.transition = 'transform 0.4s ease, opacity 0.4s ease';
+ setTimeout(function () {
+ toast.style.transition = '';
+ }, 400);
+ }
+ }
+ };
+ }();
+
+ // 鍏煎IE
+ var Base64 = {
+ _keyStr: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", encode: function (e) {
+ var t = "";
+ var n, r, i, s, o, u, a;
+ var f = 0;
+ e = Base64._utf8_encode(e);
+ while (f < e.length) {
+ n = e.charCodeAt(f++);
+ r = e.charCodeAt(f++);
+ i = e.charCodeAt(f++);
+ s = n >> 2;
+ o = (n & 3) << 4 | r >> 4;
+ u = (r & 15) << 2 | i >> 6;
+ a = i & 63;
+ if (isNaN(r)) {
+ u = a = 64
+ } else if (isNaN(i)) {
+ a = 64
+ }
+ t = t + this._keyStr.charAt(s) + this._keyStr.charAt(o) + this._keyStr.charAt(u) + this._keyStr.charAt(a)
+ }
+ return t
+ }, decode: function (e) {
+ var t = "";
+ var n, r, i;
+ var s, o, u, a;
+ var f = 0;
+ e = e.replace(/[^A-Za-z0-9+/=]/g, "");
+ while (f < e.length) {
+ s = this._keyStr.indexOf(e.charAt(f++));
+ o = this._keyStr.indexOf(e.charAt(f++));
+ u = this._keyStr.indexOf(e.charAt(f++));
+ a = this._keyStr.indexOf(e.charAt(f++));
+ n = s << 2 | o >> 4;
+ r = (o & 15) << 4 | u >> 2;
+ i = (u & 3) << 6 | a;
+ t = t + String.fromCharCode(n);
+ if (u != 64) {
+ t = t + String.fromCharCode(r)
+ }
+ if (a != 64) {
+ t = t + String.fromCharCode(i)
+ }
+ }
+ t = Base64._utf8_decode(t);
+ return t
+ }, _utf8_encode: function (e) {
+ e = e.replace(/rn/g, "n");
+ var t = "";
+ for (var n = 0; n < e.length; n++) {
+ var r = e.charCodeAt(n);
+ if (r < 128) {
+ t += String.fromCharCode(r)
+ } else if (r > 127 && r < 2048) {
+ t += String.fromCharCode(r >> 6 | 192);
+ t += String.fromCharCode(r & 63 | 128)
+ } else {
+ t += String.fromCharCode(r >> 12 | 224);
+ t += String.fromCharCode(r >> 6 & 63 | 128);
+ t += String.fromCharCode(r & 63 | 128)
+ }
+ }
+ return t
+ }, _utf8_decode: function (e) {
+ var t = "";
+ var n = 0;
+ var r = c1 = c2 = 0;
+ while (n < e.length) {
+ r = e.charCodeAt(n);
+ if (r < 128) {
+ t += String.fromCharCode(r);
+ n++
+ } else if (r > 191 && r < 224) {
+ c2 = e.charCodeAt(n + 1);
+ t += String.fromCharCode((r & 31) << 6 | c2 & 63);
+ n += 2
+ } else {
+ c2 = e.charCodeAt(n + 1);
+ c3 = e.charCodeAt(n + 2);
+ t += String.fromCharCode((r & 15) << 12 | (c2 & 63) << 6 | c3 & 63);
+ n += 3
+ }
+ }
+ return t
+ }
+ };
+ if (isIE9_()) {
+ // 鍏煎btoa鍜宎tob鏂规硶
+ window.btoa = function (str) {
+ return Base64.encode(str);
+ };
+ window.atob = function (str) {
+ return Base64.decode(str);
+ };
+ // 鍏煎classList灞炴��
+ if (!("classList" in document.documentElement)) {
+ Object.defineProperty(window.Element.prototype, 'classList', {
+ get: function () {
+ var self = this;
+
+ function update(fn) {
+ return function () {
+ var className = self.className.replace(/^\s+|\s+$/g, ''),
+ valArr = arguments;
+ return fn(className, valArr)
+ }
+ }
+
+ function add_rmv(className, valArr, tag) {
+ for (var i in valArr) {
+ if (typeof valArr[i] !== 'string' || !!~valArr[i].search(/\s+/g)) throw TypeError('the type of value is error')
+ var temp = valArr[i]
+ var flag = !!~className.search(new RegExp('(\\s+)?' + temp + '(\\s+)?'))
+ if (tag === 1) {
+ !flag ? className += ' ' + temp : ''
+ } else if (tag === 2) {
+ flag ? className = className.replace(new RegExp('(\\s+)?' + temp), '') : ''
+ }
+ }
+ self.className = className;
+ return tag;
+ }
+
+ return {
+ add: update(function (className, valArr) {
+ add_rmv(className, valArr, 1)
+ }),
+ remove: update(function (className, valArr) {
+ add_rmv(className, valArr, 2)
+ }),
+ toggle: function (value) {
+ if (typeof value !== 'string' || arguments.length === 0) throw TypeError("Failed to execute 'toggle' on 'DOMTokenList': 1 argument(string) required, but only 0 present.")
+ if (arguments.length === 1) {
+ this.contains(value) ? this.remove(value) : this.add(value)
+ return
+ }
+ !arguments[1] ? this.remove(value) : this.add(value)
+ },
+ contains: update(function (className, valArr) {
+ if (valArr.length === 0) throw TypeError("Failed to execute 'contains' on 'DOMTokenList': 1 argument required, but only 0 present.")
+ if (typeof valArr[0] !== 'string' || !!~valArr[0].search(/\s+/g)) return false
+ return !!~className.search(new RegExp(valArr[0]))
+ }),
+ item: function (index) {
+ typeof index === 'string' ? index = parseInt(index) : ''
+ if (arguments.length === 0 || typeof index !== 'number') throw TypeError("Failed to execute 'toggle' on 'DOMTokenList': 1 argument required, but only 0 present.")
+ var claArr = self.className.replace(/^\s+|\s+$/, '').split(/\s+/)
+ var len = claArr.length
+ if (index < 0 || index >= len) return null
+ return claArr[index]
+ }
+ }
+ }
+ });
+ }
+ }
+
+ // 鎾斁澹伴煶
+ $iziToast.playSound = function (src) {
+ if (!(src.indexOf('http') == 0)) {
+ src = layui.cache.base + 'notice/' + src + '.wav';
+ }
+ if (!!window.ActiveXObject || "ActiveXObject" in window) { // IE
+ var embed = document.noticePlay;
+ if (embed) {
+ embed.remove();
+ }
+ embed = document.createElement('embed');
+ embed.setAttribute('name', 'noticePlay');
+ embed.setAttribute('src', src);
+ embed.setAttribute('autostart', true);
+ embed.setAttribute('loop', false);
+ embed.setAttribute('hidden', true);
+ document.body.appendChild(embed);
+ embed = document.noticePlay;
+ embed.volume = 100;
+ } else { // 闈濱E
+ var audio = document.createElement('audio');
+ audio.setAttribute('hidden', true);
+ audio.setAttribute('src', src);
+ document.body.appendChild(audio);
+ audio.addEventListener('ended', function () {
+ audio.parentNode.removeChild(audio);
+ }, false);
+ audio.play();
+ }
+ };
+
+ // 涓嶅悓涓婚鐨勯�氱煡
+ forEach(THEMES, function (theme, name) {
+ $iziToast[name] = function (options) {
+ var settings = extend(CONFIG, options || {});
+ settings = extend(theme, settings || {});
+ this.show(settings);
+ };
+ });
+
+ layui.link(layui.cache.base + 'notice/notice.css'); // 鍔犺浇css
+ exports('notice', $iziToast);
+});
diff --git a/src/main/webapp/static/layui/lay/modules/tableMerge.js b/src/main/webapp/static/layui/lay/modules/tableMerge.js
new file mode 100644
index 0000000..4d26b3c
--- /dev/null
+++ b/src/main/webapp/static/layui/lay/modules/tableMerge.js
@@ -0,0 +1,75 @@
+/**
+ * Created by YujieYang.
+ * @name: 瀛愯〃鏍兼墿灞�
+ * @author: 鏉ㄧ帀鏉�
+ * @version 1.0
+ */
+layui.define(['table'], function (exports) {
+
+ var $ = layui.jquery;
+
+ // 灏佽鏂规硶
+ var mod = {
+ /**
+ * 娓叉煋鍏ュ彛
+ * @param myTable
+ */
+ render: function (myTable) {
+ var tableBox = $(myTable.elem).next().children('.layui-table-box'),
+ $main = $(tableBox.children('.layui-table-body').children('table').children('tbody').children('tr').toArray().reverse()),
+ $fixLeft = $(tableBox.children('.layui-table-fixed-l').children('.layui-table-body').children('table').children('tbody').children('tr').toArray().reverse()),
+ $fixRight = $(tableBox.children('.layui-table-fixed-r').children('.layui-table-body').children('table').children('tbody').children('tr').toArray().reverse()),
+ cols = myTable.cols[0], mergeRecord = {};
+
+ for (let i = 0; i < cols.length; i++) {
+ var item3 = cols[i], field=item3.field;
+ if (item3.merge) {
+ var mergeField = [field];
+ if (item3.merge !== true) {
+ if (typeof item3.merge == 'string') {
+ mergeField = [item3.merge]
+ } else {
+ mergeField = item3.merge
+ }
+ }
+ mergeRecord[i] = {mergeField: mergeField, rowspan:1}
+ }
+ }
+
+ $main.each(function (i) {
+
+ for (var item in mergeRecord) {
+ if (i==$main.length-1 || isMaster(i, item)) {
+ $(this).children('[data-key$="-'+item+'"]').attr('rowspan', mergeRecord[item].rowspan).css('position','static');
+ $fixLeft.eq(i).children('[data-key$="-'+item+'"]').attr('rowspan', mergeRecord[item].rowspan).css('position','static');
+ $fixRight.eq(i).children('[data-key$="-'+item+'"]').attr('rowspan', mergeRecord[item].rowspan).css('position','static');
+ mergeRecord[item].rowspan = 1;
+ } else {
+ $(this).children('[data-key$="-'+item+'"]').remove();
+ $fixLeft.eq(i).children('[data-key$="-'+item+'"]').remove();
+ $fixRight.eq(i).children('[data-key$="-'+item+'"]').remove();
+ mergeRecord[item].rowspan +=1;
+ }
+ }
+ })
+
+ function isMaster (index, item) {
+ var mergeField = mergeRecord[item].mergeField;
+ var dataLength = layui.table.cache[myTable.id].length;
+ for (var i=0; i<mergeField.length; i++) {
+
+ if (layui.table.cache[myTable.id][dataLength-2-index][mergeField[i]]
+ !== layui.table.cache[myTable.id][dataLength-1-index][mergeField[i]]) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ }
+ };
+
+ // 杈撳嚭
+ exports('tableMerge', mod);
+});
+
diff --git a/src/main/webapp/static/layui/lay/modules/tableX.js b/src/main/webapp/static/layui/lay/modules/tableX.js
new file mode 100644
index 0000000..90953ec
--- /dev/null
+++ b/src/main/webapp/static/layui/lay/modules/tableX.js
@@ -0,0 +1,645 @@
+锘�/** 琛ㄦ牸鎵╁睍妯″潡 date:2020-02-29 License By http://easyweb.vip */
+layui.define(['layer', 'table', 'laytpl', 'contextMenu'], function (exports) {
+ var $ = layui.jquery;
+ var layer = layui.layer;
+ var table = layui.table;
+ var laytpl = layui.laytpl;
+ var contextMenu = layui.contextMenu;
+ var device = layui.device();
+ var tbSearchAttr = 'tb-search'; // 鍓嶇鎼滅储灞炴��
+ var tbRefreshAttr = 'tb-refresh'; // 鍒锋柊鎸夐挳灞炴��
+ var tbExportAttr = 'tb-export'; // 瀵煎嚭鎸夐挳灞炴��
+ var txFieldPre = 'txField_'; // templte鍒梖iled鍓嶇紑
+ var tableX = {};
+
+ /* 鍚堝苟鐩稿悓鍗曞厓鏍� */
+ tableX.merges = function (tableId, indexs, fields, sort) {
+ if (typeof fields === 'boolean') {
+ sort = fields;
+ fields = undefined;
+ }
+ var $tb = $('[lay-filter="' + tableId + '"]+.layui-table-view>.layui-table-box>.layui-table-body>table');
+ var $trs = $tb.find('>tbody>tr');
+ // 寰幆鍚堝苟姣忎竴鍒�
+ for (var i = 0; i < indexs.length; i++) {
+ if (fields) {
+ merge(tableId, indexs[i], fields[i]);
+ } else {
+ merge(tableId, indexs[i]);
+ }
+ }
+ $trs.find('[del="true"]').remove(); // 绉婚櫎澶氫綑鐨勫崟鍏冩牸
+ // 鐩戝惉鎺掑簭浜嬩欢
+ if (sort === undefined || sort) {
+ table.on('sort(' + tableId + ')', function () {
+ tableX.merges(tableId, indexs, fields, false);
+ });
+ }
+
+ // 鍚堝苟涓�鍒�
+ function merge(tableId, index, field) {
+ var data = table.cache[tableId];
+ if (data.length > 0) {
+ var lastValue, spanNum = 1;
+ if (field) {
+ lastValue = data[0][field];
+ } else {
+ lastValue = $trs.eq(0).find('td').eq(index).find('.layui-table-cell').html();
+ }
+ for (var i = 1; i < data.length; i++) {
+ var currentValue;
+ if (field) {
+ currentValue = data[i][field];
+ } else {
+ currentValue = $trs.eq(i).find('td').eq(index).find('.layui-table-cell').html();
+ }
+ if (currentValue === lastValue) {
+ spanNum++;
+ if (i === data.length - 1) {
+ $trs.eq(i - spanNum + 1).find('td').eq(index).attr('rowspan', spanNum);
+ for (var j = 1; j < spanNum; j++) {
+ $trs.eq(i - j + 1).find('td').eq(index).attr('del', 'true');
+ }
+ }
+ } else {
+ $trs.eq(i - spanNum).find('td').eq(index).attr('rowspan', spanNum);
+ for (var k = 1; k < spanNum; k++) {
+ $trs.eq(i - k).find('td').eq(index).attr('del', 'true');
+ }
+ spanNum = 1;
+ lastValue = currentValue;
+ }
+ }
+ }
+ }
+ };
+
+ /* 琛ㄦ牸琛岀粦瀹氶紶鏍囧彸閿� */
+ tableX.bindCtxMenu = function (tableId, items) {
+ var data = table.cache[tableId];
+ var elem = '#' + tableId + '+.layui-table-view .layui-table-body tr';
+ $(elem).bind('contextmenu', function (event) {
+ var $this = $(this);
+ $(elem).removeClass('layui-table-click');
+ $this.addClass('layui-table-click');
+ var ctxItems;
+ if (typeof items === 'function') ctxItems = items(data[$this.data('index')], event.currentTarget);
+ else ctxItems = items;
+
+ function getCtxItems(menus) {
+ if (!menus) return;
+ var result = [];
+ for (var i = 0; i < menus.length; i++) {
+ result.push({
+ icon: menus[i].icon,
+ name: menus[i].name,
+ _click: menus[i].click,
+ click: function (e, e2) {
+ var $tr = $(e2.currentTarget);
+ this._click && this._click(data[$tr.data('index')], e2.currentTarget);
+ $tr.removeClass('layui-table-click');
+ },
+ subs: getCtxItems(menus[i].subs)
+ });
+ }
+ return result;
+ }
+
+ contextMenu.show(getCtxItems(ctxItems), event.clientX, event.clientY, event);
+ return false;
+ });
+ };
+
+ /* 瀵煎嚭浠绘剰鏁版嵁 */
+ tableX.exportData = function (param) {
+ var cols = param.cols; // 琛ㄥご
+ var data = param.data; // 鏁版嵁
+ var fileName = param.fileName; // 鏂囦欢鍚�
+ var fileType = param.expType; // 绫诲瀷锛寈ls銆乧sv
+ var option = param.option; // url鏂瑰紡鍔犺浇鐨勯厤缃�
+ option || (option = {});
+ if (device.ie) return layer.msg('涓嶆敮鎸乮e瀵煎嚭');
+ // data涓簎rl鍏堣姹傛暟鎹�
+ if (typeof data === 'string') {
+ var loadIndex = layer.load(2);
+ option.url = data;
+ tableX.loadUrl(option, function (res) {
+ layer.close(loadIndex);
+ param.data = res;
+ tableX.exportData(param);
+ });
+ return;
+ }
+ // 鍒楀弬鏁拌ˉ鍏�
+ for (var i = 0; i < cols.length; i++) {
+ for (var j = 0; j < cols[i].length; j++) {
+ if (cols[i][j].type === undefined) {
+ cols[i][j].type = 'normal';
+ }
+ if (cols[i][j].hide === undefined) {
+ cols[i][j].hide = false;
+ }
+ }
+ }
+ var titles = [], fields = [], expData = [];
+ // 鑾峰彇琛ㄥご鍜岃〃澶村瓧娈靛悕
+ table.eachCols(undefined, function (i, item) {
+ if (item.type === 'normal' && !item.hide) {
+ titles.push(item.title || '');
+ fields.push(item.field || (txFieldPre + i));
+ }
+ }, cols);
+ // 鑾峰彇templet鍚庣殑鏁版嵁
+ var fullData = tableX.parseTbData(cols, tableX.deepClone(data), true);
+ for (var n = 0; n < fullData.length; n++) {
+ var rowItem = [];
+ for (var m = 0; m < fields.length; m++) {
+ var text = fullData[n][fields[m]];
+ text && (text = text.toString().replace(/,/g, '锛�'));
+ rowItem.push(text);
+ }
+ expData.push(rowItem.join(','));
+ }
+ // 鍒涘缓涓嬭浇鏂囦欢鐨刟鏍囩
+ var alink = document.createElement('a');
+ var type = ({csv: 'text/csv', xls: 'application/vnd.ms-excel'})[fileType || 'xls'];
+ var content = encodeURIComponent(titles.join(',') + '\r\n' + expData.join('\r\n'));
+ alink.href = 'data:' + type + ';charset=utf-8,\ufeff' + content;
+ alink.download = (fileName || 'table') + '.' + (fileType || 'xls');
+ document.body.appendChild(alink);
+ alink.click();
+ document.body.removeChild(alink);
+ };
+
+ /* 瀵煎嚭琛ㄦ牸鏁版嵁(楂樼骇) */
+ tableX.exportDataX = function (param) {
+ layui.use('excel', function () {
+ var excel = layui.excel;
+ var cols = param.cols; // 琛ㄥご
+ var data = param.data; // 鏁版嵁
+ var fileName = param.fileName; // 鏂囦欢鍚�
+ var fileType = param.expType; // 绫诲瀷锛寈ls銆亁lsx
+ var option = param.option; // url鏂瑰紡鍔犺浇鐨勯厤缃�
+ option || (option = {});
+ fileType || (fileType = 'xlsx');
+ // data涓簎rl鍏堣姹傛暟鎹�
+ if (data && typeof data === 'string') {
+ var loadIndex = layer.load(2);
+ option.url = data;
+ tableX.loadUrl(option, function (res) {
+ layer.close(loadIndex);
+ param.data = res;
+ tableX.exportDataX(param);
+ });
+ return;
+ }
+ // 鍒楀弬鏁拌ˉ鍏�
+ for (var i = 0; i < cols.length; i++) {
+ for (var j = 0; j < cols[i].length; j++) {
+ if (cols[i][j].type === undefined) {
+ cols[i][j].type = 'normal';
+ }
+ if (cols[i][j].hide === undefined) {
+ cols[i][j].hide = false;
+ }
+ }
+ }
+ // 鑾峰彇琛ㄥご鍜岃〃澶村瓧娈靛悕
+ var titles = {}, fields = [];
+ table.eachCols(undefined, function (i, item) {
+ if (item.type === 'normal' && !item.hide) {
+ var field = item.field || (txFieldPre + i);
+ fields.push(field);
+ titles[field] = item.title || '';
+ }
+ }, cols);
+ // 鏍煎紡鍖栨暟鎹�
+ var fullData = tableX.parseTbData(cols, tableX.deepClone(data), true);
+ var expData = excel.filterExportData(fullData, fields);
+ expData.unshift(titles);
+ excel.exportExcel({sheet1: expData}, (fileName || 'table') + '.' + fileType, fileType);
+ });
+ };
+
+ /* 鍚庣瀵煎嚭鏁版嵁鎷兼帴鍙傛暟 */
+ tableX.exportDataBack = function (url, where, method) {
+ where || (where = {});
+ if (!method || method.toString().toLowerCase() === 'get') {
+ var param = '';
+ for (var f in where) {
+ if (!param) {
+ param = ('?' + f + '=' + where[f]);
+ } else {
+ param += ('&' + f + '=' + where[f]);
+ }
+ }
+ window.open(url + param);
+ } else {
+ var htmlStr = '<html><body><form id="eFrom" action="' + url + '" method="' + method + '">';
+ for (var f2 in where) {
+ htmlStr += ('<textarea name="' + f2 + '">' + where[f2] + '</textarea>');
+ }
+ htmlStr += '</form></body></html>';
+ $('#exportFrame').remove();
+ $('body').append('<iframe id="exportFrame" style="display: none;"></iframe>');
+ var eFrame = document.getElementById('exportFrame');
+ var eWindow = eFrame.contentWindow;
+ var eDocument = eWindow.document;
+ eWindow.focus();
+ eDocument.open();
+ eDocument.write(htmlStr);
+ eDocument.close();
+ eDocument.getElementById('eFrom').submit();
+ }
+ };
+
+ /* 娓叉煋琛ㄦ牸锛屽悗绔帓搴� */
+ tableX.render = function (param) {
+ var tableId = $(param.elem).attr('lay-filter');
+ param.autoSort = false; // 鍏抽棴榛樿鎺掑簭
+ var insTb = table.render(param); // 娓叉煋琛ㄦ牸
+ // 鎺掑簭鐩戝惉
+ table.on('sort(' + tableId + ')', function (obj) {
+ var sortField = obj.field, sortType = obj.type; // 鎺掑簭瀛楁銆佺被鍨�
+ var sortWhere = $.extend(param.where, {sort: sortField, order: sortType});
+ insTb.reload({where: sortWhere, page: {curr: 1}});
+ });
+ return insTb;
+ };
+
+ /* 娓叉煋琛ㄦ牸锛屽墠绔垎椤� */
+ tableX.renderFront = function (param) {
+ var insTb, tableId = $(param.elem).attr('lay-filter');
+ param.autoSort = false; // 鍏抽棴榛樿鎺掑簭
+ // 娌℃湁field鐨則emplet鍒楄ˉ涓婏紝鍥犱负鎺掑簭蹇呴』鏈塮iled瀛楁锛屽惁鍒欑偣鍑绘帓搴忎細鎶ラ敊
+ for (var i = 0; i < param.cols.length; i++) {
+ for (var j = 0; j < param.cols[i].length; j++) {
+ if (param.cols[i][j].templet && !param.cols[i][j].field) {
+ param.cols[i][j].field = txFieldPre + i + '_' + j;
+ }
+ }
+ }
+ if (param.url) { // url鏂瑰紡
+ var xParam = tableX.deepClone(param);
+ xParam.data = [];
+ xParam.url = undefined;
+ insTb = table.render(xParam); // 鍏堟覆鏌撹〃鏍肩粨鏋�
+ // 鎻愪緵鍒锋柊鏂规硶
+ insTb.reloadUrl = function (p) {
+ var reParam = tableX.deepClone(param);
+ p && (reParam = $.extend(reParam, p));
+ $(param.elem + '+.layui-table-view>.layui-table-box').append('<div class="layui-table-init"><i class="layui-icon layui-icon-loading layui-anim layui-anim-rotate layui-anim-loop"></i></div>');
+ // 鑾峰彇url鏁版嵁
+ tableX.loadUrl(reParam, function (data) {
+ insTb.reload({url: '', data: data, page: {curr: 1}});
+ tableX.putTbData(tableId, tableX.parseTbData(reParam.cols, data)); // 缂撳瓨鏁版嵁
+ $('input[' + tbSearchAttr + '="' + tableId + '"]').val(''); // 娓呯┖鎼滅储杈撳叆妗�
+ window.tbX.cacheSearch[tableId] = undefined; // 閲嶇疆鎼滅储缁撴灉
+ });
+ };
+ insTb.reloadUrl();
+ } else {
+ insTb = table.render(param); // 娓叉煋琛ㄦ牸
+ // 鎻愪緵鍒锋柊鐨勬柟娉�
+ insTb.reloadData = function (p) {
+ insTb.reload(p);
+ tableX.parseTbData(param.cols, p.data); // 瑙f瀽temple鍒�
+ tableX.putTbData(tableId, p.data);
+ $('input[' + tbSearchAttr + '="' + tableId + '"]').val(''); // 娓呯┖鎼滅储杈撳叆妗�
+ window.tbX.cacheSearch[tableId] = undefined; // 閲嶇疆鎼滅储缁撴灉
+ };
+ tableX.putTbData(tableId, tableX.parseTbData(param.cols, param.data)); // 缂撳瓨鏁版嵁
+ }
+ tableX.renderAllTool(insTb); // 娓叉煋宸ュ叿缁勪欢
+ return insTb;
+ };
+
+ /* 鍔犺浇琛ㄦ牸鏁版嵁 */
+ tableX.loadUrl = function (options, callback) {
+ // 鍝嶅簲鏁版嵁鐨勮嚜瀹氫箟鏍煎紡
+ options.response = $.extend({
+ statusName: 'code',
+ statusCode: 0,
+ msgName: 'msg',
+ dataName: 'data',
+ countName: 'count'
+ }, options.response);
+ var response = options.response;
+ var where = options.where; // 鍙傛暟
+ if (options.contentType && options.contentType.indexOf('application/json') === 0) {
+ where = JSON.stringify(where); // 鎻愪氦 json 鏍煎紡
+ }
+ $.ajax({
+ type: options.method || 'get',
+ url: options.url,
+ contentType: options.contentType,
+ data: where,
+ dataType: 'json',
+ headers: options.headers || {},
+ success: function (res) {
+ // 濡傛灉鏈夋暟鎹В鏋愮殑鍥炶皟锛屽垯鑾峰緱鍏惰繑鍥炵殑鏁版嵁
+ if (typeof options.parseData === 'function') {
+ res = options.parseData(res) || res;
+ }
+ // 妫�鏌ユ暟鎹牸寮忔槸鍚︾鍚堣鑼�
+ if (res[response.statusName] != response.statusCode) {
+ var msgText = res[response.msgName] || ('杩斿洖鐨勬暟鎹笉绗﹀悎瑙勮寖锛屾纭殑鎴愬姛鐘舵�佺爜 (' + response.statusName + ') 搴斾负锛�' + response.statusCode);
+ layer.msg(msgText, {icon: 2});
+ } else {
+ callback(res[response.dataName]);
+ }
+ },
+ error: function (e, m) {
+ layer.msg('鏁版嵁鎺ュ彛璇锋眰寮傚父锛�' + m, {icon: 2});
+ }
+ });
+ };
+
+ /* 瑙f瀽鏁版嵁琛ㄦ牸templet鍒� */
+ tableX.parseTbData = function (cols, dataList, overwrite) {
+ var templets = []; // 闇�瑕佽В鏋愮殑鍒�
+ table.eachCols(undefined, function (i, item) {
+ if (item.templet) {
+ var one = {field: ((item.field && (overwrite || item.field.indexOf(txFieldPre) === 0)) ? item.field : ('txField_' + i))};
+ if (typeof item.templet === 'string') {
+ one.templet = function (d) { // templet鍒椾娇鐢╨aytpl娓叉煋
+ var rsStr = undefined;
+ laytpl($(item.templet).html()).render(d, function (html) {
+ rsStr = html;
+ });
+ return rsStr;
+ }
+ } else {
+ one.templet = item.templet;
+ }
+ templets.push(one);
+ }
+ }, cols);
+ for (var i = 0; i < dataList.length; i++) {
+ var current = dataList[i];
+ for (var j = 0; j < templets.length; j++) {
+ var htmlStr = '<div>' + templets[j].templet(current) + '</div>';
+ current[templets[j].field] = $(htmlStr).not('.export-hide').text().replace(/(^\s*)|(\s*$)/g, ''); // 鍘婚櫎鍓嶅悗绌烘牸
+ }
+ }
+ return dataList;
+ };
+
+ /* 缂撳瓨琛ㄦ牸鐨勬暟鎹� */
+ tableX.putTbData = function (tableId, dataList) {
+ window.tbX.cache[tableId] = dataList;
+ };
+
+ /* 鑾峰彇琛ㄦ牸缂撳瓨鐨勬暟鎹� */
+ tableX.getTbData = function (tableId) {
+ var dataList = window.tbX.cache[tableId];
+ return tableX.deepClone(dataList || table.cache[tableId]);
+ };
+
+ /* 鎼滅储鏁版嵁 */
+ tableX.filterData = function (dataList, searchName, searchValue) {
+ var newList = [], sfs;
+ for (var i = 0; i < dataList.length; i++) {
+ var obj = dataList[i];
+ if (!sfs) { // 鎼滅储鐨勫瓧娈�
+ if (!searchName) {
+ sfs = [];
+ for (var f in obj) {
+ if (!obj.hasOwnProperty(f)) continue;
+ sfs.push(f);
+ }
+ } else {
+ sfs = searchName.split(',');
+ }
+ }
+ for (var j = 0; j < sfs.length; j++) {
+ if (tableX.isContains(obj[sfs[j]], searchValue)) {
+ newList.push(obj);
+ break;
+ }
+ }
+ }
+ return newList;
+ };
+
+ /* 瀛楃涓叉槸鍚﹀寘鍚� */
+ tableX.isContains = function (str1, str2) {
+ str1 || (str1 = '');
+ str2 || (str2 = '');
+ str1 = str1.toString().toLowerCase();
+ str2 = str2.toString().toLowerCase();
+ if (str1 === str2 || str1.indexOf(str2) >= 0) {
+ return true;
+ }
+ return false;
+ };
+
+ /* 娓叉煋鎵�鏈夌粍浠� */
+ tableX.renderAllTool = function (insTb) {
+ renderRefresh(insTb); // 鍒锋柊
+ renderFrontSort(insTb); // 鎺掑簭
+ renderFrontSearch(insTb); // 鎼滅储
+ renderExport(insTb); // 瀵煎嚭
+ };
+
+ /* 娣卞害鍏嬮殕瀵硅薄 */
+ tableX.deepClone = function (obj) {
+ var result;
+ var oClass = tableX.isClass(obj);
+ if (oClass === 'Object') {
+ result = {};
+ } else if (oClass === 'Array') {
+ result = [];
+ } else {
+ return obj;
+ }
+ for (var key in obj) {
+ if (!obj.hasOwnProperty(key)) continue;
+ var copy = obj[key];
+ if (tableX.isClass(copy) === 'Object') {
+ result[key] = arguments.callee(copy);//閫掑綊璋冪敤
+ } else if (tableX.isClass(copy) === 'Array') {
+ result[key] = arguments.callee(copy);
+ } else {
+ result[key] = obj[key];
+ }
+ }
+ return result;
+ };
+
+ /* 鑾峰彇鍙橀噺绫诲瀷 */
+ tableX.isClass = function (o) {
+ if (o === null)
+ return 'Null';
+ if (o === undefined)
+ return 'Undefined';
+ return Object.prototype.toString.call(o).slice(8, -1);
+ };
+
+ // 鍒涘缓鏁版嵁缂撳瓨瀵硅薄
+ window.tbX || (window.tbX = {});
+ window.tbX.cache || (window.tbX.cache = {});
+ window.tbX.cacheSearch || (window.tbX.cacheSearch = {});
+
+ // 鍓嶇鎼滅储
+ var renderFrontSearch = function (insTb) {
+ var tableId = insTb.config.id, $input = $('input[' + tbSearchAttr + '="' + tableId + '"]');
+ if (!($input && $input.length > 0)) {
+ return;
+ }
+ if (!$input.attr('placeholder')) {
+ $input.attr('placeholder', '杈撳叆鍏抽敭瀛楁寜鍥炶溅閿悳绱�');
+ }
+ $input.off('keydown').on('keydown', function (event) {
+ if (event.keyCode !== 13) {
+ return;
+ }
+ var searchName = $input.attr('name'); // 鎼滅储鐨勫瓧娈靛悕锛岀敤閫楀彿鍒嗛殧
+ var searchValue = $input.val().replace(/(^\s*)|(\s*$)/g, ''); // 鎼滅储鍏抽敭瀛�
+ var loadIndex = layer.msg('鎼滅储涓�..', {icon: 16, shade: 0.01, time: 0});
+ var dataList = tableX.getTbData(tableId);
+ var newDataList = tableX.filterData(dataList, searchName, searchValue);
+ window.tbX.cacheSearch[tableId] = newDataList; // 缂撳瓨鎼滅储鍚庣殑鏁版嵁鐢ㄤ簬鎺掑簭
+ insTb.reload({url: '', data: newDataList, page: {curr: 1}});
+ layer.close(loadIndex);
+ });
+ };
+
+ // 鍓嶇鎺掑簭
+ var renderFrontSort = function (insTb) {
+ var tableId = insTb.config.id;
+ table.on('sort(' + tableId + ')', function (obj) {
+ var sortField = obj.field, sortType = obj.type; // 鎺掑簭瀛楁銆佺被鍨�
+ var loadIndex = layer.msg('鍔犺浇涓�..', {icon: 16, shade: 0.01, time: 0});
+ var dataList = window.tbX.cacheSearch[tableId]; // 琛ㄦ牸鎼滅储鍚庣殑鏁版嵁
+ dataList || (dataList = tableX.getTbData(tableId));
+ if (sortType) {
+ dataList = dataList.sort(function (o1, o2) {
+ var o1Str = o1[sortField], o2Str = o2[sortField];
+ if (sortType === 'asc') { // 鍗囧簭
+ return (o1Str === o2Str) ? 0 : ((o1Str < o2Str) ? -1 : 1);
+ } else { // 闄嶅簭
+ return (o1Str === o2Str) ? 0 : ((o1Str < o2Str) ? 1 : -1);
+ }
+ });
+ }
+ insTb.reload({initSort: obj, url: '', data: dataList, page: {curr: 1}});
+ layer.close(loadIndex);
+ });
+ };
+
+ // 琛ㄦ牸鍒锋柊鎸夐垥
+ var renderRefresh = function (insTb) {
+ $('[' + tbRefreshAttr + '="' + insTb.config.id + '"]').off('click').on('click', function () {
+ if (insTb.reloadUrl) {
+ insTb.reloadUrl();
+ } else {
+ insTb.reload({page: {curr: 1}});
+ }
+ });
+ };
+
+ // 娓叉煋瀵煎嚭鎸夐挳
+ var renderExport = function (insTb) {
+ var tableId = insTb.config.id;
+ $('[' + tbExportAttr + '="' + tableId + '"]').off('click').on('click', function (event) {
+ if ($(this).find('.tbx-dropdown-menu').length > 0) {
+ return;
+ }
+ if (event !== void 0) {
+ event.preventDefault();
+ event.stopPropagation();
+ }
+ var htmlStr = '<div class="tbx-dropdown-menu">';
+ htmlStr += ' <div class="tbx-dropdown-menu-item" data-type="check">瀵煎嚭閫変腑鏁版嵁</div>';
+ htmlStr += ' <div class="tbx-dropdown-menu-item" data-type="current">瀵煎嚭褰撳墠椤垫暟鎹�</div>';
+ htmlStr += ' <div class="tbx-dropdown-menu-item" data-type="all">瀵煎嚭鍏ㄩ儴鏁版嵁</div>';
+ htmlStr += ' </div>';
+ $(this).append(htmlStr);
+ $(this).addClass('tbx-dropdown-btn');
+ $(this).parent().css('position', 'relative');
+ $(this).parent().css('z-index', '9998');
+ $('.tbx-dropdown-menu').off('click').on('click', '.tbx-dropdown-menu-item', function (event) {
+ var type = $(this).data('type');
+ if (type === 'check') {
+ var checkRows = table.checkStatus(tableId);
+ if (checkRows.data.length === 0) {
+ layer.msg('璇烽�夋嫨瑕佸鍑虹殑鏁版嵁', {icon: 2});
+ } else {
+ $('.tbx-dropdown-menu').remove();
+ tableX.exportData({
+ fileName: insTb.config.title,
+ cols: insTb.config.cols,
+ data: checkRows.data
+ });
+ }
+ } else if (type === 'current') {
+ tableX.exportData({
+ fileName: insTb.config.title,
+ cols: insTb.config.cols,
+ data: table.cache[tableId]
+ });
+ } else if (type === 'all') {
+ tableX.exportData({
+ fileName: insTb.config.title,
+ cols: insTb.config.cols,
+ data: tableX.getTbData(tableId)
+ });
+ }
+ if (event !== void 0) {
+ event.preventDefault();
+ event.stopPropagation();
+ }
+ });
+ });
+ $(document).off('click.tbxDropHide').on('click.tbxDropHide', function () {
+ $('.tbx-dropdown-menu').remove();
+ });
+ };
+
+ /* css鏍峰紡 */
+ var getCommonCss = function () {
+ var cssStr = '.tbx-dropdown-btn {';
+ cssStr += ' position: relative;';
+ cssStr += ' }';
+ cssStr += ' .tbx-dropdown-btn:hover {';
+ cssStr += ' opacity: 1';
+ cssStr += ' }';
+ cssStr += ' .tbx-dropdown-menu {';
+ cssStr += ' position: absolute;';
+ cssStr += ' top: 100%;';
+ cssStr += ' right: 0;';
+ cssStr += ' padding: 5px 0;';
+ cssStr += ' margin: 5px 0 0 0;';
+ cssStr += ' overflow: visible;';
+ cssStr += ' min-width: 110px;';
+ cssStr += ' background: #fff;';
+ cssStr += ' border-radius: 2px;';
+ cssStr += ' box-shadow: 0 2px 4px rgba(0, 0, 0, .12);';
+ cssStr += ' border: 1px solid #d2d2d2;';
+ cssStr += ' z-index: 9998;';
+ cssStr += ' cursor: default;';
+ cssStr += ' }';
+ cssStr += ' .tbx-dropdown-menu .tbx-dropdown-menu-item {';
+ cssStr += ' display: block;';
+ cssStr += ' color: #555;';
+ cssStr += ' font-size: 14px;';
+ cssStr += ' padding: 10px 15px;';
+ cssStr += ' text-decoration: none;';
+ cssStr += ' white-space: nowrap;';
+ cssStr += ' cursor: pointer;';
+ cssStr += ' user-select: none;';
+ cssStr += ' line-height: normal;';
+ cssStr += ' }';
+ cssStr += ' .tbx-dropdown-menu .tbx-dropdown-menu-item:hover {';
+ cssStr += ' background-color: #eeeeee;';
+ cssStr += ' }';
+ cssStr += ' .export-show {';
+ cssStr += ' display: none;';
+ cssStr += ' }';
+ return cssStr;
+ };
+
+ $('head').append('<style id="ew-css-tbx" type="text/css">' + getCommonCss() + '</style>');
+ exports("tableX", tableX);
+});
\ No newline at end of file
diff --git a/src/main/webapp/static/layui/lay/modules/treeTable.js b/src/main/webapp/static/layui/lay/modules/treeTable.js
new file mode 100644
index 0000000..17d641d
--- /dev/null
+++ b/src/main/webapp/static/layui/lay/modules/treeTable.js
@@ -0,0 +1,2 @@
+/** 鏍戝舰琛ㄦ牸3.x Created by wangfan on 2020-05-12 https://gitee.com/whvse/treetable-lay */
+layui.define(["laytpl","form","util"],function(s){var g=layui.jquery;var d=layui.laytpl;var c=layui.form;var b=layui.util;var o=layui.device();var h="treeTable";var k={};var e={elem:undefined,cols:undefined,url:undefined,method:undefined,where:undefined,contentType:undefined,headers:undefined,parseData:undefined,request:{pidName:"pid"},toolbar:undefined,defaultToolbar:undefined,width:undefined,height:undefined,cellMinWidth:90,done:undefined,data:undefined,title:undefined,skin:undefined,even:undefined,size:undefined,text:{none:"鏃犳暟鎹�"},reqData:undefined,useAdmin:false,tree:{idName:"id",pidName:"pid",childName:"children",haveChildName:"haveChild",openName:"open",iconIndex:0,arrowType:undefined,onlyIconControl:undefined,getIcon:function(u){var t=u[this.haveChildName];if(t!==undefined){t=t===true||t==="true"}else{if(u[this.childName]){t=u[this.childName].length>0}}if(t){return'<i class="ew-tree-icon layui-icon layui-icon-layer"></i>'}else{return'<i class="ew-tree-icon layui-icon layui-icon-file"></i>'}}}};var r={field:undefined,title:undefined,width:undefined,minWidth:undefined,type:"normal",fixed:undefined,hide:undefined,unresize:undefined,style:undefined,align:undefined,colspan:undefined,rowspan:undefined,templet:undefined,toolbar:undefined,"class":undefined,singleLine:undefined};var p=function(t){k[t.elem.substring(1)]=this;this.reload(t)};p.prototype.initOptions=function(t){var D=this;function B(J){if(!J.INIT_OK){J=g.extend({INIT_OK:true},r,J)}if(J.type==="space"){if(!J.width){J.width=15}J.minWidth=J.width}else{if(J.type==="numbers"){if(!J.width){J.width=40}J.minWidth=J.width;if(!J.singleLine){J.singleLine=false}if(!J.unresize){J.unresize=true}if(!J.align){J.align="center"}}else{if(J.type==="checkbox"||J.type==="radio"){if(!J.width){J.width=48}J.minWidth=J.width;if(!J.singleLine){J.singleLine=false}if(!J.unresize){J.unresize=true}if(!J.align){J.align="center"}}}}if(J.toolbar){J.type="tool"}return J}if("Array"!==l(t.cols[0])){t.cols=[t.cols]}for(var w=0;w<t.cols.length;w++){for(var u=0;u<t.cols[w].length;u++){t.cols[w][u].INIT_OK=undefined;t.cols[w][u].key=undefined;t.cols[w][u].colGroup=undefined;t.cols[w][u].HAS_PARENT=undefined;t.cols[w][u].parentKey=undefined;t.cols[w][u].PARENT_COL_INDEX=undefined}}var F=[],G=0;for(var y=0;y<t.cols.length;y++){var C=t.cols[y];for(var x=0;x<C.length;x++){var A=C[x];if(!A){C.splice(x,1);continue}A=B(A);A.key=y+"-"+x;var I=undefined;if(A.colGroup||A.colspan>1){A.colGroup=true;A.type="group";I=[];G++;var z=0;for(var v=0;v<t.cols[y+1].length;v++){var H=g.extend({INIT_OK:true},r,t.cols[y+1][v]);if(H.HAS_PARENT||(z>1&&z==A.colspan)){t.cols[y+1][v]=H;continue}H.HAS_PARENT=true;H.parentKey=y+"-"+x;H.key=(y+1)+"-"+v;H.PARENT_COL_INDEX=G;H=B(H);I.push(H);z=z+parseInt(H.colspan>1?H.colspan:1);t.cols[y+1][v]=H}}A.CHILD_COLS=I;if(!A.PARENT_COL_INDEX){F.push(A)}t.cols[y][x]=A}}this.options=g.extend(true,{},e,t);this.options.colArrays=F;if(this.options.url){this.options.reqData=function(J,K){if(!D.options.where){D.options.where={}}if(J){D.options.where[D.options.request.pidName]=J[D.options.tree.idName]}(D.options.useAdmin?layui.admin:g).ajax({url:D.options.url,data:D.options.contentType&&D.options.contentType.indexOf("application/json")===0?JSON.stringify(D.options.where):D.options.where,headers:D.options.headers,type:D.options.method,dataType:"json",contentType:D.options.contentType,success:function(L){if(D.options.parseData){L=D.options.parseData(L)}if(L.code==0){K(L.data)}else{K(L.msg||"鍔犺浇澶辫触")}},error:function(L){K(L.status+" - "+L.statusText)}})}}else{if(this.options.data&&this.options.data.length>0&&this.options.tree.isPidData){this.options.data=a.pidToChildren(this.options.data,this.options.tree.idName,this.options.tree.pidName,this.options.tree.childName)}}if("default"===this.options.toolbar){this.options.toolbar=["<div>",' <div class="ew-tree-table-tool-item" title="娣诲姞" lay-event="add">',' <i class="layui-icon layui-icon-add-1"></i>'," </div>",' <div class="ew-tree-table-tool-item" title="淇敼" lay-event="update">',' <i class="layui-icon layui-icon-edit"></i>'," </div>",' <div class="ew-tree-table-tool-item" title="鍒犻櫎" lay-event="delete">',' <i class="layui-icon layui-icon-delete"></i>'," </div>","</div>"].join("")}if(this.options.defaultToolbar===undefined){this.options.defaultToolbar=["filter","exports","print"]}if(typeof this.options.tree.getIcon==="string"){var E=this.options.tree.getIcon;this.options.tree.getIcon=function(K){if(E!=="ew-tree-icon-style2"){return E}var J=K[this.haveChildName];if(J!==undefined){J=J===true||J==="true"}else{if(K[this.childName]){J=K[this.childName].length>0}}if(J){return'<i class="ew-tree-icon ew-tree-icon-folder"></i>'}else{return'<i class="ew-tree-icon ew-tree-icon-file"></i>'}}}};p.prototype.init=function(){var E=this.options;var u=g(E.elem);var B=E.elem.substring(1);u.removeAttr("lay-filter");if(u.next(".ew-tree-table").length===0){u.css("display","none");u.after(['<div class="layui-form ew-tree-table" lay-filter="',B,'" style="',E.style||"",'">',' <div class="ew-tree-table-tool" style="display: none;"></div>',' <div class="ew-tree-table-head">',' <table class="layui-table"></table>'," </div>",' <div class="ew-tree-table-box">',' <table class="layui-table"></table>',' <div class="ew-tree-table-loading">',' <i class="layui-icon layui-icon-loading layui-anim layui-anim-rotate layui-anim-loop"></i>'," </div>",' <div class="ew-tree-table-empty">',E.text.none||"","</div>"," </div>","</div>"].join(""))}var A=this.getComponents();if(E.skin){A.$table.attr("lay-skin",E.skin)}if(E.size){A.$table.attr("lay-size",E.size)}if(E.even){A.$table.attr("lay-even",E.even)}A.$toolbar.empty();if(E.toolbar===false||E.toolbar===undefined){A.$toolbar.hide()}else{A.$toolbar.show();if(typeof E.toolbar==="string"){d(g(E.toolbar).html()).render({},function(F){A.$toolbar.html('<div style="display: inline-block;">'+F+"</div>")})}var C=['<div class="ew-tree-table-tool-right">'];for(var y=0;y<E.defaultToolbar.length;y++){var w;if("filter"===E.defaultToolbar[y]){w={title:"绛涢��",layEvent:"LAYTABLE_COLS",icon:"layui-icon-cols"}}else{if("exports"===E.defaultToolbar[y]){w={title:"瀵煎嚭",layEvent:"LAYTABLE_EXPORT",icon:"layui-icon-export"}}else{if("print"===E.defaultToolbar[y]){w={title:"鎵撳嵃",layEvent:"LAYTABLE_PRINT",icon:"layui-icon-print"}}else{w=E.defaultToolbar[y]}}}if(w){C.push('<div class="ew-tree-table-tool-item"');C.push(' title="'+w.title+'"');C.push(' lay-event="'+w.layEvent+'">');C.push('<i class="layui-icon '+w.icon+'"></i></div>')}}A.$toolbar.append(C.join("")+"</div>")}if(E.width){A.$view.css("width",E.width);A.$tHeadGroup.css("width",E.width);A.$tBodyGroup.css("width",E.width)}var v=this.resize(true);var D="<thead>"+this.renderBodyTh()+"</thead>";A.$tBodyGroup.children("style").remove();if(E.height){A.$tHead.html(v+D);A.$tBody.html(v+"<tbody></tbody>");if(E.height.indexOf("full-")===0){var z=parseFloat(E.height.substring(5))+A.$toolbar.outerHeight()+A.$tHeadGroup.outerHeight()+1;A.$tBodyGroup.append(['<style>[lay-filter="',B,'"] .ew-tree-table-box {'," height: ",m()-z,"px;"," height: -moz-calc(100vh - ",z,"px);"," height: -webkit-calc(100vh - ",z,"px);"," height: calc(100vh - ",z,"px);","}</style>"].join(""));A.$tBodyGroup.data("full",z);A.$tBodyGroup.css("height","")}else{A.$tBodyGroup.css("height",E.height);A.$tBodyGroup.data("full","")}A.$tHeadGroup.show()}else{A.$tHeadGroup.hide();var x={lg:50,sm:30,md:38};A.$tBodyGroup.append(['<style>[lay-filter="',B,'"] .ew-tree-table-box:before {',' content: "";'," position: absolute;"," top: 0; left: 0; right: 0;"," height: "+(x[E.size||"md"]*E.cols.length)+"px;"," background-color: #f2f2f2;"," border-bottom: 1px solid #e6e6e6;","}</style>"].join(""));A.$tBody.html(v+D+"<tbody></tbody>")}c.render("checkbox",B);function t(H){var F=H.data("parent"),G;if(!F){return}var I=A.$table.children("thead").children("tr").children('[data-key="'+F+'"]');var J=I.attr("colspan")-1;I.attr("colspan",J);if(J===0){I.addClass("layui-hide")}t(I)}A.$table.children("thead").children("tr").children("th.layui-hide").each(function(){t(g(this))});if(E.reqData){this.options.data=undefined;this.renderBodyAsync()}else{if(E.data&&E.data.length>0){this.renderBodyData(E.data)}else{A.$loading.hide();A.$empty.show()}}};p.prototype.bindEvents=function(){var v=this;var t=this.options;var u=this.getComponents();var w=u.$table.children("tbody");var x=function(y){var z=g(this);if(!z.is("tr")){var C=z.parent("tr");if(C.length>0){z=C}else{z=z.parentsUntil("tr").last().parent()}}var A=v.getDataByTr(z);var B={tr:z,data:A,del:function(){var F=z.data("index");var D=parseInt(z.data("indent"));z.nextAll("tr").each(function(){if(parseInt(g(this).data("indent"))<=D){return false}g(this).remove()});var G=(typeof F==="number"?1:F.split("-").length);z.nextAll("tr").each(function(){var H=g(this);if(parseInt(H.data("indent"))<D){return false}var I=H.data("index").toString().split("-");I[G-1]=parseInt(I[G-1])-1;H.data("index",I.join("-"))});var E=z.prevAll("tr");v.del(undefined,F);z.remove();v.renderNumberCol();E.each(function(){var H=parseInt(g(this).data("indent"));if(H>=D){return true}v.checkParentCB(g(this));D=H});v.checkChooseAllCB();if(t.data.length===0){u.$empty.show()}f(u.$view)},update:function(E){A=g.extend(true,A,E);var D=parseInt(z.data("indent"));v.renderBodyTr(A,D,undefined,z);c.render(null,u.filter);v.renderNumberCol();z.prevAll("tr").each(function(){var F=parseInt(g(this).data("indent"));if(F>=D){return true}v.checkParentCB(g(this));D=F});v.checkChooseAllCB()}};return g.extend(B,y)};w.off("click.fold").on("click.fold",".ew-tree-pack",function(C){layui.stope(C);var A=g(this).parentsUntil("tr").last().parent();if(A.hasClass("ew-tree-table-loading")){return}var y=A.data("have-child");if(y!==true&&y!=="true"){return}var z=A.hasClass("ew-tree-table-open");var B=v.getDataByTr(A);if(!z&&!B[t.tree.childName]){v.renderBodyAsync(B,A)}else{B[t.tree.openName]=i(A)}});w.off("click.tool").on("click.tool","*[lay-event]",function(z){layui.stope(z);var y=g(this);layui.event.call(this,h,"tool("+u.filter+")",x.call(this,{event:y.attr("lay-event")}))});c.on("radio("+u.radioFilter+")",function(y){var z=v.getDataByTr(g(y.elem).parentsUntil("tr").last().parent());v.removeAllChecked();z.LAY_CHECKED=true;z.LAY_INDETERMINATE=false;layui.event.call(this,h,"checkbox("+u.filter+")",{checked:true,data:z,type:"one"})});c.on("checkbox("+u.checkboxFilter+")",function(C){var B=C.elem.checked;var E=g(C.elem);var z=E.next(".layui-form-checkbox");if(!B&&E.hasClass("ew-form-indeterminate")){B=true;E.prop("checked",B);z.addClass("layui-form-checked");E.removeClass("ew-form-indeterminate")}var A=E.parentsUntil("tr").last().parent();var D=v.getDataByTr(A);D.LAY_CHECKED=B;D.LAY_INDETERMINATE=false;if(D[t.tree.childName]&&D[t.tree.childName].length>0){v.checkSubCB(A,B)}var y=parseInt(A.data("indent"));A.prevAll("tr").each(function(){var F=parseInt(g(this).data("indent"));if(F<y){v.checkParentCB(g(this));y=F}});v.checkChooseAllCB();layui.event.call(this,h,"checkbox("+u.filter+")",{checked:B,data:D,type:"more"})});c.on("checkbox("+u.chooseAllFilter+")",function(A){var z=A.elem.checked;var B=g(A.elem);var y=B.next(".layui-form-checkbox");if(!t.data||t.data.length===0){B.prop("checked",false);y.removeClass("layui-form-checked");B.removeClass("ew-form-indeterminate");return}if(!z&&B.hasClass("ew-form-indeterminate")){z=true;B.prop("checked",z);y.addClass("layui-form-checked");B.removeClass("ew-form-indeterminate")}layui.event.call(this,h,"checkbox("+u.filter+")",{checked:z,type:"all"});v.checkSubCB(u.$tBody.children("tbody"),z)});w.off("click.row").on("click.row","tr",function(){layui.event.call(this,h,"row("+u.filter+")",x.call(this,{}))});w.off("dblclick.rowDouble").on("dblclick.rowDouble","tr",function(){layui.event.call(this,h,"rowDouble("+u.filter+")",x.call(this,{}))});w.off("click.cell").on("click.cell","td",function(C){var y=g(this);var E=y.data("type");if(E==="checkbox"||E==="radio"){return layui.stope(C)}var H=y.data("edit");var G=y.data("field");if(H){layui.stope(C);if(w.find(".ew-tree-table-edit").length>0){return}var B=y.data("index");var z=y.find(".ew-tree-table-indent").length;var D=v.getDataByTr(y.parent());if("text"===H||"number"===H){var F=g('<input type="'+H+'" class="layui-input ew-tree-table-edit"/>');F[0].value=D[G];y.append(F);F.focus();F.blur(function(){var K=g(this).val();if(K==D[G]){return g(this).remove()}var I=layui.event.call(this,h,"edit("+u.filter+")",x.call(this,{value:K,field:G}));if(I===false){g(this).addClass("layui-form-danger");g(this).focus()}else{D[G]=K;var J=y.data("key").split("-");v.renderBodyTd(D,z,B,y,t.cols[J[0]][J[1]])}})}else{console.error("涓嶆敮鎸佺殑鍗曞厓鏍肩紪杈戠被鍨�:"+H)}}else{var A=layui.event.call(this,h,"cell("+u.filter+")",x.call(this,{td:y,field:G}));if(A===false){layui.stope(C)}}});w.off("dblclick.cellDouble").on("dblclick.cellDouble","td",function(C){var D=g(this);var z=D.data("type");if(z==="checkbox"||z==="radio"){return layui.stope(C)}var A=D.data("edit");var B=D.data("field");if(A){return layui.stope(C)}var y=layui.event.call(this,h,"cellDouble("+u.filter+")",x.call(this,{td:D,field:B}));if(y===false){layui.stope(C)}});u.$toolbar.off("click.toolbar").on("click.toolbar","*[lay-event]",function(A){layui.stope(A);var z=g(this);var y=z.attr("lay-event");if("LAYTABLE_COLS"===y){v.toggleCol()}else{if("LAYTABLE_EXPORT"===y){v.exportData("show")}else{if("LAYTABLE_PRINT"===y){v.printTable()}else{layui.event.call(this,h,"toolbar("+u.filter+")",{event:y,elem:z})}}}});u.$tBodyGroup.on("scroll",function(){var y=g(this);u.$tHeadGroup.scrollLeft(y.scrollLeft())});u.$toolbar.off("click.export").on("click.export",".layui-table-tool-panel>[data-type]",function(){var y=g(this).data("type");if("csv"===y||"xls"===y){v.exportData(y)}});u.$toolbar.off("click.panel").on("click.panel",".layui-table-tool-panel",function(y){layui.stope(y)});c.on("checkbox("+u.colsToggleFilter+")",function(y){v.toggleCol(y.elem.checked,undefined,y.value)})};p.prototype.getComponents=function(){var v=g(this.options.elem).next(".ew-tree-table");var t=v.attr("lay-filter");var w=v.children(".ew-tree-table-head");var u=v.children(".ew-tree-table-box");return{$view:v,filter:t,$tHeadGroup:w,$tBodyGroup:u,$tHead:w.children(".layui-table"),$tBody:u.children(".layui-table"),$table:v.find(".layui-table"),$toolbar:v.children(".ew-tree-table-tool"),$empty:u.children(".ew-tree-table-empty"),$loading:u.children(".ew-tree-table-loading"),checkboxFilter:"ew_tb_checkbox_"+t,radioFilter:"ew_tb_radio_"+t,chooseAllFilter:"ew_tb_choose_all_"+t,colsToggleFilter:"ew_tb_toggle_cols"+t}};p.prototype.eachCols=function(w,v){if(!v){v=this.options.colArrays}for(var t=0;t<v.length;t++){var u=v[t];w&&w(t,u);if(u.CHILD_COLS){this.eachCols(w,u.CHILD_COLS)}}};p.prototype.eachData=function(w,v){if(!v){v=this.options.data}for(var t=0;t<v.length;t++){var u=v[t];w&&w(t,u);if(u[this.options.tree.childName]){this.eachData(w,u[this.options.tree.childName])}}};p.prototype.renderBodyAsync=function(x,w){var v=this;var t=this.options;var u=this.getComponents();if(w){w.addClass("ew-tree-table-loading");w.find(".ew-tree-pack").children(".ew-tree-table-arrow").addClass("layui-anim layui-anim-rotate layui-anim-loop")}else{u.$empty.hide();if(t.data&&t.data.length>0){u.$loading.addClass("ew-loading-float")}u.$loading.show()}t.reqData(x,function(y){if(typeof y!=="string"&&y&&y.length>0&&t.tree.isPidData){y=a.pidToChildren(y,t.tree.idName,t.tree.pidName,t.tree.childName)}v.renderBodyData(y,x,w)})};p.prototype.renderBodyData=function(w,A,x){var u;if(typeof w==="string"){u=w;w=[]}var z=this;var C=this.options;var y=this.getComponents();if(A===undefined){C.data=w}else{A[C.tree.childName]=w}var v;if(x){v=parseInt(x.data("indent"))+1;A[C.tree.openName]=true}var t=this.renderBody(w,v,A);if(x){x.nextAll("tr").each(function(){if(parseInt(g(this).data("indent"))<=(v-1)){return false}g(this).remove()});x.after(t).addClass("ew-tree-table-open")}else{y.$tBody.children("tbody").html(t)}c.render(null,y.filter);this.renderNumberCol();if(x){this.checkParentCB(x);x.prevAll("tr").each(function(){var D=parseInt(g(this).data("indent"));if(D<(v-1)){z.checkParentCB(g(this));v=D+1}});x.removeClass("ew-tree-table-loading");var B=x.find(".ew-tree-pack").children(".ew-tree-table-arrow");B.removeClass("layui-anim layui-anim-rotate layui-anim-loop");if(u){x.removeClass("ew-tree-table-open")}else{if(w&&w.length===0){A[C.tree.haveChildName]=false;x.data("have-child",false);B.addClass("ew-tree-table-arrow-hide");B.next(".ew-tree-icon").after(C.tree.getIcon(A)).remove()}}}else{y.$loading.hide();y.$loading.removeClass("ew-loading-float");if(w&&w.length>0){y.$empty.hide()}else{y.$empty.show();if(u){y.$empty.text(u)}else{y.$empty.html(C.text.none)}}}this.checkChooseAllCB();f(y.$view);C.done&&C.done(w)};p.prototype.renderBody=function(z,t,y){var u=this.options;if(!t){t=0}var x="";if(!z||z.length===0){return x}var w=y?!y[u.tree.openName]:undefined;for(var v=0;v<z.length;v++){var A=z[v];A.LAY_INDEX=(y?y.LAY_INDEX+"-":"")+v;x+=this.renderBodyTr(A,t,w);x+=this.renderBody(A[u.tree.childName],t+1,A)}return x};p.prototype.renderBodyTr=function(B,u,x,w){var z=this;var C=this.options;if(!u){u=0}var A=B[C.tree.haveChildName];if(A===undefined){A=B[C.tree.childName]&&B[C.tree.childName].length>0}if(w){w.data("have-child",A?"true":"false");w.data("indent",u);w.removeClass("ew-tree-table-loading")}var v="<tr";var t="";if(A&&B[C.tree.openName]){t+="ew-tree-table-open"}if(x){t+="ew-tree-tb-hide"}v+=(' class="'+t+'"');if(A){v+=(' data-have-child="'+A+'"')}v+=(' data-index="'+B.LAY_INDEX+'"');v+=(' data-indent="'+u+'">');var y=0;this.eachCols(function(E,D){if(D.colGroup){return}v+=z.renderBodyTd(B,u,y,w?w.children("td").eq(y):undefined,D);y++});v+="</tr>";return v};p.prototype.renderBodyTd=function(C,v,A,t,u){if(u.colGroup){return""}var F=this.options;var y=this.getComponents();if(!v){v=0}var B="",E="",D="";if(u.type==="numbers"){B='<span class="ew-tree-table-numbers"></span>'}else{if(u.type==="checkbox"){B=['<input type="checkbox"',C.LAY_CHECKED?' checked="checked"':"",' lay-filter="',y.checkboxFilter,'"',' lay-skin="primary" class="ew-tree-table-checkbox',C.LAY_INDETERMINATE?" ew-form-indeterminate":"",'" />'].join("")}else{if(u.type==="radio"){B=['<input type="radio"',C.LAY_CHECKED?' checked="checked"':"",' lay-filter="',y.radioFilter,'"',' name="',y.radioFilter,'"',' class="ew-tree-table-radio" />'].join("")}else{if(u.templet){if(typeof u.templet==="function"){B=u.templet(C)}else{if(typeof u.templet==="string"){d(g(u.templet).html()).render(C,function(G){B=G})}}}else{if(u.toolbar){if(typeof u.toolbar==="function"){B=u.toolbar(C)}else{if(typeof u.toolbar==="string"){d(g(u.toolbar).html()).render(C,function(G){B=G})}}}else{if(u.field&&C[u.field]!==undefined&&C[u.field]!==null){B=b.escape(C[u.field]===0?"0":C[u.field])}}}}}}if(A===F.tree.iconIndex){for(var w=0;w<v;w++){D+='<span class="ew-tree-table-indent"></span>'}D+='<span class="ew-tree-pack">';var z=C[F.tree.haveChildName];if(z===undefined){z=C[F.tree.childName]&&C[F.tree.childName].length>0}D+=('<i class="ew-tree-table-arrow layui-icon'+(z?"":" ew-tree-table-arrow-hide"));D+=(" "+(F.tree.arrowType||"")+'"></i>');D+=F.tree.getIcon(C);B="<span>"+B+"</span>";if(F.tree.onlyIconControl){B=D+"</span>"+B}else{B=D+B+"</span>"}}E=['<div class="ew-tree-table-cell',u.singleLine===undefined||u.singleLine?" single-line":"",'"',u.align?' align="'+u.align+'"':"",">",' <div class="ew-tree-table-cell-content">',B,"</div>",' <i class="layui-icon layui-icon-close ew-tree-tips-c"></i>',' <div class="layui-table-grid-down" style="display: none;"><i class="layui-icon layui-icon-down"></i></div>',"</div>"].join("");if(t){t.html(E)}var x="<td";if(u.field){x+=(' data-field="'+u.field+'"')}if(u.edit){x+=(' data-edit="'+u.edit+'"')}if(u.type){x+=(' data-type="'+u.type+'"')}if(u.key){x+=(' data-key="'+u.key+'"')}if(u.style){x+=(' style="'+u.style+'"')}if(u["class"]){x+=(' class="'+u["class"]+(u.hide?" layui-hide":"")+'"')}else{if(u.hide){x+=(' class="layui-hide"')}}x+=(">"+E+"</td>");return x};p.prototype.renderBodyTh=function(){var t=this.options;var v=this.getComponents();var u=[];g.each(t.cols,function(x,w){u.push("<tr>");g.each(w,function(A,z){u.push("<th");if(z.colspan){u.push(' colspan="'+z.colspan+'"')}if(z.rowspan){u.push(' rowspan="'+z.rowspan+'"')}if(z.type){u.push(' data-type="'+z.type+'"')}if(z.key){u.push(' data-key="'+z.key+'"')}if(z.parentKey){u.push(' data-parent="'+z.parentKey+'"')}if(z.hide){u.push(' class="layui-hide"')}u.push(">");u.push('<div class="ew-tree-table-cell'+(z.singleLine===undefined||z.singleLine?" single-line":"")+'"');if(z.thAlign||z.align){u.push(' align="'+(z.thAlign||z.align)+'"')}u.push(">");u.push('<div class="ew-tree-table-cell-content">');var y='<input type="checkbox" lay-filter="'+v.chooseAllFilter+'" lay-skin="primary" class="ew-tree-table-checkbox"/>';if(z.type==="checkbox"){u.push(y)}else{u.push(z.title||"")}u.push('</div><i class="layui-icon layui-icon-close ew-tree-tips-c"></i>');u.push('<div class="layui-table-grid-down" style="display: none;"><i class="layui-icon layui-icon-down"></i></div></div>');if(!z.colGroup&&!z.unresize){u.push('<span class="ew-tb-resize"></span>')}u.push("</th>")});u.push("</tr>")});return u.join("")};p.prototype.resize=function(z){var t=this.options;var x=this.getComponents();var v=1,u=1,A=true,w=0;this.eachCols(function(B,C){if(C.colGroup||C.hide){return}if(C.width){u+=(C.width+1);if(C.minWidth){if(C.width<C.minWidth){C.width=C.minWidth}}else{if(C.width<t.cellMinWidth){C.width=t.cellMinWidth}}}else{A=false}if(C.width){v+=(C.width+1)}else{if(C.minWidth){v+=(C.minWidth+1);w+=C.minWidth}else{v+=(t.cellMinWidth+1);w+=t.cellMinWidth}}});if(v){x.$tHead.css("min-width",v);x.$tBody.css("min-width",v)}else{x.$tHead.css("min-width","auto");x.$tBody.css("min-width","auto")}if(A){x.$tHead.css("width",u);x.$tBody.css("width",u)}else{x.$tHead.css("width","100%");x.$tBody.css("width","100%")}var y=[];this.eachCols(function(B,C){if(C.colGroup||C.hide){return}y.push("<col");if(C.width){y.push(' width="'+C.width+'"')}else{if(C.minWidth){y.push(' width="'+(C.minWidth/w*100).toFixed(2)+'%"')}else{y.push(' width="'+(t.cellMinWidth/w*100).toFixed(2)+'%"')}}if(C.type){y.push(' data-type="'+C.type+'"')}if(C.key){y.push(' data-key="'+C.key+'"')}y.push("/>")});y=y.join("");if(z){return"<colgroup>"+y+"</colgroup>"}x.$table.children("colgroup").html(y)};p.prototype.getDataByTr=function(v){var w,t;if(typeof v!=="string"&&typeof v!=="number"){if(v){t=v.data("index")}}else{t=v}if(t===undefined){return}if(typeof t==="number"){t=[t]}else{t=t.split("-")}for(var u=0;u<t.length;u++){if(w){w=w[this.options.tree.childName][t[u]]}else{w=this.options.data[t[u]]}}return w};p.prototype.checkSubCB=function(y,x){var w=this;var v=this.getComponents();var t=-1,u;if(y.is("tbody")){u=y.children("tr")}else{t=parseInt(y.data("indent"));u=y.nextAll("tr")}u.each(function(){if(parseInt(g(this).data("indent"))<=t){return false}var A=g(this).children("td").find('input[lay-filter="'+v.checkboxFilter+'"]');A.prop("checked",x);A.removeClass("ew-form-indeterminate");if(x){A.next(".layui-form-checkbox").addClass("layui-form-checked")}else{A.next(".layui-form-checkbox").removeClass("layui-form-checked")}var z=w.getDataByTr(g(this));z.LAY_CHECKED=x;z.LAY_INDETERMINATE=false})};p.prototype.checkParentCB=function(x){var u=this.options;var w=this.getComponents();var z=this.getDataByTr(x);var y=0,v=0;if(z[u.tree.childName]){function t(C){for(var B=0;B<C.length;B++){if(C[B].LAY_CHECKED){y++}else{v++}if(C[B][u.tree.childName]){t(C[B][u.tree.childName])}}}t(z[u.tree.childName])}var A=x.children("td").find('input[lay-filter="'+w.checkboxFilter+'"]');if(y>0&&v===0){A.prop("checked",true);A.removeClass("ew-form-indeterminate");A.next(".layui-form-checkbox").addClass("layui-form-checked");z.LAY_CHECKED=true;z.LAY_INDETERMINATE=false}else{if(y===0&&v>0){A.prop("checked",false);A.removeClass("ew-form-indeterminate");A.next(".layui-form-checkbox").removeClass("layui-form-checked");z.LAY_CHECKED=false;z.LAY_INDETERMINATE=false}else{if(y>0&&v>0){A.prop("checked",true);A.data("indeterminate","true");A.addClass("ew-form-indeterminate");A.next(".layui-form-checkbox").addClass("layui-form-checked");z.LAY_CHECKED=true;z.LAY_INDETERMINATE=true}}}};p.prototype.checkChooseAllCB=function(){var u=this.options;var w=this.getComponents();var x=0,v=0;function t(A){for(var z=0;z<A.length;z++){if(A[z].LAY_CHECKED){x++}else{v++}if(A[z][u.tree.childName]){t(A[z][u.tree.childName])}}}t(u.data);var y=w.$view.find('input[lay-filter="'+w.chooseAllFilter+'"]');if(x>0&&v===0){y.prop("checked",true);y.removeClass("ew-form-indeterminate");y.next(".layui-form-checkbox").addClass("layui-form-checked")}else{if((x===0&&v>0)||(x===0&&v===0)){y.prop("checked",false);y.removeClass("ew-form-indeterminate");y.next(".layui-form-checkbox").removeClass("layui-form-checked")}else{if(x>0&&v>0){y.prop("checked",true);y.addClass("ew-form-indeterminate");y.next(".layui-form-checkbox").addClass("layui-form-checked")}}}};p.prototype.renderNumberCol=function(){this.getComponents().$tBody.children("tbody").children("tr").each(function(t){g(this).children("td").find(".ew-tree-table-numbers").text(t+1)})};p.prototype.getIndexById=function(v){var t=this.options;function u(x,y){for(var w=0;w<x.length;w++){if(x[w][t.tree.idName]==v){return y!==undefined?y+"-"+w:w}if(x[w][t.tree.childName]){return u(x[w][t.tree.childName],y!==undefined?y+"-"+w:w)}}}return u(t.data)};p.prototype.expand=function(x,u){var w=this.getComponents();var v=w.$table.children("tbody").children('tr[data-index="'+this.getIndexById(x)+'"]');if(!v.hasClass("ew-tree-table-open")){v.children("td").find(".ew-tree-pack").trigger("click")}if(u===false){return}var t=parseInt(v.data("indent"));v.prevAll("tr").each(function(){var y=parseInt(g(this).data("indent"));if(y<t){if(!g(this).hasClass("ew-tree-table-open")){g(this).children("td").find(".ew-tree-pack").trigger("click")}t=y}})};p.prototype.fold=function(v){var u=this.getComponents();var t=u.$table.children("tbody").children('tr[data-index="'+this.getIndexById(v)+'"]');if(t.hasClass("ew-tree-table-open")){t.children("td").find(".ew-tree-pack").trigger("click")}};p.prototype.expandAll=function(){this.getComponents().$table.children("tbody").children("tr").each(function(){if(!g(this).hasClass("ew-tree-table-open")){g(this).children("td").find(".ew-tree-pack").trigger("click")}})};p.prototype.foldAll=function(){this.getComponents().$table.children("tbody").children("tr").each(function(){if(g(this).hasClass("ew-tree-table-open")){g(this).children("td").find(".ew-tree-pack").trigger("click")}})};p.prototype.getData=function(){return this.options.data};p.prototype.reload=function(t){this.initOptions(this.options?g.extend(true,this.options,t):t);this.init();this.bindEvents()};p.prototype.checkStatus=function(t){if(t===undefined){t=true}var u=[];this.eachData(function(v,w){if((t||!w.LAY_INDETERMINATE)&&w.LAY_CHECKED){u.push(g.extend({isIndeterminate:w.LAY_INDETERMINATE},w))}});return u};p.prototype.setChecked=function(u){var w=this;var v=this.getComponents();var t=v.$table.find('input[lay-filter="'+v.radioFilter+'"]');if(t.length>0){t.each(function(){var x=w.getDataByTr(g(this).parentsUntil("tr").parent());if(x&&u[u.length-1]==x[w.options.tree.idName]){g(this).next(".layui-form-radio").trigger("click");return false}})}else{v.$table.find('input[lay-filter="'+v.checkboxFilter+'"]').each(function(){var C=g(this);var y=C.next(".layui-form-checkbox");var z=C.prop("checked");var B=C.hasClass("ew-form-indeterminate");var A=w.getDataByTr(C.parentsUntil("tr").parent());for(var x=0;x<u.length;x++){if(A&&u[x]==A[w.options.tree.idName]){if(A[w.options.tree.childName]&&A[w.options.tree.childName].length>0){continue}if(!z||B){y.trigger("click")}}}})}};p.prototype.removeAllChecked=function(){this.checkSubCB(this.getComponents().$table.children("tbody"),false)};p.prototype.exportData=function(w){var y=this.getComponents();if("show"===w){y.$toolbar.find(".layui-table-tool-panel").remove();y.$toolbar.find('[lay-event="LAYTABLE_EXPORT"]').append(['<ul class="layui-table-tool-panel">',' <li data-type="csv">瀵煎嚭鍒� Csv 鏂囦欢</li>',' <li data-type="xls">瀵煎嚭鍒� Excel 鏂囦欢</li>',"</ul>"].join(""))}else{if(o.ie){return layer.msg("涓嶆敮鎸乮e瀵煎嚭")}if(!w){w="xls"}var u=[],t=[];this.eachCols(function(A,B){if(B.type!=="normal"||B.hide){return}u.push(B.title||"")});y.$tBody.children("tbody").children("tr").each(function(){var A=[];g(this).children("td").each(function(){var B=g(this);if(B.data("type")!=="normal"||B.hasClass("layui-hide")){return true}A.push(B.text().trim().replace(/,/g,"锛�"))});t.push(A.join(","))});var v=document.createElement("a");var x=encodeURIComponent(u.join(",")+"\r\n"+t.join("\r\n"));var z=({csv:"text/csv",xls:"application/vnd.ms-excel"})[w];v.href="data:"+z+";charset=utf-8,\ufeff"+x;v.download=(this.options.title||"table")+"."+w;document.body.appendChild(v);v.click();document.body.removeChild(v)}};p.prototype.printTable=function(){var w=this.getComponents();var z=w.$tHead.children("thead").html();if(!z){z=w.$tBody.children("thead").html()}var x=w.$tBody.children("tbody").html();var v=w.$tBody.children("colgroup").html();var u=g(['<table class="ew-tree-table-print">'," <colgroup>",v,"</colgroup>"," <thead>",z,"</thead>"," <tbody>",x,"</tbody>","</table>"].join(""));u.find('col[data-type="checkbox"],col[data-type="radio"],col[data-type="tool"]').remove();u.find('td[data-type="checkbox"],td[data-type="radio"],td[data-type="tool"],.layui-hide').remove();function A(F){var C=F.data("parent"),D;if(!C){return}var E=u.children("thead").children("tr").children('[data-key="'+C+'"]');var G=parseInt(E.attr("colspan"))-1;E.attr("colspan",G);if(G===0){E.remove()}A(E)}u.find('th[data-type="checkbox"],th[data-type="radio"],th[data-type="tool"]').each(function(){A(g(this))}).remove();var t=["<style>"," /* 鎵撳嵃琛ㄦ牸鏍峰紡 */"," .ew-tree-table-print {"," border: none;"," border-collapse: collapse;"," width: 100%;"," table-layout: fixed;"," }"," .ew-tree-table-print td, .ew-tree-table-print th {"," color: #555;"," font-size: 14px;"," padding: 9px 15px;"," word-break: break-all;"," border: 1px solid #888;"," text-align: left;"," }"," .ew-tree-table-print .ew-tree-table-cell {"," min-height: 20px;"," }"," /* 搴忓彿鍒楁牱寮� */",' .ew-tree-table-print td[data-type="numbers"], .ew-tree-table-print th[data-type="numbers"] {'," padding-left: 0;"," padding-right: 0;"," }"," /* 鍗�/澶嶉�夋鍒楁牱寮� */",' .ew-tree-table-print td[data-type="tool"], .ew-tree-table-print th[data-type="tool"], ',' .ew-tree-table-print td[data-type="checkbox"], .ew-tree-table-print th[data-type="checkbox"], ',' .ew-tree-table-print td[data-type="radio"], .ew-tree-table-print th[data-type="radio"] {'," border: none;"," }"," .ew-tree-table-print td.layui-hide + td, .ew-tree-table-print th.layui-hide + th, ",' .ew-tree-table-print td[data-type="tool"] + td, .ew-tree-table-print th[data-type="tool"] + th, ',' .ew-tree-table-print td[data-type="checkbox"] + td, .ew-tree-table-print th[data-type="checkbox"] + th, ',' .ew-tree-table-print td[data-type="radio"] + td, .ew-tree-table-print th[data-type="radio"] + th {'," border-left: none;"," }"," /* 涓嶆樉绀虹殑鍏冪礌 */"," .layui-hide, ",' .ew-tree-table-print td[data-type="tool"] *, .ew-tree-table-print th[data-type="tool"] *, ',' .ew-tree-table-print td[data-type="checkbox"] *, .ew-tree-table-print th[data-type="checkbox"] *, ',' .ew-tree-table-print td[data-type="radio"] *, .ew-tree-table-print th[data-type="radio"] *, '," .layui-table-grid-down, .ew-tree-tips-c, .ew-tree-icon, .ew-tree-table-arrow.ew-tree-table-arrow-hide {"," display: none;"," }"," /* tree缂╄繘 */"," .ew-tree-table-indent {"," padding-left: 13px;"," }"," /* 绠ご */"," .ew-tree-table-arrow {"," position: relative;"," padding-left: 13px;"," }"," .ew-tree-table-arrow:before {",' content: "";'," border: 5px solid transparent;"," border-top-color: #666;"," position: absolute;"," left: 0;"," top: 6px;"," }","</style>"].join("");var y=window.open("","_blank");y.focus();var B=y.document;B.open();B.write(u[0].outerHTML+t);B.close();y.print();y.close()};p.prototype.toggleCol=function(A,z,B){var w=this.getComponents();if(A===undefined){w.$toolbar.find(".layui-table-tool-panel").remove();var x=['<ul class="layui-table-tool-panel">'];this.eachCols(function(D,E){if(E.type!=="normal"){return}x.push('<li><input type="checkbox" lay-skin="primary"');x.push(' lay-filter="'+w.colsToggleFilter+'"');x.push(' value="'+E.key+'" title="'+b.escape(E.title||"")+'"');x.push((E.hide?"":" checked")+"></li>")});w.$toolbar.find('[lay-event="LAYTABLE_COLS"]').append(x.join("")+"</ul>");c.render("checkbox",w.filter)}else{if(B){var u=w.$table.children("tbody").children("tr").children('[data-key="'+B+'"]');var C=w.$table.children("thead").children("tr").children('[data-key="'+B+'"]');if(A){u.removeClass("layui-hide");C.removeClass("layui-hide")}else{u.addClass("layui-hide");C.addClass("layui-hide")}var y=B.split("-");var v=this.options.cols[y[0]][y[1]];v.hide=!A;function t(G){var D=G.data("parent"),E;if(!D){return}var F=w.$table.children("thead").children("tr").children('[data-key="'+D+'"]');var H=F.attr("colspan");A?H++:H--;F.attr("colspan",H);if(H===0){F.addClass("layui-hide")}else{F.removeClass("layui-hide")}t(F)}t(C);this.eachCols(function(D,E){if(E.key===B){E.hide=v.hide}});this.resize()}}};p.prototype.filterData=function(y){var A=this.getComponents();A.$loading.show();if(this.options.data.length>0){A.$loading.addClass("ew-loading-float")}var x=A.$table.children("tbody").children("tr");var u=[];if(typeof y==="string"){x.each(function(){var B=g(this).data("index");g(this).children("td").each(function(){if(g(this).text().indexOf(y)!==-1){u.push(B);return false}})})}else{for(var w=0;w<y.length;w++){u.push(this.getIndexById(y[w]))}}x.addClass("ew-tree-table-filter-hide");for(var v=0;v<u.length;v++){var z=x.filter('[data-index="'+u[v]+'"]');z.removeClass("ew-tree-table-filter-hide");var t=parseInt(z.data("indent"));z.nextAll("tr").each(function(){if(parseInt(g(this).data("indent"))<=t){return false}g(this).removeClass("ew-tree-table-filter-hide")});if(z.hasClass("ew-tree-table-open")){i(z)}z.prevAll("tr").each(function(){var B=parseInt(g(this).data("indent"));if(B<t){g(this).removeClass("ew-tree-table-filter-hide");if(!g(this).hasClass("ew-tree-table-open")){i(g(this))}t=B}})}A.$loading.hide();A.$loading.removeClass("ew-loading-float");if(u.length===0){A.$empty.show()}f(A.$view)};p.prototype.clearFilter=function(){var t=this.getComponents();t.$table.children("tbody").children("tr").removeClass("ew-tree-table-filter-hide");if(this.options.data.length>0){t.$empty.hide()}f(t.$view)};p.prototype.refresh=function(x,v){if(l(x)==="Array"){v=x;x=undefined}var u=this.getComponents();var w,t;if(x!==undefined){t=u.$table.children("tbody").children('tr[data-index="'+this.getIndexById(x)+'"]');w=this.getDataByTr(t)}if(v){if(this.data.length>0){u.$loading.addClass("ew-loading-float")}u.$loading.show();if(v.length>0&&this.options.tree.isPidData){this.renderBodyData(a.pidToChildren(v,this.options.tree.idName,this.options.tree.pidName,this.options.tree.childName),w,t)}else{this.renderBodyData(v,w,t)}}else{this.renderBodyAsync(w,t)}};p.prototype.del=function(x,u){if(u===undefined){u=this.getIndexById(x)}var t=(typeof u==="number"?[u]:u.split("-"));var w=this.options.data;if(t.length>1){for(var v=0;v<t.length-1;v++){w=w[parseInt(t[v])][this.options.tree.childName]}}w.splice(t[t.length-1],1)};p.prototype.update=function(u,t){g.extend(true,this.getDataByTr(this.getIndexById(u)),t)};function i(v){var t=parseInt(v.data("indent"));var u=v.hasClass("ew-tree-table-open");if(u){v.removeClass("ew-tree-table-open");v.nextAll("tr").each(function(){if(parseInt(g(this).data("indent"))<=t){return false}g(this).addClass("ew-tree-tb-hide")})}else{v.addClass("ew-tree-table-open");var w;v.nextAll("tr").each(function(){var x=parseInt(g(this).data("indent"));if(x<=t){return false}if(w!==undefined&&x>w){return true}g(this).removeClass("ew-tree-tb-hide");if(!g(this).hasClass("ew-tree-table-open")){w=parseInt(g(this).data("indent"))}else{w=undefined}})}f(v.parentsUntil(".ew-tree-table").last().parent());return u}function f(w){var t=w.children(".ew-tree-table-head");var u=w.children(".ew-tree-table-box");var v=u.width()-u.prop("clientWidth");t.css("border-right",(v>0?v:0)+"px solid #f2f2f2")}g(window).resize(function(){g(".ew-tree-table").each(function(){f(g(this));var u=g(this).children(".ew-tree-table-box");var t=u.data("full");if(t&&o.ie&&o.ie<10){u.css("height",m()-t)}})});g(document).on("mouseenter",".ew-tree-table-cell.single-line",function(){var t=g(this).children(".ew-tree-table-cell-content");if(t.prop("scrollWidth")>t.outerWidth()){g(this).children(".layui-table-grid-down").show()}}).on("mouseleave",".ew-tree-table-cell.single-line",function(){g(this).children(".layui-table-grid-down").hide()});g(document).on("click",".ew-tree-table-cell>.layui-table-grid-down",function(w){w.stopPropagation();j();var u=g(this).parent();u.addClass("ew-tree-tips-open");u.children(".layui-table-grid-down").hide();var t=u.parent().outerWidth()+4;if(u.outerWidth()<t){u.children(".ew-tree-table-cell-content").css({"width":t,"max-width":t})}var v=u.parents().filter(".ew-tree-table-box");if(v.length===0){v=u.parents().filter(".ew-tree-table-head")}if(v.length===0){return}if((u.outerWidth()+u.offset().left)+20>v.offset().left+v.outerWidth()){u.addClass("ew-show-left")}if((u.outerHeight()+u.offset().top+10)>v.offset().top+v.outerHeight()){u.addClass("ew-show-bottom")}});g(document).on("click",".ew-tree-table-cell>.ew-tree-tips-c",function(){j()});g(document).on("click",function(){j();g(".ew-tree-table .layui-table-tool-panel").remove()});g(document).on("click",".ew-tree-table-cell.ew-tree-tips-open",function(t){t.stopPropagation()});function j(){g(".ew-tree-table-cell").removeClass("ew-tree-tips-open ew-show-left ew-show-bottom");g(".ew-tree-table-cell>.ew-tree-table-cell-content").css({"width":"","max-width":""})}g(document).on("mousedown",".ew-tb-resize",function(x){layui.stope(x);var v=g(this);v.attr("move","true");var u=v.parent().data("key");v.data("x",x.clientX);var t=v.parent().parent().parent().parent().children("colgroup").children('col[data-key="'+u+'"]').attr("width");if(!t||t.toString().indexOf("%")!==-1){t=v.parent().outerWidth()}v.data("width",t);g("body").addClass("ew-tree-table-resizing")}).on("mousemove",function(B){var y=g('.ew-tree-table .ew-tb-resize[move="true"]');if(y.length===0){return}layui.stope(B);var t=y.data("x");var v=y.data("width");var u=parseFloat(v)+B.clientX-parseFloat(t);if(u<=0){u=1}var z=k[y.parentsUntil(".ew-tree-table").last().parent().attr("lay-filter")];var A=y.parent().data("key");var C=A.split("-");z.options.cols[C[0]][C[1]].width=u;z.eachCols(function(w,x){if(x.key===A){x.width=u}});z.resize()}).on("mouseup",function(t){g('.ew-tree-table .ew-tb-resize[move="true"]').attr("move","false");g("body").removeClass("ew-tree-table-resizing")}).on("mouseleave",function(t){g('.ew-tree-table .ew-tb-resize[move="true"]').attr("move","false");g("body").removeClass("ew-tree-table-resizing")});function q(x,u,z){var y=[];for(var w=0;w<x.length;w++){var t=false;for(var v=0;v<x.length;v++){if(x[w][z]==x[v][u]){t=true;break}}if(!t){y.push(x[w][z])}}return y}function n(u,v){if(l(v)==="Array"){for(var t=0;t<v.length;t++){if(u==v[t]){return true}}}return u==v}function l(t){if(t===null){return"Null"}if(t===undefined){return"Undefined"}return Object.prototype.toString.call(t).slice(8,-1)}function m(){return document.documentElement.clientHeight||document.body.clientHeight}var a={render:function(t){return new p(t)},reload:function(u,t){k[u].reload(t)},on:function(t,u){return layui.onevent.call(this,h,t,u)},pidToChildren:function(z,u,A,t,x){if(!t){t="children"}var y=[];for(var w=0;w<z.length;w++){if(z[w][u]==z[w][A]){return console.error("绗�"+w+"鏉℃暟鎹殑"+u+"涓�"+A+"鐩稿悓",z[w])}if(x===undefined){x=q(z,u,A)}if(n(z[w][A],x)){var v=this.pidToChildren(z,u,A,t,z[w][u]);if(v.length>0){z[w][t]=v}y.push(z[w])}}return y}};g("head").append(['<style id="ew-tree-table-css">',"/** 鏈�澶栧眰瀹瑰櫒 */",".ew-tree-table {"," margin: 10px 0;"," position: relative;"," border: 1px solid #e6e6e6;"," border-bottom: none;"," border-right: none;","}",".ew-tree-table:before, .ew-tree-table:after, .ew-tree-table .ew-tree-table-head:after {",' content: "";'," background-color: #e6e6e6;"," position: absolute;"," right: 0;"," bottom: 0;","}",".ew-tree-table:before {"," width: 1px;"," top: 0;"," z-index: 1;","}",".ew-tree-table:after, .ew-tree-table .ew-tree-table-head:after {"," height: 1px;"," left: 0;","}",".ew-tree-table .layui-table {"," margin: 0;"," position: relative;"," table-layout: fixed;","}","/** 琛ㄦ牸 */",".ew-tree-table .layui-table td, .ew-tree-table .layui-table th {"," border-top: none;"," border-left: none;"," padding: 0 !important;","}",".ew-tree-table .ew-tree-table-box {"," overflow: auto;"," position: relative;","}",".ew-tree-table .ew-tree-table-head {"," overflow: hidden;"," box-sizing: border-box;"," background-color: #f2f2f2;"," position: relative;","}","/** loading */",".ew-tree-table div.ew-tree-table-loading {"," padding: 10px 0;"," text-align: center;","}",".ew-tree-table div.ew-tree-table-loading > i {"," color: #999;"," font-size: 30px;","}",".ew-tree-table div.ew-tree-table-loading.ew-loading-float {"," position: absolute;"," top: 0;"," left: 0;"," right: 0;","}","/** 绌烘暟鎹� */",".ew-tree-table .ew-tree-table-empty {"," color: #666;"," font-size: 14px;"," padding: 18px 0;"," text-align: center;"," display: none;","}","/** 鍗曞厓鏍� */",".ew-tree-table-cell.ew-tree-tips-open {"," position: absolute;"," top: 0;"," left: 0;"," padding: 0;"," z-index: 9999;"," background-color: #fff;"," box-shadow: 3px 3px 8px rgba(0, 0, 0, .15);","}","thead .ew-tree-table-cell.ew-tree-tips-open {"," background-color: #f2f2f2;","}",".ew-tree-table-cell.ew-tree-tips-open.ew-show-left {"," right: 0;"," left: auto;"," box-shadow: -3px 3px 8px rgba(0, 0, 0, .15);","}",".ew-tree-table-cell.ew-tree-tips-open.ew-show-bottom {"," bottom: 0;"," top: auto;"," box-shadow: 3px -3px 8px rgba(0, 0, 0, .15);","}",".ew-tree-table-cell.ew-tree-tips-open.ew-show-left.ew-show-bottom {"," box-shadow: -3px -3px 8px rgba(0, 0, 0, .15);","}",".ew-tree-table-cell > .ew-tree-tips-c {"," position: absolute;"," right: -6px;"," top: -3px;"," width: 22px;"," height: 22px;"," line-height: 22px;"," font-size: 16px;"," color: #fff;"," background-color: #666;"," border-radius: 50%;"," text-align: center;"," cursor: pointer;"," display: none;","}","table tr:first-child .ew-tree-table-cell > .ew-tree-tips-c {"," top: 0;","}",".ew-tree-table-cell.ew-tree-tips-open > .ew-tree-tips-c {"," display: block;","}",".ew-tree-table-cell.ew-tree-tips-open.ew-show-left > .ew-tree-tips-c {"," left: -6px;"," right: auto;","}",".ew-tree-table-cell > .ew-tree-table-cell-content {"," padding: 5px 15px;"," line-height: 28px;","}",'[lay-size="lg"] .ew-tree-table-cell > .ew-tree-table-cell-content {'," line-height: 40px;","}",'[lay-size="sm"] .ew-tree-table-cell > .ew-tree-table-cell-content {'," padding: 1px 15px;","}",".ew-tree-table-cell.single-line > .ew-tree-table-cell-content {"," overflow: hidden;"," white-space: nowrap;"," text-overflow: ellipsis;","}",".ew-tree-table-cell.ew-tree-tips-open > .ew-tree-table-cell-content {"," overflow: auto;"," padding: 9px 15px;"," height: auto;"," min-height: 100%;"," max-height: 110px;"," line-height: inherit;"," max-width: 260px;"," width: 200px;"," width: max-content;"," width: -moz-max-content;"," box-sizing: border-box;"," white-space: normal;","}",".ew-tree-table-cell > .layui-table-grid-down {"," box-sizing: border-box;","}","/** 鍥炬爣鍒� */",".ew-tree-table .ew-tree-pack {"," cursor: pointer;"," line-height: 16px;","}",".ew-tree-table .ew-tree-pack > .layui-icon, .ew-tree-table .ew-tree-pack > .ew-tree-icon {"," margin-right: 5px;","}",".ew-tree-table .ew-tree-pack > * {"," vertical-align: middle;","}","/* 缂╄繘 */",".ew-tree-table .ew-tree-table-indent {"," margin-right: 5px;"," padding-left: 16px;","}","/* 绠ご */",".ew-tree-table .ew-tree-table-arrow:before {",' content: "\\e623";',"}",".ew-tree-table .ew-tree-table-open .ew-tree-table-arrow:before {",' content: "\\e625";',"}",".ew-tree-table .ew-tree-table-arrow.arrow2 {"," font-size: 12px;"," font-weight: 600;"," line-height: 16px;"," height: 16px;"," width: 16px;"," display: inline-block;"," text-align: center;"," color: #888;","}",".ew-tree-table .ew-tree-table-arrow.arrow2:before {",' content: "\\e602";',"}",".ew-tree-table .ew-tree-table-open .ew-tree-table-arrow.arrow2:before {",' content: "\\e61a";',"}",".ew-tree-table-arrow.ew-tree-table-arrow-hide {"," visibility: hidden;","}","/* 绠ご鍙樺姞杞戒腑鐘舵�� */",".ew-tree-table tr.ew-tree-table-loading > td .ew-tree-table-arrow:before {",' content: "\\e63d" !important;',"}",".ew-tree-table tr.ew-tree-table-loading > td .ew-tree-table-arrow {"," margin-right: 0;","}",".ew-tree-table tr.ew-tree-table-loading > td .ew-tree-table-arrow + * {"," margin-left: 5px;","}",".ew-tree-table tr.ew-tree-table-loading * {"," pointer-events: none !important;","}","/** 鎶樺彔琛� */",".ew-tree-table .ew-tree-tb-hide {"," display: none;","}","/** 鐗规畩鍒楄皟鏁� */",'.ew-tree-table td[data-type="numbers"] > .ew-tree-table-cell,','.ew-tree-table th[data-type="numbers"] > .ew-tree-table-cell,','.ew-tree-table td[data-type="checkbox"] > .ew-tree-table-cell,','.ew-tree-table th[data-type="checkbox"] > .ew-tree-table-cell,','.ew-tree-table td[data-type="radio"] > .ew-tree-table-cell,','.ew-tree-table th[data-type="radio"] > .ew-tree-table-cell,','.ew-tree-table td[data-type="space"] > .ew-tree-table-cell,','.ew-tree-table th[data-type="space"] > .ew-tree-table-cell {'," padding-left: 0;"," padding-right: 0;","}","/* 鍗曞厓鏍煎唴琛ㄥ崟鍏冪礌鏍峰紡璋冩暣 */",".ew-tree-table .layui-form-switch",".ew-tree-table .layui-form-radio {"," margin: 0;","}","/* checkbox鍒楄皟鏁� */",".ew-tree-table-checkbox + .layui-form-checkbox {"," padding: 0;","}",".ew-tree-table-checkbox + .layui-form-checkbox > .layui-icon {"," font-weight: 600;"," color: transparent;"," transition: background-color .1s linear;"," -webkit-transition: background-color .1s linear;","}",".ew-tree-table-checkbox + .layui-form-checkbox.layui-form-checked > .layui-icon {"," color: #fff;","}","/* checkbox鍗婇�夌姸鎬� */",".ew-form-indeterminate + .layui-form-checkbox .layui-icon:before {",' content: "";'," width: 10px;"," height: 2px;"," background-color: #f1f1f1;"," position: absolute;"," top: 50%;"," left: 50%;"," margin: -1px 0 0 -5px;","}","/* radio鍒楄皟鏁� */",".ew-tree-table-radio + .layui-form-radio {"," margin: 0;"," padding: 0;"," height: 20px;"," line-height: 20px;","}",".ew-tree-table-radio + .layui-form-radio > i {"," margin: 0;"," height: 20px;"," font-size: 20px;"," line-height: 20px;","}","/** 鍗曞厓鏍肩紪杈� */",".ew-tree-table .layui-table td[data-edit] {"," cursor: text;","}",".ew-tree-table .ew-tree-table-edit {"," position: absolute;"," left: 0;"," top: 0;"," width: 100%;"," height: 100%;"," border-radius: 0;"," box-shadow: 1px 1px 20px rgba(0, 0, 0, .15);","}",".ew-tree-table .ew-tree-table-edit:focus {"," border-color: #5FB878 !important;","}",".ew-tree-table .ew-tree-table-edit.layui-form-danger {"," border-color: #FF5722 !important;","}","/** 鎼滅储鏁版嵁闅愯棌琛� */",".ew-tree-table tr.ew-tree-table-filter-hide {"," display: none !important;","}","/** 澶撮儴宸ュ叿鏍� */",".ew-tree-table .ew-tree-table-tool {"," min-height: 50px;"," line-height: 30px;"," padding: 10px 15px;"," box-sizing: border-box;"," background-color: #f2f2f2;"," border-bottom: 1px solid #e6e6e6;","}",".ew-tree-table .ew-tree-table-tool .ew-tree-table-tool-right {"," float: right;","}",".ew-tree-table .ew-tree-table-tool .ew-tree-table-tool-item {"," position: relative;"," color: #333;"," width: 26px;"," height: 26px;"," line-height: 26px;"," text-align: center;"," margin-left: 10px;"," display: inline-block;"," border: 1px solid #ccc;"," box-sizing: border-box;"," vertical-align: middle;"," -webkit-transition: .3s all;"," transition: .3s all;"," cursor: pointer;","}",".ew-tree-table .ew-tree-table-tool .ew-tree-table-tool-item:first-child {"," margin-left: 0;","}",".ew-tree-table .ew-tree-table-tool .ew-tree-table-tool-item:hover {"," border-color: #999;","}",".ew-tree-table .ew-tree-table-tool-right .layui-table-tool-panel {"," left: auto;"," right: -1px;"," z-index: 9999;","}","/* 鍒楀鎷栨嫿璋冩暣 */",".ew-tree-table .ew-tb-resize {"," position: absolute;"," right: 0;"," top: 0;"," bottom: 0;"," width: 10px;"," cursor: col-resize;","}",".ew-tree-table-resizing {"," cursor: col-resize;"," -ms-user-select: none;"," -moz-user-select: none;"," -webkit-user-select: none;"," user-select: none;","}","/* 杈呭姪鏍峰紡 */",".ew-tree-table .layui-form-switch {"," margin: 0;","}",".ew-tree-table .pd-tb-0 {"," padding-top: 0 !important;"," padding-bottom: 0 !important;","}",".ew-tree-table .break-all {"," word-break: break-all !important;","}","/** 鎵╁睍鍥炬爣 */",".ew-tree-table .ew-tree-icon-folder:after, .ew-tree-table .ew-tree-icon-file:after {",' content: "";'," padding: 2px 10px;"," -webkit-background-size: cover;"," -moz-background-size: cover;"," -o-background-size: cover;"," background-size: cover;"," background-repeat: no-repeat;",' background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAE6UlEQVR4Xu2ZPYhcVRiGny9hC0FsTEBCGkFTWIQE/IlpgmKpWAiLyR0XLbYTxEKxkCAEhRCxEOwsjJnJioKIYClWKgqiskIIaCoLYyASVJT87JGspN37LrOXvec777Tzzrnvz7Nn2dnAr6YbiKbTOzwGoHEIDIABaLyBxuP7BjAAjTfQeHzfAAag8QYaj+8bwAA03kDj8X0DGIDGG2g8/lw3QFlhD9fZN7oOF7gYT3NudL5GaGjTAJQP2c1VXgIOExyGkf4/oXCe4I3oeH+EvY/G0qYAKFOWCV4Hdo8mQb+RL7jBE7HE3/3S9hQyAGXGCeDVSiv6lqscief4t1L/g9mWAChTHiD4ZrTXvVbPu9GxrEnbUWkAzPgeOJCglsXo+ChBji2L0AtAmfEgrP/0Z3hdZoF7Y5HLGcJsRQYFgLeAF7fiYSM540x0LI3Ey7bb6AdgytcEh7bd6VYa2MGhOJrmVpurmX4AZlwCds31lPF9+AI32O8/DYUvccqUKwR3jG/DuR29Gd36F1pNv/pvgKwAFK5RuC+e4eeWCWgXgJurFz6LCY8bgA0aSPwr4P/UhVNc43ir3xK2fQPcAr/wO/AewU/Ar6xRqroVdvAnC6zGIlc369sAbLax8er/ofAJOzkVR9e/uZVeBkCqqTrRyeh4RXFtAJSWatQUno0Jp/usG4C+hup9/yJ72BuPcH2jCAag3oEV50vRccYAKFXl1LwdHS8YgJzj9qcqfBoTnjQA/VVlVXwXHfcbgKzz9uf6IToOGoD+orIqDEDWZcVcBkAsKqvMAGRdVsxlAMSissoMQNZlxVwGQCwqq8wAZF1WzGUAxKKyygxA1mXFXAZALCqrzABkXVbMZQDEorLKDEDWZcVcBkAsKqvMAGRdVsxlAMSissoMQNZlxVwGQCwqq8wAZF1WzGUAxKKyygxA1mXFXAZALCqrzABkXVbMZQDEorLKDEDWZcVcBkAsKqvMAGRdVsxlAMSissoMQNZlxVwGQCwqq8wAZF1WzGUAxKKyygxA1mXFXAZALCqrzABkXVbMZQDEorLKDEDWZcVcBkAsKqvMAGRdVsxlAMSissoMQNZlxVwGQCwqq8wAZF1WzGUAxKKyygxA1mXFXAZALCqrzABkXVbMZQDEorLKDEDWZcVcBkAsKqvMAGRdVsxlAMSissoMQNZlxVwGQCwqq8wAZF1WzGUAxKKyygxA1mXFXAZALCqrzABkXVbMZQDEorLKDEDWZcVcBkAsKqvMAGRdVsxlAMSissoMQNZlxVwGQCwqq8wAZF1WzLUFAMy4BOwSH2jZmBoorMaE/RtZij6/ZcoFgrv7dH5/lA38Eh33zAfAjM+BR0cZz6Y2bqDwY0w4MB8AU04SvOyuq2zg4+h4aj4AzvIwha+qjN+66cLzMeGduQC4+eEy4zywr/U+K8t/hQX2xiJ/zQ/ACgdZ40vgtspKaNducCyOsdJXQO9fAbcOKGc5whofENzVd6jf3/YGTkTHccWFDMD6r4LT3MlOloHHCB4CblceYs3gDfxB4TeCcxReiwmr6hM3BYB6qHX1NGAA6tlqEKcGYJBa6znUANSz1SBODcAgtdZzqAGoZ6tBnBqAQWqt51ADUM9Wgzg1AIPUWs+hBqCerQZxagAGqbWeQw1APVsN4tQADFJrPYcagHq2GsTpf+KxwJB5Cd5mAAAAAElFTkSuQmCC");',"}",".ew-tree-table tr.ew-tree-table-open > td .ew-tree-icon-folder:after {",' background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAKwElEQVR4Xu2df9AVVRnHP899gUxmYKhsCpJREEeMakSoiGGCbIxSizIJ7i5OksZkMIxQjlOQyOCQ5o/8RWmkMdz7wjDC5I+hcFSKxEENh4YsEwPJAbVQ8AeQL733NPcKyn3v7r17d8/uvfvus//ec57n+3yf7z179uw5zwp6ZZoByXT0GjwqgIyLQAWgAsg4AxkPX0cAFUDGGch4+DoCqAAyzkDGw9cRQAWQcQYyHr6OACqA5hkw63kfr3IyOQZTIte8BUs9OnibEi/isEcEY8lqpswEHgHMGgbSxTyEyRjGIC1MfM8UGQ4CfyLHWp7jbllEKVNZjBBsIAGYAi7CrcCgCL6S6voM4IrDtqQcptlPQwGYAksRrkpVkIZD5JgmeR5IFe4WgK0rAFPkamBRC3BFd2k4AkwSl83RjfVeC74CMCuZSI6NqQ7d8G9KDJOLK3MEvTwY8BdAga0Io3sBa0vEYWEviCOWEDwFYDoZh+HxWDwmb/R18gzSx0Rv4r0FUORa4EfJ5yomj8IEyfNYTNZTbdZbAAU2IJyb6siOB2+4Qlx+3mvisRiInwC2I4yy6Ke1pgw/E5crWwuiPb373QL+BZzcnpBDobpLHGaF6tnLO6kAenmCG4WXFQH8WhwubURGFn/PhgAMD4nLl7KY4EYxZ0MAcBhhqOTZ14iQrP2eFQGU8/ogeb6qC0LVEs+SAMqRL+ctLpdZlRdFeoH32UBTpLc9Br6XbMMuhLUIm+jmzbZSQUdlV9M++rBTpnI4CWxZGwGS4NSWj2eBh4CbxGG3LaM97agA4mLWnt23gZ+yg8VxbHVTAdhLVNyWHqabKbb3NqgA4k6bTfuG+3GYYvNJRgVgM0FJ2DL8QFxutOVKBWCLyaTsGN6gH0NlKq/bcKkCsMFi0jYMs8XlDhtuVQA2WEzahuH34vJlG25VADZYTN7GPnE4yYZbFYANFlth4y362VjSVgG0Ink2fAon2Xi7qQKwkYxW2OglAtiP4QlgN8LLreAxtT4HcL1cwKGo+FsxAnQDv6HEbTKDv0QNQPtHYyBpAZSPm7mSp/ymS682YCA5ARiWMYS5Mon/tUHcCuEoA0kJ4AZx+KGy3n4MJCGA9eJwXqPQzSJyjGAMJU5s1FZ/r8NAH7roYIdM5T9BeIpXAIaXOMKZcgkH/MCYIp8GvgN8A/hQENDaJhADrwG/oy9X1BNDvAIQZkqee+okfwGGa9qq4FQgblPVaC85xsp09nqhjlMAO9nBCK9tTGYjfdhLJ3BRqqhMK1jDdoYw2msCHqcAypsZ53txZoqVo9pz08pnKnEbLhKXe3tij1MAk8VhQ0+HZjWj6GZ7KklMM2jD3eJW5lpVV5wC+IA47K8RQJEVwMVp5jKV2H3OR8YjAMPL4vLRmuSvoYMjvAoMTCWJ6Qa9Vhy+mdQIsEEcJtcIYCWjybE13TymFL2wVPK1dZ/iGgE8S7KYTi7F8KuUUphu2AlPAsu1eose9/9lwPfSzWRq0Q8Xh53J3AI6+IRM4681AiiwBeEzqaUwrcANh8Slvxf8OG4BXezg/T0XgCpr/afxX4S+aeUxtbgNfxCXSUkJYJs4nKXP/20ll5vFYV4yAjCsEJdve9z/y8/+5TUAvZJmwDBDXArJCADmicPNHgLQ5d+kE3/Mn+Hj4vK3ZARg+KK4POIxAdyEMKFVHGTWb/m7Cc9zgl9tgTgmgd5LwAUOIrrZI3EhGraIyzg/v7YFsFcchnhMAE+nm38kHrw6BMMycfl+MgLwObRoikwDVmk+WsCAcJnkWZ6MAOA6cWo/MGUKXI/optAWpB9KnC0zeDoZAQh5ydf+002BhxHOaQkBWXZqKHGQE+odIrU7BxBGSZ7yd/uqLlOsbArVV8DJi9FzUe54GDYF4L0EvIpTKLEr+djVIz67gOIRgOFpcTnb499f3u69VtPREgbmiMPt9TzbHAHuEYeZHgtASxB+3JLws+40x3iZXv/rb/YE4PNhJlNgPWKnnk3W89l0/APo3+gIuT0BwBfEqf3SqCnwCsKHmwavHaIy8Kw4jGxkxKYAapaAzSoGU2JPIxD6ewwMGDrFxWlk2Y4ADHvE5WMe9//zEf2Cd6MkxPJ7wIqidgQAnieATYGfIFwTS4BqtD4DwjmS59FGNNkRgM+WY1Pkt8DXGoHQ32NgoItB9U5lH/NoRwAwXRxWe6wB9N4vj8SQM4smXxCHU4PYsyOADs6Uafz9eIdmDQM54l8XIAg4bROagXXicGGQ3jYE4L0EXOBcpPZwaBBQ2iYiA4YF4la+AN/wsiGAP4vDWI8ngKsQljZEoA3iYOA8cVgfxHB0Afi8cDBF1mgBiCApiKGN8BHJ80oQy9EFAHPF4VaPCeDzwPAgILSNRQYML4nL4KAWowtAmCh5/lg1AXyAE3mDg0FBaDurDASqynbMY3QBQO0S8Eomkqt9L2A1TDXmx8AScVgYlJ6oAnhRHIZ6TADnI9wQFIS2s8rAheKwLqjFqAJ4UBwu8BBAESEfFIS2s8hAjlNlOi8EtRhNAIZrxWWBxwSwvCh0RlAQ2s4SA4YD4jKoGWvRBCB8S/KVx713L6MTwGb4t932UXGa230dTQAlzpAZ1Sd+TIHxCI/ZjkztBWKg6aLcUQTgtwQ8B6ldFwgEXxtFY8DnXEY9o+EFYHhK3Eqh56rLFCu1gWvqA0SLTHsHYkAY2ezHOMILAJaLw2UeAih/BuaTgQBrI3sM1KkDFM8IADV7zs2d9KV/pQ5Qzl5kaikQA4bHxWV8oLbHNYoyAnxeHDZVPQEUGIvwZLMgtL0VBm4XhznNWgovAI8956aTWRh+2SwIbW+BgQbfZvDzEFYAu8XhFI/7/53Ady2EoyaaZ+AscdjWbLdwAjDcL27tZk9T5ClgTLMgtH1EBhrUAYpjEljzxkkLQUZMYrTuW8UJ98cLOwLUfH3CrORT5JofgqLFrb2PMuD5SB6EnXACgNPFYUfVE0Anl5TPowdxqm2sM3C5OPwijNXmBeCz4GCK3AbMDgNC+0RkwDBOXLaEseIngOeAEZ4GDU+Iy2drngAKbEb4XBgQ2icCAwHqADU/CSzwJFK71fuoobvEYVbV8P9OJfA3tRBkhESG7/qMOIwK2917BCiwDuHrPiPAbHG5o0oAqxlJt3ct2rDAtF9ABnyKcwfsjd8tYDH4bCwUJki++n2/KVbOoXtWow4KRNuFZsDzXGZQa34jgP+xLq8l4CI3gnc9+qBAtF0IBgwH6MdgmcrhEL0rXbwFUP68WxevIQyoMmzYJS7DPCaAGxEmhgWh/UIyIMyXPDeF7O0vgPIvpsB1CFf2MH6fOEzxEIBWAo+ShXB915PnfBFMuO7v9PIcASoCWMEH6VNZ7Hlvl6lhsbhc3WMCOJxuysfA9EqKAUO5+P7MeiVgg0LxFUBFBEW+AtwH9DlqsObQgSlWvgBetTM4qHNt1zQD+zEs7PkU1rSV4zrUFcDRW0G50NMtwDBKjJAZ1f92U2ApUlshPAoo7fsuA12YCt+bgXvpxyMylW6b/DQUwDFnZiWn4fLPqPccm+DVVnQGAgsguiu10I4MqADaMSsJYlIBJEh2O7pSAbRjVhLEpAJIkOx2dKUCaMesJIhJBZAg2e3oSgXQjllJEJMKIEGy29GVCqAds5IgJhVAgmS3oysVQDtmJUFM/wdaDlOuM5Eu/AAAAABJRU5ErkJggg==");',"}",".ew-tree-table .ew-tree-icon-file:after {",' background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAJNUlEQVR4Xu2dXYxdVRXHf2tghhYaoba1Qk1owIwmfVBaTKRgQqMPlGjig2nDnDsF0whSnwqJ4SNoU2OLUSNPVDSx2t47hEkxaQMBI1hB/EiE6osYqjGUYPGjCihN6Uy525wzt7UdZu7ZZ87a5949Z52XeVl77bX//9/d52vvM4IdtVZAaj16GzwGQM0hMAAMgJorUPPh2wxgANRcgZoP32YAA6DmCtR8+DYDGADVKuB2s4BB1gMbEYZxLEFYDlxQbSU97+0Ejn8hHMPxR4R9LOZxuZGTVVZW2QzgxlnGBNuBUYSLqhxkNH05jgN7GeIrsoF/VlF3cADcQc7nKHfiuM+M97Q0BUH4GpfxbVnHKc9WcwoLCoBrsRjHYwhr51Rd3Rs5foXwaUl4PZQUwQBwLa4AngZWhiq+JnlfBj4pCX8JMd4gALgxluJ4Hrg8RNE1zHkE4WoZ4Zj22NUBcOMsZILnEFZrF1vrfI5DDHGdbOCEpg76ADTZiXCXZpGWq6OAsFNGuEdTD1UA3B7exwDpdLUgt0jHqwjjwH6EF0NMb7k19DAgO03CKtp8pvNM5AO55TjeZoCVMsLfc2M9A3QBaPEQcGtO328hbOYw+2Qbbc8653WY28YAw3yONrsRLswZ7Pck4TYtQdQAcOMMMckbwMIuxaVPua6VhBe0BjCf8rgWa4Bf5jwVPcEgl8gGJjTGrgfAGDfgeCKnqC2SsEuj8Pmaw7W4HXiw6/iE9TLCkxoa6AHQyopOi5/5cLzCCq4M/WRLQ5Re5ug8Of1z11tox3el0UXrAgPQA6DJQYTru/R9ryTsKFBbbUNdK7vS/3qXH9PPpcE6DYH0AGjxEjA8a1Ft1sgohzSKnu853MNcRburVocl4UMaOugB0MxeYMx+BTt14fKmRtHzPYcb5+LOBfVsp9Pj0mCRhg56ALRw3QqSxPYgFDHMVaSnAVDElQpjDYAKxe7HrgyAfnSlwpoMgArF7seuDIB+dKXCmgyACsXux64MgH50pcKaDIAKxe7HrgyAfnSlwpoMgBnEduO8n0m+j+MahCUV+pHf1dQun18zyBdkA3/Lb9A9wgCYpk9nj8EfEC4tK27Q9o7XGOIjZXf2GADTAWjyQ4Sbg5qnl3yvJGwqk84AePcMkO6VSxdSxnAck4RlZQo1AN4NwF+By8qIWmHbo5Kwokx/BkDcp4A9kpQ7XRkA0wGY2nPw+yguAoVVZTd0GgAz3Qbu5VIGsr0H1wLvLTPFBmj772xJd5vbZJTXyuY3AMoqGHl7AyByA8uWbwCUVTDy9gZA5AaWLd8AKKtg5O0NgMgNLFu+AVBWwcjbGwCRG1i2fAOgrIKRtzcAIjewbPkGQFkFI29vAERuYNnyDYCZXgbZmsAzqmjtto5md7CtCTz3F1E/AGxN4DkE1A+AVvb9fFsT2MGgjgDYmsCz5oD6ARDXKcDWBE6/iC9LbOc7xLYmsK6ngHTcztYE1vc2sOyDldja24Og2BxTrtcAUBY0tnQGQGyOKddrACgLGls6AyA2x5TrNQCUBY0tnQEQm2PK9RoAyoLGls4AiM0x5XoNAGVBY0tnAMTmmHK9BsAMgqp+J1D5u37K/mMATFM02JpApe/6GQCB/8eNC7sgpPR3/QyA0ACEXRNY+rt+BkB4AEKuCSz9XT8DIDQAYU8BpdfwGQChAQj1ncD0IlDhu34GQGAAUoGV1wSqftfPAKgAAG2RQ+Rzu1nAIOuBjQjDOJYgLAcu0Oyv7Crr07VEszdQU7wQudw4y5hgOzCKcFGIPs7OaQCEVtgzvzvI+RzlThz3VWF8p6wJSXRmFJsBPI2eKazzdPIxhLUl0syl6RFJWDmXhtPbGABzVNG1uAJ4GnSMKFSG4zfS4JpCbWYJNgDmoKIbYymO54HL59C8fBPHj6TBLeUTgQFQUEU3zkImeA5hdcGmeuHCRhlhXCOhAVBQRddkJ8JdBZtphr/DIEtkA29qJDUACqjY2aF8BGFBbjPHq0j2K92P8KKMcKxbGzfGKhy/ABbn5N4vCZ/N7d8zwADwFCoNc63sv5XcmtPkLYTNHGafbKPtk76A+dDmwzLKSz55fWIMAB+VUvPHGWKSN4CFXZqcTP+djSS84JmWQuY7xqRB4pvbJ84A8FEpBWCMG3A8kRO+RRJ2eaZMZ5SPAj/zmPbTlEd5h6tkE//wze8TZwD4qDQ1/T8I3D5ruOMVVnClrOOUT8rMfMczCO/JjXdM4vi4jHIoN7ZggAHgKZhrchDh+i7h90rCDp90hcwHB9wiCXt8cheNMQA8FXOt7MJreNbwNmt8fqEFzU/t3ywNfuBZZuEwA8BTMtfkOMKFs4YPcknevblr8jHgKa9pf6qjQtcUnkM5J8wA8FSt7Dr9zHzJLvgWeXYZ3Py0DgPA040yABQ237FVGjzgWVqpME0A/tuVbsfF0uA/partYeO5AtDP5uvOAE3+hPDBWT0aYLXcxO966GGprucCQL+brw3AswifmFVlxz3SYGcpF3rYuCgA7mHW0uYn3ud8x93S4P6qh6h3CmiyC+GLXQAo9KCkaiHy+isCQMf8p3IeG/+/yx6ZrzsDtLgReLyrkI4vSSN7ohbd4QvAHMzfLg2+2itB9GaA9GXJBK93vVeGk7RZ6/PApFeCzNavDwCuxaeAAwV++fdLg7t7OVY1ANJBeL8udXyehEdFssecURx5AAB3AN8EzvMakOMBabDVKzZgkC4AYyynzcveCybgEYQDPgsmAmrgldoDAK88WVCfmK96DXB69K7JNxC+7K9GzSL7yPwwAKSLJid5Fri6Ztb6DHeXJGzxCawqRvUUcGYWmFo2/duerJmvSrni/fSd+UFmgDMQTG2c+Clkf+t+fEeS7CKx744gM8BZEKQrXNPbouv6buTVFHQSx83S4JFquiveS1AAsgvehxhkEXdUvHmyuBL6LZ5hgK39/v4jOABnZoN0+/QkO3DcVOEuWn1bu2V0vA38mPP4Vr8bf3oYlQFwFgjpXcJ6HBshe3u4NMQHFII7ny7UlOy/maYbPtI3oY9yigOyiePB+1bsoHIAFGu3VAoKGAAKIsacwgCI2T2F2g0ABRFjTmEAxOyeQu0GgIKIMacwAGJ2T6F2A0BBxJhTGAAxu6dQuwGgIGLMKf4HAR/hrhUhGSQAAAAASUVORK5CYII=");',"}","</style>"].join(""));s("treeTable",a)});
\ No newline at end of file
diff --git a/src/main/webapp/static/layui/lay/modules/xmSelect.js b/src/main/webapp/static/layui/lay/modules/xmSelect.js
new file mode 100644
index 0000000..9244d07
--- /dev/null
+++ b/src/main/webapp/static/layui/lay/modules/xmSelect.js
@@ -0,0 +1,8 @@
+/*!
+ * @Title: xm-select
+ * @Version: 1.2.2
+ * @Description锛氬熀浜巐ayui鐨勫閫夎В鍐虫柟妗�
+ * @Site: https://gitee.com/maplemei/xm-select
+ * @Author: maplemei
+ * @License锛欰pache License 2.0
+ */!function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(o,r,function(t){return e[t]}.bind(null,r));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="./",n(n.s=213)}({105:function(e,t){e.exports=function(e){var t="undefined"!=typeof window&&window.location;if(!t)throw new Error("fixUrls requires window.location");if(!e||"string"!=typeof e)return e;var n=t.protocol+"//"+t.host,o=n+t.pathname.replace(/\/[^\/]*$/,"/");return e.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi,(function(e,t){var r,i=t.trim().replace(/^"(.*)"$/,(function(e,t){return t})).replace(/^'(.*)'$/,(function(e,t){return t}));return/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/|\s*$)/i.test(i)?e:(r=0===i.indexOf("//")?i:0===i.indexOf("/")?n+i:o+i.replace(/^\.\//,""),"url("+JSON.stringify(r)+")")}))}},213:function(e,t,n){"use strict";n.r(t),function(e){n(215),n(216),n(218);var t=n(41);window.addEventListener("click",(function(){Object.keys(t.b).forEach((function(e){var n=t.b[e];n&&n.closed&&n.closed()}))})),window.addEventListener("scroll",(function(){Object.keys(t.b).forEach((function(e){var n=t.b[e];n&&n.calcPosition&&n.calcPosition()}))})),"object"===("undefined"==typeof exports?"undefined":_typeof(exports))?e.exports=t.c:"function"==typeof define&&n(220)?define(xmSelect):window.layui&&layui.define&&layui.define((function(e){e("xmSelect",t.c)})),window.xmSelect=t.c}.call(this,n(214)(e))},214:function(e,t){e.exports=function(e){if(!e.webpackPolyfill){var t=Object.create(e);t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),Object.defineProperty(t,"exports",{enumerable:!0}),t.webpackPolyfill=1}return t}},215:function(e,t){Array.prototype.map||(Array.prototype.map=function(e,t){var n,o,r,i=Object(this),a=i.length>>>0;for(t&&(n=t),o=new Array(a),r=0;r<a;){var l,s;r in i&&(l=i[r],s=e.call(n,l,r,i),o[r]=s),r++}return o}),Array.prototype.forEach||(Array.prototype.forEach=function(e,t){var n,o;if(null==this)throw new TypeError("this is null or not defined");var r=Object(this),i=r.length>>>0;if("function"!=typeof e)throw new TypeError(e+" is not a function");for(arguments.length>1&&(n=t),o=0;o<i;){var a;o in r&&(a=r[o],e.call(n,a,o,r)),o++}}),Array.prototype.filter||(Array.prototype.filter=function(e){if(null==this)throw new TypeError;var t=Object(this),n=t.length>>>0;if("function"!=typeof e)throw new TypeError;for(var o=[],r=arguments[1],i=0;i<n;i++)if(i in t){var a=t[i];e.call(r,a,i,t)&&o.push(a)}return o}),Array.prototype.find||(Array.prototype.find=function(e){return e&&(this.filter(e)||[])[0]}),Array.prototype.findIndex||(Array.prototype.findIndex=function(e){for(var t,n=Object(this),o=n.length>>>0,r=arguments[1],i=0;i<o;i++)if(t=n[i],e.call(r,t,i,n))return i;return-1})},216:function(e,t,n){var o=n(217);"string"==typeof o&&(o=[[e.i,o,""]]);var r={hmr:!0,transform:void 0,insertInto:void 0};n(27)(o,r);o.locals&&(e.exports=o.locals)},217:function(e,t,n){(t=n(26)(!1)).push([e.i,"@-webkit-keyframes xm-upbit {\n from {\n -webkit-transform: translate3d(0, 30px, 0);\n opacity: 0.3;\n }\n to {\n -webkit-transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n}\n@keyframes xm-upbit {\n from {\n transform: translate3d(0, 30px, 0);\n opacity: 0.3;\n }\n to {\n transform: translate3d(0, 0, 0);\n opacity: 1;\n }\n}\n@-webkit-keyframes loader {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n@keyframes loader {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\nxm-select {\n background-color: #FFF;\n position: relative;\n border: 1px solid #E6E6E6;\n border-radius: 2px;\n display: block;\n width: 100%;\n cursor: pointer;\n outline: none;\n}\nxm-select * {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n font-size: 14px;\n font-weight: 400;\n text-overflow: ellipsis;\n user-select: none;\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n}\nxm-select:hover {\n border-color: #C0C4CC;\n}\nxm-select > .xm-tips {\n color: #999999;\n padding: 0 10px;\n position: absolute;\n display: flex;\n height: 100%;\n align-items: center;\n}\nxm-select > .xm-icon {\n display: inline-block;\n overflow: hidden;\n position: absolute;\n width: 0;\n height: 0;\n right: 10px;\n top: 50%;\n margin-top: -3px;\n cursor: pointer;\n border: 6px dashed transparent;\n border-top-color: #C2C2C2;\n border-top-style: solid;\n transition: all 0.3s;\n -webkit-transition: all 0.3s;\n}\nxm-select > .xm-icon-expand {\n margin-top: -9px;\n transform: rotate(180deg);\n}\nxm-select > .xm-label.single-row {\n position: absolute;\n top: 0;\n bottom: 0px;\n left: 0px;\n right: 30px;\n overflow: auto hidden;\n}\nxm-select > .xm-label.single-row .scroll {\n overflow-y: hidden;\n}\nxm-select > .xm-label.single-row .label-content {\n flex-wrap: nowrap;\n white-space: nowrap;\n}\nxm-select > .xm-label.auto-row .label-content {\n flex-wrap: wrap;\n padding-right: 30px !important;\n}\nxm-select > .xm-label.auto-row .xm-label-block > span {\n white-space: unset;\n height: 100%;\n}\nxm-select > .xm-label .scroll .label-content {\n display: flex;\n padding: 3px 10px;\n}\nxm-select > .xm-label .xm-label-block {\n display: flex;\n position: relative;\n padding: 0px 5px;\n margin: 2px 5px 2px 0;\n border-radius: 3px;\n align-items: baseline;\n color: #FFF;\n}\nxm-select > .xm-label .xm-label-block > span {\n display: flex;\n color: #FFF;\n white-space: nowrap;\n}\nxm-select > .xm-label .xm-label-block > i {\n color: #FFF;\n margin-left: 8px;\n font-size: 12px;\n cursor: pointer;\n display: flex;\n}\nxm-select > .xm-label .xm-label-block.disabled {\n background-color: #C2C2C2 !important;\n cursor: no-drop !important;\n}\nxm-select > .xm-label .xm-label-block.disabled > i {\n cursor: no-drop !important;\n}\nxm-select > .xm-body {\n position: absolute;\n left: 0;\n top: 42px;\n padding: 5px 0;\n z-index: 999;\n width: 100%;\n min-width: fit-content;\n border: 1px solid #E6E6E6;\n background-color: #fff;\n border-radius: 2px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.12);\n animation-name: xm-upbit;\n animation-duration: 0.3s;\n animation-fill-mode: both;\n}\nxm-select > .xm-body .scroll-body {\n overflow-x: hidden;\n overflow-y: auto;\n}\nxm-select > .xm-body .scroll-body::-webkit-scrollbar {\n width: 8px;\n}\nxm-select > .xm-body .scroll-body::-webkit-scrollbar-track {\n -webkit-border-radius: 2em;\n -moz-border-radius: 2em;\n -ms-border-radius: 2em;\n border-radius: 2em;\n background-color: #FFF;\n}\nxm-select > .xm-body .scroll-body::-webkit-scrollbar-thumb {\n -webkit-border-radius: 2em;\n -moz-border-radius: 2em;\n -ms-border-radius: 2em;\n border-radius: 2em;\n background-color: #C2C2C2;\n}\nxm-select > .xm-body.up {\n top: auto;\n bottom: 42px;\n}\nxm-select > .xm-body.relative {\n position: relative;\n display: block !important;\n top: 0;\n box-shadow: none;\n border: none;\n animation-name: none;\n animation-duration: 0;\n min-width: 100%;\n}\nxm-select > .xm-body .xm-group {\n cursor: default;\n}\nxm-select > .xm-body .xm-group-item {\n display: inline-block;\n cursor: pointer;\n padding: 0 10px;\n color: #999;\n font-size: 12px;\n}\nxm-select > .xm-body .xm-option {\n display: flex;\n align-items: center;\n position: relative;\n padding: 0 10px;\n cursor: pointer;\n}\nxm-select > .xm-body .xm-option-icon {\n color: transparent;\n display: flex;\n border: 1px solid #E6E6E6;\n border-radius: 3px;\n justify-content: center;\n align-items: center;\n}\nxm-select > .xm-body .xm-option-icon.xm-custom-icon {\n color: unset;\n border: unset;\n}\nxm-select > .xm-body .xm-option-icon-hidden {\n margin-right: -10px;\n}\nxm-select > .xm-body .xm-option-icon.xm-icon-danx {\n border-radius: 100%;\n}\nxm-select > .xm-body .xm-option-content {\n display: flex;\n position: relative;\n padding-left: 15px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n color: #666;\n width: calc(100% - 20px);\n}\nxm-select > .xm-body .xm-option.hide-icon .xm-option-content {\n padding-left: 0;\n}\nxm-select > .xm-body .xm-option.selected.hide-icon .xm-option-content {\n color: #FFF !important;\n}\nxm-select > .xm-body .xm-option .loader {\n width: 0.8em;\n height: 0.8em;\n margin-right: 6px;\n color: #C2C2C2;\n}\nxm-select > .xm-body .xm-select-empty {\n text-align: center;\n color: #999;\n}\nxm-select > .xm-body .disabled {\n cursor: no-drop;\n}\nxm-select > .xm-body .disabled:hover {\n background-color: #FFF;\n}\nxm-select > .xm-body .disabled .xm-option-icon {\n border-color: #C2C2C2 !important;\n}\nxm-select > .xm-body .disabled .xm-option-content {\n color: #C2C2C2 !important;\n}\nxm-select > .xm-body .disabled.selected > .xm-option-icon {\n color: #C2C2C2 !important;\n}\nxm-select > .xm-body .xm-search {\n background-color: #FFF !important;\n position: relative;\n padding: 0 10px;\n margin-bottom: 5px;\n cursor: pointer;\n}\nxm-select > .xm-body .xm-search > i {\n position: absolute;\n color: #666;\n}\nxm-select > .xm-body .xm-search-input {\n border: none;\n border-bottom: 1px solid #E6E6E6;\n padding-left: 27px;\n cursor: text;\n}\nxm-select > .xm-body .xm-paging {\n padding: 0 10px;\n display: flex;\n margin-top: 5px;\n}\nxm-select > .xm-body .xm-paging > span:first-child {\n border-radius: 2px 0 0 2px;\n}\nxm-select > .xm-body .xm-paging > span:last-child {\n border-radius: 0 2px 2px 0;\n}\nxm-select > .xm-body .xm-paging > span {\n display: flex;\n flex: auto;\n justify-content: center;\n vertical-align: middle;\n margin: 0 -1px 0 0;\n background-color: #fff;\n color: #333;\n font-size: 12px;\n border: 1px solid #e2e2e2;\n flex-wrap: nowrap;\n width: 100%;\n overflow: hidden;\n min-width: 50px;\n}\nxm-select > .xm-body .xm-toolbar {\n padding: 0 10px;\n display: flex;\n margin: -3px 0;\n cursor: default;\n}\nxm-select > .xm-body .xm-toolbar .toolbar-tag {\n cursor: pointer;\n display: flex;\n margin-right: 20px;\n color: #666;\n align-items: baseline;\n}\nxm-select > .xm-body .xm-toolbar .toolbar-tag:hover {\n opacity: 0.8;\n}\nxm-select > .xm-body .xm-toolbar .toolbar-tag:active {\n opacity: 1;\n}\nxm-select > .xm-body .xm-toolbar .toolbar-tag > i {\n margin-right: 2px;\n font-size: 14px;\n}\nxm-select > .xm-body .xm-toolbar .toolbar-tag:last-child {\n margin-right: 0;\n}\nxm-select > .xm-body .xm-body-custom {\n line-height: initial;\n cursor: default;\n}\nxm-select > .xm-body .xm-body-custom * {\n box-sizing: initial;\n}\nxm-select > .xm-body .xm-tree {\n position: relative;\n}\nxm-select > .xm-body .xm-tree-icon {\n display: inline-block;\n margin-right: 3px;\n cursor: pointer;\n border: 6px dashed transparent;\n border-left-color: #C2C2C2;\n border-left-style: solid;\n transition: all 0.3s;\n -webkit-transition: all 0.3s;\n z-index: 2;\n visibility: hidden;\n}\nxm-select > .xm-body .xm-tree-icon.expand {\n margin-top: 3px;\n margin-right: 5px;\n margin-left: -2px;\n transform: rotate(90deg);\n}\nxm-select > .xm-body .xm-tree-icon.xm-visible {\n visibility: visible;\n}\nxm-select > .xm-body .xm-tree .left-line {\n position: absolute;\n left: 13px;\n width: 0;\n z-index: 1;\n border-left: 1px dotted #c0c4cc !important;\n}\nxm-select > .xm-body .xm-tree .top-line {\n position: absolute;\n left: 13px;\n height: 0;\n z-index: 1;\n border-top: 1px dotted #c0c4cc !important;\n}\nxm-select > .xm-body .xm-tree .xm-tree-icon + .top-line {\n margin-left: 1px;\n}\nxm-select > .xm-body .scroll-body > .xm-tree > .xm-option > .top-line,\nxm-select > .xm-body .scroll-body > .xm-option > .top-line {\n width: 0 !important;\n}\nxm-select > .xm-body .xm-cascader-box {\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n padding: 5px 0;\n border: 1px solid #E6E6E6;\n background-color: #fff;\n border-radius: 2px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.12);\n margin: -1px;\n}\nxm-select > .xm-body .xm-cascader-box::before {\n content: ' ';\n position: absolute;\n width: 0;\n height: 0;\n border: 6px solid transparent;\n border-right-color: #E6E6E6;\n top: 10px;\n left: -12px;\n}\nxm-select > .xm-body .xm-cascader-box::after {\n content: ' ';\n position: absolute;\n width: 0;\n height: 0;\n border: 6px solid transparent;\n border-right-color: #fff;\n top: 10px;\n left: -11px;\n}\nxm-select > .xm-body .xm-cascader-scroll {\n height: 100%;\n overflow-x: hidden;\n overflow-y: auto;\n}\nxm-select > .xm-body.cascader {\n width: unset;\n min-width: unset;\n}\nxm-select > .xm-body.cascader .xm-option-content {\n padding-left: 8px;\n}\nxm-select > .xm-body.cascader .disabled .xm-right-arrow {\n color: #C2C2C2 !important;\n}\nxm-select .xm-input {\n cursor: pointer;\n border-radius: 2px;\n border-width: 1px;\n border-style: solid;\n border-color: #E6E6E6;\n display: block;\n width: 100%;\n box-sizing: border-box;\n background-color: #FFF;\n line-height: 1.3;\n padding-left: 10px;\n outline: 0;\n user-select: text;\n -ms-user-select: text;\n -moz-user-select: text;\n -webkit-user-select: text;\n}\nxm-select .dis {\n display: none;\n}\nxm-select .loading {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(255, 255, 255, 0.6);\n display: flex;\n align-items: center;\n justify-content: center;\n}\nxm-select .loader {\n border: 0.2em dotted currentcolor;\n border-radius: 50%;\n -webkit-animation: 1s loader linear infinite;\n animation: 1s loader linear infinite;\n display: inline-block;\n width: 1em;\n height: 1em;\n color: inherit;\n vertical-align: middle;\n pointer-events: none;\n}\nxm-select .xm-select-default {\n position: absolute;\n width: 100%;\n height: 100%;\n border: none;\n visibility: hidden;\n}\nxm-select .xm-select-disabled {\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n cursor: no-drop;\n z-index: 2;\n opacity: 0.3;\n background-color: #FFF;\n}\nxm-select .item--divided {\n border-top: 1px solid #ebeef5;\n width: calc(100% - 20px);\n cursor: initial;\n}\nxm-select .xm-right-arrow {\n position: absolute;\n color: #666;\n right: 5px;\n top: -1px;\n font-weight: 700;\n transform: scale(0.6, 1);\n}\nxm-select .xm-right-arrow::after {\n content: '>';\n}\nxm-select[size='large'] {\n min-height: 40px;\n line-height: 40px;\n}\nxm-select[size='large'] .xm-input {\n height: 40px;\n}\nxm-select[size='large'] .xm-label .scroll .label-content {\n line-height: 34px;\n}\nxm-select[size='large'] .xm-label .xm-label-block {\n height: 30px;\n line-height: 30px;\n}\nxm-select[size='large'] .xm-body .xm-option .xm-option-icon {\n height: 20px;\n width: 20px;\n font-size: 20px;\n}\nxm-select[size='large'] .xm-paging > span {\n height: 34px;\n line-height: 34px;\n}\nxm-select[size='large'] .xm-tree .left-line {\n height: 100%;\n bottom: 20px;\n}\nxm-select[size='large'] .xm-tree .left-line-group {\n height: calc(100% - 40px);\n}\nxm-select[size='large'] .xm-tree .xm-tree-icon.xm-hidden + .top-line {\n top: 19px;\n}\nxm-select[size='large'] .item--divided {\n margin: 10px;\n}\nxm-select {\n min-height: 36px;\n line-height: 36px;\n}\nxm-select .xm-input {\n height: 36px;\n}\nxm-select .xm-label .scroll .label-content {\n line-height: 30px;\n}\nxm-select .xm-label .xm-label-block {\n height: 26px;\n line-height: 26px;\n}\nxm-select .xm-body .xm-option .xm-option-icon {\n height: 18px;\n width: 18px;\n font-size: 18px;\n}\nxm-select .xm-paging > span {\n height: 30px;\n line-height: 30px;\n}\nxm-select .xm-tree .left-line {\n height: 100%;\n bottom: 18px;\n}\nxm-select .xm-tree .left-line-group {\n height: calc(100% - 36px);\n}\nxm-select .xm-tree .xm-tree-icon.xm-hidden + .top-line {\n top: 17px;\n}\nxm-select .item--divided {\n margin: 9px;\n}\nxm-select[size='small'] {\n min-height: 32px;\n line-height: 32px;\n}\nxm-select[size='small'] .xm-input {\n height: 32px;\n}\nxm-select[size='small'] .xm-label .scroll .label-content {\n line-height: 26px;\n}\nxm-select[size='small'] .xm-label .xm-label-block {\n height: 22px;\n line-height: 22px;\n}\nxm-select[size='small'] .xm-body .xm-option .xm-option-icon {\n height: 16px;\n width: 16px;\n font-size: 16px;\n}\nxm-select[size='small'] .xm-paging > span {\n height: 26px;\n line-height: 26px;\n}\nxm-select[size='small'] .xm-tree .left-line {\n height: 100%;\n bottom: 16px;\n}\nxm-select[size='small'] .xm-tree .left-line-group {\n height: calc(100% - 32px);\n}\nxm-select[size='small'] .xm-tree .xm-tree-icon.xm-hidden + .top-line {\n top: 15px;\n}\nxm-select[size='small'] .item--divided {\n margin: 8px;\n}\nxm-select[size='mini'] {\n min-height: 28px;\n line-height: 28px;\n}\nxm-select[size='mini'] .xm-input {\n height: 28px;\n}\nxm-select[size='mini'] .xm-label .scroll .label-content {\n line-height: 22px;\n}\nxm-select[size='mini'] .xm-label .xm-label-block {\n height: 18px;\n line-height: 18px;\n}\nxm-select[size='mini'] .xm-body .xm-option .xm-option-icon {\n height: 14px;\n width: 14px;\n font-size: 14px;\n}\nxm-select[size='mini'] .xm-paging > span {\n height: 22px;\n line-height: 22px;\n}\nxm-select[size='mini'] .xm-tree .left-line {\n height: 100%;\n bottom: 14px;\n}\nxm-select[size='mini'] .xm-tree .left-line-group {\n height: calc(100% - 28px);\n}\nxm-select[size='mini'] .xm-tree .xm-tree-icon.xm-hidden + .top-line {\n top: 13px;\n}\nxm-select[size='mini'] .item--divided {\n margin: 7px;\n}\n.layui-form-pane xm-select {\n margin: -1px -1px -1px 0;\n}\n",""]),e.exports=t},218:function(e,t,n){var o=n(219);"string"==typeof o&&(o=[[e.i,o,""]]);var r={hmr:!0,transform:void 0,insertInto:void 0};n(27)(o,r);o.locals&&(e.exports=o.locals)},219:function(e,t,n){(t=n(26)(!1)).push([e.i,'@font-face {\n font-family: "xm-iconfont";\n src: url(\'//at.alicdn.com/t/font_792691_ptvyboo0bno.eot?t=1574048839056\');\n /* IE9 */\n src: url(\'//at.alicdn.com/t/font_792691_ptvyboo0bno.eot?t=1574048839056#iefix\') format(\'embedded-opentype\'), /* IE6-IE8 */ url(\'data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAAksAAsAAAAAEYAAAAjeAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCEUgqTXI8lATYCJAM0CxwABCAFhG0HgTwbZQ4jEbaCkVIj+4sD3sS6BFAp9ka91ulVG4leTC/+h+3V+zyRYCTyREKkcZ+D5/u137lPdveLGJBMunoiNPOQPBMq0/FQtEKIkMRDZng69d+hOiQumAr7bJdBOEzMTU77s78mhbI58aCg7ebCs4LBTgCk+cD/4ZqWUHebipp7al3tyKOjwCV/hVyw9PdzaktxI7IMQs26/1N8gV4DI0bVut3UhCaflGGgwM3oTXg1IfRMbCsmrEnriJVeYM2eXHII4KdMMzL4OoACHgZBCTasITcReDUBE8kWPLMTCGoQaDV+eKpUPQI49r8vP6BTPIDCaiBSml3oOQX0voNPebv/u2P0AUfP1w0s5EADzYBZsNdByylo2eVq/NtRdgFpovQR5x2CIwmIZeik6/u0T/m/A7RJP00sCmmyksj/kwc+LC5BFBqDEMDDjwPiANDB9MpJTXwHmsO3YyBwWDA4OFwwJLRcRgAOBUYMDg0mHRwGTAYozsV0AgWYruDwwExDHfzwKWf4OurQ9jzQDtoF+wpistfBfluQ5bQiiJa4ZQoKhShLiMayBbyg05AIkYBoIBJEEApQy/FwYv4HchADIUBXl61dW6mpwIgyp7p8PrHddieSjhY9oqTxyPB/FGNYDklpfYh8VtaoqSgb0bKoGB17CuVUp9Ll2nS2UpNGMSw9hyirA7C6+QLyByIQS0sSSmxvArC5odZmYZMxZSiBR5OkQl0uiufxMH5eL8t3u0d4XKyuq6EMdcpNe2+oXA8p9yPa+4T1PM7+A54tc7tpl2vcAHAftnhZj2chy1CyaCRFsyMqQ5nkNnskEt2yxxZinPsOZjFm4+XWvKqLkfCGS1k4MNP82isxSMf7ZsGYvQVCNAeSSVtzWCxRdXGxyZlA2CvCEevuO7y9M2z2NWH8icydzq/qAJSp1lGvDWFp6Nw3xChJowPD+76nU+upQk6Kw9jI0Rgym9Ct8VlxMI3CSIaDCZja5tDYt0/EYra4tn0Kp3v8Rdezk8svcy1mKhoSvNcZz3LKlUe777Gmval0s7bzAc0k13LGk896V9DuvNn34N0ebKgItkQgOomuJtgQPChNI4cwa7CEWCvfk5QjJFlem6i3SfVShWi5LTFRG+JwdCNpSqbpRFwrtb1TbcRkJi/AbJJQOmfCdnswLNGVM7qqSRO1zO0Q0j5Vr3cYQ07HB0MX6KoIZhx+D9Djs2C5bXtVwvbgJHtSCIL7hjFJme4sZDdS5IlJdKUO1Qt8opn0trBafz3AX933kmCRgyMEWGZjMAkRKhwmIHJGR4ruwFCdWKYzrap2R/mvd2UKajzRAZu88pGAD90Y+02kTFCKrBSXwGGJ3wRcPCdIppTxSmHOfESRwIli0S5J/8AYDCxTGh4XZua4xvfvGx320rDK2qA8g5FlS7pWNLx71+BwgA/KZ5I0aeKmNeCNoNPl8qNHu8uHHzqaKc86fHi4vPuRI4ny+I/vjxw+clh4HXVCFvVnVFx07EHZwVhSRliTTMWSEi0h6YuS6DxCRmiin0B3L4ry6cvR0ijYexFdBL3wGQM0YOrUAZCBkLOBBtQ+xdk7omfgUv+u++admyUeXduyxLM+r/+49rPfhgEZor6GymToNYksNsZyC7ntwAH0928UpgMpxpF0ydNlsMMBw7QsxTCmu0Hf3F+/+vb99Yumhb+e9R0LBNm+4O+hu7lQ5bGjI9j5G88qQ5SLFyuEC7cwd25xoYo2j4eA4bhpM7TZhPtmc+uhVEVSMYXLWh0bfjI8dvUpvDUocPZmU4kwwOfc83wB5wPehrpD3waApbwW+fgRrZXcxw+mB/3woZT+8JFMYwRMIy2k/18qhqcKpjYeYSnIACaUoRDu0e3kQFh98R5fiI8oJqwwGZSJDSbehLzZs7zIeWTQ4UGOIs2c4j2/Q/tn7n7j9juO33On6WhURCT/wO6Y3QdmWFY0Ef6JUeGRggO7ZbtaZlh5RYKWXbLPBLc3l/5h4A0mu3ZXTZ+u6t6VHMAzZhxak50T+24NnRuaOmehRkXlqVR5lIpuwezUUDUdCuJysv8Z/0/8uNE1s7jIJIubFWnI/x7g4nAZx79yYpFoAOU3a9iwT1O/GxUxPY0ljVPv9EukI3qNrl/So2YfzasqHCroNjS0+w0tlPlsYfC6v/01ixquizJH1Kd/VK+OS3iS3rTJWmqsMPdU3B3oFyC9RSumWE/0gG36IjTysfH51IJ/5oOgNYu6p4yb5Fdufhr/Kjtu0oSyYP/WJQrz35aNFnMhtFcwb55NlNnH8Wdu1b+XZA9zqlZrhdPo/V3uBhiUlQ66h0LhbAmFYIncdFOpVMh6Fl7peqy5Z2ZdQBITO2x1Asj1dRFjIBMC3hbuUh8Ooc4W03EjAdo8UL/t0oUfyU8630bmMcw/vqDNAsC9BQD4OqCgH+ljy0UhJB8AAJA+8EmArxk5gnRLik90AElf8rBm+IMvBTWnucb3+0o0ARk+r0ZBv8sU01nnSmP45/H8Dp8C8X+iE9e+ZvXymK/sQJ5/DuqhYKebPnKmPqLYuDcIMWS2/Rjxp2s8Do821LVn6A/xMK1RKvBLK5gyDsZ5uQ6bYusmx2yqLFe4lECHDPcFhojmckuAbnCI6Cn308RI6AAJdtCICQLQyBHKhSgX5YowN6BBPIEB8VxuSfNncpAuutzPnCSiDHDEo+DsKQBPoJi4MpRktepIs2zjO5h84IEMM3ffECKSZU1ZHxfewEI4h494MuuUNNOBjuw18QKHAzEXaAcylS3m3baq9MpnKenYmfEUgCdbXTHEtTVKsvruNGv9/DuYfOAhcuKu9TeEiA9nNJTUDOUbbVkn3sv2eDJrEnVrpvcHOjJeqRsOcpYYLuxoBzKVtCOm3ZaKbtJcurw+e/zN6c7Pd6r4gqUo0WLEiiOueOITvwQkKCEJM9nO3F60y5HkqLhdqUyXZtK3lqwReQ+G40O92UhOt0x/KmKM+u7LTPMzoEBOCYtiUPfSjODiuFXjSDm2idzAoc4Tj9bs2eJYDOU7HQA=\') format(\'woff2\'), url(\'//at.alicdn.com/t/font_792691_ptvyboo0bno.woff?t=1574048839056\') format(\'woff\'), url(\'//at.alicdn.com/t/font_792691_ptvyboo0bno.ttf?t=1574048839056\') format(\'truetype\'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */ url(\'//at.alicdn.com/t/font_792691_ptvyboo0bno.svg?t=1574048839056#iconfont\') format(\'svg\');\n /* iOS 4.1- */\n}\n.xm-iconfont {\n font-family: "xm-iconfont" !important;\n font-size: 16px;\n font-style: normal;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n.xm-icon-quanxuan:before {\n content: "\\e62c";\n}\n.xm-icon-caidan:before {\n content: "\\e610";\n}\n.xm-icon-fanxuan:before {\n content: "\\e837";\n}\n.xm-icon-pifu:before {\n content: "\\e668";\n}\n.xm-icon-qingkong:before {\n content: "\\e63e";\n}\n.xm-icon-sousuo:before {\n content: "\\e600";\n}\n.xm-icon-danx:before {\n content: "\\e62b";\n}\n.xm-icon-duox:before {\n content: "\\e613";\n}\n.xm-icon-close:before {\n content: "\\e601";\n}\n.xm-icon-expand:before {\n content: "\\e641";\n}\n.xm-icon-banxuan:before {\n content: "\\e60d";\n}\n',""]),e.exports=t},220:function(e,t){(function(t){e.exports=t}).call(this,{})},26:function(e,t,n){"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n=function(e,t){var n=e[1]||"",o=e[3];if(!o)return n;if(t&&"function"==typeof btoa){var r=function(e){var t=btoa(unescape(encodeURIComponent(JSON.stringify(e)))),n="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(t);return"/*# ".concat(n," */")}(o),i=o.sources.map((function(e){return"/*# sourceURL=".concat(o.sourceRoot||"").concat(e," */")}));return[n].concat(i).concat([r]).join("\n")}return[n].join("\n")}(t,e);return t[2]?"@media ".concat(t[2]," {").concat(n,"}"):n})).join("")},t.i=function(e,n,o){"string"==typeof e&&(e=[[null,e,""]]);var r={};if(o)for(var i=0;i<this.length;i++){var a=this[i][0];null!=a&&(r[a]=!0)}for(var l=0;l<e.length;l++){var s=[].concat(e[l]);o&&r[s[0]]||(n&&(s[2]?s[2]="".concat(n," and ").concat(s[2]):s[2]=n),t.push(s))}},t}},27:function(e,t,n){var o,r,i={},a=(o=function(){return window&&document&&document.all&&!window.atob},function(){return void 0===r&&(r=o.apply(this,arguments)),r}),l=function(e,t){return t?t.querySelector(e):document.querySelector(e)},s=function(e){var t={};return function(e,n){if("function"==typeof e)return e();if(void 0===t[e]){var o=l.call(this,e,n);if(window.HTMLIFrameElement&&o instanceof window.HTMLIFrameElement)try{o=o.contentDocument.head}catch(e){o=null}t[e]=o}return t[e]}}(),c=null,u=0,p=[],f=n(105);function d(e,t){for(var n=0;n<e.length;n++){var o=e[n],r=i[o.id];if(r){r.refs++;for(var a=0;a<r.parts.length;a++)r.parts[a](o.parts[a]);for(;a<o.parts.length;a++)r.parts.push(v(o.parts[a],t))}else{var l=[];for(a=0;a<o.parts.length;a++)l.push(v(o.parts[a],t));i[o.id]={id:o.id,refs:1,parts:l}}}}function h(e,t){for(var n=[],o={},r=0;r<e.length;r++){var i=e[r],a=t.base?i[0]+t.base:i[0],l={css:i[1],media:i[2],sourceMap:i[3]};o[a]?o[a].parts.push(l):n.push(o[a]={id:a,parts:[l]})}return n}function m(e,t){var n=s(e.insertInto);if(!n)throw new Error("Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.");var o=p[p.length-1];if("top"===e.insertAt)o?o.nextSibling?n.insertBefore(t,o.nextSibling):n.appendChild(t):n.insertBefore(t,n.firstChild),p.push(t);else if("bottom"===e.insertAt)n.appendChild(t);else{if("object"!=typeof e.insertAt||!e.insertAt.before)throw new Error("[Style Loader]\n\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\n Must be 'top', 'bottom', or Object.\n (https://github.com/webpack-contrib/style-loader#insertat)\n");var r=s(e.insertAt.before,n);n.insertBefore(t,r)}}function b(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e);var t=p.indexOf(e);t>=0&&p.splice(t,1)}function y(e){var t=document.createElement("style");if(void 0===e.attrs.type&&(e.attrs.type="text/css"),void 0===e.attrs.nonce){var o=function(){0;return n.nc}();o&&(e.attrs.nonce=o)}return x(t,e.attrs),m(e,t),t}function x(e,t){Object.keys(t).forEach((function(n){e.setAttribute(n,t[n])}))}function v(e,t){var n,o,r,i;if(t.transform&&e.css){if(!(i="function"==typeof t.transform?t.transform(e.css):t.transform.default(e.css)))return function(){};e.css=i}if(t.singleton){var a=u++;n=c||(c=y(t)),o=w.bind(null,n,a,!1),r=w.bind(null,n,a,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=function(e){var t=document.createElement("link");return void 0===e.attrs.type&&(e.attrs.type="text/css"),e.attrs.rel="stylesheet",x(t,e.attrs),m(e,t),t}(t),o=C.bind(null,n,t),r=function(){b(n),n.href&&URL.revokeObjectURL(n.href)}):(n=y(t),o=k.bind(null,n),r=function(){b(n)});return o(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;o(e=t)}else r()}}e.exports=function(e,t){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");(t=t||{}).attrs="object"==typeof t.attrs?t.attrs:{},t.singleton||"boolean"==typeof t.singleton||(t.singleton=a()),t.insertInto||(t.insertInto="head"),t.insertAt||(t.insertAt="bottom");var n=h(e,t);return d(n,t),function(e){for(var o=[],r=0;r<n.length;r++){var a=n[r];(l=i[a.id]).refs--,o.push(l)}e&&d(h(e,t),t);for(r=0;r<o.length;r++){var l;if(0===(l=o[r]).refs){for(var s=0;s<l.parts.length;s++)l.parts[s]();delete i[l.id]}}}};var g,_=(g=[],function(e,t){return g[e]=t,g.filter(Boolean).join("\n")});function w(e,t,n,o){var r=n?"":o.css;if(e.styleSheet)e.styleSheet.cssText=_(t,r);else{var i=document.createTextNode(r),a=e.childNodes;a[t]&&e.removeChild(a[t]),a.length?e.insertBefore(i,a[t]):e.appendChild(i)}}function k(e,t){var n=t.css,o=t.media;if(o&&e.setAttribute("media",o),e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}function C(e,t,n){var o=n.css,r=n.sourceMap,i=void 0===t.convertToAbsoluteUrls&&r;(t.convertToAbsoluteUrls||i)&&(o=f(o)),r&&(o+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */");var a=new Blob([o],{type:"text/css"}),l=e.href;e.href=URL.createObjectURL(a),l&&URL.revokeObjectURL(l)}},36:function(e){e.exports=JSON.parse('{"a":"xm-select","b":"1.2.2","c":"https://maplemei.gitee.io/xm-select"}')},41:function(e,t,n){"use strict";n.d(t,"b",(function(){return at})),n.d(t,"d",(function(){return lt})),n.d(t,"a",(function(){return st}));var o=n(36);function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e){return function(e){if(Array.isArray(e))return l(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return l(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return l(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}function s(e){return e.nodeType?e:document.querySelector(e)}function c(){for(var e=[],t=0;t<arguments.length;t++)e.push("".concat(t+1,". ").concat(arguments[t]));console.warn(e.join("\n"))}function u(e){return"[object Array]"==Object.prototype.toString.call(e)}function p(e){return"[object Function]"==Object.prototype.toString.call(e)}function f(e,t){var n;for(n in t)e[n]=e[n]&&"[object Object]"===e[n].toString()&&t[n]&&"[object Object]"===t[n].toString()?f(e[n],t[n]):e[n]=t[n];return e}function d(e,t,n){for(var o=n.value,r=a(t),i=function(n){var i=e[n];t.find((function(e){return e[o]==i[o]}))||r.push(i)},l=0;l<e.length;l++)i(l);return r}function h(e,t,n,o){if(e&&u(e)){var r=o.children,i=o.selected,a=o.value;e.forEach((function(e){e.__node[i]||t.find((function(t){return t[a]===e[a]}))?n.push(e):h(e[r],t,n,o)}))}}function m(e,t,n){if(e&&u(e))return e.map((function(e){return e=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},e),n.forEach((function(t){return delete e[t]})),e[t]=m(e[t],t,n),e}))}var b,y,x,v,g,_={},w=[],k=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function C(e,t){for(var n in t)e[n]=t[n];return e}function O(e){var t=e.parentNode;t&&t.removeChild(e)}function S(e,t,n){var o,r=arguments,i={};for(o in t)"key"!==o&&"ref"!==o&&(i[o]=t[o]);if(arguments.length>3)for(n=[n],o=3;o<arguments.length;o++)n.push(r[o]);if(null!=n&&(i.children=n),"function"==typeof e&&null!=e.defaultProps)for(o in e.defaultProps)void 0===i[o]&&(i[o]=e.defaultProps[o]);return j(e,i,t&&t.key,t&&t.ref,null)}function j(e,t,n,o,r){var i={type:e,props:t,key:n,ref:o,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:r};return null==r&&(i.__v=i),b.vnode&&b.vnode(i),i}function E(e){return e.children}function A(e,t){this.props=e,this.context=t}function R(e,t){if(null==t)return e.__?R(e.__,e.__.__k.indexOf(e)+1):null;for(var n;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e)return n.__e;return"function"==typeof e.type?R(e):null}function P(e){var t,n;if(null!=(e=e.__)&&null!=e.__c){for(e.__e=e.__c.base=null,t=0;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e){e.__e=e.__c.base=n.__e;break}return P(e)}}function I(e){(!e.__d&&(e.__d=!0)&&y.push(e)&&!D.__r++||v!==b.debounceRendering)&&((v=b.debounceRendering)||x)(D)}function D(){for(var e;D.__r=y.length;)e=y.sort((function(e,t){return e.__v.__b-t.__v.__b})),y=[],e.some((function(e){var t,n,o,r,i,a,l;e.__d&&(a=(i=(t=e).__v).__e,(l=t.__P)&&(n=[],(o=C({},i)).__v=o,r=U(l,i,o,t.__n,void 0!==l.ownerSVGElement,null,n,null==a?R(i):a),B(n,i),r!=a&&P(i)))}))}function M(e,t,n,o,r,i,a,l,s,c){var u,p,f,d,h,m,b,y=o&&o.__k||w,x=y.length;for(s==_&&(s=null!=a?a[0]:x?R(o,0):null),n.__k=[],u=0;u<t.length;u++)if(null!=(d=n.__k[u]=null==(d=t[u])||"boolean"==typeof d?null:"string"==typeof d||"number"==typeof d?j(null,d,null,null,d):Array.isArray(d)?j(E,{children:d},null,null,null):null!=d.__e||null!=d.__c?j(d.type,d.props,d.key,null,d.__v):d)){if(d.__=n,d.__b=n.__b+1,null===(f=y[u])||f&&d.key==f.key&&d.type===f.type)y[u]=void 0;else for(p=0;p<x;p++){if((f=y[p])&&d.key==f.key&&d.type===f.type){y[p]=void 0;break}f=null}h=U(e,d,f=f||_,r,i,a,l,s,c),(p=d.ref)&&f.ref!=p&&(b||(b=[]),f.ref&&b.push(f.ref,null,d),b.push(p,d.__c||h,d)),null!=h?(null==m&&(m=h),s=T(e,d,f,y,a,h,s),"option"==n.type?e.value="":"function"==typeof n.type&&(n.__d=s)):s&&f.__e==s&&s.parentNode!=e&&(s=R(f))}if(n.__e=m,null!=a&&"function"!=typeof n.type)for(u=a.length;u--;)null!=a[u]&&O(a[u]);for(u=x;u--;)null!=y[u]&&H(y[u],y[u]);if(b)for(u=0;u<b.length;u++)K(b[u],b[++u],b[++u])}function T(e,t,n,o,r,i,a){var l,s,c;if(void 0!==t.__d)l=t.__d,t.__d=void 0;else if(r==n||i!=a||null==i.parentNode)e:if(null==a||a.parentNode!==e)e.appendChild(i),l=null;else{for(s=a,c=0;(s=s.nextSibling)&&c<o.length;c+=2)if(s==i)break e;e.insertBefore(i,a),l=a}return void 0!==l?l:i.nextSibling}function z(e,t,n){"-"===t[0]?e.setProperty(t,n):e[t]="number"==typeof n&&!1===k.test(t)?n+"px":null==n?"":n}function L(e,t,n,o,r){var i,a,l,s,c;if(r?"className"===t&&(t="class"):"class"===t&&(t="className"),"style"===t)if(i=e.style,"string"==typeof n)i.cssText=n;else{if("string"==typeof o&&(i.cssText="",o=null),o)for(s in o)n&&s in n||z(i,s,"");if(n)for(c in n)o&&n[c]===o[c]||z(i,c,n[c])}else"o"===t[0]&&"n"===t[1]?(a=t!==(t=t.replace(/Capture$/,"")),l=t.toLowerCase(),t=(l in e?l:t).slice(2),n?(o||e.addEventListener(t,V,a),(e.l||(e.l={}))[t]=n):e.removeEventListener(t,V,a)):"list"!==t&&"tagName"!==t&&"form"!==t&&"type"!==t&&"size"!==t&&!r&&t in e?e[t]=null==n?"":n:"function"!=typeof n&&"dangerouslySetInnerHTML"!==t&&(t!==(t=t.replace(/^xlink:?/,""))?null==n||!1===n?e.removeAttributeNS("http://www.w3.org/1999/xlink",t.toLowerCase()):e.setAttributeNS("http://www.w3.org/1999/xlink",t.toLowerCase(),n):null==n||!1===n&&!/^ar/.test(t)?e.removeAttribute(t):e.setAttribute(t,n))}function V(e){this.l[e.type](b.event?b.event(e):e)}function F(e,t,n){var o,r;for(o=0;o<e.__k.length;o++)(r=e.__k[o])&&(r.__=e,r.__e&&("function"==typeof r.type&&r.__k.length>1&&F(r,t,n),t=T(n,r,r,e.__k,null,r.__e,t),"function"==typeof e.type&&(e.__d=t)))}function U(e,t,n,o,r,i,a,l,s){var c,u,p,f,d,h,m,y,x,v,g,_=t.type;if(void 0!==t.constructor)return null;(c=b.__b)&&c(t);try{e:if("function"==typeof _){if(y=t.props,x=(c=_.contextType)&&o[c.__c],v=c?x?x.props.value:c.__:o,n.__c?m=(u=t.__c=n.__c).__=u.__E:("prototype"in _&&_.prototype.render?t.__c=u=new _(y,v):(t.__c=u=new A(y,v),u.constructor=_,u.render=q),x&&x.sub(u),u.props=y,u.state||(u.state={}),u.context=v,u.__n=o,p=u.__d=!0,u.__h=[]),null==u.__s&&(u.__s=u.state),null!=_.getDerivedStateFromProps&&(u.__s==u.state&&(u.__s=C({},u.__s)),C(u.__s,_.getDerivedStateFromProps(y,u.__s))),f=u.props,d=u.state,p)null==_.getDerivedStateFromProps&&null!=u.componentWillMount&&u.componentWillMount(),null!=u.componentDidMount&&u.__h.push(u.componentDidMount);else{if(null==_.getDerivedStateFromProps&&y!==f&&null!=u.componentWillReceiveProps&&u.componentWillReceiveProps(y,v),!u.__e&&null!=u.shouldComponentUpdate&&!1===u.shouldComponentUpdate(y,u.__s,v)||t.__v===n.__v){u.props=y,u.state=u.__s,t.__v!==n.__v&&(u.__d=!1),u.__v=t,t.__e=n.__e,t.__k=n.__k,u.__h.length&&a.push(u),F(t,l,e);break e}null!=u.componentWillUpdate&&u.componentWillUpdate(y,u.__s,v),null!=u.componentDidUpdate&&u.__h.push((function(){u.componentDidUpdate(f,d,h)}))}u.context=v,u.props=y,u.state=u.__s,(c=b.__r)&&c(t),u.__d=!1,u.__v=t,u.__P=e,c=u.render(u.props,u.state,u.context),u.state=u.__s,null!=u.getChildContext&&(o=C(C({},o),u.getChildContext())),p||null==u.getSnapshotBeforeUpdate||(h=u.getSnapshotBeforeUpdate(f,d)),g=null!=c&&c.type==E&&null==c.key?c.props.children:c,M(e,Array.isArray(g)?g:[g],t,n,o,r,i,a,l,s),u.base=t.__e,u.__h.length&&a.push(u),m&&(u.__E=u.__=null),u.__e=!1}else null==i&&t.__v===n.__v?(t.__k=n.__k,t.__e=n.__e):t.__e=N(n.__e,t,n,o,r,i,a,s);(c=b.diffed)&&c(t)}catch(e){t.__v=null,b.__e(e,t,n)}return t.__e}function B(e,t){b.__c&&b.__c(t,e),e.some((function(t){try{e=t.__h,t.__h=[],e.some((function(e){e.call(t)}))}catch(e){b.__e(e,t.__v)}}))}function N(e,t,n,o,r,i,a,l){var s,c,u,p,f,d=n.props,h=t.props;if(r="svg"===t.type||r,null!=i)for(s=0;s<i.length;s++)if(null!=(c=i[s])&&((null===t.type?3===c.nodeType:c.localName===t.type)||e==c)){e=c,i[s]=null;break}if(null==e){if(null===t.type)return document.createTextNode(h);e=r?document.createElementNS("http://www.w3.org/2000/svg",t.type):document.createElement(t.type,h.is&&{is:h.is}),i=null,l=!1}if(null===t.type)d!==h&&e.data!=h&&(e.data=h);else{if(null!=i&&(i=w.slice.call(e.childNodes)),u=(d=n.props||_).dangerouslySetInnerHTML,p=h.dangerouslySetInnerHTML,!l){if(null!=i)for(d={},f=0;f<e.attributes.length;f++)d[e.attributes[f].name]=e.attributes[f].value;(p||u)&&(p&&u&&p.__html==u.__html||(e.innerHTML=p&&p.__html||""))}(function(e,t,n,o,r){var i;for(i in n)"children"===i||"key"===i||i in t||L(e,i,null,n[i],o);for(i in t)r&&"function"!=typeof t[i]||"children"===i||"key"===i||"value"===i||"checked"===i||n[i]===t[i]||L(e,i,t[i],n[i],o)})(e,h,d,r,l),p?t.__k=[]:(s=t.props.children,M(e,Array.isArray(s)?s:[s],t,n,o,"foreignObject"!==t.type&&r,i,a,_,l)),l||("value"in h&&void 0!==(s=h.value)&&s!==e.value&&L(e,"value",s,d.value,!1),"checked"in h&&void 0!==(s=h.checked)&&s!==e.checked&&L(e,"checked",s,d.checked,!1))}return e}function K(e,t,n){try{"function"==typeof e?e(t):e.current=t}catch(e){b.__e(e,n)}}function H(e,t,n){var o,r,i;if(b.unmount&&b.unmount(e),(o=e.ref)&&(o.current&&o.current!==e.__e||K(o,null,t)),n||"function"==typeof e.type||(n=null!=(r=e.__e)),e.__e=e.__d=void 0,null!=(o=e.__c)){if(o.componentWillUnmount)try{o.componentWillUnmount()}catch(e){b.__e(e,t)}o.base=o.__P=null}if(o=e.__k)for(i=0;i<o.length;i++)o[i]&&H(o[i],t,n);null!=r&&O(r)}function q(e,t,n){return this.constructor(e,n)}function Y(e,t,n){var o,r,i;b.__&&b.__(e,t),r=(o=n===g)?null:n&&n.__k||t.__k,e=S(E,null,[e]),i=[],U(t,(o?t:n||t).__k=e,r||_,_,void 0!==t.ownerSVGElement,n&&!o?[n]:r?null:t.childNodes.length?w.slice.call(t.childNodes):null,i,n||_,o),B(i,e)}function Z(e){return(Z="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Q(e){return function(e){if(Array.isArray(e))return J(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return J(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return J(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function J(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}function W(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function G(e,t){return(G=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function X(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,o=ee(e);if(t){var r=ee(this).constructor;n=Reflect.construct(o,arguments,r)}else n=o.apply(this,arguments);return $(this,n)}}function $(e,t){return!t||"object"!==Z(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function ee(e){return(ee=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}b={__e:function(e,t){for(var n,o;t=t.__;)if((n=t.__c)&&!n.__)try{if(n.constructor&&null!=n.constructor.getDerivedStateFromError&&(o=!0,n.setState(n.constructor.getDerivedStateFromError(e))),null!=n.componentDidCatch&&(o=!0,n.componentDidCatch(e)),o)return I(n.__E=n)}catch(t){e=t}throw e}},A.prototype.setState=function(e,t){var n;n=this.__s!==this.state?this.__s:this.__s=C({},this.state),"function"==typeof e&&(e=e(n,this.props)),e&&C(n,e),null!=e&&this.__v&&(t&&this.__h.push(t),I(this))},A.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),I(this))},A.prototype.render=E,y=[],x="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,D.__r=0,g=_;var te=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&G(e,t)}(i,e);var t,n,o,r=X(i);function i(e){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,i),r.call(this,e)}return t=i,(n=[{key:"iconClick",value:function(e,t,n,o){this.props.ck(e,t,n,!0),o.stopPropagation()}},{key:"scrollFunc",value:function(e){if(0==e.wheelDeltaX){for(var t=this.labelRef.getElementsByClassName("xm-label-block"),n=10,o=0;o<t.length;o++)n+=t[o].getBoundingClientRect().width+5;var r=this.labelRef.getBoundingClientRect().width,i=n>r?n-r:r,a=this.labelRef.scrollLeft+e.deltaY;a<0&&(a=0),a>i&&(a=i),this.labelRef.scrollLeft=a}}},{key:"blur",value:function(){var e=this.base.querySelector(".label-search-input");e&&e.blur()}},{key:"componentDidMount",value:function(){this.labelRef.addEventListener&&this.labelRef.addEventListener("DOMMouseScroll",this.scrollFunc.bind(this),!1),this.labelRef.attachEvent&&this.labelRef.attachEvent("onmousewheel",this.scrollFunc.bind(this)),this.labelRef.onmousewheel=this.scrollFunc.bind(this)}},{key:"render",value:function(e){var t=this,n=e.data,o=e.prop,r=e.theme,i=e.model,a=e.sels,l=e.autoRow,s=e.tree,c=o.name,u=o.disabled,f=i.label,d=f.type,m=f[d],b=a;s.show&&s.strict&&s.simple&&h(n,a,b=[],o);var y="",x=!0,v=b.map((function(e){return e[c]})).join(",");if("text"===d)y=b.map((function(e){return"".concat(m.left).concat(e[c]).concat(m.right)})).join(m.separator);else if("block"===d){x=!1;var g=Q(b),_={backgroundColor:r.color},w=m.showCount<=0?g.length:m.showCount;y=g.splice(0,w).map((function(e){var n={width:m.showIcon?"calc(100% - 20px)":"100%"};return S("div",{class:["xm-label-block",e[u]?"disabled":""].join(" "),style:_},m.template&&p(m.template)?S("span",{style:n,dangerouslySetInnerHTML:{__html:m.template(e,g)}}):S("span",{style:n},e[c]),m.showIcon&&S("i",{class:"xm-iconfont xm-icon-close",onClick:t.iconClick.bind(t,e,!0,e[u])}))})),g.length&&y.push(S("div",{class:"xm-label-block",style:_},"+ ",g.length))}else if("search"==d){x=!1;var k="";b.length&&(k=b[0][c]),y=S("input",{class:"label-search-input",type:"text",placeholder:e.searchTips,style:{width:"100%",border:"none"},value:k,onInput:function(e){t.props.onReset(e,"labelSearch")},onCompositionstart:function(e){t.props.onReset(e,"labelSearch")},compositionupdate:function(e){t.props.onReset(e,"labelSearch")},compositionend:function(e){t.props.onReset(e,"labelSearch")},onClick:function(e){e.stopPropagation()}})}else y=b.length&&m&&m.template?m.template(n,b):b.map((function(e){return e[c]})).join(",");return S("div",{class:["xm-label",l?"auto-row":"single-row"].join(" ")},S("div",{class:"scroll",ref:function(e){return t.labelRef=e}},x?S("div",{class:"label-content",dangerouslySetInnerHTML:{__html:y}}):S("div",{class:"label-content",title:v},y)))}}])&&W(t.prototype,n),o&&W(t,o),i}(A);function ne(e){return(ne="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function oe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function re(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?oe(Object(n),!0).forEach((function(t){ie(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):oe(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ie(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ae(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function le(e,t){return(le=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function se(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,o=ue(e);if(t){var r=ue(this).constructor;n=Reflect.construct(o,arguments,r)}else n=o.apply(this,arguments);return ce(this,n)}}function ce(e,t){return!t||"object"!==ne(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function ue(e){return(ue=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var pe={},fe=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&le(e,t)}(i,e);var t,n,o,r=se(i);function i(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,i),(t=r.call(this,e)).setState({filterValue:"",remote:!0,loading:!1,pageIndex:1,totalSize:0,val:pe}),t.searchCid=0,t.inputOver=!0,t.__value="",t.tempData=[],t.size=0,t}return t=i,(n=[{key:"optionClick",value:function(e,t,n,o){this.props.ck(e,t,n),this.focus(),this.blockClick(o)}},{key:"groupClick",value:function(e,t){var n=this.props.prop,o=n.click,r=n.children,i=n.disabled,a=e[o],l=e[r].filter((function(e){return!e[i]}));"SELECT"===a?this.props.onReset(l,"append"):"CLEAR"===a?this.props.onReset(l,"delete"):"AUTO"===a?this.props.onReset(l,"auto"):p(a)&&a(e),this.focus(),this.blockClick(t)}},{key:"blockClick",value:function(e){e.stopPropagation()}},{key:"pagePrevClick",value:function(){arguments.length>0&&void 0!==arguments[0]||this.size;var e=this.state.pageIndex;e<=1||(this.changePageIndex(e-1),this.props.pageRemote&&this.postData(e-1,!0))}},{key:"pageNextClick",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.size,t=this.state.pageIndex;t>=e||(this.changePageIndex(t+1),this.props.pageRemote&&this.postData(t+1,!0))}},{key:"changePageIndex",value:function(e){this.setState({pageIndex:e})}},{key:"labelSearch",value:function(e){"input"==e.type?this.searchInput(e):this.handleComposition(e)}},{key:"searchInput",value:function(e){var t=this,n=e.target.value;n!==this.__value&&(this.searchCid&&clearTimeout(this.searchCid),this.inputOver&&(this.__value=n,this.searchCid=setTimeout((function(){t.callback=!0,t.setState({filterValue:t.__value,remote:!0,pageIndex:1})}),this.props.delay)))}},{key:"focus",value:function(){this.searchInputRef&&this.searchInputRef.focus()}},{key:"blur",value:function(){this.searchInputRef&&this.searchInputRef.blur()}},{key:"handleComposition",value:function(e){var t=e.type;"compositionstart"===t?(this.inputOver=!1,this.searchCid&&clearTimeout(this.searchCid)):"compositionend"===t&&(this.inputOver=!0,this.searchInput(e))}},{key:"postData",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.state.pageIndex,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];(this.state.remote||n)&&(this.callback=!1,this.setState({loading:!0,remote:!1}),this.blur(),this.props.remoteMethod(this.state.filterValue,(function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;setTimeout((function(){e.focus(),e.callback=!0,e.setState({loading:!1,totalSize:n}),e.props.onReset(t,"data")}),10)}),this.props.show,t))}},{key:"keydown",value:function(e,t){var n=this,o=t.keyCode;if("div"===e&&(27===o||9===o?this.props.onReset(!1,"close"):37===o?this.pagePrevClick():39===o&&this.pageNextClick()),this.props.enableKeyboard){var r=this.props.prop,i=r.value,a=r.optgroup,l=r.disabled,s=this.tempData.filter((function(e){return!e[a]&&!e[l]})),c=s.length-1;if(-1===c)return;var u=s.findIndex((function(e){return e[i]===n.state.val}));if(38===o){u<=0?u=c:u>0&&(u-=1);var p=s[u][i];this.setState({val:p});var f=this.base.querySelector('.xm-option[value="'.concat(p,'"]'));f&&f.scrollIntoView(!1)}else if(40===o){-1===u||u===c?u=0:u<c&&(u+=1);var d=s[u][i];this.setState({val:d});var h=this.base.querySelector('.xm-option[value="'.concat(d,'"]'));h&&h.scrollIntoView(!1)}else if(13===o&&this.state.val!=pe){var m=s[u];this.optionClick(m,-1!=this.props.sels.findIndex((function(e){return e[i]===n.state.val})),m[l],t)}}}},{key:"componentWillReceiveProps",value:function(e){var t=this;this.props.show!=e.show&&(e.show?setTimeout((function(){"search"===e.model.label.type||(e.filterable?t.focus():t.base.focus())}),0):(this.setState({filterValue:"",val:pe}),this.__value="",this.searchInputRef&&(this.searchInputRef.value=""),this.props.onReset("","labelSearchBlur"))),this.props.__update!=e.__update&&this.setState({remote:!0})}},{key:"render",value:function(e){var t,n=this,o=e.data,r=e.flatData,i=e.prop,a=e.template,l=e.theme,s=e.radio,c=e.sels,u=e.empty,h=e.filterable,m=e.filterMethod,b=e.remoteSearch,y=(e.remoteMethod,e.delay,e.searchTips),x=e.create,v=e.pageRemote,g=e.max,_=e.enableKeyboard,w=i.name,k=i.value,C=i.disabled,O=i.children,j=i.optgroup,E=f([],r);if((v||h&&b)&&this.postData(),h&&!b&&!v){E=E.filter((function(e,t){return e[j]?(delete e.__del,!0):m(n.state.filterValue,e,t,i)}));for(var A=0;A<E.length-1;A++){var R=E[A],P=E[A+1];R[j]&&P[j]&&(E[A].__del=!0)}E.length&&E[E.length-1][j]&&(E[E.length-1].__del=!0),E=E.filter((function(e){return!e.__del})),t=this.state.filterValue&&p(x)}var I=S("div",{class:h&&"search"!=e.model.label.type?"xm-search":"xm-search dis"},S("i",{class:"xm-iconfont xm-icon-sousuo"}),S("input",{class:"xm-input xm-search-input",placeholder:y})),D={};E.filter((function(e){return e[j]})).forEach((function(e,t){D[t]=e,e[O].forEach((function(e){return e.__group__index=t}))})),E=E.filter((function(e){return!e[j]}));var M="";if(e.paging){var T=v?this.state.totalSize:Math.floor((E.length-1)/e.pageSize)+1;T<=0&&(T=1);var z=this.state.pageIndex;if(z>T&&(z=T),T>0&&z<=0&&(z=1),!v){var L=(z-1)*e.pageSize,V=L+e.pageSize;E=E.slice(L,V)}var F={cursor:"no-drop",color:"#d2d2d2"},U={},B={};z<=1&&(U=F),z==T&&(B=F),this.state.pageIndex!==z&&this.changePageIndex(z),this.size=T,M=S("div",{class:"xm-paging"},S("span",{style:U,onClick:this.pagePrevClick.bind(this,T)},e.languageProp.paging.prev),S("span",null,this.state.pageIndex," / ",T),S("span",{style:B,onClick:this.pageNextClick.bind(this,T)},e.languageProp.paging.next))}else e.showCount>0&&(E=E.slice(0,e.showCount));var N,K=[],H={__tmp:!0};H[j]=!0,E.forEach((function(e){var t=D[e.__group__index];delete e.__group__index,N&&!t&&(t=H),t!=N&&(N=t,t&&K.push(N)),K.push(e)})),E=K,t&&(t=x(this.state.filterValue,f([],E)))&&E.splice(0,0,re(re({},t),{},{__node:{}}));var q=f([],E);this.tempData=q;var Y=S("div",{class:"xm-toolbar"},e.toolbar.list.map((function(t){var o,r=e.languageProp.toolbar[t];o="ALL"===t?{icon:"xm-iconfont xm-icon-quanxuan",name:r,method:function(e){var t=i.optgroup,o=i.disabled,r=e.filter((function(e){return!e[t]})).filter((function(e){return!e[o]})),a=c.filter((function(e){return e[i.disabled]})),l=[];l=s?a.length?a:r.slice(0,1):g>0?a.length>=g?a:d(r.slice(0,g-a.length),a,i):d(r,c,i),n.props.onReset(l,"sels")}}:"CLEAR"===t?{icon:"xm-iconfont xm-icon-qingkong",name:r,method:function(e){n.props.onReset(c.filter((function(e){return e[i.disabled]})),"sels")}}:"REVERSE"===t?{icon:"xm-iconfont xm-icon-fanxuan",name:r,method:function(e){var t=i.optgroup,o=i.disabled,r=e.filter((function(e){return!e[t]})).filter((function(e){return!e[o]})),a=[];c.forEach((function(e){var t=r.findIndex((function(t){return t[k]===e[k]}));-1==t?a.push(e):r.splice(t,1)}));var l=a.filter((function(e){return e[i.disabled]})),u=[];u=s?l.length?l:r.slice(0,1):g>0?l.length>=g?l:d(r.slice(0,g-l.length),l,i):d(r,a,i),n.props.onReset(u,"sels")}}:t;var a=function(e){"mouseenter"===e.type&&(e.target.style.color=l.color),"mouseleave"===e.type&&(e.target.style.color="")};return S("div",{class:"toolbar-tag",style:{},onClick:function(){p(o.method)&&o.method(q),n.focus()},onMouseEnter:a,onMouseLeave:a},e.toolbar.showIcon&&S("i",{class:o.icon}),S("span",null,o.name))})).filter((function(e){return e}))),Z="hidden"!=e.model.icon;return(E=E.map((function(t){return t[j]?t.__tmp?S("div",{class:"item--divided"}):S("div",{class:"xm-group"},S("div",{class:"xm-group-item",onClick:n.groupClick.bind(n,t)},t[w])):function(t){var r=!!c.find((function(e){return e[k]==t[k]})),i=r?{color:l.color,border:"none"}:{borderColor:l.color},u={};_&&t[k]===n.state.val&&(u.backgroundColor=l.hover),!Z&&r&&(u.backgroundColor=l.color,t[C]&&(u.backgroundColor="#C2C2C2"));var p,f,d=["xm-option",t[C]?" disabled":"",r?" selected":"",Z?"show-icon":"hide-icon"].join(" "),h=["xm-option-icon",(p=e.iconfont.select,f=e.iconfont.unselect,(p?!r&&f?f+" xm-custom-icon":p:0)||"xm-iconfont "+(s?"xm-icon-danx":"xm-icon-duox"))].join(" "),m=function(e){"mouseenter"===e.type?t[C]||(_?n.setState({val:t[k]}):e.target.style.backgroundColor=l.hover):"mouseleave"===e.type&&(t[C]||_||(e.target.style.backgroundColor=""))};return S("div",{class:d,style:u,value:t[k],onClick:n.optionClick.bind(n,t,r,t[C]),onMouseEnter:m,onMouseLeave:m},Z&&S("i",{class:h,style:i}),S("div",{class:"xm-option-content",dangerouslySetInnerHTML:{__html:a({data:o,item:t,arr:c,name:t[w],value:t[k]})}}))}(t)}))).length||(!e.pageEmptyShow&&(M=""),E.push(S("div",{class:"xm-select-empty"},u))),S("div",{onClick:this.blockClick,tabindex:"1",style:"outline: none;"},S("div",null,e.toolbar.show&&Y,I,S("div",{class:"scroll-body",style:{maxHeight:e.height}},E),e.paging&&M),this.state.loading&&S("div",{class:"loading"},S("span",{class:"loader"})))}},{key:"componentDidMount",value:function(){var e=this.base.querySelector(".xm-search-input");e&&(e.addEventListener("compositionstart",this.handleComposition.bind(this)),e.addEventListener("compositionupdate",this.handleComposition.bind(this)),e.addEventListener("compositionend",this.handleComposition.bind(this)),e.addEventListener("input",this.searchInput.bind(this)),this.searchInputRef=e),this.base.addEventListener("keydown",this.keydown.bind(this,"div"))}},{key:"componentDidUpdate",value:function(){if(this.callback){this.callback=!1;var e=this.props.filterDone;p(e)&&e(this.state.filterValue,this.tempData||[])}}}])&&ae(t.prototype,n),o&&ae(t,o),i}(A);function de(e){return(de="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function he(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function me(e,t){return(me=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function be(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,o=xe(e);if(t){var r=xe(this).constructor;n=Reflect.construct(o,arguments,r)}else n=o.apply(this,arguments);return ye(this,n)}}function ye(e,t){return!t||"object"!==de(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function xe(e){return(xe=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var ve=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&me(e,t)}(i,e);var t,n,o,r=be(i);function i(e){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,i),r.call(this,e)}return t=i,(n=[{key:"blockClick",value:function(e){e.stopPropagation()}},{key:"shouldComponentUpdate",value:function(){return!this.prepare}},{key:"render",value:function(e){return this.prepare=!0,S("div",{onClick:this.blockClick,class:"xm-body-custom"},S("div",{class:"scroll-body",style:{maxHeight:e.height}},S("div",{style:"margin: 5px 0",dangerouslySetInnerHTML:{__html:e.content}})))}}])&&he(t.prototype,n),o&&he(t,o),i}(A);function ge(e){return(ge="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _e(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function we(e,t){return(we=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function ke(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,o=Oe(e);if(t){var r=Oe(this).constructor;n=Reflect.construct(o,arguments,r)}else n=o.apply(this,arguments);return Ce(this,n)}}function Ce(e,t){return!t||"object"!==ge(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function Oe(e){return(Oe=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var Se={},je=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&we(e,t)}(i,e);var t,n,o,r=ke(i);function i(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,i),(t=r.call(this,e)).state={expandedKeys:[],filterValue:"",remote:!0,loading:!1,val:Se},t.searchCid=0,t.inputOver=!0,t.__value="",t.tempData=[],t}return t=i,(n=[{key:"init",value:function(e){var t=e.tree,n=e.dataObj,o=e.flatData,r=e.prop,i=r.value,a=r.optgroup,l=[];!0===t.expandedKeys?l=o.filter((function(e){return!0===e[a]})).map((function(e){return e[i]})):!1===t.expandedKeys||t.expandedKeys.forEach((function(e){l.push(e);for(var t=n[e],o=function(){var e=t[i];-1===l.findIndex((function(t){return t===e}))&&l.push(e),t=t.__node.parent};t;)o()})),this.setState({expandedKeys:l})}},{key:"blockClick",value:function(e){e.stopPropagation()}},{key:"optionClick",value:function(e,t,n,o,r){var i=this;if("line"===o){if(!0===e.__node.loading)return;var a=this.props,l=a.tree,s=a.prop,c=a.sels,u=l.clickExpand,f=l.clickCheck,d=r.target&&p(r.target.getAttribute)&&"expand"===r.target.getAttribute("type");if(u||d){if(!l.lazy&&!e[s.optgroup])return void this.props.ck(e,t,n);var h=e[this.props.prop.value],m=this.state.expandedKeys,b=m.findIndex((function(e){return e===h}));-1===b?m.push(h):m.splice(b,1),this.setState({expandedKeys:m});var y=e[s.children];l.lazy&&y&&0===y.length&&!1!==e.__node.loading&&(e.__node.loading=!0,l.load(e,(function(t){e.__node.loading=!1,e[s.children]=i.handlerData(t,s.children),e[s.selected]=-1!=c.findIndex((function(t){return t[s.value]===e[s.value]})),i.props.onReset(c,"treeData")})))}else f&&(o="checkbox")}"checkbox"===o&&this.props.ck(e,t,n),this.blockClick(r)}},{key:"handlerData",value:function(e,t){var n=this;return e.map((function(e){return e.__node={},e[t]&&(e[t]=n.handlerData(e[t],t)),e}))}},{key:"searchInput",value:function(e){var t=this,n=e.target.value;n!==this.__value&&(clearTimeout(this.searchCid),this.inputOver&&(this.__value=n,this.searchCid=setTimeout((function(){t.callback=!0,t.setState({filterValue:t.__value,remote:!0})}),this.props.delay)))}},{key:"focus",value:function(){this.searchInputRef&&this.searchInputRef.focus()}},{key:"blur",value:function(){this.searchInputRef&&this.searchInputRef.blur()}},{key:"handleComposition",value:function(e){var t=e.type;"compositionstart"===t?(this.inputOver=!1,clearTimeout(this.searchCid)):"compositionend"===t&&(this.inputOver=!0,this.searchInput(e))}},{key:"filterData",value:function(e,t,n){var o=this,r=this.props,i=r.prop,a=r.filterMethod,l=r.tree,s=i.children,c=i.optgroup,u=(i.name,i.value);return e.forEach((function(e,r){var p,f=!!t&&!a(t,e,r,i);if(l.strict?p=!1:f=p=!1!==n&&f,e[c]){var d=o.filterData(e[s],t,p),h=!!t&&0===d.filter((function(e){return!e.__node.hidn})).length;if(!(f=(l.strict||p)&&h)){var m=o.state.expandedKeys;t&&-1===m.findIndex((function(t){return t===e[u]}))&&(m.push(e[u]),o.setState({expandedKeys:m}))}}e.__node.hidn=f})),e}},{key:"postData",value:function(){var e=this;this.state.remote&&(this.callback=!1,this.setState({loading:!0,remote:!1}),this.blur(),this.props.remoteMethod(this.state.filterValue,(function(t,n){e.focus(),e.callback=!0,e.setState({loading:!1,totalSize:n}),e.props.onReset(t,"data")}),this.props.show,1))}},{key:"componentWillReceiveProps",value:function(e){var t=this;this.props.show!=e.show&&(e.show?setTimeout((function(){return t.focus()}),0):(this.setState({filterValue:"",val:Se}),this.__value="",this.searchInputRef&&(this.searchInputRef.value="")))}},{key:"componentWillMount",value:function(){this.init(this.props)}},{key:"render",value:function(e,t){var n=this,o=(t.expandedKeys,e.prop),r=e.empty,i=e.sels,a=e.theme,l=e.radio,s=e.template,c=e.data,u=e.tree,h=e.filterable,m=e.remoteSearch,b=e.searchTips,y=e.iconfont,x=e.enableKeyboard,v=o.name,g=o.value,_=o.disabled,w=o.children,k=o.optgroup,C="hidden"!=e.model.icon,O=function(e,t,o){var r=!!i.find((function(t){return t[g]==e[g]})),p=e[_],f=!0===e.__node.half;u.strict&&(r=r||f||e.__node.selected,p=p||e.__node.disabled);var d=r?{color:a.color,border:"none"}:{borderColor:a.color},h={paddingLeft:t+"px"};x&&e[g]===n.state.val&&(h.backgroundColor=a.hover),!C&&r&&(h.backgroundColor=a.color,p&&(h.backgroundColor="#C2C2C2"));var m=["xm-option",p?" disabled":"",r?" selected":"",C?"show-icon":"hide-icon"].join(" "),b=0!==o&&"hidden"===y.parent?"xm-option-icon-hidden":["xm-option-icon",(f?y.half?y.half+" xm-custom-icon":0:0!==o&&y.parent?y.parent+" xm-custom-icon":r?y.select?y.select:0:y.unselect?y.unselect+" xm-custom-icon":0)||"xm-iconfont "+(l?"xm-icon-danx":u.strict&&f?"xm-icon-banxuan":"xm-icon-duox")].join(" "),k=["xm-tree-icon",o?"expand":"",e[w]&&(e[w].length>0||u.lazy&&!1!==e.__node.loading)?"xm-visible":"xm-hidden"].join(" "),O=[];u.showFolderIcon&&(O.push(S("i",{class:k,type:"expand"})),u.showLine&&(o&&O.push(S("i",{class:"left-line",style:{left:t-u.indent+3+"px"}})),O.push(S("i",{class:"top-line",style:{left:t-u.indent+3+"px",width:u.indent+(0===o?10:-2)+"px"}}))));var j=function(t){"mouseenter"===t.type?e[_]||(x?n.setState({val:e[g]}):t.target.style.backgroundColor=a.hover):"mouseleave"===t.type&&(e[_]||x||(t.target.style.backgroundColor=""))};return S("div",{class:m,style:h,value:e[g],onClick:n.optionClick.bind(n,e,r,e[_],"line"),onMouseEnter:j,onMouseLeave:j},O,e.__node.loading&&S("span",{class:"loader"}),C&&S("i",{class:b,style:d,onClick:n.optionClick.bind(n,e,r,e[_],"checkbox")}),S("div",{class:"xm-option-content",dangerouslySetInnerHTML:{__html:s({data:c,item:e,arr:i,name:e[v],value:e[g]})}}))};h&&(m?this.postData():this.filterData(c,this.state.filterValue));var j=f([],c),E=f([],i);this.tempData=j;var A=c.map((function(e){return function e(t,o){if(!t.__node.hidn){var r=t[w];if(o+=u.indent,r){var i=-1!==n.state.expandedKeys.findIndex((function(e){return t[g]===e}));return 0===r.length&&(i=!1),S("div",{class:"xm-tree"},u.showFolderIcon&&u.showLine&&i&&r.length>0&&S("i",{class:"left-line left-line-group",style:{left:o+3+"px"}}),O(t,o,0===r.length&&(!u.lazy||u.lazy&&!1===t.__node.loading)?0:i),i&&S("div",{class:"xm-tree-box"},r.map((function(t){return e(t,o)}))))}return O(t,o,0)}}(e,10-u.indent)})).filter((function(e){return e}));function R(e,t){t.forEach((function(t){t[k]?(u.strict||"hidden"===y.parent||e.push(t),R(e,t[w])):e.push(t)}))}var P=S("div",{class:"xm-toolbar"},e.toolbar.list.map((function(t){var r,s=e.languageProp.toolbar[t];r="ALL"===t?{icon:"xm-iconfont xm-icon-quanxuan",name:s,method:function(e){var t=[];R(t,e),t=t.filter((function(e){return!e[_]&&!e.__node.hidn})),n.props.onReset(l?t.slice(0,1):d(t,i,o),"treeData")}}:"CLEAR"===t?{icon:"xm-iconfont xm-icon-qingkong",name:s,method:function(e){n.props.onReset(i.filter((function(e){return e[o.disabled]})),"treeData")}}:"REVERSE"===t?{icon:"xm-iconfont xm-icon-fanxuan",name:s,method:function(e){var t=[];R(t,e),t=t.filter((function(e){return!e[_]&&!e.__node.hidn}));var r=[];i.forEach((function(e){var n=t.findIndex((function(t){return t[g]===e[g]}));-1==n?r.push(e):t.splice(n,1)})),n.props.onReset(l?r.slice(0,1):d(t,r,o),"treeData")}}:t;var c=function(e){"mouseenter"===e.type&&(e.target.style.color=a.color),"mouseleave"===e.type&&(e.target.style.color="")};return S("div",{class:"toolbar-tag",onClick:function(){p(r.method)&&r.method(j,E)},onMouseEnter:c,onMouseLeave:c},e.toolbar.showIcon&&S("i",{class:r.icon}),S("span",null,r.name))})).filter((function(e){return e}))),I=S("div",{class:h?"xm-search":"xm-search dis"},S("i",{class:"xm-iconfont xm-icon-sousuo"}),S("input",{class:"xm-input xm-search-input",placeholder:b}));return A.length||A.push(S("div",{class:"xm-select-empty"},r)),S("div",{onClick:this.blockClick,class:"xm-body-tree"},e.toolbar.show&&P,I,S("div",{class:"scroll-body",style:{maxHeight:e.height}},A),this.state.loading&&S("div",{class:"loading"},S("span",{class:"loader"})))}},{key:"componentDidMount",value:function(){var e=this.base.querySelector(".xm-search-input");e&&(e.addEventListener("compositionstart",this.handleComposition.bind(this)),e.addEventListener("compositionupdate",this.handleComposition.bind(this)),e.addEventListener("compositionend",this.handleComposition.bind(this)),e.addEventListener("input",this.searchInput.bind(this)),this.searchInputRef=e)}},{key:"componentDidUpdate",value:function(){if(this.callback){this.callback=!1;var e=this.props.filterDone;p(e)&&e(this.state.filterValue,this.tempData||[])}}}])&&_e(t.prototype,n),o&&_e(t,o),i}(A);function Ee(e){return(Ee="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Ae(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function Re(e,t){return(Re=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function Pe(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,o=De(e);if(t){var r=De(this).constructor;n=Reflect.construct(o,arguments,r)}else n=o.apply(this,arguments);return Ie(this,n)}}function Ie(e,t){return!t||"object"!==Ee(t)&&"function"!=typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function De(e){return(De=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var Me=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Re(e,t)}(i,e);var t,n,o,r=Pe(i);function i(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,i),(t=r.call(this,e)).state={expand:[]},t}return t=i,(n=[{key:"blockClick",value:function(e){e.stopPropagation()}},{key:"optionClick",value:function(e,t,n,o,r,i){if("line"===o){if(n)return;if(!0===e.__node.loading)return;var a=this.props,l=a.cascader,s=a.prop;if(a.sels,!l.lazy&&!e[s.optgroup])return void this.props.ck(e,t,n);var c=this.state.expand.slice(0,r+1);c[r]=e[this.props.prop.value],this.setState({expand:c})}else"checkbox"===o&&this.props.ck(e,t,n);this.blockClick(i)}},{key:"componentWillReceiveProps",value:function(e){}},{key:"componentWillMount",value:function(){}},{key:"render",value:function(e,t){var n=this,o=e.prop,r=e.empty,i=e.sels,a=e.theme,l=e.radio,s=e.template,c=e.data,u=e.cascader,p=o.name,f=o.value,d=o.disabled,h=o.children,m="hidden"!=e.model.icon,b=[],y=function t(o,r,y){var x=o[h];r=r+u.indent+6;var v=x&&n.state.expand[y]===o[f];return v&&b.push(S("div",{class:"xm-cascader-box",index:y%4,style:{left:r+"px",width:u.indent+"px"}},S("div",{class:"xm-cascader-scroll"},x.map((function(e){return t(e,r,y+1)}))))),function(t,o,r,b){var y=!!i.find((function(e){return e[f]==t[f]})),x=t[d],v=!0===t.__node.half;u.strict&&(y=y||v||t.__node.selected,x=x||t.__node.disabled);var g=y?{color:a.color,border:"none"}:{borderColor:a.color},_=t[h]&&t[h].length>0,w={backgroundColor:"transparent"},k=["xm-option",x?" disabled":"",y?" selected":"",m?"show-icon":"hide-icon"].join(" "),C=_&&"hidden"===e.iconfont.parent?"xm-option-icon-hidden":["xm-option-icon",(v?e.iconfont.half?e.iconfont.half+" xm-custom-icon":0:_&&e.iconfont.parent?e.iconfont.parent+" xm-custom-icon":y?e.iconfont.select?e.iconfont.select:0:e.iconfont.unselect?e.iconfont.unselect+" xm-custom-icon":0)||"xm-iconfont "+(l?"xm-icon-danx":u.strict&&v?"xm-icon-banxuan":"xm-icon-duox")].join(" ");t[f]===n.state.val&&(w.backgroundColor=a.hover);var O={},j={};b&&(O.color=a.color,O.fontWeight=700,j.color=a.color);var E=function(e){"mouseenter"===e.type?t[d]||n.setState({val:t[f]}):"mouseleave"===e.type&&n.setState({val:""})};return S("div",{class:k,style:w,value:t[f],onClick:n.optionClick.bind(n,t,y,x,"line",r),onMouseEnter:E,onMouseLeave:E},m&&S("i",{class:C,style:g,onClick:n.optionClick.bind(n,t,y,x,"checkbox",r)}),S("div",{class:"xm-option-content",style:O,dangerouslySetInnerHTML:{__html:s({data:c,item:t,arr:i,name:t[p],value:t[f]})}}),t[h]&&S("div",{class:"xm-right-arrow",style:j}))}(o,0,y,v)},x=c.map((function(e){return y(e,2,0)})).concat(b).filter((function(e){return e}));return x.length||x.push(S("div",{class:"xm-select-empty"},r)),S("div",{onClick:this.blockClick,class:"xm-body-cascader",style:{width:u.indent+"px",maxHeight:e.height}},x)}},{key:"componentDidMount",value:function(){this.props.onReset("cascader","class")}}])&&Ae(t.prototype,n),o&&Ae(t,o),i}(A);function Te(){return(Te=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e}).apply(this,arguments)}function ze(e){return function(e){if(Array.isArray(e))return Le(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return Le(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Le(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Le(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}function Ve(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Fe(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ve(Object(n),!0).forEach((function(t){Ue(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ve(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Ue(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Be(e){return(Be="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Ne(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}function Ke(e,t){return(Ke=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function He(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,o=Ze(e);if(t){var r=Ze(this).constructor;n=Reflect.construct(o,arguments,r)}else n=o.apply(this,arguments);return qe(this,n)}}function qe(e,t){return!t||"object"!==Be(t)&&"function"!=typeof t?Ye(e):t}function Ye(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Ze(e){return(Ze=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var Qe=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Ke(e,t)}(i,e);var t,n,o,r=He(i);function i(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,i),t=r.call(this,e),st[e.el]=Ye(t),t.state=t.initState(),t.bodyView=null,t}return t=i,(n=[{key:"initState",value:function(){return{data:[],dataObj:{},flatData:[],sels:[],show:!1,tmpColor:"",bodyClass:"",time:0}}},{key:"init",value:function(e,t){var n,o=e.data,r=e.prop,i=e.initValue,a=e.radio,l=e.tree,s=e.cascader;if(t){var c={},u=[];this.load(o,c,u,null,0,i?i.map((function(e){return"object"===Be(e)?e[r.value]:e})):null),n=this.exchangeValue(i||Object.keys(c).filter((function(e){return!0===c[e][r.selected]})),c),a&&n.length>1&&(n=n.slice(0,1),(l.show&&l.strict||s.show&&s.strict)&&this.clearAndReset(o,n,!1)),this.setState({sels:n,dataObj:c,flatData:u})}return this.setState({data:o}),n}},{key:"upDate",value:function(e,t){var n=this.state.dataObj,o=this.props,r=o.prop,i=o.tree,a=o.cascader,l=r.value,s=r.disabled,c=r.children;e.map((function(e){return n["object"===Be(e)?e[l]:e]})).filter((function(e){return e})).forEach((function(e){if(e[s]=!t,i.show&&i.strict||a.show&&a.strict){if(t)for(var n=e;n;)n[s]=!1,n=n.__node.parent;!function e(n){n[s]=!t;var o=n[c];o&&u(o)&&o.forEach((function(t){return e(t)}))}(e)}})),this.setState({dataObj:n})}},{key:"exchangeValue",value:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.state.dataObj,o=this.props,r=o.prop,i=o.tree,a=o.cascader,l=(o.data,r.children),s=r.value,c=e.map((function(e){return"object"===Be(e)?Fe(Fe({},e),{},{__node:{}}):n[e]})).filter((function(e){return e})),p=ze(c);if(i.show&&i.strict||a.show&&a.strict){var f=function e(t,n){var o=n[l];o&&u(o)&&o.forEach((function(n){-1===c.findIndex((function(e){return e[s]===n[s]}))&&t.push(n),e(t,n)}))},d={};d[l]=c,f(p,d),p=p.filter((function(e){return!0!==e[t.props.prop.optgroup]}))}return p}},{key:"value",value:function(e,t,n,o){!1!==t&&!0!==t&&(t=this.state.show);var r=this.props,i=r.prop,a=r.tree,l=r.cascader,s=this.exchangeValue(e);if(!this.checkMax(s,s)){if(a.show&&a.strict||l.show&&l.strict){var c=this.state.data;this.clearAndReset(c,s,!1),s=this.init({data:c,prop:i},!0)}this.resetSelectValue(s,o||s,!0,n),this.setState({show:t})}}},{key:"clearAndReset",value:function(e,t,n){var o=this,r=this.props.prop,i=r.selected,a=r.disabled,l=r.children,s=r.value;e.forEach((function(e){e[i]=-1!=t.findIndex((function(t){return t[s]===e[s]}))||n;var r=e[l];if(r&&u(r)){o.clearAndReset(r,t,e[i]);var c=r.length,p=r.filter((function(e){return!0===e[i]||!0===e.__node.selected})).length;e.__node.selected=p===c,e.__node.half=p>0&&p<c||r.filter((function(e){return!0===e.__node.half})).length>0,e.__node.disabled=r.filter((function(e){return!0===e[a]||!0===e.__node.disabled})).length===c}}))}},{key:"load",value:function(e,t,n,o){var r=this,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,a=arguments.length>5?arguments[5]:void 0,l=this.props,s=l.prop,c=l.tree,p=l.cascader,f=s.children,d=s.optgroup,h=s.value,m=s.selected,b=s.disabled;e.forEach((function(e){e.__node={parent:o,level:i,loading:e.__node&&e.__node.loading},a&&(delete e[m],a.find((function(t){return t===e[h]}))&&(e[m]=!0)),t[e[h]]=e,n.push(e);var l=e[f];if(l&&u(l)){var s=l.length;if(s>0){r.load(l,t,n,e,i+1,a),e[d]=!0,(c.show&&c.strict||p.show&&p.strict)&&(!0===e[m]&&(delete e[m],l.forEach((function(e){return e[m]=!0}))),!0===e[b]&&(delete e[b],l.forEach((function(e){return e[b]=!0}))));var y=l.filter((function(e){return!0===e[m]||!0===e.__node.selected})).length;e.__node.selected=y===s,e.__node.half=y>0&&y<s||l.filter((function(e){return!0===e.__node.half})).length>0,e.__node.disabled=l.filter((function(e){return!0===e[b]||!0===e.__node.disabled})).length===s}}}))}},{key:"resetSelectValue",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2?arguments[2]:void 0,o=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],r=this.props.on;if(p(r)&&this.prepare&&o){var i=r({arr:e,change:t,isAdd:n});if(u(i))return this.value(i,null,!1)}this.setState({sels:e})}},{key:"updateBorderColor",value:function(e){this.setState({tmpColor:e})}},{key:"treeHandler",value:function(e,t,n,o,r){var i=this,a=this.props.prop,l=a.value,s=(a.selected,a.disabled),c=a.children,u=a.optgroup,p=t[c];if(p.filter((function(e){return!(e[s]||e.__node.disabled)})).forEach((function(t){if(t[u])i.treeHandler(e,t,n,o,r);else{var a=e.findIndex((function(e){return e[l]==t[l]}));"del"===o?-1!=a&&(e.splice(a,1),n.push(t)):"half"!==o&&"add"!==o||-1==a&&(e.push(t),n.push(t))}})),r){var f=p.length,d=p.filter((function(t){return-1!==e.findIndex((function(e){return e[l]===t[l]}))||!0===t.__node.selected})).length;t.__node.selected=d===f,t.__node.half=d>0&&d<f}}},{key:"checkMax",value:function(e,t){var n,o=this.props,r=o.max,i=o.maxMethod,a=o.theme,l=(n=r,n-=0,isNaN(n)&&(n=0),n);if(l>0&&t.length>=l)return this.updateBorderColor(a.maxColor),i&&p(i)&&i(t,e),!0}},{key:"itemClick",value:function(e,t,n,o){var r=this.props,i=(r.theme,r.prop),a=r.radio,l=r.repeat,s=r.clickClose,c=(r.max,r.maxMethod,r.tree),u=r.data,p=ze(this.state.sels),f=i.value,d=(i.selected,i.disabled,i.children),h=i.optgroup;if(!n){if(e[h]&&c.strict){e[d];var m,b=[],y=!0;if(e.__node.selected?(m="del",y=!1):e.__node.half?(m="half",this.treeHandler(p,e,b,m),0===b.length&&(m="del",y=!1)):m="add","half"!=m&&this.treeHandler(p,e,b,m),this.checkMax(b,b))return;p=ze(this.state.sels),b=[],this.treeHandler(p,e,b,m,!0),this.resetSelectValue(p,b,y),this.setState({data:this.state.data})}else if(!t||l&&!o){if(this.checkMax(e,p))return;p=a?[e]:[].concat(ze(p),[e]),this.clearAndReset(u,p,t),this.resetSelectValue(p,[e],!t)}else{var x=p.findIndex((function(t){return t[f]==e[f]}));-1!=x&&(p.splice(x,1),this.resetSelectValue(p,[e],!t))}var v=e.__node.parent;if(v){for(;v;){var g=v[d],_=g.length,w=g.filter((function(e){return-1!==p.findIndex((function(t){return t[f]===e[f]}))||!0===e.__node.selected})).length;v.__node.selected=w===_,v.__node.half=w>0&&w<_||g.filter((function(e){return!0===e.__node.half})).length>0,v=v.__node.parent}this.setState({data:this.state.data})}s&&!o&&this.onClick()}}},{key:"onClick",value:function(e){var t=this;if("relative"!==this.props.model.type)if(this.props.disabled)!1!==this.state.show&&this.setState({show:!1});else{var n=!this.state.show;if(n){if(this.props.show&&0==this.props.show())return;Object.keys(at).filter((function(e){return e!=t.props.el})).forEach((function(e){return at[e].closed()}))}else{if(this.props.hide&&0==this.props.hide())return;this.bodyView.scroll&&this.bodyView.scroll(0,0)}this.setState({show:n}),e&&e.stopPropagation()}}},{key:"onReset",value:function(e,t){var n=this;if("data"===t){var o=e.filter((function(e){return!0===e[n.props.prop.selected]}));this.resetSelectValue(d(o,this.state.sels,this.props.prop),o,!0);var r=[];this.load(e,{},r),this.setState({data:e,flatData:r})}else"sels"===t?this.resetSelectValue(e,e,!0):"append"===t?this.append(e):"delete"===t?this.del(e):"auto"===t?this.auto(e):"treeData"===t?this.value(e,null,!0):"close"===t?this.onClick():"class"===t?this.setState({bodyClass:e}):"labelSearchBlur"===t?this.labelRef.blur(e):"labelSearch"===t&&this.generalRef.labelSearch(e)}},{key:"append",value:function(e){var t=this.exchangeValue(e);this.value(d(t,this.state.sels,this.props.prop),this.props.show,!0,t)}},{key:"del",value:function(e){var t=this.props.prop.value,n=this.state.sels,o=this.exchangeValue(e);o.forEach((function(e){var o=n.findIndex((function(n){return n[t]===e[t]}));-1!=o&&n.splice(o,1)})),this.value(n,this.props.show,!0,o)}},{key:"auto",value:function(e){var t=this,n=this.props.prop.value;e.filter((function(e){return-1!=t.state.sels.findIndex((function(t){return t[n]===e[n]}))})).length==e.length?this.del(e):this.append(e)}},{key:"changeExpandedKeys",value:function(e){var t=this.props,n=t.tree,o=t.prop,r=this.state,i=r.dataObj,a=r.flatData;n.show&&this.treeRef.init({dataObj:i,flatData:a,prop:o,tree:{expandedKeys:e}})}},{key:"calcPosition",value:function(){if(this.state.show&&"fixed"===this.props.model.type){var e=this.base.getBoundingClientRect();return Date.now()-this.state.time>10&&this.setState({time:Date.now()}),{position:"fixed",left:e.x,top:e.y+e.height+4,width:e.width}}return{}}},{key:"componentWillReceiveProps",value:function(e){this.init(e,e.updateData)}},{key:"componentWillMount",value:function(){this.init(this.props,!0)}},{key:"render",value:function(e,t){var n=this,o=e.theme,r=e.prop,i=(e.radio,e.repeat,e.clickClose,e.on,e.max,e.maxMethod,e.content),a=e.disabled,l=e.tree,s={borderColor:o.color},c=t.data,u=t.dataObj,p=t.flatData,f=t.sels,d=t.show,h=t.tmpColor,m=t.bodyClass;a&&(d=!1);var b={style:Fe(Fe({},e.style),d?s:{}),onClick:this.onClick.bind(this),ua:-1!=navigator.userAgent.indexOf("Mac OS")?"mac":"win",size:e.size,tabindex:1};h&&(b.style.borderColor=h,setTimeout((function(){b.style.borderColor="",n.updateBorderColor("")}),300)),r.value;var y=Fe(Fe({},e),{},{data:c,sels:f,ck:this.itemClick.bind(this),title:f.map((function(e){return e[r.name]})).join(","),onReset:this.onReset.bind(this)}),x=Fe(Fe({},e),{},{data:c,dataObj:u,flatData:p,sels:f,ck:this.itemClick.bind(this),show:d,onReset:this.onReset.bind(this)}),v=i?S(ve,x):l.show?S(je,Te({},x,{ref:function(e){return n.treeRef=e}})):e.cascader.show?S(Me,x):S(fe,Te({},x,{ref:function(e){return n.generalRef=e}})),g=this.calcPosition();return S("xm-select",b,S("input",{class:"xm-select-default","lay-verify":e.layVerify,"lay-verType":e.layVerType,"lay-reqText":e.layReqText,name:e.name,value:f.map((function(e){return e[r.value]})).join(",")}),S("i",{class:d?"xm-icon xm-icon-expand":"xm-icon"}),0===f.length&&S("div",{class:"xm-tips"},e.tips),S(te,Te({},y,{ref:function(e){return n.labelRef=e}})),S("div",{class:["xm-body",m,e.model.type,d?"":"dis"].join(" "),style:g,ref:function(e){return n.bodyView=e}},v),a&&S("div",{class:"xm-select-disabled"}))}},{key:"componentDidMount",value:function(){var e=this;this.prepare=!0,this.base.addEventListener("keydown",(function(t){13===t.keyCode&&e.onClick()})),this.input=this.base.querySelector(".xm-select-default");var t=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;t&&new t((function(t){t.forEach((function(t){"attributes"==t.type&&"class"===t.attributeName&&-1!==e.input.className.indexOf("layui-form-danger")&&(e.input.className="xm-select-default",e.base.style.borderColor=e.props.theme.maxColor)}))})).observe(this.input,{attributes:!0});for(var n=this.base;n;){if("FORM"===n.tagName){var o=n.querySelector('button[type="reset"]');o&&o.addEventListener("click",(function(t){e.init(e.props,!0)}));break}n=n.parentElement}}},{key:"componentDidUpdate",value:function(){var e=this.props,t=e.direction,n=e.model;if("relative"!==n.type&&"fixed"!==n.type){var o=this.base.getBoundingClientRect();if("auto"===t){this.bodyView.style.display="block",this.bodyView.style.visibility="hidden";var r=this.bodyView.getBoundingClientRect().height;this.bodyView.style.display="",this.bodyView.style.visibility="";var i=o.y||o.top||0,a=document.documentElement.clientHeight-i-o.height-20;t=a>r||i<a?"down":"up"}"down"==t?(this.bodyView.style.top=o.height+4+"px",this.bodyView.style.bottom="auto"):(this.bodyView.style.top="auto",this.bodyView.style.bottom=o.height+4+"px")}}}])&&Ne(t.prototype,n),o&&Ne(t,o),i}(A),Je={tips:"璇烽�夋嫨",empty:"鏆傛棤鏁版嵁",searchTips:"璇烽�夋嫨",toolbar:{ALL:"鍏ㄩ��",CLEAR:"娓呯┖",REVERSE:"鍙嶉��",SEARCH:"鎼滅储"},paging:{prev:"涓婁竴椤�",next:"涓嬩竴椤�"}},We={zn:Je,en:{tips:"please selected",empty:"no data",searchTips:"please search",toolbar:{ALL:"select all",CLEAR:"clear",REVERSE:"invert select",SEARCH:"search"},paging:{prev:"prev",next:"next"}}};function Ge(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Xe(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ge(Object(n),!0).forEach((function(t){$e(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ge(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function $e(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function et(){return(et=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e}).apply(this,arguments)}function tt(e){return(tt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function nt(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}var ot=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.init(t)}var t,n,o;return t=e,(n=[{key:"init",value:function(e){this.options=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"zn",t=We[e]||Je;return{language:e,languageProp:t,data:[],content:"",name:"select",layVerify:"",layVerType:"",layReqText:"",size:"medium",disabled:!1,initValue:null,create:null,tips:t.tips,empty:t.empty,delay:500,searchTips:t.searchTips,filterable:!1,filterMethod:function(e,t,n,o){return!e||-1!=t[o.name].indexOf(e)},remoteSearch:!1,remoteMethod:function(e,t){t([])},direction:"auto",style:{},height:"200px",autoRow:!1,paging:!1,pageSize:10,pageEmptyShow:!0,pageRemote:!1,radio:!1,repeat:!1,clickClose:!1,max:0,maxMethod:function(e,t){},showCount:0,enableKeyboard:!0,toolbar:{show:!1,showIcon:!0,list:["ALL","CLEAR"]},tree:{show:!1,showFolderIcon:!0,showLine:!0,indent:20,expandedKeys:[],strict:!0,lazy:!1,load:null,simple:!1,nodeType:"__node_type",clickExpand:!0,clickCheck:!0},cascader:{show:!1,indent:100,strict:!0},prop:{name:"name",value:"value",selected:"selected",disabled:"disabled",children:"children",optgroup:"optgroup",click:"click"},theme:{color:"#009688",maxColor:"#e54d42",hover:"#f2f2f2"},model:{label:{type:"block",text:{left:"",right:"",separator:", "},block:{showCount:0,showIcon:!0,template:null},count:{template:function(e,t){return"宸查�変腑 ".concat(t.length," 椤�, 鍏� ").concat(e.length," 椤�")}}},icon:"show",type:"absolute"},iconfont:{select:"",unselect:"",half:"",parent:""},show:function(){},hide:function(){},template:function(e){e.item,e.sels;var t=e.name;return e.value,t},on:function(e){e.arr,e.item,e.selected}}}(e.language),this.update(e)}},{key:"update",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=!!e.data;this.options=f(this.options,e),this.options.__render_success=!1;var n=this.options.dom;if(n){var o=this.options.data||[];if("function"==typeof o&&(o=o(),this.options.data=o),u(o))return Y(S(Qe,et({},this.options,{__update:Date.now(),updateData:t})),n),this.options.__render_success=!0,this;c("data鏁版嵁蹇呴』涓烘暟缁勭被鍨�, 涓嶈兘鏄�".concat("undefined"==typeof data?"undefined":tt(data),"绫诲瀷"))}else c("娌℃湁鎵惧埌娓叉煋瀵硅薄: ".concat(e.el,", 璇锋鏌�"))}},{key:"reset",value:function(){var e=this.options.el;return this.init(lt[e]),st[e].init(this.options,!0),this}},{key:"opened",value:function(){var e=st[this.options.el];return!e.state.show&&e.onClick(),this}},{key:"closed",value:function(){var e=st[this.options.el];return e.state.show&&e.onClick(),this}},{key:"getValue",value:function(e){var t=this,n=this.options,o=n.tree,r=n.prop,i=n.data,a=st[this.options.el].state.sels,l=a;o.show&&o.strict&&o.simple&&h(i,a,l=[],r);var s=m(l,r.children,["__node"]);return"name"===e?s.map((function(e){return e[t.options.prop.name]})):"nameStr"===e?s.map((function(e){return e[t.options.prop.name]})).join(","):"value"===e?s.map((function(e){return e[t.options.prop.value]})):"valueStr"===e?s.map((function(e){return e[t.options.prop.value]})).join(","):s}},{key:"setValue",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(u(e))return st[this.options.el].value(this.options.radio?e.slice(0,1):e,t,n),this;c("璇蜂紶鍏ユ暟缁勭粨鏋�...")}},{key:"append",value:function(e){if(u(e))return st[this.options.el].append(e),this;c("璇蜂紶鍏ユ暟缁勭粨鏋�...")}},{key:"delete",value:function(e){if(u(e))return st[this.options.el].del(e),this;c("璇蜂紶鍏ユ暟缁勭粨鏋�...")}},{key:"warning",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=e||this.options.theme.maxColor;return!0===t?st[this.options.el].base.style.borderColor=n:st[this.options.el].updateBorderColor(n),this}},{key:"getTreeValue",value:function(e,t){var n=this.options,o=n.tree,r=n.cascader,i=n.prop,a=i.value;if(!o.show&&!r.show)return this.getValue(e);for(var l=st[this.options.el].state.sels,s=[],c=o.nodeType,u=function(e,t){s.find((function(t){return t[a]===e[a]}))||((e=Xe({},e))[c]=t,s.push(e))},p=0;p<l.length;p++){var f=Xe({},l[p]);for(u(f,"leaf");f=f.__node.parent;){var d=f.__node,h=d.half,b=d.selected;!e&&b?u(f,"parent"):t&&h&&!b&&u(f,"half")}}return m(s,i.children,["__node"])}},{key:"changeExpandedKeys",value:function(e){return st[this.options.el].changeExpandedKeys(e),this}},{key:"enable",value:function(e){if(u(e)){if(0!==e.length)return st[this.options.el].upDate(e,!0),this}else c("璇蜂紶鍏ユ暟缁勭粨鏋�...")}},{key:"disable",value:function(e){if(u(e)){if(0!==e.length)return st[this.options.el].upDate(e,!1),this}else c("璇蜂紶鍏ユ暟缁勭粨鏋�...")}},{key:"scroll",value:function(e){var t=this.options.dom.querySelector('.xm-option[value="'.concat(e,'"]'));return t&&t.scrollIntoView(!1),this}},{key:"calcPosition",value:function(){return st[this.options.el].calcPosition(),this}}])&&nt(t.prototype,n),o&&nt(t,o),e}();function rt(e){return function(e){if(Array.isArray(e))return it(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return it(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return it(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function it(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}var at={},lt={},st={};t.c={name:o.a,version:o.b,doc:o.c,render:function(e){var t=e.el;if(e.dom=s(t),t.nodeType){var n="DOM_RENDER_"+Date.now()+"_"+Math.random();t.setAttribute(o.a,n),t="[".concat(o.a,"='").concat(n,"']"),e.el=t}lt[t]=e;var r=new ot(e);return r&&r.options.__render_success&&(at[t]=r),r},get:function(e,t){var n;switch(Object.prototype.toString.call(e)){case"[object String]":e&&(n=function(t){return t===e});break;case"[object RegExp]":n=function(t){return e.test(t)};break;case"[object Function]":n=e}var o=Object.keys(at),r=(n?o.filter(n):o).map((function(e){return at[e]})).filter((function(e){return s(e.options.el)}));return t?r[0]:r},batch:function(e,t){var n=Array.prototype.slice.call(arguments);return n.splice(0,2),this.get(e).map((function(e){return e[t].apply(e,rt(n))}))},arr2tree:function(e,t,n,o,r){return e.forEach((function(i){if(i[t]!=r){var a=e.find((function(e){return e[n]===i[t]}));a&&(a[o]||(a[o]=[]),a[o].push(i))}})),e.filter((function(e){return e[t]==r}))}}}});
\ No newline at end of file
diff --git a/src/main/webapp/views/admin/apiLog/apiLog.html b/src/main/webapp/views/admin/apiLog/apiLog.html
new file mode 100644
index 0000000..691e5ae
--- /dev/null
+++ b/src/main/webapp/views/admin/apiLog/apiLog.html
@@ -0,0 +1,187 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/admin.css?v=318" media="all">
+ <link rel="stylesheet" href="../../../static/css/cool.css" media="all">
+</head>
+<body>
+
+<div class="layui-fluid">
+ <div class="layui-card">
+ <div class="layui-card-body">
+ <div class="layui-form toolbar" id="search-box">
+ <div class="layui-form-item">
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="namespace" placeholder="鍚嶇О绌洪棿" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline" style="width: 300px">
+ <div class="layui-input-inline">
+ <input class="layui-input layui-laydate-range" name="create_time" type="text" placeholder="璧峰鏃堕棿 - 缁堟鏃堕棿" autocomplete="off" style="width: 300px">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="condition" placeholder="璇疯緭鍏�" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline"> 
+ <button class="layui-btn icon-btn" lay-filter="search" lay-submit>
+ <i class="layui-icon"></i>鎼滅储
+ </button>
+ <button class="layui-btn icon-btn" lay-filter="reset" lay-submit>
+ <i class="layui-icon"></i>閲嶇疆
+ </button>
+ </div>
+ </div>
+ </div>
+ <table class="layui-hide" id="apiLog" lay-filter="apiLog"></table>
+ </div>
+ </div>
+</div>
+
+<script type="text/html" id="toolbar">
+ <div class="layui-btn-container">
+<!-- <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">鏂板</button>-->
+ <button class="layui-btn layui-btn-sm layui-btn-danger" id="btn-delete" lay-event="deleteData">鍒犻櫎</button>
+ <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData" style="float: right">瀵煎嚭</button>
+ </div>
+</script>
+
+<script type="text/html" id="operate">
+<!-- <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">淇敼</a>-->
+ <a class="layui-btn layui-btn-danger layui-btn-xs btn-edit" lay-event="del">鍒犻櫎</a>
+</script>
+
+<script type="text/html" id="resTpl">
+ <span name="settle"
+ {{# if( d.result === 1){ }}
+ class="layui-badge layui-badge-green" >{{d.result$}}</span>
+ {{# }else { }}
+ class="layui-badge layui-badge-red" >{{d.result$}}</span>
+ {{# } }}
+</script>
+
+<script type="text/javascript" src="../../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/apiLog/apiLog.js" charset="utf-8"></script>
+</body>
+<!-- 琛ㄥ崟寮圭獥 -->
+<script type="text/html" id="editDialog">
+ <form id="detail" lay-filter="detail" class="layui-form admin-form model-form">
+ <input name="id" type="hidden">
+ <div class="layui-row">
+ <div class="layui-col-md12">
+ <div class="layui-form-item">
+ <label class="layui-form-label">鏃ュ織缂栧彿: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="uuid" placeholder="璇疯緭鍏ユ棩蹇楃紪鍙�">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">鍚嶇О绌洪棿: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="namespace" placeholder="璇疯緭鍏ュ悕绉扮┖闂�">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">鎺ュ彛鍦板潃: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="url" placeholder="璇疯緭鍏ユ帴鍙e湴鍧�">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">骞冲彴瀵嗛挜: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="appkey" placeholder="璇疯緭鍏ュ钩鍙板瘑閽�">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">鏃堕棿鎴�: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="timestamp" placeholder="璇疯緭鍏ユ椂闂存埑">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">瀹㈡埛绔疘P: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="clientIp" placeholder="璇疯緭鍏ュ鎴风IP">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">璇锋眰鍐呭: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="request" placeholder="璇疯緭鍏ヨ姹傚唴瀹�">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">鍝嶅簲鍐呭: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="response" placeholder="璇疯緭鍏ュ搷搴斿唴瀹�">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">寮傚父鍐呭: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="err" placeholder="璇疯緭鍏ュ紓甯稿唴瀹�">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">缁撴灉: </label>
+ <div class="layui-input-block">
+ <select name="result">
+ <option value="">璇烽�夋嫨缁撴灉</option>
+ <option value="1">鎴愬姛</option>
+ <option value="0">澶辫触</option>
+ </select>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">鐘舵��: </label>
+ <div class="layui-input-block">
+ <select name="status">
+ <option value="">璇烽�夋嫨鐘舵��</option>
+ <option value="1">姝e父</option>
+ <option value="0">绂佺敤</option>
+ </select>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">娣诲姞鏃堕棿: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="createTime" id="createTime$" placeholder="璇疯緭鍏ユ坊鍔犳椂闂�">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">淇敼鏃堕棿: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="updateTime" id="updateTime$" placeholder="璇疯緭鍏ヤ慨鏀规椂闂�">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">澶囨敞: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="memo" placeholder="璇疯緭鍏ュ娉�">
+ </div>
+ </div>
+
+ </div>
+ </div>
+ <hr class="layui-bg-gray">
+ <div class="layui-form-item text-right">
+ <button class="layui-btn" lay-filter="editSubmit" lay-submit="">淇濆瓨</button>
+ <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">鍙栨秷</button>
+ </div>
+ </form>
+</script>
+</html>
+
diff --git a/src/main/webapp/views/admin/basLift/basLift.html b/src/main/webapp/views/admin/basLift/basLift.html
new file mode 100644
index 0000000..2d2dd95
--- /dev/null
+++ b/src/main/webapp/views/admin/basLift/basLift.html
@@ -0,0 +1,260 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/admin.css?v=318" media="all">
+ <link rel="stylesheet" href="../../../static/css/cool.css" media="all">
+</head>
+<body>
+
+<div class="layui-fluid">
+ <div class="layui-card">
+ <div class="layui-card-body">
+ <div class="layui-form toolbar" id="search-box">
+ <div class="layui-form-item">
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="id" placeholder="缂栧彿" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline" style="width: 300px">
+ <div class="layui-input-inline">
+ <input class="layui-input layui-laydate-range" name="create_time" type="text" placeholder="璧峰鏃堕棿 - 缁堟鏃堕棿" autocomplete="off" style="width: 300px">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="condition" placeholder="璇疯緭鍏�" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline"> 
+ <button class="layui-btn icon-btn" lay-filter="search" lay-submit>
+ <i class="layui-icon"></i>鎼滅储
+ </button>
+ <button class="layui-btn icon-btn" lay-filter="reset" lay-submit>
+ <i class="layui-icon"></i>閲嶇疆
+ </button>
+ </div>
+ </div>
+ </div>
+ <table class="layui-hide" id="basLift" lay-filter="basLift"></table>
+ </div>
+ </div>
+</div>
+
+<script type="text/html" id="toolbar">
+ <div class="layui-btn-container">
+ <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">鏂板</button>
+ <button class="layui-btn layui-btn-sm layui-btn-danger" id="btn-delete" lay-event="deleteData">鍒犻櫎</button>
+ <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData" style="float: right">瀵煎嚭</button>
+ </div>
+</script>
+
+<script type="text/html" id="operate">
+ <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">淇敼</a>
+ <a class="layui-btn layui-btn-danger layui-btn-xs btn-edit" lay-event="del">鍒犻櫎</a>
+</script>
+
+<script type="text/javascript" src="../../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/basLift/basLift.js" charset="utf-8"></script>
+</body>
+<!-- 琛ㄥ崟寮圭獥 -->
+<script type="text/html" id="editDialog">
+ <form id="detail" lay-filter="detail" class="layui-form admin-form model-form">
+ <input name="id" type="hidden">
+ <div class="layui-row">
+ <div class="layui-col-md12">
+ <div class="layui-form-item">
+ <label class="layui-form-label layui-form-required">鎻愬崌鏈哄彿: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="liftNo" placeholder="璇疯緭鍏ユ彁鍗囨満鍙�" lay-vertype="tips" lay-verify="required">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">褰撳墠浠诲姟鐘舵��: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="status" placeholder="璇疯緭鍏ュ綋鍓嶄换鍔$姸鎬�">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">浠诲姟鍙�: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="wrkNo" placeholder="璇疯緭鍏ヤ换鍔″彿">
+ </div>
+ </div>
+<!-- <div class="layui-form-item">-->
+<!-- <label class="layui-form-label">淇敼鏃堕棿: </label>-->
+<!-- <div class="layui-input-block">-->
+<!-- <input class="layui-input" name="updateTime" id="updateTime$" placeholder="璇疯緭鍏ヤ慨鏀规椂闂�">-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- <div class="layui-form-item">-->
+<!-- <label class="layui-form-label">淇敼浜哄憳: </label>-->
+<!-- <div class="layui-input-block cool-auto-complete">-->
+<!-- <input class="layui-input" name="updateBy" placeholder="璇疯緭鍏ヤ慨鏀逛汉鍛�" style="display: none">-->
+<!-- <input id="updateBy$" name="updateBy$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ヤ慨鏀逛汉鍛�" onfocus=this.blur()>-->
+<!-- <div class="cool-auto-complete-window">-->
+<!-- <input class="cool-auto-complete-window-input" data-key="userQueryByupdateBy" onkeyup="autoLoad(this.getAttribute('data-key'))">-->
+<!-- <select class="cool-auto-complete-window-select" data-key="userQueryByupdateBySelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">-->
+<!-- </select>-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- </div>-->
+ <div class="layui-form-item">
+ <label class="layui-form-label">澶囨敞: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="memo" placeholder="璇疯緭鍏ュ娉�">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">浣滀笟鏍囪: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="pakMk" placeholder="璇疯緭鍏ヤ綔涓氭爣璁�">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">鎻愬崌鏈洪攣瀹�: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="liftLock" placeholder="璇疯緭鍏ユ彁鍗囨満閿佸畾">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">浣嶇疆鍒拌揪鍙嶉: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="positionArrivalFeedback" placeholder="璇疯緭鍏ヤ綅缃埌杈惧弽棣�">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">鍑嗗灏辩华: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="ready" placeholder="璇疯緭鍏ュ噯澶囧氨缁�">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">杩愯涓�: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="running" placeholder="璇疯緭鍏ヨ繍琛屼腑">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">鑱旀満/鍗曟満: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="mode" placeholder="璇疯緭鍏ヨ仈鏈�/鍗曟満">
+ </div>
+ </div>
+<!-- <div class="layui-form-item">-->
+<!-- <label class="layui-form-label">杈撻�佺嚎鍓嶇鍏夌數鏈夎揣: </label>-->
+<!-- <div class="layui-input-block">-->
+<!-- <input class="layui-input" name="lineFrontHasStock" placeholder="璇疯緭鍏ヨ緭閫佺嚎鍓嶇鍏夌數鏈夎揣">-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- <div class="layui-form-item">-->
+<!-- <label class="layui-form-label">杈撻�佺嚎姝h浆鍙嶉: </label>-->
+<!-- <div class="layui-input-block">-->
+<!-- <input class="layui-input" name="forwardRotationFeedback" placeholder="璇疯緭鍏ヨ緭閫佺嚎姝h浆鍙嶉">-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- <div class="layui-form-item">-->
+<!-- <label class="layui-form-label">杈撻�佺嚎鍙嶈浆鍙嶉: </label>-->
+<!-- <div class="layui-input-block">-->
+<!-- <input class="layui-input" name="reverseFeedback" placeholder="璇疯緭鍏ヨ緭閫佺嚎鍙嶈浆鍙嶉">-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- <div class="layui-form-item">-->
+<!-- <label class="layui-form-label">杈撻�佺嚎鐢垫満杩囪浇: </label>-->
+<!-- <div class="layui-input-block">-->
+<!-- <input class="layui-input" name="motorOverload" placeholder="璇疯緭鍏ヨ緭閫佺嚎鐢垫満杩囪浇">-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- <div class="layui-form-item">-->
+<!-- <label class="layui-form-label">杈撻�佺嚎鏈鍏夌數鏈夎揣: </label>-->
+<!-- <div class="layui-input-block">-->
+<!-- <input class="layui-input" name="lineEndHasStock" placeholder="璇疯緭鍏ヨ緭閫佺嚎鏈鍏夌數鏈夎揣">-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- <div class="layui-form-item">-->
+<!-- <label class="layui-form-label">杩涜緭閫佺嚎鍗℃墭鐩樻姤璀�: </label>-->
+<!-- <div class="layui-input-block">-->
+<!-- <input class="layui-input" name="inConveyLineCardTrayAlarm" placeholder="璇疯緭鍏ヨ繘杈撻�佺嚎鍗℃墭鐩樻姤璀�">-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- <div class="layui-form-item">-->
+<!-- <label class="layui-form-label">鍑鸿緭閫佺嚎鍗℃墭鐩樻姤璀�: </label>-->
+<!-- <div class="layui-input-block">-->
+<!-- <input class="layui-input" name="outConveyLineCardTrayAlarm" placeholder="璇疯緭鍏ュ嚭杈撻�佺嚎鍗℃墭鐩樻姤璀�">-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- <div class="layui-form-item">-->
+<!-- <label class="layui-form-label">骞冲彴浣嶇疆鍋忓樊鎶ヨ: </label>-->
+<!-- <div class="layui-input-block">-->
+<!-- <input class="layui-input" name="platPositionDeviationAlarm" placeholder="璇疯緭鍏ュ钩鍙颁綅缃亸宸姤璀�">-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- <div class="layui-form-item">-->
+<!-- <label class="layui-form-label">骞冲彴鎵煩鍋忓樊鎶ヨ: </label>-->
+<!-- <div class="layui-input-block">-->
+<!-- <input class="layui-input" name="platTorqueDeviationAlarm" placeholder="璇疯緭鍏ュ钩鍙版壄鐭╁亸宸姤璀�">-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- <div class="layui-form-item">-->
+<!-- <label class="layui-form-label">骞冲彴鍥涘悜杞︽娴�: </label>-->
+<!-- <div class="layui-input-block">-->
+<!-- <input class="layui-input" name="platShuttleCheck" placeholder="璇疯緭鍏ュ钩鍙板洓鍚戣溅妫�娴�">-->
+<!-- </div>-->
+<!-- </div>-->
+ <div class="layui-form-item">
+ <label class="layui-form-label">鏈氨缁姸鎬�: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="notReady" placeholder="璇疯緭鍏ユ湭灏辩华鐘舵��">
+ </div>
+ </div>
+<!-- <div class="layui-form-item">-->
+<!-- <label class="layui-form-label">浼烘湇1閿欒: </label>-->
+<!-- <div class="layui-input-block">-->
+<!-- <input class="layui-input" name="servoError1" placeholder="璇疯緭鍏ヤ己鏈�1閿欒">-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- <div class="layui-form-item">-->
+<!-- <label class="layui-form-label">浼烘湇2閿欒: </label>-->
+<!-- <div class="layui-input-block">-->
+<!-- <input class="layui-input" name="servoError2" placeholder="璇疯緭鍏ヤ己鏈�2閿欒">-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- <div class="layui-form-item">-->
+<!-- <label class="layui-form-label">浼烘湇3閿欒: </label>-->
+<!-- <div class="layui-input-block">-->
+<!-- <input class="layui-input" name="servoError3" placeholder="璇疯緭鍏ヤ己鏈�3閿欒">-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- <div class="layui-form-item">-->
+<!-- <label class="layui-form-label">浼烘湇4閿欒: </label>-->
+<!-- <div class="layui-input-block">-->
+<!-- <input class="layui-input" name="servoError4" placeholder="璇疯緭鍏ヤ己鏈�4閿欒">-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- <div class="layui-form-item">-->
+<!-- <label class="layui-form-label">鎻愬崌鏈哄疄闄呴�熷害鍙嶉: </label>-->
+<!-- <div class="layui-input-block">-->
+<!-- <input class="layui-input" name="liftActualSpeed" placeholder="璇疯緭鍏ユ彁鍗囨満瀹為檯閫熷害鍙嶉">-->
+<!-- </div>-->
+<!-- </div>-->
+
+ </div>
+ </div>
+ <hr class="layui-bg-gray">
+ <div class="layui-form-item text-right">
+ <button class="layui-btn" lay-filter="editSubmit" lay-submit="">淇濆瓨</button>
+ <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">鍙栨秷</button>
+ </div>
+ </form>
+</script>
+</html>
+
diff --git a/src/main/webapp/views/admin/basLiftErr/basLiftErr.html b/src/main/webapp/views/admin/basLiftErr/basLiftErr.html
new file mode 100644
index 0000000..c565951
--- /dev/null
+++ b/src/main/webapp/views/admin/basLiftErr/basLiftErr.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/admin.css?v=318" media="all">
+ <link rel="stylesheet" href="../../../static/css/cool.css" media="all">
+</head>
+<body>
+
+<div class="layui-fluid">
+ <div class="layui-card">
+ <div class="layui-card-body">
+ <div class="layui-form toolbar" id="search-box">
+ <div class="layui-form-item">
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="errorCode" placeholder="寮傚父鐮�" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline" style="width: 300px">
+ <div class="layui-input-inline">
+ <input class="layui-input layui-laydate-range" name="create_time" type="text" placeholder="璧峰鏃堕棿 - 缁堟鏃堕棿" autocomplete="off" style="width: 300px">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="condition" placeholder="璇疯緭鍏�" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline"> 
+ <button class="layui-btn icon-btn" lay-filter="search" lay-submit>
+ <i class="layui-icon"></i>鎼滅储
+ </button>
+ <button class="layui-btn icon-btn" lay-filter="reset" lay-submit>
+ <i class="layui-icon"></i>閲嶇疆
+ </button>
+ </div>
+ </div>
+ </div>
+ <table class="layui-hide" id="basLiftErr" lay-filter="basLiftErr"></table>
+ </div>
+ </div>
+</div>
+
+<script type="text/html" id="toolbar">
+ <div class="layui-btn-container">
+ <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">鏂板</button>
+ <button class="layui-btn layui-btn-sm layui-btn-danger" id="btn-delete" lay-event="deleteData">鍒犻櫎</button>
+ <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData" style="float: right">瀵煎嚭</button>
+ </div>
+</script>
+
+<script type="text/html" id="operate">
+ <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">淇敼</a>
+ <a class="layui-btn layui-btn-danger layui-btn-xs btn-edit" lay-event="del">鍒犻櫎</a>
+</script>
+
+<script type="text/javascript" src="../../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/basLiftErr/basLiftErr.js" charset="utf-8"></script>
+</body>
+<!-- 琛ㄥ崟寮圭獥 -->
+<script type="text/html" id="editDialog">
+ <form id="detail" lay-filter="detail" class="layui-form admin-form model-form">
+ <input name="id" type="hidden">
+ <div class="layui-row">
+ <div class="layui-col-md12">
+ <div class="layui-form-item">
+ <label class="layui-form-label layui-form-required">寮傚父鐮�: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="errorCode" placeholder="璇疯緭鍏ュ紓甯哥爜" lay-vertype="tips" lay-verify="required">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">寮傚父: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="errName" placeholder="璇疯緭鍏ュ紓甯�">
+ </div>
+ </div>
+<!-- <div class="layui-form-item">-->
+<!-- <label class="layui-form-label">淇敼浜哄憳: </label>-->
+<!-- <div class="layui-input-block cool-auto-complete">-->
+<!-- <input class="layui-input" name="modiUser" placeholder="璇疯緭鍏ヤ慨鏀逛汉鍛�" style="display: none">-->
+<!-- <input id="modiUser$" name="modiUser$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ヤ慨鏀逛汉鍛�" onfocus=this.blur()>-->
+<!-- <div class="cool-auto-complete-window">-->
+<!-- <input class="cool-auto-complete-window-input" data-key="userQueryBymodiUser" onkeyup="autoLoad(this.getAttribute('data-key'))">-->
+<!-- <select class="cool-auto-complete-window-select" data-key="userQueryBymodiUserSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">-->
+<!-- </select>-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- <div class="layui-form-item">-->
+<!-- <label class="layui-form-label">淇敼鏃堕棿: </label>-->
+<!-- <div class="layui-input-block">-->
+<!-- <input class="layui-input" name="modiTime" id="modiTime$" placeholder="璇疯緭鍏ヤ慨鏀规椂闂�">-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- <div class="layui-form-item">-->
+<!-- <label class="layui-form-label">娣诲姞浜哄憳: </label>-->
+<!-- <div class="layui-input-block cool-auto-complete">-->
+<!-- <input class="layui-input" name="appeUser" placeholder="璇疯緭鍏ユ坊鍔犱汉鍛�" style="display: none">-->
+<!-- <input id="appeUser$" name="appeUser$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ユ坊鍔犱汉鍛�" onfocus=this.blur()>-->
+<!-- <div class="cool-auto-complete-window">-->
+<!-- <input class="cool-auto-complete-window-input" data-key="userQueryByappeUser" onkeyup="autoLoad(this.getAttribute('data-key'))">-->
+<!-- <select class="cool-auto-complete-window-select" data-key="userQueryByappeUserSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">-->
+<!-- </select>-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- <div class="layui-form-item">-->
+<!-- <label class="layui-form-label">娣诲姞鏃堕棿: </label>-->
+<!-- <div class="layui-input-block">-->
+<!-- <input class="layui-input" name="appeTime" id="appeTime$" placeholder="璇疯緭鍏ユ坊鍔犳椂闂�">-->
+<!-- </div>-->
+<!-- </div>-->
+
+ </div>
+ </div>
+ <hr class="layui-bg-gray">
+ <div class="layui-form-item text-right">
+ <button class="layui-btn" lay-filter="editSubmit" lay-submit="">淇濆瓨</button>
+ <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">鍙栨秷</button>
+ </div>
+ </form>
+</script>
+</html>
+
diff --git a/src/main/webapp/views/admin/basLiftErrLog/basLiftErrLog.html b/src/main/webapp/views/admin/basLiftErrLog/basLiftErrLog.html
new file mode 100644
index 0000000..7886300
--- /dev/null
+++ b/src/main/webapp/views/admin/basLiftErrLog/basLiftErrLog.html
@@ -0,0 +1,240 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/admin.css?v=318" media="all">
+ <link rel="stylesheet" href="../../../static/css/cool.css" media="all">
+</head>
+<body>
+
+<div class="layui-fluid">
+ <div class="layui-card">
+ <div class="layui-card-body">
+ <div class="layui-form toolbar" id="search-box">
+ <div class="layui-form-item">
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="id" placeholder="缂栧彿" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline" style="width: 300px">
+ <div class="layui-input-inline">
+ <input class="layui-input layui-laydate-range" name="create_time" type="text" placeholder="璧峰鏃堕棿 - 缁堟鏃堕棿" autocomplete="off" style="width: 300px">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="condition" placeholder="璇疯緭鍏�" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline"> 
+ <button class="layui-btn icon-btn" lay-filter="search" lay-submit>
+ <i class="layui-icon"></i>鎼滅储
+ </button>
+ <button class="layui-btn icon-btn" lay-filter="reset" lay-submit>
+ <i class="layui-icon"></i>閲嶇疆
+ </button>
+ </div>
+ </div>
+ </div>
+ <table class="layui-hide" id="basLiftErrLog" lay-filter="basLiftErrLog"></table>
+ </div>
+ </div>
+</div>
+
+<script type="text/html" id="toolbar">
+ <div class="layui-btn-container">
+<!-- <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">鏂板</button>-->
+<!-- <button class="layui-btn layui-btn-sm layui-btn-danger" id="btn-delete" lay-event="deleteData">鍒犻櫎</button>-->
+ <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData" style="float: right">瀵煎嚭</button>
+ </div>
+</script>
+
+<script type="text/html" id="operate">
+ <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">淇敼</a>
+ <a class="layui-btn layui-btn-danger layui-btn-xs btn-edit" lay-event="del">鍒犻櫎</a>
+</script>
+
+<script type="text/javascript" src="../../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/basLiftErrLog/basLiftErrLog.js" charset="utf-8"></script>
+</body>
+<!-- 琛ㄥ崟寮圭獥 -->
+<script type="text/html" id="editDialog">
+ <form id="detail" lay-filter="detail" class="layui-form admin-form model-form">
+ <input name="id" type="hidden">
+ <div class="layui-row">
+ <div class="layui-col-md12">
+ <div class="layui-form-item">
+ <label class="layui-form-label">缂栧彿: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="uuid" placeholder="璇疯緭鍏ョ紪鍙�">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">宸ヤ綔鍙�: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="wrkNo" placeholder="璇疯緭鍏ュ伐浣滃彿">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">鍙戠敓鏃堕棿: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="startTime" id="startTime$" placeholder="璇疯緭鍏ュ彂鐢熸椂闂�">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">缁撴潫鏃堕棿: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="endTime" id="endTime$" placeholder="璇疯緭鍏ョ粨鏉熸椂闂�">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">宸ヤ綔鐘舵��: </label>
+ <div class="layui-input-block cool-auto-complete">
+ <input class="layui-input" name="wrkSts" placeholder="璇疯緭鍏ュ伐浣滅姸鎬�" style="display: none">
+ <input id="wrkSts$" name="wrkSts$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ュ伐浣滅姸鎬�" onfocus=this.blur()>
+ <div class="cool-auto-complete-window">
+ <input class="cool-auto-complete-window-input" data-key="basWrkStatusQueryBywrkSts" onkeyup="autoLoad(this.getAttribute('data-key'))">
+ <select class="cool-auto-complete-window-select" data-key="basWrkStatusQueryBywrkStsSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+ </select>
+ </div>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">鍏ュ嚭搴撶被鍨�: </label>
+ <div class="layui-input-block cool-auto-complete">
+ <input class="layui-input" name="ioType" placeholder="璇疯緭鍏ュ叆鍑哄簱绫诲瀷" style="display: none">
+ <input id="ioType$" name="ioType$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ュ叆鍑哄簱绫诲瀷" onfocus=this.blur()>
+ <div class="cool-auto-complete-window">
+ <input class="cool-auto-complete-window-input" data-key="basWrkIotypeQueryByioType" onkeyup="autoLoad(this.getAttribute('data-key'))">
+ <select class="cool-auto-complete-window-select" data-key="basWrkIotypeQueryByioTypeSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+ </select>
+ </div>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">鎻愬崌鏈�: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="liftNo" placeholder="璇疯緭鍏ユ彁鍗囨満">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">plc: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="plcNo" placeholder="璇疯緭鍏lc">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">鐩爣搴撲綅: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="locNo" placeholder="璇疯緭鍏ョ洰鏍囧簱浣�">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">鐩爣绔�: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="staNo" placeholder="璇疯緭鍏ョ洰鏍囩珯">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">婧愮珯: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="sourceStaNo" placeholder="璇疯緭鍏ユ簮绔�">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">婧愬簱浣�: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="sourceLocNo" placeholder="璇疯緭鍏ユ簮搴撲綅">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">鏉$爜: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="barcode" placeholder="璇疯緭鍏ユ潯鐮�">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">寮傚父鐮�: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="errCode" placeholder="璇疯緭鍏ュ紓甯哥爜">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">寮傚父: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="error" placeholder="璇疯緭鍏ュ紓甯�">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">寮傚父鎯呭喌: </label>
+ <div class="layui-input-block">
+ <select name="status">
+ <option value="">璇烽�夋嫨寮傚父鎯呭喌</option>
+ <option value="1">鏈鐞�</option>
+ <option value="2">宸蹭慨澶�</option>
+ </select>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">娣诲姞鏃堕棿: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="createTime" id="createTime$" placeholder="璇疯緭鍏ユ坊鍔犳椂闂�">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">娣诲姞浜哄憳: </label>
+ <div class="layui-input-block cool-auto-complete">
+ <input class="layui-input" name="createBy" placeholder="璇疯緭鍏ユ坊鍔犱汉鍛�" style="display: none">
+ <input id="createBy$" name="createBy$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ユ坊鍔犱汉鍛�" onfocus=this.blur()>
+ <div class="cool-auto-complete-window">
+ <input class="cool-auto-complete-window-input" data-key="userQueryBycreateBy" onkeyup="autoLoad(this.getAttribute('data-key'))">
+ <select class="cool-auto-complete-window-select" data-key="userQueryBycreateBySelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+ </select>
+ </div>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">淇敼鏃堕棿: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="updateTime" id="updateTime$" placeholder="璇疯緭鍏ヤ慨鏀规椂闂�">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">淇敼浜哄憳: </label>
+ <div class="layui-input-block cool-auto-complete">
+ <input class="layui-input" name="updateBy" placeholder="璇疯緭鍏ヤ慨鏀逛汉鍛�" style="display: none">
+ <input id="updateBy$" name="updateBy$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ヤ慨鏀逛汉鍛�" onfocus=this.blur()>
+ <div class="cool-auto-complete-window">
+ <input class="cool-auto-complete-window-input" data-key="userQueryByupdateBy" onkeyup="autoLoad(this.getAttribute('data-key'))">
+ <select class="cool-auto-complete-window-select" data-key="userQueryByupdateBySelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+ </select>
+ </div>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">澶囨敞: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="memo" placeholder="璇疯緭鍏ュ娉�">
+ </div>
+ </div>
+
+ </div>
+ </div>
+ <hr class="layui-bg-gray">
+ <div class="layui-form-item text-right">
+ <button class="layui-btn" lay-filter="editSubmit" lay-submit="">淇濆瓨</button>
+ <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">鍙栨秷</button>
+ </div>
+ </form>
+</script>
+</html>
+
diff --git a/src/main/webapp/views/admin/basLiftOpt/basLiftOpt.html b/src/main/webapp/views/admin/basLiftOpt/basLiftOpt.html
new file mode 100644
index 0000000..5656634
--- /dev/null
+++ b/src/main/webapp/views/admin/basLiftOpt/basLiftOpt.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/admin.css?v=318" media="all">
+ <link rel="stylesheet" href="../../../static/css/cool.css" media="all">
+</head>
+<body>
+
+<div class="layui-fluid">
+ <div class="layui-card">
+ <div class="layui-card-body">
+ <div class="layui-form toolbar" id="search-box">
+ <div class="layui-form-item">
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="id" placeholder="缂栧彿" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline" style="width: 300px">
+ <div class="layui-input-inline">
+ <input class="layui-input layui-laydate-range" name="create_time" type="text" placeholder="璧峰鏃堕棿 - 缁堟鏃堕棿" autocomplete="off" style="width: 300px">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="condition" placeholder="璇疯緭鍏�" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline"> 
+ <button class="layui-btn icon-btn" lay-filter="search" lay-submit>
+ <i class="layui-icon"></i>鎼滅储
+ </button>
+ <button class="layui-btn icon-btn" lay-filter="reset" lay-submit>
+ <i class="layui-icon"></i>閲嶇疆
+ </button>
+ </div>
+ </div>
+ </div>
+ <table class="layui-hide" id="basLiftOpt" lay-filter="basLiftOpt"></table>
+ </div>
+ </div>
+</div>
+
+<script type="text/html" id="toolbar">
+ <div class="layui-btn-container">
+<!-- <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">鏂板</button>-->
+<!-- <button class="layui-btn layui-btn-sm layui-btn-danger" id="btn-delete" lay-event="deleteData">鍒犻櫎</button>-->
+ <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData" style="float: right">瀵煎嚭</button>
+ </div>
+</script>
+
+<script type="text/html" id="operate">
+ <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">淇敼</a>
+ <a class="layui-btn layui-btn-danger layui-btn-xs btn-edit" lay-event="del">鍒犻櫎</a>
+</script>
+
+<script type="text/javascript" src="../../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/basLiftOpt/basLiftOpt.js" charset="utf-8"></script>
+</body>
+<!-- 琛ㄥ崟寮圭獥 -->
+<script type="text/html" id="editDialog">
+ <form id="detail" lay-filter="detail" class="layui-form admin-form model-form">
+ <input name="id" type="hidden">
+ <div class="layui-row">
+ <div class="layui-col-md12">
+ <div class="layui-form-item">
+ <label class="layui-form-label">浠诲姟鍙�: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="wrkNo" placeholder="璇疯緭鍏ヤ换鍔″彿">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">鎻愬崌鏈哄彿: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="liftNo" placeholder="璇疯緭鍏ユ彁鍗囨満鍙�">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">涓嬪彂鏃堕棿: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="sendTime" id="sendTime$" placeholder="璇疯緭鍏ヤ笅鍙戞椂闂�">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">淇敼鏃堕棿: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="updateTime" id="updateTime$" placeholder="璇疯緭鍏ヤ慨鏀规椂闂�">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">淇敼浜哄憳: </label>
+ <div class="layui-input-block cool-auto-complete">
+ <input class="layui-input" name="updateBy" placeholder="璇疯緭鍏ヤ慨鏀逛汉鍛�" style="display: none">
+ <input id="updateBy$" name="updateBy$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ヤ慨鏀逛汉鍛�" onfocus=this.blur()>
+ <div class="cool-auto-complete-window">
+ <input class="cool-auto-complete-window-input" data-key="userQueryByupdateBy" onkeyup="autoLoad(this.getAttribute('data-key'))">
+ <select class="cool-auto-complete-window-select" data-key="userQueryByupdateBySelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+ </select>
+ </div>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">澶囨敞: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="memo" placeholder="璇疯緭鍏ュ娉�">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">鍛戒护: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="command" placeholder="璇疯緭鍏ュ懡浠�">
+ </div>
+ </div>
+
+ </div>
+ </div>
+ <hr class="layui-bg-gray">
+ <div class="layui-form-item text-right">
+ <button class="layui-btn" lay-filter="editSubmit" lay-submit="">淇濆瓨</button>
+ <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">鍙栨秷</button>
+ </div>
+ </form>
+</script>
+</html>
+
diff --git a/src/main/webapp/views/admin/basLocSts/basLocSts.html b/src/main/webapp/views/admin/basLocSts/basLocSts.html
new file mode 100644
index 0000000..2dd1d01
--- /dev/null
+++ b/src/main/webapp/views/admin/basLocSts/basLocSts.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/cool.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/common.css" media="all">
+</head>
+<body>
+
+<!-- 鎼滅储鏍� -->
+<div id="search-box" class="layui-form layui-card-header">
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="loc_sts" placeholder="搴撲綅鐘舵�佷唬鍙�" autocomplete="off">
+ </div>
+ </div>
+
+ <!-- 寰呮坊鍔� -->
+ <div id="data-search-btn" class="layui-btn-container layui-form-item" style="display: inline-block">
+ <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">鎼滅储</button>
+ <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">閲嶇疆</button>
+ </div>
+</div>
+
+<!-- 琛ㄦ牸 -->
+<table class="layui-hide" id="basLocSts" lay-filter="basLocSts"></table>
+<script type="text/html" id="toolbar">
+ <div class="layui-btn-container">
+ <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">鏂板</button>
+ <button class="layui-btn layui-btn-sm" id="btn-delete" lay-event="deleteData">鍒犻櫎</button>
+ <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData">瀵煎嚭</button>
+ </div>
+</script>
+
+<script type="text/html" id="operate">
+ <a class="layui-btn layui-btn-xs btn-edit" lay-event="edit">缂栬緫</a>
+</script>
+
+<script type="text/javascript" src="../../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/basLocSts/basLocSts.js" charset="utf-8"></script>
+
+<iframe id="detail-iframe" scrolling="auto" style="display:none;"></iframe>
+
+</body>
+</html>
+
diff --git a/src/main/webapp/views/admin/basLocSts/basLocSts_detail.html b/src/main/webapp/views/admin/basLocSts/basLocSts_detail.html
new file mode 100644
index 0000000..c069875
--- /dev/null
+++ b/src/main/webapp/views/admin/basLocSts/basLocSts_detail.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/cool.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/common.css" media="all">
+</head>
+<body>
+
+<!-- 璇︽儏 -->
+<div id="data-detail" class="layer_self_wrap">
+ <form id="detail" class="layui-form" style="text-align: center;">
+ <div class="layui-inline" style="width:80%;">
+ <label class="layui-form-label" style="font-size: x-small"><span class="not-null">*</span>搴撲綅鐘舵�佷唬鍙凤細</label>
+ <div class="layui-input-inline">
+ <input id="locSts" class="layui-input" type="text" onkeyup="check(this.id, 'basLocSts')" lay-verify="required">
+ </div>
+ </div>
+ <div class="layui-inline" style="width:80%;">
+ <label class="layui-form-label" style="font-size: x-small">搴撲綅鐘舵�佹弿杩帮細</label>
+ <div class="layui-input-inline">
+ <input id="locDesc" class="layui-input" type="text">
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;display: none">
+ <label class="layui-form-label">淇敼浜哄憳锛�</label>
+ <div class="layui-input-inline cool-auto-complete">
+ <input id="modiUser" class="layui-input" type="text" style="display: none">
+ <input id="modiUser$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏�..." onfocus=this.blur()>
+ <div class="cool-auto-complete-window">
+ <input class="cool-auto-complete-window-input" data-key="userQueryBymodiUser" onkeyup="autoLoad(this.getAttribute('data-key'))">
+ <select class="cool-auto-complete-window-select" data-key="userQueryBymodiUserSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+ </select>
+ </div>
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;display: none">
+ <label class="layui-form-label">淇敼鏃堕棿锛�</label>
+ <div class="layui-input-inline">
+ <input id="modiTime$" class="layui-input" type="text" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;display: none">
+ <label class="layui-form-label">鍒� 寤� 鑰咃細</label>
+ <div class="layui-input-inline cool-auto-complete">
+ <input id="appeUser" class="layui-input" type="text" style="display: none">
+ <input id="appeUser$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏�..." onfocus=this.blur()>
+ <div class="cool-auto-complete-window">
+ <input class="cool-auto-complete-window-input" data-key="userQueryByappeUser" onkeyup="autoLoad(this.getAttribute('data-key'))">
+ <select class="cool-auto-complete-window-select" data-key="userQueryByappeUserSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+ </select>
+ </div>
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;display: none">
+ <label class="layui-form-label">娣诲姞鏃堕棿锛�</label>
+ <div class="layui-input-inline">
+ <input id="appeTime$" class="layui-input" type="text" autocomplete="off">
+ </div>
+ </div>
+
+
+ <hr class="layui-bg-gray">
+
+ <div id="data-detail-btn" class="layui-btn-container layui-form-item">
+ <div id="data-detail-submit-save" type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="save">淇濆瓨</div>
+ <div id="data-detail-submit-edit" type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="edit">淇敼</div>
+ <div id="data-detail-close" type="button" class="layui-btn" lay-submit lay-filter="close">鍏抽棴</div>
+ </div>
+
+ <div id="prompt">
+ 娓╅Θ鎻愮ず锛氳浠旂粏濉啓鐩稿叧淇℃伅锛�<span class="extrude"><span class="not-null">*</span> 涓哄繀濉�夐」銆�</span>
+ </div>
+ </form>
+</div>
+</body>
+<script type="text/javascript" src="../../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/basLocSts/basLocSts.js" charset="utf-8"></script>
+</html>
+
diff --git a/src/main/webapp/views/admin/basPlcerror/basPlcerror.html b/src/main/webapp/views/admin/basPlcerror/basPlcerror.html
new file mode 100644
index 0000000..7a66bc2
--- /dev/null
+++ b/src/main/webapp/views/admin/basPlcerror/basPlcerror.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/cool.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/common.css" media="all">
+</head>
+<body>
+
+<!-- 鎼滅储鏍� -->
+<div id="search-box" class="layui-form layui-card-header">
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="error_code" placeholder="寮傚父缂栧彿" autocomplete="off">
+ </div>
+ </div>
+
+ <!-- 寰呮坊鍔� -->
+ <div id="data-search-btn" class="layui-btn-container layui-form-item">
+ <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">鎼滅储</button>
+ <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">閲嶇疆</button>
+ </div>
+</div>
+
+<!-- 琛ㄦ牸 -->
+<div class="layui-form">
+ <table class="layui-hide" id="basPlcerror" lay-filter="basPlcerror"></table>
+</div>
+<script type="text/html" id="toolbar">
+ <div class="layui-btn-container">
+ <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">鏂板</button>
+ <button class="layui-btn layui-btn-sm" id="btn-delete" lay-event="deleteData">鍒犻櫎</button>
+ <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData">瀵煎嚭</button>
+ </div>
+</script>
+
+<script type="text/html" id="operate">
+ <a class="layui-btn layui-btn-xs btn-edit" lay-event="edit">缂栬緫</a>
+</script>
+
+<script type="text/javascript" src="../../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/basPlcerror/basPlcerror.js" charset="utf-8"></script>
+
+<iframe id="detail-iframe" scrolling="auto" style="display:none;"></iframe>
+
+</body>
+</html>
+
diff --git a/src/main/webapp/views/admin/basPlcerror/basPlcerror_detail.html b/src/main/webapp/views/admin/basPlcerror/basPlcerror_detail.html
new file mode 100644
index 0000000..beb3368
--- /dev/null
+++ b/src/main/webapp/views/admin/basPlcerror/basPlcerror_detail.html
@@ -0,0 +1,96 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/cool.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/common.css" media="all">
+</head>
+<body>
+
+<!-- 璇︽儏 -->
+<div id="data-detail" class="layer_self_wrap">
+ <form id="detail" class="layui-form" style="text-align: center">
+ <!--
+ <div class="layui-inline" style="display: none">
+ <label class="layui-form-label"><span class="not-null">*</span>缂栥��銆�鍙凤細</label>
+ <div class="layui-input-inline">
+ <input id="id" class="layui-input" type="text" placeholder="缂栧彿">
+ </div>
+ </div>
+ -->
+ <div class="layui-inline" style="width:80%;">
+ <label class="layui-form-label"><span class="not-null">*</span>寮傚父缂栧彿锛�</label>
+ <div class="layui-input-inline">
+ <input id="errorCode" class="layui-input" type="text" onkeyup="check(this.id, 'basPlcerror')" lay-verify="required|number" >
+ </div>
+ </div>
+ <div class="layui-inline" style="width:80%;">
+ <label class="layui-form-label">寮傚父鎻忚堪锛�</label>
+ <div class="layui-input-inline">
+ <input id="errorDesc" class="layui-input" type="text">
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;display: none">
+ <label class="layui-form-label">淇敼鏃堕棿锛�</label>
+ <div class="layui-input-inline">
+ <input id="modiTime$" class="layui-input" type="text" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;display: none">
+ <label class="layui-form-label">淇敼浜哄憳锛�</label>
+ <div class="layui-input-inline cool-auto-complete">
+ <input id="modiUser" class="layui-input" type="text" lay-verify="number" style="display: none">
+ <input id="modiUser$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏�..." onfocus=this.blur()>
+ <div class="cool-auto-complete-window">
+ <input class="cool-auto-complete-window-input" data-key="userQueryBymodiUser" onkeyup="autoLoad(this.getAttribute('data-key'))">
+ <select class="cool-auto-complete-window-select" data-key="userQueryBymodiUserSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+ </select>
+ </div>
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;display: none">
+ <label class="layui-form-label">娣诲姞鏃堕棿锛�</label>
+ <div class="layui-input-inline">
+ <input id="appeTime$" class="layui-input" type="text" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;display: none">
+ <label class="layui-form-label">鍒� 寤� 鑰咃細</label>
+ <div class="layui-input-inline cool-auto-complete">
+ <input id="appeUser" class="layui-input" type="text" lay-verify="number" style="display: none">
+ <input id="appeUser$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏�..." onfocus=this.blur()>
+ <div class="cool-auto-complete-window">
+ <input class="cool-auto-complete-window-input" data-key="userQueryByappeUser" onkeyup="autoLoad(this.getAttribute('data-key'))">
+ <select class="cool-auto-complete-window-select" data-key="userQueryByappeUserSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+ </select>
+ </div>
+ </div>
+ </div>
+
+
+ <hr class="layui-bg-gray">
+
+ <div id="data-detail-btn" class="layui-btn-container layui-form-item">
+ <div id="data-detail-submit-save" type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="save">淇濆瓨</div>
+ <div id="data-detail-submit-edit" type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="edit">淇敼</div>
+ <div id="data-detail-close" type="button" class="layui-btn" lay-submit lay-filter="close">鍏抽棴</div>
+ </div>
+
+ <div id="prompt">
+ 娓╅Θ鎻愮ず锛氳浠旂粏濉啓鐩稿叧淇℃伅锛�<span class="extrude"><span class="not-null">*</span> 涓哄繀濉�夐」銆�</span>
+ </div>
+ </form>
+</div>
+</body>
+<script type="text/javascript" src="../../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/basPlcerror/basPlcerror.js" charset="utf-8"></script>
+</html>
+
diff --git a/src/main/webapp/views/admin/basShuttle/basShuttle.html b/src/main/webapp/views/admin/basShuttle/basShuttle.html
new file mode 100644
index 0000000..b613769
--- /dev/null
+++ b/src/main/webapp/views/admin/basShuttle/basShuttle.html
@@ -0,0 +1,148 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/admin.css?v=318" media="all">
+ <link rel="stylesheet" href="../../../static/css/cool.css" media="all">
+</head>
+<body>
+
+<div class="layui-fluid">
+ <div class="layui-card">
+ <div class="layui-card-body">
+ <div class="layui-form toolbar" id="search-box">
+ <div class="layui-form-item">
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="shuttle_no" placeholder="鍥涘悜绌挎杞﹀彿" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="condition" placeholder="璇疯緭鍏�" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline"> 
+ <button class="layui-btn icon-btn" lay-filter="search" lay-submit>
+ <i class="layui-icon"></i>鎼滅储
+ </button>
+ <button class="layui-btn icon-btn" lay-filter="reset" lay-submit>
+ <i class="layui-icon"></i>閲嶇疆
+ </button>
+ </div>
+ </div>
+ </div>
+ <table class="layui-hide" id="basShuttle" lay-filter="basShuttle"></table>
+ </div>
+ </div>
+</div>
+
+<script type="text/html" id="toolbar">
+ <div class="layui-btn-container">
+ <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">鏂板</button>
+ <button class="layui-btn layui-btn-sm layui-btn-danger" id="btn-delete" lay-event="deleteData">鍒犻櫎</button>
+ <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData" style="float: right">瀵煎嚭</button>
+ </div>
+</script>
+
+<script type="text/html" id="operate">
+ <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">淇敼</a>
+ <a class="layui-btn layui-btn-danger layui-btn-xs btn-edit" lay-event="del">鍒犻櫎</a>
+</script>
+
+<script type="text/javascript" src="../../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/basShuttle/basShuttle.js" charset="utf-8"></script>
+</body>
+<!-- 琛ㄥ崟寮圭獥 -->
+<script type="text/html" id="editDialog">
+ <form id="detail" lay-filter="detail" class="layui-form admin-form model-form">
+ <input name="id" type="hidden">
+ <div class="layui-row">
+ <div class="layui-col-md12">
+ <div class="layui-form-item">
+ <label class="layui-form-label layui-form-required">鍥涘悜绌挎杞﹀彿: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="shuttleNo" placeholder="璇疯緭鍏ュ洓鍚戠┛姊溅鍙�" lay-vertype="tips" lay-verify="required">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">鐘舵��: </label>
+ <div class="layui-input-block">
+ <select name="status">
+ <option value="">璇烽�夋嫨鐘舵��</option>
+ <option value="1">姝e父</option>
+ <option value="0">绂佺敤</option>
+ </select>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">浣滀笟鎬�: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="shuttleStatus" placeholder="璇疯緭鍏ヤ綔涓氭��">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">浠诲姟鍙�: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="wrkNo" placeholder="璇疯緭鍏ヤ换鍔″彿">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">鏆傚瓨搴撲綅: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="idleLoc" placeholder="璇疯緭鍏ユ殏瀛樺簱浣�">
+ </div>
+ </div>
+<!-- <div class="layui-form-item">-->
+<!-- <label class="layui-form-label">鑷姩鍏呯數: </label>-->
+<!-- <div class="layui-input-block">-->
+<!-- <input class="layui-input" name="autoCharge" placeholder="璇疯緭鍏ヨ嚜鍔ㄥ厖鐢�">-->
+<!-- </div>-->
+<!-- </div>-->
+ <div class="layui-form-item">
+ <label class="layui-form-label">鐢甸噺绾�: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="chargeLine" placeholder="璇疯緭鍏ョ數閲忕嚎">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">澶囨敞: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="memo" placeholder="璇疯緭鍏ュ娉�">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">鎻愬崌鏈哄彿: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="liftNo" placeholder="璇疯緭鍏ユ彁鍗囨満鍙�">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">鏍囪: </label>
+ <div class="layui-input-block">
+ <select name="pakMk">
+ <option value="1">Y</option>
+ <option value="0">N</option>
+ </select>
+ </div>
+ </div>
+
+ </div>
+ </div>
+ <hr class="layui-bg-gray">
+ <div class="layui-form-item text-right">
+ <button class="layui-btn" lay-filter="editSubmit" lay-submit="">淇濆瓨</button>
+ <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">鍙栨秷</button>
+ </div>
+ </form>
+</script>
+</html>
+
diff --git a/src/main/webapp/views/admin/basShuttleErr/basShuttleErr.html b/src/main/webapp/views/admin/basShuttleErr/basShuttleErr.html
new file mode 100644
index 0000000..938325b
--- /dev/null
+++ b/src/main/webapp/views/admin/basShuttleErr/basShuttleErr.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/admin.css?v=318" media="all">
+ <link rel="stylesheet" href="../../../static/css/cool.css" media="all">
+</head>
+<body>
+
+<div class="layui-fluid">
+ <div class="layui-card">
+ <div class="layui-card-body">
+ <div class="layui-form toolbar" id="search-box">
+ <div class="layui-form-item">
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="error_code" placeholder="寮傚父鐮�" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline" style="width: 300px">
+ <div class="layui-input-inline">
+ <input class="layui-input layui-laydate-range" name="create_time" type="text" placeholder="璧峰鏃堕棿 - 缁堟鏃堕棿" autocomplete="off" style="width: 300px">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="condition" placeholder="璇疯緭鍏�" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline"> 
+ <button class="layui-btn icon-btn" lay-filter="search" lay-submit>
+ <i class="layui-icon"></i>鎼滅储
+ </button>
+ <button class="layui-btn icon-btn" lay-filter="reset" lay-submit>
+ <i class="layui-icon"></i>閲嶇疆
+ </button>
+ </div>
+ </div>
+ </div>
+ <table class="layui-hide" id="basShuttleErr" lay-filter="basShuttleErr"></table>
+ </div>
+ </div>
+</div>
+
+<script type="text/html" id="toolbar">
+ <div class="layui-btn-container">
+ <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">鏂板</button>
+ <button class="layui-btn layui-btn-sm layui-btn-danger" id="btn-delete" lay-event="deleteData">鍒犻櫎</button>
+ <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData" style="float: right">瀵煎嚭</button>
+ </div>
+</script>
+
+<script type="text/html" id="operate">
+ <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">淇敼</a>
+ <a class="layui-btn layui-btn-danger layui-btn-xs btn-edit" lay-event="del">鍒犻櫎</a>
+</script>
+
+<script type="text/javascript" src="../../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/basShuttleErr/basShuttleErr.js" charset="utf-8"></script>
+</body>
+<!-- 琛ㄥ崟寮圭獥 -->
+<script type="text/html" id="editDialog">
+ <form id="detail" lay-filter="detail" class="layui-form admin-form model-form">
+ <input name="id" type="hidden">
+ <div class="layui-row">
+ <div class="layui-col-md12">
+ <div class="layui-form-item">
+ <label class="layui-form-label layui-form-required">寮傚父鐮�: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="errorCode" placeholder="璇疯緭鍏ュ紓甯哥爜" lay-vertype="tips" lay-verify="required">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">寮傚父: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="errName" placeholder="璇疯緭鍏ュ紓甯�">
+ </div>
+ </div>
+<!-- <div class="layui-form-item">-->
+<!-- <label class="layui-form-label">淇敼浜哄憳: </label>-->
+<!-- <div class="layui-input-block cool-auto-complete">-->
+<!-- <input class="layui-input" name="modiUser" placeholder="璇疯緭鍏ヤ慨鏀逛汉鍛�" style="display: none">-->
+<!-- <input id="modiUser$" name="modiUser$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ヤ慨鏀逛汉鍛�" onfocus=this.blur()>-->
+<!-- <div class="cool-auto-complete-window">-->
+<!-- <input class="cool-auto-complete-window-input" data-key="userQueryBymodiUser" onkeyup="autoLoad(this.getAttribute('data-key'))">-->
+<!-- <select class="cool-auto-complete-window-select" data-key="userQueryBymodiUserSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">-->
+<!-- </select>-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- <div class="layui-form-item">-->
+<!-- <label class="layui-form-label">淇敼鏃堕棿: </label>-->
+<!-- <div class="layui-input-block">-->
+<!-- <input class="layui-input" name="modiTime" id="modiTime$" placeholder="璇疯緭鍏ヤ慨鏀规椂闂�">-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- <div class="layui-form-item">-->
+<!-- <label class="layui-form-label">娣诲姞浜哄憳: </label>-->
+<!-- <div class="layui-input-block cool-auto-complete">-->
+<!-- <input class="layui-input" name="appeUser" placeholder="璇疯緭鍏ユ坊鍔犱汉鍛�" style="display: none">-->
+<!-- <input id="appeUser$" name="appeUser$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ユ坊鍔犱汉鍛�" onfocus=this.blur()>-->
+<!-- <div class="cool-auto-complete-window">-->
+<!-- <input class="cool-auto-complete-window-input" data-key="userQueryByappeUser" onkeyup="autoLoad(this.getAttribute('data-key'))">-->
+<!-- <select class="cool-auto-complete-window-select" data-key="userQueryByappeUserSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">-->
+<!-- </select>-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- <div class="layui-form-item">-->
+<!-- <label class="layui-form-label">娣诲姞鏃堕棿: </label>-->
+<!-- <div class="layui-input-block">-->
+<!-- <input class="layui-input" name="appeTime" id="appeTime$" placeholder="璇疯緭鍏ユ坊鍔犳椂闂�">-->
+<!-- </div>-->
+<!-- </div>-->
+
+ </div>
+ </div>
+ <hr class="layui-bg-gray">
+ <div class="layui-form-item text-right">
+ <button class="layui-btn" lay-filter="editSubmit" lay-submit="">淇濆瓨</button>
+ <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">鍙栨秷</button>
+ </div>
+ </form>
+</script>
+</html>
+
diff --git a/src/main/webapp/views/admin/basShuttleErrLog/basShuttleErrLog.html b/src/main/webapp/views/admin/basShuttleErrLog/basShuttleErrLog.html
new file mode 100644
index 0000000..798b641
--- /dev/null
+++ b/src/main/webapp/views/admin/basShuttleErrLog/basShuttleErrLog.html
@@ -0,0 +1,240 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/admin.css?v=318" media="all">
+ <link rel="stylesheet" href="../../../static/css/cool.css" media="all">
+</head>
+<body>
+
+<div class="layui-fluid">
+ <div class="layui-card">
+ <div class="layui-card-body">
+ <div class="layui-form toolbar" id="search-box">
+ <div class="layui-form-item">
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="id" placeholder="缂栧彿" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline" style="width: 300px">
+ <div class="layui-input-inline">
+ <input class="layui-input layui-laydate-range" name="create_time" type="text" placeholder="璧峰鏃堕棿 - 缁堟鏃堕棿" autocomplete="off" style="width: 300px">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="condition" placeholder="璇疯緭鍏�" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline"> 
+ <button class="layui-btn icon-btn" lay-filter="search" lay-submit>
+ <i class="layui-icon"></i>鎼滅储
+ </button>
+ <button class="layui-btn icon-btn" lay-filter="reset" lay-submit>
+ <i class="layui-icon"></i>閲嶇疆
+ </button>
+ </div>
+ </div>
+ </div>
+ <table class="layui-hide" id="basShuttleErrLog" lay-filter="basShuttleErrLog"></table>
+ </div>
+ </div>
+</div>
+
+<script type="text/html" id="toolbar">
+ <div class="layui-btn-container">
+<!-- <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">鏂板</button>-->
+<!-- <button class="layui-btn layui-btn-sm layui-btn-danger" id="btn-delete" lay-event="deleteData">鍒犻櫎</button>-->
+ <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData" style="float: right">瀵煎嚭</button>
+ </div>
+</script>
+
+<script type="text/html" id="operate">
+<!-- <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">淇敼</a>-->
+<!-- <a class="layui-btn layui-btn-danger layui-btn-xs btn-edit" lay-event="del">鍒犻櫎</a>-->
+</script>
+
+<script type="text/javascript" src="../../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/basShuttleErrLog/basShuttleErrLog.js" charset="utf-8"></script>
+</body>
+<!-- 琛ㄥ崟寮圭獥 -->
+<script type="text/html" id="editDialog">
+ <form id="detail" lay-filter="detail" class="layui-form admin-form model-form">
+ <input name="id" type="hidden">
+ <div class="layui-row">
+ <div class="layui-col-md12">
+ <div class="layui-form-item">
+ <label class="layui-form-label">缂栧彿: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="uuid" placeholder="璇疯緭鍏ョ紪鍙�">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">宸ヤ綔鍙�: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="wrkNo" placeholder="璇疯緭鍏ュ伐浣滃彿">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">鍙戠敓鏃堕棿: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="startTime" id="startTime$" placeholder="璇疯緭鍏ュ彂鐢熸椂闂�">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">缁撴潫鏃堕棿: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="endTime" id="endTime$" placeholder="璇疯緭鍏ョ粨鏉熸椂闂�">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">宸ヤ綔鐘舵��: </label>
+ <div class="layui-input-block cool-auto-complete">
+ <input class="layui-input" name="wrkSts" placeholder="璇疯緭鍏ュ伐浣滅姸鎬�" style="display: none">
+ <input id="wrkSts$" name="wrkSts$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ュ伐浣滅姸鎬�" onfocus=this.blur()>
+ <div class="cool-auto-complete-window">
+ <input class="cool-auto-complete-window-input" data-key="basWrkStatusQueryBywrkSts" onkeyup="autoLoad(this.getAttribute('data-key'))">
+ <select class="cool-auto-complete-window-select" data-key="basWrkStatusQueryBywrkStsSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+ </select>
+ </div>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">鍏ュ嚭搴撶被鍨�: </label>
+ <div class="layui-input-block cool-auto-complete">
+ <input class="layui-input" name="ioType" placeholder="璇疯緭鍏ュ叆鍑哄簱绫诲瀷" style="display: none">
+ <input id="ioType$" name="ioType$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ュ叆鍑哄簱绫诲瀷" onfocus=this.blur()>
+ <div class="cool-auto-complete-window">
+ <input class="cool-auto-complete-window-input" data-key="basWrkIotypeQueryByioType" onkeyup="autoLoad(this.getAttribute('data-key'))">
+ <select class="cool-auto-complete-window-select" data-key="basWrkIotypeQueryByioTypeSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+ </select>
+ </div>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">绌挎杞�: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="steNo" placeholder="璇疯緭鍏ョ┛姊溅">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">plc: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="plcNo" placeholder="璇疯緭鍏lc">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">鐩爣搴撲綅: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="locNo" placeholder="璇疯緭鍏ョ洰鏍囧簱浣�">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">鐩爣绔�: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="staNo" placeholder="璇疯緭鍏ョ洰鏍囩珯">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">婧愮珯: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="sourceStaNo" placeholder="璇疯緭鍏ユ簮绔�">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">婧愬簱浣�: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="sourceLocNo" placeholder="璇疯緭鍏ユ簮搴撲綅">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">鏉$爜: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="barcode" placeholder="璇疯緭鍏ユ潯鐮�">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">寮傚父鐮�: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="errCode" placeholder="璇疯緭鍏ュ紓甯哥爜">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">寮傚父: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="error" placeholder="璇疯緭鍏ュ紓甯�">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">寮傚父鎯呭喌: </label>
+ <div class="layui-input-block">
+ <select name="status">
+ <option value="">璇烽�夋嫨寮傚父鎯呭喌</option>
+ <option value="1">鏈鐞�</option>
+ <option value="2">宸蹭慨澶�</option>
+ </select>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">娣诲姞鏃堕棿: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="createTime" id="createTime$" placeholder="璇疯緭鍏ユ坊鍔犳椂闂�">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">娣诲姞浜哄憳: </label>
+ <div class="layui-input-block cool-auto-complete">
+ <input class="layui-input" name="createBy" placeholder="璇疯緭鍏ユ坊鍔犱汉鍛�" style="display: none">
+ <input id="createBy$" name="createBy$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ユ坊鍔犱汉鍛�" onfocus=this.blur()>
+ <div class="cool-auto-complete-window">
+ <input class="cool-auto-complete-window-input" data-key="userQueryBycreateBy" onkeyup="autoLoad(this.getAttribute('data-key'))">
+ <select class="cool-auto-complete-window-select" data-key="userQueryBycreateBySelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+ </select>
+ </div>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">淇敼鏃堕棿: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="updateTime" id="updateTime$" placeholder="璇疯緭鍏ヤ慨鏀规椂闂�">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">淇敼浜哄憳: </label>
+ <div class="layui-input-block cool-auto-complete">
+ <input class="layui-input" name="updateBy" placeholder="璇疯緭鍏ヤ慨鏀逛汉鍛�" style="display: none">
+ <input id="updateBy$" name="updateBy$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏ヤ慨鏀逛汉鍛�" onfocus=this.blur()>
+ <div class="cool-auto-complete-window">
+ <input class="cool-auto-complete-window-input" data-key="userQueryByupdateBy" onkeyup="autoLoad(this.getAttribute('data-key'))">
+ <select class="cool-auto-complete-window-select" data-key="userQueryByupdateBySelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+ </select>
+ </div>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">澶囨敞: </label>
+ <div class="layui-input-block">
+ <input class="layui-input" name="memo" placeholder="璇疯緭鍏ュ娉�">
+ </div>
+ </div>
+
+ </div>
+ </div>
+ <hr class="layui-bg-gray">
+ <div class="layui-form-item text-right">
+ <button class="layui-btn" lay-filter="editSubmit" lay-submit="">淇濆瓨</button>
+ <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">鍙栨秷</button>
+ </div>
+ </form>
+</script>
+</html>
+
diff --git a/src/main/webapp/views/admin/basShuttleErrLog/basShuttleOpt.html b/src/main/webapp/views/admin/basShuttleErrLog/basShuttleOpt.html
new file mode 100644
index 0000000..ae87226
--- /dev/null
+++ b/src/main/webapp/views/admin/basShuttleErrLog/basShuttleOpt.html
@@ -0,0 +1,57 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/admin.css?v=318" media="all">
+ <link rel="stylesheet" href="../../../static/css/cool.css" media="all">
+</head>
+<body>
+
+<div class="layui-fluid">
+ <div class="layui-card">
+ <div class="layui-card-body">
+ <div class="layui-form toolbar" id="search-box">
+ <div class="layui-form-item">
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="wrk_no" placeholder="宸ヤ綔鍙�" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline" style="width: 300px">
+ <div class="layui-input-inline">
+ <input class="layui-input layui-laydate-range" name="send_time" type="text" placeholder="璧峰鏃堕棿 - 缁堟鏃堕棿" autocomplete="off" style="width: 300px">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="condition" placeholder="璇疯緭鍏�" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline"> 
+ <button class="layui-btn icon-btn" lay-filter="search" lay-submit>
+ <i class="layui-icon"></i>鎼滅储
+ </button>
+ <button class="layui-btn icon-btn" lay-filter="reset" lay-submit>
+ <i class="layui-icon"></i>閲嶇疆
+ </button>
+ </div>
+ </div>
+ </div>
+ <table class="layui-hide" id="basShuttleOpt" lay-filter="basShuttleOpt"></table>
+ </div>
+ </div>
+</div>
+
+<script type="text/javascript" src="../../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/basShuttleErrLog/basShuttleOpt.js" charset="utf-8"></script>
+</body>
+</html>
+
diff --git a/src/main/webapp/views/admin/basWrkIotype/basWrkIotype.html b/src/main/webapp/views/admin/basWrkIotype/basWrkIotype.html
new file mode 100644
index 0000000..94d99a8
--- /dev/null
+++ b/src/main/webapp/views/admin/basWrkIotype/basWrkIotype.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/cool.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/common.css" media="all">
+</head>
+<body>
+
+<!-- 鎼滅储鏍� -->
+<div id="search-box" class="layui-form layui-card-header">
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="io_type" placeholder="鍏ュ嚭绫诲瀷浠e彿" autocomplete="off">
+ </div>
+ </div>
+
+ <!-- 寰呮坊鍔� -->
+ <div id="data-search-btn" class="layui-btn-container layui-form-item" style="display: inline-block">
+ <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">鎼滅储</button>
+ <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">閲嶇疆</button>
+ </div>
+</div>
+
+<!-- 琛ㄦ牸 -->
+<table class="layui-hide" id="basWrkIotype" lay-filter="basWrkIotype"></table>
+<script type="text/html" id="toolbar">
+ <div class="layui-btn-container">
+ <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">鏂板</button>
+ <button class="layui-btn layui-btn-sm" id="btn-delete" lay-event="deleteData">鍒犻櫎</button>
+ <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData">瀵煎嚭</button>
+ </div>
+</script>
+
+<script type="text/html" id="operate">
+ <a class="layui-btn layui-btn-xs btn-edit" lay-event="edit">缂栬緫</a>
+</script>
+
+<script type="text/javascript" src="../../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/basWrkIotype/basWrkIotype.js" charset="utf-8"></script>
+
+<iframe id="detail-iframe" scrolling="auto" style="display:none;"></iframe>
+
+</body>
+</html>
+
diff --git a/src/main/webapp/views/admin/basWrkIotype/basWrkIotype_detail.html b/src/main/webapp/views/admin/basWrkIotype/basWrkIotype_detail.html
new file mode 100644
index 0000000..e9bb624
--- /dev/null
+++ b/src/main/webapp/views/admin/basWrkIotype/basWrkIotype_detail.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/cool.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/common.css" media="all">
+</head>
+<body>
+
+<!-- 璇︽儏 -->
+<div id="data-detail" class="layer_self_wrap">
+ <form id="detail" class="layui-form" style="text-align: center">
+ <div class="layui-inline" style="width:80%;">
+ <label class="layui-form-label" style="font-size: x-small"><span class="not-null">*</span>鍏ュ嚭绫诲瀷浠e彿锛�</label>
+ <div class="layui-input-inline">
+ <input id="ioType" class="layui-input" type="text" onkeyup="check(this.id, 'basWrkIotype')" lay-verify="required|number">
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;display: none">
+ <label class="layui-form-label"><span class="not-null">*</span>涓汇��銆�瑕侊細</label>
+ <div class="layui-input-inline">
+ <input id="ioPri" class="layui-input" type="text" >
+ </div>
+ </div>
+ <div class="layui-inline" style="width:80%;">
+ <label class="layui-form-label" style="font-size: x-small">鍏ュ嚭绫诲瀷鎻忚堪锛�</label>
+ <div class="layui-input-inline">
+ <input id="ioDesc" class="layui-input" type="text">
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;display: none">
+ <label class="layui-form-label">淇敼浜哄憳锛�</label>
+ <div class="layui-input-inline cool-auto-complete">
+ <input id="modiUser" class="layui-input" type="text" style="display: none">
+ <input id="modiUser$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏�..." onfocus=this.blur()>
+ <div class="cool-auto-complete-window">
+ <input class="cool-auto-complete-window-input" data-key="userQueryBymodiUser" onkeyup="autoLoad(this.getAttribute('data-key'))">
+ <select class="cool-auto-complete-window-select" data-key="userQueryBymodiUserSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+ </select>
+ </div>
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;display: none">
+ <label class="layui-form-label">淇敼鏃堕棿锛�</label>
+ <div class="layui-input-inline">
+ <input id="modiTime$" class="layui-input" type="text" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;display: none">
+ <label class="layui-form-label">鍒� 寤� 鑰咃細</label>
+ <div class="layui-input-inline cool-auto-complete">
+ <input id="appeUser" class="layui-input" type="text" style="display: none">
+ <input id="appeUser$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏�..." onfocus=this.blur()>
+ <div class="cool-auto-complete-window">
+ <input class="cool-auto-complete-window-input" data-key="userQueryByappeUser" onkeyup="autoLoad(this.getAttribute('data-key'))">
+ <select class="cool-auto-complete-window-select" data-key="userQueryByappeUserSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+ </select>
+ </div>
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;display: none">
+ <label class="layui-form-label">娣诲姞鏃堕棿锛�</label>
+ <div class="layui-input-inline">
+ <input id="appeTime$" class="layui-input" type="text" autocomplete="off">
+ </div>
+ </div>
+
+
+ <hr class="layui-bg-gray">
+
+ <div id="data-detail-btn" class="layui-btn-container layui-form-item">
+ <div id="data-detail-submit-save" type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="save">淇濆瓨</div>
+ <div id="data-detail-submit-edit" type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="edit">淇敼</div>
+ <div id="data-detail-close" type="button" class="layui-btn" lay-submit lay-filter="close">鍏抽棴</div>
+ </div>
+
+ <div id="prompt">
+ 娓╅Θ鎻愮ず锛氳浠旂粏濉啓鐩稿叧淇℃伅锛�<span class="extrude"><span class="not-null">*</span> 涓哄繀濉�夐」銆�</span>
+ </div>
+ </form>
+</div>
+</body>
+<script type="text/javascript" src="../../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/basWrkIotype/basWrkIotype.js" charset="utf-8"></script>
+</html>
+
diff --git a/src/main/webapp/views/admin/basWrkStatus/basWrkStatus.html b/src/main/webapp/views/admin/basWrkStatus/basWrkStatus.html
new file mode 100644
index 0000000..a598d16
--- /dev/null
+++ b/src/main/webapp/views/admin/basWrkStatus/basWrkStatus.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/cool.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/common.css" media="all">
+</head>
+<body>
+
+<!-- 鎼滅储鏍� -->
+<div id="search-box" class="layui-form layui-card-header">
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="wrk_sts" placeholder="浠e彿" autocomplete="off">
+ </div>
+ </div>
+
+ <!-- 寰呮坊鍔� -->
+ <div id="data-search-btn" class="layui-btn-container layui-form-item" style="display: inline-block">
+ <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">鎼滅储</button>
+ <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">閲嶇疆</button>
+ </div>
+</div>
+
+<!-- 琛ㄦ牸 -->
+<table class="layui-hide" id="basWrkStatus" lay-filter="basWrkStatus"></table>
+<script type="text/html" id="toolbar">
+ <div class="layui-btn-container">
+ <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">鏂板</button>
+ <button class="layui-btn layui-btn-sm" id="btn-delete" lay-event="deleteData">鍒犻櫎</button>
+ <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData">瀵煎嚭</button>
+ </div>
+</script>
+
+<script type="text/html" id="operate">
+ <a class="layui-btn layui-btn-xs btn-edit" lay-event="edit">缂栬緫</a>
+</script>
+
+<script type="text/javascript" src="../../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/basWrkStatus/basWrkStatus.js" charset="utf-8"></script>
+
+<iframe id="detail-iframe" scrolling="auto" style="display:none;"></iframe>
+
+</body>
+</html>
+
diff --git a/src/main/webapp/views/admin/basWrkStatus/basWrkStatus_detail.html b/src/main/webapp/views/admin/basWrkStatus/basWrkStatus_detail.html
new file mode 100644
index 0000000..ed48b5d
--- /dev/null
+++ b/src/main/webapp/views/admin/basWrkStatus/basWrkStatus_detail.html
@@ -0,0 +1,96 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/cool.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/common.css" media="all">
+</head>
+<body>
+
+<!-- 璇︽儏 -->
+<div id="data-detail" class="layer_self_wrap">
+ <form id="detail" class="layui-form" style="text-align: center">
+ <!--
+ <div class="layui-inline" style="display: none">
+ <label class="layui-form-label"><span class="not-null">*</span>缂栥��銆�鍙凤細</label>
+ <div class="layui-input-inline">
+ <input id="id" class="layui-input" type="text" placeholder="缂栧彿">
+ </div>
+ </div>
+ -->
+ <div class="layui-inline" style="width:80%;">
+ <label class="layui-form-label"><span class="not-null">*</span>浠c��銆�鍙凤細</label>
+ <div class="layui-input-inline">
+ <input id="wrkSts" class="layui-input" type="text" onkeyup="check(this.id, 'basWrkStatus')" lay-verify="required|number">
+ </div>
+ </div>
+ <div class="layui-inline" style="width:80%;">
+ <label class="layui-form-label"><span class="not-null">*</span>鐘舵�佹弿杩帮細</label>
+ <div class="layui-input-inline">
+ <input id="wrkDesc" class="layui-input" type="text" lay-verify="required">
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;display: none">
+ <label class="layui-form-label">淇敼浜哄憳锛�</label>
+ <div class="layui-input-inline cool-auto-complete">
+ <input id="modiUser" class="layui-input" type="text" style="display: none">
+ <input id="modiUser$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏�..." onfocus=this.blur()>
+ <div class="cool-auto-complete-window">
+ <input class="cool-auto-complete-window-input" data-key="userQueryBymodiUser" onkeyup="autoLoad(this.getAttribute('data-key'))">
+ <select class="cool-auto-complete-window-select" data-key="userQueryBymodiUserSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+ </select>
+ </div>
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;display: none">
+ <label class="layui-form-label">淇敼鏃堕棿锛�</label>
+ <div class="layui-input-inline">
+ <input id="modiTime$" class="layui-input" type="text" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;display: none">
+ <label class="layui-form-label">鍒� 寤� 鑰咃細</label>
+ <div class="layui-input-inline cool-auto-complete">
+ <input id="appeUser" class="layui-input" type="text" style="display: none">
+ <input id="appeUser$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏�..." onfocus=this.blur()>
+ <div class="cool-auto-complete-window">
+ <input class="cool-auto-complete-window-input" data-key="userQueryByappeUser" onkeyup="autoLoad(this.getAttribute('data-key'))">
+ <select class="cool-auto-complete-window-select" data-key="userQueryByappeUserSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+ </select>
+ </div>
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;display: none">
+ <label class="layui-form-label">娣诲姞鏃堕棿锛�</label>
+ <div class="layui-input-inline">
+ <input id="appeTime$" class="layui-input" type="text" autocomplete="off">
+ </div>
+ </div>
+
+
+ <hr class="layui-bg-gray">
+
+ <div id="data-detail-btn" class="layui-btn-container layui-form-item">
+ <div id="data-detail-submit-save" type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="save">淇濆瓨</div>
+ <div id="data-detail-submit-edit" type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="edit">淇敼</div>
+ <div id="data-detail-close" type="button" class="layui-btn" lay-submit lay-filter="close">鍏抽棴</div>
+ </div>
+
+ <div id="prompt">
+ 娓╅Θ鎻愮ず锛氳浠旂粏濉啓鐩稿叧淇℃伅锛�<span class="extrude"><span class="not-null">*</span> 涓哄繀濉�夐」銆�</span>
+ </div>
+ </form>
+</div>
+</body>
+<script type="text/javascript" src="../../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/basWrkStatus/basWrkStatus.js" charset="utf-8"></script>
+</html>
+
diff --git a/src/main/webapp/views/admin/config/config.html b/src/main/webapp/views/admin/config/config.html
new file mode 100644
index 0000000..a829c6e
--- /dev/null
+++ b/src/main/webapp/views/admin/config/config.html
@@ -0,0 +1,55 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/cool.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/common.css" media="all">
+</head>
+<body>
+
+<!-- 鎼滅储鏍� -->
+<div id="search-box" class="layui-form layui-card-header">
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="id" placeholder="缂栧彿" autocomplete="off">
+ </div>
+ </div>
+
+ <!-- 寰呮坊鍔� -->
+ <div id="data-search-btn" class="layui-btn-container layui-form-item">
+ <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">鎼滅储</button>
+ <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">閲嶇疆</button>
+ </div>
+</div>
+
+<!-- 琛ㄦ牸 -->
+<table class="layui-hide" id="config" lay-filter="config"></table>
+<script type="text/html" id="toolbar">
+ <div class="layui-btn-container">
+ <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">鏂板</button>
+ <button class="layui-btn layui-btn-sm" id="btn-delete" lay-event="deleteData">鍒犻櫎</button>
+ <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData">瀵煎嚭</button>
+ </div>
+</script>
+
+<script type="text/html" id="operate">
+ <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">璇︽儏</a>
+ <a class="layui-btn layui-btn-xs btn-edit" lay-event="edit">缂栬緫</a>
+</script>
+
+<script type="text/javascript" src="../../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/config/config.js" charset="utf-8"></script>
+
+<iframe id="detail-iframe" scrolling="auto" style="display:none;"></iframe>
+
+</body>
+</html>
+
diff --git a/src/main/webapp/views/admin/config/config_detail.html b/src/main/webapp/views/admin/config/config_detail.html
new file mode 100644
index 0000000..1b30cb8
--- /dev/null
+++ b/src/main/webapp/views/admin/config/config_detail.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/cool.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/common.css" media="all">
+</head>
+<body>
+
+<!-- 璇︽儏 -->
+<div id="data-detail" class="layer_self_wrap">
+ <form id="detail" class="layui-form">
+ <div class="layui-inline" style="display: none">
+ <label class="layui-form-label"><span class="not-null">*</span>缂栥��銆�鍙凤細</label>
+ <div class="layui-input-inline">
+ <input id="id" class="layui-input" type="text" placeholder="缂栧彿">
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;">
+ <label class="layui-form-label"><span class="not-null">*</span>鍚嶃��銆�绉帮細</label>
+ <div class="layui-input-inline">
+ <input id="name" class="layui-input" type="text" placeholder="鍚嶇О" lay-verify="required" >
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;">
+ <label class="layui-form-label"><span class="not-null">*</span>缂栥��銆�鐮侊細</label>
+ <div class="layui-input-inline">
+ <input id="code" class="layui-input" type="text" placeholder="缂栫爜" lay-verify="required" >
+ </div>
+ </div>
+ <div class="layui-inline" style="width:97%;">
+ <label class="layui-form-label"><span class="not-null">*</span>瀵� 搴� 鍊硷細</label>
+ <div class="layui-input-inline">
+ <input id="value" class="layui-input" type="text" placeholder="瀵瑰簲鍊�" lay-verify="required" >
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;">
+ <label class="layui-form-label"><span class="not-null">*</span>绫汇��銆�鍨嬶細</label>
+ <div class="layui-input-inline">
+ <select id="type" lay-verify="required">
+ <option value="" style="display: none"></option>
+ <option value="1">String</option>
+ <option value="2">JSON</option>
+ </select>
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;">
+ <label class="layui-form-label"><span class="not-null">*</span>鐘躲��銆�鎬侊細</label>
+ <div class="layui-input-inline">
+ <select id="status" lay-verify="required">
+ <option value="" style="display: none"></option>
+ <option value="1">姝e父</option>
+ <option value="0">绂佺敤</option>
+ </select>
+ </div>
+ </div>
+
+
+ <hr class="layui-bg-gray">
+
+ <div id="data-detail-btn" class="layui-btn-container layui-form-item">
+ <div id="data-detail-submit" type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="edit">淇濆瓨</div>
+ <div id="data-detail-close" type="button" class="layui-btn" lay-submit lay-filter="close">鍏抽棴</div>
+ </div>
+
+ <div id="prompt">
+ 娓╅Θ鎻愮ず锛氳浠旂粏濉啓鐩稿叧淇℃伅锛�<span class="extrude"><span class="not-null">*</span> 涓哄繀濉�夐」銆�</span>
+ </div>
+ </form>
+</div>
+</body>
+<script type="text/javascript" src="../../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/config/config.js" charset="utf-8"></script>
+</html>
+
diff --git a/src/main/webapp/views/admin/detail.html b/src/main/webapp/views/admin/detail.html
new file mode 100644
index 0000000..0bb264b
--- /dev/null
+++ b/src/main/webapp/views/admin/detail.html
@@ -0,0 +1,172 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="UTF-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all">
+ <script type="text/javascript" src="../../static/js/common.js"></script>
+ <style>
+ body {
+ background-color: #fff;
+ }
+ #container {
+ padding: 15px;
+ margin-top: 15px
+ }
+ .layui-card-body {
+ padding: 20px 15px 5px 15px;
+ }
+ .layui-form-item {
+ margin-bottom: 18px;
+ }
+ .layui-form-label {
+ color: #999!important;;
+ width: 60px;
+ }
+ .layui-input-block {
+ margin-left: 90px;
+ }
+ #update-password {
+ padding: 0 20px 0 15px;
+ }
+ .layui-btn .layui-icon {
+ margin-right: 0;
+ }
+ </style>
+</head>
+<body id="body">
+<div id="container">
+ <fieldset class="layui-elem-field">
+ <legend>璁剧疆鎴戠殑璧勬枡</legend>
+ <div class="layui-card-body">
+ <div id="person-detail" class="layui-form">
+ <div class="layui-form-item" style="display: none">
+ <label class="layui-form-label">缂栧彿</label>
+ <div class="layui-input-inline">
+ <input id="id" class="layui-input" type="text" placeholder="璇疯緭鍏�" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">瑙掕壊</label>
+ <div class="layui-input-inline">
+ <input id="roleName" class="layui-input" type="text" placeholder="璇疯緭鍏�" autocomplete="off" disabled="disabled">
+ </div>
+ <div class="layui-form-mid layui-word-aux">褰撳墠瑙掕壊涓嶅彲鏇存敼涓哄叾瀹冭鑹�</div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">鍚嶇О</label>
+ <div class="layui-input-inline">
+ <input id="username" class="layui-input" type="text" placeholder="璇疯緭鍏�" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">璐﹀彿</label>
+ <div class="layui-input-inline">
+ <input id="mobile" class="layui-input" type="text" placeholder="璇疯緭鍏�" autocomplete="off">
+ </div>
+ <div class="layui-form-mid layui-word-aux">閲嶈锛佷竴鑸敤浜庡悗鍙扮櫥鍏�</div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">瀵嗙爜</label>
+ <div class="layui-input-inline">
+ <input id="password" class="layui-input" type="text" placeholder="璇疯緭鍏�" autocomplete="off" style="display: none">
+ <button id="update-password" class="layui-btn layui-btn-primary">
+ <i class="layui-icon"></i>
+ 淇敼瀵嗙爜
+ </button>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">娉ㄥ唽鏃堕棿</label>
+ <div class="layui-input-inline">
+ <input id="createTime$" class="layui-input" type="text" placeholder="璇疯緭鍏�" autocomplete="off" disabled="disabled">
+ </div>
+ <div class="layui-form-mid layui-word-aux">涓嶅彲淇敼</div>
+ </div>
+ <div class="layui-form-item">
+ <div class="layui-input-block">
+ <button type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="save">纭淇敼</button>
+ </div>
+ </div>
+ </div>
+ </div>
+ </fieldset>
+</div>
+</body>
+<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script src="../../static/layui/layui.js"></script>
+<script>
+ layui.use(['form'], function(){
+ var form = layui.form,
+ layer = layui.layer,
+ $ = layui.jquery;
+
+ // 鍒濆鍖栬〃鍗曟暟鎹�
+ $.ajax({
+ url: baseUrl+"/user/detail/auth",
+ headers: {'token': localStorage.getItem('token')},
+ method: 'POST',
+ success: function (res) {
+ if (res.code === 200){
+ var user = res.data;
+ for (var val in user) {
+ $('#person-detail').find(":input[id='" + val + "']").val(user[val]);
+ }
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg);
+ }
+ }
+ });
+
+ // 淇敼瀵嗙爜
+ $(document).on('click','#update-password', function () {
+ layer.open({
+ type: 2,
+ title: '淇敼瀵嗙爜',
+ maxmin: true,
+ area: ['350px', '310px'],
+ shadeClose: false,
+ content: 'password.html',
+ success: function(layero, index){
+ layer.iframeAuto(index);
+ }
+ })
+ });
+
+
+ // 淇濆瓨淇敼
+ form.on('submit(save)', function (data) {
+ var user = {
+ id: $('#id').val(),
+ username: $('#username').val(),
+ mobile: $("#mobile").val(),
+ };
+ layer.confirm('纭畾淇敼璧勬枡鍚楋紵', function(){
+ $.ajax({
+ url: baseUrl+"/user/update/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: user,
+ method: 'POST',
+ success: function (res) {
+ if (res.code === 200){
+ layer.msg(res.msg);
+ localStorage.setItem("username", user.username);
+ parent.$('#person-username').text(localStorage.getItem('username'));
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg);
+ }
+ }
+ });
+ });
+ return false;
+ });
+ });
+</script>
+</html>
\ No newline at end of file
diff --git a/src/main/webapp/views/admin/index.html b/src/main/webapp/views/admin/index.html
new file mode 100644
index 0000000..e9d4c80
--- /dev/null
+++ b/src/main/webapp/views/admin/index.html
@@ -0,0 +1,199 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title>娴欐睙涓壃 - 鑷姩鍖栫珛浣撲粨搴� - AS / RS</title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
+ <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../static/css/admin.css?v=318" media="all">
+ <link rel="stylesheet" href="../../static/css/loader.css" media="all">
+ <style>
+ .layui-logo img {
+ width: 25px;
+ }
+ .layui-logo cite {
+ font-size: 18px;
+ font-weight: 400;
+ /*margin-left: 5px;*/
+ }
+ </style>
+</head>
+<body class="layui-layout-body">
+<div class="layui-layout layui-layout-admin">
+ <!-- 澶撮儴 -->
+ <div class="layui-header">
+ <div class="layui-logo">
+ <img src="../../static/images/zy-logo-dark.png" style="display: inline-block; width: 60%;height: auto">
+ <!-- <span style="margin-top: 0; letter-spacing: 10px">涓壃绔嬪簱</span>-->
+ <!-- <img src="../static/image/logo.svg"/>-->
+ <!-- <cite>涓壃 - Zoneyung</cite>-->
+ </div>
+
+ <ul class="layui-nav layui-layout-left">
+ <li class="layui-nav-item" lay-unselect>
+ <a ew-event="flexible" title="渚ц竟浼哥缉"><i class="layui-icon layui-icon-shrink-right"></i></a>
+ </li>
+ <li class="layui-nav-item" lay-unselect>
+ <a ew-event="refresh" title="鍒锋柊"><i class="layui-icon layui-icon-refresh-3"></i></a>
+ </li>
+ </ul>
+ <ul class="layui-nav layui-layout-right">
+<!-- <li class="layui-nav-item" lay-unselect>-->
+<!-- <a ew-event="note" title="渚跨"><i class="layui-icon layui-icon-note"></i></a>-->
+<!-- </li>-->
+ <li class="layui-nav-item" lay-unselect id="licenseShow" style="display: none;user-select: none;">
+ <div style="color: red;">璁稿彲璇佹湁鏁堟湡锛�<span id="licenseDays">29</span>澶�</div>
+ </li>
+ <li class="layui-nav-item layui-hide-xs" lay-unselect>
+ <a ew-event="fullScreen" title="鍏ㄥ睆"><i class="layui-icon layui-icon-screen-full"></i></a>
+ </li>
+ <li class="layui-nav-item" lay-unselect>
+ <a>
+ <cite id="username" style="margin-right: 5px">绠$悊鍛�</cite>
+ </a>
+ <dl class="layui-nav-child">
+ <dd lay-unselect><a ew-href="detail.html?resourceId=8">鍩烘湰璧勬枡</a></dd>
+ <hr>
+ <dd lay-unselect><a id="logout">閫�鍑�</a></dd>
+ </dl>
+ </li>
+ <li class="layui-nav-item" lay-unselect>
+ <a ew-event="theme" title="涓婚"><i class="layui-icon layui-icon-more-vertical"></i></a>
+ </li>
+ </ul>
+ </div>
+
+ <!-- 渚ц竟鏍� -->
+ <div class="layui-side">
+ <div class="layui-side-scroll">
+ <ul id="menu-main" class="layui-nav layui-nav-tree arrow2" lay-filter="admin-side-nav" lay-shrink="_all">
+ </ul>
+ </div>
+ </div>
+
+ <!-- 涓讳綋閮ㄥ垎 -->
+ <div class="layui-body"></div>
+ <!-- 搴曢儴 -->
+ <div class="layui-footer layui-text">
+ copyright 漏 2023 娴欐睙涓壃绔嬪簱鎶�鏈湁闄愬叕鍙� all rights reserved.
+ <span class="pull-right">Version 1.0.0</span>
+ </div>
+
+</div>
+
+<!--鍒濆鍖栧姞杞藉眰-->
+<div class="layuimini-loader">
+ <div class="layuimini-loader-inner"></div>
+</div>
+
+<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../static/layui/layui.js"></script>
+<script type="text/javascript" src="../../static/js/handlebars/handlebars-v4.5.3.js"></script>
+<script type="text/javascript" src="../../static/js/common.js"></script>
+<script>
+ console.log('%c 涓壃绔嬪簱骞冲彴 %c 1.0.0','background-color:rgb(53,73,94);color: #fff;border-radius:2px 0 0 2px;padding:2px 4px;','background-color:rgb(25,190,107);color: #fff;border-radius:0 2px 2px 0;padding:2px 4px;font: 9pt "Apercu Regular", Georgia, "Times New Roman", Times, serif;');
+ $(function () {
+ if ("" === localStorage.getItem('token')) {
+ top.location.href = baseUrl + "/login";
+ }
+ });
+
+ layui.config({
+ base: baseUrl + "/static/layui/lay/modules/"
+ }).extend({
+ notice: 'notice/notice',
+ }).use(['index', 'element', 'layer', 'admin', 'notice'], function () {
+ var $ = layui.jquery;
+ var index = layui.index;
+ var element = layui.element;
+ var layer = layui.layer;
+ var admin = layui.admin;
+ var notice = layui.notice;
+
+ var easywebIframeMsg = localStorage.getItem("easyweb-iframe");
+ if (!isEmpty(easywebIframeMsg)) {
+ var easywebIframeObj = JSON.parse(easywebIframeMsg);
+ if (easywebIframeObj.defaultTheme === undefined) {
+ admin.changeTheme("theme-colorful");
+ }
+ }
+
+ $.ajax({
+ url: baseUrl + "/menu/auth",
+ headers: {'token': localStorage.getItem('token')},
+ method: 'POST',
+ // async: false,
+ success: function (res) {
+ // 鍏抽棴鍔犺浇鍔ㄧ敾
+ $('.layuimini-loader').fadeOut();
+ if (res.code === 200) {
+ var tpl = $('#menuTpl').html();
+ var template = Handlebars.compile(tpl);
+ var html = template(res);
+ $("#menu-main").html(html);
+ element.init();
+ } else if (res.code === 403) {
+ top.location.href = baseUrl + "/login";
+ } else {
+ layer.msg(res.msg, {icon: 2});
+ }
+ }
+ });
+
+ $.ajax({
+ url: baseUrl + "/license/getLicenseDays",
+ headers: {'token': localStorage.getItem('token')},
+ method: 'POST',
+ success: function (res) {
+ if (res.code == 200) {
+ let days = res.data
+ if (days <= 30) {
+ $("#licenseShow").show()
+ $("#licenseDays").html(days)
+ }
+ }else {
+ top.location.href = baseUrl + "/login";
+ }
+ }
+ });
+
+ // 榛樿鍔犺浇涓婚〉
+ index.loadHome({
+ menuPath: baseUrl+'/views/admin/wrkMast/wrkMast.html',
+ menuName: '<i class="layui-icon layui-icon-home"></i>'
+ });
+
+ $('#username').text(localStorage.getItem('username'));
+
+ $(document).on('click','#logout', function () {
+ window.location.href = "login.html";
+ localStorage.removeItem('token');
+ localStorage.removeItem('username');
+ admin.closeAllTabs();
+ });
+
+ // 鏇挎崲閫�鍑烘寜閽彉閲�
+ var logout = document.getElementById('logout');
+ var url = logout.getAttribute('href');
+ logout.setAttribute('href', baseUrl + "/login");
+
+ });
+</script>
+<script type="text/html" id="menuTpl">
+ {{#each data}}
+ <li class="layui-nav-item">
+ <a><i class="layui-icon {{this.menuIcon}}"></i> <cite>{{this.menu}}</cite></a>
+ <dl class="layui-nav-child">
+ {{#each this.subMenu}}
+ <dd><a lay-href="{{this.code}}?resourceId={{this.id}}">{{this.name}}</a></dd>
+ {{/each}}
+ </dl>
+ </li>
+ {{/each}}
+</script>
+</body>
+</html>
+
+
diff --git a/src/main/webapp/views/admin/locMast/locMast.html b/src/main/webapp/views/admin/locMast/locMast.html
new file mode 100644
index 0000000..f2151e7
--- /dev/null
+++ b/src/main/webapp/views/admin/locMast/locMast.html
@@ -0,0 +1,177 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/cool.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/common.css" media="all">
+ <style>
+ #btn-init {
+ display: none;
+ }
+ .layui-layer-page .layui-layer-content {
+ position: relative;
+ overflow: visible !important;
+ }
+
+ </style>
+</head>
+<body>
+
+<!-- 鎼滅储鏍� -->
+<div id="search-box" class="layui-form layui-card-header">
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="loc_no" placeholder="搴撲綅鍙�" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="loc_sts" placeholder="搴撲綅鐘舵��" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="row1" placeholder="鎺�" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="bay1" placeholder="鍒�" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="lev1" placeholder="灞�" autocomplete="off">
+ </div>
+ </div>
+ <!-- 寰呮坊鍔� -->
+ <div id="data-search-btn" class="layui-btn-container layui-form-item" style="display: inline-block">
+ <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">鎼滅储</button>
+ <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">閲嶇疆</button>
+ </div>
+</div>
+
+<!-- 琛ㄦ牸 -->
+<div class="layui-form">
+ <table class="layui-hide" id="locMast" lay-filter="locMast"></table>
+</div>
+<script type="text/html" id="toolbar">
+ <div class="layui-btn-container">
+ <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">鏂板</button>
+ <button class="layui-btn layui-btn-sm" id="btn-delete" lay-event="deleteData">鍒犻櫎</button>
+ <button class="layui-btn layui-btn-primary" id="btn-init" lay-event="init">鍒濆鍖�</button>
+ <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData">瀵煎嚭</button>
+ </div>
+</script>
+
+<script type="text/html" id="operate">
+<!-- <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">璇︽儏</a>-->
+ <a class="layui-btn layui-btn-xs btn-edit" lay-event="edit">缂栬緫</a>
+</script>
+
+<script type="text/javascript" src="../../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/locMast/locMast.js" charset="utf-8"></script>
+<iframe id="detail-iframe" scrolling="auto" style="display:none;"></iframe>
+
+<!-- 閲嶇疆搴撲綅寮圭獥 -->
+<div id="resetLocDiv" style="margin: 20px 0 10px 30px; display: none">
+ <div class="layui-form layui-form-pane">
+ <!-- 鎺� -->
+ <div class="layui-form-item">
+ <div class="layui-inline">
+ <label class="layui-form-label">璧锋鎺�</label>
+ <div class="layui-input-inline" style="width: 100px;">
+ <input type="text" name="startRow" autocomplete="off" class="layui-input" lay-verify="required|number">
+ </div>
+ <div class="layui-form-mid">-</div>
+ <div class="layui-input-inline" style="width: 100px;">
+ <input type="text" name="endRow" autocomplete="off" class="layui-input" lay-verify="required|number">
+ </div>
+ </div>
+ </div>
+ <!-- 鍒� -->
+ <div class="layui-form-item">
+ <div class="layui-inline">
+ <label class="layui-form-label">璧锋鍒�</label>
+ <div class="layui-input-inline" style="width: 100px;">
+ <input type="text" name="startBay" autocomplete="off" class="layui-input" lay-verify="required|number">
+ </div>
+ <div class="layui-form-mid">-</div>
+ <div class="layui-input-inline" style="width: 100px;">
+ <input type="text" name="endBay" autocomplete="off" class="layui-input" lay-verify="required|number">
+ </div>
+ </div>
+ </div>
+ <!-- 灞� -->
+ <div class="layui-form-item">
+ <div class="layui-inline">
+ <label class="layui-form-label">璧锋灞�</label>
+ <div class="layui-input-inline" style="width: 100px;">
+ <input type="text" name="startLev" autocomplete="off" class="layui-input" lay-verify="required|number">
+ </div>
+ <div class="layui-form-mid">-</div>
+ <div class="layui-input-inline" style="width: 100px;">
+ <input type="text" name="endLev" autocomplete="off" class="layui-input" lay-verify="required|number">
+ </div>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">鍫嗗灈鏈烘暟閲�</label>
+ <div class="layui-input-inline">
+ <input type="text" name="crnAmount" lay-verify="required|number" autocomplete="off" class="layui-input">
+ </div>
+ </div>
+ <!-- 搴撲綅绫诲瀷 -->
+ <div class="layui-form-item">
+ <label class="layui-form-label">楂樹綆绫诲瀷</label>
+ <div class="layui-input-inline">
+ <select name="locType1">
+ <option style="display: none"></option>
+ <option value="0">鏈煡</option>
+ <option value="1">浣庡簱浣�</option>
+ <option value="2">楂樺簱浣�</option>
+ </select>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">瀹界獎绫诲瀷</label>
+ <div class="layui-input-inline">
+ <select name="locType2">
+ <option style="display: none"></option>
+ <option value="0">鏈煡</option>
+ <option value="1">绐勫簱浣�</option>
+ <option value="2">瀹藉簱浣�</option>
+ </select>
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">杞婚噸绫诲瀷</label>
+ <div class="layui-input-inline">
+ <select name="locType3">
+ <option style="display: none"></option>
+ <option value="0">鏈煡</option>
+ <option value="1">杞诲簱浣�</option>
+ <option value="2">閲嶅簱浣�</option>
+ </select>
+ </div>
+ </div>
+ <div id="prompt" style="text-indent: 10px;">
+ <span class="not-null">鍒濆鍖栧簱浣嶅悗灏嗗垹闄ゅ簱瀛樻槑缁嗭紝璇疯皑鎱庢搷浣滐紒</span>
+ </div>
+ <!-- 鎸夐挳 -->
+ <div style="text-align: center; margin-top: 20px">
+ <button class="layui-btn layui-btn-radius layui-btn-normal" id="initDo" lay-submit lay-filter="initDo">纭畾</button>
+ </div>
+ </div>
+</div>
+</body>
+</html>
+
diff --git a/src/main/webapp/views/admin/locMast/locMast_detail.html b/src/main/webapp/views/admin/locMast/locMast_detail.html
new file mode 100644
index 0000000..a4de168
--- /dev/null
+++ b/src/main/webapp/views/admin/locMast/locMast_detail.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/cool.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/common.css" media="all">
+</head>
+<body>
+
+<!-- 璇︽儏 -->
+<div id="data-detail" class="layer_self_wrap">
+ <form id="detail" class="layui-form" style="text-align: center">
+ <div class="layui-inline" style="width:80%;">
+ <label class="layui-form-label"><span class="not-null">*</span>搴� 浣� 鍙凤細</label>
+ <div class="layui-input-inline">
+ <input id="locNo" class="layui-input" type="text" onkeyup="check(this.id, 'locMast')">
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;display: none">
+ <label class="layui-form-label"><span class="not-null">*</span>锛�</label>
+ <div class="layui-input-inline">
+ <input id="locType" class="layui-input" type="text" >
+ </div>
+ </div>
+ <div class="layui-inline" style="width:80%; display: none">
+ <label class="layui-form-label">搴撲綅绫诲瀷锛�</label>
+ <div class="layui-input-inline cool-auto-complete">
+ <input id="whsType" class="layui-input" type="text" style="display: none">
+ <input id="whsType$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" onfocus=this.blur()>
+ <div class="cool-auto-complete-window">
+ <input class="cool-auto-complete-window-input" data-key="basWhsQueryBywhsType" onkeyup="autoLoad(this.getAttribute('data-key'))">
+ <select class="cool-auto-complete-window-select" data-key="basWhsQueryBywhsTypeSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+ </select>
+ </div>
+ </div>
+ </div>
+ <div class="layui-inline" style="width:80%;">
+ <label class="layui-form-label"><span class="not-null">*</span>搴撲綅鐘舵�侊細</label>
+ <div class="layui-input-inline cool-auto-complete">
+ <input id="locSts" class="layui-input" type="text" style="display: none">
+ <input id="locSts$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" onfocus=this.blur()>
+ <div class="cool-auto-complete-window">
+ <input class="cool-auto-complete-window-input" data-key="basLocStsQueryBylocSts" onkeyup="autoLoad(this.getAttribute('data-key'))">
+ <select class="cool-auto-complete-window-select" data-key="basLocStsQueryBylocStsSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+ </select>
+ </div>
+ </div>
+ </div>
+ <div class="layui-inline" style="width:80%;">
+ <label class="layui-form-label">鎺掞細</label>
+ <div class="layui-input-inline">
+ <input id="row1" class="layui-input" type="text" autocomplete="off" disabled="disabled">
+ </div>
+ </div>
+ <div class="layui-inline" style="width:80%;">
+ <label class="layui-form-label">鍒楋細</label>
+ <div class="layui-input-inline">
+ <input id="bay1" class="layui-input" type="text" autocomplete="off" disabled="disabled">
+ </div>
+ </div>
+ <div class="layui-inline" style="width:80%;">
+ <label class="layui-form-label">灞傦細</label>
+ <div class="layui-input-inline">
+ <input id="lev1" class="layui-input" type="text" autocomplete="off" disabled="disabled">
+ </div>
+ </div>
+
+
+ <div id="data-detail-btn" class="layui-btn-container layui-form-item">
+ <div id="data-detail-submit-save" type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="save">淇濆瓨</div>
+ <div id="data-detail-submit-edit" type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="edit">淇敼</div>
+ <div id="data-detail-close" type="button" class="layui-btn" lay-submit lay-filter="close">鍏抽棴</div>
+ </div>
+ </form>
+</div>
+</body>
+<script type="text/javascript" src="../../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/locMast/locMast.js" charset="utf-8"></script>
+</html>
+
diff --git a/src/main/webapp/views/admin/operateLog/operateLog.html b/src/main/webapp/views/admin/operateLog/operateLog.html
new file mode 100644
index 0000000..f77d75d
--- /dev/null
+++ b/src/main/webapp/views/admin/operateLog/operateLog.html
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/cool.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/common.css" media="all">
+</head>
+<body>
+
+<!-- 鎼滅储鏍� -->
+<div id="search-box" class="layui-form layui-card-header">
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="id" placeholder="缂栧彿" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline cool-auto-complete">
+ <input id="userId" class="layui-input" name="user_id" type="text" placeholder="璇疯緭鍏�" autocomplete="off" style="display: none">
+ <input id="userUsername" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="鐢ㄦ埛" onfocus=this.blur()>
+ <div class="cool-auto-complete-window">
+ <input class="cool-auto-complete-window-input" data-key="userQuery" onkeyup="autoLoad(this.getAttribute('data-key'))">
+ <select class="cool-auto-complete-window-select" data-key="userQuerySelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+ </select>
+ </div>
+ </div>
+ </div>
+ <!-- 鏃ユ湡鑼冨洿 -->
+ <div class="layui-inline" style="width: 300px">
+ <div class="layui-input-inline">
+ <input class="layui-input layui-laydate-range" name="create_time" type="text" placeholder="璧峰鏃堕棿 - 缁堟鏃堕棿" autocomplete="off" style="width: 300px">
+ </div>
+ </div>
+ <!-- 寰呮坊鍔� -->
+ <div id="data-search-btn" class="layui-btn-container layui-form-item">
+ <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">鎼滅储</button>
+ <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">閲嶇疆</button>
+ </div>
+</div>
+
+<!-- 琛ㄦ牸 -->
+<table class="layui-hide" id="operateLog" lay-filter="operateLog"></table>
+<script type="text/html" id="toolbar">
+ <div class="layui-btn-container">
+<!-- <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">鏂板</button>-->
+<!-- <button class="layui-btn layui-btn-sm" id="btn-delete" lay-event="deleteData">鍒犻櫎</button>-->
+ <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData" style="margin-top: 10px">瀵煎嚭</button>
+ </div>
+</script>
+
+<script type="text/html" id="operate">
+ <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">璇︽儏</a>
+</script>
+
+<script type="text/javascript" src="../../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/operateLog/operateLog.js" charset="utf-8"></script>
+
+<iframe id="detail-iframe" scrolling="auto" style="display:none;"></iframe>
+
+</body>
+</html>
+
diff --git a/src/main/webapp/views/admin/operateLog/operateLog_detail.html b/src/main/webapp/views/admin/operateLog/operateLog_detail.html
new file mode 100644
index 0000000..2875cc2
--- /dev/null
+++ b/src/main/webapp/views/admin/operateLog/operateLog_detail.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/cool.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/common.css" media="all">
+</head>
+<body>
+
+<!-- 璇︽儏 -->
+<div id="data-detail" class="layer_self_wrap">
+ <form id="detail" class="layui-form">
+ <div class="layui-inline" style="display: none">
+ <label class="layui-form-label"><span class="not-null">*</span>缂栥��銆�鍙凤細</label>
+ <div class="layui-input-inline">
+ <input id="id" class="layui-input" type="text" placeholder="缂栧彿">
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;">
+ <label class="layui-form-label"><span class="not-null">*</span>璁块棶鍦板潃锛�</label>
+ <div class="layui-input-inline">
+ <input id="action" class="layui-input" type="text" placeholder="璁块棶鍦板潃" lay-verify="required" >
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;">
+ <label class="layui-form-label"><span class="not-null">*</span>鐢ㄣ��銆�鎴凤細</label>
+ <div class="layui-input-inline cool-auto-complete">
+ <input id="userId" class="layui-input" type="text" placeholder="鐢ㄦ埛" lay-verify="required" style="display: none">
+ <input id="userUsername" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="鐢ㄦ埛" onfocus=this.blur()>
+ <div class="cool-auto-complete-window">
+ <input class="cool-auto-complete-window-input" data-key="userQuery" onkeyup="autoLoad(this.getAttribute('data-key'))">
+ <select class="cool-auto-complete-window-select" data-key="userQuerySelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+ </select>
+ </div>
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;">
+ <label class="layui-form-label"><span class="not-null">*</span>瀹㈡埛绔疘P锛�</label>
+ <div class="layui-input-inline">
+ <input id="ip" class="layui-input" type="text" placeholder="瀹㈡埛绔疘P" lay-verify="required" >
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;">
+ <label class="layui-form-label"><span class="not-null">*</span>璇锋眰鏁版嵁锛�</label>
+ <div class="layui-input-inline">
+ <input id="request" class="layui-input" type="text" placeholder="璇锋眰鏁版嵁" lay-verify="required" >
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;">
+ <label class="layui-form-label"><span class="not-null">*</span>鍝嶅簲鏁版嵁锛�</label>
+ <div class="layui-input-inline">
+ <input id="response" class="layui-input" type="text" placeholder="鍝嶅簲鏁版嵁" lay-verify="required" >
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;">
+ <label class="layui-form-label"><span class="not-null">*</span>娣诲姞鏃堕棿锛�</label>
+ <div class="layui-input-inline">
+ <input id="createTime$" class="layui-input" type="text" placeholder="娣诲姞鏃堕棿" lay-verify="required" autocomplete="off">
+ </div>
+ </div>
+
+
+ <hr class="layui-bg-gray">
+
+ <div id="data-detail-btn" class="layui-btn-container layui-form-item">
+ <div id="data-detail-submit" type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="edit">淇濆瓨</div>
+ <div id="data-detail-close" type="button" class="layui-btn" lay-submit lay-filter="close">鍏抽棴</div>
+ </div>
+
+ <div id="prompt">
+ 娓╅Θ鎻愮ず锛氳浠旂粏濉啓鐩稿叧淇℃伅锛�<span class="extrude"><span class="not-null">*</span> 涓哄繀濉�夐」銆�</span>
+ </div>
+ </form>
+</div>
+</body>
+<script type="text/javascript" src="../../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/operateLog/operateLog.js" charset="utf-8"></script>
+</html>
+
diff --git a/src/main/webapp/views/admin/password.html b/src/main/webapp/views/admin/password.html
new file mode 100644
index 0000000..faf8b1a
--- /dev/null
+++ b/src/main/webapp/views/admin/password.html
@@ -0,0 +1,146 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="UTF-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all">
+ <style>
+ #password-div {
+ padding: 20px 20px 20px 13px;
+ }
+ .layui-form-item {
+ margin-bottom: 8px;
+ }
+ .layui-form-item .layui-input-inline {
+ margin: 0 0 10px 100px
+ }
+ .layui-form-label {
+ color: #999!important;;
+ padding: 9px 0;
+ }
+ #password-btn {
+ padding-top: 5px;
+ margin-left: 40px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ }
+ #password-btn.layui-btn-container .layui-btn{
+ margin-right: 30px;
+ }
+ </style>
+</head>
+<body id="body">
+<div id="password-div">
+ <div class="layui-form" lay-filter="">
+ <div class="layui-form-item">
+ <label class="layui-form-label">褰撳墠瀵嗙爜</label>
+ <div class="layui-input-inline">
+ <input id="oldPassword" type="password" class="layui-input" lay-verify="checkPwd" lay-vertype="tips" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">鏂板瘑鐮�</label>
+ <div class="layui-input-inline">
+ <input type="password" class="layui-input" id="password" lay-verify="newPwd" lay-vertype="tips" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">纭鏂板瘑鐮�</label>
+ <div class="layui-input-inline">
+ <input type="password" class="layui-input" id="rePassword" lay-verify="rePwd" lay-vertype="tips" autocomplete="off">
+ </div>
+ </div>
+ <hr class="layui-bg-gray">
+ <div id="password-btn" class="layui-form-item layui-btn-container">
+ <div id="password-submit" type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="savePwd">淇濆瓨</div>
+ <div id="password-close" type="button" class="layui-btn" lay-submit lay-filter="close">鍏抽棴</div>
+ </div>
+ </div>
+</div>
+</body>
+<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../static/js/tools/md5.js"></script>
+<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
+<script src="../../static/layui/layui.js"></script>
+<script>
+ layui.use(['form'], function() {
+ var form = layui.form,
+ layer = layui.layer,
+ $ = layui.jquery;
+
+ form.verify({
+ checkPwd: function(val) {
+ if (val === ""){
+ // return "褰撳墠瀵嗙爜涓嶈兘涓虹┖";
+ }
+ if (parent.$('#password').val() !== hex_md5(val)) {
+ return "瀵嗙爜涓嶅尮閰�";
+ }
+ },
+ newPwd: function (val) {
+ if (val === ""){
+ return "鏂板瘑鐮佷笉鑳戒负绌�";
+ }
+ if (val.length < 4) {
+ return "涓嶈兘灏戜簬4涓瓧绗�";
+ }
+ if (parent.$('#password').val() === hex_md5(val)) {
+ return "涓庢棫瀵嗙爜涓嶈兘鐩稿悓";
+ }
+ },
+ rePwd: function (val) {
+ if ($('#password').val() !== val){
+ return "瀵嗙爜涓嶄竴鑷�";
+ }
+ }
+ });
+
+ form.on('submit(savePwd)', function (data) {
+ var user = {
+ id: parent.$('#id').val(),
+ password: hex_md5($('#password').val()),
+ };
+ $.ajax({
+ url: baseUrl+"/user/update/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: user,
+ method: 'POST',
+ success: function (res) {
+ if (res.code === 200){
+ parent.layer.close();
+ layer.confirm('瀵嗙爜淇敼鎴愬姛锛岃閲嶆柊鐧诲綍',{
+ btn: ['纭畾'],
+ btn1: function(){
+ localStorage.removeItem("token");
+ top.location.href = baseUrl+"/";
+ },
+ cancel: function(){
+ localStorage.removeItem("token");
+ top.location.href = baseUrl+"/";
+ },
+ closeBtn: 0,
+ shadeClose: false,
+ })
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg);
+ }
+ }
+ });
+ return false;
+ });
+
+
+ });
+
+ // 鍏抽棴鍔ㄤ綔
+ $(document).on('click','#password-close', function () {
+ parent.layer.closeAll();
+ });
+</script>
+</html>
\ No newline at end of file
diff --git a/src/main/webapp/views/admin/permission/permission.html b/src/main/webapp/views/admin/permission/permission.html
new file mode 100644
index 0000000..f55c0c0
--- /dev/null
+++ b/src/main/webapp/views/admin/permission/permission.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/cool.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/common.css" media="all">
+</head>
+<body>
+
+<!-- 鎼滅储鏍� -->
+<div id="search-box" class="layui-form layui-card-header">
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="id" placeholder="缂栧彿" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline cool-auto-complete">
+ <input id="resourceId" class="layui-input" name="resource_id" type="text" placeholder="璇疯緭鍏�" autocomplete="off" style="display: none">
+ <input id="resourceName" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="鎵�灞炶彍鍗�" onfocus=this.blur()>
+ <div class="cool-auto-complete-window">
+ <input class="cool-auto-complete-window-input" data-key="resourceQuery" onkeyup="autoLoad(this.getAttribute('data-key'))">
+ <select class="cool-auto-complete-window-select" data-key="resourceQuerySelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+ </select>
+ </div>
+ </div>
+ </div>
+
+ <!-- 寰呮坊鍔� -->
+ <div id="data-search-btn" class="layui-btn-container layui-form-item">
+ <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">鎼滅储</button>
+ <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">閲嶇疆</button>
+ </div>
+</div>
+
+<!-- 琛ㄦ牸 -->
+<table class="layui-hide" id="permission" lay-filter="permission"></table>
+<script type="text/html" id="toolbar">
+ <div class="layui-btn-container">
+ <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">鏂板</button>
+ <button class="layui-btn layui-btn-sm" id="btn-delete" lay-event="deleteData">鍒犻櫎</button>
+ <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData">瀵煎嚭</button>
+ </div>
+</script>
+
+<script type="text/html" id="operate">
+ <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">璇︽儏</a>
+ <a class="layui-btn layui-btn-xs btn-edit" lay-event="edit">缂栬緫</a>
+</script>
+
+<script type="text/javascript" src="../../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/permission/permission.js" charset="utf-8"></script>
+
+<iframe id="detail-iframe" scrolling="auto" style="display:none;"></iframe>
+
+</body>
+</html>
+
diff --git a/src/main/webapp/views/admin/permission/permission_detail.html b/src/main/webapp/views/admin/permission/permission_detail.html
new file mode 100644
index 0000000..ebbedbf
--- /dev/null
+++ b/src/main/webapp/views/admin/permission/permission_detail.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/cool.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/common.css" media="all">
+</head>
+<body>
+
+<!-- 璇︽儏 -->
+<div id="data-detail" class="layer_self_wrap">
+ <form id="detail" class="layui-form">
+ <div class="layui-inline" style="display: none">
+ <label class="layui-form-label"><span class="not-null">*</span>缂栥��銆�鍙凤細</label>
+ <div class="layui-input-inline">
+ <input id="id" class="layui-input" type="text" placeholder="缂栧彿">
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;">
+ <label class="layui-form-label"><span class="not-null">*</span>鏉冮檺鍚嶇О锛�</label>
+ <div class="layui-input-inline">
+ <input id="name" class="layui-input" type="text" placeholder="鏉冮檺鍚嶇О" lay-verify="required" >
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;">
+ <label class="layui-form-label"><span class="not-null">*</span>鎺ュ彛鍦板潃锛�</label>
+ <div class="layui-input-inline">
+ <input id="action" class="layui-input" type="text" placeholder="鎺ュ彛鍦板潃" lay-verify="required" >
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;">
+ <label class="layui-form-label">鎵�灞炶彍鍗曪細</label>
+ <div class="layui-input-inline cool-auto-complete">
+ <input id="resourceId" class="layui-input" type="text" placeholder="鎵�灞炶彍鍗�" style="display: none">
+ <input id="resourceName" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="鎵�灞炶彍鍗�" onfocus=this.blur()>
+ <div class="cool-auto-complete-window">
+ <input class="cool-auto-complete-window-input" data-key="resourceQuery" onkeyup="autoLoad(this.getAttribute('data-key'))">
+ <select class="cool-auto-complete-window-select" data-key="resourceQuerySelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+ </select>
+ </div>
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;">
+ <label class="layui-form-label"><span class="not-null">*</span>鐘躲��銆�鎬侊細</label>
+ <div class="layui-input-inline">
+ <select id="status" lay-verify="required">
+ <option value="" style="display: none"></option>
+ <option value="1">姝e父</option>
+ <option value="0">绂佺敤</option>
+ </select>
+ </div>
+ </div>
+
+
+ <hr class="layui-bg-gray">
+
+ <div id="data-detail-btn" class="layui-btn-container layui-form-item">
+ <div id="data-detail-submit" type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="edit">淇濆瓨</div>
+ <div id="data-detail-close" type="button" class="layui-btn" lay-submit lay-filter="close">鍏抽棴</div>
+ </div>
+
+ <div id="prompt">
+ 娓╅Θ鎻愮ず锛氳浠旂粏濉啓鐩稿叧淇℃伅锛�<span class="extrude"><span class="not-null">*</span> 涓哄繀濉�夐」銆�</span>
+ </div>
+ </form>
+</div>
+</body>
+<script type="text/javascript" src="../../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/permission/permission.js" charset="utf-8"></script>
+</html>
+
diff --git a/src/main/webapp/views/admin/resource/resource.html b/src/main/webapp/views/admin/resource/resource.html
new file mode 100644
index 0000000..d414c44
--- /dev/null
+++ b/src/main/webapp/views/admin/resource/resource.html
@@ -0,0 +1,309 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/admin.css?v=318" media="all">
+ <link rel="stylesheet" href="../../../static/css/cool.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/common.css" media="all">
+ <style>
+ #detail {
+ padding: 25px 30px 0 0;
+ }
+ .ew-tree-table-box {
+ height: 100%;
+ }
+ </style>
+</head>
+<body>
+
+
+<!-- 姝f枃寮�濮� -->
+<div class="layui-fluid">
+ <div class="layui-card">
+ <div class="layui-card-body">
+ <!-- 鏁版嵁琛ㄦ牸 -->
+ <table id="resource"></table>
+ </div>
+ </div>
+</div>
+
+<script type="text/html" id="operate">
+ <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">淇敼</a>
+ <a class="layui-btn layui-btn-danger layui-btn-xs btn-del" lay-event="del">鍒犻櫎</a>
+</script>
+
+<!-- 琛ㄥ崟寮圭獥 -->
+<script type="text/html" id="editDialog">
+ <form id="detail" lay-filter="detail" class="layui-form" style="margin: 0">
+ <input name="id" type="hidden">
+ <input name="uuid" type="hidden">
+ <input name="level" type="hidden">
+ <div class="layui-row">
+
+ <div class="layui-col-md6">
+
+ <div class="layui-form-item">
+ <label class="layui-form-label">涓婄骇鑿滃崟</label>
+ <div class="layui-input-block">
+ <div id="resourceParentSel" class="ew-xmselect-tree"></div>
+ </div>
+ </div>
+
+ <div class="layui-form-item">
+ <label class="layui-form-label layui-form-required">鑿滃崟缂栫爜</label>
+ <div class="layui-input-block">
+ <input name="code" placeholder="璇疯緭鍏ヨ彍鍗曠紪鐮�" class="layui-input" lay-vertype="tips" lay-verify="required" required="">
+ </div>
+ </div>
+
+ <div class="layui-form-item">
+ <label class="layui-form-label layui-form-required">绫诲瀷</label>
+ <div class="layui-input-block">
+ <select name="level" lay-vertype="tips" lay-verify="required" required="">
+ <option value="">璇烽�夋嫨绫诲瀷</option>
+ <option value="1">涓�绾ц彍鍗�</option>
+ <option value="2">浜岀骇鑿滃崟</option>
+ <option value="3">鎸夐挳</option>
+ </select>
+ </div>
+ </div>
+
+ </div>
+
+ <div class="layui-col-md6">
+
+ <div class="layui-form-item">
+ <label class="layui-form-label layui-form-required">鑿滃崟鍚嶇О</label>
+ <div class="layui-input-block">
+ <input name="name" placeholder="璇疯緭鍏ヨ彍鍗曞悕绉�" class="layui-input" lay-vertype="tips" lay-verify="required" required="">
+ </div>
+ </div>
+
+ <div class="layui-form-item">
+ <label class="layui-form-label">鎺掑簭</label>
+ <div class="layui-input-block">
+ <input name="sort" placeholder="璇疯緭鍏ユ帓搴�" class="layui-input" lay-verify="number">
+ </div>
+ </div>
+
+ <div class="layui-form-item">
+ <label class="layui-form-label layui-form-required">鐘舵��</label>
+ <div class="layui-input-block">
+ <select name="status" lay-vertype="tips" lay-verify="required" required="">
+ <option value="">璇烽�夋嫨鐘舵��</option>
+ <option value="1">姝e父</option>
+ <option value="0">绂佺敤</option>
+ </select>
+ </div>
+ </div>
+
+ </div>
+ </div>
+ <hr class="layui-bg-gray">
+ <div class="layui-form-item text-right">
+ <button class="layui-btn" lay-filter="editSubmit" lay-submit="">淇濆瓨</button>
+ <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">鍙栨秷</button>
+ </div>
+ </form>
+</script>
+<script type="text/html" id="typeTpl">
+ {{# if( d.level === 1 ){ }}
+ <span name="level" class="layui-badge layui-badge-green">鑿滃崟</span>
+ {{# } else if(d.level === 2){ }}
+ <span name="level" class="layui-badge layui-badge-green">鑿滃崟</span>
+ {{# } else if(d.level === 3){ }}
+ <span name="level" class="layui-badge layui-badge-gray">鎸夐挳</span>
+ {{# } }}
+</script>
+<script type="text/javascript" src="../../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/cool.js" charset="utf-8"></script>
+
+<script>
+ layui.config({
+ base: baseUrl + "/static/layui/lay/modules/"
+ }).use(['form','treeTable', 'admin', 'xmSelect'], function() {
+ var $ = layui.jquery;
+ var layer = layui.layer;
+ var form = layui.form;
+ var admin = layui.admin;
+ var treeTable = layui.treeTable;
+ var xmSelect = layui.xmSelect;
+ var tbDataList = [];
+
+ var insTb = treeTable.render({
+ elem: '#resource',
+ url: baseUrl+'/resource/tree/auth',
+ headers: {token: localStorage.getItem('token')},
+ height: 'full-200',
+ toolbar: ['<p>',
+ '<button lay-event="add" class="layui-btn layui-btn-sm icon-btn"><i class="layui-icon"></i>娣诲姞</button> ',
+ '<button lay-event="del" class="layui-btn layui-btn-sm layui-btn-danger icon-btn"><i class="layui-icon"></i>鍒犻櫎</button>',
+ '</p>'].join(''),
+ tree: {
+ iconIndex: 2, // 鎶樺彔鍥炬爣鏄剧ず鍦ㄧ鍑犲垪
+ isPidData: true, // 鏄惁鏄痠d銆乸id褰㈠紡鏁版嵁
+ idName: 'id', // id瀛楁鍚嶇О
+ pidName: 'resourceId' // pid瀛楁鍚嶇О
+ },
+ cols: [[
+ {type: 'checkbox', fixed: 'left'}
+ ,{field: 'id', title: 'ID', sort: true,align: 'center', fixed: 'left', width: 80, hide: true}
+ ,{field: 'name', align: 'left',title: '鑿滃崟鍚嶇О'}
+ ,{field: 'code', align: 'center',title: '鑿滃崟缂栫爜'}
+ // ,{field: 'resourceName', align: 'center',title: '鐖剁骇鑿滃崟'}
+ // ,{field: 'level$', align: 'center',title: '鑿滃崟绛夌骇'}
+ ,{field: 'type', align: 'center',title: '绫诲瀷', templet: '#typeTpl', width: 120}
+ ,{field: 'sort', align: 'center',title: '鎺掑簭'}
+
+ ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:150}
+ ]],
+ done: function (data) {
+ $('.ew-tree-table-box').css('height', '100%');
+ // insTb.expandAll();
+ tbDataList = data;
+ limit();
+ }
+ });
+
+ /* 琛ㄦ牸澶村伐鍏锋爮鐐瑰嚮浜嬩欢 */
+ treeTable.on('toolbar(resource)', function (obj) {
+ if (obj.event === 'add') { // 娣诲姞
+ showEditModel();
+ } else if (obj.event === 'del') { // 鍒犻櫎
+ var checkRows = insTb.checkStatus();
+ if (checkRows.length === 0) {
+ layer.msg('璇烽�夋嫨瑕佸垹闄ょ殑鏁版嵁', {icon: 2});
+ return;
+ }
+ var ids = checkRows.map(function (d) {
+ if (!d.LAY_INDETERMINATE) {
+ return d.id;
+ } else {
+ return null;
+ }
+ });
+ doDel({ids: ids});
+ }
+ });
+
+ /* 琛ㄦ牸鎿嶄綔鍒楃偣鍑讳簨浠� */
+ treeTable.on('tool(resource)', function (obj) {
+ if (obj.event === 'edit') { // 淇敼
+ showEditModel(obj.data);
+ } else if (obj.event === 'del') { // 鍒犻櫎
+ doDel(obj);
+ }
+ });
+
+ /* 鏄剧ず琛ㄥ崟寮圭獥 */
+ function showEditModel(mData) {
+ admin.open({
+ type: 1,
+ area: '600px',
+ title: (mData ? '淇敼' : '娣诲姞') + '鏉冮檺',
+ content: $('#editDialog').html(),
+ success: function (layero, dIndex) {
+ // 鍥炴樉琛ㄥ崟鏁版嵁
+ form.val('detail', mData);
+ // 琛ㄥ崟鎻愪氦浜嬩欢
+ form.on('submit(editSubmit)', function (data) {
+ data.field.resourceId = insXmSel.getValue('valueStr');
+ var loadIndex = layer.load(2);
+ $.ajax({
+ url: baseUrl+"/resource/"+(mData?'update':'add')+"/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: data.field,
+ method: 'POST',
+ success: function (res) {
+ layer.close(loadIndex);
+ if (res.code === 200){
+ layer.close(dIndex);
+ layer.msg(res.msg, {icon: 1});
+ insTb.refresh();
+ setTimeout(function () {
+ insTb.expand(data.field.resourceId);
+ }, 200)
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ }else {
+ layer.msg(res.msg, {icon: 2});
+ }
+ }
+ })
+ return false;
+ });
+
+ // 娓叉煋涓嬫媺鏍�
+ var insXmSel = xmSelect.render({
+ el: '#resourceParentSel',
+ height: '250px',
+ data: insTb.options.data,
+ initValue: mData&&mData.resourceId!=null ? [mData.resourceId] : [],
+ model: {label: {type: 'text'}},
+ prop: {
+ name: 'name',
+ value: 'id'
+ },
+ radio: true,
+ clickClose: true,
+ tree: {
+ show: true,
+ indent: 15,
+ strict: false,
+ expandedKeys: false
+ }
+ });
+ // 寮圭獥涓嶅嚭鐜版粴鍔ㄦ潯
+ $(layero).children('.layui-layer-content').css('overflow', 'visible');
+ layui.form.render('select');
+ }
+ });
+ }
+
+ /* 鍒犻櫎 */
+ function doDel(obj) {
+ layer.confirm('纭畾瑕佸垹闄ら�変腑鏁版嵁鍚楋紵', {
+ skin: 'layui-layer-admin',
+ shade: .1
+ }, function (i) {
+ layer.close(i);
+ var loadIndex = layer.load(2);
+ var ids;
+ if (obj.data) {
+ ids = [];
+ ids[0] = obj.data.id;
+ } else {
+ ids = obj.ids;
+ }
+ $.ajax({
+ url: baseUrl+"/resource/delete/auth",
+ headers: {'token': localStorage.getItem('token')},
+ data: {ids: ids},
+ method: 'POST',
+ success: function (res) {
+ layer.close(loadIndex);
+ if (res.code === 200){
+ layer.msg(res.msg, {icon: 1});
+ insTb.refresh();
+ } else if (res.code === 403){
+ top.location.href = baseUrl+"/";
+ } else {
+ layer.msg(res.msg, {icon: 2});
+ }
+ }
+ })
+ });
+ }
+
+ });
+</script>
+</body>
+</html>
+
diff --git a/src/main/webapp/views/admin/role/role.html b/src/main/webapp/views/admin/role/role.html
new file mode 100644
index 0000000..279392a
--- /dev/null
+++ b/src/main/webapp/views/admin/role/role.html
@@ -0,0 +1,60 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/cool.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/common.css" media="all">
+</head>
+<body>
+
+<!-- 鎼滅储鏍� -->
+<div id="search-box" class="layui-form layui-card-header">
+ <div class="layui-inline" >
+ <div class="layui-input-inline cool-auto-complete">
+ <input id="leader" name="leader" class="layui-input" type="text" style="display: none">
+ <input id="leader$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="涓婄骇" onfocus=this.blur()>
+ <div class="cool-auto-complete-window">
+ <input class="cool-auto-complete-window-input" data-key="roleQueryByleader" onkeyup="autoLoad(this.getAttribute('data-key'))">
+ <select class="cool-auto-complete-window-select" data-key="roleQueryByleaderSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+ </select>
+ </div>
+ </div>
+ </div>
+ <!-- 寰呮坊鍔� -->
+ <div id="data-search-btn" class="layui-btn-container layui-form-item">
+ <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">鎼滅储</button>
+ <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">閲嶇疆</button>
+ </div>
+</div>
+
+<!-- 琛ㄦ牸 -->
+<table class="layui-hide" id="role" lay-filter="role"></table>
+<script type="text/html" id="toolbar">
+ <div class="layui-btn-container">
+ <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">鏂板</button>
+ <button class="layui-btn layui-btn-sm" id="btn-delete" lay-event="deleteData">鍒犻櫎</button>
+ <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData">瀵煎嚭</button>
+ </div>
+</script>
+
+<script type="text/html" id="operate">
+ <a class="layui-btn layui-btn-xs layui-btn-warm" lay-event="power">鏉冮檺</a>
+ <a class="layui-btn layui-btn-xs btn-edit" lay-event="edit">缂栬緫</a>
+</script>
+
+<script type="text/javascript" src="../../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/role/role.js" charset="utf-8"></script>
+
+<iframe id="detail-iframe" scrolling="auto" style="display:none;"></iframe>
+
+</body>
+</html>
+
diff --git a/src/main/webapp/views/admin/role/role_detail.html b/src/main/webapp/views/admin/role/role_detail.html
new file mode 100644
index 0000000..f2d638d
--- /dev/null
+++ b/src/main/webapp/views/admin/role/role_detail.html
@@ -0,0 +1,82 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/cool.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/common.css" media="all">
+</head>
+<body>
+
+<!-- 璇︽儏 -->
+<div id="data-detail" class="layer_self_wrap">
+ <form id="detail" class="layui-form">
+ <div class="layui-inline" style="display: none">
+ <label class="layui-form-label"><span class="not-null">*</span>缂栥��銆�鍙凤細</label>
+ <div class="layui-input-inline">
+ <input id="id" class="layui-input" type="text" placeholder="缂栧彿">
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;">
+ <label class="layui-form-label"><span class="not-null">*</span>缂栥��銆�鐮侊細</label>
+ <div class="layui-input-inline">
+ <input id="code" class="layui-input" type="text" lay-verify="required" >
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;">
+ <label class="layui-form-label"><span class="not-null">*</span>鍚嶃��銆�绉帮細</label>
+ <div class="layui-input-inline">
+ <input id="name" class="layui-input" type="text" lay-verify="required" >
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;">
+ <label class="layui-form-label">涓娿��銆�绾э細</label>
+ <div class="layui-input-inline cool-auto-complete">
+ <input id="leader" class="layui-input" type="text" style="display: none">
+ <input id="leader$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏�..." onfocus=this.blur()>
+ <div class="cool-auto-complete-window">
+ <input class="cool-auto-complete-window-input" data-key="roleQueryByleader" onkeyup="autoLoad(this.getAttribute('data-key'))">
+ <select class="cool-auto-complete-window-select" data-key="roleQueryByleaderSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+ </select>
+ </div>
+ </div>
+ </div>
+ <div class="layui-inline" style="display: none; width:31%;">
+ <label class="layui-form-label">瑙掕壊绛夌骇锛�</label>
+ <div class="layui-input-inline">
+ <select id="level">
+ <option value="" style="display: none"></option>
+ <option value="1">涓�绾�</option>
+ <option value="2">浜岀骇</option>
+ <option value="3">涓夌骇</option>
+ <option value="4">鍥涚骇</option>
+ <option value="5">浜旂骇</option>
+ </select>
+ </div>
+ </div>
+
+
+ <hr class="layui-bg-gray">
+
+ <div id="data-detail-btn" class="layui-btn-container layui-form-item">
+ <div id="data-detail-submit" type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="edit">淇濆瓨</div>
+ <div id="data-detail-close" type="button" class="layui-btn" lay-submit lay-filter="close">鍏抽棴</div>
+ </div>
+
+ <div id="prompt">
+ 娓╅Θ鎻愮ず锛氳浠旂粏濉啓鐩稿叧淇℃伅锛�<span class="extrude"><span class="not-null">*</span> 涓哄繀濉�夐」銆�</span>
+ </div>
+ </form>
+</div>
+</body>
+<script type="text/javascript" src="../../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/role/role.js" charset="utf-8"></script>
+</html>
+
diff --git a/src/main/webapp/views/admin/role/role_power_detail.html b/src/main/webapp/views/admin/role/role_power_detail.html
new file mode 100644
index 0000000..95dec56
--- /dev/null
+++ b/src/main/webapp/views/admin/role/role_power_detail.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title>鏉冮檺绠$悊</title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/common.css" media="all">
+</head>
+<style>
+ #power {
+ margin-left: 20px;
+ }
+ .layui-tree.layui-form.layui-tree-line {
+ margin-left: 30px
+ }
+</style>
+<body>
+
+<!-- 鏉冮檺鏍戝舰鍥� -->
+ <form id="power" class="layui-form">
+ <div id="power-tree"></div>
+ <div id="data-detail-btn" class="layui-btn-container layui-form-item">
+ <div id="data-detail-submit" type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="save">淇濆瓨</div>
+ <div id="data-detail-close" type="button" class="layui-btn" lay-submit lay-filter="close">鍏抽棴</div>
+ </div>
+ </form>
+</div>
+</body>
+<script type="text/javascript" src="../../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/common.js"></script>
+<script type="text/javascript" src="../../../static/js/role/rolePower.js" charset="utf-8"></script>
+</html>
+
diff --git a/src/main/webapp/views/admin/tpl/alarm-detl.html b/src/main/webapp/views/admin/tpl/alarm-detl.html
new file mode 100644
index 0000000..1539922
--- /dev/null
+++ b/src/main/webapp/views/admin/tpl/alarm-detl.html
@@ -0,0 +1,52 @@
+<style>
+ pre {
+ font-family: 'DejaVu Sans Mono','Courier New',monospace;
+ padding: 15px 10px;
+ line-height: 17px;
+ margin: 5px;
+ word-wrap: break-word;
+ border: solid 1px #9e9e9e;
+ border-radius: 3px;
+ color: #729fcf;
+ }
+ .string { color: #4e9a06; }
+ .number { color: #ad7fa8; }
+ .boolean { color: #c4a000; }
+ .null { color: #babdb6; }
+ .key { color: #204a87; }
+</style>
+
+<div style="padding: 25px 25px 15px 25px;" id="callbackDialog">
+ <fieldset class="layui-elem-field layui-field-title">
+ <legend>鍩虹淇℃伅</legend>
+ </fieldset>
+ <div class="layui-text" style="margin-bottom: 5px;">
+ 浜嬩欢缂栧彿锛歿{d.request}}<br />
+ 璁惧缂栧彿锛歿{d.response.sensorId$}}<br />
+ 璁惧绫诲瀷锛歿{d.response.sensorType$}}<br />
+ </div>
+ <fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">
+ <legend>鎶ヨ淇℃伅</legend>
+ </fieldset>
+ <div class="layui-text" style="margin-bottom: 5px;">
+ 鍙戦�佹椂闂达細{{d.response.createTime$}}<br />
+ 鏁呴殰鎻忚堪锛歿{d.response.desc}}<br />
+ </div>
+ <div class="text-center" style="padding-top: 15px;text-align: right">
+ <button class="layui-btn layui-btn-normal" ew-event="closeDialog">鍏抽棴</button>
+ </div>
+</div>
+
+<!-- js閮ㄥ垎 -->
+<script>
+ layui.config({
+ base: baseUrl + "/static/layui/lay/modules/"
+ }).use(['layer', 'admin'], function () {
+ var $ = layui.jquery;
+ var layer = layui.layer;
+ var admin = layui.admin;
+
+ var layerData = admin.getLayerData('#callbackDialog');
+ });
+
+</script>
diff --git a/src/main/webapp/views/admin/tpl/theme/img/ic_loading.gif b/src/main/webapp/views/admin/tpl/theme/img/ic_loading.gif
new file mode 100644
index 0000000..071ecd6
--- /dev/null
+++ b/src/main/webapp/views/admin/tpl/theme/img/ic_loading.gif
Binary files differ
diff --git a/src/main/webapp/views/admin/tpl/theme/img/icon_date.png b/src/main/webapp/views/admin/tpl/theme/img/icon_date.png
new file mode 100644
index 0000000..5a50673
--- /dev/null
+++ b/src/main/webapp/views/admin/tpl/theme/img/icon_date.png
Binary files differ
diff --git a/src/main/webapp/views/admin/tpl/theme/img/icon_search.png b/src/main/webapp/views/admin/tpl/theme/img/icon_search.png
new file mode 100644
index 0000000..7db69d2
--- /dev/null
+++ b/src/main/webapp/views/admin/tpl/theme/img/icon_search.png
Binary files differ
diff --git a/src/main/webapp/views/admin/tpl/theme/img/theme-admin.png b/src/main/webapp/views/admin/tpl/theme/img/theme-admin.png
new file mode 100644
index 0000000..6b4696f
--- /dev/null
+++ b/src/main/webapp/views/admin/tpl/theme/img/theme-admin.png
Binary files differ
diff --git a/src/main/webapp/views/admin/tpl/theme/img/theme-blue.png b/src/main/webapp/views/admin/tpl/theme/img/theme-blue.png
new file mode 100644
index 0000000..33c9d24
--- /dev/null
+++ b/src/main/webapp/views/admin/tpl/theme/img/theme-blue.png
Binary files differ
diff --git a/src/main/webapp/views/admin/tpl/theme/img/theme-colorful.png b/src/main/webapp/views/admin/tpl/theme/img/theme-colorful.png
new file mode 100644
index 0000000..2cbeba0
--- /dev/null
+++ b/src/main/webapp/views/admin/tpl/theme/img/theme-colorful.png
Binary files differ
diff --git a/src/main/webapp/views/admin/tpl/theme/img/theme-cyan.png b/src/main/webapp/views/admin/tpl/theme/img/theme-cyan.png
new file mode 100644
index 0000000..368c04f
--- /dev/null
+++ b/src/main/webapp/views/admin/tpl/theme/img/theme-cyan.png
Binary files differ
diff --git a/src/main/webapp/views/admin/tpl/theme/img/theme-green.png b/src/main/webapp/views/admin/tpl/theme/img/theme-green.png
new file mode 100644
index 0000000..f7a5ca5
--- /dev/null
+++ b/src/main/webapp/views/admin/tpl/theme/img/theme-green.png
Binary files differ
diff --git a/src/main/webapp/views/admin/tpl/theme/img/theme-my.png b/src/main/webapp/views/admin/tpl/theme/img/theme-my.png
new file mode 100644
index 0000000..9fd7419
--- /dev/null
+++ b/src/main/webapp/views/admin/tpl/theme/img/theme-my.png
Binary files differ
diff --git a/src/main/webapp/views/admin/tpl/theme/img/theme-pink.png b/src/main/webapp/views/admin/tpl/theme/img/theme-pink.png
new file mode 100644
index 0000000..6088b1e
--- /dev/null
+++ b/src/main/webapp/views/admin/tpl/theme/img/theme-pink.png
Binary files differ
diff --git a/src/main/webapp/views/admin/tpl/theme/img/theme-purple.png b/src/main/webapp/views/admin/tpl/theme/img/theme-purple.png
new file mode 100644
index 0000000..072f439
--- /dev/null
+++ b/src/main/webapp/views/admin/tpl/theme/img/theme-purple.png
Binary files differ
diff --git a/src/main/webapp/views/admin/tpl/theme/img/theme-red.png b/src/main/webapp/views/admin/tpl/theme/img/theme-red.png
new file mode 100644
index 0000000..db9922e
--- /dev/null
+++ b/src/main/webapp/views/admin/tpl/theme/img/theme-red.png
Binary files differ
diff --git a/src/main/webapp/views/admin/tpl/theme/img/theme-white.png b/src/main/webapp/views/admin/tpl/theme/img/theme-white.png
new file mode 100644
index 0000000..4b4cb1f
--- /dev/null
+++ b/src/main/webapp/views/admin/tpl/theme/img/theme-white.png
Binary files differ
diff --git a/src/main/webapp/views/admin/tpl/tpl-note.html b/src/main/webapp/views/admin/tpl/tpl-note.html
new file mode 100644
index 0000000..5910e86
--- /dev/null
+++ b/src/main/webapp/views/admin/tpl/tpl-note.html
@@ -0,0 +1,206 @@
+<div class="layui-card-header">鏈湴渚跨</div>
+<div class="note-wrapper"></div>
+<div class="note-empty">
+ <i class="layui-icon layui-icon-face-surprised"></i>
+ <p>娌℃湁渚跨</p>
+</div>
+<div class="btn-circle" id="noteAddBtn" title="娣诲姞渚跨" style="position: absolute;">
+ <i class="layui-icon layui-icon-add-1"></i>
+</div>
+
+<script>
+ layui.use(['layer', 'form', 'util', 'admin'], function () {
+ var $ = layui.jquery;
+ var layer = layui.layer;
+ var util = layui.util;
+ var admin = layui.admin;
+ var dataList = []; // 渚跨鍒楄〃
+ var $noteWrapper = $('.note-wrapper');
+
+ /* 娓叉煋鍒楄〃 */
+ function renderList() {
+ $noteWrapper.empty();
+ dataList = layui.data(admin.setter.tableName).notes;
+ if (dataList === undefined) dataList = [];
+ for (var i = 0; i < dataList.length; i++) {
+ var item = dataList[i];
+ $noteWrapper.prepend([
+ '<div class="note-item" data-id="', item.id, '">',
+ ' <div class="note-item-content">', util.escape(item.content), '</div>',
+ ' <div class="note-item-time">', item.time, '</div>',
+ ' <i class="layui-icon layui-icon-close-fill note-item-del"></i>',
+ '</div>'
+ ].join(''));
+ }
+ $('.note-empty').css('display', dataList.length === 0 ? 'block' : 'none');
+ // 鐐瑰嚮淇敼
+ $('.note-item').click(function () {
+ var index = parseInt($(this).attr('data-id'));
+ showNote(dataList[index]);
+ });
+ // 鐐瑰嚮鍒犻櫎
+ $('.note-item-del').click(function (e) {
+ var id = parseInt($(this).parent().attr('data-id'));
+ layer.confirm('纭鍒犻櫎鍚楋紵', {
+ skin: 'layui-layer-admin',
+ shade: .1,
+ shadeClose: true
+ }, function (index) {
+ layer.close(index);
+ dataList.splice(id, 1);
+ for (var i = 0; i < dataList.length; i++) dataList[i].id = i;
+ putDataList();
+ renderList();
+ });
+ e.stopPropagation();
+ });
+ }
+
+ renderList();
+
+ /* 娣诲姞 */
+ $('#noteAddBtn').click(function () {
+ showNote();
+ });
+
+ // 鏄剧ず缂栬緫寮圭獥
+ function showNote(data) {
+ var id = data ? data.id : undefined, content = data ? data.content : '';
+ admin.open({
+ id: 'layer-note-edit',
+ title: '渚跨',
+ type: 1,
+ area: 'auto',
+ offset: '50px',
+ shadeClose: true,
+ content: '<textarea id="noteEditText" placeholder="璇疯緭鍏ュ唴瀹�" style="width: 280px;height: 150px;border: none;color: #666666;word-wrap: break-word;padding: 10px 20px;resize: vertical;">' + content + '</textarea>',
+ success: function () {
+ $('#noteEditText').change(function () {
+ content = $(this).val();
+ });
+ },
+ end: function () {
+ if (id !== undefined) {
+ if (!content) {
+ dataList.splice(id, 1);
+ for (var i = 0; i < dataList.length; i++) dataList[i].id = i;
+ } else if (content !== dataList[id].content) {
+ dataList[id].content = content;
+ dataList[id].time = util.toDateString(new Date(), 'yyyy-MM-dd HH:mm');
+ }
+ } else if (content) {
+ dataList.push({
+ id: dataList.length, content: content,
+ time: util.toDateString(new Date(), 'yyyy-MM-dd HH:mm')
+ });
+ }
+ putDataList();
+ renderList();
+ }
+ });
+ }
+
+ /* 鏇存柊鏈湴缂撳瓨 */
+ function putDataList() {
+ layui.data(admin.setter.tableName, {key: 'notes', value: dataList});
+ }
+
+ });
+</script>
+
+<style>
+ .note-wrapper {
+ padding: 15px 0 15px 15px;
+ background-color: #fbfbfb;
+ position: absolute;
+ top: 43px;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ overflow-y: auto;
+ -webkit-overflow-scrolling: touch;
+ }
+
+ .note-wrapper .note-item {
+ display: inline-block;
+ width: 110px;
+ padding: 12px;
+ cursor: pointer;
+ position: relative;
+ border-radius: 8px;
+ margin: 0 15px 15px 0;
+ border: 1px solid #eeeeee;
+ background-color: #ffffff;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ -webkit-transition: all .3s ease;
+ -moz-transition: all .3s ease;
+ -ms-transition: all .3s ease;
+ -o-transition: all .3s ease;
+ transition: all .3s ease;
+ }
+
+ .note-wrapper .note-item:hover {
+ box-shadow: 0 0 8px rgba(0, 0, 0, .05);
+ -webkit-transform: scale(1.02);
+ -moz-transform: scale(1.02);
+ -ms-transform: scale(1.02);
+ -o-transform: scale(1.02);
+ transform: scale(1.02);
+ }
+
+ .note-wrapper .note-item .note-item-content {
+ color: #666;
+ height: 80px;
+ font-size: 14px;
+ overflow: hidden;
+ word-break: break-all;
+ }
+
+ .note-wrapper .note-item .note-item-time {
+ color: #999;
+ font-size: 12px;
+ margin-top: 8px;
+ }
+
+ .note-wrapper .note-item .note-item-del {
+ position: absolute;
+ top: 2px;
+ right: 2px;
+ color: #FF5722;
+ font-size: 24px;
+ height: 24px;
+ width: 24px;
+ background-color: #fff;
+ border-radius: 50%;
+ visibility: hidden;
+ -webkit-transition: all .3s ease;
+ -moz-transition: all .3s ease;
+ -ms-transition: all .3s ease;
+ -o-transition: all .3s ease;
+ transition: all .3s ease;
+ opacity: 0;
+ }
+
+ .note-wrapper .note-item:hover .note-item-del {
+ visibility: visible;
+ opacity: 1;
+ }
+
+ .note-empty {
+ color: #999;
+ padding: 80px 0;
+ text-align: center;
+ display: none;
+ position: relative;
+ z-index: 1
+ }
+
+ .note-empty .layui-icon {
+ font-size: 60px;
+ margin-bottom: 10px;
+ display: inline-block;
+ }
+</style>
\ No newline at end of file
diff --git a/src/main/webapp/views/admin/tpl/tpl-theme.html b/src/main/webapp/views/admin/tpl/tpl-theme.html
new file mode 100644
index 0000000..7a1add0
--- /dev/null
+++ b/src/main/webapp/views/admin/tpl/tpl-theme.html
@@ -0,0 +1,229 @@
+<div class="layui-card-header">涓婚璁剧疆</div>
+<div class="more-theme-list">
+ <div class="more-theme-item" data-theme="theme-normal">
+ <img src="tpl/theme/img/theme-admin.png"/>
+ </div>
+ <div class="more-theme-item" data-theme="theme-cyan">
+ <img src="tpl/theme/img/theme-cyan.png"/>
+ </div>
+ <div class="more-theme-item" data-theme="theme-white">
+ <img src="tpl/theme/img/theme-white.png"/>
+ </div>
+ <div class="more-theme-item" data-theme="theme-pink">
+ <img src="tpl/theme/img/theme-pink.png"/>
+ </div>
+ <div class="more-theme-item active" data-theme="theme-colorful">
+ <img src="tpl/theme/img/theme-colorful.png"/>
+ </div>
+ <div class="more-theme-item" data-theme="theme-blue">
+ <img src="tpl/theme/img/theme-blue.png"/>
+ </div>
+ <div class="more-theme-item" data-theme="theme-green">
+ <img src="tpl/theme/img/theme-green.png"/>
+ </div>
+ <div class="more-theme-item" data-theme="theme-purple">
+ <img src="tpl/theme/img/theme-purple.png"/>
+ </div>
+<!-- <div class="more-theme-item" data-theme="theme-red">-->
+<!-- <img src="tpl/theme/img/theme-red.png"/>-->
+<!-- </div>-->
+ <div class="more-theme-item" data-theme="theme-my">
+ <img src="tpl/theme/img/theme-my.png"/>
+ </div>
+</div>
+<!-- 瀵艰埅 -->
+<div class="more-menu-list">
+<!-- <a class="more-menu-item" href="https://easyweb.vip/doc/" target="_blank">-->
+<!-- <i class="layui-icon layui-icon-read" style="font-size: 19px;"></i> 寮�鍙戞枃妗�-->
+<!-- </a>-->
+<!-- <a class="more-menu-item" href="https://demo.easyweb.vip/spa" target="_blank">-->
+<!-- <i class="layui-icon layui-icon-tabs" style="font-size: 16px;"></i> spa鐗堟湰-->
+<!-- </a>-->
+<!-- <a class="more-menu-item" href="https://demo.easyweb.vip/theme" target="_blank">-->
+<!-- <i class="layui-icon layui-icon-theme"></i> 涓婚鐢熸垚鍣�-->
+<!-- </a>-->
+</div>
+<!-- 鎺у埗寮�鍏� -->
+<div class="layui-form" style="margin: 25px 0;" lay-filter="more-set-form">
+ <div class="layui-form-item">
+ <label class="set-item-label">椤� 鑴氾細</label>
+ <div class="set-item-ctrl">
+ <input id="setFooter" lay-filter="setFooter" type="checkbox" lay-skin="switch" lay-text="寮�鍚瘄鍏抽棴">
+ </div>
+ <label class="set-item-label"> Tab 璁板繂锛�</label>
+ <div class="set-item-ctrl">
+ <input id="setTab" lay-filter="setTab" type="checkbox" lay-skin="switch" lay-text="寮�鍚瘄鍏抽棴">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="set-item-label">澶氭爣绛撅細</label>
+ <div class="set-item-ctrl">
+ <input id="setMoreTab" lay-filter="setMoreTab" type="checkbox" lay-skin="switch" lay-text="寮�鍚瘄鍏抽棴">
+ </div>
+ <label class="set-item-label">鍒囨崲鍒锋柊锛�</label>
+ <div class="set-item-ctrl">
+ <input id="setRefresh" lay-filter="setRefresh" type="checkbox" lay-skin="switch" lay-text="寮�鍚瘄鍏抽棴">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="set-item-label">瀵艰埅绠ご锛�</label>
+ <div class="set-item-ctrl">
+ <input lay-filter="navArrow" type="radio" value="" title="榛樿" name="navArrow">
+ <input lay-filter="navArrow" type="radio" value="arrow2" title="绠ご" name="navArrow">
+ <input lay-filter="navArrow" type="radio" value="arrow3" title="鍔犲彿" name="navArrow">
+ </div>
+ </div>
+</div>
+
+<script>
+ layui.use(['form', 'admin'], function () {
+ var $ = layui.jquery;
+ var form = layui.form;
+ var admin = layui.admin;
+ var setter = admin.setter;
+ var $body = $('body');
+
+ // 鍒囨崲涓婚
+ var $themItem = $('.more-theme-item');
+ $themItem.click(function () {
+ $themItem.removeClass('active');
+ $(this).addClass('active');
+ admin.changeTheme($(this).data('theme'));
+ });
+ var theme = $body.data('theme');
+ if (theme) {
+ $themItem.removeClass('active');
+ $themItem.filter('[data-theme="' + theme + '"]').addClass('active');
+ }
+
+ // 鍏抽棴/寮�鍚〉鑴�
+ form.on('switch(setFooter)', function (data) {
+ var checked = data.elem.checked;
+ admin.putSetting('closeFooter', !checked);
+ checked ? $body.removeClass('close-footer') : $body.addClass('close-footer');
+ });
+ $('#setFooter').prop('checked', !$body.hasClass('close-footer'));
+
+ // 鍏抽棴/寮�鍚疶ab璁板繂鍔熻兘
+ form.on('switch(setTab)', function (data) {
+ layui.index.setTabCache(data.elem.checked);
+ });
+ $('#setTab').prop('checked', setter.cacheTab);
+
+ // 鍏抽棴/寮�鍚鏍囩
+ form.on('switch(setMoreTab)', function (data) {
+ var checked = data.elem.checked;
+ admin.putSetting('pageTabs', checked);
+ admin.putTempData('indexTabs', undefined);
+ location.reload();
+ });
+ $('#setMoreTab').prop('checked', setter.pageTabs);
+
+ // 鍒囨崲Tab鑷姩鍒锋柊
+ var $mainTab = $('.layui-body>.layui-tab[lay-filter="admin-pagetabs"]');
+ form.on('switch(setRefresh)', function (data) {
+ var checked = data.elem.checked;
+ admin.putSetting('tabAutoRefresh', checked);
+ checked ? $mainTab.attr('lay-autoRefresh', 'true') : $mainTab.removeAttr('lay-autoRefresh');
+ });
+ $('#setRefresh').prop('checked', setter.tabAutoRefresh === true);
+
+ // 瀵艰埅灏忎笁瑙�
+ var $leftNav = $('.layui-layout-admin>.layui-side>.layui-side-scroll>.layui-nav');
+ form.on('radio(navArrow)', function (data) {
+ $leftNav.removeClass('arrow2 arrow3');
+ data.value && $leftNav.addClass(data.value);
+ admin.putSetting('navArrow', data.value);
+ });
+ var navArrow = $leftNav.hasClass('arrow2') ? 'arrow2' : $leftNav.hasClass('arrow3') ? 'arrow3' : '';
+ $('[name="navArrow"][value="' + navArrow + '"]').prop('checked', true);
+
+ form.render('radio', 'more-set-form');
+ form.render('checkbox', 'more-set-form');
+ });
+</script>
+
+<style>
+ /* theme */
+ .more-theme-list {
+ padding-left: 15px;
+ padding-top: 20px;
+ margin-bottom: 10px;
+ }
+
+ .more-theme-item {
+ padding: 4px;
+ margin: 0 6px 15px 0;
+ display: inline-block;
+ border: 1px solid transparent;
+ }
+
+ .more-theme-item img {
+ width: 80px;
+ height: 50px;
+ background: #f5f7f9;
+ box-sizing: border-box;
+ border: 1px solid #f5f7f9;
+ cursor: pointer;
+ }
+
+ .more-theme-item:hover, .more-theme-item.active {
+ border-color: #5FB878;
+ }
+
+ .more-menu-item {
+ color: #595959;
+ height: 50px;
+ line-height: 50px;
+ font-size: 16px;
+ padding: 0 25px;
+ border-bottom: 1px solid #e8e8e8;
+ font-style: normal;
+ display: block;
+ }
+
+ /* menu */
+ .more-menu-item:first-child {
+ border-top: 1px solid #e8e8e8;
+ }
+
+ .more-menu-item:hover {
+ color: #595959;
+ background: #f6f6f6;
+ }
+
+ .more-menu-item .layui-icon {
+ font-size: 18px;
+ padding-right: 10px;
+ }
+
+ .more-menu-item:after {
+ color: #8c8c8c;
+ right: 16px;
+ content: "\e602";
+ position: absolute;
+ font-family: layui-icon !important;
+ }
+
+ .more-menu-item.no-icon:after {
+ display: none;
+ }
+
+ /* setting from */
+ .set-item-label {
+ height: 38px;
+ line-height: 38px;
+ padding-left: 20px;
+ display: inline-block;
+ }
+
+ .set-item-ctrl {
+ height: 38px;
+ line-height: 38px;
+ display: inline-block;
+ }
+
+ .set-item-ctrl > * {
+ margin: 0 !important;
+ }
+</style>
diff --git a/src/main/webapp/views/admin/user/user.html b/src/main/webapp/views/admin/user/user.html
new file mode 100644
index 0000000..e317d2b
--- /dev/null
+++ b/src/main/webapp/views/admin/user/user.html
@@ -0,0 +1,177 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/admin.css?v=318" media="all">
+ <link rel="stylesheet" href="../../../static/css/cool.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/originTable.css" media="all">
+ <style>
+ body {
+ color: #595959;
+ background-color: #f5f7f9;
+ }
+
+ .admin-form {
+ padding: 25px 30px 0 0 !important;
+ margin: 0 !important;
+ }
+ </style>
+</head>
+<body>
+<!-- 姝f枃寮�濮� -->
+<div class="layui-fluid" style="padding-bottom: 0;">
+ <div class="layui-row layui-col-space15">
+ <div class="layui-col-md12">
+ <div class="layui-card">
+ <div class="layui-card-body" style="padding: 10px;">
+ <form class="layui-form toolbar">
+ <div class="layui-form-item">
+ <div class="layui-inline">
+ <label class="layui-form-label">鐢ㄦ埛鍚�:</label>
+ <div class="layui-input-inline">
+ <input name="username" class="layui-input" placeholder="杈撳叆鐢ㄦ埛鍚�"/>
+ </div>
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label">鎵嬫満鍙�:</label>
+ <div class="layui-input-inline">
+ <input name="mobile" class="layui-input" placeholder="杈撳叆鎵嬫満鍙�"/>
+ </div>
+ </div>
+ <div class="layui-inline"> 
+ <button class="layui-btn icon-btn" lay-filter="userTbSearch" lay-submit>
+ <i class="layui-icon"></i>鎼滅储
+ </button>
+ </div>
+ </div>
+ </form>
+ <table id="userTable" lay-filter="userTable"></table>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
+
+<script type="text/html" id="hostTpl">
+ <span name="hostName" class="layui-badge layui-badge-gray">{{d.hostName}}</span>
+</script>
+
+<script type="text/html" id="statusTpl">
+ <input type="checkbox" name="status" value="{{d.status}}" lay-skin="switch" lay-text="姝e父|绂佺敤" lay-filter="statusSwitch" {{ d.status === 1 ? 'checked' : '' }}>
+</script>
+
+<script type="text/html" id="operate">
+ <a class="layui-btn layui-btn-xs btn-edit" lay-event="edit">缂栬緫</a>
+ <a class="layui-btn layui-btn-xs btn-edit layui-btn-warm" lay-event="resetPwd">閲嶇疆瀵嗙爜</a>
+</script>
+
+<script type="text/html" id="userToolbar">
+ <div class="layui-btn-container">
+ <button class="layui-btn layui-btn-sm layui-btn-normal" id="btn-add" lay-event="add"><i class="layui-icon"></i>鏂板</button>
+ <button class="layui-btn layui-btn-sm layui-btn-danger" id="btn-delete" lay-event="del"><i class="layui-icon"></i>鍒犻櫎</button>
+ </div>
+</script>
+
+<!-- 閲嶇疆瀵嗙爜 -->
+<script type="text/html" id="resetpwd-window">
+ <form class="layui-form model-form">
+ <input type="hidden" id="resetUserId" name="resetUserId">
+ <div class="layui-form-item">
+ <label class="layui-form-label layui-form-required">鏂板瘑鐮�:</label>
+ <div class="layui-input-block">
+ <input id="resetPassword" name="resetPassword" placeholder="璇疯緭鍏ユ柊瀵嗙爜" class="layui-input" lay-verify="required" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-form-item text-right">
+ <button class="layui-btn layui-btn-normal" id="savePwd" lay-filter="savePwd" lay-submit="">纭畾</button>
+ <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">鍙栨秷</button>
+ </div>
+ </form>
+</script>
+
+<!-- 琛ㄥ崟寮圭獥 -->
+<script type="text/html" id="editDialog">
+ <form id="detail" lay-filter="detail" class="layui-form admin-form">
+ <input name="id" type="hidden">
+ <input name="status" type="hidden">
+ <div class="layui-row">
+
+ <div class="layui-col-md6">
+ <div class="layui-form-item">
+ <label class="layui-form-label layui-form-required">鐧诲綍璐︽埛</label>
+ <div class="layui-input-block">
+ <input name="username" placeholder="璇疯緭鍏ョ櫥褰曡处鎴�" class="layui-input" lay-vertype="tips" lay-verify="required" required="">
+ </div>
+ </div>
+
+ <div class="layui-form-item">
+ <label class="layui-form-label">瑙掕壊锛�</label>
+ <div class="layui-input-block cool-auto-complete">
+ <input name="roleId" class="layui-input" style="display: none">
+ <input id="roleName" name="roleName" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇烽�夋嫨瑙掕壊" onfocus=this.blur()>
+ <div class="cool-auto-complete-window">
+ <input class="cool-auto-complete-window-input" data-key="roleQuery" onkeyup="autoLoad(this.getAttribute('data-key'))">
+ <select class="cool-auto-complete-window-select" data-key="roleQuerySelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+ </select>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <div class="layui-col-md6">
+ <div class="layui-form-item">
+ <label class="layui-form-label layui-form-required">鎵嬫満鍙�</label>
+ <div class="layui-input-block">
+ <input name="mobile" placeholder="璇疯緭鍏ユ墜鏈哄彿" class="layui-input" lay-vertype="tips" lay-verify="required" required="">
+ </div>
+ </div>
+ <div class="layui-form-item">
+ <label class="layui-form-label">閭</label>
+ <div class="layui-input-block">
+ <input name="email" placeholder="璇疯緭鍏ラ偖绠�" class="layui-input">
+ </div>
+ </div>
+
+ </div>
+ </div>
+ <hr class="layui-bg-gray">
+ <div class="layui-form-item text-right">
+ <button class="layui-btn" lay-filter="editSubmit" lay-submit="">淇濆瓨</button>
+ <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">鍙栨秷</button>
+ </div>
+ </form>
+</script>
+
+<script type="text/javascript" src="../../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../../static/js/handlebars/handlebars-v4.5.3.js"></script>
+<script type="text/javascript" src="../../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/tools/md5.js"></script>
+<script type="text/javascript" src="../../../static/js/user/user.js" charset="utf-8"></script>
+
+<!-- 椤圭洰缂栬緫绐楀彛 -->
+<script type="text/html" id="hostEditDialog">
+ <form id="hostEditForm" lay-filter="hostEditForm" class="layui-form model-form">
+ <input name="id" type="hidden"/>
+ <div class="layui-form-item">
+ <label class="layui-form-label layui-form-required">椤圭洰鍚嶇О:</label>
+ <div class="layui-input-block">
+ <input name="name" placeholder="璇疯緭鍏ョ被鍨嬪悕绉�" class="layui-input"
+ lay-verType="tips" lay-verify="required" required/>
+ </div>
+ </div>
+ <div class="layui-form-item text-right">
+ <button class="layui-btn" lay-filter="hostEditSubmit" lay-submit>淇濆瓨</button>
+ <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">鍙栨秷</button>
+ </div>
+ </form>
+</script>
+</body>
+</html>
+
diff --git a/src/main/webapp/views/admin/user/user_detail.html b/src/main/webapp/views/admin/user/user_detail.html
new file mode 100644
index 0000000..e5213f4
--- /dev/null
+++ b/src/main/webapp/views/admin/user/user_detail.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../static/css/cool.css" media="all">
+ <link rel="stylesheet" href="../../static/css/common.css" media="all">
+</head>
+<body>
+
+<!-- 璇︽儏 -->
+<div id="data-detail" class="layer_self_wrap">
+ <form id="detail" class="layui-form" style="text-align: center">
+ <div class="layui-inline" style="display: none">
+ <label class="layui-form-label"><span class="not-null">*</span>缂栥��銆�鍙凤細</label>
+ <div class="layui-input-inline">
+ <input id="id" class="layui-input" type="text" placeholder="缂栧彿">
+ </div>
+ </div>
+<!-- <div class="layui-inline" style="width:31%;display: none">-->
+<!-- <label class="layui-form-label"><span class="not-null">*</span>鎺堟潈鍟嗘埛锛�</label>-->
+<!-- <div class="layui-input-inline cool-auto-complete">-->
+<!-- <input id="hostId" class="layui-input" type="text" placeholder="鎺堟潈鍟嗘埛" lay-verify="required" style="display: none">-->
+<!-- <input id="hostName" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="鎺堟潈鍟嗘埛" onfocus=this.blur()>-->
+<!-- <div class="cool-auto-complete-window">-->
+<!-- <input class="cool-auto-complete-window-input" data-key="hostQuery" onkeyup="autoLoad(this.getAttribute('data-key'))">-->
+<!-- <select class="cool-auto-complete-window-select" data-key="hostQuerySelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">-->
+<!-- </select>-->
+<!-- </div>-->
+<!-- </div>-->
+<!-- </div>-->
+ <div class="layui-inline" style="width:80%;">
+ <label class="layui-form-label"><span class="not-null">*</span>甯愩��銆�鍙凤細</label>
+ <div class="layui-input-inline">
+ <input id="mobile" class="layui-input" type="text" placeholder="璐﹀彿" lay-verify="required" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline" style="width:80%;">
+ <label class="layui-form-label"><span class="not-null">*</span>鍚嶃��銆�绉帮細</label>
+ <div class="layui-input-inline">
+ <input id="username" class="layui-input" type="text" placeholder="鍚嶇О" lay-verify="required" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline" style="width:80%;">
+ <label class="layui-form-label">瀵嗐��銆�鐮侊細</label>
+ <div class="layui-input-inline">
+ <input id="password" class="layui-input" type="text" placeholder="瀵嗙爜" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline" style="width:80%;">
+ <label class="layui-form-label"><span class="not-null">*</span>瑙掋��銆�鑹诧細</label>
+ <div class="layui-input-inline cool-auto-complete">
+ <input id="roleId" class="layui-input" type="text" placeholder="瑙掕壊" lay-verify="required" style="display: none">
+ <input id="roleName" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="瑙掕壊" onfocus=this.blur()>
+ <div class="cool-auto-complete-window">
+ <input class="cool-auto-complete-window-input" data-key="roleQuery" onkeyup="autoLoad(this.getAttribute('data-key'))">
+ <select class="cool-auto-complete-window-select" data-key="roleQuerySelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+ </select>
+ </div>
+ </div>
+ </div>
+
+ <hr class="layui-bg-gray">
+
+ <div id="data-detail-btn" class="layui-btn-container layui-form-item">
+ <div id="data-detail-submit" type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="edit">淇濆瓨</div>
+ <div id="data-detail-close" type="button" class="layui-btn" lay-submit lay-filter="close">鍏抽棴</div>
+ </div>
+
+ <div id="prompt">
+ 娓╅Θ鎻愮ず锛氳浠旂粏濉啓鐩稿叧淇℃伅锛�<span class="extrude"><span class="not-null">*</span> 涓哄繀濉�夐」銆�</span>
+ </div>
+ </form>
+</div>
+</body>
+<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../static/js/tools/md5.js"></script>
+<script type="text/javascript" src="../../static/js/user/user.js" charset="utf-8"></script>
+</html>
+
diff --git a/src/main/webapp/views/admin/userLogin/userLogin.html b/src/main/webapp/views/admin/userLogin/userLogin.html
new file mode 100644
index 0000000..052eec9
--- /dev/null
+++ b/src/main/webapp/views/admin/userLogin/userLogin.html
@@ -0,0 +1,61 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/cool.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/common.css" media="all">
+</head>
+<body>
+
+<!-- 鎼滅储鏍� -->
+<div id="search-box" class="layui-form layui-card-header">
+ <div class="layui-inline">
+ <div class="layui-input-inline cool-auto-complete">
+ <input id="userId" class="layui-input" name="user_id" type="text" placeholder="璇疯緭鍏�" autocomplete="off" style="display: none">
+ <input id="userUsername" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="鐢ㄦ埛" onfocus=this.blur()>
+ <div class="cool-auto-complete-window">
+ <input class="cool-auto-complete-window-input" data-key="userQuery" onkeyup="autoLoad(this.getAttribute('data-key'))">
+ <select class="cool-auto-complete-window-select" data-key="userQuerySelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+ </select>
+ </div>
+ </div>
+ </div>
+
+ <!-- 寰呮坊鍔� -->
+ <div id="data-search-btn" class="layui-btn-container layui-form-item">
+ <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">鎼滅储</button>
+ <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">閲嶇疆</button>
+ </div>
+</div>
+
+<!-- 琛ㄦ牸 -->
+<table class="layui-hide" id="userLogin" lay-filter="userLogin"></table>
+<script type="text/html" id="toolbar">
+ <div class="layui-btn-container">
+ <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">鏂板</button>
+ <button class="layui-btn layui-btn-sm" id="btn-delete" lay-event="deleteData">鍒犻櫎</button>
+ <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData">瀵煎嚭</button>
+ </div>
+</script>
+
+<script type="text/html" id="operate">
+ <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">璇︽儏</a>
+ <a class="layui-btn layui-btn-xs btn-edit" lay-event="edit">缂栬緫</a>
+</script>
+
+<script type="text/javascript" src="../../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/userLogin/userLogin.js" charset="utf-8"></script>
+
+<iframe id="detail-iframe" scrolling="auto" style="display:none;"></iframe>
+
+</body>
+</html>
+
diff --git a/src/main/webapp/views/admin/userLogin/userLogin_detail.html b/src/main/webapp/views/admin/userLogin/userLogin_detail.html
new file mode 100644
index 0000000..2d1b2cc
--- /dev/null
+++ b/src/main/webapp/views/admin/userLogin/userLogin_detail.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/cool.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/common.css" media="all">
+</head>
+<body>
+
+<!-- 璇︽儏 -->
+<div id="data-detail" class="layer_self_wrap">
+ <form id="detail" class="layui-form">
+ <div class="layui-inline" style="display: none">
+ <label class="layui-form-label"><span class="not-null">*</span>缂栥��銆�鍙凤細</label>
+ <div class="layui-input-inline">
+ <input id="id" class="layui-input" type="text" placeholder="缂栧彿">
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;">
+ <label class="layui-form-label"><span class="not-null">*</span>鍛樸��銆�宸ワ細</label>
+ <div class="layui-input-inline cool-auto-complete">
+ <input id="userId" class="layui-input" type="text" placeholder="鍛樺伐" lay-verify="required" style="display: none">
+ <input id="userUsername" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="鍛樺伐" onfocus=this.blur()>
+ <div class="cool-auto-complete-window">
+ <input class="cool-auto-complete-window-input" data-key="userQuery" onkeyup="autoLoad(this.getAttribute('data-key'))">
+ <select class="cool-auto-complete-window-select" data-key="userQuerySelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+ </select>
+ </div>
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;">
+ <label class="layui-form-label"><span class="not-null">*</span>鍑� 璇� 鍊硷細</label>
+ <div class="layui-input-inline">
+ <input id="token" class="layui-input" type="text" placeholder="鍑瘉鍊�" lay-verify="required" >
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;">
+ <label class="layui-form-label"><span class="not-null">*</span>娣诲姞鏃堕棿锛�</label>
+ <div class="layui-input-inline">
+ <input id="createTime$" class="layui-input" type="text" placeholder="娣诲姞鏃堕棿" lay-verify="required" >
+ </div>
+ </div>
+
+
+ <hr class="layui-bg-gray">
+
+ <div id="data-detail-btn" class="layui-btn-container layui-form-item">
+ <div id="data-detail-submit" type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="edit">淇濆瓨</div>
+ <div id="data-detail-close" type="button" class="layui-btn" lay-submit lay-filter="close">鍏抽棴</div>
+ </div>
+
+ <div id="prompt">
+ 娓╅Θ鎻愮ず锛氳浠旂粏濉啓鐩稿叧淇℃伅锛�<span class="extrude"><span class="not-null">*</span> 涓哄繀濉�夐」銆�</span>
+ </div>
+ </form>
+</div>
+</body>
+<script type="text/javascript" src="../../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/userLogin/userLogin.js" charset="utf-8"></script>
+</html>
+
diff --git a/src/main/webapp/views/admin/wrkLastno/wrkLastno.html b/src/main/webapp/views/admin/wrkLastno/wrkLastno.html
new file mode 100644
index 0000000..d7eb4d2
--- /dev/null
+++ b/src/main/webapp/views/admin/wrkLastno/wrkLastno.html
@@ -0,0 +1,58 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/cool.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/common.css" media="all">
+</head>
+<body>
+
+<!-- 鎼滅储鏍� -->
+<div id="search-box" class="layui-form layui-card-header">
+ <!--<div class="layui-inline">-->
+ <!--<label class="layui-form-label">缂栥��銆�鍙凤細</label>-->
+ <!--<div class="layui-input-inline">-->
+ <!--<input class="layui-input" type="text" name="id" placeholder="璇疯緭鍏�" autocomplete="off">-->
+ <!--</div>-->
+ <!--</div>-->
+
+ <!--<!– 寰呮坊鍔� –>-->
+ <!--<div id="data-search-btn" class="layui-btn-container layui-form-item">-->
+ <!--<button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">鎼滅储</button>-->
+ <!--<button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">閲嶇疆</button>-->
+ <!--</div>-->
+</div>
+
+<!-- 琛ㄦ牸 -->
+<div class="layui-form">
+ <table class="layui-hide" id="wrkLastno" lay-filter="wrkLastno"></table>
+</div>
+<script type="text/html" id="toolbar">
+ <div class="layui-btn-container">
+ <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">鏂板</button>
+ <button class="layui-btn layui-btn-sm" id="btn-delete" lay-event="deleteData">鍒犻櫎</button>
+ <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData">瀵煎嚭</button>
+ </div>
+</script>
+
+<script type="text/html" id="operate">
+ <!--<a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">璇︽儏</a>-->
+ <a class="layui-btn layui-btn-xs btn-edit" lay-event="edit">缂栬緫</a>
+</script>
+
+<script type="text/javascript" src="../../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/wrkLastno/wrkLastno.js" charset="utf-8"></script>
+
+<iframe id="detail-iframe" scrolling="auto" style="display:none;"></iframe>
+
+</body>
+</html>
+
diff --git a/src/main/webapp/views/admin/wrkLastno/wrkLastno_detail.html b/src/main/webapp/views/admin/wrkLastno/wrkLastno_detail.html
new file mode 100644
index 0000000..8387b4a
--- /dev/null
+++ b/src/main/webapp/views/admin/wrkLastno/wrkLastno_detail.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/cool.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/common.css" media="all">
+</head>
+<body>
+
+<!-- 璇︽儏 -->
+<div id="data-detail" class="layer_self_wrap">
+ <form id="detail" class="layui-form">
+ <!--
+ <div class="layui-inline" style="display: none">
+ <label class="layui-form-label"><span class="not-null">*</span>缂栥��銆�鍙凤細</label>
+ <div class="layui-input-inline">
+ <input id="id" class="layui-input" type="text" placeholder="缂栧彿">
+ </div>
+ </div>
+ -->
+ <div class="layui-inline" style="width:31%;">
+ <label class="layui-form-label"><span class="not-null">*</span>绫汇��銆�鍨嬶細</label>
+ <div class="layui-input-inline">
+ <input id="wrkMk" class="layui-input" type="text" onkeyup="check(this.id, 'wrkLastno')">
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;">
+ <label class="layui-form-label"><span class="not-null">*</span>褰撳墠ID锛�</label>
+ <div class="layui-input-inline">
+ <input id="wrkNo" class="layui-input" type="text" lay-verify="required" >
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;">
+ <label class="layui-form-label"><span class="not-null">*</span>缁堟ID锛�</label>
+ <div class="layui-input-inline">
+ <input id="eno" class="layui-input" type="text" lay-verify="required" >
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;">
+ <label class="layui-form-label"><span class="not-null">*</span>璧峰ID锛�</label>
+ <div class="layui-input-inline">
+ <input id="sno" class="layui-input" type="text" lay-verify="required" >
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;">
+ <label class="layui-form-label">澶囥��銆�娉細</label>
+ <div class="layui-input-inline">
+ <input id="memoM" class="layui-input" type="text">
+ </div>
+ </div>
+
+
+ <hr class="layui-bg-gray">
+
+ <div id="data-detail-btn" class="layui-btn-container layui-form-item">
+ <div id="data-detail-submit-save" type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="save">淇濆瓨</div>
+ <div id="data-detail-submit-edit" type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="edit">淇敼</div>
+ <div id="data-detail-close" type="button" class="layui-btn" lay-submit lay-filter="close">鍏抽棴</div>
+ </div>
+
+ <div id="prompt">
+ 娓╅Θ鎻愮ず锛氳浠旂粏濉啓鐩稿叧淇℃伅锛�<span class="extrude"><span class="not-null">*</span> 涓哄繀濉�夐」銆�</span>
+ </div>
+ </form>
+</div>
+</body>
+<script type="text/javascript" src="../../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/wrkLastno/wrkLastno.js" charset="utf-8"></script>
+</html>
+
diff --git a/src/main/webapp/views/task.html b/src/main/webapp/views/admin/wrkMast/wrkMast.html
similarity index 95%
rename from src/main/webapp/views/task.html
rename to src/main/webapp/views/admin/wrkMast/wrkMast.html
index d4b48bb..169f899 100644
--- a/src/main/webapp/views/task.html
+++ b/src/main/webapp/views/admin/wrkMast/wrkMast.html
@@ -4,12 +4,12 @@
<head>
<meta charset="UTF-8">
<title>浠诲姟绠$悊</title>
- <link rel="stylesheet" href="../static/vue/element/element.css">
- <script type="text/javascript" src="../static/js/jquery/jquery-3.3.1.min.js"></script>
- <script type="text/javascript" src="../static/layui/layui.js"></script>
- <script type="text/javascript" src="../static/js/common.js"></script>
- <script type="text/javascript" src="../static/vue/js/vue.min.js"></script>
- <script type="text/javascript" src="../static/vue/element/element.js"></script>
+ <link rel="stylesheet" href="../../../static/vue/element/element.css">
+ <script type="text/javascript" src="../../../static/js/jquery/jquery-3.3.1.min.js"></script>
+ <script type="text/javascript" src="../../../static/layui/layui.js"></script>
+ <script type="text/javascript" src="../../../static/js/common.js"></script>
+ <script type="text/javascript" src="../../../static/vue/js/vue.min.js"></script>
+ <script type="text/javascript" src="../../../static/vue/element/element.js"></script>
<style>
.el-table .success-row {
background: #b6ff8e;
diff --git a/src/main/webapp/views/admin/wrkMastLog/wrkDetlLog.html b/src/main/webapp/views/admin/wrkMastLog/wrkDetlLog.html
new file mode 100644
index 0000000..240e970
--- /dev/null
+++ b/src/main/webapp/views/admin/wrkMastLog/wrkDetlLog.html
@@ -0,0 +1,99 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/cool.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/common.css" media="all">
+ <style>
+ </style>
+</head>
+<body>
+<div class="layui-inline" style="width:20%;margin-top: 20px">
+ <label class="layui-form-label">宸� 浣� 鍙凤細</label>
+ <div class="layui-input-inline">
+ <input id="wrkNo" class="layui-input" type="text" disabled="disabled">
+ </div>
+</div>
+<div class="layui-inline" style="width:20%;margin-top: 20px">
+ <label class="layui-form-label">宸ヤ綔鏃堕棿锛�</label>
+ <div class="layui-input-inline">
+ <input id="ioTime" class="layui-input" type="text" disabled="disabled">
+ </div>
+</div>
+
+<table class="layui-hide" id="wrkDetlLogByMast" lay-filter="wrkDetlLogByMast"></table>
+</body>
+<script type="text/javascript" src="../../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/locMast/locMast.js" charset="utf-8"></script>
+<script type="text/javascript">
+ var pageCur;
+ function getCol() {
+ let cols = [
+ {field: 'wrkNo', align: 'center',title: '宸ヤ綔鍙�'}
+ ,{field: 'ioTime$', align: 'center',title: '宸ヤ綔鏃堕棿',width:160}
+ ];
+ cols.push.apply(cols, detlCols);
+ return cols;
+ }
+ layui.use(['table','laydate', 'form'], function() {
+ table = layui.table;
+ var $ = layui.jquery;
+ var form = layui.form;
+
+ $('#wrkNo').val(parent.wrkNo);
+ $('#ioTime').val(top.dateToStr(parent.ioTime, true));
+ // 鏁版嵁娓叉煋
+ tableIns1 = table.render({
+ elem: '#wrkDetlLogByMast',
+ headers: {token: localStorage.getItem('token')},
+ url: baseUrl+'/wrkDetlLogByMast/list/auth',
+ where: {wrk_no: parent.wrkNo,ioTime: top.dateToStr(parent.ioTime, true)},
+ page: true,
+ limit: 16,
+ limits: [16, 30, 50, 100, 200, 500],
+ even: true,
+ toolbar: '#toolbar',
+ cellMinWidth: 50,
+ cols: [getCol()],
+ request: {
+ pageName: 'curr',
+ pageSize: 'limit'
+ },
+ parseData: function (res) {
+ return {
+ 'code': res.code,
+ 'msg': res.msg,
+ 'count': res.data.total,
+ 'data': res.data.records
+ }
+ },
+ response: {
+ statusCode: 200
+ },
+ done: function(res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCur=curr;
+ form.on('checkbox(tableCheckbox)', function (data) {
+ var _index = $(data.elem).attr('table-index')||0;
+ if(data.elem.checked){
+ res.data[_index][data.value] = 'Y';
+ }else{
+ res.data[_index][data.value] = 'N';
+ }
+ });
+ }
+ });
+ });
+</script>
+</html>
+
diff --git a/src/main/webapp/views/admin/wrkMastLog/wrkMastLog.html b/src/main/webapp/views/admin/wrkMastLog/wrkMastLog.html
new file mode 100644
index 0000000..a5b7f06
--- /dev/null
+++ b/src/main/webapp/views/admin/wrkMastLog/wrkMastLog.html
@@ -0,0 +1,98 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/cool.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/common.css" media="all">
+</head>
+<body>
+<!-- 鎼滅储鏍� -->
+<div id="search-box" class="layui-form layui-card-header">
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="wrk_no" placeholder="宸ヤ綔鍙�" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline cool-auto-complete">
+ <input id="wrkSts" class="layui-input" name="wrk_sts" type="text" placeholder="璇疯緭鍏�" autocomplete="off" style="display: none">
+ <input id="wrkSts$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="宸ヤ綔鐘舵��" onfocus=this.blur()>
+ <div class="cool-auto-complete-window">
+ <input class="cool-auto-complete-window-input" data-key="basWrkStatusQueryBywrkSts" onkeyup="autoLoad(this.getAttribute('data-key'))">
+ <select class="cool-auto-complete-window-select" data-key="basWrkStatusQueryBywrkStsSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+ </select>
+ </div>
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline cool-auto-complete">
+ <input id="ioType" class="layui-input" name="io_type" type="text" placeholder="璇疯緭鍏�" autocomplete="off" style="display: none">
+ <input id="ioType$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="鍏ュ嚭搴撶被鍨�" onfocus=this.blur()>
+ <div class="cool-auto-complete-window">
+ <input class="cool-auto-complete-window-input" data-key="basWrkIotypeQueryByioType" onkeyup="autoLoad(this.getAttribute('data-key'))">
+ <select class="cool-auto-complete-window-select" data-key="basWrkIotypeQueryByioTypeSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+ </select>
+ </div>
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline cool-auto-complete">
+ <input id="crnNo" class="layui-input" name="crn_no" type="text" placeholder="璇疯緭鍏�" autocomplete="off" style="display: none">
+ <input id="crnNo$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="鍫嗗灈鏈哄彿" onfocus=this.blur()>
+ <div class="cool-auto-complete-window">
+ <input class="cool-auto-complete-window-input" data-key="basCrnpQueryBycrnNo" onkeyup="autoLoad(this.getAttribute('data-key'))">
+ <select class="cool-auto-complete-window-select" data-key="basCrnpQueryBycrnNoSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+ </select>
+ </div>
+ </div>
+ </div>
+ <!-- 鏃ユ湡鑼冨洿 -->
+ <div class="layui-inline" style="width: 300px">
+ <div class="layui-input-inline">
+ <input class="layui-input layui-laydate-range" name="io_time" type="text" placeholder="璧峰鏃堕棿 - 缁堟鏃堕棿" autocomplete="off" style="width: 300px">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input class="layui-input" type="text" name="condition" placeholder="璇疯緭鍏�" autocomplete="off">
+ </div>
+ </div>
+
+ <!-- 寰呮坊鍔� -->
+ <div id="data-search-btn" class="layui-btn-container layui-form-item">
+ <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">鎼滅储</button>
+ <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">閲嶇疆</button>
+ </div>
+</div>
+
+<!-- 琛ㄦ牸 -->
+<div class="layui-form">
+ <table class="layui-hide" id="wrkMastLog" lay-filter="wrkMastLog"></table>
+</div>
+<script type="text/html" id="toolbar">
+ <div class="layui-btn-container">
+ <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData" style="margin-top: 10px">瀵煎嚭</button>
+ </div>
+</script>
+
+<script type="text/html" id="operate">
+ <a class="layui-btn layui-btn-xs btn-detlShow" lay-event="detlShow">鏄庣粏</a>
+<!-- <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">璇︽儏</a>-->
+</script>
+
+<script type="text/javascript" src="../../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/wrkMastLog/wrkMastLog.js" charset="utf-8"></script>
+
+<iframe id="detail-iframe" scrolling="auto" style="display:none;"></iframe>
+
+</body>
+</html>
+
diff --git a/src/main/webapp/views/admin/wrkMastLog/wrkMastLog_detail.html b/src/main/webapp/views/admin/wrkMastLog/wrkMastLog_detail.html
new file mode 100644
index 0000000..436ff77
--- /dev/null
+++ b/src/main/webapp/views/admin/wrkMastLog/wrkMastLog_detail.html
@@ -0,0 +1,196 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title></title>
+ <meta name="renderer" content="webkit">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" href="../../../static/layui/css/layui.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/cool.css" media="all">
+ <link rel="stylesheet" href="../../../static/css/common.css" media="all">
+</head>
+<body>
+
+<!-- 璇︽儏 -->
+<div id="data-detail" class="layer_self_wrap">
+ <form id="detail" class="layui-form">
+ <div class="layui-inline" style="width:31%;display: none">
+ <label class="layui-form-label"><span class="not-null">*</span>缂栥��銆�鍙凤細</label>
+ <div class="layui-input-inline">
+ <input id="id" class="layui-input" type="text" onkeyup="check(this.id, 'wrkMastLog')" lay-verify="number" >
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;">
+ <label class="layui-form-label"><span class="not-null">*</span>宸� 浣� 鍙凤細</label>
+ <div class="layui-input-inline">
+ <input id="wrkNo" class="layui-input" type="text" onkeyup="check(this.id, 'wrkMastLog')" lay-verify="required|number" >
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;">
+ <label class="layui-form-label">宸ヤ綔鐘舵�侊細</label>
+ <div class="layui-input-inline cool-auto-complete">
+ <input id="wrkSts" class="layui-input" type="text" lay-verify="number" style="display: none">
+ <input id="wrkSts$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏�..." onfocus=this.blur()>
+ <div class="cool-auto-complete-window">
+ <input class="cool-auto-complete-window-input" data-key="basWrkStatusQueryBywrkSts" onkeyup="autoLoad(this.getAttribute('data-key'))">
+ <select class="cool-auto-complete-window-select" data-key="basWrkStatusQueryBywrkStsSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+ </select>
+ </div>
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;">
+ <label class="layui-form-label">鍏ュ嚭搴撶被鍨嬶細</label>
+ <div class="layui-input-inline cool-auto-complete">
+ <input id="ioType" class="layui-input" type="text" lay-verify="number" style="display: none">
+ <input id="ioType$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏�..." onfocus=this.blur()>
+ <div class="cool-auto-complete-window">
+ <input class="cool-auto-complete-window-input" data-key="basWrkIotypeQueryByioType" onkeyup="autoLoad(this.getAttribute('data-key'))">
+ <select class="cool-auto-complete-window-select" data-key="basWrkIotypeQueryByioTypeSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+ </select>
+ </div>
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;">
+ <label class="layui-form-label">鍫嗗灈鏈哄彿锛�</label>
+ <div class="layui-input-inline cool-auto-complete">
+ <input id="crnNo" class="layui-input" type="text" lay-verify="number" style="display: none">
+ <input id="crnNo$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏�..." onfocus=this.blur()>
+ <div class="cool-auto-complete-window">
+ <input class="cool-auto-complete-window-input" data-key="basCrnpQueryBycrnNo" onkeyup="autoLoad(this.getAttribute('data-key'))">
+ <select class="cool-auto-complete-window-select" data-key="basCrnpQueryBycrnNoSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+ </select>
+ </div>
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;">
+ <label class="layui-form-label">浼� 鍏� 绾э細</label>
+ <div class="layui-input-inline">
+ <input id="ioPri" class="layui-input" type="text" lay-verify="number" >
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;">
+ <label class="layui-form-label">鐩爣搴撲綅锛�</label>
+ <div class="layui-input-inline cool-auto-complete">
+ <input id="locNo" class="layui-input" type="text" style="display: none">
+ <input id="locNo$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏�..." onfocus=this.blur()>
+ <div class="cool-auto-complete-window">
+ <input class="cool-auto-complete-window-input" data-key="locMastQueryBylocNo" onkeyup="autoLoad(this.getAttribute('data-key'))">
+ <select class="cool-auto-complete-window-select" data-key="locMastQueryBylocNoSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+ </select>
+ </div>
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;">
+ <label class="layui-form-label">鐩� 鏍� 绔欙細</label>
+ <div class="layui-input-inline cool-auto-complete">
+ <input id="staNo" class="layui-input" type="text" lay-verify="number" style="display: none">
+ <input id="staNo$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏�..." onfocus=this.blur()>
+ <div class="cool-auto-complete-window">
+ <input class="cool-auto-complete-window-input" data-key="basDevpQueryBystaNo" onkeyup="autoLoad(this.getAttribute('data-key'))">
+ <select class="cool-auto-complete-window-select" data-key="basDevpQueryBystaNoSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+ </select>
+ </div>
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;">
+ <label class="layui-form-label">婧愩��銆�绔欙細</label>
+ <div class="layui-input-inline cool-auto-complete">
+ <input id="sourceStaNo" class="layui-input" type="text" lay-verify="number" style="display: none">
+ <input id="sourceStaNo$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏�..." onfocus=this.blur()>
+ <div class="cool-auto-complete-window">
+ <input class="cool-auto-complete-window-input" data-key="basDevpQueryBysourceStaNo" onkeyup="autoLoad(this.getAttribute('data-key'))">
+ <select class="cool-auto-complete-window-select" data-key="basDevpQueryBysourceStaNoSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+ </select>
+ </div>
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;">
+ <label class="layui-form-label">婧� 搴� 浣嶏細</label>
+ <div class="layui-input-inline cool-auto-complete">
+ <input id="sourceLocNo" class="layui-input" type="text" style="display: none">
+ <input id="sourceLocNo$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="璇疯緭鍏�..." onfocus=this.blur()>
+ <div class="cool-auto-complete-window">
+ <input class="cool-auto-complete-window-input" data-key="locMastQueryBysourceLocNo" onkeyup="autoLoad(this.getAttribute('data-key'))">
+ <select class="cool-auto-complete-window-select" data-key="locMastQueryBysourceLocNoSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
+ </select>
+ </div>
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;">
+ <label class="layui-form-label">鎷c��銆�鏂欙細</label>
+ <div class="layui-input-inline">
+ <input id="picking" class="layui-input" type="checkBox" lay-skin="primary" lay-filter='detailCheckbox'>
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;">
+ <label class="layui-form-label">閫�銆�銆�鍑猴細</label>
+ <div class="layui-input-inline">
+ <input id="exitMk" class="layui-input" type="checkBox" lay-skin="primary" lay-filter='detailCheckbox'>
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;">
+ <label class="layui-form-label">绌恒��銆�鏉匡細</label>
+ <div class="layui-input-inline">
+ <input id="emptyMk" class="layui-input" type="checkBox" lay-skin="primary" lay-filter='detailCheckbox'>
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;">
+ <label class="layui-form-label">宸ヤ綔鏃堕棿锛�</label>
+ <div class="layui-input-inline">
+ <input id="ioTime$" class="layui-input" type="text" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;">
+ <label class="layui-form-label" style="font-size: x-small">鍫嗗灈鏈哄惎鍔ㄦ椂闂达細</label>
+ <div class="layui-input-inline">
+ <input id="crnStrTime$" class="layui-input" type="text" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;">
+ <label class="layui-form-label" style="font-size: x-small">鍫嗗灈鏈哄仠姝㈡椂闂达細</label>
+ <div class="layui-input-inline">
+ <input id="crnEndTime$" class="layui-input" type="text" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;">
+ <label class="layui-form-label">鎷f枡鏃堕棿锛�</label>
+ <div class="layui-input-inline">
+ <input id="plcStrTime$" class="layui-input" type="text" autocomplete="off">
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;">
+ <label class="layui-form-label">鏉°��銆�鐮侊細</label>
+ <div class="layui-input-inline">
+ <input id="barcode" class="layui-input" type="text">
+ </div>
+ </div>
+ <div class="layui-inline" style="width:31%;">
+ <label class="layui-form-label">婊°��銆�鏉匡細</label>
+ <div class="layui-input-inline">
+ <input id="fullPlt" class="layui-input" type="checkBox" lay-skin="primary" lay-filter='detailCheckbox'>
+ </div>
+ </div>
+
+
+ <hr class="layui-bg-gray">
+
+ <div id="data-detail-btn" class="layui-btn-container layui-form-item">
+ <div id="data-detail-submit-save" type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="save">淇濆瓨</div>
+ <div id="data-detail-submit-edit" type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="edit">淇敼</div>
+ <div id="data-detail-close" type="button" class="layui-btn" lay-submit lay-filter="close">鍏抽棴</div>
+ </div>
+
+ <div id="prompt">
+ 娓╅Θ鎻愮ず锛氳浠旂粏濉啓鐩稿叧淇℃伅锛�<span class="extrude"><span class="not-null">*</span> 涓哄繀濉�夐」銆�</span>
+ </div>
+ </form>
+</div>
+</body>
+<script type="text/javascript" src="../../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../../static/layui/layui.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/common.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/cool.js" charset="utf-8"></script>
+<script type="text/javascript" src="../../../static/js/wrkMastLog/wrkMastLog.js" charset="utf-8"></script>
+</html>
+
diff --git a/src/main/webapp/views/forklift.html b/src/main/webapp/views/forklift.html
index 205a290..f19da2c 100644
--- a/src/main/webapp/views/forklift.html
+++ b/src/main/webapp/views/forklift.html
@@ -4,7 +4,7 @@
<meta charset="UTF-8">
<title>鎻愬崌鏈虹洃鎺х鐞�</title>
<link rel="stylesheet" type="text/css" href="../static/css/normalize.css">
- <link rel="stylesheet" type="text/css" href="../static/css/common.css">
+ <link rel="stylesheet" type="text/css" href="../static/css/common_wcs.css">
<link rel="stylesheet" type="text/css" href="../static/layui/css/layui.css">
<link rel="stylesheet" href="../static/css/lift.css">
<script type="text/javascript" src="../static/js/jquery/jquery-3.3.1.min.js"></script>
diff --git a/src/main/webapp/views/index.html b/src/main/webapp/views/index.html
index 1f51411..4b32f17 100644
--- a/src/main/webapp/views/index.html
+++ b/src/main/webapp/views/index.html
@@ -21,9 +21,8 @@
<li><a id="console" onclick="nav(this.id)" class="nav-select" href="#">涓绘帶鍥�</a></li>
<li><a id="pipeline" onclick="nav(this.id)" class="nav-unselect" href="#">杈撻�佽澶�</a></li>
<li><a id="forklift" onclick="nav(this.id)" class="nav-unselect" href="#">鎻愬崌鏈�</a></li>
-<!-- <li><a id="ste" onclick="nav(this.id)" class="nav-unselect" href="#">绌挎杞�</a></li>-->
<li><a id="shuttle" onclick="nav(this.id)" class="nav-unselect" href="#">鍥涘悜绌挎杞�</a></li>
- <li><a id="task" onclick="nav(this.id)" class="nav-unselect" href="#">浠诲姟绠$悊</a></li>
+ <li><a id="admin" onclick="nav(this.id)" class="nav-unselect" href="#">绠$悊鍚庡彴</a></li>
</ul>
</div>
</div>
@@ -37,6 +36,10 @@
<script>
// 瀵艰埅鏍�
function nav(id) {
+ if(id == 'admin') {
+ window.open('./admin/index.html')
+ return
+ }
$('.nav-select').attr("class", "nav-unselect");
$('#'+id).attr("class", "nav-select");
$('#content').attr("src", id+".html");
diff --git a/src/main/webapp/views/led.html b/src/main/webapp/views/led.html
deleted file mode 100644
index 85a8695..0000000
--- a/src/main/webapp/views/led.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <meta charset="UTF-8">
- <title>Title</title>
-</head>
-<body>
-<h1>LED</h1>
-</body>
-</html>
\ No newline at end of file
diff --git a/src/main/webapp/views/lift.html b/src/main/webapp/views/lift.html
index 93cc432..f8db854 100644
--- a/src/main/webapp/views/lift.html
+++ b/src/main/webapp/views/lift.html
@@ -4,7 +4,7 @@
<meta charset="UTF-8">
<title>鎻愬崌鏈虹洃鎺х鐞�</title>
<link rel="stylesheet" type="text/css" href="../static/css/normalize.css">
- <link rel="stylesheet" type="text/css" href="../static/css/common.css">
+ <link rel="stylesheet" type="text/css" href="../static/css/common_wcs.css">
<link rel="stylesheet" type="text/css" href="../static/layui/css/layui.css">
<link rel="stylesheet" href="../static/css/lift.css">
<script type="text/javascript" src="../static/js/jquery/jquery-3.3.1.min.js"></script>
diff --git a/src/main/webapp/views/pipeline.html b/src/main/webapp/views/pipeline.html
index 009b117..34bc757 100644
--- a/src/main/webapp/views/pipeline.html
+++ b/src/main/webapp/views/pipeline.html
@@ -7,7 +7,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
<link rel="stylesheet" type="text/css" href="../static/css/normalize.css">
- <link rel="stylesheet" type="text/css" href="../static/css/common.css">
+ <link rel="stylesheet" type="text/css" href="../static/css/common_wcs.css">
<link rel="stylesheet" type="text/css" href="../static/css/pipeline.css">
<script type="text/javascript" src="../static/js/jquery/jquery-3.3.1.min.js"></script>
<script type="text/javascript" src="../static/js/common.js"></script>
diff --git a/src/main/webapp/views/shuttle.html b/src/main/webapp/views/shuttle.html
index f5455f1..b559d4f 100644
--- a/src/main/webapp/views/shuttle.html
+++ b/src/main/webapp/views/shuttle.html
@@ -4,7 +4,7 @@
<meta charset="UTF-8">
<title>鍥涘悜绌挎杞︾洃鎺х鐞�</title>
<link rel="stylesheet" type="text/css" href="../static/css/normalize.css">
- <link rel="stylesheet" type="text/css" href="../static/css/common.css">
+ <link rel="stylesheet" type="text/css" href="../static/css/common_wcs.css">
<link rel="stylesheet" type="text/css" href="../static/layui/css/layui.css">
<link rel="stylesheet" href="../static/css/shuttle.css">
<script type="text/javascript" src="../static/js/jquery/jquery-3.3.1.min.js"></script>
diff --git a/src/main/webapp/views/shuttle2.html b/src/main/webapp/views/shuttle2.html
index 40adc13..48a661a 100644
--- a/src/main/webapp/views/shuttle2.html
+++ b/src/main/webapp/views/shuttle2.html
@@ -4,7 +4,7 @@
<meta charset="UTF-8">
<title>鍥涘悜绌挎杞︾洃鎺х鐞�</title>
<link rel="stylesheet" type="text/css" href="../static/css/normalize.css">
- <link rel="stylesheet" type="text/css" href="../static/css/common.css">
+ <link rel="stylesheet" type="text/css" href="../static/css/common_wcs.css">
<link rel="stylesheet" type="text/css" href="../static/layui/css/layui.css">
<link rel="stylesheet" href="../static/css/shuttle.css">
<script type="text/javascript" src="../static/js/jquery/jquery-3.3.1.min.js"></script>
diff --git a/src/main/webapp/views/shuttle_zs.html b/src/main/webapp/views/shuttle_zs.html
index c0621a7..4ce44b2 100644
--- a/src/main/webapp/views/shuttle_zs.html
+++ b/src/main/webapp/views/shuttle_zs.html
@@ -4,7 +4,7 @@
<meta charset="UTF-8">
<title>鍥涘悜绌挎杞︾洃鎺х鐞�</title>
<link rel="stylesheet" type="text/css" href="../static/css/normalize.css">
- <link rel="stylesheet" type="text/css" href="../static/css/common.css">
+ <link rel="stylesheet" type="text/css" href="../static/css/common_wcs.css">
<link rel="stylesheet" type="text/css" href="../static/layui/css/layui.css">
<link rel="stylesheet" href="../static/css/shuttle.css">
<script type="text/javascript" src="../static/js/jquery/jquery-3.3.1.min.js"></script>
--
Gitblit v1.9.1