消费项目排序和样式

This commit is contained in:
zhanglipeng 2021-03-09 11:44:57 +08:00
parent 43203ff88d
commit 2ad86d7945
3 changed files with 193 additions and 149 deletions

View File

@ -1,127 +1,139 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form <el-form :model="queryParams" ref="queryForm" label-width="70px">
:model="queryParams" <el-row :gutter="10">
ref="queryForm" <el-col :xs="24" :ms="12" :md="5">
:inline="true" <el-form-item label="客户姓名" prop="name">
label-width="88px" <el-input
> v-model="queryParams.name"
<el-form-item label="客户姓名" prop="name"> placeholder="请输入姓名"
<el-input clearable
v-model="queryParams.name" size="small"
placeholder="请输入姓名" @keyup.enter.native="handleQuery"
clearable />
size="small" </el-form-item>
@keyup.enter.native="handleQuery" </el-col>
/> <el-col :xs="24" :ms="12" :md="5">
</el-form-item> <el-form-item label="联系电话" prop="lxdh">
<el-form-item label="联系电话" prop="lxdh"> <el-input
<el-input v-model="queryParams.lxdh"
v-model="queryParams.lxdh" placeholder="请输入联系电话"
placeholder="请输入联系电话" clearable
clearable size="small"
size="small" @keyup.enter.native="handleQuery"
@keyup.enter.native="handleQuery" />
/> </el-form-item>
</el-form-item> </el-col>
<el-form-item label="幼儿园名称" prop="schoolname"> <el-col :xs="24" :ms="12" :md="5">
<el-input <el-form-item label="园所名称" prop="schoolname">
v-model="queryParams.schoolname" <el-input
placeholder="请输入幼儿园名称" v-model="queryParams.schoolname"
clearable placeholder="请输入园所名称"
size="small" clearable
@keyup.enter.native="handleQuery" size="small"
/> @keyup.enter.native="handleQuery"
</el-form-item> />
<el-form-item label="所在省" prop="sheng"> </el-form-item>
<el-input </el-col>
v-model="queryParams.sheng" <el-col :xs="24" :ms="12" :md="5">
placeholder="请输入所在省" <el-form-item label="所在省" prop="sheng">
clearable <el-input
size="small" v-model="queryParams.sheng"
@keyup.enter.native="handleQuery" placeholder="请输入所在省"
/> clearable
</el-form-item> size="small"
<el-form-item label="客户来源" prop="khly"> @keyup.enter.native="handleQuery"
<el-select v-model="queryParams.khly" placeholder="请选择客户来源"> />
<el-option </el-form-item>
v-for="dict in lyOptions" </el-col>
:key="dict.dictValue" <el-col :xs="24" :ms="12" :md="5">
:label="dict.dictLabel" <el-form-item label="客户来源" prop="khly">
:value="dict.dictValue" <el-select v-model="queryParams.khly" placeholder="请选择客户来源">
></el-option> <el-option
</el-select> v-for="dict in lyOptions"
</el-form-item> :key="dict.dictValue"
<el-form-item label="客户身份" prop="sflx"> :label="dict.dictLabel"
<el-select v-model="queryParams.sflx" placeholder="请选择客户身份"> :value="dict.dictValue"
<el-option ></el-option>
v-for="dict in gxOptions" </el-select>
:key="dict.dictValue" </el-form-item>
:label="dict.dictLabel" </el-col>
:value="dict.dictValue" <el-col :xs="24" :ms="12" :md="5">
></el-option> <el-form-item label="客户身份" prop="sflx">
</el-select> <el-select v-model="queryParams.sflx" placeholder="请选择客户身份">
</el-form-item> <el-option
<el-form-item> v-for="dict in gxOptions"
<el-button :key="dict.dictValue"
type="primary" :label="dict.dictLabel"
icon="el-icon-search" :value="dict.dictValue"
size="mini" ></el-option>
@click="handleQuery" </el-select>
>搜索</el-button </el-form-item>
> </el-col>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery" <el-col :xs="24" :ms="12" :md="4">
>重置</el-button <el-form-item class="no-margin">
> <el-button
</el-form-item> type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-col>
</el-row>
</el-form> </el-form>
<el-row :gutter="10" class="mb8"> <div class="mb8 btn-list">
<el-col :span="1.5"> <el-button
<el-button type="primary"
type="primary" icon="el-icon-plus"
icon="el-icon-plus" size="mini"
size="mini" @click="handleAdd"
@click="handleAdd" v-hasPermi="['benyi:customer:add']"
v-hasPermi="['benyi:customer:add']" >新增</el-button
>新增</el-button >
> <el-button
</el-col> type="success"
<el-col :span="1.5"> icon="el-icon-edit"
<el-button size="mini"
type="success" :disabled="single"
icon="el-icon-edit" @click="handleUpdate"
size="mini" v-hasPermi="['benyi:customer:edit']"
:disabled="single" >修改</el-button
@click="handleUpdate" >
v-hasPermi="['benyi:customer:edit']" <el-button
>修改</el-button type="danger"
> icon="el-icon-delete"
</el-col> size="mini"
<el-col :span="1.5"> :disabled="multiple"
<el-button @click="handleDelete"
type="danger" v-hasPermi="['benyi:customer:remove']"
icon="el-icon-delete" >删除</el-button
size="mini" >
:disabled="multiple" </div>
@click="handleDelete"
v-hasPermi="['benyi:customer:remove']"
>删除</el-button
>
</el-col>
</el-row>
<el-table <el-table
v-loading="loading" v-loading="loading"
border
:data="customerList" :data="customerList"
@selection-change="handleSelectionChange" @selection-change="handleSelectionChange"
@sort-change="sortChange" @sort-change="sortChange"
> >
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column label="客户姓名" align="center" prop="name" /> <el-table-column fixed label="客户姓名" align="center" prop="name" />
<el-table-column label="幼儿园名称" align="center" prop="schoolname" />
<el-table-column <el-table-column
label="幼儿园人数" fixed
label="园所名称"
align="center"
prop="schoolname"
/>
<el-table-column
label="园所人数"
width="100"
align="center" align="center"
prop="rs" prop="rs"
sortable="rs" sortable="rs"
@ -141,11 +153,23 @@
<el-table-column label="联系电话" align="center" prop="lxdh" /> <el-table-column label="联系电话" align="center" prop="lxdh" />
<el-table-column label="微信号" align="center" prop="wx" /> <el-table-column label="微信号" align="center" prop="wx" />
<el-table-column label="抖音号" align="center" prop="dy" /> <el-table-column label="抖音号" align="center" prop="dy" />
<el-table-column label="其他联系方式" align="center" prop="qt" /> <el-table-column label="其他联系方式" width="100" align="center" prop="qt" />
<el-table-column label="所在省" align="center" prop="sheng" /> <el-table-column label="所在省" align="center" prop="sheng" />
<el-table-column label="所在市" align="center" prop="shi" /> <el-table-column label="所在市" align="center" prop="shi" />
<el-table-column label="消费项目" align="center" prop="xfxm" sortable="xfxm" /> <el-table-column
<el-table-column label="消费价值" align="center" prop="xfjz" sortable="xfjz" /> label="消费项目"
align="center"
prop="xfxm"
width="110"
sortable="xfxm"
/>
<el-table-column
label="消费价值"
width="110"
align="center"
prop="xfjz"
sortable="xfjz"
/>
<el-table-column <el-table-column
label="录入人" label="录入人"
align="center" align="center"
@ -154,11 +178,13 @@
/> />
<el-table-column label="录入时间" align="center" prop="createTime" /> <el-table-column label="录入时间" align="center" prop="createTime" />
<el-table-column label="过保时间" align="center" prop="gbtime" /> <el-table-column label="过保时间" align="center" prop="gbtime" />
<el-table-column label="转换跟进" align="center" prop="zhgj" /> <el-table-column label="转换跟进" show-overflow-tooltip align="center" prop="zhgj" />
<el-table-column <el-table-column
fixed="right"
label="操作" label="操作"
align="center" align="center"
class-name="small-padding fixed-width" width="60"
class-name="small-padding fixed-width edit-btns"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
@ -199,18 +225,18 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="幼儿园名称" prop="schoolname"> <el-form-item label="名称" prop="schoolname">
<el-input <el-input
v-model="form.schoolname" v-model="form.schoolname"
placeholder="请输入幼儿园名称" placeholder="请输入名称"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="幼儿园人数" prop="rs"> <el-form-item label="人数" prop="rs">
<el-input-number <el-input-number
v-model="form.rs" v-model="form.rs"
placeholder="请输入幼儿园人数" placeholder="请输入人数"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -402,10 +428,10 @@ export default {
{ required: true, message: "客户姓名不能为空", trigger: "blur" }, { required: true, message: "客户姓名不能为空", trigger: "blur" },
], ],
schoolname: [ schoolname: [
{ required: true, message: "幼儿园名称不能为空", trigger: "blur" }, { required: true, message: "名称不能为空", trigger: "blur" },
], ],
lxdh: [ lxdh: [
{ required: true, message: "幼儿园名称不能为空", trigger: "blur" }, { required: true, message: "联系电话不能为空", trigger: "blur" },
], ],
sheng: [ sheng: [
{ {
@ -630,3 +656,20 @@ export default {
}, },
}; };
</script> </script>
<style lang="scss" scoped>
.el-select {
width: 100%;
}
.my-date-picker {
width: 100%;
}
.edit-btns {
.el-button {
display: block;
margin: 0 auto;
}
}
.no-margin ::v-deep.el-form-item__content {
margin: 0 !important;
}
</style>

View File

@ -82,15 +82,18 @@ public class SysLoginService {
Collection<String> keys = redisCache.keys(Constants.LOGIN_TOKEN_KEY + "*"); Collection<String> keys = redisCache.keys(Constants.LOGIN_TOKEN_KEY + "*");
List<SysUserOnline> userOnlineList = new ArrayList<SysUserOnline>(); List<SysUserOnline> userOnlineList = new ArrayList<SysUserOnline>();
for (String key : keys) { for (String key : keys) {
LoginUser user = redisCache.getCacheObject(key); try {
if (StringUtils.isNotEmpty(username) && StringUtils.isNotNull(user.getUser())) { LoginUser user = redisCache.getCacheObject(key);
if (StringUtils.equals(username, user.getUsername())) { if (StringUtils.isNotEmpty(username) && StringUtils.isNotNull(user.getUser())) {
//存在已经登录用户抛出异常 if (StringUtils.equals(username, user.getUsername())) {
//存在已经登录用户抛出异常
// CustomException alreadyLoginExcep = new CustomException("该账号已在别处登陆", HttpStatus.ALREADY_LOGIN); // CustomException alreadyLoginExcep = new CustomException("该账号已在别处登陆", HttpStatus.ALREADY_LOGIN);
// alreadyLoginExcep.setObj(username); // alreadyLoginExcep.setObj(username);
// throw alreadyLoginExcep; // throw alreadyLoginExcep;
redisCache.deleteObject(key); redisCache.deleteObject(key);
}
} }
} catch (Exception e) {
} }
} }

View File

@ -27,12 +27,10 @@ import com.ruoyi.framework.web.page.TableSupport;
* *
* @author ruoyi * @author ruoyi
*/ */
public class BaseController public class BaseController {
{
protected final Logger logger = LoggerFactory.getLogger(BaseController.class); protected final Logger logger = LoggerFactory.getLogger(BaseController.class);
public static String getUUID32() public static String getUUID32() {
{
return UUID.randomUUID().toString().replace("-", "").toLowerCase(); return UUID.randomUUID().toString().replace("-", "").toLowerCase();
} }
@ -40,14 +38,11 @@ public class BaseController
* 将前台传递过来的日期格式的字符串自动转化为Date类型 * 将前台传递过来的日期格式的字符串自动转化为Date类型
*/ */
@InitBinder @InitBinder
public void initBinder(WebDataBinder binder) public void initBinder(WebDataBinder binder) {
{
// Date 类型转换 // Date 类型转换
binder.registerCustomEditor(Date.class, new PropertyEditorSupport() binder.registerCustomEditor(Date.class, new PropertyEditorSupport() {
{
@Override @Override
public void setAsText(String text) public void setAsText(String text) {
{
setValue(DateUtils.parseDate(text)); setValue(DateUtils.parseDate(text));
} }
}); });
@ -56,14 +51,19 @@ public class BaseController
/** /**
* 设置请求分页数据 * 设置请求分页数据
*/ */
protected void startPage() protected void startPage() {
{
PageDomain pageDomain = TableSupport.buildPageRequest(); PageDomain pageDomain = TableSupport.buildPageRequest();
Integer pageNum = pageDomain.getPageNum(); Integer pageNum = pageDomain.getPageNum();
Integer pageSize = pageDomain.getPageSize(); Integer pageSize = pageDomain.getPageSize();
if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)) if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)) {
{
String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy()); String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy());
// System.out.println("order:" + orderBy);
//特殊情况处理 汉字排序
if (orderBy.equals("xfxm asc")) {
orderBy = "CONVERT(xfxm USING gbk) asc";
} else if (orderBy.equals("xfxm desc")) {
orderBy = "CONVERT(xfxm USING gbk) desc";
}
PageHelper.startPage(pageNum, pageSize, orderBy); PageHelper.startPage(pageNum, pageSize, orderBy);
} }
} }
@ -71,9 +71,8 @@ public class BaseController
/** /**
* 响应请求分页数据 * 响应请求分页数据
*/ */
@SuppressWarnings({ "rawtypes", "unchecked" }) @SuppressWarnings({"rawtypes", "unchecked"})
protected TableDataInfo getDataTable(List<?> list) protected TableDataInfo getDataTable(List<?> list) {
{
TableDataInfo rspData = new TableDataInfo(); TableDataInfo rspData = new TableDataInfo();
rspData.setCode(HttpStatus.SUCCESS); rspData.setCode(HttpStatus.SUCCESS);
rspData.setRows(list); rspData.setRows(list);
@ -87,8 +86,7 @@ public class BaseController
* @param rows 影响行数 * @param rows 影响行数
* @return 操作结果 * @return 操作结果
*/ */
protected AjaxResult toAjax(int rows) protected AjaxResult toAjax(int rows) {
{
return rows > 0 ? AjaxResult.success() : AjaxResult.error(); return rows > 0 ? AjaxResult.success() : AjaxResult.error();
} }
} }