From 9361123198ee6afe4b7b4278d677b619765faae8 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期一, 15 五月 2023 13:01:06 +0800
Subject: [PATCH] 库位查询
---
src/main/webapp/views/tpl/theme/img/theme-cyan.png | 0
src/main/webapp/views/tpl/theme/img/theme-pink.png | 0
src/main/java/com/zy/asrs/controller/LocMastController.java | 130 +++++
src/main/resources/mapper/LocMastMapper.xml | 1
src/main/webapp/views/tpl/theme/img/theme-colorful.png | 0
src/main/webapp/views/tpl/tpl-theme.html | 229 +++++++++
src/main/webapp/static/js/stoMan/stoQue.js | 342 ++++++++++++++
src/main/webapp/views/tpl/theme/img/theme-red.png | 0
src/main/java/com/zy/asrs/service/BasLocStsService.java | 8
src/main/webapp/views/tpl/theme/img/theme-green.png | 0
src/main/java/com/zy/asrs/mapper/BasLocStsMapper.java | 12
src/main/webapp/views/tpl/theme/img/theme-my.png | 0
src/main/webapp/views/tpl/theme/img/icon_date.png | 0
src/main/webapp/views/tpl/tpl-note.html | 206 ++++++++
src/main/webapp/views/stoMan/stoQue.html | 85 +++
src/main/webapp/views/tpl/theme/img/theme-blue.png | 0
src/main/webapp/views/tpl/theme/img/icon_search.png | 0
src/main/java/com/zy/asrs/entity/LocMast.java | 13
src/main/webapp/views/tpl/theme/img/ic_loading.gif | 0
src/main/webapp/views/tpl/alarm-detl.html | 52 ++
src/main/webapp/views/tpl/theme/img/theme-admin.png | 0
src/main/java/com/zy/asrs/service/impl/BasLocStsServiceImpl.java | 12
src/main/resources/mapper/BasLocStsMapper.xml | 16
src/main/webapp/static/css/common.css | 54 --
src/main/webapp/views/tpl/theme/img/theme-white.png | 0
src/main/webapp/views/tpl/theme/img/theme-purple.png | 0
src/main/java/com/zy/asrs/entity/BasLocSts.java | 164 +++++++
27 files changed, 1,277 insertions(+), 47 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/LocMastController.java b/src/main/java/com/zy/asrs/controller/LocMastController.java
new file mode 100644
index 0000000..45f0bbb
--- /dev/null
+++ b/src/main/java/com/zy/asrs/controller/LocMastController.java
@@ -0,0 +1,130 @@
+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.LocMast;
+import com.zy.asrs.service.LocDetlService;
+import com.zy.asrs.service.LocMastService;
+import com.zy.asrs.service.WrkMastService;
+import com.zy.common.entity.Parameter;
+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 LocMastController extends BaseController {
+
+ @Autowired
+ private LocMastService locMastService;
+
+ @PostMapping(value = "/group/empty/stock")
+ @ManagerAuth(memo = "鑾峰彇鍚岀粍璐ф灦鐨勭┖搴撲綅")
+ public R getGroupEmptyStock(@RequestParam(required = false) String sourceLocNo) {
+ return R.ok().add(locMastService.queryGroupEmptyStock(sourceLocNo));
+ }
+
+ @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.eq("status",0)));
+ }
+
+ 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/add/auth")
+ @ManagerAuth(memo = "搴撲綅娣诲姞")
+ public R add(LocMast locMast) {
+ locMast.setModiUser(getUserId());
+ locMast.setModiTime(new Date());
+ locMast.setAppeUser(getUserId());
+ locMast.setAppeTime(new Date());
+ locMastService.insert(locMast);
+ 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();
+ }
+
+}
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/LocMast.java b/src/main/java/com/zy/asrs/entity/LocMast.java
index cd931b9..f1606c7 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;
@@ -174,6 +175,9 @@
@TableField("ctn_no")
private String ctnNo;
+ @ApiModelProperty(value= "")
+ private String status;
+
public String getIoTime$(){
if (Cools.isEmpty(this.ioTime)){
return "";
@@ -269,4 +273,13 @@
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.errorTime);
}
+ 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;
+ }
+
}
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/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/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/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/LocMastMapper.xml b/src/main/resources/mapper/LocMastMapper.xml
index 7821af2..04b10a7 100644
--- a/src/main/resources/mapper/LocMastMapper.xml
+++ b/src/main/resources/mapper/LocMastMapper.xml
@@ -34,6 +34,7 @@
<result column="mk" property="mk" />
<result column="barcode" property="barcode" />
<result column="ctn_no" property="ctnNo" />
+ <result column="status" property="status" />
</resultMap>
diff --git a/src/main/webapp/static/css/common.css b/src/main/webapp/static/css/common.css
index 281a57e..d1a71bc 100644
--- a/src/main/webapp/static/css/common.css
+++ b/src/main/webapp/static/css/common.css
@@ -1,53 +1,13 @@
-/* 缁熶竴澶勭悊 */
-*, *::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 {
- border-width: 0;
-}
-
-/* 甯冨眬 */
-.row::after, .row::before {
- content: "";
- display: table;
- clear: both;
-}
-.col-md3:empty {
- background:rgba(0,0,0,0.04);
- border: 1px solid rgba(0,0,0,.3);
- min-height:32px;
- 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;
-}
-.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%}
input::placeholder {
color: #b4b4b4;
diff --git a/src/main/webapp/static/js/stoMan/stoQue.js b/src/main/webapp/static/js/stoMan/stoQue.js
new file mode 100644
index 0000000..a4630e5
--- /dev/null
+++ b/src/main/webapp/static/js/stoMan/stoQue.js
@@ -0,0 +1,342 @@
+var pageCurr;
+var locNo;
+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;
+
+ layDate.render({
+ elem: '.layui-laydate-range'
+ ,type: 'datetime'
+ ,range: true
+ });
+
+ // 鏁版嵁娓叉煋
+ tableIns = table.render({
+ elem: '#stoQue',
+ headers: {token: localStorage.getItem('token')},
+ url: baseUrl+'/locMast/list/auth',
+ page: true,
+ limit: 20,
+ limits: [20, 30, 50, 100, 200, 500],
+ even: true,
+ toolbar: '#toolbar',
+ cellMinWidth: 50,
+ cols: [[
+ {type: 'checkbox'}
+ ,{field: 'locNo', align: 'center',title: '搴撲綅鍙�'}
+ ,{field: 'locSts$', align: 'center',title: '搴撲綅鐘舵��', width: 180, style: 'color: #8E2323'}
+ // ,{field: 'whsType$', align: 'center',title: '搴撲綅绫诲瀷'}
+ ,{field: 'crnNo', align: 'center',title: '鍫嗗灈鏈哄彿'}
+ ,{field: 'row1', align: 'center',title: '鎺�'}
+ ,{field: 'bay1', align: 'center',title: '鍒�'}
+ ,{field: 'lev1', 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 += "disabled='disabled' >";
+ return html;
+ },width:80}
+ ,{field: 'modiUser$', align: 'center',title: '淇敼浜哄憳'}
+ ,{field: 'modiTime$', align: 'center',title: '淇敼鏃堕棿', width: 180}
+ ,{ 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';
+ }
+ });
+ if (count === 1){
+ // locDetl(res.data[0][locNo]);
+ }
+ }
+ });
+
+ // 鐩戝惉鎺掑簭浜嬩欢
+ table.on('sort(stoQue)', 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(stoQue)', function (obj) {
+ var checkStatus = table.checkStatus(obj.config.id);
+ switch(obj.event) {
+ // 鏇存柊搴撳瓨
+ case 'refreshSto': // todo:luxiaotao
+ alert("杩樻病鍋�");
+ 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(stoQue)', function(obj) {
+ var data = obj.data;
+ switch (obj.event) {
+ // 鏌ョ湅鏄庣粏
+ case 'locDetl':
+ // locDetl(data.locNo);
+ if (data.locSts.trim() === ''
+ || data.locSts.trim() === 'S'
+ || data.locSts.trim() === 'D'
+ || data.locSts.trim() === 'O') {
+ layer.msg("姝ゅ簱浣嶇殑鐘舵�佷笉瀛樺湪鐗╂枡");
+ return;
+ }
+ locDetlToLayer(data.locNo);
+ break;
+ }
+ });
+
+ // iframe鐗╂枡璇︽儏
+ function locDetlToLayer(val) {
+ locNo = val;
+ layer.open({
+ type: 2,
+ title: '搴撳瓨鏄庣粏',
+ maxmin: true,
+ area: [top.detailWidth, top.detailHeight],
+ shadeClose: true,
+ content: '../report/locDetl.html',
+ success: function(layero, index){
+ }
+ });
+ }
+ // div鐗╂枡璇︽儏
+ var pageCur;
+ function locDetl(locNo){
+ $('#detlTable').css("display", 'block');
+ // 鏁版嵁娓叉煋
+ tableIns1 = table.render({
+ elem: '#locDetlByMap',
+ headers: {token: localStorage.getItem('token')},
+ url: baseUrl+'/locDetl/list/auth',
+ page: true,
+ limit: 5,
+ skin: 'line',
+ where: {loc_no: locNo},
+ even: true,
+ cellMinWidth: 50,
+ cols: [[
+ // {type: 'checkbox'}
+ {field: 'locNo$', align: 'center',title: '搴撲綅鍙�'}
+ ,{field: 'matnr', align: 'center',title: '鐗╂枡'}
+ ,{field: 'lgnum', align: 'center',title: '浠撳簱鍙�'}
+ ,{field: 'tbnum', align: 'center',title: '杞偍璇锋眰缂栧彿'}
+ // ,{field: 'tbpos', align: 'center',title: '琛岄」鐩�'}
+ ,{field: 'zmatid', align: 'center',title: '鐗╂枡鏍囩ID'}
+ ,{field: 'maktx', align: 'center',title: '鐗╂枡鎻忚堪'}
+ ,{field: 'werks', align: 'center',title: '宸ュ巶'}
+ ,{field: 'anfme', align: 'center',title: '鏁伴噺'}
+ ,{field: 'altme', align: 'center',title: '鍗曚綅'}
+ ,{field: 'zpallet', align: 'center',title: '鎵樼洏鏉$爜'}
+ ,{field: 'bname', align: 'center',title: '鐢ㄦ埛ID'}
+ ]],
+ 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';
+ }
+ });
+ }
+ });
+ }
+
+ // 鎼滅储鏍忛噸缃簨浠�
+ form.on('submit(reset)', function (data) {
+ pageCurr = 1;
+ clearFormVal($('#search-box'));
+ $('#detlTable').css("display", 'none');
+ tableReload(false);
+ });
+
+ // 鎼滅储鏍忔悳绱簨浠�
+ form.on('submit(search)', function (data) {
+ pageCurr = 1;
+ $('#detlTable').css("display", 'none');
+ tableReload(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
+ },
+ done: function (res, curr, count) {
+ if (res.code === 403) {
+ top.location.href = baseUrl+"/";
+ }
+ pageCurr=curr;
+ if (count === 1){
+ // locDetl(res.data[0][locNo]);
+ }
+ if (res.data.length === 0 && count !== 0) {
+ tableIns.reload({
+ where: searchData,
+ page: {
+ curr: pageCurr-1
+ }
+ });
+ pageCurr -= 1;
+ }
+ limit(child);
+ }
+ });
+ }
+});
+
+// 鍏抽棴鍔ㄤ綔
+$(document).on('click','#data-detail-close', function () {
+ parent.layer.closeAll();
+});
+
+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/views/stoMan/stoQue.html b/src/main/webapp/views/stoMan/stoQue.html
new file mode 100644
index 0000000..897b0dc
--- /dev/null
+++ b/src/main/webapp/views/stoMan/stoQue.html
@@ -0,0 +1,85 @@
+<!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-export {
+ }
+ #refresh-sto {
+ display: none;
+ }
+ .loc-detl {
+ display: none;
+ }
+ #detlTable {
+ margin-top: 20px;
+ }
+ </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="barcode" 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="modi_time" type="text" placeholder="璧峰鏃堕棿 - 缁堟鏃堕棿" autocomplete="off" style="width: 300px">
+ </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>
+<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">瀵煎嚭</button>
+ </div>
+</script>
+<!-- 琛ㄦ牸 -->
+<table class="layui-hide" id="stoQue" lay-filter="stoQue"></table>
+
+<script type="text/html" id="operate">
+ <a class="layui-btn layui-btn-xs loc-detl" lay-event="locDetl">鏌ョ湅鏄庣粏</a>
+</script>
+
+<!--鏄庣粏琛�-->
+<div id="detlTable" style="display: none">
+ <div class="layui-inline" style="width:90%;margin-top: 10px;margin-left: 20px">
+ <span style=" color: indianred">浠ヤ笅涓哄綋鍓嶅簱浣嶇殑鐗╂枡鏄庣粏</span>
+ </div>
+
+ <table class="layui-hide" id="locDetlByMap" lay-filter="locDetlByMap"></table>
+</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/stoMan/stoQue.js" charset="utf-8"></script>
+</body>
+</html>
+
diff --git a/src/main/webapp/views/tpl/alarm-detl.html b/src/main/webapp/views/tpl/alarm-detl.html
new file mode 100644
index 0000000..1539922
--- /dev/null
+++ b/src/main/webapp/views/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/tpl/theme/img/ic_loading.gif b/src/main/webapp/views/tpl/theme/img/ic_loading.gif
new file mode 100644
index 0000000..071ecd6
--- /dev/null
+++ b/src/main/webapp/views/tpl/theme/img/ic_loading.gif
Binary files differ
diff --git a/src/main/webapp/views/tpl/theme/img/icon_date.png b/src/main/webapp/views/tpl/theme/img/icon_date.png
new file mode 100644
index 0000000..5a50673
--- /dev/null
+++ b/src/main/webapp/views/tpl/theme/img/icon_date.png
Binary files differ
diff --git a/src/main/webapp/views/tpl/theme/img/icon_search.png b/src/main/webapp/views/tpl/theme/img/icon_search.png
new file mode 100644
index 0000000..7db69d2
--- /dev/null
+++ b/src/main/webapp/views/tpl/theme/img/icon_search.png
Binary files differ
diff --git a/src/main/webapp/views/tpl/theme/img/theme-admin.png b/src/main/webapp/views/tpl/theme/img/theme-admin.png
new file mode 100644
index 0000000..6b4696f
--- /dev/null
+++ b/src/main/webapp/views/tpl/theme/img/theme-admin.png
Binary files differ
diff --git a/src/main/webapp/views/tpl/theme/img/theme-blue.png b/src/main/webapp/views/tpl/theme/img/theme-blue.png
new file mode 100644
index 0000000..33c9d24
--- /dev/null
+++ b/src/main/webapp/views/tpl/theme/img/theme-blue.png
Binary files differ
diff --git a/src/main/webapp/views/tpl/theme/img/theme-colorful.png b/src/main/webapp/views/tpl/theme/img/theme-colorful.png
new file mode 100644
index 0000000..2cbeba0
--- /dev/null
+++ b/src/main/webapp/views/tpl/theme/img/theme-colorful.png
Binary files differ
diff --git a/src/main/webapp/views/tpl/theme/img/theme-cyan.png b/src/main/webapp/views/tpl/theme/img/theme-cyan.png
new file mode 100644
index 0000000..368c04f
--- /dev/null
+++ b/src/main/webapp/views/tpl/theme/img/theme-cyan.png
Binary files differ
diff --git a/src/main/webapp/views/tpl/theme/img/theme-green.png b/src/main/webapp/views/tpl/theme/img/theme-green.png
new file mode 100644
index 0000000..f7a5ca5
--- /dev/null
+++ b/src/main/webapp/views/tpl/theme/img/theme-green.png
Binary files differ
diff --git a/src/main/webapp/views/tpl/theme/img/theme-my.png b/src/main/webapp/views/tpl/theme/img/theme-my.png
new file mode 100644
index 0000000..9fd7419
--- /dev/null
+++ b/src/main/webapp/views/tpl/theme/img/theme-my.png
Binary files differ
diff --git a/src/main/webapp/views/tpl/theme/img/theme-pink.png b/src/main/webapp/views/tpl/theme/img/theme-pink.png
new file mode 100644
index 0000000..6088b1e
--- /dev/null
+++ b/src/main/webapp/views/tpl/theme/img/theme-pink.png
Binary files differ
diff --git a/src/main/webapp/views/tpl/theme/img/theme-purple.png b/src/main/webapp/views/tpl/theme/img/theme-purple.png
new file mode 100644
index 0000000..072f439
--- /dev/null
+++ b/src/main/webapp/views/tpl/theme/img/theme-purple.png
Binary files differ
diff --git a/src/main/webapp/views/tpl/theme/img/theme-red.png b/src/main/webapp/views/tpl/theme/img/theme-red.png
new file mode 100644
index 0000000..db9922e
--- /dev/null
+++ b/src/main/webapp/views/tpl/theme/img/theme-red.png
Binary files differ
diff --git a/src/main/webapp/views/tpl/theme/img/theme-white.png b/src/main/webapp/views/tpl/theme/img/theme-white.png
new file mode 100644
index 0000000..4b4cb1f
--- /dev/null
+++ b/src/main/webapp/views/tpl/theme/img/theme-white.png
Binary files differ
diff --git a/src/main/webapp/views/tpl/tpl-note.html b/src/main/webapp/views/tpl/tpl-note.html
new file mode 100644
index 0000000..5910e86
--- /dev/null
+++ b/src/main/webapp/views/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/tpl/tpl-theme.html b/src/main/webapp/views/tpl/tpl-theme.html
new file mode 100644
index 0000000..7a1add0
--- /dev/null
+++ b/src/main/webapp/views/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>
--
Gitblit v1.9.1