Compare commits

...

17 Commits

@ -0,0 +1,200 @@
package com.controller;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.entity.HetongxinxiEntity;
import com.entity.view.HetongxinxiView;
import com.service.HetongxinxiService;
import com.utils.MPUtil;
import com.utils.PageUtils;
import com.utils.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;
/**
*
*
* @author
* @email
*/
@RestController
@RequestMapping("/hetongxinxi")
public class HetongxinxiController {
@Autowired
private HetongxinxiService hetongxinxiService;
/**
*
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,HetongxinxiEntity hetongxinxi, HttpServletRequest request){
String tableName = request.getSession().getAttribute("tableName").toString();
if(tableName.equals("yonghu")) {
hetongxinxi.setYonghuming((String)request.getSession().getAttribute("username"));
}
if(tableName.equals("fangzhu")) {
hetongxinxi.setFangzhuzhanghao((String)request.getSession().getAttribute("username"));
}
EntityWrapper<HetongxinxiEntity> ew = new EntityWrapper<HetongxinxiEntity>();
PageUtils page = hetongxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, hetongxinxi), params), params));
return R.ok().put("data", page);
}
/**
*
*/
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params,HetongxinxiEntity hetongxinxi, HttpServletRequest request){
EntityWrapper<HetongxinxiEntity> ew = new EntityWrapper<HetongxinxiEntity>();
PageUtils page = hetongxinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, hetongxinxi), params), params));
return R.ok().put("data", page);
}
/**
*
*/
@RequestMapping("/lists")
public R list( HetongxinxiEntity hetongxinxi){
EntityWrapper<HetongxinxiEntity> ew = new EntityWrapper<HetongxinxiEntity>();
ew.allEq(MPUtil.allEQMapPre( hetongxinxi, "hetongxinxi"));
return R.ok().put("data", hetongxinxiService.selectListView(ew));
}
/**
*
*/
@RequestMapping("/query")
public R query(HetongxinxiEntity hetongxinxi){
EntityWrapper< HetongxinxiEntity> ew = new EntityWrapper< HetongxinxiEntity>();
ew.allEq(MPUtil.allEQMapPre( hetongxinxi, "hetongxinxi"));
HetongxinxiView hetongxinxiView = hetongxinxiService.selectView(ew);
return R.ok("查询合同信息成功").put("data", hetongxinxiView);
}
/**
*
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
HetongxinxiEntity hetongxinxi = hetongxinxiService.selectById(id);
return R.ok().put("data", hetongxinxi);
}
/**
*
*/
@RequestMapping("/detail/{id}")
public R detail(@PathVariable("id") Long id){
HetongxinxiEntity hetongxinxi = hetongxinxiService.selectById(id);
return R.ok().put("data", hetongxinxi);
}
/**
*
*/
@RequestMapping("/save")
public R save(@RequestBody HetongxinxiEntity hetongxinxi, HttpServletRequest request){
hetongxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(hetongxinxi);
hetongxinxiService.insert(hetongxinxi);
return R.ok();
}
/**
*
*/
@RequestMapping("/add")
public R add(@RequestBody HetongxinxiEntity hetongxinxi, HttpServletRequest request){
hetongxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(hetongxinxi);
hetongxinxiService.insert(hetongxinxi);
return R.ok();
}
/**
*
*/
@RequestMapping("/update")
public R update(@RequestBody HetongxinxiEntity hetongxinxi, HttpServletRequest request){
//ValidatorUtils.validateEntity(hetongxinxi);
hetongxinxiService.updateById(hetongxinxi);//全部更新
return R.ok();
}
/**
*
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
hetongxinxiService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
/**
*
*/
@RequestMapping("/remind/{columnName}/{type}")
public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request,
@PathVariable("type") String type,@RequestParam Map<String, Object> map) {
map.put("column", columnName);
map.put("type", type);
if(type.equals("2")) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
Date remindStartDate = null;
Date remindEndDate = null;
if(map.get("remindstart")!=null) {
Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
c.setTime(new Date());
c.add(Calendar.DAY_OF_MONTH,remindStart);
remindStartDate = c.getTime();
map.put("remindstart", sdf.format(remindStartDate));
}
if(map.get("remindend")!=null) {
Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
c.setTime(new Date());
c.add(Calendar.DAY_OF_MONTH,remindEnd);
remindEndDate = c.getTime();
map.put("remindend", sdf.format(remindEndDate));
}
}
Wrapper<HetongxinxiEntity> wrapper = new EntityWrapper<HetongxinxiEntity>();
if(map.get("remindstart")!=null) {
wrapper.ge(columnName, map.get("remindstart"));
}
if(map.get("remindend")!=null) {
wrapper.le(columnName, map.get("remindend"));
}
String tableName = request.getSession().getAttribute("tableName").toString();
if(tableName.equals("yonghu")) {
wrapper.eq("yonghuming", (String)request.getSession().getAttribute("username"));
}
if(tableName.equals("fangzhu")) {
wrapper.eq("fangzhuzhanghao", (String)request.getSession().getAttribute("username"));
}
int count = hetongxinxiService.selectCount(wrapper);
return R.ok().put("count", count);
}
}

@ -0,0 +1,32 @@
package com.dao;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.pagination.Pagination;
import com.entity.HetongxinxiEntity;
import com.entity.view.HetongxinxiView;
import com.entity.vo.HetongxinxiVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
*
*
* @author
* @email
*/
public interface HetongxinxiDao extends BaseMapper<HetongxinxiEntity> {
List<HetongxinxiVO> selectListVO(@Param("ew") Wrapper<HetongxinxiEntity> wrapper);
HetongxinxiVO selectVO(@Param("ew") Wrapper<HetongxinxiEntity> wrapper);
List<HetongxinxiView> selectListView(@Param("ew") Wrapper<HetongxinxiEntity> wrapper);
List<HetongxinxiView> selectListView(Pagination page,@Param("ew") Wrapper<HetongxinxiEntity> wrapper);
HetongxinxiView selectView(@Param("ew") Wrapper<HetongxinxiEntity> wrapper);
}

@ -0,0 +1,427 @@
package com.entity;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.beanutils.BeanUtils;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.lang.reflect.InvocationTargetException;
import java.util.Date;
/**
*
*
* @author
* @email
*/
@TableName("hetongxinxi")
public class HetongxinxiEntity<T> implements Serializable {
private static final long serialVersionUID = 1L;
public HetongxinxiEntity() {
}
public HetongxinxiEntity(T t) {
try {
BeanUtils.copyProperties(this, t);
} catch (IllegalAccessException | InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* id
*/
@TableId
private Long id;
/**
*
*/
private String hetongbianhao;
/**
*
*/
private String fangwumingcheng;
/**
*
*/
private String fangwuleixing;
/**
*
*/
private String xiaoqu;
/**
*
*/
private String yuezujiage;
/**
*
*/
private String zuyongyueshu;
/**
*
*/
private Integer zuyongjine;
/**
*
*/
private Integer yajin;
/**
*
*/
private String fangzuzhuangtai;
/**
*
*/
private String hetongjine;
/**
*
*/
private String hetongneirong;
/**
*
*/
@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
@DateTimeFormat
private Date shengxiaori;
/**
*
*/
@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
@DateTimeFormat
private Date youxianqizhi;
/**
*
*/
private String yonghuming;
/**
*
*/
private String lianxidianhua;
/**
*
*/
private String fangzhuzhanghao;
/**
*
*/
private String fangzhuxingming;
/**
*
*/
private String sfsh;
/**
*
*/
private String shhf;
/**
*
*/
private String ispay;
@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
@DateTimeFormat
private Date addtime;
public Date getAddtime() {
return addtime;
}
public void setAddtime(Date addtime) {
this.addtime = addtime;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
/**
*
*/
public void setHetongbianhao(String hetongbianhao) {
this.hetongbianhao = hetongbianhao;
}
/**
*
*/
public String getHetongbianhao() {
return hetongbianhao;
}
/**
*
*/
public void setFangwumingcheng(String fangwumingcheng) {
this.fangwumingcheng = fangwumingcheng;
}
/**
*
*/
public String getFangwumingcheng() {
return fangwumingcheng;
}
/**
*
*/
public void setFangwuleixing(String fangwuleixing) {
this.fangwuleixing = fangwuleixing;
}
/**
*
*/
public String getFangwuleixing() {
return fangwuleixing;
}
/**
*
*/
public void setXiaoqu(String xiaoqu) {
this.xiaoqu = xiaoqu;
}
/**
*
*/
public String getXiaoqu() {
return xiaoqu;
}
/**
*
*/
public void setYuezujiage(String yuezujiage) {
this.yuezujiage = yuezujiage;
}
/**
*
*/
public String getYuezujiage() {
return yuezujiage;
}
/**
*
*/
public void setZuyongyueshu(String zuyongyueshu) {
this.zuyongyueshu = zuyongyueshu;
}
/**
*
*/
public String getZuyongyueshu() {
return zuyongyueshu;
}
/**
*
*/
public void setZuyongjine(Integer zuyongjine) {
this.zuyongjine = zuyongjine;
}
/**
*
*/
public Integer getZuyongjine() {
return zuyongjine;
}
/**
*
*/
public void setYajin(Integer yajin) {
this.yajin = yajin;
}
/**
*
*/
public Integer getYajin() {
return yajin;
}
/**
*
*/
public void setFangzuzhuangtai(String fangzuzhuangtai) {
this.fangzuzhuangtai = fangzuzhuangtai;
}
/**
*
*/
public String getFangzuzhuangtai() {
return fangzuzhuangtai;
}
/**
*
*/
public void setHetongjine(String hetongjine) {
this.hetongjine = hetongjine;
}
/**
*
*/
public String getHetongjine() {
return hetongjine;
}
/**
*
*/
public void setHetongneirong(String hetongneirong) {
this.hetongneirong = hetongneirong;
}
/**
*
*/
public String getHetongneirong() {
return hetongneirong;
}
/**
*
*/
public void setShengxiaori(Date shengxiaori) {
this.shengxiaori = shengxiaori;
}
/**
*
*/
public Date getShengxiaori() {
return shengxiaori;
}
/**
*
*/
public void setYouxianqizhi(Date youxianqizhi) {
this.youxianqizhi = youxianqizhi;
}
/**
*
*/
public Date getYouxianqizhi() {
return youxianqizhi;
}
/**
*
*/
public void setYonghuming(String yonghuming) {
this.yonghuming = yonghuming;
}
/**
*
*/
public String getYonghuming() {
return yonghuming;
}
/**
*
*/
public void setLianxidianhua(String lianxidianhua) {
this.lianxidianhua = lianxidianhua;
}
/**
*
*/
public String getLianxidianhua() {
return lianxidianhua;
}
/**
*
*/
public void setFangzhuzhanghao(String fangzhuzhanghao) {
this.fangzhuzhanghao = fangzhuzhanghao;
}
/**
*
*/
public String getFangzhuzhanghao() {
return fangzhuzhanghao;
}
/**
*
*/
public void setFangzhuxingming(String fangzhuxingming) {
this.fangzhuxingming = fangzhuxingming;
}
/**
*
*/
public String getFangzhuxingming() {
return fangzhuxingming;
}
/**
*
*/
public void setSfsh(String sfsh) {
this.sfsh = sfsh;
}
/**
*
*/
public String getSfsh() {
return sfsh;
}
/**
*
*/
public void setShhf(String shhf) {
this.shhf = shhf;
}
/**
*
*/
public String getShhf() {
return shhf;
}
/**
*
*/
public void setIspay(String ispay) {
this.ispay = ispay;
}
/**
*
*/
public String getIspay() {
return ispay;
}
}

@ -0,0 +1,443 @@
package com.entity.model;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
*
*
* ModelAndView model
* @author
* @email
*/
public class HetongxinxiModel implements Serializable {
private static final long serialVersionUID = 1L;
/**
*
*/
private String fangwumingcheng;
/**
*
*/
private String fangwuleixing;
/**
*
*/
private String xiaoqu;
/**
*
*/
private String yuezujiage;
/**
*
*/
private String zuyongyueshu;
/**
*
*/
private Integer zuyongjine;
/**
*
*/
private Integer yajin;
/**
*
*/
private String fangzuzhuangtai;
/**
*
*/
private String hetongjine;
/**
*
*/
private String hetongneirong;
/**
*
*/
@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
@DateTimeFormat
private Date shengxiaori;
/**
*
*/
@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
@DateTimeFormat
private Date youxianqizhi;
/**
*
*/
private String yonghuming;
/**
*
*/
private String lianxidianhua;
/**
*
*/
private String fangzhuzhanghao;
/**
*
*/
private String fangzhuxingming;
/**
*
*/
private String sfsh;
/**
*
*/
private String shhf;
/**
*
*/
private String ispay;
/**
*
*/
public void setFangwumingcheng(String fangwumingcheng) {
this.fangwumingcheng = fangwumingcheng;
}
/**
*
*/
public String getFangwumingcheng() {
return fangwumingcheng;
}
/**
*
*/
public void setFangwuleixing(String fangwuleixing) {
this.fangwuleixing = fangwuleixing;
}
/**
*
*/
public String getFangwuleixing() {
return fangwuleixing;
}
/**
*
*/
public void setXiaoqu(String xiaoqu) {
this.xiaoqu = xiaoqu;
}
/**
*
*/
public String getXiaoqu() {
return xiaoqu;
}
/**
*
*/
public void setYuezujiage(String yuezujiage) {
this.yuezujiage = yuezujiage;
}
/**
*
*/
public String getYuezujiage() {
return yuezujiage;
}
/**
*
*/
public void setZuyongyueshu(String zuyongyueshu) {
this.zuyongyueshu = zuyongyueshu;
}
/**
*
*/
public String getZuyongyueshu() {
return zuyongyueshu;
}
/**
*
*/
public void setZuyongjine(Integer zuyongjine) {
this.zuyongjine = zuyongjine;
}
/**
*
*/
public Integer getZuyongjine() {
return zuyongjine;
}
/**
*
*/
public void setYajin(Integer yajin) {
this.yajin = yajin;
}
/**
*
*/
public Integer getYajin() {
return yajin;
}
/**
*
*/
public void setFangzuzhuangtai(String fangzuzhuangtai) {
this.fangzuzhuangtai = fangzuzhuangtai;
}
/**
*
*/
public String getFangzuzhuangtai() {
return fangzuzhuangtai;
}
/**
*
*/
public void setHetongjine(String hetongjine) {
this.hetongjine = hetongjine;
}
/**
*
*/
public String getHetongjine() {
return hetongjine;
}
/**
*
*/
public void setHetongneirong(String hetongneirong) {
this.hetongneirong = hetongneirong;
}
/**
*
*/
public String getHetongneirong() {
return hetongneirong;
}
/**
*
*/
public void setShengxiaori(Date shengxiaori) {
this.shengxiaori = shengxiaori;
}
/**
*
*/
public Date getShengxiaori() {
return shengxiaori;
}
/**
*
*/
public void setYouxianqizhi(Date youxianqizhi) {
this.youxianqizhi = youxianqizhi;
}
/**
*
*/
public Date getYouxianqizhi() {
return youxianqizhi;
}
/**
*
*/
public void setYonghuming(String yonghuming) {
this.yonghuming = yonghuming;
}
/**
*
*/
public String getYonghuming() {
return yonghuming;
}
/**
*
*/
public void setLianxidianhua(String lianxidianhua) {
this.lianxidianhua = lianxidianhua;
}
/**
*
*/
public String getLianxidianhua() {
return lianxidianhua;
}
/**
*
*/
public void setFangzhuzhanghao(String fangzhuzhanghao) {
this.fangzhuzhanghao = fangzhuzhanghao;
}
/**
*
*/
public String getFangzhuzhanghao() {
return fangzhuzhanghao;
}
/**
*
*/
public void setFangzhuxingming(String fangzhuxingming) {
this.fangzhuxingming = fangzhuxingming;
}
/**
*
*/
public String getFangzhuxingming() {
return fangzhuxingming;
}
/**
*
*/
public void setSfsh(String sfsh) {
this.sfsh = sfsh;
}
/**
*
*/
public String getSfsh() {
return sfsh;
}
/**
*
*/
public void setShhf(String shhf) {
this.shhf = shhf;
}
/**
*
*/
public String getShhf() {
return shhf;
}
/**
*
*/
public void setIspay(String ispay) {
this.ispay = ispay;
}
/**
*
*/
public String getIspay() {
return ispay;
}
}

@ -0,0 +1,34 @@
package com.entity.view;
import com.baomidou.mybatisplus.annotations.TableName;
import com.entity.HetongxinxiEntity;
import org.apache.commons.beanutils.BeanUtils;
import java.io.Serializable;
import java.lang.reflect.InvocationTargetException;
/**
*
*
* 使
* @author
* @email
*/
@TableName("hetongxinxi")
public class HetongxinxiView extends HetongxinxiEntity implements Serializable {
private static final long serialVersionUID = 1L;
public HetongxinxiView(){
}
public HetongxinxiView(HetongxinxiEntity hetongxinxiEntity){
try {
BeanUtils.copyProperties(this, hetongxinxiEntity);
} catch (IllegalAccessException | InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

@ -0,0 +1,83 @@
package com.entity.vo;
import java.io.Serializable;
/**
*
*
*
* @author
* @email
*/
public class DiscusswoyaodangfangzhuVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*/
private Long userid;
/**
*
*/
private String content;
/**
*
*/
private String reply;
/**
* id
*/
public void setUserid(Long userid) {
this.userid = userid;
}
/**
* id
*/
public Long getUserid() {
return userid;
}
/**
*
*/
public void setContent(String content) {
this.content = content;
}
/**
*
*/
public String getContent() {
return content;
}
/**
*
*/
public void setReply(String reply) {
this.reply = reply;
}
/**
*
*/
public String getReply() {
return reply;
}
}

@ -0,0 +1,443 @@
package com.entity.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
*
*
*
* @author
* @email
*/
public class HetongxinxiVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
*
*/
private String fangwumingcheng;
/**
*
*/
private String fangwuleixing;
/**
*
*/
private String xiaoqu;
/**
*
*/
private String yuezujiage;
/**
*
*/
private String zuyongyueshu;
/**
*
*/
private Integer zuyongjine;
/**
*
*/
private Integer yajin;
/**
*
*/
private String fangzuzhuangtai;
/**
*
*/
private String hetongjine;
/**
*
*/
private String hetongneirong;
/**
*
*/
@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
@DateTimeFormat
private Date shengxiaori;
/**
*
*/
@JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
@DateTimeFormat
private Date youxianqizhi;
/**
*
*/
private String yonghuming;
/**
*
*/
private String lianxidianhua;
/**
*
*/
private String fangzhuzhanghao;
/**
*
*/
private String fangzhuxingming;
/**
*
*/
private String sfsh;
/**
*
*/
private String shhf;
/**
*
*/
private String ispay;
/**
*
*/
public void setFangwumingcheng(String fangwumingcheng) {
this.fangwumingcheng = fangwumingcheng;
}
/**
*
*/
public String getFangwumingcheng() {
return fangwumingcheng;
}
/**
*
*/
public void setFangwuleixing(String fangwuleixing) {
this.fangwuleixing = fangwuleixing;
}
/**
*
*/
public String getFangwuleixing() {
return fangwuleixing;
}
/**
*
*/
public void setXiaoqu(String xiaoqu) {
this.xiaoqu = xiaoqu;
}
/**
*
*/
public String getXiaoqu() {
return xiaoqu;
}
/**
*
*/
public void setYuezujiage(String yuezujiage) {
this.yuezujiage = yuezujiage;
}
/**
*
*/
public String getYuezujiage() {
return yuezujiage;
}
/**
*
*/
public void setZuyongyueshu(String zuyongyueshu) {
this.zuyongyueshu = zuyongyueshu;
}
/**
*
*/
public String getZuyongyueshu() {
return zuyongyueshu;
}
/**
*
*/
public void setZuyongjine(Integer zuyongjine) {
this.zuyongjine = zuyongjine;
}
/**
*
*/
public Integer getZuyongjine() {
return zuyongjine;
}
/**
*
*/
public void setYajin(Integer yajin) {
this.yajin = yajin;
}
/**
*
*/
public Integer getYajin() {
return yajin;
}
/**
*
*/
public void setFangzuzhuangtai(String fangzuzhuangtai) {
this.fangzuzhuangtai = fangzuzhuangtai;
}
/**
*
*/
public String getFangzuzhuangtai() {
return fangzuzhuangtai;
}
/**
*
*/
public void setHetongjine(String hetongjine) {
this.hetongjine = hetongjine;
}
/**
*
*/
public String getHetongjine() {
return hetongjine;
}
/**
*
*/
public void setHetongneirong(String hetongneirong) {
this.hetongneirong = hetongneirong;
}
/**
*
*/
public String getHetongneirong() {
return hetongneirong;
}
/**
*
*/
public void setShengxiaori(Date shengxiaori) {
this.shengxiaori = shengxiaori;
}
/**
*
*/
public Date getShengxiaori() {
return shengxiaori;
}
/**
*
*/
public void setYouxianqizhi(Date youxianqizhi) {
this.youxianqizhi = youxianqizhi;
}
/**
*
*/
public Date getYouxianqizhi() {
return youxianqizhi;
}
/**
*
*/
public void setYonghuming(String yonghuming) {
this.yonghuming = yonghuming;
}
/**
*
*/
public String getYonghuming() {
return yonghuming;
}
/**
*
*/
public void setLianxidianhua(String lianxidianhua) {
this.lianxidianhua = lianxidianhua;
}
/**
*
*/
public String getLianxidianhua() {
return lianxidianhua;
}
/**
*
*/
public void setFangzhuzhanghao(String fangzhuzhanghao) {
this.fangzhuzhanghao = fangzhuzhanghao;
}
/**
*
*/
public String getFangzhuzhanghao() {
return fangzhuzhanghao;
}
/**
*
*/
public void setFangzhuxingming(String fangzhuxingming) {
this.fangzhuxingming = fangzhuxingming;
}
/**
*
*/
public String getFangzhuxingming() {
return fangzhuxingming;
}
/**
*
*/
public void setSfsh(String sfsh) {
this.sfsh = sfsh;
}
/**
*
*/
public String getSfsh() {
return sfsh;
}
/**
*
*/
public void setShhf(String shhf) {
this.shhf = shhf;
}
/**
*
*/
public String getShhf() {
return shhf;
}
/**
*
*/
public void setIspay(String ispay) {
this.ispay = ispay;
}
/**
*
*/
public String getIspay() {
return ispay;
}
}

@ -0,0 +1,90 @@
package com.entity.vo;
import com.entity.MessagesEntity;
import com.baomidou.mybatisplus.annotations.TableName;
import java.util.Date;
import org.springframework.format.annotation.DateTimeFormat;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serializable;
/**
*
*
*
* @author
* @email
*/
public class MessagesVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
*
*/
private String username;
/**
*
*/
private String content;
/**
*
*/
private String reply;
/**
*
*/
public void setUsername(String username) {
this.username = username;
}
/**
*
*/
public String getUsername() {
return username;
}
/**
*
*/
public void setContent(String content) {
this.content = content;
}
/**
*
*/
public String getContent() {
return content;
}
/**
*
*/
public void setReply(String reply) {
this.reply = reply;
}
/**
*
*/
public String getReply() {
return reply;
}
}

@ -0,0 +1,90 @@
package com.entity.vo;
import com.entity.NewsEntity;
import com.baomidou.mybatisplus.annotations.TableName;
import java.util.Date;
import org.springframework.format.annotation.DateTimeFormat;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serializable;
/**
*
*
*
* @author
* @email
*/
public class NewsVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
*
*/
private String introduction;
/**
*
*/
private String picture;
/**
*
*/
private String content;
/**
*
*/
public void setIntroduction(String introduction) {
this.introduction = introduction;
}
/**
*
*/
public String getIntroduction() {
return introduction;
}
/**
*
*/
public void setPicture(String picture) {
this.picture = picture;
}
/**
*
*/
public String getPicture() {
return picture;
}
/**
*
*/
public void setContent(String content) {
this.content = content;
}
/**
*
*/
public String getContent() {
return content;
}
}

@ -1,14 +1,11 @@
package com.entity;
package com.entity.vo;
import com.entity.WoyaodangfangzhuEntity;
import com.baomidou.mybatisplus.annotations.TableName;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serializable;
import java.util.Date;
/**
*
@ -17,7 +14,7 @@ import java.io.Serializable;
* @author
* @email
*/
public class WoyaodangfangzhuVO implements Serializable {
public class WoyaodangfangzhuVO implements Serializable {
private static final long serialVersionUID = 1L;

@ -15,8 +15,7 @@ import com.entity.view.DiscussfangwuxinxiView;
*
*
* @author
* @email
* @date 2021-03-04 18:46:21
* @email
*/
public interface DiscussfangwuxinxiService extends IService<DiscussfangwuxinxiEntity> {

@ -15,8 +15,7 @@ import com.entity.view.DiscusswoyaodangfangzhuView;
*
*
* @author
* @email
* @date 2021-03-04 18:46:21
* @email
*/
public interface DiscusswoyaodangfangzhuService extends IService<DiscusswoyaodangfangzhuEntity> {

@ -15,8 +15,7 @@ import com.entity.view.FangwubaoxiuView;
*
*
* @author
* @email
* @date 2021-03-04 18:46:21
* @email
*/
public interface FangwubaoxiuService extends IService<FangwubaoxiuEntity> {

@ -15,8 +15,7 @@ import com.entity.view.FangwuleixingView;
*
*
* @author
* @email
* @date 2021-03-04 18:46:21
* @email
*/
public interface FangwuleixingService extends IService<FangwuleixingEntity> {

@ -15,8 +15,7 @@ import com.entity.view.FangwupingjiaView;
*
*
* @author
* @email
* @date 2021-03-04 18:46:21
* @email
*/
public interface FangwupingjiaService extends IService<FangwupingjiaEntity> {

@ -15,8 +15,7 @@ import com.entity.view.FangwuxinxiView;
*
*
* @author
* @email
* @date 2021-03-04 18:46:21
* @email
*/
public interface FangwuxinxiService extends IService<FangwuxinxiEntity> {

@ -16,8 +16,7 @@ import java.util.Map;
*
*
* @author
* @email
* @date 2021-03-04 18:46:21
* @email
*/
public interface FangzhuService extends IService<FangzhuEntity> {

@ -0,0 +1,36 @@
package com.service;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.service.IService;
import com.entity.HetongxinxiEntity;
import com.entity.view.HetongxinxiView;
import com.entity.vo.HetongxinxiVO;
import com.utils.PageUtils;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
*
*
* @author
* @email
*/
public interface HetongxinxiService extends IService<HetongxinxiEntity> {
PageUtils queryPage(Map<String, Object> params);
List<HetongxinxiVO> selectListVO(Wrapper<HetongxinxiEntity> wrapper);
HetongxinxiVO selectVO(@Param("ew") Wrapper<HetongxinxiEntity> wrapper);
List<HetongxinxiView> selectListView(Wrapper<HetongxinxiEntity> wrapper);
HetongxinxiView selectView(@Param("ew") Wrapper<HetongxinxiEntity> wrapper);
PageUtils queryPage(Map<String, Object> params,Wrapper<HetongxinxiEntity> wrapper);
}

@ -15,8 +15,7 @@ import com.entity.view.MessagesView;
*
*
* @author
* @email
* @date 2021-03-04 18:46:21
* @email
*/
public interface MessagesService extends IService<MessagesEntity> {

@ -15,8 +15,7 @@ import com.entity.view.NewsView;
*
*
* @author
* @email
* @date 2021-03-04 18:46:21
* @email
*/
public interface NewsService extends IService<NewsEntity> {

@ -15,8 +15,7 @@ import com.entity.view.StoreupView;
*
*
* @author
* @email
* @date 2021-03-04 18:46:21
* @email
*/
public interface StoreupService extends IService<StoreupEntity> {

@ -15,8 +15,7 @@ import com.entity.view.WeixiuchuliView;
*
*
* @author
* @email
* @date 2021-03-04 18:46:21
* @email
*/
public interface WeixiuchuliService extends IService<WeixiuchuliEntity> {

@ -15,8 +15,7 @@ import com.entity.view.WoyaodangfangzhuView;
*
*
* @author
* @email
* @date 2021-03-04 18:46:21
* @email
*/
public interface WoyaodangfangzhuService extends IService<WoyaodangfangzhuEntity> {

@ -16,8 +16,7 @@ import java.util.Map;
*
*
* @author
* @email
* @date 2021-03-04 18:46:21
* @email
*/
public interface YuyuekanfangService extends IService<YuyuekanfangEntity> {

@ -0,0 +1,60 @@
package com.service.impl;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.dao.HetongxinxiDao;
import com.entity.HetongxinxiEntity;
import com.entity.view.HetongxinxiView;
import com.entity.vo.HetongxinxiVO;
import com.service.HetongxinxiService;
import com.utils.PageUtils;
import com.utils.Query;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
@Service("hetongxinxiService")
public class HetongxinxiServiceImpl extends ServiceImpl<HetongxinxiDao, HetongxinxiEntity> implements HetongxinxiService {
@Override
public PageUtils queryPage(Map<String, Object> params) {
Page<HetongxinxiEntity> page = this.selectPage(
new Query<HetongxinxiEntity>(params).getPage(),
new EntityWrapper<HetongxinxiEntity>()
);
return new PageUtils(page);
}
@Override
public PageUtils queryPage(Map<String, Object> params, Wrapper<HetongxinxiEntity> wrapper) {
Page<HetongxinxiView> page =new Query<HetongxinxiView>(params).getPage();
page.setRecords(baseMapper.selectListView(page,wrapper));
PageUtils pageUtil = new PageUtils(page);
return pageUtil;
}
@Override
public List<HetongxinxiVO> selectListVO(Wrapper<HetongxinxiEntity> wrapper) {
return baseMapper.selectListVO(wrapper);
}
@Override
public HetongxinxiVO selectVO(Wrapper<HetongxinxiEntity> wrapper) {
return baseMapper.selectVO(wrapper);
}
@Override
public List<HetongxinxiView> selectListView(Wrapper<HetongxinxiEntity> wrapper) {
return baseMapper.selectListView(wrapper);
}
@Override
public HetongxinxiView selectView(Wrapper<HetongxinxiEntity> wrapper) {
return baseMapper.selectView(wrapper);
}
}

@ -0,0 +1,43 @@
<template>
<svg :class="svgClass" aria-hidden="true" v-on="$listeners">
<use :xlink:href="iconName" />
</svg>
</template>
<script>
export default {
name: 'SvgIcon',
props: {
iconClass: {
type: String,
required: true
},
className: {
type: String,
default: ''
}
},
computed: {
iconName() {
return `#icon-${this.iconClass}`
},
svgClass() {
if (this.className) {
return 'svg-icon ' + this.className
} else {
return 'svg-icon'
}
}
}
}
</script>
<style scoped>
.svg-icon {
width: 1em;
height: 1em;
vertical-align: -0.15em;
fill: currentColor;
overflow: hidden;
}
</style>

@ -0,0 +1,109 @@
<template>
<el-breadcrumb class="app-breadcrumb" separator="(●'◡'●)" style="height:50px;backgroundColor:rgba(79, 73, 73, 1);borderRadius:0px;padding:0px 20px 0px 20px;boxShadow:;borderWidth:2px;borderStyle:;borderColor:rgba(193, 180, 180, 0.5);">
<transition-group name="breadcrumb" class="box" :style="1==1?'justifyContent:flex-start;':1==2?'justifyContent:center;':'justifyContent:flex-end;'">
<el-breadcrumb-item v-for="(item,index) in levelList" :key="item.path">
<span v-if="item.redirect==='noRedirect'||index==levelList.length-1" class="no-redirect">{{ item.name }}</span>
<a v-else @click.prevent="handleLink(item)">{{ item.name }}</a>
</el-breadcrumb-item>
</transition-group>
</el-breadcrumb>
</template>
<script>
import pathToRegexp from 'path-to-regexp'
import { generateTitle } from '@/utils/i18n'
export default {
data() {
return {
levelList: null
}
},
watch: {
$route() {
this.getBreadcrumb()
}
},
created() {
this.getBreadcrumb()
this.breadcrumbStyleChange()
},
methods: {
generateTitle,
getBreadcrumb() {
// only show routes with meta.title
let route = this.$route
let matched = route.matched.filter(item => item.meta)
const first = matched[0]
matched = [{ path: '/index' }].concat(matched)
this.levelList = matched.filter(item => item.meta)
},
isDashboard(route) {
const name = route && route.name
if (!name) {
return false
}
return name.trim().toLocaleLowerCase() === 'Index'.toLocaleLowerCase()
},
pathCompile(path) {
// To solve this problem https://github.com/PanJiaChen/vue-element-admin/issues/561
const { params } = this.$route
var toPath = pathToRegexp.compile(path)
return toPath(params)
},
handleLink(item) {
const { redirect, path } = item
if (redirect) {
this.$router.push(redirect)
return
}
this.$router.push(path)
},
breadcrumbStyleChange(val) {
this.$nextTick(()=>{
document.querySelectorAll('.app-breadcrumb .el-breadcrumb__separator').forEach(el=>{
el.innerText = "(●'◡'●)"
el.style.color = "rgba(235, 90, 170, 1)"
})
document.querySelectorAll('.app-breadcrumb .el-breadcrumb__inner a').forEach(el=>{
el.style.color = "rgba(196, 212, 244, 1)"
})
document.querySelectorAll('.app-breadcrumb .el-breadcrumb__inner .no-redirect').forEach(el=>{
el.style.color = "rgba(244, 149, 32, 1)"
})
let str = "vertical"
if("vertical" === str) {
let headHeight = "60px"
headHeight = parseInt(headHeight) + 10 + 'px'
document.querySelectorAll('.app-breadcrumb').forEach(el=>{
el.style.marginTop = headHeight
})
}
})
},
}
}
</script>
<style lang="scss" scoped>
.app-breadcrumb {
display: block;
font-size: 14px;
line-height: 50px;
.box {
display: flex;
width: 100%;
height: 100%;
justify-content: flex-start;
align-items: center;
}
.no-redirect {
color: #97a8be;
cursor: text;
}
}
</style>

@ -0,0 +1,77 @@
<template>
<el-breadcrumb class="app-breadcrumb" separator="/">
<transition-group name="breadcrumb">
<el-breadcrumb-item v-for="(item,index) in levelList" :key="item.path">
<span v-if="item.redirect==='noRedirect'||index==levelList.length-1" class="no-redirect">{{ item.name }}</span>
<a v-else @click.prevent="handleLink(item)">{{ item.name }}</a>
</el-breadcrumb-item>
</transition-group>
</el-breadcrumb>
</template>
<script>
import pathToRegexp from 'path-to-regexp'
import { generateTitle } from '@/utils/i18n'
export default {
data() {
return {
levelList: null
}
},
watch: {
$route() {
this.getBreadcrumb()
}
},
created() {
this.getBreadcrumb()
},
methods: {
generateTitle,
getBreadcrumb() {
// only show routes with meta.title
console.log(this.$route)
let matched = this.$route.matched.filter(item => item.meta)
const first = matched[0]
matched = [{ path: '/index' }].concat(matched)
this.levelList = matched.filter(item => item.meta)
},
isDashboard(route) {
const name = route && route.name
if (!name) {
return false
}
return name.trim().toLocaleLowerCase() === 'Index'.toLocaleLowerCase()
},
pathCompile(path) {
// To solve this problem https://github.com/PanJiaChen/vue-element-admin/issues/561
const { params } = this.$route
var toPath = pathToRegexp.compile(path)
return toPath(params)
},
handleLink(item) {
const { redirect, path } = item
if (redirect) {
this.$router.push(redirect)
return
}
this.$router.push(path)
}
}
}
</script>
<style lang="scss" scoped>
.app-breadcrumb.el-breadcrumb {
display: inline-block;
font-size: 14px;
line-height: 50px;
margin-left: 8px;
.no-redirect {
color: #97a8be;
cursor: text;
}
}
</style>

@ -0,0 +1,238 @@
<template>
<div>
<!-- 图片上传组件辅助-->
<el-upload
class="avatar-uploader"
:action="getActionUrl"
name="file"
:headers="header"
:show-file-list="false"
:on-success="uploadSuccess"
:on-error="uploadError"
:before-upload="beforeUpload"
></el-upload>
<quill-editor
class="editor"
v-model="value"
ref="myQuillEditor"
:options="editorOption"
@blur="onEditorBlur($event)"
@focus="onEditorFocus($event)"
@change="onEditorChange($event)"
></quill-editor>
</div>
</template>
<script>
//
const toolbarOptions = [
["bold", "italic", "underline", "strike"], // 线 线
["blockquote", "code-block"], //
[{ header: 1 }, { header: 2 }], // 12
[{ list: "ordered" }, { list: "bullet" }], //
[{ script: "sub" }, { script: "super" }], // /
[{ indent: "-1" }, { indent: "+1" }], //
// [{'direction': 'rtl'}], //
[{ size: ["small", false, "large", "huge"] }], //
[{ header: [1, 2, 3, 4, 5, 6, false] }], //
[{ color: [] }, { background: [] }], //
[{ font: [] }], //
[{ align: [] }], //
["clean"], //
["link", "image", "video"] //
];
import { quillEditor } from "vue-quill-editor";
import "quill/dist/quill.core.css";
import "quill/dist/quill.snow.css";
import "quill/dist/quill.bubble.css";
export default {
props: {
/*编辑器的内容*/
value: {
type: String
},
action: {
type: String
},
/*图片大小*/
maxSize: {
type: Number,
default: 4000 //kb
}
},
components: {
quillEditor
},
data() {
return {
content: this.value,
quillUpdateImg: false, // loadingfalse,
editorOption: {
placeholder: "",
theme: "snow", // or 'bubble'
modules: {
toolbar: {
container: toolbarOptions,
// container: "#toolbar",
handlers: {
image: function(value) {
if (value) {
// input
document.querySelector(".avatar-uploader input").click();
} else {
this.quill.format("image", false);
}
}
// link: function(value) {
// if (value) {
// var href = prompt('url');
// this.quill.format("link", href);
// } else {
// this.quill.format("link", false);
// }
// },
}
}
}
},
// serverUrl: `${base.url}sys/storage/uploadSwiper?token=${storage.get('token')}`, //
header: {
// token: sessionStorage.token
'Token': this.$storage.get("Token")
} // token
};
},
computed: {
// getter
getActionUrl: function() {
// return this.$base.url + this.action + "?token=" + this.$storage.get("token");
return `/${this.$base.name}/` + this.action;
}
},
methods: {
onEditorBlur() {
//
},
onEditorFocus() {
//
},
onEditorChange() {
console.log(this.value);
//
this.$emit("input", this.value);
},
//
beforeUpload() {
// loading
this.quillUpdateImg = true;
},
uploadSuccess(res, file) {
// res
//
let quill = this.$refs.myQuillEditor.quill;
//
if (res.code === 0) {
//
let length = quill.getSelection().index;
// res.url
quill.insertEmbed(length, "image", this.$base.url+ "upload/" +res.file);
//
quill.setSelection(length + 1);
} else {
this.$message.error("图片插入失败");
}
// loading
this.quillUpdateImg = false;
},
//
uploadError() {
// loading
this.quillUpdateImg = false;
this.$message.error("图片插入失败");
}
}
};
</script>
<style>
.editor {
line-height: normal !important;
height: 400px;
}
.ql-snow .ql-tooltip[data-mode="link"]::before {
content: "请输入链接地址:";
}
.ql-snow .ql-tooltip.ql-editing a.ql-action::after {
border-right: 0px;
content: "保存";
padding-right: 0px;
}
.ql-snow .ql-tooltip[data-mode="video"]::before {
content: "请输入视频地址:";
}
.ql-snow .ql-picker.ql-size .ql-picker-label::before,
.ql-snow .ql-picker.ql-size .ql-picker-item::before {
content: "14px";
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="small"]::before,
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="small"]::before {
content: "10px";
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="large"]::before,
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="large"]::before {
content: "18px";
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="huge"]::before,
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="huge"]::before {
content: "32px";
}
.ql-snow .ql-picker.ql-header .ql-picker-label::before,
.ql-snow .ql-picker.ql-header .ql-picker-item::before {
content: "文本";
}
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]::before,
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]::before {
content: "标题1";
}
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]::before,
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]::before {
content: "标题2";
}
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]::before,
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]::before {
content: "标题3";
}
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]::before,
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]::before {
content: "标题4";
}
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]::before,
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]::before {
content: "标题5";
}
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]::before,
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]::before {
content: "标题6";
}
.ql-snow .ql-picker.ql-font .ql-picker-label::before,
.ql-snow .ql-picker.ql-font .ql-picker-item::before {
content: "标准字体";
}
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value="serif"]::before,
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value="serif"]::before {
content: "衬线字体";
}
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value="monospace"]::before,
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value="monospace"]::before {
content: "等宽字体";
}
</style>

@ -0,0 +1,137 @@
<template>
<div>
<!-- 上传文件组件 -->
<el-upload
ref="upload"
:action="getActionUrl"
list-type="picture-card"
:multiple="multiple"
:limit="limit"
:headers="myHeaders"
:file-list="fileList"
:on-exceed="handleExceed"
:on-preview="handleUploadPreview"
:on-remove="handleRemove"
:on-success="handleUploadSuccess"
:on-error="handleUploadErr"
:before-upload="handleBeforeUpload"
>
<i class="el-icon-plus"></i>
<div slot="tip" class="el-upload__tip" style="color:#838fa1;">{{tip}}</div>
</el-upload>
<el-dialog :visible.sync="dialogVisible" size="tiny" append-to-body>
<img width="100%" :src="dialogImageUrl" alt>
</el-dialog>
</div>
</template>
<script>
import storage from "@/utils/storage";
import base from "@/utils/base";
export default {
data() {
return {
//
dialogVisible: false,
//
dialogImageUrl: "",
//
fileList: [],
fileUrlList: [],
myHeaders:{}
};
},
props: ["tip", "action", "limit", "multiple", "fileUrls"],
mounted() {
this.init();
this.myHeaders= {
'Token':storage.get("Token")
}
},
watch: {
fileUrls: function(val, oldVal) {
// console.log("new: %s, old: %s", val, oldVal);
this.init();
}
},
computed: {
// getter
getActionUrl: function() {
// return base.url + this.action + "?token=" + storage.get("token");
return `/${this.$base.name}/` + this.action;
}
},
methods: {
//
init() {
// console.log(this.fileUrls);
if (this.fileUrls) {
this.fileUrlList = this.fileUrls.split(",");
let fileArray = [];
this.fileUrlList.forEach(function(item, index) {
var url = item;
var name = index;
var file = {
name: name,
url: url
};
fileArray.push(file);
});
this.setFileList(fileArray);
}
},
handleBeforeUpload(file) {
},
//
handleUploadSuccess(res, file, fileList) {
if (res && res.code === 0) {
fileList[fileList.length - 1]["url"] =
this.$base.url + "upload/" + file.response.file;
this.setFileList(fileList);
this.$emit("change", this.fileUrlList.join(","));
} else {
this.$message.error(res.msg);
}
},
//
handleUploadErr(err, file, fileList) {
this.$message.error("文件上传失败");
},
//
handleRemove(file, fileList) {
this.setFileList(fileList);
this.$emit("change", this.fileUrlList.join(","));
},
//
handleUploadPreview(file) {
this.dialogImageUrl = file.url;
this.dialogVisible = true;
},
//
handleExceed(files, fileList) {
this.$message.warning(`最多上传${this.limit}张图片`);
},
// fileList
setFileList(fileList) {
var fileArray = [];
var fileUrlArray = [];
// token
var token = storage.get("token");
fileList.forEach(function(item, index) {
var url = item.url.split("?")[0];
var name = item.name;
var file = {
name: name,
url: url + "?token=" + token
};
fileArray.push(file);
fileUrlArray.push(url);
});
this.fileList = fileArray;
this.fileUrlList = fileUrlArray;
}
}
};
</script>
<style lang="scss" scoped>
</style>

@ -0,0 +1,60 @@
<template>
<el-card class="box-card">
<div slot="header" class="header">
<span>{{title}}</span>
<span>
<el-tag size="small" :type="titleTag">{{titleUnit}}</el-tag>
</span>
</div>
<div class="content">
{{content}}&nbsp;&nbsp;
<span class="unit">{{contentUnit}}</span>
</div>
<div class="bottom">
<span>{{bottomTitle}}</span>
<span>
{{bottomContent}}
<i :class="bottomIcon"></i>
</span>
</div>
</el-card>
</template>
<script>
export default {
props: [
"title",
"titleTag",
"titleUnit",
"content",
"contentUnit",
"bottomTitle",
"bottomContent",
"bottomIcon"
]
};
</script>
<style lang="scss" scoped>
.box-card {
margin-right: 10px;
.header {
display: flex;
justify-content: space-between;
align-items: center;
}
.content {
font-size: 30px;
font-weight: bold;
color: #666;
text-align: center;
.unit {
font-size: 16px;
}
}
.bottom {
display: flex;
justify-content: space-between;
align-items: center;
margin-top: 10px;
}
}
</style>

@ -0,0 +1,126 @@
<template>
<div id="home-chart" style="width:100%;height:400px;"></div>
</template>
<script>
export default {
mounted() {
this.homeChart();
},
methods: {
homeChart() {
// domecharts
var myChart = this.$echarts.init(document.getElementById("home-chart"));
//
var option = {
tooltip: {
trigger: "axis"
},
legend: {
data: ["访问量", "用户量", "收入"]
},
grid: {
left: "3%",
right: "4%",
bottom: "3%",
containLabel: true
},
xAxis: {
type: "category",
boundaryGap: false,
data: [
"1月",
"2月",
"3月",
"4月",
"5月",
"6月",
"7月",
"8月",
"9月",
"10月",
"11月",
"12月"
]
},
yAxis: {
type: "value"
},
series: [
{
name: "访问量",
type: "line",
stack: "总量",
data: [
120,
132,
101,
134,
90,
230,
210,
120,
132,
101,
134,
90,
230
]
},
{
name: "用户量",
type: "line",
stack: "总量",
data: [
220,
182,
191,
234,
290,
330,
310,
182,
191,
234,
290,
330,
310
]
},
{
name: "收入",
type: "line",
stack: "总量",
data: [
150,
232,
201,
154,
190,
330,
410,
232,
201,
154,
190,
330,
410
]
}
]
};
// // 使
myChart.setOption(option);
//
window.onresize = function() {
myChart.resize();
};
}
}
};
</script>
<style lang="scss" scoped>
#home-chart {
background: #ffffff;
padding: 20px 0;
}
</style>

@ -0,0 +1,101 @@
<template>
<div class="home-comment">
<div class="title">用户留言</div>
<div class="comment-list">
<div v-for="(item,index) in list" v-bind:key="index" class="comment-item">
<div class="user-content">
<el-image
class="avator"
:src="item.avator"
></el-image>
<span class="user">{{item.name}}</span>
</div>
<div class="comment">{{item.content}}</div>
<div class="create-time">{{item.createTime}}</div>
</div>
</div>
</div>
</template>
<script>
export default {
data() {
return {
list: [
{
name: "MaskLin",
avator:
"https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg",
content:
"你以为只要长得漂亮就有男生喜欢?你以为只要有了钱漂亮妹子就自己贴上来了?你以为学霸就能找到好工作?我告诉你吧,这些都是真的!",
createTime: "5月02日 00:00"
},
{
name: "MaskLin",
avator:
"https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg",
content: "作者太帅了",
createTime: "5月04日 00:00"
},
{
name: "MaskLin",
avator:
"https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg",
content: "作者太帅了",
createTime: "5月04日 00:00"
},
{
name: "MaskLin",
avator: "https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg",
content: "作者太帅了",
createTime: "5月04日 00:00"
}
]
};
}
};
</script>
<style lang="scss" scoped>
.home-comment {
background: #ffffff;
.title {
font-size: 18px;
color: #666;
font-weight: bold;
padding: 10px;
border-bottom: 1px solid #eeeeee;
}
.comment-list {
padding: 10px;
.comment-item {
padding: 10px;
border-bottom: 1px solid #eeeeee;
.user-content {
display: flex;
align-items: center;
.user {
font-size: 18px;
color: #666;
font-weight: bold;
line-height: 50px;
margin-left: 10px;
}
.avator {
width: 50px;
height: 50px;
border-radius: 50%;
}
}
.comment {
margin-top: 10px;
font-size: 14px;
color: #888888;
}
.create-time {
margin-top: 15px;
font-size: 14px;
color: #888888;
}
}
}
}
</style>

@ -0,0 +1,55 @@
<template>
<div class="home-progress">
<div class="title">月访问量</div>
<div class="tip">同上期增长</div>
<el-progress
class="progress"
:text-inside="true"
:stroke-width="24"
:percentage="20"
status="success"
></el-progress>
<div class="title">月用户量</div>
<div class="tip">同上期增长</div>
<el-progress
class="progress"
:text-inside="true"
:stroke-width="24"
:percentage="50"
status="success"
></el-progress>
<div class="title">月收入</div>
<div class="tip">同上期减少</div>
<el-progress
class="progress"
:text-inside="true"
:stroke-width="24"
:percentage="28"
status="exception"
></el-progress>
</div>
</template>
<script>
export default {};
</script>
<style lang="scss">
.home-progress {
background: #ffffff;
height: 400px;
padding: 20px;
.title {
color: #666666;
font-weight: bold;
font-size: 20px;
margin-top: 10px;
}
.tip {
color: #888888;
font-size: 16px;
margin-top: 10px;
}
.progress {
margin-top: 10px;
}
}
</style>

@ -0,0 +1,56 @@
<template>
<el-aside class="index-aside" width="200px">
<div class="index-aside-inner">
<el-menu default-active="1">
<el-menu-item @click="menuHandler('/')" index="1">
<!-- <i class="el-icon-s-home"></i> -->
首页
</el-menu-item>
<sub-menu
v-for="menu in menuList"
:key="menu.menuId"
:menu="menu"
:dynamicMenuRoutes="dynamicMenuRoutes"
></sub-menu>
</el-menu>
</div>
</el-aside>
</template>
<script>
import SubMenu from "@/components/index/IndexAsideSub";
export default {
data() {
return {
menuList: [],
dynamicMenuRoutes: []
};
},
components: {
SubMenu
},
mounted() {
//
this.menuList = JSON.parse(sessionStorage.getItem("menuList") || "[]");
this.dynamicMenuRoutes = JSON.parse(
sessionStorage.getItem("dynamicMenuRoutes") || "[]"
);
},
methods: {
menuHandler(path) {
this.$router.push({ path: path });
}
}
};
</script>
<style lang="scss" scoped>
.index-aside {
margin-top: 80px;
overflow: hidden;
.index-aside-inner {
width: 217px;
height: 100%;
overflow-y: scroll;
}
}
</style>

@ -0,0 +1,240 @@
<template>
<el-aside class="index-aside" height="100vh" width="210px">
<div class="index-aside-inner menulist" style="height:100%">
<div v-for="item in menuList" :key="item.roleName" v-if="role==item.roleName" class="menulist-item" style="height:100%;broder:0;background-color:#988181">
<div class="menulistImg" style="backgroundColor:#ff0000;padding:25px 0" v-if="false && menulistStyle == 'vertical'">
<el-image v-if="'http://codegen.caihongy.cn/20201021/cc7d45d9c8164b58b18351764eba9be1.jpg'" src="http://codegen.caihongy.cn/20201021/cc7d45d9c8164b58b18351764eba9be1.jpg" fit="cover" />
</div>
<el-menu mode="vertical" :unique-opened="true" class="el-menu-demo" style="height:100%;" background-color="#988181" text-color="#111010" active-text-color="#99EFED" default-active="0">
<el-menu-item index="0" :style="menulistBorderBottom" @click="menuHandler('')"><i v-if="true" class="el-icon-s-home" />首页</el-menu-item>
<el-submenu :index="1+''" :style="menulistBorderBottom">
<template slot="title">
<i v-if="true" class="el-icon-user-solid" />
<span>个人中心</span>
</template>
<el-menu-item :index="1-1" @click="menuHandler('updatePassword')"></el-menu-item>
<el-menu-item :index="1-2" @click="menuHandler('center')"></el-menu-item>
</el-submenu>
<el-submenu :style="menulistBorderBottom" v-for=" (menu,index) in item.backMenu" :key="menu.menu" :index="index+2+''">
<template slot="title">
<i v-if="true" :class="icons[index]" />
<span>{{ menu.menu }}</span>
</template>
<el-menu-item v-for=" (child,sort) in menu.child" :key="sort" :index="(index+2)+'-'+sort" @click="menuHandler(child.tableName)">{{ child.menu }}</el-menu-item>
</el-submenu>
</el-menu>
</div>
</div>
</el-aside>
</template>
<script>
import menu from '@/utils/menu'
export default {
data() {
return {
menuList: [],
dynamicMenuRoutes: [],
role: '',
icons: [
'el-icon-s-cooperation',
'el-icon-s-order',
'el-icon-s-platform',
'el-icon-s-fold',
'el-icon-s-unfold',
'el-icon-s-operation',
'el-icon-s-promotion',
'el-icon-s-release',
'el-icon-s-ticket',
'el-icon-s-management',
'el-icon-s-open',
'el-icon-s-shop',
'el-icon-s-marketing',
'el-icon-s-flag',
'el-icon-s-comment',
'el-icon-s-finance',
'el-icon-s-claim',
'el-icon-s-custom',
'el-icon-s-opportunity',
'el-icon-s-data',
'el-icon-s-check',
'el-icon-s-grid',
'el-icon-menu',
'el-icon-chat-dot-square',
'el-icon-message',
'el-icon-postcard',
'el-icon-position',
'el-icon-microphone',
'el-icon-close-notification',
'el-icon-bangzhu',
'el-icon-time',
'el-icon-odometer',
'el-icon-crop',
'el-icon-aim',
'el-icon-switch-button',
'el-icon-full-screen',
'el-icon-copy-document',
'el-icon-mic',
'el-icon-stopwatch',
],
menulistStyle: 'vertical',
menulistBorderBottom: {},
}
},
mounted() {
const menus = menu.list()
this.menuList = menus
this.role = this.$storage.get('role')
},
created(){
setTimeout(()=>{
this.menulistStyleChange()
},10)
this.icons.sort(()=>{
return (0.5-Math.random())
})
this.lineBorder()
},
methods: {
lineBorder() {
let style = 'vertical'
let w = '1px'
let s = 'solid'
let c = '#ccc'
if(style == 'vertical') {
this.menulistBorderBottom = {
borderBottomWidth: w,
borderBottomStyle: s,
borderBottomColor: c
}
} else {
this.menulistBorderBottom = {
borderRightWidth: w,
borderRightStyle: s,
borderRightColor: c
}
}
},
menuHandler(name) {
let router = this.$router
name = '/'+name
router.push(name)
},
//
setMenulistHoverColor(){
let that = this
this.$nextTick(()=>{
document.querySelectorAll('.menulist .el-menu-item').forEach(el=>{
el.addEventListener("mouseenter", e => {
e.stopPropagation()
el.style.backgroundColor = "rgba(238, 221, 129, 1)"
})
el.addEventListener("mouseleave", e => {
e.stopPropagation()
el.style.backgroundColor = "#988181"
})
el.addEventListener("focus", e => {
e.stopPropagation()
el.style.backgroundColor = "rgba(238, 221, 129, 1)"
})
})
document.querySelectorAll('.menulist .el-submenu__title').forEach(el=>{
el.addEventListener("mouseenter", e => {
e.stopPropagation()
el.style.backgroundColor = "rgba(238, 221, 129, 1)"
})
el.addEventListener("mouseleave", e => {
e.stopPropagation()
el.style.backgroundColor = "#988181"
})
})
})
},
setMenulistIconColor() {
this.$nextTick(()=>{
document.querySelectorAll('.menulist .el-submenu__title .el-submenu__icon-arrow').forEach(el=>{
el.style.color = "rgba(153, 153, 153, 1)"
})
})
},
menulistStyleChange() {
this.setMenulistIconColor()
this.setMenulistHoverColor()
this.setMenulistStyleHeightChange()
let str = "vertical"
if("horizontal" === str) {
this.$nextTick(()=>{
document.querySelectorAll('.el-container .el-container').forEach(el=>{
el.style.display = "block"
el.style.paddingTop = "60px" // header
})
document.querySelectorAll('.el-aside').forEach(el=>{
el.style.width = "100%"
el.style.height = "62px"
el.style.paddingTop = '0'
})
document.querySelectorAll('.index-aside .index-aside-inner').forEach(el=>{
el.style.paddingTop = '0'
})
})
}
if("vertical" === str) {
this.$nextTick(()=>{
document.querySelectorAll('.index-aside .index-aside-inner').forEach(el=>{
el.style.paddingTop = "60px"
})
})
}
},
setMenulistStyleHeightChange() {
this.$nextTick(()=>{
document.querySelectorAll('.menulist-item>.el-menu--horizontal>.el-menu-item').forEach(el=>{
el.style.height = "62px"
el.style.lineHeight = "62px"
})
document.querySelectorAll('.menulist-item>.el-menu--horizontal>.el-submenu>.el-submenu__title').forEach(el=>{
el.style.height = "62px"
el.style.lineHeight = "62px"
})
})
},
}
}
</script>
<style lang="scss" scoped>
.index-aside {
position: relative;
overflow: hidden;
.menulistImg {
padding: 24px 0;
box-sizing: border-box;
.el-image {
margin: 0 auto;
width: 100px;
height: 100px;
border-radius: 100%;
display: block;
}
}
.index-aside-inner {
height: 100%;
margin-right: -17px;
margin-bottom: -17px;
overflow: scroll;
overflow-x: hidden !important;
padding-top: 60px;
box-sizing: border-box;
&:focus {
outline: none;
}
.el-menu {
border: 0;
}
}
}
</style>

@ -0,0 +1,76 @@
<template>
<el-aside class="index-aside" width="200px">
<div class="index-aside-inner">
<div v-for="item in menuList" v-bind:key="item.roleName">
<el-menu
background-color="#263238"
text-color="#fff"
active-text-color="#ffd04b"
default-active="0"
v-if="role==item.roleName"
>
<el-menu-item @click="menuHandler('home')" index="0">首页</el-menu-item>
<el-submenu
:index="1+''"
>
<template slot="title">
<span>个人中心</span>
</template>
<el-menu-item
@click="menuHandler('updatePassword')"
:index="1-1"
>修改密码</el-menu-item>
<el-menu-item
@click="menuHandler('center')"
:index="1-2"
>个人信息</el-menu-item>
</el-submenu>
<el-submenu
v-for=" (menu,index) in item.backMenu"
v-bind:key="menu.menu"
:index="index+2+''"
>
<template slot="title">
<span>{{menu.menu}}</span>
</template>
<el-menu-item
v-for=" (child,sort) in menu.child"
v-bind:key="sort"
@click="menuHandler(child.tableName)"
:index="(index+2)+'-'+sort"
>{{child.menu}}</el-menu-item>
</el-submenu>
</el-menu>
</div>
</div>
</el-aside>
</template>
<script>
import menu from "@/utils/menu";
export default {
data() {
return {
menuList: [],
dynamicMenuRoutes: [],
role: ""
};
},
mounted() {
let menus = menu.list();
this.menuList = menus;
this.role = this.$storage.get("role");
console.log(this.menuList)
console.log(this.role)
},
methods: {
menuHandler(name) {
this.$router.push({
name: name
});
}
}
};
</script>
<style lang="scss" scoped>
</style>

@ -0,0 +1,51 @@
<template>
<el-submenu v-if="menu.list && menu.list.length >= 1" :index="menu.menuId + ''">
<template slot="title">
<span>{{ menu.name }}</span>
</template>
<sub-menu
v-for="item in menu.list"
:key="item.menuId"
:menu="item"
:dynamicMenuRoutes="dynamicMenuRoutes"
></sub-menu>
</el-submenu>
<el-menu-item v-else :index="menu.menuId + ''" @click="gotoRouteHandle(menu)">
<span>{{ menu.name }}</span>
</el-menu-item>
</template>
<script>
import SubMenu from "./IndexAsideSub";
export default {
name: "sub-menu",
props: {
menu: {
type: Object,
required: true
},
dynamicMenuRoutes: {
type: Array,
required: true
}
},
components: {
SubMenu
},
methods: {
// menuId()
gotoRouteHandle(menu) {
var route = this.dynamicMenuRoutes.filter(
item => item.meta.menuId === menu.menuId
);
if (route.length >= 1) {
if (route[0].component != null) {
this.$router.replace({ name: route[0].name });
} else {
this.$router.push({ name: "404" });
}
}
}
}
};
</script>

@ -0,0 +1,183 @@
<template>
<!-- <el-header>
<el-menu background-color="#00c292" text-color="#FFFFFF" active-text-color="#FFFFFF" mode="horizontal">
<div class="fl title">{{this.$project.projectName}}</div>
<div class="fr logout" style="display:flex;">
<el-menu-item index="3">
<div>{{this.$storage.get('role')}} {{this.$storage.get('adminName')}}</div>
</el-menu-item>
<el-menu-item @click="onLogout" index="2">
<div>退出登录</div>
</el-menu-item>
</div>
</el-menu>
</el-header> -->
<div class="navbar" :style="{backgroundColor:heads.headBgColor,height:heads.headHeight,boxShadow:heads.headBoxShadow,lineHeight:heads.headHeight}">
<div class="title-menu" :style="{justifyContent:heads.headTitleStyle=='1'?'flex-start':'center'}">
<el-image v-if="heads.headTitleImg" class="title-img" :style="{width:heads.headTitleImgWidth,height:heads.headTitleImgHeight,boxShadow:heads.headTitleImgBoxShadow,borderRadius:heads.headTitleImgBorderRadius}" :src="heads.headTitleImgUrl" fit="cover"></el-image>
<div class="title-name" :style="{color:heads.headFontColor,fontSize:heads.headFontSize}">{{this.$project.projectName}}</div>
</div>
<div class="right-menu">
<div class="user-info" :style="{color:heads.headUserInfoFontColor,fontSize:heads.headUserInfoFontSize}">{{this.$storage.get('role')}} {{this.$storage.get('adminName')}}</div>
<div class="logout" :style="{color:heads.headLogoutFontColor,fontSize:heads.headLogoutFontSize}" @click="onLogout">退</div>
</div>
</div>
</template>
<script>
export default {
data() {
return {
dialogVisible: false,
ruleForm: {},
user: {},
heads: {"headLogoutFontHoverColor":"rgba(41, 42, 42, 1)","headFontSize":"20px","headUserInfoFontColor":"rgba(238, 221, 129, 1)","headBoxShadow":"0 1px 6px #444","headTitleImgHeight":"44px","headLogoutFontHoverBgColor":"rgba(247, 142, 142, 1)","headFontColor":"rgba(153, 239, 237, 1)","headTitleImg":false,"headHeight":"60px","headTitleImgBorderRadius":"22px","headTitleImgUrl":"http://codegen.caihongy.cn/20201021/cc7d45d9c8164b58b18351764eba9be1.jpg","headBgColor":"#4F4949","headTitleImgBoxShadow":"0 1px 6px #444","headLogoutFontColor":"rgba(153, 239, 237, 1)","headUserInfoFontSize":"16px","headTitleImgWidth":"44px","headTitleStyle":"2","headLogoutFontSize":"16px"},
};
},
created() {
this.setHeaderStyle()
},
mounted() {
let sessionTable = this.$storage.get("sessionTable")
this.$http({
url: sessionTable + '/session',
method: "get"
}).then(({
data
}) => {
if (data && data.code === 0) {
this.user = data.data;
} else {
let message = this.$message
message.error(data.msg);
}
});
},
methods: {
onLogout() {
let storage = this.$storage
let router = this.$router
storage.remove("Token");
router.replace({
name: "login"
});
},
onIndexTap(){
window.location.href = `${this.$base.indexUrl}`
},
setHeaderStyle() {
this.$nextTick(()=>{
document.querySelectorAll('.navbar .right-menu .logout').forEach(el=>{
el.addEventListener("mouseenter", e => {
e.stopPropagation()
el.style.backgroundColor = this.heads.headLogoutFontHoverBgColor
el.style.color = this.heads.headLogoutFontHoverColor
})
el.addEventListener("mouseleave", e => {
e.stopPropagation()
el.style.backgroundColor = "transparent"
el.style.color = this.heads.headLogoutFontColor
})
})
})
},
}
};
</script>
<style lang="scss" scoped>
.navbar {
height: 60px;
line-height: 60px;
width: 100%;
padding: 0 34px;
box-sizing: border-box;
background-color: #ff00ff;
position: relative;
z-index: 111;
.right-menu {
position: absolute;
right: 34px;
top: 0;
height: 100%;
display: flex;
justify-content: flex-end;
align-items: center;
z-index: 111;
.user-info {
font-size: 16px;
color: red;
padding: 0 12px;
}
.logout {
font-size: 16px;
color: red;
padding: 0 12px;
cursor: pointer;
}
}
.title-menu {
display: flex;
justify-content: flex-start;
align-items: center;
width: 100%;
height: 100%;
.title-img {
width: 44px;
height: 44px;
border-radius: 22px;
box-shadow: 0 1px 6px #444;
margin-right: 16px;
}
.title-name {
font-size: 24px;
color: #fff;
font-weight: 700;
}
}
}
// .el-header .fr {
// float: right;
// }
// .el-header .fl {
// float: left;
// }
// .el-header {
// width: 100%;
// color: #333;
// text-align: center;
// line-height: 60px;
// padding: 0;
// z-index: 99;
// }
// .logo {
// width: 60px;
// height: 60px;
// margin-left: 70px;
// }
// .avator {
// width: 40px;
// height: 40px;
// background: #ffffff;
// border-radius: 50%;
// }
// .title {
// color: #ffffff;
// font-size: 20px;
// font-weight: bold;
// margin-left: 20px;
// }
</style>

@ -0,0 +1,89 @@
<template>
<el-header>
<el-menu background-color="#00c292" text-color="#FFFFFF" active-text-color="#FFFFFF" mode="horizontal">
<div class="fl title">{{this.$project.projectName}}</div>
<div class="fr logout" style="display:flex;">
<el-menu-item index="3">
<div>{{this.$storage.get('role')}} {{this.$storage.get('adminName')}}</div>
</el-menu-item>
<el-menu-item @click="onLogout" index="2">
<div>退出登录</div>
</el-menu-item>
</div>
</el-menu>
</el-header>
</template>
<script>
export default {
data() {
return {
dialogVisible: false,
ruleForm: {},
user: {}
};
},
mounted() {
this.$http({
url: `${this.$storage.get("sessionTable")}/session`,
method: "get"
}).then(({
data
}) => {
if (data && data.code === 0) {
this.user = data.data;
} else {
this.$message.error(data.msg);
}
});
},
methods: {
onLogout() {
this.$storage.remove("Token");
this.$router.replace({
name: "login"
});
}
}
};
</script>
<style lang="scss" scoped>
.el-header .fr {
float: right;
}
.el-header .fl {
float: left;
}
.el-header {
width: 100%;
color: #333;
text-align: center;
line-height: 60px;
padding: 0;
z-index: 99;
}
.logo {
width: 60px;
height: 60px;
margin-left: 70px;
}
.avator {
width: 40px;
height: 40px;
background: #ffffff;
border-radius: 50%;
}
.title {
color: #ffffff;
font-size: 20px;
font-weight: bold;
margin-left: 20px;
}
</style>

@ -0,0 +1,124 @@
<template>
<el-main>
<bread-crumbs :title="title" class="bread-crumbs"></bread-crumbs>
<router-view class="router-view"></router-view>
</el-main>
</template>
<script>
import menu from "@/utils/menu";
export default {
data() {
return {
menuList: [],
role: "",
currentIndex: -2,
itemMenu: [],
title: ''
};
},
mounted() {
let menus = menu.list();
this.menuList = menus;
this.role = this.$storage.get("role");
},
methods: {
menuHandler(menu) {
this.$router.push({
name: menu.tableName
});
this.title = menu.menu;
},
titleChange(index, menus) {
this.currentIndex = index
this.itemMenu = menus;
console.log(menus);
},
homeChange(index) {
this.itemMenu = [];
this.title = ""
this.currentIndex = index
this.$router.push({
name: 'home'
});
},
centerChange(index) {
this.itemMenu = [{
"buttons": ["新增", "查看", "修改", "删除"],
"menu": "修改密码",
"tableName": "updatePassword"
}, {
"buttons": ["新增", "查看", "修改", "删除"],
"menu": "个人信息",
"tableName": "center"
}];
this.title = ""
this.currentIndex = index
this.$router.push({
name: 'home'
});
}
}
};
</script>
<style lang="scss" scoped>
a {
text-decoration: none;
color: #555;
}
a:hover {
background: #00c292;
}
.nav-list {
width: 100%;
margin: 0 auto;
text-align: left;
margin-top: 20px;
.nav-title {
display: inline-block;
font-size: 15px;
color: #333;
padding: 15px 25px;
border: none;
}
.nav-title.active {
color: #555;
cursor: default;
background-color: #fff;
}
}
.nav-item {
margin-top: 20px;
background: #FFFFFF;
padding: 15px 0;
.menu {
padding: 15px 25px;
}
}
.el-main {
background-color: #F6F8FA;
padding: 0 24px;
// padding-top: 60px;
}
.router-view {
padding: 10px;
margin-top: 10px;
background: #FFFFFF;
box-sizing: border-box;
}
.bread-crumbs {
width: 100%;
// border-bottom: 1px solid #e9eef3;
// border-top: 1px solid #e9eef3;
margin-top: 10px;
box-sizing: border-box;
}
</style>

@ -0,0 +1,533 @@
<template>
<div class="addEdit-block">
<el-form
class="detail-form-content"
ref="ruleForm"
:model="ruleForm"
:rules="rules"
label-width="80px"
:style="{backgroundColor:addEditForm.addEditBoxColor}"
>
<el-row>
<el-col :span="12">
<el-form-item class="input" v-if="type!='info'" label="房主账号" prop="fangzhuzhanghao">
<el-input v-model="ruleForm.fangzhuzhanghao"
placeholder="房主账号" clearable :readonly="ro.fangzhuzhanghao"></el-input>
</el-form-item>
<div v-else>
<el-form-item class="input" label="房主账号" prop="fangzhuzhanghao">
<el-input v-model="ruleForm.fangzhuzhanghao"
placeholder="房主账号" readonly></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="12">
<el-form-item class="input" v-if="type!='info'" label="密码" prop="mima">
<el-input v-model="ruleForm.mima"
placeholder="密码" clearable :readonly="ro.mima"></el-input>
</el-form-item>
<div v-else>
<el-form-item class="input" label="密码" prop="mima">
<el-input v-model="ruleForm.mima"
placeholder="密码" readonly></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="12">
<el-form-item class="input" v-if="type!='info'" label="房主姓名" prop="fangzhuxingming">
<el-input v-model="ruleForm.fangzhuxingming"
placeholder="房主姓名" clearable :readonly="ro.fangzhuxingming"></el-input>
</el-form-item>
<div v-else>
<el-form-item class="input" label="房主姓名" prop="fangzhuxingming">
<el-input v-model="ruleForm.fangzhuxingming"
placeholder="房主姓名" readonly></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="12">
<el-form-item class="select" v-if="type!='info'" label="性别" prop="xingbie">
<el-select v-model="ruleForm.xingbie" placeholder="请选择性别">
<el-option
v-for="(item,index) in xingbieOptions"
v-bind:key="index"
:label="item"
:value="item">
</el-option>
</el-select>
</el-form-item>
<div v-else>
<el-form-item class="input" label="性别" prop="xingbie">
<el-input v-model="ruleForm.xingbie"
placeholder="性别" readonly></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="24">
<el-form-item class="upload" v-if="type!='info' && !ro.touxiang" label="头像" prop="touxiang">
<file-upload
tip="点击上传头像"
action="file/upload"
:limit="3"
:multiple="true"
:fileUrls="ruleForm.touxiang?ruleForm.touxiang:''"
@change="touxiangUploadChange"
></file-upload>
</el-form-item>
<div v-else>
<el-form-item v-if="ruleForm.touxiang" label="头像" prop="touxiang">
<img style="margin-right:20px;" v-bind:key="index" v-for="(item,index) in ruleForm.touxiang.split(',')" :src="item" width="100" height="100">
</el-form-item>
</div>
</el-col>
<el-col :span="12">
<el-form-item class="input" v-if="type!='info'" label="手机" prop="shouji">
<el-input v-model="ruleForm.shouji"
placeholder="手机" clearable :readonly="ro.shouji"></el-input>
</el-form-item>
<div v-else>
<el-form-item class="input" label="手机" prop="shouji">
<el-input v-model="ruleForm.shouji"
placeholder="手机" readonly></el-input>
</el-form-item>
</div>
</el-col>
<el-col :span="12">
<el-form-item class="input" v-if="type!='info'" label="身份证" prop="shenfenzheng">
<el-input v-model="ruleForm.shenfenzheng"
placeholder="身份证" clearable :readonly="ro.shenfenzheng"></el-input>
</el-form-item>
<div v-else>
<el-form-item class="input" label="身份证" prop="shenfenzheng">
<el-input v-model="ruleForm.shenfenzheng"
placeholder="身份证" readonly></el-input>
</el-form-item>
</div>
</el-col>
</el-row>
<el-form-item class="btn">
<el-button v-if="type!='info'" type="primary" class="btn-success" @click="onSubmit"></el-button>
<el-button v-if="type!='info'" class="btn-close" @click="back()"></el-button>
<el-button v-if="type=='info'" class="btn-close" @click="back()"></el-button>
</el-form-item>
</el-form>
</div>
</template>
<script>
// url
import { isNumber,isIntNumer,isEmail,isPhone, isMobile,isURL,checkIdCard } from "@/utils/validate";
export default {
data() {
let self = this
var validateIdCard = (rule, value, callback) => {
if(!value){
callback();
} else if (!checkIdCard(value)) {
callback(new Error("请输入正确的身份证号码"));
} else {
callback();
}
};
var validateUrl = (rule, value, callback) => {
if(!value){
callback();
} else if (!isURL(value)) {
callback(new Error("请输入正确的URL地址"));
} else {
callback();
}
};
var validateMobile = (rule, value, callback) => {
if(!value){
callback();
} else if (!isMobile(value)) {
callback(new Error("请输入正确的手机号码"));
} else {
callback();
}
};
var validatePhone = (rule, value, callback) => {
if(!value){
callback();
} else if (!isPhone(value)) {
callback(new Error("请输入正确的电话号码"));
} else {
callback();
}
};
var validateEmail = (rule, value, callback) => {
if(!value){
callback();
} else if (!isEmail(value)) {
callback(new Error("请输入正确的邮箱地址"));
} else {
callback();
}
};
var validateNumber = (rule, value, callback) => {
if(!value){
callback();
} else if (!isNumber(value)) {
callback(new Error("请输入数字"));
} else {
callback();
}
};
var validateIntNumber = (rule, value, callback) => {
if(!value){
callback();
} else if (!isIntNumer(value)) {
callback(new Error("请输入整数"));
} else {
callback();
}
};
return {
addEditForm: {"btnSaveFontColor":"#fff","selectFontSize":"14px","btnCancelBorderColor":"rgba(152, 129, 129, 1)","inputBorderRadius":"22px","inputFontSize":"14px","textareaBgColor":"#fff","btnSaveFontSize":"14px","textareaBorderRadius":"22px","uploadBgColor":"#fff","textareaBorderStyle":"solid","btnCancelWidth":"88px","textareaHeight":"120px","dateBgColor":"#fff","btnSaveBorderRadius":"22px","uploadLableFontSize":"14px","textareaBorderWidth":"1px","inputLableColor":"#606266","addEditBoxColor":"rgba(210, 194, 194, 0.29)","dateIconFontSize":"14px","btnSaveBgColor":"#409EFF","uploadIconFontColor":"#8c939d","textareaBorderColor":"rgba(152, 129, 129, 1)","btnCancelBgColor":"rgba(143, 222, 143, 1)","selectLableColor":"#606266","btnSaveBorderStyle":"solid","dateBorderWidth":"1px","dateLableFontSize":"14px","dateBorderRadius":"22px","btnCancelBorderStyle":"solid","selectLableFontSize":"14px","selectBorderStyle":"solid","selectIconFontColor":"#C0C4CC","btnCancelHeight":"44px","inputHeight":"40px","btnCancelFontColor":"#606266","dateBorderColor":"rgba(152, 129, 129, 1)","dateIconFontColor":"#C0C4CC","uploadBorderStyle":"solid","dateBorderStyle":"solid","dateLableColor":"#606266","dateFontSize":"14px","inputBorderWidth":"1px","uploadIconFontSize":"28px","selectHeight":"40px","inputFontColor":"#606266","uploadHeight":"148px","textareaLableColor":"#606266","textareaLableFontSize":"14px","btnCancelFontSize":"14px","inputBorderStyle":"solid","btnCancelBorderRadius":"22px","inputBgColor":"rgba(252, 250, 250, 1)","inputLableFontSize":"14px","uploadLableColor":"#606266","uploadBorderRadius":"22px","btnSaveHeight":"44px","selectBgColor":"#fff","btnSaveWidth":"88px","selectIconFontSize":"14px","dateHeight":"40px","selectBorderColor":"rgba(152, 129, 129, 1)","inputBorderColor":"rgba(152, 129, 129, 1)","uploadBorderColor":"rgba(152, 129, 129, 1)","textareaFontColor":"#606266","selectBorderWidth":"1px","dateFontColor":"#606266","btnCancelBorderWidth":"1px","uploadBorderWidth":"1px","textareaFontSize":"14px","selectBorderRadius":"22px","selectFontColor":"#606266","btnSaveBorderColor":"#409EFF","btnSaveBorderWidth":"1px"},
id: '',
type: '',
ro:{
fangzhuzhanghao : false,
mima : false,
fangzhuxingming : false,
xingbie : false,
touxiang : false,
shouji : false,
shenfenzheng : false,
},
ruleForm: {
fangzhuzhanghao: '',
mima: '',
fangzhuxingming: '',
xingbie: '',
touxiang: '',
shouji: '',
shenfenzheng: '',
},
xingbieOptions: [],
rules: {
fangzhuzhanghao: [
{ required: true, message: '房主账号不能为空', trigger: 'blur' },
],
mima: [
{ required: true, message: '密码不能为空', trigger: 'blur' },
],
fangzhuxingming: [
{ required: true, message: '房主姓名不能为空', trigger: 'blur' },
],
xingbie: [
],
touxiang: [
],
shouji: [
{ validator: validateMobile, trigger: 'blur' },
],
shenfenzheng: [
{ validator: validateIdCard, trigger: 'blur' },
],
}
};
},
props: ["parent"],
computed: {
},
created() {
this.addEditStyleChange()
this.addEditUploadStyleChange()
},
methods: {
//
download(file){
window.open(`${file}`)
},
//
init(id,type) {
if (id) {
this.id = id;
this.type = type;
}
if(this.type=='info'||this.type=='else'){
this.info(id);
}else if(this.type=='cross'){
var obj = this.$storage.getObj('crossObj');
for (var o in obj){
if(o=='fangzhuzhanghao'){
this.ruleForm.fangzhuzhanghao = obj[o];
this.ro.fangzhuzhanghao = true;
continue;
}
if(o=='mima'){
this.ruleForm.mima = obj[o];
this.ro.mima = true;
continue;
}
if(o=='fangzhuxingming'){
this.ruleForm.fangzhuxingming = obj[o];
this.ro.fangzhuxingming = true;
continue;
}
if(o=='xingbie'){
this.ruleForm.xingbie = obj[o];
this.ro.xingbie = true;
continue;
}
if(o=='touxiang'){
this.ruleForm.touxiang = obj[o];
this.ro.touxiang = true;
continue;
}
if(o=='shouji'){
this.ruleForm.shouji = obj[o];
this.ro.shouji = true;
continue;
}
if(o=='shenfenzheng'){
this.ruleForm.shenfenzheng = obj[o];
this.ro.shenfenzheng = true;
continue;
}
}
}
//
this.$http({
url: `${this.$storage.get('sessionTable')}/session`,
method: "get"
}).then(({ data }) => {
if (data && data.code === 0) {
var json = data.data;
} else {
this.$message.error(data.msg);
}
});
this.xingbieOptions = "男,女".split(',')
},
//
info(id) {
this.$http({
url: `fangzhu/info/${id}`,
method: "get"
}).then(({ data }) => {
if (data && data.code === 0) {
this.ruleForm = data.data;
} else {
this.$message.error(data.msg);
}
});
},
//
onSubmit() {
// ${column.compare}
// ${column.compare}
// ${column.compare}
// ${column.compare}
// ${column.compare}
// ${column.compare}
// ${column.compare}
this.$refs["ruleForm"].validate(valid => {
if (valid) {
this.$http({
url: `fangzhu/${!this.ruleForm.id ? "save" : "update"}`,
method: "post",
data: this.ruleForm
}).then(({ data }) => {
if (data && data.code === 0) {
this.$message({
message: "操作成功",
type: "success",
duration: 1500,
onClose: () => {
this.parent.showFlag = true;
this.parent.addOrUpdateFlag = false;
this.parent.fangzhuCrossAddOrUpdateFlag = false;
this.parent.search();
this.parent.contentStyleChange();
}
});
} else {
this.$message.error(data.msg);
}
});
}
});
},
// uuid
getUUID () {
return new Date().getTime();
},
//
back() {
this.parent.showFlag = true;
this.parent.addOrUpdateFlag = false;
this.parent.fangzhuCrossAddOrUpdateFlag = false;
this.parent.contentStyleChange();
},
touxiangUploadChange(fileUrls) {
this.ruleForm.touxiang = fileUrls;
this.addEditUploadStyleChange()
},
addEditStyleChange() {
this.$nextTick(()=>{
// input
document.querySelectorAll('.addEdit-block .input .el-input__inner').forEach(el=>{
el.style.height = this.addEditForm.inputHeight
el.style.color = this.addEditForm.inputFontColor
el.style.fontSize = this.addEditForm.inputFontSize
el.style.borderWidth = this.addEditForm.inputBorderWidth
el.style.borderStyle = this.addEditForm.inputBorderStyle
el.style.borderColor = this.addEditForm.inputBorderColor
el.style.borderRadius = this.addEditForm.inputBorderRadius
el.style.backgroundColor = this.addEditForm.inputBgColor
})
document.querySelectorAll('.addEdit-block .input .el-form-item__label').forEach(el=>{
el.style.lineHeight = this.addEditForm.inputHeight
el.style.color = this.addEditForm.inputLableColor
el.style.fontSize = this.addEditForm.inputLableFontSize
})
// select
document.querySelectorAll('.addEdit-block .select .el-input__inner').forEach(el=>{
el.style.height = this.addEditForm.selectHeight
el.style.color = this.addEditForm.selectFontColor
el.style.fontSize = this.addEditForm.selectFontSize
el.style.borderWidth = this.addEditForm.selectBorderWidth
el.style.borderStyle = this.addEditForm.selectBorderStyle
el.style.borderColor = this.addEditForm.selectBorderColor
el.style.borderRadius = this.addEditForm.selectBorderRadius
el.style.backgroundColor = this.addEditForm.selectBgColor
})
document.querySelectorAll('.addEdit-block .select .el-form-item__label').forEach(el=>{
el.style.lineHeight = this.addEditForm.selectHeight
el.style.color = this.addEditForm.selectLableColor
el.style.fontSize = this.addEditForm.selectLableFontSize
})
document.querySelectorAll('.addEdit-block .select .el-select__caret').forEach(el=>{
el.style.color = this.addEditForm.selectIconFontColor
el.style.fontSize = this.addEditForm.selectIconFontSize
})
// date
document.querySelectorAll('.addEdit-block .date .el-input__inner').forEach(el=>{
el.style.height = this.addEditForm.dateHeight
el.style.color = this.addEditForm.dateFontColor
el.style.fontSize = this.addEditForm.dateFontSize
el.style.borderWidth = this.addEditForm.dateBorderWidth
el.style.borderStyle = this.addEditForm.dateBorderStyle
el.style.borderColor = this.addEditForm.dateBorderColor
el.style.borderRadius = this.addEditForm.dateBorderRadius
el.style.backgroundColor = this.addEditForm.dateBgColor
})
document.querySelectorAll('.addEdit-block .date .el-form-item__label').forEach(el=>{
el.style.lineHeight = this.addEditForm.dateHeight
el.style.color = this.addEditForm.dateLableColor
el.style.fontSize = this.addEditForm.dateLableFontSize
})
document.querySelectorAll('.addEdit-block .date .el-input__icon').forEach(el=>{
el.style.color = this.addEditForm.dateIconFontColor
el.style.fontSize = this.addEditForm.dateIconFontSize
el.style.lineHeight = this.addEditForm.dateHeight
})
// upload
let iconLineHeight = parseInt(this.addEditForm.uploadHeight) - parseInt(this.addEditForm.uploadBorderWidth) * 2 + 'px'
document.querySelectorAll('.addEdit-block .upload .el-upload--picture-card').forEach(el=>{
el.style.width = this.addEditForm.uploadHeight
el.style.height = this.addEditForm.uploadHeight
el.style.borderWidth = this.addEditForm.uploadBorderWidth
el.style.borderStyle = this.addEditForm.uploadBorderStyle
el.style.borderColor = this.addEditForm.uploadBorderColor
el.style.borderRadius = this.addEditForm.uploadBorderRadius
el.style.backgroundColor = this.addEditForm.uploadBgColor
})
document.querySelectorAll('.addEdit-block .upload .el-form-item__label').forEach(el=>{
el.style.lineHeight = this.addEditForm.uploadHeight
el.style.color = this.addEditForm.uploadLableColor
el.style.fontSize = this.addEditForm.uploadLableFontSize
})
document.querySelectorAll('.addEdit-block .upload .el-icon-plus').forEach(el=>{
el.style.color = this.addEditForm.uploadIconFontColor
el.style.fontSize = this.addEditForm.uploadIconFontSize
el.style.lineHeight = iconLineHeight
el.style.display = 'block'
})
//
document.querySelectorAll('.addEdit-block .textarea .el-textarea__inner').forEach(el=>{
el.style.height = this.addEditForm.textareaHeight
el.style.color = this.addEditForm.textareaFontColor
el.style.fontSize = this.addEditForm.textareaFontSize
el.style.borderWidth = this.addEditForm.textareaBorderWidth
el.style.borderStyle = this.addEditForm.textareaBorderStyle
el.style.borderColor = this.addEditForm.textareaBorderColor
el.style.borderRadius = this.addEditForm.textareaBorderRadius
el.style.backgroundColor = this.addEditForm.textareaBgColor
})
document.querySelectorAll('.addEdit-block .textarea .el-form-item__label').forEach(el=>{
// el.style.lineHeight = this.addEditForm.textareaHeight
el.style.color = this.addEditForm.textareaLableColor
el.style.fontSize = this.addEditForm.textareaLableFontSize
})
//
document.querySelectorAll('.addEdit-block .btn .btn-success').forEach(el=>{
el.style.width = this.addEditForm.btnSaveWidth
el.style.height = this.addEditForm.btnSaveHeight
el.style.color = this.addEditForm.btnSaveFontColor
el.style.fontSize = this.addEditForm.btnSaveFontSize
el.style.borderWidth = this.addEditForm.btnSaveBorderWidth
el.style.borderStyle = this.addEditForm.btnSaveBorderStyle
el.style.borderColor = this.addEditForm.btnSaveBorderColor
el.style.borderRadius = this.addEditForm.btnSaveBorderRadius
el.style.backgroundColor = this.addEditForm.btnSaveBgColor
})
//
document.querySelectorAll('.addEdit-block .btn .btn-close').forEach(el=>{
el.style.width = this.addEditForm.btnCancelWidth
el.style.height = this.addEditForm.btnCancelHeight
el.style.color = this.addEditForm.btnCancelFontColor
el.style.fontSize = this.addEditForm.btnCancelFontSize
el.style.borderWidth = this.addEditForm.btnCancelBorderWidth
el.style.borderStyle = this.addEditForm.btnCancelBorderStyle
el.style.borderColor = this.addEditForm.btnCancelBorderColor
el.style.borderRadius = this.addEditForm.btnCancelBorderRadius
el.style.backgroundColor = this.addEditForm.btnCancelBgColor
})
})
},
addEditUploadStyleChange() {
this.$nextTick(()=>{
document.querySelectorAll('.addEdit-block .upload .el-upload-list--picture-card .el-upload-list__item').forEach(el=>{
el.style.width = this.addEditForm.uploadHeight
el.style.height = this.addEditForm.uploadHeight
el.style.borderWidth = this.addEditForm.uploadBorderWidth
el.style.borderStyle = this.addEditForm.uploadBorderStyle
el.style.borderColor = this.addEditForm.uploadBorderColor
el.style.borderRadius = this.addEditForm.uploadBorderRadius
el.style.backgroundColor = this.addEditForm.uploadBgColor
})
})
},
}
};
</script>
<style lang="scss">
.editor{
height: 500px;
& /deep/ .ql-container {
height: 310px;
}
}
.amap-wrapper {
width: 100%;
height: 500px;
}
.search-box {
position: absolute;
}
.addEdit-block {
margin: -10px;
}
.detail-form-content {
padding: 12px;
}
.btn .el-button {
padding: 0;
}
</style>

@ -0,0 +1,569 @@
<template>
<div class="main-content">
<!-- 列表页 -->
<div v-if="showFlag">
<el-form :inline="true" :model="searchForm" class="form-content">
<el-row :gutter="20" class="slt" :style="{justifyContent:contents.searchBoxPosition=='1'?'flex-start':contents.searchBoxPosition=='2'?'center':'flex-end'}">
<el-form-item :label="contents.inputTitle == 1 ? '房主账号' : ''">
<el-input v-if="contents.inputIcon == 1 && contents.inputIconPosition == 1" prefix-icon="el-icon-search" v-model="searchForm.fangzhuzhanghao" placeholder="房主账号" clearable></el-input>
<el-input v-if="contents.inputIcon == 1 && contents.inputIconPosition == 2" suffix-icon="el-icon-search" v-model="searchForm.fangzhuzhanghao" placeholder="房主账号" clearable></el-input>
<el-input v-if="contents.inputIcon == 0" v-model="searchForm.fangzhuzhanghao" placeholder="房主账号" clearable></el-input>
</el-form-item>
<el-form-item :label="contents.inputTitle == 1 ? '房主姓名' : ''">
<el-input v-if="contents.inputIcon == 1 && contents.inputIconPosition == 1" prefix-icon="el-icon-search" v-model="searchForm.fangzhuxingming" placeholder="房主姓名" clearable></el-input>
<el-input v-if="contents.inputIcon == 1 && contents.inputIconPosition == 2" suffix-icon="el-icon-search" v-model="searchForm.fangzhuxingming" placeholder="房主姓名" clearable></el-input>
<el-input v-if="contents.inputIcon == 0" v-model="searchForm.fangzhuxingming" placeholder="房主姓名" clearable></el-input>
</el-form-item>
<el-form-item>
<el-button v-if="contents.searchBtnIcon == 1 && contents.searchBtnIconPosition == 1" icon="el-icon-search" type="success" @click="search()">{{ contents.searchBtnFont == 1?'':'' }}</el-button>
<el-button v-if="contents.searchBtnIcon == 1 && contents.searchBtnIconPosition == 2" type="success" @click="search()">{{ contents.searchBtnFont == 1?'':'' }}<i class="el-icon-search el-icon--right"/></el-button>
<el-button v-if="contents.searchBtnIcon == 0" type="success" @click="search()">{{ contents.searchBtnFont == 1?'':'' }}</el-button>
</el-form-item>
</el-row>
<el-row class="ad" :style="{justifyContent:contents.btnAdAllBoxPosition=='1'?'flex-start':contents.btnAdAllBoxPosition=='2'?'center':'flex-end'}">
<el-form-item>
<el-button
v-if="isAuth('fangzhu','新增') && contents.btnAdAllIcon == 1 && contents.btnAdAllIconPosition == 1"
type="success"
icon="el-icon-plus"
@click="addOrUpdateHandler()"
>{{ contents.btnAdAllFont == 1?'新增':'' }}</el-button>
<el-button
v-if="isAuth('fangzhu','新增') && contents.btnAdAllIcon == 1 && contents.btnAdAllIconPosition == 2"
type="success"
@click="addOrUpdateHandler()"
>{{ contents.btnAdAllFont == 1?'新增':'' }}<i class="el-icon-plus el-icon--right" /></el-button>
<el-button
v-if="isAuth('fangzhu','新增') && contents.btnAdAllIcon == 0"
type="success"
@click="addOrUpdateHandler()"
>{{ contents.btnAdAllFont == 1?'新增':'' }}</el-button>
<el-button
v-if="isAuth('fangzhu','删除') && contents.btnAdAllIcon == 1 && contents.btnAdAllIconPosition == 1 && contents.tableSelection"
:disabled="dataListSelections.length <= 0"
type="danger"
icon="el-icon-delete"
@click="deleteHandler()"
>{{ contents.btnAdAllFont == 1?'删除':'' }}</el-button>
<el-button
v-if="isAuth('fangzhu','删除') && contents.btnAdAllIcon == 1 && contents.btnAdAllIconPosition == 2 && contents.tableSelection"
:disabled="dataListSelections.length <= 0"
type="danger"
@click="deleteHandler()"
>{{ contents.btnAdAllFont == 1?'删除':'' }}<i class="el-icon-delete el-icon--right" /></el-button>
<el-button
v-if="isAuth('fangzhu','删除') && contents.btnAdAllIcon == 0 && contents.tableSelection"
:disabled="dataListSelections.length <= 0"
type="danger"
@click="deleteHandler()"
>{{ contents.btnAdAllFont == 1?'删除':'' }}</el-button>
</el-form-item>
</el-row>
</el-form>
<div class="table-content">
<el-table class="tables" :size="contents.tableSize" :show-header="contents.tableShowHeader"
:header-row-style="headerRowStyle" :header-cell-style="headerCellStyle"
:border="contents.tableBorder"
:fit="contents.tableFit"
:stripe="contents.tableStripe"
:row-style="rowStyle"
:cell-style="cellStyle"
:style="{width: '100%',fontSize:contents.tableContentFontSize,color:contents.tableContentFontColor}"
v-if="isAuth('fangzhu','查看')"
:data="dataList"
v-loading="dataListLoading"
@selection-change="selectionChangeHandler">
<el-table-column v-if="contents.tableSelection"
type="selection"
header-align="center"
align="center"
width="50">
</el-table-column>
<el-table-column label="索引" v-if="contents.tableIndex" type="index" width="50" />
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="fangzhuzhanghao"
header-align="center"
label="房主账号">
<template slot-scope="scope">
{{scope.row.fangzhuzhanghao}}
</template>
</el-table-column>
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="mima"
header-align="center"
label="密码">
<template slot-scope="scope">
{{scope.row.mima}}
</template>
</el-table-column>
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="fangzhuxingming"
header-align="center"
label="房主姓名">
<template slot-scope="scope">
{{scope.row.fangzhuxingming}}
</template>
</el-table-column>
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="xingbie"
header-align="center"
label="性别">
<template slot-scope="scope">
{{scope.row.xingbie}}
</template>
</el-table-column>
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign" prop="touxiang"
header-align="center"
width="200"
label="头像">
<template slot-scope="scope">
<div v-if="scope.row.touxiang">
<img :src="scope.row.touxiang.split(',')[0]" width="100" height="100">
</div>
<div v-else></div>
</template>
</el-table-column>
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="shouji"
header-align="center"
label="手机">
<template slot-scope="scope">
{{scope.row.shouji}}
</template>
</el-table-column>
<el-table-column :sortable="contents.tableSortable" :align="contents.tableAlign"
prop="shenfenzheng"
header-align="center"
label="身份证">
<template slot-scope="scope">
{{scope.row.shenfenzheng}}
</template>
</el-table-column>
<el-table-column width="300" :align="contents.tableAlign"
header-align="center"
label="操作">
<template slot-scope="scope">
<el-button v-if="isAuth('fangzhu','修改') && contents.tableBtnIcon == 1 && contents.tableBtnIconPosition == 1" type="primary" icon="el-icon-edit" size="mini" @click="addOrUpdateHandler(scope.row.id)">{{ contents.tableBtnFont == 1?'':'' }}</el-button>
<el-button v-if="isAuth('fangzhu','修改') && contents.tableBtnIcon == 1 && contents.tableBtnIconPosition == 2" type="primary" size="mini" @click="addOrUpdateHandler(scope.row.id)">{{ contents.tableBtnFont == 1?'':'' }}<i class="el-icon-edit el-icon--right" /></el-button>
<el-button v-if="isAuth('fangzhu','修改') && contents.tableBtnIcon == 0" type="primary" size="mini" @click="addOrUpdateHandler(scope.row.id)">{{ contents.tableBtnFont == 1?'':'' }}</el-button>
<el-button v-if="isAuth('fangzhu','删除') && contents.tableBtnIcon == 1 && contents.tableBtnIconPosition == 1" type="danger" icon="el-icon-delete" size="mini" @click="deleteHandler(scope.row.id)">{{ contents.tableBtnFont == 1?'':'' }}</el-button>
<el-button v-if="isAuth('fangzhu','删除') && contents.tableBtnIcon == 1 && contents.tableBtnIconPosition == 2" type="danger" size="mini" @click="deleteHandler(scope.row.id)">{{ contents.tableBtnFont == 1?'':'' }}<i class="el-icon-delete el-icon--right" /></el-button>
<el-button v-if="isAuth('fangzhu','删除') && contents.tableBtnIcon == 0" type="danger" size="mini" @click="deleteHandler(scope.row.id)">{{ contents.tableBtnFont == 1?'':'' }}</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
clsss="pages"
:layout="layouts"
@size-change="sizeChangeHandle"
@current-change="currentChangeHandle"
:current-page="pageIndex"
:page-sizes="[10, 20, 50, 100]"
:page-size="Number(contents.pageEachNum)"
:total="totalPage"
:small="contents.pageStyle"
class="pagination-content"
:background="contents.pageBtnBG"
:style="{textAlign:contents.pagePosition==1?'left':contents.pagePosition==2?'center':'right'}"
></el-pagination>
</div>
</div>
<!-- 添加/修改页面 将父组件的search方法传递给子组件-->
<add-or-update v-if="addOrUpdateFlag" :parent="this" ref="addOrUpdate"></add-or-update>
</div>
</template>
<script>
import AddOrUpdate from "./add-or-update";
export default {
data() {
return {
searchForm: {
key: ""
},
dataList: [],
pageIndex: 1,
pageSize: 10,
totalPage: 0,
dataListLoading: false,
dataListSelections: [],
showFlag: true,
sfshVisiable: false,
shForm: {},
chartVisiable: false,
addOrUpdateFlag:false,
contents:{"searchBtnFontColor":"#333","pagePosition":"1","inputFontSize":"14px","inputBorderRadius":"22px","tableBtnDelFontColor":"#333","tableBtnIconPosition":"1","searchBtnHeight":"40px","inputIconColor":"rgba(66, 130, 129, 1)","searchBtnBorderRadius":"22px","tableStripe":false,"btnAdAllWarnFontColor":"#333","tableBtnDelBgColor":"rgba(244, 150, 150, 1)","searchBtnIcon":"1","tableSize":"medium","searchBtnBorderStyle":"solid","tableSelection":true,"searchBtnBorderWidth":"1px","tableContentFontSize":"14px","searchBtnBgColor":"rgba(153, 239, 237, 1)","inputTitleSize":"14px","btnAdAllBorderColor":"#DCDFE6","pageJumper":true,"btnAdAllIconPosition":"1","searchBoxPosition":"1","tableBtnDetailFontColor":"#333","tableBtnHeight":"40px","pagePager":true,"searchBtnBorderColor":"#DCDFE6","tableHeaderFontColor":"rgba(33, 34, 35, 1)","inputTitle":"1","tableBtnBorderRadius":"22px","btnAdAllFont":"1","btnAdAllDelFontColor":"rgba(21, 20, 20, 1)","tableBtnIcon":"1","btnAdAllHeight":"40px","btnAdAllWarnBgColor":"rgba(238, 236, 126, 1)","btnAdAllBorderWidth":"1px","tableStripeFontColor":"#606266","tableBtnBorderStyle":"solid","inputHeight":"40px","btnAdAllBorderRadius":"22px","btnAdAllDelBgColor":"rgba(234, 93, 93, 0.69)","pagePrevNext":true,"btnAdAllAddBgColor":"rgba(153, 239, 237, 1)","searchBtnFont":"1","tableIndex":true,"btnAdAllIcon":"1","tableSortable":true,"pageSizes":true,"tableFit":true,"pageBtnBG":true,"searchBtnFontSize":"14px","tableBtnEditBgColor":"rgba(240, 242, 124, 1)","inputBorderWidth":"1px","inputFontPosition":"1","inputFontColor":"#333","pageEachNum":10,"tableHeaderBgColor":"rgba(152, 129, 129, 1)","inputTitleColor":"#333","btnAdAllBoxPosition":"1","tableBtnDetailBgColor":"rgba(171, 239, 239, 1)","inputIcon":"0","searchBtnIconPosition":"1","btnAdAllFontSize":"14px","inputBorderStyle":"solid","inputBgColor":"rgba(197, 174, 174, 0.32)","pageStyle":false,"pageTotal":true,"btnAdAllAddFontColor":"#333","tableBtnFont":"1","tableContentFontColor":"rgba(22, 22, 23, 1)","inputBorderColor":"rgba(152, 129, 129, 1)","tableShowHeader":true,"tableBtnFontSize":"14px","tableBtnBorderColor":"rgba(196, 210, 244, 1)","inputIconPosition":"1","tableBorder":true,"btnAdAllBorderStyle":"solid","tableBtnBorderWidth":"1px","tableStripeBgColor":"rgba(213, 197, 197, 1)","tableBtnEditFontColor":"#333","tableAlign":"center"},
layouts: '',
};
},
created() {
this.init();
this.getDataList();
this.contentStyleChange()
},
mounted() {
},
filters: {
htmlfilter: function (val) {
return val.replace(/<[^>]*>/g).replace(/undefined/g,'');
}
},
components: {
AddOrUpdate,
},
methods: {
contentStyleChange() {
this.contentSearchStyleChange()
this.contentBtnAdAllStyleChange()
this.contentSearchBtnStyleChange()
this.contentTableBtnStyleChange()
this.contentPageStyleChange()
},
contentSearchStyleChange() {
this.$nextTick(()=>{
document.querySelectorAll('.form-content .slt .el-input__inner').forEach(el=>{
let textAlign = 'left'
if(this.contents.inputFontPosition == 2) textAlign = 'center'
if(this.contents.inputFontPosition == 3) textAlign = 'right'
el.style.textAlign = textAlign
el.style.height = this.contents.inputHeight
el.style.lineHeight = this.contents.inputHeight
el.style.color = this.contents.inputFontColor
el.style.fontSize = this.contents.inputFontSize
el.style.borderWidth = this.contents.inputBorderWidth
el.style.borderStyle = this.contents.inputBorderStyle
el.style.borderColor = this.contents.inputBorderColor
el.style.borderRadius = this.contents.inputBorderRadius
el.style.backgroundColor = this.contents.inputBgColor
})
if(this.contents.inputTitle) {
document.querySelectorAll('.form-content .slt .el-form-item__label').forEach(el=>{
el.style.color = this.contents.inputTitleColor
el.style.fontSize = this.contents.inputTitleSize
el.style.lineHeight = this.contents.inputHeight
})
}
setTimeout(()=>{
document.querySelectorAll('.form-content .slt .el-input__prefix').forEach(el=>{
el.style.color = this.contents.inputIconColor
el.style.lineHeight = this.contents.inputHeight
})
document.querySelectorAll('.form-content .slt .el-input__suffix').forEach(el=>{
el.style.color = this.contents.inputIconColor
el.style.lineHeight = this.contents.inputHeight
})
document.querySelectorAll('.form-content .slt .el-input__icon').forEach(el=>{
el.style.lineHeight = this.contents.inputHeight
})
},10)
})
},
//
contentSearchBtnStyleChange() {
this.$nextTick(()=>{
document.querySelectorAll('.form-content .slt .el-button--success').forEach(el=>{
el.style.height = this.contents.searchBtnHeight
el.style.color = this.contents.searchBtnFontColor
el.style.fontSize = this.contents.searchBtnFontSize
el.style.borderWidth = this.contents.searchBtnBorderWidth
el.style.borderStyle = this.contents.searchBtnBorderStyle
el.style.borderColor = this.contents.searchBtnBorderColor
el.style.borderRadius = this.contents.searchBtnBorderRadius
el.style.backgroundColor = this.contents.searchBtnBgColor
})
})
},
//
contentBtnAdAllStyleChange() {
this.$nextTick(()=>{
document.querySelectorAll('.form-content .ad .el-button--success').forEach(el=>{
el.style.height = this.contents.btnAdAllHeight
el.style.color = this.contents.btnAdAllAddFontColor
el.style.fontSize = this.contents.btnAdAllFontSize
el.style.borderWidth = this.contents.btnAdAllBorderWidth
el.style.borderStyle = this.contents.btnAdAllBorderStyle
el.style.borderColor = this.contents.btnAdAllBorderColor
el.style.borderRadius = this.contents.btnAdAllBorderRadius
el.style.backgroundColor = this.contents.btnAdAllAddBgColor
})
document.querySelectorAll('.form-content .ad .el-button--danger').forEach(el=>{
el.style.height = this.contents.btnAdAllHeight
el.style.color = this.contents.btnAdAllDelFontColor
el.style.fontSize = this.contents.btnAdAllFontSize
el.style.borderWidth = this.contents.btnAdAllBorderWidth
el.style.borderStyle = this.contents.btnAdAllBorderStyle
el.style.borderColor = this.contents.btnAdAllBorderColor
el.style.borderRadius = this.contents.btnAdAllBorderRadius
el.style.backgroundColor = this.contents.btnAdAllDelBgColor
})
document.querySelectorAll('.form-content .ad .el-button--warning').forEach(el=>{
el.style.height = this.contents.btnAdAllHeight
el.style.color = this.contents.btnAdAllWarnFontColor
el.style.fontSize = this.contents.btnAdAllFontSize
el.style.borderWidth = this.contents.btnAdAllBorderWidth
el.style.borderStyle = this.contents.btnAdAllBorderStyle
el.style.borderColor = this.contents.btnAdAllBorderColor
el.style.borderRadius = this.contents.btnAdAllBorderRadius
el.style.backgroundColor = this.contents.btnAdAllWarnBgColor
})
})
},
//
rowStyle({ row, rowIndex}) {
if (rowIndex % 2 == 1) {
if(this.contents.tableStripe) {
return {color:this.contents.tableStripeFontColor}
}
} else {
return ''
}
},
cellStyle({ row, rowIndex}){
if (rowIndex % 2 == 1) {
if(this.contents.tableStripe) {
return {backgroundColor:this.contents.tableStripeBgColor}
}
} else {
return ''
}
},
headerRowStyle({ row, rowIndex}){
return {color: this.contents.tableHeaderFontColor}
},
headerCellStyle({ row, rowIndex}){
return {backgroundColor: this.contents.tableHeaderBgColor}
},
//
contentTableBtnStyleChange(){
// this.$nextTick(()=>{
// setTimeout(()=>{
// document.querySelectorAll('.table-content .tables .el-table__body .el-button--success').forEach(el=>{
// el.style.height = this.contents.tableBtnHeight
// el.style.color = this.contents.tableBtnDetailFontColor
// el.style.fontSize = this.contents.tableBtnFontSize
// el.style.borderWidth = this.contents.tableBtnBorderWidth
// el.style.borderStyle = this.contents.tableBtnBorderStyle
// el.style.borderColor = this.contents.tableBtnBorderColor
// el.style.borderRadius = this.contents.tableBtnBorderRadius
// el.style.backgroundColor = this.contents.tableBtnDetailBgColor
// })
// document.querySelectorAll('.table-content .tables .el-table__body .el-button--primary').forEach(el=>{
// el.style.height = this.contents.tableBtnHeight
// el.style.color = this.contents.tableBtnEditFontColor
// el.style.fontSize = this.contents.tableBtnFontSize
// el.style.borderWidth = this.contents.tableBtnBorderWidth
// el.style.borderStyle = this.contents.tableBtnBorderStyle
// el.style.borderColor = this.contents.tableBtnBorderColor
// el.style.borderRadius = this.contents.tableBtnBorderRadius
// el.style.backgroundColor = this.contents.tableBtnEditBgColor
// })
// document.querySelectorAll('.table-content .tables .el-table__body .el-button--danger').forEach(el=>{
// el.style.height = this.contents.tableBtnHeight
// el.style.color = this.contents.tableBtnDelFontColor
// el.style.fontSize = this.contents.tableBtnFontSize
// el.style.borderWidth = this.contents.tableBtnBorderWidth
// el.style.borderStyle = this.contents.tableBtnBorderStyle
// el.style.borderColor = this.contents.tableBtnBorderColor
// el.style.borderRadius = this.contents.tableBtnBorderRadius
// el.style.backgroundColor = this.contents.tableBtnDelBgColor
// })
// }, 50)
// })
},
//
contentPageStyleChange(){
let arr = []
if(this.contents.pageTotal) arr.push('total')
if(this.contents.pageSizes) arr.push('sizes')
if(this.contents.pagePrevNext){
arr.push('prev')
if(this.contents.pagePager) arr.push('pager')
arr.push('next')
}
if(this.contents.pageJumper) arr.push('jumper')
this.layouts = arr.join()
this.contents.pageEachNum = 10
},
init () {
},
search() {
this.pageIndex = 1;
this.getDataList();
},
//
getDataList() {
this.dataListLoading = true;
let params = {
page: this.pageIndex,
limit: this.pageSize,
sort: 'id',
}
if(this.searchForm.fangzhuzhanghao!='' && this.searchForm.fangzhuzhanghao!=undefined){
params['fangzhuzhanghao'] = '%' + this.searchForm.fangzhuzhanghao + '%'
}
if(this.searchForm.fangzhuxingming!='' && this.searchForm.fangzhuxingming!=undefined){
params['fangzhuxingming'] = '%' + this.searchForm.fangzhuxingming + '%'
}
this.$http({
url: "fangzhu/page",
method: "get",
params: params
}).then(({ data }) => {
if (data && data.code === 0) {
this.dataList = data.data.list;
this.totalPage = data.data.total;
} else {
this.dataList = [];
this.totalPage = 0;
}
this.dataListLoading = false;
});
},
//
sizeChangeHandle(val) {
this.pageSize = val;
this.pageIndex = 1;
this.getDataList();
},
//
currentChangeHandle(val) {
this.pageIndex = val;
this.getDataList();
},
//
selectionChangeHandler(val) {
this.dataListSelections = val;
},
// /
addOrUpdateHandler(id,type) {
this.showFlag = false;
this.addOrUpdateFlag = true;
this.crossAddOrUpdateFlag = false;
if(type!='info'){
type = 'else';
}
this.$nextTick(() => {
this.$refs.addOrUpdate.init(id,type);
});
},
//
//
download(file){
window.open(`${file}`)
},
//
deleteHandler(id) {
var ids = id
? [Number(id)]
: this.dataListSelections.map(item => {
return Number(item.id);
});
this.$confirm(`确定进行[${id ? "删除" : "批量删除"}]操作?`, "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(() => {
this.$http({
url: "fangzhu/delete",
method: "post",
data: ids
}).then(({ data }) => {
if (data && data.code === 0) {
this.$message({
message: "操作成功",
type: "success",
duration: 1500,
onClose: () => {
this.search();
}
});
} else {
this.$message.error(data.msg);
}
});
});
},
}
};
</script>
<style lang="scss" scoped>
.slt {
margin: 0 !important;
display: flex;
}
.ad {
margin: 0 !important;
display: flex;
}
.pages {
& /deep/ el-pagination__sizes{
& /deep/ el-input__inner {
height: 22px;
line-height: 22px;
}
}
}
.el-button+.el-button {
margin:0;
}
.tables {
& /deep/ .el-button--success {
height: 40px;
color: #333;
font-size: 14px;
border-width: 1px;
border-style: solid;
border-color: rgba(196, 210, 244, 1);
border-radius: 22px;
background-color: rgba(171, 239, 239, 1);
}
& /deep/ .el-button--primary {
height: 40px;
color: #333;
font-size: 14px;
border-width: 1px;
border-style: solid;
border-color: rgba(196, 210, 244, 1);
border-radius: 22px;
background-color: rgba(240, 242, 124, 1);
}
& /deep/ .el-button--danger {
height: 40px;
color: #333;
font-size: 14px;
border-width: 1px;
border-style: solid;
border-color: rgba(196, 210, 244, 1);
border-radius: 22px;
background-color: rgba(244, 150, 150, 1);
}
& /deep/ .el-button {
margin: 4px;
}
}
</style>

File diff suppressed because one or more lines are too long

@ -0,0 +1,22 @@
/**
* css
*/
/* 嵌套文字横线 */
.line-container {
width: 100%;
background: url(../img/line.jpg) left center repeat-x;
text-align: center;
}
.line {
display: inline-block;
padding: 0 10px;
text-align: center;
font-family: 'Microsoft Yahei';
font-size: 24px;
background: #fff;
color: #000000;
line-height: 1.3;
}
/**
* css end
*/

@ -0,0 +1,701 @@
.container {
margin: 0 auto;
width: 980px;
}
label {
margin: 0;
}
/* 导航栏 */
.nav {
text-align: center;
}
.layui-nav * {
font-size: 18px;
}
/* 轮播图 */
.swiper-item {
width: 100%;
}
.layui-carousel-ind li {
width: 80px;
height: 5px;
border-radius: 0;
}
/* 商品推荐标题 */
.recommend-container {
margin-top: 20px;
}
.index-title {
margin: 0 auto;
width: 980px;
text-align: center;
font-size: 42px;
font-family: "Times New Roman", Times, serif;
text-transform: uppercase;
}
.recommend-list {
width: 1000px;
margin: 0 auto;
height: 360px;
padding: 0px 0 0 0;
}
.recommend-item {
float: left;
width: 1000px;
padding: 20px 0 0 0;
}
.recommend-item li {
float: left;
width: 218px;
position: relative;
display: inline;
margin: 0 15px;
}
.recommend-item li a.img {
float: left;
width: 218px;
height: 218px;
position: absolute;
left: 0;
top: 0;
background: url(../img/yuan.png) left top no-repeat;
}
.recommend-item li a.wor {
float: left;
width: 218px;
height: 30px;
line-height: 30px;
text-align: center;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
font-size: 14px;
color: #000;
display: inline;
margin: 10px 0 0 0;
}
/* 首页新闻样式(手风琴) */
.news-home-container {
padding-top: 20px;
margin-bottom: 20px;
padding-bottom: 20px;
}
.news-home-container .layui-collapse {
border: 0;
margin: 0 20px;
}
.news-home-container .layui-colla-item {
margin-top: 14px;
}
.news-home-container .layui-colla-content {
font-size: 16px;
line-height: 40px;
height: 115px;
}
.news-home-container .layui-colla-title {
height: 50px;
line-height: 50px;
font-size: 16px;
font-weight: 500;
}
.news-home-container .card-container {
margin-top: 18px;
}
.news-home-container .layui-card-header {
height: 50px;
line-height: 50px;
}
/* 底部导航 */
.nav-bottom {
text-align: center;
}
/* 底部栏 */
.footer {
margin: 10px;
text-align: center;
}
.footer-item {
color: #515151;
margin-top: 10px;
}
/* 留言 */
.message-container {
width: 980px;
margin: 0 auto;
text-align: center;
}
.message-container .message-form {
margin-top: 20px;
border-bottom: 1px dotted #888888;
}
.message-container .message-list {
text-align: left;
}
.message-container .message-list .message-item {
margin-top: 20px;
border-bottom: 1px solid #EEEEEE;
}
.message-container .message-list .message-item .username-container {
font-size: 18px;
}
.message-container .message-list .message-item .username-container .avator {
width: 60px;
height: 60px;
border-radius: 50%;
}
.message-container .message-list .message-item .content {
margin: 10px;
}
.message-container .message-list .message-item .replay {
background: #EEEEEE;
margin: 10px;
padding: 20px;
border-radius: 20px;
}
/* 论坛 */
.forum-container {
width: 980px;
margin: 0 auto;
text-align: center;
}
.forum-container .forum-list {
text-align: left;
margin-top: 20px;
}
.forum-container .forum-list .forum-item {
display: flex;
justify-content: space-between;
align-items: center;
padding: 20px;
border-bottom: 3px dotted #EEEEEE;
border-top: 3px dotted #EEEEEE;
}
.forum-container .forum-list .forum-item.line {
background: #EEEEEE;
}
.forum-container .forum-list .forum-item .h2 {
font-size: 14px;
}
.forum-container .forum-list .forum-item .create-time {
font-size: 14px;
}
.forum-container {
margin-top: 20px;
}
.forum-container .title {
font-size: 22px;
font-weight: bold;
}
.forum-container .content {
width: 980px;
margin: 0 auto;
text-align: left;
margin-top: 30px;
font-size: 16px;
line-height: 30px;
}
.forum-container .auth-container {
margin-top: 20px;
color: #888888;
border-bottom: 1px dotted #888888;
padding-bottom: 20px;
}
.forum-container .bottom-container {
display: flex;
justify-content: space-between;
width: 980px;
margin: 0 auto;
background: #EEEEEE;
height: 60px;
line-height: 60px;
margin-top: 30px;
}
.forum-container .bottom-container .title {
margin-left: 30px;
font-size: 20px;
color: #515151;
}
.forum-container .bottom-container .btn {
font-size: 20px;
padding: 0 20px;
}
.forum-container .message-list {
text-align: left;
}
.forum-container .message-list .message-item {
margin-top: 20px;
border-bottom: 1px solid #EEEEEE;
}
.forum-container .message-list .message-item .username-container {
font-size: 18px;
}
.forum-container .message-list .message-item .username-container .avator {
width: 60px;
height: 60px;
border-radius: 50%;
}
.forum-container .message-list .message-item .content {
margin: 10px;
}
.forum-container .message-list .message-item .replay {
background: #EEEEEE;
margin: 10px;
padding: 20px;
border-radius: 20px;
}
/* 考试 */
.paper-container {
width: 980px;
margin: 0 auto;
margin-top: 20px;
text-align: center;
}
.paper-container thead {
border-radius: 100px;
}
.paper-container thead tr th {
font-size: 16px;
font-weight: blod;
line-height: 50px;
height: 50px;
text-align: center;
}
.paper-container tbody tr td {
font-size: 16px;
height: 50px;
border-bottom: 5px dotted #EEEEEE;
}
.paper-container tbody tr {
border: 3px dotted #EEEEEE;
}
/* 个人中心 */
.center-container {
width: 980px;
margin: 0 auto;
margin-top: 20px;
text-align: center;
display: flex;
margin-bottom: 20px;
}
.center-container .left-container {
border: 2px dotted #EEEEEE;
background: #FFFFFF;
width: 200px;
padding-top: 20px;
height: 600px;
}
.center-container .right-container {
flex: 1;
border: 2px dotted #EEEEEE;
background: #FFFFFF;
text-align: left;
padding: 20px;
padding-top: 40px;
}
/* 购物车 */
.btn-container {
margin-top: 20px;
text-align: right;
margin-bottom: 60px;
border: 2px dotted #EEEEEE;
padding: 20px;
}
/* 登陆注册 */
.login-container {
background: #FFFFFF;
z-index: 9;
position: relative;
width: 480px;
margin: 0 auto;
border-radius: 20px;
margin-top: 100px;
padding-top: 30px;
}
.login-form {
text-align: center;
padding: 20px;
}
.login-bg {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
opacity: 0.8;
background-size: 100% 100%;
background-repeat: no-repeat;
}
.login-container .bottom-container {
text-align: center;
color: #888888;
padding: 20px;
}
.login-container .bottom-container a {
margin-left: 10px;
border: 2px dotted #888888;
padding: 10px;
}
/* 确认下单页面 */
.address-table {
border: 3px dotted #EEEEEE;
}
/* 图文列表 */
.data-container {
margin: 20px 0;
text-align: center;
display: flex;
flex-direction: column;
}
.data-container .data-list .data-item {
padding: 20px;
text-align: left;
margin-bottom: 10px;
min-height: 330px;
}
.data-container .data-list .data-item:hover {
padding: 10px;
}
.data-container .data-list .data-item .cover {
width: 100%;
height: 200px;
object-fit: cover;
border: 1px solid #EEEEEE;
}
.data-container .data-list .data-item .title {
text-align: center;
padding: 10px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.data-container .data-list .data-item .price {
font-size: 20px;
text-align: right;
}
.data-container .data-list .data-item .data {
font-size: 16px;
border: 1px solid #EEEEEE;
display: flex;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
}
.data-container .data-list .data-item .data .item {
width: 40%;
text-align: center;
margin: 10px;
}
.search-container {
border: 0;
font-size: 16px;
width: 980px;
margin: 0 auto;
text-align: left;
margin-top: 10px;
margin-bottom: 10px;
}
/* 数据详情页 */
.data-detail {
width: 980px;
margin: 0 auto;
margin-top: 20px;
text-align: left;
margin-bottom: 20px;
}
.data-detail-breadcrumb {
margin: 10px 0;
padding: 20px;
display: flex;
justify-content: space-between;
align-items: center;
}
.data-detail .title {
font-size: 20px;
font-weight: bold;
border: 3px dotted #EEEEEE;
padding: 10px;
}
.data-detail .count-container {
background: url(../img/seckilling.jpg);
margin-top: 20px;
padding: 15px;
display: flex;
justify-content: space-between;
align-items: center;
}
.data-detail .count-container .text {
font-size: 18px;
font-weight: blod;
}
.data-detail .count-container .number {
padding: 10px;
font-size: 16px;
font-weight: blod;
}
.data-detail .tool-container {
display: flex;
justify-content: space-between;
align-items: center;
margin-top: 20px;
font-size: 16px;
font-weight: bolder;
padding: 10px;
}
.data-detail .price {
color: red;
font-size: 16px;
font-weight: bolder;
font-size: 20px;
font-weight: bolder;
}
.data-detail .detail-item {
background: #EEEEEE;
padding: 10px;
display: flex;
align-items: center;
}
.data-detail .desc {
font-size: 16px;
color: #515151;
}
.video-container {
width: 100%;
margin-top: 20px;
}
.num-picker {
display: flex;
align-items: center;
margin-right: 20px;
}
.num-picker button {
border: 0;
font-size: 20px;
}
.num-picker input {
width: 50px;
text-align: center;
height: 40px;
}
.data-add-container{
width: 800px;
margin: 0 auto;
margin-top: 20px;
text-align: left;
margin-bottom: 20px;
background: #FFFFFF;
padding: 20px;
padding-top: 30px;
}
/* 详情页选座 */
.seat-list {
display: flex;
align-items: center;
flex-wrap: wrap;
background: #FFFFFF;
margin: 20px;
border-radius: 20px;
padding: 20px;
font-size: 16px;
}
.seat-item {
width: 10%;
display: flex;
align-items: center;
flex-direction: column;
margin-bottom: 20px;
}
.seat-icon {
width: 30px;
height: 30px;
margin-bottom: 10px;
}
/* banner */
.banner {
width: 100%;
height: 50px;
margin-top: 30px;
}
/* 新闻列表 */
.news-container {
text-align: center;
margin: 0 auto;
margin: 40px 0;
}
.news-container .pager {
margin: 20px 0;
}
.news-container .news-list {
width: 980px;
margin: 0 auto;
text-align: left;
}
.news-container .news-list .news-item {
display: flex;
border-bottom: 1px solid #EEEEEE;
padding: 10px;
}
.news-container .news-list .news-item .cover-container {
margin: 0 20px;
}
.news-container .news-list .news-item .cover-container .cover {
width: 200px;
height: 200px;
object-fit: cover;
}
.news-container .news-list .news-item .detail-container .h2 {
font-size: 18px;
font-weight: bold;
}
.news-container .news-list .news-item .detail-container .desc {
height: 140px;
padding-top: 20px;
}
.news-container .title {
font-size: 22px;
font-weight: bold;
}
.news-container .content {
width: 980px;
margin: 0 auto;
text-align: left;
margin-top: 30px;
font-size: 16px;
line-height: 30px;
}
.news-container .auth-container {
margin-top: 20px;
color: #888888;
border-bottom: 1px dotted #888888;
padding-bottom: 20px;
}
.news-container .bottom-container {
display: flex;
justify-content: space-between;
width: 980px;
margin: 0 auto;
background: #EEEEEE;
height: 60px;
line-height: 60px;
margin-top: 30px;
}
.news-container .bottom-container .title {
margin-left: 30px;
font-size: 20px;
color: #515151;
}
.news-container .bottom-container .btn {
font-size: 20px;
padding: 0 20px;
}

@ -0,0 +1,265 @@
/* 导航栏 */
.nav {
background: #f7f7f7;
}
.layui-nav .layui-nav-item a {
color: #515151;
}
.layui-nav .layui-this:after,
.layui-nav-bar,
.layui-nav-tree .layui-nav-itemed:after {
background-color: #ce0b07;
}
.layui-nav .layui-nav-item a:hover {
color: #FFFFFF;
background-color: #ce0b07;
}
.layui-nav .layui-nav-child dd.layui-this a,
.layui-nav-child dd.layui-this {
background-color: #ce0b07;
}
.layui-nav-tree .layui-nav-child dd.layui-this, .layui-nav-tree .layui-nav-child dd.layui-this a, .layui-nav-tree .layui-this, .layui-nav-tree .layui-this>a, .layui-nav-tree .layui-this>a:hover {
background-color: #ce0b07;
color: #fff;
}
/* 轮播图 */
.layui-carousel[lay-indicator=outside] .layui-carousel-ind ul {
background-color: #FFFFFF;
}
.layui-carousel-ind li.layui-this {
background-color: #ce0b07;
}
.layui-carousel-ind li {
background-color: #888888;
}
/* 首页标题 */
.index-title {
color: #ce0b07;
}
/* 首页新闻 */
.news-home-container {
background: #e5e5e5;
}
.news-home-container .layui-colla-item {
border: 1px solid #EEEEEE;
}
.news-home-container .layui-colla-content {
background: #FFFFFF;
}
.news-home-container .layui-colla-title {
background: #d1d1d1;
border: 1px solid #EEEEEE;
color: #515151;
}
.news-home-container .layui-colla-title:hover {
background: #ce0b07;
color: #FFFFFF;
}
.news-home-container .layui-card-header {
background: #d1d1d1;
border: 1px solid #FFFFFF;
color: #515151;
}
/* 图文列表 */
.data-container .data-list .data-item:hover {
border: 1px solid #ce0b07;
}
.data-container .data-list .data-item .title:hover {
background: #ce0b07;
}
.data-container .data-list .data-item .title {
background: #515151;
color: #FFFFFF;
}
.data-container .data-list .data-item .price {
color: #ce0b07;
}
/* 详情页 */
.data-detail {
background: #FFFFFF;
}
.data-detail-breadcrumb {
background: #EEEEEE;
color: #515151;
}
.data-detail .title {
color: #515151;
border: 3px dotted #EEEEEE;
}
.data-detail .count-container {
color: #FFFFFF;
}
.data-detail .count-container .number {
background: #443b3b;
}
.data-detail .tool-container{
border: 3px dotted #EEEEEE;
}
.data-detail .price{
color: #ce0b07;
}
.layui-tab-card>.layui-tab-title .layui-this {
background-color: #ce0b07;
color: #FFFFFF;
}
/* 底部导航栏 */
.nav-bottom {
background: #ce0b07;
}
.nav-bottom .layui-nav-item a {
color: #FFFFFF;
}
/* banner */
.banner {
background: #ce0b07;
}
/* 新闻资讯 */
.news-container .news-list .news-item .detail-container .h2 {
color: #4e6990;
}
.news-container .news-list .news-item .detail-container .desc {
color: #515151;
}
.news-container .news-list .news-item .detail-container .create-time {
color: #515151;
}
.news-container .title {
color: #ce0b07;
}
.news-container .bottom-container .btn {
background: #ce0b07;
color: #FFFFFF;
}
/* 论坛 */
.forum-container .bottom-container .btn {
background: #ce0b07;
color: #FFFFFF;
}
.forum-container .forum-list .forum-item:hover {
background: #ce0b07;
color: #FFFFFF;
}
.forum-container .forum-list .forum-item.line:hover {
background: #ce0b07;
color: #FFFFFF;
}
/* 考试 */
.paper-container thead tr{
background: #ce0b07 ;
color: #FFFFFF;
}
.paper-container tbody tr:hover{
color: #FFFFFF;
background-color: #ce0b07;
}
/* 个人中心 */
.center-container .layui-nav .layui-nav-more {
border-color: #515151 transparent transparent;
}
.center-container .layui-nav-itemed>a, .layui-nav-tree .layui-nav-title a, .layui-nav-tree .layui-nav-title a:hover {
color: #515151 !important;
}
.center-container .layui-nav .layui-nav-mored, .layui-nav-itemed>a .layui-nav-more {
border-color: transparent transparent #515151;
}
.center-container .layui-nav {
background-color: #FFFFFF;
color: #515151;
}
.center-container .layui-nav-itemed>.layui-nav-child {
background-color: #FFFFFF !important;
}
.center-container .layui-nav-tree .layui-nav-bar {
width: 5px;
height: 0;
background-color: #ce0b07;
}
/* 分页插件 */
.layui-laypage .layui-laypage-curr .layui-laypage-em {
background-color: #ce0b07;
}
.layui-laypage a:hover {
color: #ce0b07;
}
.btn-submit {
background: #ce0b07;
}
.btn-theme{
background: #ce0b07;
}
/* checkbox */
.layui-form-radio>i:hover, .layui-form-radioed>i {
color: #ce0b07;
}
.layui-form-select dl dd.layui-this {
background-color: #ce0b07;
color: #fff;
}
.layui-tab-brief>.layui-tab-title .layui-this {
color: #ce0b07;
}
.layui-tab-brief>.layui-tab-more li.layui-this:after, .layui-tab-brief>.layui-tab-title .layui-this:after {
border-bottom: 2px solid #ce0b07;
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

@ -0,0 +1,302 @@
<!-- 首页 -->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>首页</title>
<link rel="stylesheet" href="./layui/css/layui.css">
<link rel="stylesheet" href="./xznstatic/css/common.css"/>
<link rel="stylesheet" href="./xznstatic/css/style.css"/>
</head>
<style type="text/css">
html, body {
height: 100%;
}
#iframe {
width: 100%;
margin-top: 38px;
padding-top: 100px;
}
#header {
height: auto;
background: #fff;
border-bottom: 0;
position: fixed;
top: 0;
left: 0;
width: 100%;
}
#header .nav-top {
display: flex;
align-items: center;
padding: 0 20px;
font-size: 16px;
color: #2a8a15;
box-sizing: border-box;
height: 38px;
background-color: rgba(127, 78, 22, 1);
box-shadow: 0 1px 6px rgba(0,0,0,.3);
justify-content: center;
position: relative;
}
#header .nav-top-img {
width: 124px;
height: 40px;
padding: 0;
margin: 0;
border-radius: 6px;
border-width: 0;
border-style: solid;
border-color: rgba(0,0,0,.3);
box-shadow: 0 0 6px rgba(0,0,0,.3);
}
#header .nav-top-title {
line-height: 40px;
font-size: 25px;
color: rgba(255, 255, 255, 1);
padding: 0 10px;
margin: 0 10px;
border-radius: 6px;
border-width: 0;
border-style: solid;
border-color: rgba(127, 78, 22, 1);
box-shadow: 0 0 0px rgba(0,0,0,.3);
}
#header .nav-top-tel {
line-height: 40px;
font-size: 25px;
color: rgba(222, 222, 222, 1);
padding: 0 10px;
margin: 0;
border-radius: 6px;
border-width: 0;
border-style: solid;
border-color: rgba(179, 172, 172, 1);
box-shadow: 0 0 0px rgba(0,0,0,.3);
}
#header .navs {
display: flex;
padding: 0 20px;
align-items: center;
box-sizing: border-box;
height: 100px;
background-color: rgba(69, 69, 69, 1);
box-shadow: 0 1px 6px rgba(0,0,0,0);
justify-content: center;
}
#header .navs .title {
width: auto;
line-height: 40px;
font-size: 16px;
color: #333;
padding: 0 10px;
margin: 0 5px;
border-radius: 6px;
border-width: 0;
border-style: solid;
border-color: rgba(0,0,0,.3);
box-shadow: 0 0 6px rgba(0,0,0,0);
}
#header .navs li {
display: inline-block;
width: auto;
line-height: 34px;
padding: 0 10px;
margin: 0 5px;
color: rgba(255, 255, 255, 1);
font-size: 20px;
border-radius: 6px;
border-width: 0;
border-style: solid;
border-color: rgba(0,0,0,.3);
background-color: $template2.front.base.nav.list.item.backgroundColor;
box-shadow: 0 0 6px rgba(0,0,0,.1);
text-align: center;
}
#header .navs li a{
color: inherit;
}
#header .navs li.current a{
color: inherit;
}
#header .navs li a:hover{
color: inherit;
}
#header .navs li.current {
color: rgba(247, 197, 30, 1);
font-size: 21px;
border-radius: 6px;
border-width: 0;
border-style: solid;
border-color: $template2.front.base.nav.list.activeBox.borderColor;
background-color: $template2.front.base.nav.list.activeBox.backgroundColor;
box-shadow: 0 0 0px rgba(255,0,0,.8);
}
#header .navs li:hover {
color: #fff;
font-size: 20px;
border-radius: 6px;
border-width: 0;
border-style: solid;
border-color: rgba(0,0,0,.3);
background-color: rgba(247, 197, 30, 1);
box-shadow: 0 0 0px rgba(0,0,0,.3);
}
</style>
<body>
<!-- start 顶部导航栏 -->
<div id="header">
<div v-if='true' class="nav-top">
<img v-if='false' class="nav-top-img" src='https://www.baidu.com/img/flexible/logo/pc/result@2.png'>
<div v-if="true" class="nav-top-title">{{projectName}}</div>
<div class="nav-top-tel"></div>
</div>
<div class="navs">
<!-- <div class="logo" style="font-size: 20px;top: 32px;color: #fff;font-weight: bold;margin-left: -200px;width: 240px;" v-text="projectName"></div> -->
<div class="title" v-if="false" v-text="projectName"></div>
<div class="list">
<ul>
<li class='current'><a href="javascript:navPage('./pages/home/home.html')" class="menumain"><i v-if="false" class="layui-icon layui-icon-home"></i>首页</a></li>
<li v-for="(item,index) in indexNav" v-bind:key="index"><a :href="'javascript:navPage(\''+item.url+'\')'" class="menumain" style="cursor: pointer;"><i v-if="false" class="layui-icon" :class="iconArr[index]"></i>{{item.name}}</a></li>
<li><a href="javascript:centerPage();" class="menumain"><i v-if="false" class="layui-icon layui-icon-username"></i>个人中心</a></li>
<li v-if="cartFlag"><a href="javascript:navPage('./pages/shop-cart/list.html')" class="menumain"><i v-if="false" class="layui-icon">&#xe657;</i>购物车</a></li>
<li v-if="chatFlag"><a href="javascript:chatTap()" class="menumain"><i v-if="false" class="layui-icon">&#xe677;</i>客服</a></li>
</ul>
</div>
</div>
</div>
<!-- end 顶部导航栏 -->
<iframe src="./pages/home/home.html" id="iframe" frameborder="0" scrolling="no" width="100%" onload="changeFrameHeight"></iframe>
<div id="tabbar" v-if="true" class="tabbar" :style='{"padding":"20px 0","boxShadow":"0 0 6px #F2F2F2","margin":"10px 0 0 0","borderColor":"rgba(0,0,0,.3)","backgroundColor":"rgba(242, 242, 242, 1)","borderRadius":"0","borderWidth":"0","borderStyle":"solid"}' style="position: relative;z-index: 999;">
<img v-if='false' :style='{"boxShadow":"0 0 6px rgba(255,0,0,.8)","margin":"0 auto","borderColor":"rgba(0,0,0,.3)","borderRadius":"100%","borderWidth":"1px","width":"44px","borderStyle":"solid","height":"44px"}' style='display: block;' src='http://codegen.caihongy.cn/20201024/ed5e326ca66f403aa3197b5fbb4ec733.jpg' />
<div :style='{"padding":"0 10px","boxShadow":"0 0 6px #F2F2F2","margin":"10px auto","borderColor":"rgba(242, 242, 242, 1)","backgroundColor":"rgba(242, 242, 242, 1)","color":"#fff","textAlign":"center","borderRadius":"0","borderWidth":"0","width":"100%","lineHeight":"32px","fontSize":"14px","borderStyle":"solid"}' class="company"></div>
<div :style='{"padding":"0 10px","boxShadow":"0 0 6px #F2F2F2","margin":"10px auto","borderColor":"rgba(242, 242, 242, 1)","backgroundColor":"rgba(242, 242, 242, 1)","color":"rgba(64, 59, 59, 1)","textAlign":"center","borderRadius":"0","borderWidth":"0","width":"100%","lineHeight":"32px","fontSize":"14px","borderStyle":"solid"}' class="record">© 2020-2021 毕业设计所有</div>
<div :style='{"padding":"0 10px","boxShadow":"0 0 6px rgba(255,0,0,0)","margin":"10px auto 30px auto","borderColor":"rgba(255,255,255,1)","backgroundColor":"#000","color":"#fff","textAlign":"center","borderRadius":"0","borderWidth":"1px 0","width":"40%","lineHeight":"32px","fontSize":"14px","borderStyle":"solid"}' class="desc"></div>
</div>
<script src="./xznstatic/js/jquery-1.11.3.min.js"></script>
<script src="./layui/layui.js"></script>
<script src="./js/vue.js"></script>
<script src="./js/config.js"></script>
<script>
var vue1 = new Vue({el: '#tabbar'})
var vue = new Vue({
el: '#header',
data: {
iconArr: ['layui-icon-gift','layui-icon-email','layui-icon-logout','layui-icon-transfer','layui-icon-slider','layui-icon-print','layui-icon-cols','layui-icon-snowflake','layui-icon-note','layui-icon-flag','layui-icon-theme','layui-icon-website','layui-icon-console','layui-icon-face-surprised','layui-icon-template-1','layui-icon-app','layui-icon-read','layui-icon-component','layui-icon-file-b','layui-icon-unlink','layui-icon-tabs','layui-icon-form','layui-icon-chat'],
indexNav: indexNav,
cartFlag: cartFlag,
adminurl: adminurl,
chatFlag: chatFlag,
projectName: projectName,
},
mounted: function() {
this.bindClickOnLi();
},
created() {
this.iconArr.sort(()=>{
return (0.5-Math.random())
})
},
methods: {
jump(url) {
jump(url)
},
bindClickOnLi() {
let list = document.getElementsByTagName("li");
for(var i = 0;i<list.length;i++){
list[i].onclick = function(){
$(this).addClass("current").siblings().removeClass("current");
}
}
}
}
});
layui.use(['element','layer'], function() {
var element = layui.element;
var layer = layui.layer;
});
function chatTap(){
var userTable = localStorage.getItem('userTable');
if (userTable) {
layui.layer.open({
type: 2,
title: '客服',
area: ['600px', '600px'],
content: './pages/chat/chat.html'
});
} else {
window.location.href = './pages/login/login.html'
}
}
// 导航栏跳转
function navPage(url) {
localStorage.setItem('iframeUrl', url);
document.getElementById('iframe').src = url;
}
// 跳转到个人中心也
function centerPage() {
var userTable = localStorage.getItem('userTable');
if (userTable) {
localStorage.setItem('iframeUrl', './pages/' + userTable + '/center.html');
document.getElementById('iframe').src = './pages/' + userTable + '/center.html';
} else {
window.location.href = './pages/login/login.html'
}
}
var iframeUrl = localStorage.getItem('iframeUrl');
document.getElementById('iframe').src = iframeUrl || './pages/home/home.html';
// var i = 0;
setInterval(function(){
// i++;
// if(i<50) changeFrameHeight();
changeFrameHeight();
},200)
function changeFrameHeight() {
var iframe = document.getElementById('iframe');
// iframe.height = 'auto';
if (iframe) {
var iframeWin = iframe.contentWindow || iframe.contentDocument.parentWindow;
if (iframeWin.document.body) {
iframe.height = iframeWin.document.body.scrollHeight;
}
}
};
// 窗口变化时候iframe自适应
// function changeFrameHeight() {
// var header = document.getElementById('header').scrollHeight;
// let isshow = true
// var tabbar = 0
// if(isshow) {
// tabbar = document.getElementById('tabbar').scrollHeight
// }
// var ifm = document.getElementById("iframe");
// ifm.height = document.documentElement.clientHeight - header - tabbar;
// ifm.width = document.documentElement.clientWidth;
// }
// reasize 事件 窗口大小变化后执行的方法
window.onresize = function() {
changeFrameHeight();
}
</script>
</body>
</html>

@ -0,0 +1,707 @@
/**
* BootstrapAMapPositionPicker v0.8.3
* @author: Kinegratii
*/
(function (factory) {
'use strict';
if (typeof define === 'function' && define.amd) {
define(['jquery', 'AMap'], factory);
} else if (typeof exports === 'object') {
module.exports = factory(require('jquery'), require('AMap'));
} else {
if (typeof jQuery === 'undefined') {
throw 'AMapPositionPicker requires jQuery to be loaded first';
}
if (typeof AMap == 'undefined') {
throw 'AMapPositionPicker requires AMap to be loaded first';
}
factory(jQuery, AMap);
}
}(function ($, AMap) {
// Global tool functions
String.prototype.format = function (data) {
var result = this;
for (var key in data) {
if (data[key] != undefined) {
var reg = new RegExp("({" + key + "})", "g");
result = result.replace(reg, data[key]);
}
}
return result;
};
if (typeof String.prototype.startsWith != 'function') {
String.prototype.startsWith = function (prefix) {
return this.slice(0, prefix.length) === prefix;
};
}
function wrapFormat(formatter, data) {
if (typeof formatter == 'function') {
return formatter(data);
} else if (typeof formatter == 'string') {
return formatter.format(data);
} else {
return '';
}
}
// Data Structure Start
var Position = (function () {
function Position(longitude, latitude, address, label) {
this.longitude = longitude;
this.latitude = latitude;
this.address = address || '';
this.label = label || '';
}
Position.prototype.isValid = function () {
return this.longitude != undefined && this.longitude != null && this.latitude != undefined && this.latitude != null;
};
Position.prototype.copy = function (data) {
if (data == undefined) {
return new Position(this.longitude, this.latitude, this.address, this.label);
} else {
return new Position(
data.longitude || this.longitude,
data.latitude || this.latitude,
data.address || this.address,
data.label || this.label
);
}
};
Position.prototype.getDisplayString = function () {
if (this.label) {
return this.label;
} else {
return this.address;
}
};
Position.fromOptions = function (options) {
if (options instanceof Position) {
return options;
} else {
return new Position(options.longitude, options.latitude, options.address, options.label);
}
};
Position.empty = function () {
return new Position(null, null, "", "");
};
Position.validate = function (position) {
if (position) {
return position.isValid();
} else {
return false;
}
};
Position.validateLngLat = function (lnglatStr) {
var result = /^([+-]?(0?\d{1,2}(\.\d{1,6})?|1[0-7]?\d{1}(\.\d{1,6})?|180\.0{1,6}))[-;,]([-+]?([0-8]?\d{1}(\.\d{1,6})?|90(\.0{1,6})?))$/.exec(lnglatStr);
if (result) {
return {longitude: parseFloat(result[1]), latitude: parseFloat(result[5])};
} else {
return null;
}
};
Position.LNGLAT_FORMATTER = ['{longitude}-{latitude}', '{longitude};{latitude}', '{longitude},{latitude}'];
return Position;
}());
var Field = (function () {
var idIndex = -1;
function generateSelectorId(selector) {
if (selector.startsWith('#')) {
return selector.substring(1);
} else {
idIndex += 1;
return 'id_ampp_i' + idIndex;
}
}
function Field(options) {
this.name = options.name;
if (options.selector instanceof jQuery) {
this.$widget = options.selector;
this.created = true;
}
else if ($(options.selector).length > 0) {
this.$widget = $(options.selector);
this.created = true;
} else {
var inputHtml = '<input type="hidden" id="{id}" name="{name}"/>'.format({
id: generateSelectorId(options.selector),
name: options.name
});
this.$widget = $(inputHtml);
this.created = false;
}
this.formatter = function (position) {
return wrapFormat(options.formatter, position);
};
}
Field.prototype.render = function (position, hasPicked) {
var v;
if (hasPicked) {
v = this.formatter(position);
} else {
v = '';
}
console.log(v);
if (this.$widget.is('input') || this.$widget.is('textarea')) {
this.$widget.val(v);
} else if (this.$widget.is('div') || this.$widget.is('td') || this.$widget.is('p')) {
this.$widget.html(v);
}
};
return Field;
}());
var FieldManager = (function () {
var fields = [];
function FieldManager() {
fields = [];
}
FieldManager.prototype.addField = function (field) {
fields.push(field);
};
FieldManager.prototype.render = function (position, hasPicked) {
for (var i = 0.; i < fields.length; i++) {
fields[i].render(position, hasPicked);
}
};
return FieldManager;
}());
// Data Structure End
function buildBootstrapModalHTML() {
var toolsHtml = '<div class="btn-group">'
+ '<button id="idAMapPositionPickerLocation" type="button" class="btn btn-default btn-sm"><span class="glyphicon glyphicon-map-marker"></span>&nbsp;定位</button>'
+ '<button id="idAMapPositionPickerReset" type="button" class="btn btn-default btn-sm"><span class="glyphicon glyphicon-repeat"></span>&nbsp;重置</button>'
+ '<button id="idAMapPositionPickerClear" type="button" class="btn btn-default btn-sm"><span class="glyphicon glyphicon-remove"></span>&nbsp;清除</button>'
+ '<button id="idAMapPositionPickerSearch" type="button" class="btn btn-default btn-sm" data-toggle="collapse" data-target="#idAMapPositionPickerSearchPanel"><span class="glyphicon glyphicon-search"></span>&nbsp;搜索</button>'
+ '</div>';
var searchPanelHtml = '<div id="idAMapPositionPickerSearchPanel" class="collapse"><input class="form-control input-sm" id="idAMapPositionPickerSearchInput"/><ul id="idAMapPositionPickerSearchResult" class="list-group"></ul></div>';
var mapPanelHtml = '<div id="idAMapPositionPickerFloatContainer" style="position: absolute;z-index: 2;top:5px;right: 5px;">' + toolsHtml + searchPanelHtml + '</div>';
var modalHtml = '<div class="modal fade" id="idAMapPositionPickerModal">'
+ '<div class="modal-dialog">'
+ '<div class="modal-content">'
+ '<div class="modal-header"><button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button><h4 class="modal-title">请选择地址</h4><small id="idAMapPositionPickerAlert" style="color: red">必须选择一个位置</small></div>'
+ '<div class="modal-body">'
+ '<div id="idAMapPositionPickerMap" style="height: 500px;" class="form-control">'
+ mapPanelHtml
+ '</div>' //End of Map container
+ '<input class="form-control input-sm" style="margin-top:5px;" id="idAMapPositionPickerAddress"/>'
+ '</div>' //End of modal-Body
+ '<div class="modal-footer">'
+ '<button id="idAMapPositionPickerSelect" type="button" class="btn btn-primary btn-sm">确定</button><button id="idAMapPositionPickerCancelBtn" type="button" class="btn btn-default btn-sm" data-dismiss="modal">取消</button>'
+ '</div>' //End of Modal-footer
+ '</div>' //End of Modal-content
+ '</div>' // End of Modal-dialog
+ '</div>';//End of Modal
return modalHtml;
}
var PICKER_CONTROLLER = (function () {
// Common Modal Controller for all elements
// Context pick
var mPicker = null;
var mapObj = null;
var isShowOrPickMode = false;
var $modal = null, $map, $addressInput, $alert, $pickBtn, $locationBtn, $resetBtn, $clearBtn, $cancelBtn;
// Current picked
var selectedMarker = null;
var cachePosition = Position.empty();
// Search plugin
var $searchBtn, $searchPanel, $searchInput, $searchResultList;
var markerList = [];
var geolocation;
var mapClickClickHandler = function (e) {
$alert.hide();
selectMarker(createMarkerFromLnglat(e.lnglat.lng, e.lnglat.lat));
};
function activate(picker) {
mPicker = picker;
showModal();
}
function deactivate() {
mPicker = null;
}
function showModal() {
initializeController();
initializePicker();
var p = mPicker.position();
if (p && p.isValid()) {
selectMarker(createMarkerFromPosition(p));
} else {
if (selectedMarker) {
selectedMarker.setMap(null);
}
$addressInput.val('');
if (mPicker.opts.center.longitude && mPicker.opts.center.latitude) {
mapObj.setCenter(new AMap.LngLat(mPicker.opts.center.longitude, mPicker.opts.center.latitude));
}
}
$modal.modal('show');
}
function initializeController() {
// Initialize global options
if ($modal == null) {
$modal = $(buildBootstrapModalHTML());
$(document.body).append($modal);
mapObj = new AMap.Map("idAMapPositionPickerMap", {
zoom: 15
});
AMap.plugin(['AMap.ToolBar', 'AMap.Scale', 'AMap.OverView'],
function () {
mapObj.addControl(new AMap.ToolBar());
mapObj.addControl(new AMap.Scale());
mapObj.addControl(new AMap.OverView({isOpen: true}));
});
mapObj.on('click', mapClickClickHandler);
mapObj.plugin('AMap.Geolocation', function () {
geolocation = new AMap.Geolocation({
enableHighAccuracy: true,
timeout: 3000,
maximumAge: 0,
convert: true,
panToLocation: true,
zoomToAccuracy: true,
markerOptions: {}
});
});
// DOM Selectors and events
$map = $("#idAMapPositionPickerMap");
$pickBtn = $("#idAMapPositionPickerSelect");
$locationBtn = $("#idAMapPositionPickerLocation");
$resetBtn = $("#idAMapPositionPickerReset");
$clearBtn = $("#idAMapPositionPickerClear");
$addressInput = $("#idAMapPositionPickerAddress");
$cancelBtn = $("#idAMapPositionPickerCancelBtn");
$alert = $("#idAMapPositionPickerAlert");
$searchBtn = $("#idAMapPositionPickerSearch");
$searchPanel = $("#idAMapPositionPickerSearchPanel");
$searchInput = $("#idAMapPositionPickerSearchInput");
$searchResultList = $("#idAMapPositionPickerSearchResult");
$pickBtn.on('click', pickPosition);
$resetBtn.on('click', resetInitialPosition);
$clearBtn.on('click', clearPosition);
$locationBtn.on('click', location);
$searchPanel.on('show.bs.collapse', function () {
$searchBtn.removeClass('btn-default').addClass('btn-primary');
startSearch();
}).on('hide.bs.collapse', function () {
$searchBtn.removeClass('btn-primary').addClass('btn-default');
endSearch();
});
$('ul#idAMapPositionPickerSearchResult').on('click', 'li[data-poi-index]', highlightMarker);
}
}
function initializePicker() {
toggleMode(false);
$map.css('height', mPicker.opts.height);
$modal.find('h4.modal-title').html(mPicker.opts.title);
$alert.hide();
}
function location() {
$alert.hide();
geolocation.getCurrentPosition(function (status, result) {
if (status == 'complete') {
selectMarker(createMarkerFromLnglat(result.position.lng, result.position.lat, result.formattedAddress))
} else {
$alert.html(result.message).show();
}
});
}
function clearPosition() {
cachePosition = Position.empty();
if (selectedMarker != null) {
selectedMarker.setMap(null);
}
$addressInput.val('');
}
function resetInitialPosition() {
cachePosition = mPicker.getInitialPosition();
if (Position.validate(cachePosition)) {
selectMarker(createMarkerFromPosition(cachePosition));
} else if (selectedMarker != null) {
selectedMarker.setMap(null);
$addressInput.val('');
}
}
function isPositionPicked() {
return cachePosition.isValid();
}
function pickPosition() {
if (isShowOrPickMode) {
$modal.modal('hide');
return;
}
var address = $addressInput.val();
cachePosition.address = address;
// Always use new position instance
var pickedPosition;
var hasPicked = isPositionPicked();
if (hasPicked) {
pickedPosition = cachePosition.copy();
} else {
pickedPosition = Position.empty();
}
if (mPicker.opts.required && !hasPicked) {
$alert.html(mPicker.opts.errorTip).show();
} else {
$alert.hide();
$modal.modal('hide');
mPicker._onPickedCallback(pickedPosition, hasPicked);
}
}
// Search Start
function highlightMarker(e) {
var index = $(this).data('poiIndex');
if (index < markerList.length) {
markerList[index].resumeMove();
}
}
function startSearch() {
mapObj.off('click', mapClickClickHandler);
$resetBtn.prop('disabled', true);
$clearBtn.prop('disabled', true);
$locationBtn.prop('disabled', true);
$searchInput.on('keydown', function (e) {
var searchKeyword = $searchInput.val();
if (e.which == '13' && searchKeyword.length > 0) { //Enter
AMap.service('AMap.PlaceSearch', function () {
var placeSearch = new AMap.PlaceSearch({
pageSize: 6,
pageIndex: 1,
extensions: 'all' // return full address for POI
});
// Search in the given bound
placeSearch.searchInBounds(searchKeyword, mapObj.getBounds(), function (status, result) {
$searchResultList.children('li').remove();
for (var i in markerList) {
markerList[i].setMap(null);
}
markerList = [];
if (status == 'complete') {
for (var i in result.poiList.pois) {
var poi = result.poiList.pois[i];
var li = $('<li data-poi-index="{i}" class="list-group-item"><small>{name}</small></li>'.format({
i: i,
name: poi.name
}));
$searchResultList.append(li);
// delay to username poi.address
var mMarker = createMarkerFromLnglat(poi.location.lng, poi.location.lat);
mMarker.on('click', function (e) {
selectMarker(e.target);
});
markerList.push(mMarker);
}
mapObj.panTo(markerList[0].getPosition());
} else {
$searchPanel.append('<li class="list-group-item disabled"><small>抱歉,暂无找到符合条件的结果。</small></li>');
}
});
});
}
});
}
function endSearch() {
mapObj.on('click', mapClickClickHandler);
$resetBtn.prop('disabled', false);
$clearBtn.prop('disabled', false);
$locationBtn.prop('disabled', false);
$searchInput.val('').off('keydown');
for (var i in markerList) {
markerList[i].setMap(null);
}
markerList = [];
$searchResultList.children('li').remove();
}
// Search End
// New tools
function createMarkerFromPosition(position) {
var markerOpts = {
map: mapObj,
position: new AMap.LngLat(position.longitude, position.latitude),
topWhenClick: true,
offset: new AMap.Pixel(-5, -30),
animation: 'AMAP_ANIMATION_DROP',
extData: position
};
if (position.address) {
markerOpts.title = position.address;
}
var marker = new AMap.Marker(markerOpts);
return marker;
}
function createMarkerFromLnglat(longitude, latitude, address) {
var position = new Position(longitude, latitude, address, "");
return createMarkerFromPosition(position);
}
function selectMarker(marker) {
clearPosition();
selectedMarker = marker;
var position = marker.getExtData();
var lngLat = marker.getPosition();
cachePosition.longitude = position.longitude;
cachePosition.latitude = position.latitude;
if (!position.address) {
var geocoder;
mapObj.plugin(["AMap.Geocoder"], function () {
geocoder = new AMap.Geocoder({
radius: 1000,
extensions: "base"
});
AMap.event.addListener(geocoder, "complete", function (GeocoderResult) {
if (GeocoderResult["info"] == "OK") {
var address = GeocoderResult.regeocode.formattedAddress;
position.address = address;
selectedMarker.setExtData(position);
cachePosition.address = address;
$addressInput.val(address);
mapObj.panTo(lngLat);
}
});
geocoder.getAddress(lngLat);
});
} else {
cachePosition.address = position.address;
mapObj.panTo(lngLat);
$addressInput.val(position.address);
}
}
// End Tool functions
function toggleMode(isShowOrPick) {
isShowOrPickMode = isShowOrPick;
$addressInput.prop('readonly', isShowOrPick);
if (isShowOrPick) {
mapObj.off('click', mapClickClickHandler);
$cancelBtn.hide();
$alert.hide();
$('#idAMapPositionPickerFloatContainer').hide();
} else {
mapObj.on('click', mapClickClickHandler);
$('#idAMapPositionPickerFloatContainer').show();
$cancelBtn.show();
}
}
function showPositionInMap(position) {
initializeController();
toggleMode(true);
clearPosition();
var mMarker = createMarkerFromPosition(position);
mapObj.panTo(mMarker.getPosition());
$modal.find('h4.modal-title').html(position.getDisplayString());
$addressInput.val(position.address);
$modal.modal('show');
}
return {
activate: activate,
deactivate: activate,
//Tools
showPositionInMap: showPositionInMap
}
})();
var aMapPositionPicker = function (element, options) {
var picker = {
isFirstLoad: false,
initialPosition: null,
fieldManager: new FieldManager()
};
var $inputEl = null;
function triggerPickedComplete(mPosition, hasPicked) {
if (options.onPicked) {
options.onPicked(mPosition)
} else {
element.trigger('AMPP.PickCompleted', [mPosition, hasPicked]);
}
}
// API for PICKER_CONTROLLER
picker._onPickedCallback = function (mPosition, hasPicked) {
element.data('position', mPosition);
$inputEl.val(wrapFormat(options.formatter, mPosition));
picker.fieldManager.render(mPosition, hasPicked);
triggerPickedComplete(mPosition, hasPicked);
};
// Public API
picker.getInitialPosition = function () {
return initialPosition;
};
picker.position = function () {
var s = JSON.stringify(element.data('position'));
return element.data('position');
};
//
if (element.is('input') || element.is('textarea')) {
$inputEl = element;
} else {
$inputEl = element.children('input');
}
$inputEl.prop("readonly", true);
//Handle initial data
if (Position.LNGLAT_FORMATTER.indexOf(options.formatter)) {
var result = Position.validateLngLat($inputEl.val());
if (result) {
options.value.longitude = parseFloat(result.longitude);
options.value.latitude = parseFloat(result.latitude);
}
}
var initialPosition = new Position(options.value.longitude, options.value.latitude, options.value.address, options.value.label);
element.data('position', initialPosition.copy());
// Register events
element.on('click', function () {
//show modal/
PICKER_CONTROLLER.activate(picker);
});
// 处理fields
var fields = options.fields || [];
for (var i in fields) {
var iEl = new Field(fields[i] || {});
if (!iEl.created) {
$inputEl.after(iEl.$widget);
}
picker.fieldManager.addField(iEl);
}
picker.opts = options;
return picker;
};
$.fn.AMapPositionPicker = function (options) {
options = options || {};
var args = Array.prototype.slice.call(arguments, 1),
isInstance = true,
thisMethods = [], //可级联函数列表
returnValue;
if (typeof options == 'object') {
return this.each(function () {
var $this = $(this);
if (!$this.data('AMapPositionPicker')) {
var dataOptions = {
formatter: $this.data('formatter'),
title: $this.data('title'),
errorTip: $this.data('errorTip'),
height: $this.data('height'),
required: $this.data('required'),
value: {
longitude: $this.data('valueLongitude'),
latitude: $this.data('valueLatitude'),
address: $this.data('valueAddress'),
label: $this.data('valueLabel')
},
center: {
longitude: $this.data('centerLongitude'),
latitude: $this.data('centerLatitude')
}
};
options = $.extend(true, {}, $.fn.AMapPositionPicker.defaults, dataOptions, options);
$this.data('AMapPositionPicker', aMapPositionPicker($this, options));
}
});
} else if (typeof options == 'string') {
this.each(function () {
var $this = $(this),
instance = $this.data('AMapPositionPicker');
if (!instance) {
throw new Error('AMapPositionPicker("' + options + '") method was called on an element that is not using AMapPositionPicker');
}
returnValue = instance[options].apply(instance, args);
isInstance = returnValue === instance;
});
if (isInstance || $.inArray(options, thisMethods) > -1) {
return this;
}
return returnValue;
}
throw new TypeError('Invalid arguments for AMapPositionPicker: ' + options);
};
$.fn.AMapPositionPicker.defaults = {
formatter: '{address}',
onPicked: null,
value: {
longitude: null,
latitude: null,
address: null
},
required: true,
title: '请选择地址',
errorTip: '请选择地址',
height: '500px',
fields: []
};
$.extend({AMapPositionPicker: {}});
$.extend($.AMapPositionPicker, {
showPositionInMap: function (position) {
PICKER_CONTROLLER.showPositionInMap(Position.fromOptions(position));
},
pluginVersion: '0.8.3'
});
$(function () {
$('[data-provide="AMapPositionPicker"]').AMapPositionPicker();
});
}))
;

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

@ -0,0 +1,34 @@
/**
* 页面跳转
* @param {Object} url
*/
function jump(url) {
if (!url || url == 'null' || url == null) {
window.location.href = './index.html';
}
// 路径访问设置
localStorage.setItem('iframeUrl', url.replace('../', './pages/'));
window.location.href = url;
}
/**
* 返回
*/
function back(num = -1) {
window.history.go(num)
}
/**
* 生成订单
*/
function genTradeNo() {
var date = new Date();
var tradeNo = date.getFullYear().toString() + (date.getMonth() + 1).toString() +
date.getDate().toString() + date.getHours().toString() + date.getMinutes().toString() +
date.getSeconds().toString() + date.getMilliseconds().toString();
for (var i = 0; i < 5; i++) //5位随机数用以加在时间戳后面。
{
tradeNo += Math.floor(Math.random() * 10);
}
return tradeNo;
}

@ -0,0 +1,74 @@
/**
* 邮箱
* @param {*} s
*/
function isEmail(s) {
if(s){
return /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(s)
}
return true;
}
/**
* 手机号码
* @param {*} s
*/
function isMobile(s) {
if(s){
return /^1[0-9]{10}$/.test(s)
}
return true;
}
/**
* 电话号码
* @param {*} s
*/
function isPhone(s) {
if(s){
return /^([0-9]{3,4}-)?[0-9]{7,8}$/.test(s)
}
return true;
}
/**
* URL地址
* @param {*} s
*/
function isURL(s) {
if(s){
return /^http[s]?:\/\/.*/.test(s)
}
return true;
}
/**
* 匹配数字可以是小数不可以是负数,可以为空
* @param {*} s
*/
function isNumber(s) {
if(s){
return /(^-?[+-]?([0-9]*\.?[0-9]+|[0-9]+\.?[0-9]*)([eE][+-]?[0-9]+)?$)|(^$)/.test(s);
}
return true;
}
/**
* 匹配整数可以为空
* @param {*} s
*/
function isIntNumer(s) {
if(s){
return /(^-?\d+$)|(^$)/.test(s);
}
return true;
}
/**
* 身份证校验
*/
function isIdentity(idcard) {
const regIdCard = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
if(idcard){
return regIdCard.test(idcard);
}
return true;
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1,2 @@
/** layui-v2.5.6 MIT License By https://www.layui.com */
html #layuicss-skincodecss{display:none;position:absolute;width:1989px}.layui-code-h3,.layui-code-view{position:relative;font-size:12px}.layui-code-view{display:block;margin:10px 0;padding:0;border:1px solid #e2e2e2;border-left-width:6px;background-color:#F2F2F2;color:#333;font-family:Courier New}.layui-code-h3{padding:0 10px;height:32px;line-height:32px;border-bottom:1px solid #e2e2e2}.layui-code-h3 a{position:absolute;right:10px;top:0;color:#999}.layui-code-view .layui-code-ol{position:relative;overflow:auto}.layui-code-view .layui-code-ol li{position:relative;margin-left:45px;line-height:20px;padding:0 5px;border-left:1px solid #e2e2e2;list-style-type:decimal-leading-zero;*list-style-type:decimal;background-color:#fff}.layui-code-view pre{margin:0}.layui-code-notepad{border:1px solid #0C0C0C;border-left-color:#3F3F3F;background-color:#0C0C0C;color:#C2BE9E}.layui-code-notepad .layui-code-h3{border-bottom:none}.layui-code-notepad .layui-code-ol li{background-color:#3F3F3F;border-left:none}

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 701 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 299 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save