账套信息,代码优化!

This commit is contained in:
易焱
2019-08-07 00:25:36 +08:00
parent 1ac25ab2bd
commit 38a308bca9
26 changed files with 689 additions and 15 deletions
+1
View File
@@ -77,6 +77,7 @@
<orderEntry type="library" name="Maven: org.unbescape:unbescape:1.1.6.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.thymeleaf.extras:thymeleaf-extras-java8time:3.0.4.RELEASE" level="project" />
<orderEntry type="module" module-name="fileUpload" />
<orderEntry type="library" name="Maven: com.cwhelp.modules:bss:2.0.1" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.1.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.1.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.1.4.RELEASE" level="project" />
+5
View File
@@ -51,6 +51,11 @@
<artifactId>fileUpload</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.cwhelp.modules</groupId>
<artifactId>bss</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
<build>
@@ -0,0 +1,155 @@
package com.cwhelp.admin.business.controller;
import com.cwhelp.admin.business.validator.BssEnterpriseValid;
import com.cwhelp.common.constant.PlatformConst;
import com.cwhelp.common.enums.ResultEnum;
import com.cwhelp.common.enums.StatusEnum;
import com.cwhelp.common.utils.EntityBeanUtil;
import com.cwhelp.common.utils.ResultVoUtil;
import com.cwhelp.common.utils.StatusUtil;
import com.cwhelp.common.vo.ResultVo;
import com.cwhelp.component.shiro.ShiroUtil;
import com.cwhelp.modules.business.domain.BssEnterprise;
import com.cwhelp.modules.business.domain.BssPlatform;
import com.cwhelp.modules.business.service.BssEnterpriseService;
import com.cwhelp.modules.system.domain.User;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Example;
import org.springframework.data.domain.ExampleMatcher;
import org.springframework.data.domain.Page;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @author yan.y
* @date 2019/08/06
*/
@Controller
@RequestMapping("/bss/enterprise")
public class BssEnterpriseController {
@Autowired
private BssEnterpriseService bssEnterpriseService;
/**
* 列表页面
*/
@GetMapping("/index")
@RequiresPermissions("bss:enterprise:index")
public String index(Model model, BssEnterprise bssEnterprise) {
User user = ShiroUtil.getSubject();
// 创建匹配器,进行动态查询匹配
ExampleMatcher matcher = ExampleMatcher.matching()
.withMatcher("name", match -> match.contains())
.withMatcher("platform.id",match -> match.contains());
BssPlatform bssPlatform = new BssPlatform();
bssPlatform.setId(user.getBssPlatform().getId());
bssEnterprise.setPlatform(bssPlatform);
// 获取数据列表
Example<BssEnterprise> example = Example.of(bssEnterprise, matcher);
Page<BssEnterprise> list = bssEnterpriseService.getPageList(example);
// 封装数据
model.addAttribute("list", list.getContent());
model.addAttribute("page", list);
return "/business/enterprise/index";
}
/**
* 跳转到添加页面
*/
@GetMapping("/add")
@RequiresPermissions("bss:enterprise:add")
public String toAdd(Model model) {
User user = ShiroUtil.getSubject();
BssPlatform bssPlatform = user.getBssPlatform();
model.addAttribute("bssPlatform",bssPlatform);
return "/business/enterprise/add";
}
/**
* 跳转到编辑页面
*/
@GetMapping("/edit/{id}")
@RequiresPermissions("bss:enterprise:edit")
public String toEdit(@PathVariable("id") BssEnterprise bssEnterprise, Model model) {
User user = ShiroUtil.getSubject();
BssPlatform bssPlatform = user.getBssPlatform();
model.addAttribute("bssPlatform",bssPlatform);
model.addAttribute("bssEnterprise", bssEnterprise);
return "/business/enterprise/add";
}
/**
* 保存添加/修改的数据
* @param valid 验证对象
*/
@PostMapping({"/add","/edit"})
@RequiresPermissions({"bss:enterprise:add","bss:enterprise:edit"})
@ResponseBody
public ResultVo save(@Validated BssEnterpriseValid valid, BssEnterprise bssEnterprise) {
// 复制保留无需修改的数据
if (bssEnterprise.getId() != null) {
BssEnterprise beEnterprise = bssEnterpriseService.getById(bssEnterprise.getId());
EntityBeanUtil.copyProperties(beEnterprise, bssEnterprise);
}
User user = ShiroUtil.getSubject();
BssPlatform bssPlatform = user.getBssPlatform();
int platformType = bssPlatform.getType();
if (platformType == PlatformConst.COMPANY_TYPE) {
List<BssEnterprise> listByPlatform = bssEnterpriseService.getListByPlatform(bssPlatform);
if (listByPlatform.size() > 1) {
return ResultVoUtil.error(ResultEnum.ENTERPRISE_NUMBER_EXCESSIVE.getCode(),ResultEnum.ENTERPRISE_NUMBER_EXCESSIVE.getMessage());
}
}
if (bssEnterpriseService.repeatByName(bssEnterprise)) {
return ResultVoUtil.error(ResultEnum.ENTERPRISE_NAME_EXIST.getCode(),ResultEnum.ENTERPRISE_NAME_EXIST.getMessage());
}
if (bssEnterpriseService.repeatByCreditCode(bssEnterprise)) {
return ResultVoUtil.error(ResultEnum.ENTERPRISE_CREDITCODE_EXIST.getCode(),ResultEnum.ENTERPRISE_CREDITCODE_EXIST.getMessage());
}
// 保存数据
bssEnterpriseService.save(bssEnterprise);
return ResultVoUtil.SAVE_SUCCESS;
}
/**
* 跳转到详细页面
*/
@GetMapping("/detail/{id}")
@RequiresPermissions("bss:enterprise:detail")
public String toDetail(@PathVariable("id") BssEnterprise bssEnterprise, Model model) {
model.addAttribute("bssEnterprise",bssEnterprise);
return "/business/enterprise/detail";
}
/**
* 设置一条或者多条数据的状态
*/
@RequestMapping("/status/{param}")
@RequiresPermissions("bss:enterprise:status")
@ResponseBody
public ResultVo status(
@PathVariable("param") String param,
@RequestParam(value = "ids", required = false) List<Long> ids) {
// 更新状态
StatusEnum statusEnum = StatusUtil.getStatusEnum(param);
if (bssEnterpriseService.updateStatus(statusEnum, ids)) {
return ResultVoUtil.success(statusEnum.getMessage() + "成功");
} else {
return ResultVoUtil.error(statusEnum.getMessage() + "失败,请重新操作");
}
}
}
@@ -0,0 +1,20 @@
package com.cwhelp.admin.business.validator;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
import java.io.Serializable;
/**
* @author yan.y
* @date 2019/08/06
*/
@Data
public class BssEnterpriseValid implements Serializable {
@NotEmpty(message = "名称不能为空")
private String name;
@NotEmpty(message = "增值税种类不能为空")
private String vatType;
@NotEmpty(message = "会计准则不能为空")
private String accountingStandards;
}
@@ -137,11 +137,11 @@ public class MainController{
@PostMapping("/userInfo")
@RequiresPermissions("index")
@ResponseBody
public ResultVo userInfo(@Validated UserValid valid, User user){
public ResultVo userInfo(User user){
// 复制保留无需修改的数据
User subUser = ShiroUtil.getSubject();
String[] fields = {"id", "username", "password", "salt", "picture", "dept", "roles"};
String[] fields = {"id", "username", "password", "salt","type" ,"picture","bssPlatform" ,"dept", "roles"};
EntityBeanUtil.copyProperties(subUser, user, fields);
// 保存数据
Binary file not shown.

Before

Width:  |  Height:  |  Size: 322 KiB

After

Width:  |  Height:  |  Size: 33 KiB

@@ -1,2 +1,2 @@
/** layui-v2.3.0 MIT License By https://www.layui.com */
;layui.define("jquery",function(e){"use strict";var i=layui.$,n=(layui.hint(),layui.device(),{config:{},set:function(e){var n=this;return n.config=i.extend({},n.config,e),n},on:function(e,i){return layui.onevent.call(this,t,e,i)}}),t="carousel",a="layui-this",l=">*[carousel-item]>*",o="layui-carousel-left",r="layui-carousel-right",d="layui-carousel-prev",s="layui-carousel-next",u="layui-carousel-arrow",c="layui-carousel-ind",m=function(e){var t=this;t.config=i.extend({},t.config,n.config,e),t.render()};m.prototype.config={width:"600px",height:"280px",full:!1,arrow:"hover",indicator:"inside",autoplay:!0,interval:3e3,anim:"",trigger:"click",index:0},m.prototype.render=function(){var e=this,n=e.config;n.elem=i(n.elem),n.elem[0]&&(e.elemItem=n.elem.find(l),n.index<0&&(n.index=0),n.index>=e.elemItem.length&&(n.index=e.elemItem.length-1),n.interval<800&&(n.interval=800),n.full?n.elem.css({position:"fixed",width:"100%",height:"100%",zIndex:9999}):n.elem.css({width:n.width,height:n.height}),n.elem.attr("lay-anim",n.anim),e.elemItem.eq(n.index).addClass(a),e.elemItem.length<=1||(e.indicator(),e.arrow(),e.autoplay(),e.events()))},m.prototype.reload=function(e){var n=this;clearInterval(n.timer),n.config=i.extend({},n.config,e),n.render()},m.prototype.prevIndex=function(){var e=this,i=e.config,n=i.index-1;return n<0&&(n=e.elemItem.length-1),n},m.prototype.nextIndex=function(){var e=this,i=e.config,n=i.index+1;return n>=e.elemItem.length&&(n=0),n},m.prototype.addIndex=function(e){var i=this,n=i.config;e=e||1,n.index=n.index+e,n.index>=i.elemItem.length&&(n.index=0)},m.prototype.subIndex=function(e){var i=this,n=i.config;e=e||1,n.index=n.index-e,n.index<0&&(n.index=i.elemItem.length-1)},m.prototype.autoplay=function(){var e=this,i=e.config;i.autoplay&&(e.timer=setInterval(function(){e.slide()},i.interval))},m.prototype.arrow=function(){var e=this,n=e.config,t=i(['<button class="layui-icon '+u+'" lay-type="sub">'+("updown"===n.anim?"&#xe619;":"&#xe603;")+"</button>",'<button class="layui-icon '+u+'" lay-type="add">'+("updown"===n.anim?"&#xe61a;":"&#xe602;")+"</button>"].join(""));n.elem.attr("lay-arrow",n.arrow),n.elem.find("."+u)[0]&&n.elem.find("."+u).remove(),n.elem.append(t),t.on("click",function(){var n=i(this),t=n.attr("lay-type");e.slide(t)})},m.prototype.indicator=function(){var e=this,n=e.config,t=e.elemInd=i(['<div class="'+c+'"><ul>',function(){var i=[];return layui.each(e.elemItem,function(e){i.push("<li"+(n.index===e?' class="layui-this"':"")+"></li>")}),i.join("")}(),"</ul></div>"].join(""));n.elem.attr("lay-indicator",n.indicator),n.elem.find("."+c)[0]&&n.elem.find("."+c).remove(),n.elem.append(t),"updown"===n.anim&&t.css("margin-top",-(t.height()/2)),t.find("li").on("hover"===n.trigger?"mouseover":n.trigger,function(){var t=i(this),a=t.index();a>n.index?e.slide("templates.business.employee.add",a-n.index):a<n.index&&e.slide("sub",n.index-a)})},m.prototype.slide=function(e, i){var n=this,l=n.elemItem,u=n.config,c=u.index,m=u.elem.attr("lay-filter");n.haveSlide||("sub"===e?(n.subIndex(i),l.eq(u.index).addClass(d),setTimeout(function(){l.eq(c).addClass(r),l.eq(u.index).addClass(r)},50)):(n.addIndex(i),l.eq(u.index).addClass(s),setTimeout(function(){l.eq(c).addClass(o),l.eq(u.index).addClass(o)},50)),setTimeout(function(){l.removeClass(a+" "+d+" "+s+" "+o+" "+r),l.eq(u.index).addClass(a),n.haveSlide=!1},300),n.elemInd.find("li").eq(u.index).addClass(a).siblings().removeClass(a),n.haveSlide=!0,layui.event.call(this,t,"change("+m+")",{index:u.index,prevIndex:c,item:l.eq(u.index)}))},m.prototype.events=function(){var e=this,i=e.config;i.elem.data("haveEvents")||(i.elem.on("mouseenter",function(){clearInterval(e.timer)}).on("mouseleave",function(){e.autoplay()}),i.elem.data("haveEvents",!0))},n.render=function(e){var i=new m(e);return i},e(t,n)});
;layui.define("jquery",function(e){"use strict";var i=layui.$,n=(layui.hint(),layui.device(),{config:{},set:function(e){var n=this;return n.config=i.extend({},n.config,e),n},on:function(e,i){return layui.onevent.call(this,t,e,i)}}),t="carousel",a="layui-this",l=">*[carousel-item]>*",o="layui-carousel-left",r="layui-carousel-right",d="layui-carousel-prev",s="layui-carousel-next",u="layui-carousel-arrow",c="layui-carousel-ind",m=function(e){var t=this;t.config=i.extend({},t.config,n.config,e),t.render()};m.prototype.config={width:"600px",height:"280px",full:!1,arrow:"hover",indicator:"inside",autoplay:!0,interval:3e3,anim:"",trigger:"click",index:0},m.prototype.render=function(){var e=this,n=e.config;n.elem=i(n.elem),n.elem[0]&&(e.elemItem=n.elem.find(l),n.index<0&&(n.index=0),n.index>=e.elemItem.length&&(n.index=e.elemItem.length-1),n.interval<800&&(n.interval=800),n.full?n.elem.css({position:"fixed",width:"100%",height:"100%",zIndex:9999}):n.elem.css({width:n.width,height:n.height}),n.elem.attr("lay-anim",n.anim),e.elemItem.eq(n.index).addClass(a),e.elemItem.length<=1||(e.indicator(),e.arrow(),e.autoplay(),e.events()))},m.prototype.reload=function(e){var n=this;clearInterval(n.timer),n.config=i.extend({},n.config,e),n.render()},m.prototype.prevIndex=function(){var e=this,i=e.config,n=i.index-1;return n<0&&(n=e.elemItem.length-1),n},m.prototype.nextIndex=function(){var e=this,i=e.config,n=i.index+1;return n>=e.elemItem.length&&(n=0),n},m.prototype.addIndex=function(e){var i=this,n=i.config;e=e||1,n.index=n.index+e,n.index>=i.elemItem.length&&(n.index=0)},m.prototype.subIndex=function(e){var i=this,n=i.config;e=e||1,n.index=n.index-e,n.index<0&&(n.index=i.elemItem.length-1)},m.prototype.autoplay=function(){var e=this,i=e.config;i.autoplay&&(e.timer=setInterval(function(){e.slide()},i.interval))},m.prototype.arrow=function(){var e=this,n=e.config,t=i(['<button class="layui-icon '+u+'" lay-type="sub">'+("updown"===n.anim?"&#xe619;":"&#xe603;")+"</button>",'<button class="layui-icon '+u+'" lay-type="add">'+("updown"===n.anim?"&#xe61a;":"&#xe602;")+"</button>"].join(""));n.elem.attr("lay-arrow",n.arrow),n.elem.find("."+u)[0]&&n.elem.find("."+u).remove(),n.elem.append(t),t.on("click",function(){var n=i(this),t=n.attr("lay-type");e.slide(t)})},m.prototype.indicator=function(){var e=this,n=e.config,t=e.elemInd=i(['<div class="'+c+'"><ul>',function(){var i=[];return layui.each(e.elemItem,function(e){i.push("<li"+(n.index===e?' class="layui-this"':"")+"></li>")}),i.join("")}(),"</ul></div>"].join(""));n.elem.attr("lay-indicator",n.indicator),n.elem.find("."+c)[0]&&n.elem.find("."+c).remove(),n.elem.append(t),"updown"===n.anim&&t.css("margin-top",-(t.height()/2)),t.find("li").on("hover"===n.trigger?"mouseover":n.trigger,function(){var t=i(this),a=t.index();a>n.index?e.slide("templates.business.enterprise.add",a-n.index):a<n.index&&e.slide("sub",n.index-a)})},m.prototype.slide=function(e, i){var n=this,l=n.elemItem,u=n.config,c=u.index,m=u.elem.attr("lay-filter");n.haveSlide||("sub"===e?(n.subIndex(i),l.eq(u.index).addClass(d),setTimeout(function(){l.eq(c).addClass(r),l.eq(u.index).addClass(r)},50)):(n.addIndex(i),l.eq(u.index).addClass(s),setTimeout(function(){l.eq(c).addClass(o),l.eq(u.index).addClass(o)},50)),setTimeout(function(){l.removeClass(a+" "+d+" "+s+" "+o+" "+r),l.eq(u.index).addClass(a),n.haveSlide=!1},300),n.elemInd.find("li").eq(u.index).addClass(a).siblings().removeClass(a),n.haveSlide=!0,layui.event.call(this,t,"change("+m+")",{index:u.index,prevIndex:c,item:l.eq(u.index)}))},m.prototype.events=function(){var e=this,i=e.config;i.elem.data("haveEvents")||(i.elem.on("mouseenter",function(){clearInterval(e.timer)}).on("mouseleave",function(){e.autoplay()}),i.elem.data("haveEvents",!0))},n.render=function(e){var i=new m(e);return i},e(t,n)});
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -63,8 +63,8 @@
<th>职位</th>
<th>手机号码</th>
<th>身份证号码</th>
<th>性别</th>
<th>邮箱</th>
<th>性别</th>
<th>学历</th>
<th>创建时间</th>
<th>更新时间</th>
@@ -82,7 +82,7 @@
<td th:text="${item.phoneNum}">手机号码</td>
<td th:text="${item.card}">身份证号码</td>
<td th:text="${item.email}">邮箱</td>
<td th:text="${#dicts.keyValue('USER_SEX', item.sex)}">邮箱</td>
<td th:text="${#dicts.keyValue('USER_SEX', item.sex)}">性别</td>
<td th:text="${#dicts.keyValue('EDUCATION', item.education)}">学历</td>
<td th:text="${#dates.format(item.createDate, 'yyyy-MM-dd HH:mm:ss')}">创建时间</td>
<td th:text="${#dates.format(item.updateDate, 'yyyy-MM-dd HH:mm:ss')}">更新时间</td>
@@ -0,0 +1,67 @@
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head th:replace="/common/template :: header(~{::title},~{::link},~{::style})">
</head>
<body>
<div class="layui-form timo-compile">
<form th:action="@{/bss/enterprise/add}">
<input type="hidden" name="id" th:if="${bssEnterprise}" th:value="${bssEnterprise.id}">
<div class="layui-form-item">
<label class="layui-form-label required">名称</label>
<div class="layui-input-inline">
<input class="layui-input" type="text" name="name" placeholder="请输入名称" th:value="${bssEnterprise?.name}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required">统一社会信用代码</label>
<div class="layui-input-inline">
<input class="layui-input" type="text" name="creditCode" placeholder="请输入统一社会信用代码" th:value="${bssEnterprise?.creditCode}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required">所属平台</label>
<div class="layui-input-inline">
<select name="platform" mo-selected="${bssEnterprise?.platform?.id}" mo-empty="" lay-verify="platform">
<option th:value="${bssPlatform.id}" th:text="${bssPlatform.name}" th:selected="${bssPlatform.id == bssEnterprise?.platform?.id}"></option>
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">所在地</label>
<div class="layui-input-inline">
<input class="layui-input" type="text" name="location" placeholder="请输入所在地" th:value="${bssEnterprise?.location}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">行业</label>
<div class="layui-input-inline">
<input class="layui-input" type="text" name="industry" placeholder="请输入行业" th:value="${bssEnterprise?.industry}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required">增值税种类</label>
<div class="layui-input-inline">
<select name="vatType" mo:dict="VAT_TYPE" mo-selected="${bssEnterprise?.vatType}" mo-empty="" lay-verify="vatType"></select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required">会计准则</label>
<div class="layui-input-inline">
<select name="accountingStandards" mo:dict="ACCOUNTING_STANDARDS" mo-selected="${bssEnterprise?.accountingStandards}" mo-empty="" lay-verify="accountingStandards"></select>
</div>
</div>
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">备注</label>
<div class="layui-input-block">
<textarea placeholder="请输入内容" class="layui-textarea" name="remark">[[${bssEnterprise?.remark}]]</textarea>
</div>
</div>
<div class="layui-form-item timo-finally">
<button class="layui-btn ajax-submit"><i class="fa fa-check-circle"></i> 保存</button>
<button class="layui-btn btn-secondary close-popup"><i class="fa fa-times-circle"></i> 关闭</button>
</div>
</form>
</div>
<script th:replace="/common/template :: script"></script>
</body>
</html>
@@ -0,0 +1,59 @@
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head th:replace="/common/template :: header(~{::title},~{::link},~{::style})">
</head>
<body>
<div class="timo-detail-page">
<div class="timo-detail-title">基本信息</div>
<table class="layui-table timo-detail-table">
<colgroup>
<col width="100px"><col>
<col width="100px"><col>
</colgroup>
<tbody>
<tr>
<th>主键ID</th>
<td th:text="${bssEnterprise.id}"></td>
<th>名称</th>
<td th:text="${bssEnterprise.name}"></td>
</tr>
<tr>
<th>统一社会信用代码</th>
<td th:text="${bssEnterprise.creditCode}"></td>
<th>所属平台</th>
<td th:text="${bssEnterprise.platform.name}"></td>
</tr>
<tr>
<th>所在地</th>
<td th:text="${bssEnterprise.location}"></td>
<th>行业</th>
<td th:text="${bssEnterprise.industry}"></td>
</tr>
<tr>
<th>增值税种类</th>
<td th:text="${bssEnterprise.vatType}"></td>
<th>会计准则</th>
<td th:text="${bssEnterprise.accountingStandards}"></td>
</tr>
<tr>
<th>创建者</th>
<td th:text="${bssEnterprise.createBy?.nickname}"></td>
<th>更新者</th>
<td th:text="${bssEnterprise.updateBy?.nickname}"></td>
</tr>
<tr>
<th>创建时间</th>
<td th:text="${#dates.format(bssEnterprise.createDate, 'yyyy-MM-dd HH:mm:ss')}"></td>
<th>更新时间</th>
<td th:text="${#dates.format(bssEnterprise.updateDate, 'yyyy-MM-dd HH:mm:ss')}"></td>
</tr>
<tr>
<th>备注</th>
<td th:text="${bssEnterprise.remark}" colspan="3"></td>
</tr>
</tbody>
</table>
</div>
<script th:replace="/common/template :: script"></script>
</body>
</html>
@@ -0,0 +1,92 @@
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head th:replace="/common/template :: header(~{::title},~{::link},~{::style})">
</head>
<body class="timo-layout-page">
<div class="layui-card">
<div class="layui-card-header timo-card-header">
<span><i class="fa fa-bars"></i> 账套信息管理</span>
<i class="layui-icon layui-icon-refresh refresh-btn"></i>
</div>
<div class="layui-card-body">
<div class="layui-row timo-card-screen">
<div class="pull-left layui-form-pane timo-search-box">
<div class="layui-inline">
<label class="layui-form-label">状态</label>
<div class="layui-input-block timo-search-status">
<select class="timo-search-select" name="status" mo:dict="SEARCH_STATUS" mo-selected="${param.status}"></select>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">名称</label>
<div class="layui-input-block">
<input type="text" name="name" th:value="${param.name}" placeholder="请输入名称" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline">
<button class="layui-btn timo-search-btn">
<i class="fa fa-search"></i>
</button>
</div>
</div>
<div class="pull-right screen-btn-group">
<button class="layui-btn open-popup" data-title="添加账套信息" th:attr="data-url=@{/bss/enterprise/add}" data-size="auto">
<i class="fa fa-plus"></i> 添加</button>
<div class="btn-group">
<button class="layui-btn">操作<span class="caret"></span></button>
<dl class="layui-nav-child layui-anim layui-anim-upbit">
<dd><a class="ajax-status" th:href="@{/bss/enterprise/status/ok}">启用</a></dd>
<dd><a class="ajax-status" th:href="@{/bss/enterprise/status/freezed}">冻结</a></dd>
<dd><a class="ajax-status" th:href="@{/bss/enterprise/status/delete}">删除</a></dd>
</dl>
</div>
</div>
</div>
<div class="timo-table-wrap">
<table class="layui-table timo-table">
<thead>
<tr>
<th class="timo-table-checkbox">
<label class="timo-checkbox"><input type="checkbox">
<i class="layui-icon layui-icon-ok"></i></label>
</th>
<th>名称</th>
<th>所属</th>
<th>统一社会信用代码</th>
<th>所在地</th>
<th>行业</th>
<th>增值税种类</th>
<th>会计准则</th>
<th>创建时间</th>
<th>数据状态</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<tr th:each="item:${list}">
<td><label class="timo-checkbox"><input type="checkbox" th:value="${item.id}">
<i class="layui-icon layui-icon-ok"></i></label></td>
<td th:text="${item.name}">名称</td>
<td th:text="${item.platform.name}">所属</td>
<td th:text="${item.creditCode}">统一社会信用代码</td>
<td th:text="${item.location}">所在地</td>
<td th:text="${item.industry}">行业</td>
<td th:text="${#dicts.keyValue('VAT_TYPE', item.vatType)}">增值税种类</td>
<td th:text="${#dicts.keyValue('ACCOUNTING_STANDARDS', item.accountingStandards)}">会计准则</td>
<td th:text="${#dates.format(item.createDate, 'yyyy-MM-dd HH:mm:ss')}">创建时间</td>
<td th:text="${#dicts.dataStatus(item.status)}">数据状态</td>
<td>
<a class="open-popup" data-title="编辑账套信息" th:attr="data-url=@{'/bss/enterprise/edit/'+${item.id}}" data-size="auto" href="#">编辑</a>
<a class="open-popup" data-title="详细信息" th:attr="data-url=@{'/bss/enterprise/detail/'+${item.id}}" data-size="800,600" href="#">详细</a>
<a class="ajax-get" data-msg="您是否确认删除" th:href="@{/bss/enterprise/status/delete(ids=${item.id})}">删除</a>
</td>
</tr>
</tbody>
</table>
</div>
<div th:replace="/common/fragment :: page"></div>
</div>
</div>
<script th:replace="/common/template :: script"></script>
</body>
</html>