代码提交

master
sunjianxi 2 years ago
parent b9a969ef12
commit 460bb4386c
  1. 4
      pom.xml
  2. 56
      src/main/java/net/mingsoft/cms/action/PhoneContactsAction.java
  3. 20
      src/main/java/net/mingsoft/cms/action/web/PhoneContactsAction.java
  4. 5
      src/main/java/net/mingsoft/cms/biz/impl/PhoneContactsBizImpl.java
  5. 94
      src/main/java/net/mingsoft/cms/entity/PhoneContactsEntity.java
  6. 70
      src/main/java/net/mingsoft/cms/excel/PhoneContactsExcel.java
  7. 1
      src/main/java/net/mingsoft/statistics/action/web/PublishListAction.java
  8. 5
      src/main/java/net/mingsoft/statistics/job/PasZhTaskJob.java
  9. 8
      src/main/webapp/WEB-INF/manager/cms/content/main.ftl
  10. 582
      src/main/webapp/WEB-INF/manager/login.ftl
  11. BIN
      src/main/webapp/static/images/login-banner.png
  12. 2
      src/main/webapp/static/plugins/platform/ms-store.umd.min.js
  13. 8
      src/main/webapp/template/1/default/css/public.css
  14. 1
      src/main/webapp/template/1/default/css/search.css
  15. 14
      src/main/webapp/template/1/default/css/style.css
  16. 33
      src/main/webapp/template/1/default/search.htm
  17. 161
      src/main/webapp/template/1/default/tongxunlu.htm

@ -147,10 +147,10 @@
<excludes>
<!-- 可以避免将静态资源打入jar包中,方便生产实时修改静态资源文件-->
<!-- 打包生产建议并手动将static、html、upload、template复制到生产 -->
<!--<exclude>static/</exclude>
<exclude>static/</exclude>
<exclude>html/</exclude>
<exclude>upload/</exclude>
<exclude>template/</exclude>-->
<exclude>template/</exclude>
<!-- 如果生产需要实时修改WEB-INF/下的页面可,启用这行并手动将项目中的WEB-INF目录复制到运行环境 -->
<!--<exclude>WEB-INF/</exclude>-->

@ -22,20 +22,26 @@
package net.mingsoft.cms.action;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import net.mingsoft.base.entity.ResultData;
import net.mingsoft.basic.action.BaseFileAction;
import net.mingsoft.basic.bean.EUListBean;
import net.mingsoft.basic.bean.UploadConfigBean;
import net.mingsoft.basic.util.BasicUtil;
import net.mingsoft.cms.biz.IPhoneContactsBiz;
import net.mingsoft.cms.entity.DutyStandbyEntity;
import net.mingsoft.cms.entity.PhoneContactsEntity;
import net.mingsoft.cms.excel.PhoneContactsExcel;
import net.mingsoft.excel.util.ExcelUtil;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import springfox.documentation.annotations.ApiIgnore;
@ -43,8 +49,10 @@ import springfox.documentation.annotations.ApiIgnore;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
/**
* 分类管理控制层
@ -55,7 +63,7 @@ import java.util.List;
@Api(tags={"后端-通讯录接口"})
@Controller("phoneContactsAction")
@RequestMapping("/${ms.manager.path}/cms/phoneContacts")
public class PhoneContactsAction extends BaseAction{
public class PhoneContactsAction extends BaseFileAction {
/**
@ -72,12 +80,11 @@ public class PhoneContactsAction extends BaseAction{
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "id", required =false,paramType="query"),
@ApiImplicitParam(name = "name", value = "姓名", required =false,paramType="query"),
@ApiImplicitParam(name = "phone", value = "手机号", required =false,paramType="query"),
@ApiImplicitParam(name = "mobilePhone", value = "移动电话", required =false,paramType="query"),
})
@RequestMapping(value ="/list",method = {RequestMethod.GET,RequestMethod.POST})
@ResponseBody
public ResultData list(@ModelAttribute @ApiIgnore PhoneContactsEntity entity) {
BasicUtil.startPage();
entity.setSqlWhere("");
List list = phoneContactsBiz.query(entity);
return ResultData.build().success(new EUListBean(list,(int)BasicUtil.endPage(list).getTotal()));
@ -91,27 +98,56 @@ public class PhoneContactsAction extends BaseAction{
@ApiOperation(value = "导入接口")
@PostMapping("/import")
@ResponseBody
public ResultData importData(MultipartFile file){
List<PhoneContactsEntity> excelList = ExcelUtil.read(file, PhoneContactsEntity.class);
@Transactional
public ResultData importData(@ApiIgnore UploadConfigBean bean) throws IOException {
List<PhoneContactsExcel> excelList = ExcelUtil.read(bean.getFile(), PhoneContactsExcel.class);
if(excelList!=null){
for(PhoneContactsEntity entity : excelList){
//删除之前的通讯录
List<PhoneContactsEntity> list = phoneContactsBiz.list();
if(CollectionUtils.isNotEmpty(list)){
String[] ids = list.stream().map(PhoneContactsEntity::getId).toArray(String[]::new);
phoneContactsBiz.delete(ids);
}
//导入新数据
for(PhoneContactsExcel excel : excelList){
PhoneContactsEntity entity = new PhoneContactsEntity();
BeanUtils.copyProperties(excel,entity);
entity.setCreateDate(new Date());
entity.setCreateBy(BasicUtil.getManager().getId());
phoneContactsBiz.save(entity);
}
}
return ResultData.build().success("导入成功!");
UploadConfigBean config = new UploadConfigBean(bean.getUploadPath(),bean.getFile(),null,false,bean.isRename());
return this.upload(config);
}
/**
* 模板
* 模板
*/
@GetMapping("importTmplate")
@ApiOperation(value = "导入模板")
public void importTmplate(HttpServletResponse response) throws IOException {
List<PhoneContactsExcel> list = new ArrayList<>();
ExcelUtil.export(response, "通讯录导入模板", "通讯录", list, PhoneContactsExcel.class);
List<PhoneContactsEntity> list = new ArrayList<>();
list = phoneContactsBiz.list();
List<PhoneContactsExcel> excelList = new ArrayList<>();
for(PhoneContactsEntity entity : list){
PhoneContactsExcel excel = new PhoneContactsExcel();
BeanUtils.copyProperties(entity,excel);
excelList.add(excel);
}
ExcelUtil.export(response, "通讯录导入模板", "通讯录", excelList, PhoneContactsExcel.class);
}
/**
* 获取通讯录部门
*/
@GetMapping("getDept")
@ApiOperation(value = "获取通讯录部门")
@ResponseBody
public ResultData getDept(HttpServletResponse response) throws IOException {
List<String> list = phoneContactsBiz.getDept();
return ResultData.build().success(list);
}
}

@ -40,6 +40,8 @@ import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import springfox.documentation.annotations.ApiIgnore;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
/**
@ -76,23 +78,19 @@ public class PhoneContactsAction extends net.mingsoft.cms.action.BaseAction{
BasicUtil.startPage();
entity.setSqlWhere("");
List list = phoneContactsBiz.query(entity);
return ResultData.build().success(new EUListBean(list,(int)BasicUtil.endPage(list).getTotal()));
return ResultData.build().success(list);
}
/**
* 导入接口
* @param
* 获取通讯录部门
*/
@ApiOperation(value = "导入接口")
@GetMapping("/import")
@GetMapping("getDept")
@ApiOperation(value = "获取通讯录部门")
@ResponseBody
public ResultData get(MultipartFile file){
List<PhoneContactsEntity> excelList = ExcelUtil.read(file, PhoneContactsEntity.class);
if(excelList!=null){
}
return ResultData.build().success("导入成功!");
public ResultData getDept() {
List<String> list = phoneContactsBiz.getDept();
return ResultData.build().success(list);
}
}

@ -70,5 +70,8 @@ public class PhoneContactsBizImpl extends BaseBizImpl<IPhoneContactsDao, PhoneCo
}
@Override
public List<String> getDept() {
return baseMapper.getDept();
}
}

@ -47,6 +47,41 @@ private static final long serialVersionUID = 1574925152617L;
private String id;
/**
* 姓名
*/
private String name;
/**
* 职务
*/
private String postName;
/**
* 办公电话
*/
private String officePhone;
/**
* 移动电话
*/
private String mobilePhone;
/**
* 房号
*/
private String roomNum;
/**
* 部门
*/
private String deptName;
/**
* 部门类型
*/
private String deptType;
@Override
public String getId() {
return id;
@ -56,17 +91,6 @@ private static final long serialVersionUID = 1574925152617L;
public void setId(String id) {
this.id = id;
}
/**
* 姓名
*/
@ExcelProperty("姓名")
private String name;
/**
* 手机号
*/
@ExcelProperty("手机号")
private String phone;
public String getName() {
return name;
@ -76,11 +100,51 @@ private static final long serialVersionUID = 1574925152617L;
this.name = name;
}
public String getPhone() {
return phone;
public String getPostName() {
return postName;
}
public void setPostName(String postName) {
this.postName = postName;
}
public String getOfficePhone() {
return officePhone;
}
public void setOfficePhone(String officePhone) {
this.officePhone = officePhone;
}
public String getMobilePhone() {
return mobilePhone;
}
public void setMobilePhone(String mobilePhone) {
this.mobilePhone = mobilePhone;
}
public String getRoomNum() {
return roomNum;
}
public void setRoomNum(String roomNum) {
this.roomNum = roomNum;
}
public String getDeptName() {
return deptName;
}
public void setDeptName(String deptName) {
this.deptName = deptName;
}
public String getDeptType() {
return deptType;
}
public void setPhone(String phone) {
this.phone = phone;
public void setDeptType(String deptType) {
this.deptType = deptType;
}
}

@ -44,10 +44,34 @@ public class PhoneContactsExcel implements Serializable {
private String name;
/**
* 手机号
* 职务
*/
@ExcelProperty("手机号")
private String phone;
@ExcelProperty("职务")
private String postName;
/**
* 办公电话
*/
@ExcelProperty("办公电话")
private String officePhone;
/**
* 移动电话
*/
@ExcelProperty("移动电话")
private String mobilePhone;
/**
* 房号
*/
@ExcelProperty("房号")
private String roomNum;
/**
* 部门
*/
@ExcelProperty("部门")
private String deptName;
public String getName() {
return name;
@ -57,11 +81,43 @@ public class PhoneContactsExcel implements Serializable {
this.name = name;
}
public String getPhone() {
return phone;
public String getPostName() {
return postName;
}
public void setPostName(String postName) {
this.postName = postName;
}
public String getOfficePhone() {
return officePhone;
}
public void setOfficePhone(String officePhone) {
this.officePhone = officePhone;
}
public String getMobilePhone() {
return mobilePhone;
}
public void setMobilePhone(String mobilePhone) {
this.mobilePhone = mobilePhone;
}
public String getRoomNum() {
return roomNum;
}
public void setRoomNum(String roomNum) {
this.roomNum = roomNum;
}
public String getDeptName() {
return deptName;
}
public void setPhone(String phone) {
this.phone = phone;
public void setDeptName(String deptName) {
this.deptName = deptName;
}
}

@ -51,7 +51,6 @@ public class PublishListAction extends BaseAction {
@RequestMapping(value ="/list",method = {RequestMethod.GET,RequestMethod.POST})
@ResponseBody
public ResultData list(@ModelAttribute @ApiIgnore PublishListEntity publishList,HttpServletResponse response, HttpServletRequest request, @ApiIgnore ModelMap model) {
BasicUtil.startPage();
List publishListList = publishListBiz.findList(publishList);
return ResultData.build().success(new EUListBean(publishListList,(int)BasicUtil.endPage(publishListList).getTotal()));
}

@ -21,14 +21,13 @@ public class PasZhTaskJob {
//@Scheduled(cron ="0 0/1 * * * ? ")
@Scheduled(cron ="0 0 1 * * ? ")
public void checkZh(){
//查询结束时间是天的数据,修改置灰标识位
//查询结束时间是天的数据,修改置灰标识位
Date date = new Date();
LambdaQueryWrapper<PasZhEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(PasZhEntity::getZhEndtime, DateFormatUtils.format(DateUtils.addDays(date,-1),"yyyy-MM-dd"));
wrapper.eq(PasZhEntity::getZhEndtime, DateFormatUtils.format(date,"yyyy-MM-dd"));
wrapper.eq(PasZhEntity::getYjzh,"1");
List<PasZhEntity> list = pasZhBiz.list(wrapper);
if(CollectionUtils.isNotEmpty(list)){
for(PasZhEntity entity : list){
entity.setYjzh("0");
entity.setUpdateDate(date);

@ -310,8 +310,9 @@
that.form.categoryType = '1';
ms.http.post(ms.manager + "/cms/content/list.do", form.sqlWhere ? Object.assign({}, {
categoryType: '1',
sqlWhere: form.sqlWhere
}, page) : Object.assign({}, form, page)).then(function (res) {
sqlWhere: form.sqlWhere,
contentDisplay:'0'
}, page) : Object.assign({}, {...form,contentDisplay:'0'}, page,)).then(function (res) {
if (that.loadState) {
that.loading = false;
} else {
@ -504,6 +505,9 @@
}
},
mounted: function () {
console.log(this,'thisthisthisthisthisthis')
console.log(window)
console.log(document)
this.contentCategoryIdOptionsGet();
this.contentTypeOptionsGet();
this.form.categoryId = ms.util.getParameter("categoryId");

@ -0,0 +1,582 @@
<html>
<head>
<meta charset="utf-8" />
<title>${app.appName}</title>
<#include "/include/head-file.ftl"/>
<link rel="stylesheet" type="text/css" href="${base}/static/plugins/TextInputEffects/css/normalize.css" />
<link rel="stylesheet" type="text/css" href="${base}/static/plugins/TextInputEffects/css/set1.css" />
<style>
[v-cloak]{
display: none;
}
</style>
</head>
<body class="custom-body">
<div id="app" v-cloak>
<!--大容器开始-->
<div class="class-1" @keydown.13='login'>
<!--大容器开始-->
<div class="class-2" style="position: absolute">
<!--大容器开始-->
<div class="class-3" style="position: relative">
<!--图片开始-->
<img
src="${base}/static/images/login-banner.png"
class="class-4" />
<!--图片结束-->
</div>
<!--大容器结束-->
<!--大容器开始-->
<div class="class-5">
<!--小容器开始-->
<div class="class-6" >
<!--文本开始-->
<div class="class-7" style="position: relative">
<div>登录</div>
</div>
<!--文本结束-->
<!--小容器开始-->
<el-form :model="form" ref="form" :rules="rules">
<div class="class-8" >
<el-form-item prop="managerName">
<span class="input input--hoshi">
<input v-model="form.managerName" class="input__field input__field--hoshi" type="text" id="input-name" />
<label class="input__label input__label--hoshi input__label--hoshi-color-1" for="input-name">
<span class="input__label-content input__label-content--hoshi">账号</span>
</label>
</span>
</el-form-item>
</div>
<!--小容器结束-->
<!--小容器开始-->
<div class="class-13" >
<!--文本开始-->
<el-form-item prop="managerPassword">
<span class="input input--hoshi">
<input v-model="form.managerPassword" class="input__field input__field--hoshi" type="password" id="input-password" />
<label class="input__label input__label--hoshi input__label--hoshi-color-1" for="input-password">
<span class="input__label-content input__label-content--hoshi">密码</span>
</label>
</span>
</el-form-item>
</div>
<!--小容器结束-->
<!--小容器开始-->
<!--小容器结束-->
<!--小容器开始-->
<div class="class-25" >
</div>
<!--小容器结束-->
<!--按钮开始-->
<el-button @click="login" type="primary" :loading="loading"
class="class-26" style="width: 100%;height: 40px">
{{loading?'登录中':'登录'}}
</el-button>
<!--按钮结束-->
<!--小容器开始-->
<div class="class-27" >
<el-checkbox v-model="form.rememberMe">记住我</el-checkbox>
<!--文本结束-->
</div>
</el-form>
<!--小容器结束-->
</div>
<!--小容器结束-->
</div>
<!--大容器结束-->
</div>
<!--大容器结束-->
</div>
<!--大容器结束-->
</div>
</body>
</html>
<script src="${base}/static/plugins/TextInputEffects/js/classie.js"></script>
<script>
var app = new Vue({
el: '#app',
watch:{
},
data: function () {
return {
base: ms.base,
loading: false,
form: {
managerName: '',
managerPassword: '',
rememberMe: true,
},
rules: {
managerName: [
{required: true, message: '请输入账号', trigger: 'blur'},
{min: 1, max: 30, message: '长度不能超过30个字符', trigger: 'change'}
],
managerPassword: [
{required: true, message: '请输入密码', trigger: 'blur'},
{min: 1, max: 30, message: '长度不能超过30个字符', trigger: 'change'}
],
},
verifCode: ms.manager + "/code.do?t=" + new Date().getTime()
}
},
methods: {
//登录
login:function () {
var that = this;
that.$refs.form.validate(function(valid){
if (valid) {
that.loading = true;
ms.http.post(ms.manager + "/login.do", {
managerName:that.form.managerName,
managerPassword:that.form.managerPassword,
rememberMe:that.form.rememberMe
}).then(function (res) {
if(res.result){
// location.href= ms.manager + "/index.do";
ms.util.openSystemUrl("/index.do");
}else {
that.$notify({
title: '失败',
message: res.msg,
type: 'error'
});
that.code();
that.loading = false;
}
}).catch(function () {
that.loading = false;
});
}
});
},
//获取验证码
code:function(){
this.verifCode = ms.web + "/code.do?t=" + new Date().getTime();
},
//初始
initial:function(){
this.form.managerName = localStorage.getItem('managerName');
this.form.managerPassword = localStorage.getItem('managerPassword');
top.location != self.location?(top.location = self.location):'';
}
},
created:function(){
this.code();
this.initial();
}
})
</script>
<script>
(function() {
// trim polyfill : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/Trim
if (!String.prototype.trim) {
(function() {
// Make sure we trim BOM and NBSP
var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
String.prototype.trim = function() {
return this.replace(rtrim, '');
};
})();
}
[].slice.call( document.querySelectorAll( 'input.input__field' ) ).forEach( function( inputEl ) {
// in case the input is already filled..
if( inputEl.value.trim() !== '' ) {
classie.add( inputEl.parentNode, 'input--filled' );
}
// events:
inputEl.addEventListener( 'focus', onInputFocus );
inputEl.addEventListener( 'blur', onInputBlur );
} );
function onInputFocus( ev ) {
classie.add( ev.target.parentNode, 'input--filled' );
}
function onInputBlur( ev ) {
if( ev.target.value.trim() === '' ) {
classie.remove( ev.target.parentNode, 'input--filled' );
}
}
})();
</script>
<style>
.el-form-item{
margin-bottom: 0px;
}
.el-form-item__content{
line-height: initial;
}
.custom-body {
}
.class-1
{
color:#333333;
background-image:url(${base}/static/images/login-bg.jpg);
outline:none;
outline-offset:-1px;
background-size:cover;
background-position:center;
height:100%;
max-width:100%;
align-items:center;
flex-direction:row;
display:flex;
justify-content:center;
animation-duration:1s;
width:100%;
background-repeat:no-repeat;
}
.class-2
{
box-shadow:0 2px 12px 0 rgba(0, 0, 0, 0.1);
color:#333333;
outline:none;
outline-offset:-1px;
height:540px;
max-width:100%;
background-color:rgba(255, 255, 255, 1);
flex-direction:row;
display:flex;
animation-duration:1s;
border-radius:12px;
width:1000px;
background-repeat:no-repeat;
}
.class-3
{
color:#333333;
outline:none;
outline-offset:-1px;
height:100%;
max-width:100%;
align-items:flex-start;
flex-direction:row;
display:flex;
justify-content:flex-start;
animation-duration:1s;
width:460px;
background-repeat:no-repeat;
}
.class-4
{
height:100%;
animation-duration:1s;
width:100%;
}
.class-5
{
color:#333333;
outline:none;
padding-bottom:20px;
outline-offset:-1px;
flex:1;
padding-top:20px;
height:100%;
max-width:100%;
align-items:center;
flex-direction:column;
display:flex;
justify-content:flex-start;
animation-duration:1s;
width:200px;
background-repeat:no-repeat;
}
.class-6
{
color:#333333;
outline:none;
outline-offset:-1px;
max-width:100%;
flex-direction:column;
display:flex;
animation-duration:1s;
width:330px;
background-repeat:no-repeat;
margin-top:20px;
}
.class-7
{
color:#333333;
word-wrap:break-word;
display:inline-block;
animation-duration:1s;
font-size:36px;
line-height:1.4;
margin-bottom:20px;
}
.class-8
{
color:#333333;
outline:none;
outline-offset:-1px;
height:80px;
max-width:100%;
flex-direction:column;
display:flex;
justify-content:flex-end;
animation-duration:1s;
width:100%;
background-repeat:no-repeat;
}
.class-9
{
color:#BBBBBB;
word-wrap:break-word;
display:inline-block;
animation-duration:1s;
font-size:12px;
line-height:1.4;
}
.class-10
{
color:#333333;
outline:none;
outline-offset:-1px;
height:40px;
max-width:100%;
align-items:center;
flex-direction:row;
display:flex;
animation-duration:1s;
width:100%;
background-repeat:no-repeat;
}
.class-11
{
color:#333333;
word-wrap:break-word;
display:inline-block;
animation-duration:1s;
font-size:14px;
line-height:1.4;
}
.class-12
{
margin-right:auto;
animation-duration:1s;
background-color:#eee;
border-radius:1px;
width:100%;
height:1px;
margin-left:auto;
}
.class-13
{
color:#333333;
outline:none;
outline-offset:-1px;
height:80px;
max-width:100%;
flex-direction:column;
display:flex;
justify-content:flex-end;
animation-duration:1s;
width:100%;
background-repeat:no-repeat;
}
.class-14
{
color:#BBBBBB;
word-wrap:break-word;
padding-bottom:10px;
display:inline-block;
animation-duration:1s;
font-size:14px;
line-height:1.4;
}
.class-15
{
margin-right:auto;
animation-duration:1s;
background-color:#eee;
border-radius:1px;
width:100%;
height:1px;
margin-left:auto;
}
.class-16
{
color:#333333;
outline:none;
outline-offset:-1px;
height:80px;
max-width:100%;
align-items:flex-end;
flex-direction:row;
display:flex;
justify-content:flex-start;
animation-duration:1s;
background-repeat:no-repeat;
}
.class-17
{
color:#333333;
outline:none;
outline-offset:-1px;
flex:1;
height:80px;
max-width:100%;
flex-direction:column;
display:flex;
justify-content:flex-end;
animation-duration:1s;
width:200px;
background-repeat:no-repeat;
}
.class-18
{
color:#BBBBBB;
word-wrap:break-word;
display:inline-block;
animation-duration:1s;
font-size:14px;
line-height:1.4;
margin-bottom:10px;
}
.class-19
{
margin-right:auto;
animation-duration:1s;
background-color:#eee;
border-radius:1px;
width:100%;
height:1px;
margin-left:auto;
}
.class-20
{
cursor:pointer;
color:#333333;
margin-right:10px;
outline-offset:-1px;
height:40px;
max-width:100%;
align-items:center;
flex-direction:row;
display:flex;
justify-content:center;
margin-left:10px;
animation-duration:1s;
width:88px;
background-repeat:no-repeat;
margin-bottom: 0.85em;
}
.class-21
{
color:#333333;
outline:none;
outline-offset:-1px;
max-width:100%;
align-items:flex-end;
flex-direction:column;
display:flex;
justify-content:flex-end;
animation-duration:1s;
background-repeat:no-repeat;
margin-bottom: 0.85em;
}
.class-22
{
color:#333333;
outline:none;
outline-offset:-1px;
max-width:100%;
flex-direction:column;
display:flex;
animation-duration:1s;
background-repeat:no-repeat;
}
.class-23
{
color:#BBBBBB;
word-wrap:break-word;
display:inline-block;
animation-duration:1s;
font-size:12px;
line-height:1.4;
}
.class-24
{
cursor:pointer;
color:#0099FF;
word-wrap:break-word;
display:inline-block;
animation-duration:1s;
font-size:12px;
line-height:1.4;
}
.class-25
{
color:#333333;
outline:none;
outline-offset:-1px;
height:40px;
max-width:100%;
flex-direction:row;
display:flex;
animation-duration:1s;
width:100px;
background-repeat:no-repeat;
}
.class-26
{
background-color:#0099ff;
}
.class-27
{
color:#333333;
outline:none;
outline-offset:-1px;
max-width:100%;
align-items:center;
flex-direction:row;
display:flex;
animation-duration:1s;
width:100px;
background-repeat:no-repeat;
margin-top:20px;
}
.class-28
{
color:#333333;
outline:1px dashed hsla(0, 0%, 66.7%, .7);
outline-offset:-1px;
height:14px;
max-width:100%;
flex-direction:row;
display:flex;
animation-duration:1s;
width:14px;
background-repeat:no-repeat;
}
.class-29
{
color:#999999;
word-wrap:break-word;
display:inline-block;
margin-left:10px;
animation-duration:1s;
font-size:14px;
line-height:1.4;
}
@media (max-width: 768px){
}
.input__label--hoshi::before{
content: '';
position: absolute;
top: 1px;
left: 0;
width: 100%;
height: calc(100% - 10px);
border-bottom: 1px solid #B9C1CA;
}
</style>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 203 KiB

After

Width:  |  Height:  |  Size: 106 KiB

@ -815,7 +815,7 @@
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"\\n.ms-admin-mstore-icon[data-v-2faa1eb3] {\\n min-width: 50px;\\n width: 50px;\\n height: 50px;\\n background-color: #0080FF;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n cursor: pointer;\\n}\\n.ms-admin-mstore-icon span[data-v-2faa1eb3] {\\n border-radius: 50%;\\n font-weight: initial;\\n font-size: 12px;\\n color: #fff;\\n background: #f00;\\n position: absolute;\\n width: 1.2em;\\n height: 1.2em;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n top: 0.6em;\\n right: 0.6em;\\n z-index: 2;\\n}\\n.ms-admin-mstore-icon .iconfont[data-v-2faa1eb3] {\\n color: #fff;\\n -webkit-animation: rubberBand-data-v-2faa1eb3 1.4s 1s both infinite;\\n animation: rubberBand-data-v-2faa1eb3 1.4s 1s both infinite;\\n font-size: 1.5em;\\n}\\n@-webkit-keyframes rubberBand-data-v-2faa1eb3 {\\n0 {\\n transform: scale3d(1, 1, 1);\\n}\\n10% {\\n transform: scale3d(1.25, 0.75, 1);\\n}\\n20% {\\n transform: scale3d(0.75, 1.25, 1);\\n}\\n30% {\\n transform: scale3d(1.15, 0.85, 1);\\n}\\n40% {\\n transform: scale3d(0.95, 1.05, 1);\\n}\\n50% {\\n transform: scale3d(1.05, 0.95, 1);\\n}\\n51% {\\n transform: scale3d(1, 1, 1);\\n}\\n}\\n@keyframes rubberBand-data-v-2faa1eb3 {\\n0 {\\n transform: scale3d(1, 1, 1);\\n}\\n10% {\\n transform: scale3d(1.25, 0.75, 1);\\n}\\n20% {\\n transform: scale3d(0.75, 1.25, 1);\\n}\\n30% {\\n transform: scale3d(1.15, 0.85, 1);\\n}\\n40% {\\n transform: scale3d(0.95, 1.05, 1);\\n}\\n50% {\\n transform: scale3d(1.05, 0.95, 1);\\n}\\n51% {\\n transform: scale3d(1, 1, 1);\\n}\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack://ms-store/./src/components/store/Store.vue?./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-oneOf-1-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"\\n.ms-admin-mstore-icon[data-v-2faa1eb3] {\\n min-width: 50px;\\n width: 50px;\\n height: 50px;\\n background-color: #0080FF;\\n display: none;\\n justify-content: center;\\n align-items: center;\\n cursor: pointer;\\n}\\n.ms-admin-mstore-icon span[data-v-2faa1eb3] {\\n border-radius: 50%;\\n font-weight: initial;\\n font-size: 12px;\\n color: #fff;\\n background: #f00;\\n position: absolute;\\n width: 1.2em;\\n height: 1.2em;\\n display: none;\\n align-items: center;\\n justify-content: center;\\n top: 0.6em;\\n right: 0.6em;\\n z-index: 2;\\n}\\n.ms-admin-mstore-icon .iconfont[data-v-2faa1eb3] {\\n color: #fff;\\n -webkit-animation: rubberBand-data-v-2faa1eb3 1.4s 1s both infinite;\\n animation: rubberBand-data-v-2faa1eb3 1.4s 1s both infinite;\\n font-size: 1.5em;\\n}\\n@-webkit-keyframes rubberBand-data-v-2faa1eb3 {\\n0 {\\n transform: scale3d(1, 1, 1);\\n}\\n10% {\\n transform: scale3d(1.25, 0.75, 1);\\n}\\n20% {\\n transform: scale3d(0.75, 1.25, 1);\\n}\\n30% {\\n transform: scale3d(1.15, 0.85, 1);\\n}\\n40% {\\n transform: scale3d(0.95, 1.05, 1);\\n}\\n50% {\\n transform: scale3d(1.05, 0.95, 1);\\n}\\n51% {\\n transform: scale3d(1, 1, 1);\\n}\\n}\\n@keyframes rubberBand-data-v-2faa1eb3 {\\n0 {\\n transform: scale3d(1, 1, 1);\\n}\\n10% {\\n transform: scale3d(1.25, 0.75, 1);\\n}\\n20% {\\n transform: scale3d(0.75, 1.25, 1);\\n}\\n30% {\\n transform: scale3d(1.15, 0.85, 1);\\n}\\n40% {\\n transform: scale3d(0.95, 1.05, 1);\\n}\\n50% {\\n transform: scale3d(1.05, 0.95, 1);\\n}\\n51% {\\n transform: scale3d(1, 1, 1);\\n}\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack://ms-store/./src/components/store/Store.vue?./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-oneOf-1-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options");
/***/ }),

@ -39,6 +39,12 @@
border-bottom: 4px solid #fff;
background: rgba(255, 255, 255, 0.21);
}
.iscurrentPage {
border-bottom: 4px solid #fff!important;
background: rgba(255, 255, 255, 0.21);
}
.header-nav ul li:last-child{
border: 0 !important;
background: none !important;
@ -101,7 +107,7 @@
-webkit-line-clamp: 2;
}
.index-contentbox {
width: 1400px;
width: 1440px;
margin: 0 auto;
}

@ -12,6 +12,7 @@
width: 100%;
margin-bottom: 50px;
cursor: pointer;
display:inline-block
}
.searchli_t {

@ -1447,8 +1447,13 @@ body .baidu_ditu {
font-size:30px;
}
.chuhuijiyao_title2{
font-weight:normal
}
.chuhuijiyao_title2:hover{
color:#126add;
color:#003F91;
font-weight:bold
}
.chuhuijiyao_li{
@ -1475,6 +1480,7 @@ body .baidu_ditu {
font-size:14px;
text-align:center;
margin-right:15px;
line-height:23px;
}
.chuhuijiyao_date{
@ -1492,6 +1498,12 @@ body .baidu_ditu {
margin:35px 0;
}
.chuhuijiyao_line2{
width:100%;
border:1px dashed #C8C8C8;
margin:35px 0;
}
.chuhuijiyao_nav{
font-size:20px;
color:#999999;

@ -30,19 +30,20 @@
<!--轮显begin-->
<div class="index-contentbox">
<div class="searchtotal">相关结果共 <span>{ms:page.rcount/}</span></div>
<div class="searchtotal" data-href="{ms:page.index/}">相关结果共 <span>{ms:page.rcount/}</span></div>
<div class="searchlist">
{ms:arclist size=10 ispaging=true orderby="hit" order="desc"}
<div class="searchli">
<a class="searchli" href="{ms:global.html/}${field.link}">
<div class="searchli_t">
<div>${field.typetitle}</div>
<div class="font-overflow-one">
<div class="font-overflow-one" data-title="${field.title}">
${field.title}
</div>
</div>
<div class="searchli_b">
<#if field.litpic>
<img src="{@ms:file field.litpic/}" alt="" srcset="">
</#if>
<div class="searchli_b_r">
<div class="searchli_b_r_f font-overflow-two">
${field.descrip}
@ -53,14 +54,36 @@
</div>
</div>
</div>
</div>
</a>
{/ms:arclist}
</div>
</div>
<#include "paginationSearch.htm" />
<!--尾部begin-->
<#include "footer.htm" />
<script>
let keyword = $('.searchtotal').data('href')
keyword = keyword.replace('&','@')
keyword = keyword.substring(keyword.indexOf('content_title=') + 14,keyword.indexOf('@'))
$('.font-overflow-one').each(function (i, p) {
if($(p).text().indexOf(keyword) != -1){
let textContent = $(p).text()
textContent = textContent.replace(keyword,'<span style="color:red">'+keyword+'</span>')
$(p).html(textContent)
}
});
$('.font-overflow-two').each(function (i, p) {
if($(p).text().indexOf(keyword) != -1){
let textContent = $(p).text()
textContent = textContent.replace(keyword,'<span style="color:red">'+keyword+'</span>')
$(p).html(textContent)
}
});
</script>
</body>

@ -23,71 +23,80 @@
</head>
<body>
<div >
<#include "header.htm" />
<div class="o_big">
<h1>${field.typedescrip}</h1>
</div>
<!--正文begin-->
<div class="wrap">
<div class="wrap" id="phoneContacts">
<div class="breadcrumb">
<a href='/html/web/index.html'>首页<a>
<span>>通讯录</span>
<span>>通讯录</span>
</div>
<h1 class="title">通讯录</h1>
<div class="tableBox">
<div class="table" style="border-right: 1px #E1E1E1 solid;">
<div class="tableHeader">
<div style="width: 35%;border-right: 1px solid #D4D4D4;">姓名</div>
<div style="width: 65%;">电话</div>
</div>
<div class="tableBody">
<div class="tableBody_item">
<div style="width: 35%;">贾金龙</div>
<div style="width: 65%;">156 1234 5678</div>
</div>
<div class="tableBody_item">
<div style="width: 35%;">贾金龙</div>
<div style="width: 65%;">156 1234 5678</div>
</div>
<div class="tableBody_item">
<div style="width: 35%;">贾金龙</div>
<div style="width: 65%;">156 1234 5678</div>
</div>
<div class="tableBody_item">
<div style="width: 35%;">贾金龙</div>
<div style="width: 65%;">156 1234 5678</div>
</div>
</div>
<div style="display:flex">
<div class="asideBox">
<div class="asideHeader">
<div style="margin-right:57px">市车管所</div>
<img src="/{ms:global.style/}images/pickup.png" @click="pickUp" :style="pickUpFlag?{transform:'rotate(180deg)'}:''" class="pickUp">
</div>
<div class="table">
<div class="tableHeader">
<div style="width: 35%;border-right: 1px solid #D4D4D4;">姓名</div>
<div style="width: 65%;">电话</div>
</div>
<div class="tableBody">
<div class="tableBody_item">
<div style="width: 35%;">贾金龙</div>
<div style="width: 65%;">156 1234 5678</div>
</div>
<div class="tableBody_item">
<div style="width: 35%;">贾金龙</div>
<div style="width: 65%;">156 1234 5678</div>
</div>
<div class="tableBody_item">
<div style="width: 35%;">贾金龙</div>
<div style="width: 65%;">156 1234 5678</div>
</div>
<div class="tableBody_item">
<div style="width: 35%;">贾金龙</div>
<div style="width: 65%;">156 1234 5678</div>
</div>
</div>
<div class="asideBody" v-for="item in deptList" :key="item" @click="handleSelectDept(item)" v-show="!pickUpFlag">
<div :style="dept == item?{background:'#004EBD',color:'#fff'}:{}">{{item||'/'}}</div>
</div>
</div>
<div class="tableBox">
<div class="tableHeader">
<div style="border-right:1px solid #D4D4D4">姓名/单位</div>
<div style="border-right:1px solid #D4D4D4">职务</div>
<div style="border-right:1px solid #D4D4D4">办公电话</div>
<div style="border-right:1px solid #D4D4D4">移动电话</div>
<div>房号</div>
</div>
<div class="tableBody" v-for="item in phoneContactsList" :key="item.id">
<div :style="item.name?'':{color:'#999999'}">{{item.name||'/'}}</div>
<div :style="item.postName?'':{color:'#999999'}">{{item.postName||'/'}}</div>
<div :style="item.officePhone?'':{color:'#999999'}">{{item.officePhone||'/'}}</div>
<div :style="item.mobilePhone?'':{color:'#999999'}">{{item.mobilePhone||'/'}}</div>
<div :style="item.roomNum?'':{color:'#999999'}">{{item.roomNum||'/'}}</div>
</div>
</div>
</div>
</div>
<!--正文end-->
<#include "footer.htm" />
<script language="javascript" src="/{ms:global.style/}js/foot.js"></script><!--尾部end-->
<script>
var app = new Vue({
el: '#phoneContacts',
data: {
phoneContactsList:[],
deptList:[],
dept:"",
pickUpFlag:false
},
methods:{
handleSelectDept(item){
this.dept = item
axios.get(`/ms/cms/phoneContacts/list.do`,{params:{deptName:item}}).then(res=>{
this.phoneContactsList = res.data.data.rows
})
},
pickUp(){
this.pickUpFlag = !this.pickUpFlag
}
},
mounted(){
//查部门
axios.get(`/ms/cms/phoneContacts/getDept.do
`).then(res=>{
this.deptList = res.data.data
this.handleSelectDept(this.deptList[0])
});
}
})
</script>
</div>
</body>
<style>
@ -115,14 +124,10 @@
}
.tableBox {
display: flex;
border-top: 6px solid #004EBD;
margin-bottom: 50px;
color:#333333
}
.table {
width: 50%;
color:#333333;
width:1140px
}
.tableHeader {
@ -136,27 +141,57 @@
.tableHeader div {
text-align: center;
width:20%
}
.tableBody_item {
.tableBody {
display: flex;
font-size: 22px;
align-items: center;
justify-content: space-around;
height: 80px;
}
.tableBody_item &:nth-child(1) {
background-color: red;
.tableBody:nth-child(even) {
background:#F9F9F9
}
.tableBody_item div {
.tableBody div {
text-align: center;
width:20%
}
.tableBody_item:nth-child(even) {
background: #F9F9F9;
.asideBox{
width:240px;
margin-right:60px;
border-top: 6px solid #004EBD;
margin-bottom:50px;
}
.asideHeader{
background: rgba(0, 78, 189, .06);
color: #000;
font-size: 18px;
font-weight:bold;
text-indent: 53px;
height: 80px;
line-height:80px;
display:flex;
align-items:center
}
.asideBody {
font-size: 18px;
height: 80px;
text-indent:53px;
color:#000;
line-height:80px;
background:#F8F8F8;
cursor:pointer;
}
.pickUp{
cursor:pointer
}
</style>
</html>
Loading…
Cancel
Save