浏览代码

Merge branch '2.0.0' of http://git.ycjcjy.com/fuxingfan/smartCommunity into 2.0.0

# Conflicts:
#	VUECODE/smart-operate-manage/config/prod.env.js
#	VUECODE/smart-property-manage/config/prod.env.js
傅行帆 6 年前
父节点
当前提交
4b12b01b28
共有 20 个文件被更改,包括 538 次插入57 次删除
  1. 14
    0
      CODE/smart-community/app-api/src/main/java/com/community/huiju/controller/VistorController.java
  2. 26
    0
      CODE/smart-community/app-api/src/main/java/com/community/huiju/dao/TaVisitorLicenseSettingMapper.java
  3. 45
    0
      CODE/smart-community/app-api/src/main/java/com/community/huiju/model/TaVisitorLicenseSetting.java
  4. 7
    0
      CODE/smart-community/app-api/src/main/java/com/community/huiju/service/TaVistorServiceI.java
  5. 9
    3
      CODE/smart-community/app-api/src/main/java/com/community/huiju/service/impl/TaUserLicenseServiceImpl.java
  6. 15
    8
      CODE/smart-community/app-api/src/main/java/com/community/huiju/service/impl/TaVistorServiceImpl.java
  7. 82
    0
      CODE/smart-community/app-api/src/main/resources/mapper/TaVisitorLicenseSettingMapper.xml
  8. 63
    0
      CODE/smart-community/property-api/src/main/java/com/community/huiju/controller/TaVisitorLicenseSettingController.java
  9. 16
    0
      CODE/smart-community/property-api/src/main/java/com/community/huiju/dao/TaVisitorLicenseSettingMapper.java
  10. 49
    0
      CODE/smart-community/property-api/src/main/java/com/community/huiju/model/TaVisitorLicenseSetting.java
  11. 33
    0
      CODE/smart-community/property-api/src/main/java/com/community/huiju/service/ITaVisitorLicenseSettingService.java
  12. 69
    0
      CODE/smart-community/property-api/src/main/java/com/community/huiju/service/impl/TaVisitorLicenseSettingServiceImpl.java
  13. 5
    0
      CODE/smart-community/property-api/src/main/resources/mapper/TaVisitorLicenseSettingMapper.xml
  14. 18
    0
      VUECODE/smart-property-manage/src/api/banner.js
  15. 19
    1
      VUECODE/smart-property-manage/src/store/modules/banner.js
  16. 35
    1
      VUECODE/smart-property-manage/src/views/systemResources/banner/index.vue
  17. 0
    10
      VUECODE/smart-property-manage/src/views/systemResources/homeIndex/index.html
  18. 1
    1
      VUECODE/smart-property-manage/src/views/systemResources/property/index.vue
  19. 30
    31
      VUECODE/smart-property-manage/src/views/ticket/details.vue
  20. 2
    2
      VUECODE/smart-property-manage/src/views/ticket/index.vue

+ 14
- 0
CODE/smart-community/app-api/src/main/java/com/community/huiju/controller/VistorController.java 查看文件

70
         responseBean = vistorServiceI.invateHis(communityId, userId);
70
         responseBean = vistorServiceI.invateHis(communityId, userId);
71
         return  responseBean;
71
         return  responseBean;
72
     }
72
     }
73
+
74
+    @ApiOperation(value = "查询是否开启了访客邀请的车辆", notes = "查询是否开启了访客邀请的车辆")
75
+    @ApiImplicitParams({
76
+            @ApiImplicitParam(dataTypeClass = Integer.class, paramType = "query", name = "communityId", value = "小区Id")
77
+    })
78
+    @RequestMapping(value = "/invate_license/bool", method = RequestMethod.GET)
79
+    public ResponseBean invateBool(@RequestParam("communityId") Integer communityId) {
80
+        ResponseBean responseBean = new ResponseBean();
81
+        responseBean = vistorServiceI.invateBool(communityId);
82
+        return responseBean;
83
+    }
84
+
85
+
86
+
73
 }
87
 }

+ 26
- 0
CODE/smart-community/app-api/src/main/java/com/community/huiju/dao/TaVisitorLicenseSettingMapper.java 查看文件

1
+package com.community.huiju.dao;
2
+
3
+import com.community.huiju.model.TaVisitorLicenseSetting;
4
+import org.apache.ibatis.annotations.Mapper;
5
+import org.apache.ibatis.annotations.Param;
6
+import org.apache.ibatis.annotations.ResultMap;
7
+import org.apache.ibatis.annotations.Select;
8
+
9
+@Mapper
10
+public interface TaVisitorLicenseSettingMapper {
11
+    int deleteByPrimaryKey(Integer id);
12
+
13
+    int insert(TaVisitorLicenseSetting record);
14
+
15
+    int insertSelective(TaVisitorLicenseSetting record);
16
+
17
+    TaVisitorLicenseSetting selectByPrimaryKey(Integer id);
18
+
19
+    int updateByPrimaryKeySelective(TaVisitorLicenseSetting record);
20
+
21
+    int updateByPrimaryKey(TaVisitorLicenseSetting record);
22
+
23
+    @ResultMap("BaseResultMap")
24
+    @Select("select * from ta_visitor_license_setting where community_id = #{communityId}")
25
+    TaVisitorLicenseSetting selectByCommunityId(@Param("communityId") Integer communityId);
26
+}

+ 45
- 0
CODE/smart-community/app-api/src/main/java/com/community/huiju/model/TaVisitorLicenseSetting.java 查看文件

1
+package com.community.huiju.model;
2
+
3
+import java.util.Date;
4
+
5
+public class TaVisitorLicenseSetting {
6
+    private Integer id;
7
+
8
+    private Integer communityId;
9
+
10
+    private Date createDate;
11
+
12
+    private Integer createUser;
13
+
14
+    public Integer getId() {
15
+        return id;
16
+    }
17
+
18
+    public void setId(Integer id) {
19
+        this.id = id;
20
+    }
21
+
22
+    public Integer getCommunityId() {
23
+        return communityId;
24
+    }
25
+
26
+    public void setCommunityId(Integer communityId) {
27
+        this.communityId = communityId;
28
+    }
29
+
30
+    public Date getCreateDate() {
31
+        return createDate;
32
+    }
33
+
34
+    public void setCreateDate(Date createDate) {
35
+        this.createDate = createDate;
36
+    }
37
+
38
+    public Integer getCreateUser() {
39
+        return createUser;
40
+    }
41
+
42
+    public void setCreateUser(Integer createUser) {
43
+        this.createUser = createUser;
44
+    }
45
+}

+ 7
- 0
CODE/smart-community/app-api/src/main/java/com/community/huiju/service/TaVistorServiceI.java 查看文件

28
      * @return
28
      * @return
29
      */
29
      */
30
     ResponseBean invateHis(Integer communityId, Integer userId);
30
     ResponseBean invateHis(Integer communityId, Integer userId);
31
+
32
+    /**
33
+     * 查询 邀请访客车辆 是否开启
34
+     * @param communityId
35
+     * @return
36
+     */
37
+    ResponseBean invateBool(Integer communityId);
31
 }
38
 }

+ 9
- 3
CODE/smart-community/app-api/src/main/java/com/community/huiju/service/impl/TaUserLicenseServiceImpl.java 查看文件

142
         taUserLicense.setLicenseType(dataType);
142
         taUserLicense.setLicenseType(dataType);
143
 
143
 
144
         taUserLicense.setLicensePlate(carNo);
144
         taUserLicense.setLicensePlate(carNo);
145
-        String price = String.valueOf(Double.valueOf(((BigDecimal) jsonParam.get("Cost")).toString()) * 100);
146
-        taUserLicense.setUnitPrice(price.substring(0, price.lastIndexOf(".")));
145
+        Object cost = jsonParam.get("Cost");
146
+        if (null != cost) {
147
+            String price = String.valueOf(Double.valueOf(((BigDecimal) cost).toString()) * 100);
148
+            taUserLicense.setUnitPrice(price.substring(0, price.lastIndexOf(".")));
149
+        }
147
         taUserLicense.setParkingLot(String.valueOf(jsonParam.get("ParkingName")));
150
         taUserLicense.setParkingLot(String.valueOf(jsonParam.get("ParkingName")));
148
-        taUserLicense.setRenewTime(Integer.valueOf(String.valueOf(jsonParam.get("RenewTime"))));
151
+        Object renewTime = jsonParam.get("RenewTime");
152
+        if (null != renewTime) {
153
+            taUserLicense.setRenewTime(Integer.valueOf(String.valueOf(renewTime)));
154
+        }
149
 
155
 
150
         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
156
         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
151
         try {
157
         try {

+ 15
- 8
CODE/smart-community/app-api/src/main/java/com/community/huiju/service/impl/TaVistorServiceImpl.java 查看文件

5
 import com.community.commom.mode.ResponseBean;
5
 import com.community.commom.mode.ResponseBean;
6
 import com.community.commom.session.UserElement;
6
 import com.community.commom.session.UserElement;
7
 import com.community.commom.hk.HKOpenApi;
7
 import com.community.commom.hk.HKOpenApi;
8
-import com.community.huiju.dao.TaUserMapper;
9
-import com.community.huiju.dao.TaVisitorLicenseMapper;
10
-import com.community.huiju.dao.TaVisitorMapper;
11
-import com.community.huiju.dao.TpEquipmentTreeMapper;
12
-import com.community.huiju.model.TaUser;
13
-import com.community.huiju.model.TaVisitor;
14
-import com.community.huiju.model.TaVisitorLicense;
15
-import com.community.huiju.model.TpEquipmentTree;
8
+import com.community.huiju.dao.*;
9
+import com.community.huiju.model.*;
16
 import com.community.huiju.service.TaVistorServiceI;
10
 import com.community.huiju.service.TaVistorServiceI;
17
 import com.google.common.collect.Maps;
11
 import com.google.common.collect.Maps;
18
 import lombok.extern.slf4j.Slf4j;
12
 import lombok.extern.slf4j.Slf4j;
46
     @Autowired
40
     @Autowired
47
     private TpEquipmentTreeMapper tpEquipmentTreeMapper;
41
     private TpEquipmentTreeMapper tpEquipmentTreeMapper;
48
 
42
 
43
+    @Autowired
44
+    private TaVisitorLicenseSettingMapper taVisitorLicenseSettingMapper;
45
+
49
     @Override
46
     @Override
50
     @Transactional(rollbackFor = Exception.class)
47
     @Transactional(rollbackFor = Exception.class)
51
     public ResponseBean insertTaVistor(TaVisitor taVisitor, UserElement userElement) {
48
     public ResponseBean insertTaVistor(TaVisitor taVisitor, UserElement userElement) {
145
         throw new RuntimeException("创建访问登记失败!" + errorMessage);
142
         throw new RuntimeException("创建访问登记失败!" + errorMessage);
146
 
143
 
147
     }
144
     }
145
+
146
+
147
+    @Override
148
+    public ResponseBean invateBool(Integer communityId) {
149
+        ResponseBean responseBean = new ResponseBean();
150
+        TaVisitorLicenseSetting taVisitorLicenseSetting = taVisitorLicenseSettingMapper.selectByCommunityId(communityId);
151
+        // true 表示启用了访客邀请的车辆, false 表示未启用访客邀请的车辆
152
+        responseBean.addSuccess(null != taVisitorLicenseSetting ? true : false);
153
+        return responseBean;
154
+    }
148
 }
155
 }

+ 82
- 0
CODE/smart-community/app-api/src/main/resources/mapper/TaVisitorLicenseSettingMapper.xml 查看文件

1
+<?xml version="1.0" encoding="UTF-8" ?>
2
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
3
+<mapper namespace="com.community.huiju.dao.TaVisitorLicenseSettingMapper" >
4
+  <resultMap id="BaseResultMap" type="com.community.huiju.model.TaVisitorLicenseSetting" >
5
+    <id column="id" property="id" jdbcType="INTEGER" />
6
+    <result column="community_id" property="communityId" jdbcType="INTEGER" />
7
+    <result column="create_date" property="createDate" jdbcType="TIMESTAMP" />
8
+    <result column="create_user" property="createUser" jdbcType="INTEGER" />
9
+  </resultMap>
10
+  <sql id="Base_Column_List" >
11
+    id, community_id, create_date, create_user
12
+  </sql>
13
+  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
14
+    select 
15
+    <include refid="Base_Column_List" />
16
+    from ta_visitor_license_setting
17
+    where id = #{id,jdbcType=INTEGER}
18
+  </select>
19
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
20
+    delete from ta_visitor_license_setting
21
+    where id = #{id,jdbcType=INTEGER}
22
+  </delete>
23
+  <insert id="insert" parameterType="com.community.huiju.model.TaVisitorLicenseSetting" >
24
+    insert into ta_visitor_license_setting (id, community_id, create_date, 
25
+      create_user)
26
+    values (#{id,jdbcType=INTEGER}, #{communityId,jdbcType=INTEGER}, #{createDate,jdbcType=TIMESTAMP}, 
27
+      #{createUser,jdbcType=INTEGER})
28
+  </insert>
29
+  <insert id="insertSelective" parameterType="com.community.huiju.model.TaVisitorLicenseSetting" >
30
+    insert into ta_visitor_license_setting
31
+    <trim prefix="(" suffix=")" suffixOverrides="," >
32
+      <if test="id != null" >
33
+        id,
34
+      </if>
35
+      <if test="communityId != null" >
36
+        community_id,
37
+      </if>
38
+      <if test="createDate != null" >
39
+        create_date,
40
+      </if>
41
+      <if test="createUser != null" >
42
+        create_user,
43
+      </if>
44
+    </trim>
45
+    <trim prefix="values (" suffix=")" suffixOverrides="," >
46
+      <if test="id != null" >
47
+        #{id,jdbcType=INTEGER},
48
+      </if>
49
+      <if test="communityId != null" >
50
+        #{communityId,jdbcType=INTEGER},
51
+      </if>
52
+      <if test="createDate != null" >
53
+        #{createDate,jdbcType=TIMESTAMP},
54
+      </if>
55
+      <if test="createUser != null" >
56
+        #{createUser,jdbcType=INTEGER},
57
+      </if>
58
+    </trim>
59
+  </insert>
60
+  <update id="updateByPrimaryKeySelective" parameterType="com.community.huiju.model.TaVisitorLicenseSetting" >
61
+    update ta_visitor_license_setting
62
+    <set >
63
+      <if test="communityId != null" >
64
+        community_id = #{communityId,jdbcType=INTEGER},
65
+      </if>
66
+      <if test="createDate != null" >
67
+        create_date = #{createDate,jdbcType=TIMESTAMP},
68
+      </if>
69
+      <if test="createUser != null" >
70
+        create_user = #{createUser,jdbcType=INTEGER},
71
+      </if>
72
+    </set>
73
+    where id = #{id,jdbcType=INTEGER}
74
+  </update>
75
+  <update id="updateByPrimaryKey" parameterType="com.community.huiju.model.TaVisitorLicenseSetting" >
76
+    update ta_visitor_license_setting
77
+    set community_id = #{communityId,jdbcType=INTEGER},
78
+      create_date = #{createDate,jdbcType=TIMESTAMP},
79
+      create_user = #{createUser,jdbcType=INTEGER}
80
+    where id = #{id,jdbcType=INTEGER}
81
+  </update>
82
+</mapper>

+ 63
- 0
CODE/smart-community/property-api/src/main/java/com/community/huiju/controller/TaVisitorLicenseSettingController.java 查看文件

1
+package com.community.huiju.controller;
2
+
3
+
4
+import com.community.commom.mode.ResponseBean;
5
+import com.community.commom.session.UserElement;
6
+import com.community.huiju.common.base.BaseController;
7
+import com.community.huiju.service.ITaVisitorLicenseSettingService;
8
+import io.swagger.annotations.Api;
9
+import io.swagger.annotations.ApiImplicitParam;
10
+import io.swagger.annotations.ApiImplicitParams;
11
+import io.swagger.annotations.ApiOperation;
12
+import org.springframework.beans.factory.annotation.Autowired;
13
+import org.springframework.web.bind.annotation.RequestMapping;
14
+import org.springframework.web.bind.annotation.RequestMethod;
15
+import org.springframework.web.bind.annotation.RequestParam;
16
+import org.springframework.web.bind.annotation.RestController;
17
+
18
+import javax.servlet.http.HttpSession;
19
+
20
+/**
21
+ * <p>
22
+ * 录入访客车牌功能开关表 前端控制器
23
+ * </p>
24
+ *
25
+ * @author jobob
26
+ * @since 2019-05-27
27
+ */
28
+@RestController
29
+@RequestMapping("/")
30
+@Api(value = "录入访客车牌功能开关", description = "录入访客车牌功能开关")
31
+public class TaVisitorLicenseSettingController extends BaseController {
32
+
33
+    @Autowired
34
+    private ITaVisitorLicenseSettingService taVisitorLicenseSettingService;
35
+
36
+    @ApiOperation(value = "是否开启访客邀请车辆", notes = "是否开启访客邀请车辆")
37
+    @ApiImplicitParams({
38
+            @ApiImplicitParam(dataTypeClass = Boolean.class, paramType = "form", name = "visitorLicenseBool", value = "true 表示开启  false 关闭"),
39
+            @ApiImplicitParam(dataTypeClass = String.class, paramType = "header", name = "X-Auth-Token", value = "Token")
40
+    })
41
+    @RequestMapping(value = "/visitor/saveOrDelete", method = RequestMethod.POST)
42
+    public ResponseBean saveOrDelete(HttpSession session, @RequestParam("visitorLicenseBool") Boolean visitorLicenseBool){
43
+        ResponseBean responseBean = new ResponseBean();
44
+        UserElement userElement = getUserElement(session);
45
+        responseBean = taVisitorLicenseSettingService.saveOrDelete(userElement, visitorLicenseBool);
46
+
47
+        return responseBean;
48
+    }
49
+
50
+
51
+    @ApiOperation(value = "查看是否开启访客车辆邀请", notes = "查看是否开启访客车辆邀请")
52
+    @ApiImplicitParams({
53
+            @ApiImplicitParam(paramType = "header", dataTypeClass = String.class, name = "X-Auth-Token", value = "Token")
54
+    })
55
+    @RequestMapping(value = "/visitor", method = RequestMethod.GET)
56
+    public ResponseBean getVisitorLicense(HttpSession session) {
57
+        ResponseBean responseBean = new ResponseBean();
58
+        UserElement userElement = getUserElement(session);
59
+        responseBean = taVisitorLicenseSettingService.getVisitorLicense(userElement);
60
+        return responseBean;
61
+    }
62
+
63
+}

+ 16
- 0
CODE/smart-community/property-api/src/main/java/com/community/huiju/dao/TaVisitorLicenseSettingMapper.java 查看文件

1
+package com.community.huiju.dao;
2
+
3
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
+import com.community.huiju.model.TaVisitorLicenseSetting;
5
+
6
+/**
7
+ * <p>
8
+ * 录入访客车牌功能开关表 Mapper 接口
9
+ * </p>
10
+ *
11
+ * @author jobob
12
+ * @since 2019-05-27
13
+ */
14
+public interface TaVisitorLicenseSettingMapper extends BaseMapper<TaVisitorLicenseSetting> {
15
+
16
+}

+ 49
- 0
CODE/smart-community/property-api/src/main/java/com/community/huiju/model/TaVisitorLicenseSetting.java 查看文件

1
+package com.community.huiju.model;
2
+
3
+import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableField;
5
+import com.baomidou.mybatisplus.annotation.TableId;
6
+import com.baomidou.mybatisplus.annotation.TableName;
7
+import lombok.Data;
8
+import lombok.EqualsAndHashCode;
9
+import lombok.experimental.Accessors;
10
+
11
+import java.io.Serializable;
12
+import java.time.LocalDateTime;
13
+
14
+/**
15
+ * <p>
16
+ * 录入访客车牌功能开关表
17
+ * </p>
18
+ *
19
+ * @author jobob
20
+ * @since 2019-05-27
21
+ */
22
+@Data
23
+@EqualsAndHashCode(callSuper = false)
24
+@Accessors(chain = true)
25
+@TableName("ta_visitor_license_setting")
26
+public class TaVisitorLicenseSetting implements Serializable {
27
+
28
+    private static final long serialVersionUID = 1L;
29
+
30
+    @TableId(value = "id", type = IdType.AUTO)
31
+    private Integer id;
32
+
33
+    /**
34
+     * 小区ID
35
+     */
36
+    private Integer communityId;
37
+
38
+    /**
39
+     * 创建时间
40
+     */
41
+    private LocalDateTime createDate;
42
+
43
+    /**
44
+     * 物业端创建人
45
+     */
46
+    private Integer createUser;
47
+
48
+
49
+}

+ 33
- 0
CODE/smart-community/property-api/src/main/java/com/community/huiju/service/ITaVisitorLicenseSettingService.java 查看文件

1
+package com.community.huiju.service;
2
+
3
+import com.baomidou.mybatisplus.extension.service.IService;
4
+import com.community.commom.mode.ResponseBean;
5
+import com.community.commom.session.UserElement;
6
+import com.community.huiju.model.TaVisitorLicenseSetting;
7
+
8
+/**
9
+ * <p>
10
+ * 录入访客车牌功能开关表 服务类
11
+ * </p>
12
+ *
13
+ * @author jobob
14
+ * @since 2019-05-27
15
+ */
16
+public interface ITaVisitorLicenseSettingService extends IService<TaVisitorLicenseSetting> {
17
+
18
+    /**
19
+     * true 开启访客邀请的车辆  false 关闭访客邀请的车辆
20
+     * @param userElement
21
+     * @param visitorLicenseBool
22
+     * @return
23
+     */
24
+    ResponseBean saveOrDelete(UserElement userElement, Boolean visitorLicenseBool);
25
+
26
+    /**
27
+     * 获取 访客邀请车辆是否开启
28
+     * @param userElement
29
+     * @return
30
+     */
31
+    ResponseBean getVisitorLicense(UserElement userElement);
32
+
33
+}

+ 69
- 0
CODE/smart-community/property-api/src/main/java/com/community/huiju/service/impl/TaVisitorLicenseSettingServiceImpl.java 查看文件

1
+package com.community.huiju.service.impl;
2
+
3
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
5
+import com.community.commom.mode.ResponseBean;
6
+import com.community.commom.session.UserElement;
7
+import com.community.huiju.dao.TaVisitorLicenseSettingMapper;
8
+import com.community.huiju.model.TaVisitorLicenseSetting;
9
+import com.community.huiju.service.ITaVisitorLicenseSettingService;
10
+import org.springframework.stereotype.Service;
11
+
12
+import java.time.LocalDateTime;
13
+
14
+/**
15
+ * <p>
16
+ * 录入访客车牌功能开关表 服务实现类
17
+ * </p>
18
+ *
19
+ * @author jobob
20
+ * @since 2019-05-27
21
+ */
22
+@Service
23
+public class TaVisitorLicenseSettingServiceImpl extends ServiceImpl<TaVisitorLicenseSettingMapper, TaVisitorLicenseSetting> implements ITaVisitorLicenseSettingService {
24
+
25
+    @Override
26
+    public ResponseBean saveOrDelete(UserElement userElement, Boolean visitorLicenseBool) {
27
+        ResponseBean responseBean = new ResponseBean();
28
+
29
+        QueryWrapper<TaVisitorLicenseSetting> visitorLicenseSettingQueryWrapper = new QueryWrapper<>();
30
+        visitorLicenseSettingQueryWrapper.eq("community_id", userElement.getCommunityId());
31
+        TaVisitorLicenseSetting taVisitorLicenseSetting = this.getOne(visitorLicenseSettingQueryWrapper);
32
+
33
+        // true 表示开启访客邀请车辆
34
+        if (visitorLicenseBool) {
35
+            if (null != taVisitorLicenseSetting) {
36
+                responseBean.addSuccess("操作成功!");
37
+                return responseBean;
38
+            }
39
+            TaVisitorLicenseSetting visitorLicenseSetting = new TaVisitorLicenseSetting();
40
+            visitorLicenseSetting.setCommunityId(userElement.getCommunityId());
41
+            visitorLicenseSetting.setCreateDate(LocalDateTime.now());
42
+            visitorLicenseSetting.setCreateUser(userElement.getId());
43
+
44
+            this.save(visitorLicenseSetting);
45
+
46
+            responseBean.addSuccess("操作成功!");
47
+            return responseBean;
48
+        }
49
+
50
+
51
+        if (null != taVisitorLicenseSetting) {
52
+            this.removeById(taVisitorLicenseSetting.getId());
53
+        }
54
+        responseBean.addSuccess("操作成功!");
55
+        return responseBean;
56
+    }
57
+
58
+    @Override
59
+    public ResponseBean getVisitorLicense(UserElement userElement) {
60
+        ResponseBean responseBean = new ResponseBean();
61
+
62
+        QueryWrapper<TaVisitorLicenseSetting> visitorLicenseSettingQueryWrapper = new QueryWrapper<>();
63
+        visitorLicenseSettingQueryWrapper.eq("community_id", userElement.getCommunityId());
64
+        TaVisitorLicenseSetting visitorLicenseSetting = this.getOne(visitorLicenseSettingQueryWrapper);
65
+        // true 表示启用了访客邀请的车辆, false 表示未启用访客邀请的车辆
66
+        responseBean.addSuccess(null != visitorLicenseSetting ? true : false);
67
+        return responseBean;
68
+    }
69
+}

+ 5
- 0
CODE/smart-community/property-api/src/main/resources/mapper/TaVisitorLicenseSettingMapper.xml 查看文件

1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3
+<mapper namespace="com.community.huiju.dao.TaVisitorLicenseSettingMapper">
4
+
5
+</mapper>

+ 18
- 0
VUECODE/smart-property-manage/src/api/banner.js 查看文件

74
   })
74
   })
75
 }
75
 }
76
 
76
 
77
+// 查看是否开启访客车辆邀请
78
+export function getVisitorLicenseSetting() {
79
+  return request({
80
+    url: '/visitor',
81
+    method: 'get'
82
+  })
83
+}
84
+
85
+// 是否开启访客邀请车辆
86
+export function visitorSaveOrDelete(visitorLicenseBool) {
87
+  return request({
88
+    url: '/visitor/saveOrDelete',
89
+    method: 'post',
90
+    params: {
91
+      visitorLicenseBool: visitorLicenseBool
92
+    }
93
+  })
94
+}

+ 19
- 1
VUECODE/smart-property-manage/src/store/modules/banner.js 查看文件

1
-import { getBanner, addBanner, updateBanner, deleteBanner, getByBannerId, carouselAnnouncementBanner, carouselActivityBanner, carouselGetBanner } from '@/api/banner'
1
+import { getBanner, addBanner, updateBanner, deleteBanner, getByBannerId, carouselAnnouncementBanner, carouselActivityBanner, carouselGetBanner, getVisitorLicenseSetting, visitorSaveOrDelete } from '@/api/banner'
2
 
2
 
3
 const banner = {
3
 const banner = {
4
   actions: {
4
   actions: {
86
           reject(error)
86
           reject(error)
87
         })
87
         })
88
       })
88
       })
89
+    },
90
+    GetVisitorLicenseSetting({ commit }) { // 查看是否开启访客车辆邀请
91
+      return new Promise((resolve, reject) => {
92
+        getVisitorLicenseSetting().then(response => {
93
+          resolve(response)
94
+        }).catch(error => {
95
+          reject(error)
96
+        })
97
+      })
98
+    },
99
+    VisitorSaveOrDelete({ commit }, data) { // 是否开启访客邀请车辆
100
+      return new Promise((resolve, reject) => {
101
+        visitorSaveOrDelete(data).then(response => {
102
+          resolve(response)
103
+        }).catch(error => {
104
+          reject(error)
105
+        })
106
+      })
89
     }
107
     }
90
   }
108
   }
91
 }
109
 }

+ 35
- 1
VUECODE/smart-property-manage/src/views/systemResources/banner/index.vue 查看文件

16
       </el-tooltip>
16
       </el-tooltip>
17
       <el-button v-if="activityBannerNumBool" type="primary" @click="carouselActivityBanner">保存</el-button>
17
       <el-button v-if="activityBannerNumBool" type="primary" @click="carouselActivityBanner">保存</el-button>
18
     </div>
18
     </div>
19
+    <div style="width: 1000px; margin-left: auto; margin-right: auto; margin-top: 20px;">
20
+      <span style="font-size:0.7vw;color:#666666;">业主邀请访客时,录入访客车牌功能 开还是关?</span>
21
+      <el-radio v-model="visitorBool" :label="true" style="margin-left: 58px;" @change="visitorSaveOrDelete">开</el-radio>
22
+      <el-radio v-model="visitorBool" :label="false" @change="visitorSaveOrDelete">关</el-radio>
23
+      <el-tooltip class="item" effect="dark" content="小区如果实际允许临时车出入停车场,则建议此配置为关。只有小区禁止临时车进入时,业主才需要邀请访客车辆进入小区。" placement="top-start">
24
+        <i class="el-icon-info"/>
25
+      </el-tooltip>
26
+      <el-button v-if="activityBannerNumBool" type="primary" @click="carouselActivityBanner">保存</el-button>
27
+    </div>
19
   </div>
28
   </div>
20
 </template>
29
 </template>
21
 
30
 
27
       announcementBannerNum: 0, // banner数量
36
       announcementBannerNum: 0, // banner数量
28
       activityBannerNum: 0, // 活动banner数量
37
       activityBannerNum: 0, // 活动banner数量
29
       announcementBannerBool: false, // 是否显示公告的保存按钮
38
       announcementBannerBool: false, // 是否显示公告的保存按钮
30
-      activityBannerNumBool: false // 是否显示活动的保存按钮
39
+      activityBannerNumBool: false, // 是否显示活动的保存按钮
40
+      visitorBool: false // 是否打开
31
     }
41
     }
32
   },
42
   },
33
   mounted() {
43
   mounted() {
34
     this.carouselGetBanner()
44
     this.carouselGetBanner()
45
+    this.getVisitorLicenseSetting()
35
   },
46
   },
36
   methods: {
47
   methods: {
37
     handleBannerChange(value) {
48
     handleBannerChange(value) {
78
       }).catch(() => {
89
       }).catch(() => {
79
         console.log('error CarouselGetBanner')
90
         console.log('error CarouselGetBanner')
80
       })
91
       })
92
+    },
93
+    getVisitorLicenseSetting() { // 查看是否开启访客车辆邀请
94
+      this.$store.dispatch('GetVisitorLicenseSetting').then(res => {
95
+        const resCode = res.code
96
+        if (resCode === '0') {
97
+          this.visitorBool = res.data
98
+        }
99
+      }).catch(() => {
100
+        console.log('error GetVisitorLicenseSetting')
101
+      })
102
+    },
103
+    visitorSaveOrDelete() { // 是否开启访客邀请车辆
104
+      this.$store.dispatch('VisitorSaveOrDelete', this.visitorBool).then(res => {
105
+        const resCode = res.code
106
+        if (resCode === '0') {
107
+          this.$message.success(res.message)
108
+          return
109
+        }
110
+        this.$message.error(res.message)
111
+      }).catch(() => {
112
+        console.log('error VisitorSaveOrDelete')
113
+      })
81
     }
114
     }
115
+
82
   }
116
   }
83
 
117
 
84
 }
118
 }

+ 0
- 10
VUECODE/smart-property-manage/src/views/systemResources/homeIndex/index.html 查看文件

1
-<!DOCTYPE html>
2
-<html lang="en">
3
-<head>
4
-    <meta charset="UTF-8">
5
-    <title>$Title$</title>
6
-</head>
7
-<body>
8
-$END$
9
-</body>
10
-</html>

+ 1
- 1
VUECODE/smart-property-manage/src/views/systemResources/property/index.vue 查看文件

5
         <el-input v-model="formInline.name" placeholder="名称"/>
5
         <el-input v-model="formInline.name" placeholder="名称"/>
6
       </el-form-item>
6
       </el-form-item>
7
       <el-form-item label="号码">
7
       <el-form-item label="号码">
8
-        <el-input v-model="formInline.tel" placeholder="号码"/>
8
+        <el-input v-model="formInline.tel" placeholder="号码" oninput="value=value.replace(/[^\d]/g,'')"/>
9
       </el-form-item>
9
       </el-form-item>
10
       <el-form-item label="备注">
10
       <el-form-item label="备注">
11
         <el-input v-model="formInline.remark" placeholder="备注"/>
11
         <el-input v-model="formInline.remark" placeholder="备注"/>

+ 30
- 31
VUECODE/smart-property-manage/src/views/ticket/details.vue 查看文件

1
 <template>
1
 <template>
2
   <div id="app" style="margin-top:30px;font-size: 14px; color: #606266;">
2
   <div id="app" style="margin-top:30px;font-size: 14px; color: #606266;">
3
-    <el-form :inline="true" :model="listQuery" class="form-listQuery">
3
+    <el-form :inline="true" :model="listQuery" class="form-listQuery" style="margin-right: 15px;">
4
       <div style="transform:translateY(-70%); margin-top:5px;">
4
       <div style="transform:translateY(-70%); margin-top:5px;">
5
         <span style="padding-left:0.8%;font-size: 16px;color: rgb(96, 98, 102);font-weight: bold;">工单详情</span>
5
         <span style="padding-left:0.8%;font-size: 16px;color: rgb(96, 98, 102);font-weight: bold;">工单详情</span>
6
       </div>
6
       </div>
103
                     <tr>
103
                     <tr>
104
                       <td>
104
                       <td>
105
                         <div class="processing_content_detail" style="float:left;width:70%">
105
                         <div class="processing_content_detail" style="float:left;width:70%">
106
-                          <span>{{ itemContent.userName }}:{{ itemContent.content }}
106
+                          <span>{{ itemContent.userName }}: {{ itemContent.content }}
107
                             <span style="color:#219AFF"/>
107
                             <span style="color:#219AFF"/>
108
                           </span>
108
                           </span>
109
                         </div>
109
                         </div>
112
                     <tr>
112
                     <tr>
113
                       <td>
113
                       <td>
114
                         <div class="processing_content_detail" style="float:left;width:90%">
114
                         <div class="processing_content_detail" style="float:left;width:90%">
115
-                          <div style="float:left;width: 2px;height: 20px; background:#C7D4E9;margin-left:10px;margin-right:10px"/>
116
                           <!-- <img :src="contentImgURL.imageUrl"  v-for="contentImgURL in itemContent.imgURL" preview preview-text="描述"  width="200" style="margin:5px;"> -->
115
                           <!-- <img :src="contentImgURL.imageUrl"  v-for="contentImgURL in itemContent.imgURL" preview preview-text="描述"  width="200" style="margin:5px;"> -->
117
                           <img v-for="contentImgURL in itemContent.imgURL" :src="contentImgURL.imageUrl" preview width="100" height="100" style="margin:5px;"/>
116
                           <img v-for="contentImgURL in itemContent.imgURL" :src="contentImgURL.imageUrl" preview width="100" height="100" style="margin:5px;"/>
118
                           <div><span ><i class="el-icon-time"/>{{ formatDate(itemContent.createDate) }}</span> </div>
117
                           <div><span ><i class="el-icon-time"/>{{ formatDate(itemContent.createDate) }}</span> </div>
119
-                          <div> <hr style="height:1px;border:none;border-top:1px solid #FF8888;" width="200%"></div>
118
+                          <div> <hr style="height:1px;border:none;border-top:1px solid #99a9bf;" width="200%"></div>
120
                         </div>
119
                         </div>
121
                       </td>
120
                       </td>
122
                     </tr>
121
                     </tr>
126
             </el-step>
125
             </el-step>
127
           </el-steps>
126
           </el-steps>
128
         </div>
127
         </div>
129
-        <div v-if="listQuery.status==='0'||listQuery.status==='3'">
128
+        <div v-if="listQuery.status==='0'||listQuery.status==='3'" style="margin-left: -5px; margin-top: 30px;">
130
           <div>
129
           <div>
131
-            <span>参与沟通</span>
130
+            <span style="font-size: 16px;color: rgb(96, 98, 102);font-weight: bold;">参与沟通</span>
132
           </div>
131
           </div>
133
           <br>
132
           <br>
134
           <div>
133
           <div>
135
             <textarea id="message_textarea" v-model="listQuery.textContent" placeholder="回复TA或向TA提问" class="textarea-inherit" rows="4"/>
134
             <textarea id="message_textarea" v-model="listQuery.textContent" placeholder="回复TA或向TA提问" class="textarea-inherit" rows="4"/>
136
           </div>
135
           </div>
137
-          <div>
136
+          <div style="margin-top: 10px;">
138
             <el-form-item label="图片附件">
137
             <el-form-item label="图片附件">
139
               <el-upload
138
               <el-upload
140
                 :limit="8"
139
                 :limit="8"
155
             <el-button type="primary" style="margin-left: 90%;transform:translateY(-340%);" @click="submitContent">提交</el-button>
154
             <el-button type="primary" style="margin-left: 90%;transform:translateY(-340%);" @click="submitContent">提交</el-button>
156
           </div>
155
           </div>
157
         </div>
156
         </div>
158
-        <div v-if="listQuery.status==='3'">
157
+        <div v-if="listQuery.status==='3'" style="margin-left: -5px;">
159
           <div>
158
           <div>
160
-            <span>流程操作</span>
159
+            <span style="font-size: 16px;color: rgb(96, 98, 102);font-weight: bold;">流程操作</span>
161
           </div>
160
           </div>
162
           <br>
161
           <br>
163
           <div>
162
           <div>
164
             <textarea id="message_textarea" v-model="listQuery.relationContent" placeholder="处理完了?在此填写处理结果,发送给户主让TA给好评~" class="textarea-inherit" rows="4"/>
163
             <textarea id="message_textarea" v-model="listQuery.relationContent" placeholder="处理完了?在此填写处理结果,发送给户主让TA给好评~" class="textarea-inherit" rows="4"/>
165
           </div>
164
           </div>
166
-          <div>
165
+          <div style="margin-top: 10px;">
167
             <el-form-item label="图片附件">
166
             <el-form-item label="图片附件">
168
               <el-upload
167
               <el-upload
169
                 :limit="8"
168
                 :limit="8"
186
         </div>
185
         </div>
187
 
186
 
188
         <div v-if="listQuery.status==='0'">
187
         <div v-if="listQuery.status==='0'">
189
-          <el-form-item style="width:1000px;" >
190
-            <el-select v-model="listQuery.selectVale" placeholder="请选择工单由谁负责,然后点击受理分配" >
188
+          <el-form-item>
189
+            <el-select v-model="listQuery.selectVale" placeholder="请选择工单由谁负责,然后点击受理分配" style="width: 300px;">
191
               <el-option label="请选择工单由谁负责,然后点击受理分配" value="-1" />
190
               <el-option label="请选择工单由谁负责,然后点击受理分配" value="-1" />
192
               <el-option :value="listQuery.currentUserName" label="我自己"/>
191
               <el-option :value="listQuery.currentUserName" label="我自己"/>
193
               <el-option v-for="user in listQuery.userList" :label="user.userName" :value="user.id"/>
192
               <el-option v-for="user in listQuery.userList" :label="user.userName" :value="user.id"/>
194
             </el-select>
193
             </el-select>
194
+            <el-button style="margin-left: 30px;" type="primary" @click="addRecord">受理分配</el-button>
195
           </el-form-item>
195
           </el-form-item>
196
-          <el-button type="primary" @click="addRecord">受理分配</el-button>
197
-          <a><span style="margin-left: 600px;color: #009FCC" @click="noAccept">{{ '拒绝受理?' }}&nbsp;&nbsp;&nbsp;&nbsp;</span></a><span>{{ '拒绝受理即关闭此工单,不再进行后续任何流程,请谨慎' }}</span>
196
+          <a><span style="color: #009FCC;margin-left: 300px;margin-top: 10px;" @click="noAccept">{{ '拒绝受理?' }}&nbsp;&nbsp;&nbsp;&nbsp;</span></a><span>{{ '拒绝受理即关闭此工单,不再进行后续任何流程,请谨慎' }}</span>
198
         </div>
197
         </div>
199
       </div>
198
       </div>
200
     </el-form>
199
     </el-form>
429
     },
428
     },
430
     // 回复
429
     // 回复
431
     submitContent() {
430
     submitContent() {
431
+      if (this.listQuery.textContent === undefined || this.listQuery.textContent === '') {
432
+        this.$message.error('请输入内容')
433
+        return
434
+      }
432
       const loading = this.$loading({
435
       const loading = this.$loading({
433
         lock: true,
436
         lock: true,
434
         text: 'Loading',
437
         text: 'Loading',
435
         spinner: 'el-icon-loading',
438
         spinner: 'el-icon-loading',
436
         background: 'rgba(0, 0, 0, 0.7)'
439
         background: 'rgba(0, 0, 0, 0.7)'
437
       })
440
       })
438
-      if (this.listQuery.textContent === undefined || this.listQuery.textContent === '') {
439
-        this.$message.error('请输入内容')
440
-        loading.close()
441
-        return
442
-      }
443
       this.listQuery.img = this.contentImgAA
441
       this.listQuery.img = this.contentImgAA
444
-      this.$store.dispatch('AddRecordComment', this.listQuery,).then((res) => {
442
+      this.$store.dispatch('AddRecordComment', this.listQuery).then((res) => {
445
         this.Ass = false
443
         this.Ass = false
446
         this.contentImgAA = []
444
         this.contentImgAA = []
447
         this.dataQuery()
445
         this.dataQuery()
513
     },
511
     },
514
     // 流程提交
512
     // 流程提交
515
     succeedClick() {
513
     succeedClick() {
514
+      if (this.listQuery.relationContent === undefined || this.listQuery.relationContent === '') {
515
+        this.$message.error('请输入处理结果')
516
+        return
517
+      }
518
+
516
       const loading = this.$loading({
519
       const loading = this.$loading({
517
         lock: true,
520
         lock: true,
518
         text: 'Loading',
521
         text: 'Loading',
519
         spinner: 'el-icon-loading',
522
         spinner: 'el-icon-loading',
520
         background: 'rgba(0, 0, 0, 0.7)'
523
         background: 'rgba(0, 0, 0, 0.7)'
521
       })
524
       })
522
-
523
-      if (this.listQuery.relationContent === undefined || this.listQuery.relationContent === '') {
524
-        this.$message.error('请填写内容')
525
-        loading.close()
526
-        return
527
-      }
528
       this.listQuery.imgIO = this.contentImgIO
525
       this.listQuery.imgIO = this.contentImgIO
529
       this.$store.dispatch('UpdateTicket', this.listQuery).then((res) => {
526
       this.$store.dispatch('UpdateTicket', this.listQuery).then((res) => {
530
         this.Ass = false
527
         this.Ass = false
568
     background-color: #D9E5F9;
565
     background-color: #D9E5F9;
569
   } */
566
   } */
570
   .processing_content_detail{
567
   .processing_content_detail{
571
-     margin-left: 10px;
572
-     margin-top: 3.5px;
573
-     margin-bottom: 3.5px;
574
-	   width:200px;
575
-     display:inline-block;
568
+    margin-left: 10px;
569
+    margin-top: 3.5px;
570
+    margin-bottom: 3.5px;
571
+    width:200px;
572
+    display:inline-block;
573
+    font-size: 14px;
574
+    color: rgb(96, 98, 102);
576
   }
575
   }
577
   .step-row{
576
   .step-row{
578
      min-width:400px;
577
      min-width:400px;

+ 2
- 2
VUECODE/smart-property-manage/src/views/ticket/index.vue 查看文件

56
       <el-table-column prop="ticketTitle" label="标题" align="center">
56
       <el-table-column prop="ticketTitle" label="标题" align="center">
57
       <template slot-scope="scope" >
57
       <template slot-scope="scope" >
58
         <a :title="scope.row.ticketTitle" @click="clickTitle(scope.row.id)">
58
         <a :title="scope.row.ticketTitle" @click="clickTitle(scope.row.id)">
59
-          <span style="color: #009FCC	">
59
+          <span style="color: rgb(64, 158, 255);">
60
            {{ scope.row.ticketTitle.length>='15'?scope.row.ticketTitle.substring(0,15)+'..':scope.row.ticketTitle }}
60
            {{ scope.row.ticketTitle.length>='15'?scope.row.ticketTitle.substring(0,15)+'..':scope.row.ticketTitle }}
61
           </span>
61
           </span>
62
         </a>
62
         </a>
227
 .button {
227
 .button {
228
   margin-left: 20px;
228
   margin-left: 20px;
229
 }
229
 }
230
-</style>
230
+</style>