Преглед изворни кода

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

魏熙美 пре 6 година
родитељ
комит
85ca38e28f
38 измењених фајлова са 2479 додато и 2 уклоњено
  1. 70
    0
      CODE/smart-community/property-api/src/main/java/com/community/huiju/controller/HotelController.java
  2. 21
    0
      CODE/smart-community/property-api/src/main/java/com/community/huiju/controller/HotelRoomController.java
  3. 20
    0
      CODE/smart-community/property-api/src/main/java/com/community/huiju/controller/TpRentalHouseController.java
  4. 20
    0
      CODE/smart-community/property-api/src/main/java/com/community/huiju/controller/TpRentalHouseImgController.java
  5. 24
    0
      CODE/smart-community/property-api/src/main/java/com/community/huiju/dao/HotelMapper.java
  6. 32
    0
      CODE/smart-community/property-api/src/main/java/com/community/huiju/dao/HotelRoomMapper.java
  7. 18
    0
      CODE/smart-community/property-api/src/main/java/com/community/huiju/dao/HotelSettingMapper.java
  8. 16
    0
      CODE/smart-community/property-api/src/main/java/com/community/huiju/dao/TpRentalHouseImgMapper.java
  9. 16
    0
      CODE/smart-community/property-api/src/main/java/com/community/huiju/dao/TpRentalHouseMapper.java
  10. 79
    0
      CODE/smart-community/property-api/src/main/java/com/community/huiju/model/Hotel.java
  11. 94
    0
      CODE/smart-community/property-api/src/main/java/com/community/huiju/model/HotelRoom.java
  12. 47
    0
      CODE/smart-community/property-api/src/main/java/com/community/huiju/model/HotelSetting.java
  13. 178
    0
      CODE/smart-community/property-api/src/main/java/com/community/huiju/model/TpRentalHouse.java
  14. 51
    0
      CODE/smart-community/property-api/src/main/java/com/community/huiju/model/TpRentalHouseImg.java
  15. 16
    0
      CODE/smart-community/property-api/src/main/java/com/community/huiju/service/IHotelRoomService.java
  16. 32
    0
      CODE/smart-community/property-api/src/main/java/com/community/huiju/service/IHotelService.java
  17. 16
    0
      CODE/smart-community/property-api/src/main/java/com/community/huiju/service/ITpRentalHouseImgService.java
  18. 16
    0
      CODE/smart-community/property-api/src/main/java/com/community/huiju/service/ITpRentalHouseService.java
  19. 20
    0
      CODE/smart-community/property-api/src/main/java/com/community/huiju/service/impl/HotelRoomServiceImpl.java
  20. 91
    0
      CODE/smart-community/property-api/src/main/java/com/community/huiju/service/impl/HotelServiceImpl.java
  21. 20
    0
      CODE/smart-community/property-api/src/main/java/com/community/huiju/service/impl/TpRentalHouseImgServiceImpl.java
  22. 20
    0
      CODE/smart-community/property-api/src/main/java/com/community/huiju/service/impl/TpRentalHouseServiceImpl.java
  23. 7
    0
      CODE/smart-community/property-api/src/main/resources/mapper/HotelMapper.xml
  24. 28
    0
      CODE/smart-community/property-api/src/main/resources/mapper/HotelRoomMapper.xml
  25. 5
    0
      CODE/smart-community/property-api/src/main/resources/mapper/HotelSettingMapper.xml
  26. 5
    0
      CODE/smart-community/property-api/src/main/resources/mapper/TpRentalHouseImgMapper.xml
  27. 5
    0
      CODE/smart-community/property-api/src/main/resources/mapper/TpRentalHouseMapper.xml
  28. 32
    0
      VUECODE/smart-property-manage/src/api/grogshop.js
  29. 59
    0
      VUECODE/smart-property-manage/src/router/index.js
  30. 2
    1
      VUECODE/smart-property-manage/src/store/index.js
  31. 25
    0
      VUECODE/smart-property-manage/src/store/modules/grogshop.js
  32. 145
    0
      VUECODE/smart-property-manage/src/views/grogshop/configindex.vue
  33. 198
    0
      VUECODE/smart-property-manage/src/views/grogshop/grogshopRoom.vue
  34. 77
    0
      VUECODE/smart-property-manage/src/views/grogshop/grogshopRoomAdd.vue
  35. 315
    0
      VUECODE/smart-property-manage/src/views/rental/rentalAdd.vue
  36. 330
    0
      VUECODE/smart-property-manage/src/views/rental/rentalEdit.vue
  37. 328
    0
      VUECODE/smart-property-manage/src/views/rental/rentalIndex.vue
  38. 1
    1
      VUECODE/smart-property-manage/src/views/ticket/index.vue

+ 70
- 0
CODE/smart-community/property-api/src/main/java/com/community/huiju/controller/HotelController.java Прегледај датотеку

@@ -0,0 +1,70 @@
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.service.IHotelService;
7
+import io.swagger.annotations.Api;
8
+import io.swagger.annotations.ApiImplicitParam;
9
+import io.swagger.annotations.ApiImplicitParams;
10
+import io.swagger.annotations.ApiOperation;
11
+import org.springframework.beans.factory.annotation.Autowired;
12
+import org.springframework.web.bind.annotation.RequestBody;
13
+import org.springframework.web.bind.annotation.RequestMapping;
14
+
15
+import org.springframework.web.bind.annotation.RequestMethod;
16
+import org.springframework.web.bind.annotation.RestController;
17
+import com.community.huiju.common.base.BaseController;
18
+
19
+import javax.servlet.http.HttpSession;
20
+
21
+/**
22
+ * <p>
23
+ * 酒店 前端控制器
24
+ * </p>
25
+ *
26
+ * @author jobob
27
+ * @since 2019-05-13
28
+ */
29
+@RestController
30
+@RequestMapping("/")
31
+@Api(value = "", description = "酒店管理API")
32
+public class HotelController extends BaseController {
33
+    @Autowired
34
+    private IHotelService iHotelService;
35
+
36
+    @ApiOperation(value = "房屋列表", notes = "房屋列表")
37
+    @ApiImplicitParams({
38
+            @ApiImplicitParam(paramType = "body",dataType = "String",name = "parameter",value = "roomNo:房间号" +
39
+                    "roomName:房间名称" +
40
+                    "price:价格" +
41
+                    "roomStatus:(1:是已上架 2:是已下架)" +
42
+                    "beginTime:开始时间"+
43
+                    "endTime:结束时间"+
44
+                    "sort:权重")
45
+    })
46
+    @ApiImplicitParam(paramType = "header", dataTypeClass = String.class, name = "X-Auth-Token", value = "token")
47
+    @RequestMapping(value = "/hotelRoomList", method = RequestMethod.POST)
48
+    public ResponseBean hotelRoom(@RequestBody String parameter, HttpSession session){
49
+        UserElement userElement = getUserElement(session);
50
+        ResponseBean  responseBean = iHotelService.hotelRoomLiset(parameter,userElement.getCommunityId());
51
+        return responseBean;
52
+    }
53
+
54
+    @ApiOperation(value = "工单列表", notes = "工单列表")
55
+    @ApiImplicitParams({
56
+            @ApiImplicitParam(paramType = "body",dataType = "String",name = "parameter",value = "roomNo:房间号" +
57
+                    "roomName:房间名称" +
58
+                    "price:价格" +
59
+                    "roomStatus:(1:是已上架 2:是已下架)" +
60
+                    "remark:(描述)"+
61
+                    "sort:权重")
62
+    })
63
+    @ApiImplicitParam(paramType = "header", dataTypeClass = String.class, name = "X-Auth-Token", value = "token")
64
+    @RequestMapping(value = "/hotelRoomAdd", method = RequestMethod.POST)
65
+    public ResponseBean hotelRoomAdd(@RequestBody String parameter, HttpSession session){
66
+        UserElement userElement = getUserElement(session);
67
+        ResponseBean  responseBean = iHotelService.hotelRoomAdd(parameter,userElement);
68
+        return responseBean;
69
+    }
70
+}

+ 21
- 0
CODE/smart-community/property-api/src/main/java/com/community/huiju/controller/HotelRoomController.java Прегледај датотеку

@@ -0,0 +1,21 @@
1
+package com.community.huiju.controller;
2
+
3
+
4
+import org.springframework.web.bind.annotation.RequestMapping;
5
+
6
+import org.springframework.web.bind.annotation.RestController;
7
+import com.community.huiju.common.base.BaseController;
8
+
9
+/**
10
+ * <p>
11
+ * 酒店房间表 前端控制器
12
+ * </p>
13
+ *
14
+ * @author jobob
15
+ * @since 2019-05-13
16
+ */
17
+@RestController
18
+@RequestMapping("/")
19
+public class HotelRoomController extends BaseController {
20
+
21
+}

+ 20
- 0
CODE/smart-community/property-api/src/main/java/com/community/huiju/controller/TpRentalHouseController.java Прегледај датотеку

@@ -0,0 +1,20 @@
1
+package com.community.huiju.controller;
2
+
3
+
4
+import com.community.huiju.common.base.BaseController;
5
+import org.springframework.web.bind.annotation.RequestMapping;
6
+import org.springframework.web.bind.annotation.RestController;
7
+
8
+/**
9
+ * <p>
10
+ * 出租公寓表 前端控制器
11
+ * </p>
12
+ *
13
+ * @author jobob
14
+ * @since 2019-05-13
15
+ */
16
+@RestController
17
+@RequestMapping("/")
18
+public class TpRentalHouseController extends BaseController {
19
+
20
+}

+ 20
- 0
CODE/smart-community/property-api/src/main/java/com/community/huiju/controller/TpRentalHouseImgController.java Прегледај датотеку

@@ -0,0 +1,20 @@
1
+package com.community.huiju.controller;
2
+
3
+
4
+import com.community.huiju.common.base.BaseController;
5
+import org.springframework.web.bind.annotation.RequestMapping;
6
+import org.springframework.web.bind.annotation.RestController;
7
+
8
+/**
9
+ * <p>
10
+ * 出租房间图片 前端控制器
11
+ * </p>
12
+ *
13
+ * @author jobob
14
+ * @since 2019-05-13
15
+ */
16
+@RestController
17
+@RequestMapping("/")
18
+public class TpRentalHouseImgController extends BaseController {
19
+
20
+}

+ 24
- 0
CODE/smart-community/property-api/src/main/java/com/community/huiju/dao/HotelMapper.java Прегледај датотеку

@@ -0,0 +1,24 @@
1
+package com.community.huiju.dao;
2
+
3
+import com.community.huiju.model.Hotel;
4
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5
+import org.apache.ibatis.annotations.Mapper;
6
+import org.apache.ibatis.annotations.Param;
7
+
8
+/**
9
+ * <p>
10
+ * 酒店 Mapper 接口
11
+ * </p>
12
+ *
13
+ * @author jobob
14
+ * @since 2019-05-13
15
+ */
16
+@Mapper
17
+public interface HotelMapper extends BaseMapper<Hotel> {
18
+
19
+    /**
20
+     * 查询酒店,当前小区酒店只有一个
21
+     * @return
22
+     */
23
+    Hotel selectHotel(@Param("communityId") Integer communityId);
24
+}

+ 32
- 0
CODE/smart-community/property-api/src/main/java/com/community/huiju/dao/HotelRoomMapper.java Прегледај датотеку

@@ -0,0 +1,32 @@
1
+package com.community.huiju.dao;
2
+
3
+import com.baomidou.mybatisplus.core.metadata.IPage;
4
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
5
+import com.community.huiju.model.HotelRoom;
6
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
7
+import org.apache.ibatis.annotations.Mapper;
8
+import org.apache.ibatis.annotations.Param;
9
+
10
+import java.util.Date;
11
+
12
+/**
13
+ * <p>
14
+ * 酒店房间表 Mapper 接口
15
+ * </p>
16
+ *
17
+ * @author jobob
18
+ * @since 2019-05-13
19
+ */
20
+@Mapper
21
+public interface HotelRoomMapper extends BaseMapper<HotelRoom> {
22
+
23
+    /**
24
+     * 查询房间列表
25
+     * @param hotelRoom
26
+     * @param beginTime
27
+     * @param endTime
28
+     * @param communityId
29
+     * @return
30
+     */
31
+    IPage<HotelRoom> hotelRoomLiset(Page HotelRoom , @Param("hotelRoom") HotelRoom hotelRoom, @Param("beginTime") Date beginTime, @Param("endTime") Date endTime, @Param("communityId") Integer communityId);
32
+}

+ 18
- 0
CODE/smart-community/property-api/src/main/java/com/community/huiju/dao/HotelSettingMapper.java Прегледај датотеку

@@ -0,0 +1,18 @@
1
+package com.community.huiju.dao;
2
+
3
+import com.community.huiju.model.HotelSetting;
4
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5
+import org.apache.ibatis.annotations.Mapper;
6
+
7
+/**
8
+ * <p>
9
+ * 酒店开关设置 Mapper 接口
10
+ * </p>
11
+ *
12
+ * @author jobob
13
+ * @since 2019-05-13
14
+ */
15
+@Mapper
16
+public interface HotelSettingMapper extends BaseMapper<HotelSetting> {
17
+
18
+}

+ 16
- 0
CODE/smart-community/property-api/src/main/java/com/community/huiju/dao/TpRentalHouseImgMapper.java Прегледај датотеку

@@ -0,0 +1,16 @@
1
+package com.community.huiju.dao;
2
+
3
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
+import com.community.huiju.model.TpRentalHouseImg;
5
+
6
+/**
7
+ * <p>
8
+ * 出租房间图片 Mapper 接口
9
+ * </p>
10
+ *
11
+ * @author jobob
12
+ * @since 2019-05-13
13
+ */
14
+public interface TpRentalHouseImgMapper extends BaseMapper<TpRentalHouseImg> {
15
+
16
+}

+ 16
- 0
CODE/smart-community/property-api/src/main/java/com/community/huiju/dao/TpRentalHouseMapper.java Прегледај датотеку

@@ -0,0 +1,16 @@
1
+package com.community.huiju.dao;
2
+
3
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
+import com.community.huiju.model.TpRentalHouse;
5
+
6
+/**
7
+ * <p>
8
+ * 出租公寓表 Mapper 接口
9
+ * </p>
10
+ *
11
+ * @author jobob
12
+ * @since 2019-05-13
13
+ */
14
+public interface TpRentalHouseMapper extends BaseMapper<TpRentalHouse> {
15
+
16
+}

+ 79
- 0
CODE/smart-community/property-api/src/main/java/com/community/huiju/model/Hotel.java Прегледај датотеку

@@ -0,0 +1,79 @@
1
+package com.community.huiju.model;
2
+
3
+import com.baomidou.mybatisplus.annotation.TableName;
4
+import java.time.LocalDateTime;
5
+import java.io.Serializable;
6
+import lombok.Data;
7
+import lombok.EqualsAndHashCode;
8
+import lombok.experimental.Accessors;
9
+
10
+/**
11
+ * <p>
12
+ * 酒店
13
+ * </p>
14
+ *
15
+ * @author jobob
16
+ * @since 2019-05-13
17
+ */
18
+@Data
19
+@EqualsAndHashCode(callSuper = false)
20
+@Accessors(chain = true)
21
+@TableName("tp_hotel")
22
+public class Hotel implements Serializable {
23
+
24
+    private  Integer id;
25
+
26
+    private static final long serialVersionUID = 1L;
27
+
28
+    /**
29
+     * 小区ID
30
+     */
31
+    private Integer communityId;
32
+
33
+    /**
34
+     * 酒店电话
35
+     */
36
+    private String hotelTel;
37
+
38
+    /**
39
+     * 酒店地址
40
+     */
41
+    private String hotelAddress;
42
+
43
+    /**
44
+     * 酒店经度
45
+     */
46
+    private String hotelLongitude;
47
+
48
+    /**
49
+     * 酒店纬度
50
+     */
51
+    private String hotelLatitude;
52
+
53
+    /**
54
+     * 酒店介绍
55
+     */
56
+    private String hotelIntroduction;
57
+
58
+    /**
59
+     * 创建时间
60
+     */
61
+    private LocalDateTime createDate;
62
+
63
+    /**
64
+     * 创建人
65
+     */
66
+    private Integer createUser;
67
+
68
+    /**
69
+     * 更新时间
70
+     */
71
+    private LocalDateTime updateDate;
72
+
73
+    /**
74
+     * 更新人
75
+     */
76
+    private Integer updateUser;
77
+
78
+
79
+}

+ 94
- 0
CODE/smart-community/property-api/src/main/java/com/community/huiju/model/HotelRoom.java Прегледај датотеку

@@ -0,0 +1,94 @@
1
+package com.community.huiju.model;
2
+
3
+import com.baomidou.mybatisplus.annotation.TableField;
4
+import com.baomidou.mybatisplus.annotation.TableName;
5
+import java.time.LocalDateTime;
6
+import java.io.Serializable;
7
+import lombok.Data;
8
+import lombok.EqualsAndHashCode;
9
+import lombok.experimental.Accessors;
10
+
11
+/**
12
+ * <p>
13
+ * 酒店房间表
14
+ * </p>
15
+ *
16
+ * @author jobob
17
+ * @since 2019-05-13
18
+ */
19
+@Data
20
+@EqualsAndHashCode(callSuper = false)
21
+@Accessors(chain = true)
22
+@TableName("tp_hotel_room")
23
+public class HotelRoom implements Serializable {
24
+
25
+    private static final long serialVersionUID = 1L;
26
+
27
+    /**
28
+     * 小区ID
29
+     */
30
+    private Integer communityId;
31
+
32
+    /**
33
+     * 酒店ID
34
+     */
35
+    private Integer hotelId;
36
+
37
+    /**
38
+     * 房间编号
39
+     */
40
+    private String roomNo;
41
+
42
+    /**
43
+     * 房间名称
44
+     */
45
+    private String roomName;
46
+
47
+    /**
48
+     * 排序(权重)
49
+     */
50
+    private Integer sort;
51
+
52
+    /**
53
+     * 房间价格
54
+     */
55
+    private String price;
56
+
57
+    /**
58
+     * 上架状态 1 是已上架 2是已下架
59
+     */
60
+    private String roomStatus;
61
+
62
+    /**
63
+     * 房间备注
64
+     */
65
+    private String remark;
66
+
67
+    /**
68
+     * 创建时间
69
+     */
70
+    private LocalDateTime createDate;
71
+
72
+    /**
73
+     * 创建人
74
+     */
75
+    private Integer createUser;
76
+
77
+    /**
78
+     * 更新时间
79
+     */
80
+    private LocalDateTime updateDate;
81
+
82
+    /**
83
+     * 更新人
84
+     */
85
+    private Integer updateUser;
86
+
87
+    /**
88
+     * 编辑人
89
+     */
90
+    @TableField(exist = false)
91
+    private String editUser;
92
+
93
+
94
+}

+ 47
- 0
CODE/smart-community/property-api/src/main/java/com/community/huiju/model/HotelSetting.java Прегледај датотеку

@@ -0,0 +1,47 @@
1
+package com.community.huiju.model;
2
+
3
+import com.baomidou.mybatisplus.annotation.TableName;
4
+import java.time.LocalDateTime;
5
+import java.io.Serializable;
6
+import lombok.Data;
7
+import lombok.EqualsAndHashCode;
8
+import lombok.experimental.Accessors;
9
+
10
+/**
11
+ * <p>
12
+ * 酒店开关设置
13
+ * </p>
14
+ *
15
+ * @author jobob
16
+ * @since 2019-05-13
17
+ */
18
+@Data
19
+@EqualsAndHashCode(callSuper = false)
20
+@Accessors(chain = true)
21
+@TableName("tp_hotel_setting")
22
+public class HotelSetting implements Serializable {
23
+
24
+    private static final long serialVersionUID = 1L;
25
+
26
+    /**
27
+     * 小区ID
28
+     */
29
+    private Integer communityId;
30
+
31
+    /**
32
+     * 酒店ID
33
+     */
34
+    private Integer hotelId;
35
+
36
+    /**
37
+     * 创建时间
38
+     */
39
+    private LocalDateTime createDate;
40
+
41
+    /**
42
+     * 创建人
43
+     */
44
+    private Integer createUser;
45
+
46
+
47
+}

+ 178
- 0
CODE/smart-community/property-api/src/main/java/com/community/huiju/model/TpRentalHouse.java Прегледај датотеку

@@ -0,0 +1,178 @@
1
+package com.community.huiju.model;
2
+
3
+import com.baomidou.mybatisplus.annotation.TableField;
4
+import lombok.Data;
5
+import lombok.EqualsAndHashCode;
6
+import lombok.experimental.Accessors;
7
+
8
+import java.io.Serializable;
9
+import java.time.LocalDateTime;
10
+
11
+/**
12
+ * <p>
13
+ * 出租公寓表
14
+ * </p>
15
+ *
16
+ * @author jobob
17
+ * @since 2019-05-13
18
+ */
19
+@Data
20
+@EqualsAndHashCode(callSuper = false)
21
+@Accessors(chain = true)
22
+public class TpRentalHouse implements Serializable {
23
+
24
+    private static final long serialVersionUID = 1L;
25
+
26
+    /**
27
+     * 房间名称
28
+     */
29
+    private String houseName;
30
+
31
+    /**
32
+     * 房屋租金
33
+     */
34
+    private String rentalPrice;
35
+
36
+    /**
37
+     * 面积
38
+     */
39
+    private String area;
40
+
41
+    /**
42
+     * 出租方式 1 是整租 2是合租
43
+     */
44
+    private String rentalType;
45
+
46
+    /**
47
+     * 户型 1 是一室居 2是二室居 3 是三室局 4 是四室居及以上
48
+     */
49
+    private String houseType;
50
+
51
+    /**
52
+     * 上架状态 1 是已上架 2是已下架
53
+     */
54
+    private String houseStatus;
55
+
56
+    /**
57
+     * 楼层
58
+     */
59
+    private String houseLevel;
60
+
61
+    /**
62
+     * 标签
63
+     */
64
+    private String houseLabel;
65
+
66
+    /**
67
+     * 权重
68
+     */
69
+    private Integer sort;
70
+
71
+    /**
72
+     * 联系电话
73
+     */
74
+    private String houseTel;
75
+
76
+    /**
77
+     * 小区地址
78
+     */
79
+    private String communityAddress;
80
+
81
+    /**
82
+     * 小区经度
83
+     */
84
+    private String communityLongitude;
85
+
86
+    /**
87
+     * 小区纬度
88
+     */
89
+    private String communityLatitude;
90
+
91
+    /**
92
+     * 房屋介绍
93
+     */
94
+    private String houseIntroduction;
95
+
96
+    /**
97
+     * 床   1 有
98
+     */
99
+    private String bed;
100
+
101
+    /**
102
+     * 衣柜 1 有
103
+     */
104
+    private String wardrobe;
105
+
106
+    /**
107
+     * 餐桌 1 有
108
+     */
109
+    private String diningTable;
110
+
111
+    /**
112
+     * 电脑桌 1 有
113
+     */
114
+    private String computerDesk;
115
+
116
+    /**
117
+     * 热水器 1 有
118
+     */
119
+    private String waterHeater;
120
+
121
+    /**
122
+     * 椅子 1 有
123
+     */
124
+    private String chair;
125
+
126
+    /**
127
+     *  洗衣机 1 有
128
+     */
129
+    private String washingMachine;
130
+
131
+    /**
132
+     * 空调 1 有
133
+     */
134
+    private String airConditioning;
135
+
136
+    /**
137
+     * 台灯 1 有
138
+     */
139
+    private String tableLamp;
140
+
141
+    /**
142
+     * WiFi 1 有
143
+     */
144
+    @TableField("WiFi")
145
+    private String WiFi;
146
+
147
+    /**
148
+     * 微波炉 1 有
149
+     */
150
+    private String microwaveOven;
151
+
152
+    /**
153
+     * 天然气 1 有
154
+     */
155
+    private String naturalGas;
156
+
157
+    /**
158
+     * 创建时间
159
+     */
160
+    private LocalDateTime createDate;
161
+
162
+    /**
163
+     * 创建人
164
+     */
165
+    private Integer createUser;
166
+
167
+    /**
168
+     * 更新时间
169
+     */
170
+    private LocalDateTime updateDate;
171
+
172
+    /**
173
+     * 更新人
174
+     */
175
+    private Integer updateUser;
176
+
177
+
178
+}

+ 51
- 0
CODE/smart-community/property-api/src/main/java/com/community/huiju/model/TpRentalHouseImg.java Прегледај датотеку

@@ -0,0 +1,51 @@
1
+package com.community.huiju.model;
2
+
3
+import lombok.Data;
4
+import lombok.EqualsAndHashCode;
5
+import lombok.experimental.Accessors;
6
+
7
+import java.io.Serializable;
8
+import java.time.LocalDateTime;
9
+
10
+/**
11
+ * <p>
12
+ * 出租房间图片
13
+ * </p>
14
+ *
15
+ * @author jobob
16
+ * @since 2019-05-13
17
+ */
18
+@Data
19
+@EqualsAndHashCode(callSuper = false)
20
+@Accessors(chain = true)
21
+public class TpRentalHouseImg implements Serializable {
22
+
23
+    private static final long serialVersionUID = 1L;
24
+
25
+    /**
26
+     * 小区ID
27
+     */
28
+    private Integer communityId;
29
+
30
+    /**
31
+     * 出租房间ID
32
+     */
33
+    private Integer rentalHouseId;
34
+
35
+    /**
36
+     * 出租房间图片地址
37
+     */
38
+    private String imgUrl;
39
+
40
+    /**
41
+     * 出租房间图片类型 1是app列表图,2是轮播图
42
+     */
43
+    private String imgType;
44
+
45
+    /**
46
+     * 创建时间
47
+     */
48
+    private LocalDateTime createDate;
49
+
50
+
51
+}

+ 16
- 0
CODE/smart-community/property-api/src/main/java/com/community/huiju/service/IHotelRoomService.java Прегледај датотеку

@@ -0,0 +1,16 @@
1
+package com.community.huiju.service;
2
+
3
+import com.community.huiju.model.HotelRoom;
4
+import com.baomidou.mybatisplus.extension.service.IService;
5
+
6
+/**
7
+ * <p>
8
+ * 酒店房间表 服务类
9
+ * </p>
10
+ *
11
+ * @author jobob
12
+ * @since 2019-05-13
13
+ */
14
+public interface IHotelRoomService extends IService<HotelRoom> {
15
+
16
+}

+ 32
- 0
CODE/smart-community/property-api/src/main/java/com/community/huiju/service/IHotelService.java Прегледај датотеку

@@ -0,0 +1,32 @@
1
+package com.community.huiju.service;
2
+
3
+import com.community.commom.mode.ResponseBean;
4
+import com.community.commom.session.UserElement;
5
+import com.community.huiju.model.Hotel;
6
+import com.baomidou.mybatisplus.extension.service.IService;
7
+
8
+/**
9
+ * <p>
10
+ * 酒店 服务类
11
+ * </p>
12
+ *
13
+ * @author jobob
14
+ * @since 2019-05-13
15
+ */
16
+public interface IHotelService extends IService<Hotel> {
17
+
18
+    /**
19
+     * 房间列表
20
+     * @param parameter
21
+     * @param communityId
22
+     * @return
23
+     */
24
+    ResponseBean hotelRoomLiset(String parameter, Integer communityId);
25
+
26
+    /**
27
+     * 添加房间
28
+     * @param parameter
29
+     * @return
30
+     */
31
+    ResponseBean hotelRoomAdd(String parameter , UserElement userElement);
32
+}

+ 16
- 0
CODE/smart-community/property-api/src/main/java/com/community/huiju/service/ITpRentalHouseImgService.java Прегледај датотеку

@@ -0,0 +1,16 @@
1
+package com.community.huiju.service;
2
+
3
+import com.baomidou.mybatisplus.extension.service.IService;
4
+import com.community.huiju.model.TpRentalHouseImg;
5
+
6
+/**
7
+ * <p>
8
+ * 出租房间图片 服务类
9
+ * </p>
10
+ *
11
+ * @author jobob
12
+ * @since 2019-05-13
13
+ */
14
+public interface ITpRentalHouseImgService extends IService<TpRentalHouseImg> {
15
+
16
+}

+ 16
- 0
CODE/smart-community/property-api/src/main/java/com/community/huiju/service/ITpRentalHouseService.java Прегледај датотеку

@@ -0,0 +1,16 @@
1
+package com.community.huiju.service;
2
+
3
+import com.baomidou.mybatisplus.extension.service.IService;
4
+import com.community.huiju.model.TpRentalHouse;
5
+
6
+/**
7
+ * <p>
8
+ * 出租公寓表 服务类
9
+ * </p>
10
+ *
11
+ * @author jobob
12
+ * @since 2019-05-13
13
+ */
14
+public interface ITpRentalHouseService extends IService<TpRentalHouse> {
15
+
16
+}

+ 20
- 0
CODE/smart-community/property-api/src/main/java/com/community/huiju/service/impl/HotelRoomServiceImpl.java Прегледај датотеку

@@ -0,0 +1,20 @@
1
+package com.community.huiju.service.impl;
2
+
3
+import com.community.huiju.dao.HotelRoomMapper;
4
+import com.community.huiju.model.HotelRoom;
5
+import com.community.huiju.service.IHotelRoomService;
6
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
7
+import org.springframework.stereotype.Service;
8
+
9
+/**
10
+ * <p>
11
+ * 酒店房间表 服务实现类
12
+ * </p>
13
+ *
14
+ * @author jobob
15
+ * @since 2019-05-13
16
+ */
17
+@Service
18
+public class HotelRoomServiceImpl extends ServiceImpl<HotelRoomMapper, HotelRoom> implements IHotelRoomService {
19
+
20
+}

+ 91
- 0
CODE/smart-community/property-api/src/main/java/com/community/huiju/service/impl/HotelServiceImpl.java Прегледај датотеку

@@ -0,0 +1,91 @@
1
+package com.community.huiju.service.impl;
2
+
3
+import com.alibaba.fastjson.JSONObject;
4
+import com.baomidou.mybatisplus.core.metadata.IPage;
5
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6
+import com.community.commom.mode.ResponseBean;
7
+import com.community.commom.session.UserElement;
8
+import com.community.huiju.dao.HotelMapper;
9
+import com.community.huiju.dao.HotelRoomMapper;
10
+import com.community.huiju.dao.UserMapper;
11
+import com.community.huiju.model.Hotel;
12
+import com.community.huiju.model.HotelRoom;
13
+import com.community.huiju.model.TpTicket;
14
+import com.community.huiju.model.User;
15
+import com.community.huiju.service.IHotelService;
16
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
17
+import org.springframework.beans.factory.annotation.Autowired;
18
+import org.springframework.stereotype.Service;
19
+
20
+import java.time.LocalDateTime;
21
+import java.util.Date;
22
+import java.util.HashMap;
23
+import java.util.List;
24
+
25
+/**
26
+ * <p>
27
+ * 酒店 服务实现类
28
+ * </p>
29
+ *
30
+ * @author jobob
31
+ * @since 2019-05-13
32
+ */
33
+@Service
34
+public class HotelServiceImpl extends ServiceImpl<HotelMapper, Hotel> implements IHotelService {
35
+
36
+    @Autowired
37
+    private HotelRoomMapper tpHotelRoomMapper;
38
+
39
+    @Autowired
40
+    private  HotelMapper tpHotelMapper;
41
+
42
+    @Autowired
43
+    private UserMapper tpUserMapper;
44
+    @Override
45
+    public ResponseBean hotelRoomLiset(String parameter, Integer communityId) {
46
+        ResponseBean response= new ResponseBean<>();
47
+        HotelRoom hotelRoom= JSONObject.parseObject(parameter, HotelRoom.class);
48
+
49
+        JSONObject object= JSONObject.parseObject(parameter);
50
+        Integer pageNum = object.getInteger("pageNum");
51
+        Integer pageSize = object.getInteger("pageSize");
52
+
53
+        Date beginTime = object.getDate("beginTime");
54
+        Date endTime = object.getDate("endTime");
55
+
56
+        Page<HotelRoom> page = new Page<>();
57
+        page.setSize(pageSize == null ? 10 : pageSize);
58
+        page.setCurrent(pageNum == null ? 1 : pageNum);
59
+
60
+        IPage<HotelRoom> pageInfo = tpHotelRoomMapper.hotelRoomLiset(page,hotelRoom,beginTime,endTime,communityId);
61
+        List<HotelRoom> hotelRoomList = pageInfo.getRecords();
62
+        for (HotelRoom hotelRoomS:hotelRoomList){
63
+            User user= tpUserMapper.selectById(hotelRoomS.getUpdateUser());
64
+            if (null != user){
65
+                hotelRoomS.setEditUser(user.getUserName());
66
+            }
67
+        }
68
+        HashMap map=new HashMap<>();
69
+        map.put("list",hotelRoomList);
70
+        map.put("total", pageInfo.getTotal());
71
+        map.put("pageNum", pageInfo.getCurrent());
72
+        map.put("pageSize", pageInfo.getSize());
73
+        response.addSuccess(map);
74
+        return response;
75
+    }
76
+
77
+    @Override
78
+    public ResponseBean hotelRoomAdd(String parameter, UserElement userElement) {
79
+        ResponseBean response= new ResponseBean<>();
80
+        HotelRoom hotelRoom= JSONObject.parseObject(parameter, HotelRoom.class);
81
+        Hotel hotel= tpHotelMapper.selectHotel(userElement.getCommunityId());
82
+        hotelRoom.setCommunityId(userElement.getCommunityId())
83
+                .setHotelId(hotel.getId())
84
+                .setPrice(String.valueOf(Double.valueOf(hotelRoom.getPrice())))
85
+                .setCreateDate(LocalDateTime.now())
86
+                .setCreateUser(userElement.getId());
87
+        tpHotelRoomMapper.insert(hotelRoom);
88
+        response.addSuccess("成功");
89
+        return response;
90
+    }
91
+}

+ 20
- 0
CODE/smart-community/property-api/src/main/java/com/community/huiju/service/impl/TpRentalHouseImgServiceImpl.java Прегледај датотеку

@@ -0,0 +1,20 @@
1
+package com.community.huiju.service.impl;
2
+
3
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
4
+import com.community.huiju.dao.TpRentalHouseImgMapper;
5
+import com.community.huiju.model.TpRentalHouseImg;
6
+import com.community.huiju.service.ITpRentalHouseImgService;
7
+import org.springframework.stereotype.Service;
8
+
9
+/**
10
+ * <p>
11
+ * 出租房间图片 服务实现类
12
+ * </p>
13
+ *
14
+ * @author jobob
15
+ * @since 2019-05-13
16
+ */
17
+@Service
18
+public class TpRentalHouseImgServiceImpl extends ServiceImpl<TpRentalHouseImgMapper, TpRentalHouseImg> implements ITpRentalHouseImgService {
19
+
20
+}

+ 20
- 0
CODE/smart-community/property-api/src/main/java/com/community/huiju/service/impl/TpRentalHouseServiceImpl.java Прегледај датотеку

@@ -0,0 +1,20 @@
1
+package com.community.huiju.service.impl;
2
+
3
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
4
+import com.community.huiju.dao.TpRentalHouseMapper;
5
+import com.community.huiju.model.TpRentalHouse;
6
+import com.community.huiju.service.ITpRentalHouseService;
7
+import org.springframework.stereotype.Service;
8
+
9
+/**
10
+ * <p>
11
+ * 出租公寓表 服务实现类
12
+ * </p>
13
+ *
14
+ * @author jobob
15
+ * @since 2019-05-13
16
+ */
17
+@Service
18
+public class TpRentalHouseServiceImpl extends ServiceImpl<TpRentalHouseMapper, TpRentalHouse> implements ITpRentalHouseService {
19
+
20
+}

+ 7
- 0
CODE/smart-community/property-api/src/main/resources/mapper/HotelMapper.xml Прегледај датотеку

@@ -0,0 +1,7 @@
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.HotelMapper">
4
+ <select id="selectHotel" resultType="com.community.huiju.model.Hotel">
5
+  select * from tp_hotel where community_id = #{communityId};
6
+ </select>
7
+</mapper>

+ 28
- 0
CODE/smart-community/property-api/src/main/resources/mapper/HotelRoomMapper.xml Прегледај датотеку

@@ -0,0 +1,28 @@
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.HotelRoomMapper">
4
+    <select id="hotelRoomLiset" resultType="com.community.huiju.model.HotelRoom">
5
+        select
6
+        *
7
+        from tp_hotel_room
8
+        <where>
9
+            <if test="hotelRoom.roomNo !=null and hotelRoom.roomNo !=''">
10
+                AND  room_no like concat('%',#{hotelRoom.roomNo},'%')
11
+            </if>
12
+            <if test="hotelRoom.roomName !=null and hotelRoom.roomName !=''">
13
+                AND room_name = #{hotelRoom.roomName}
14
+            </if>
15
+            <if test="hotelRoom.price !=null and hotelRoom.price !=''">
16
+                AND price = #{hotelRoom.price}
17
+            </if>
18
+            <if test="hotelRoom.roomStatus !=null and hotelRoom.roomStatus !=''">
19
+                AND room_no = #{hotelRoom.roomStatus}
20
+            </if>
21
+            <if test="beginTime !=null and beginTime !='' and endTime !=null and endTime !=''">
22
+                AND date_format(create_date, '%Y-%m-%d') <![CDATA[>= ]]> date_format(#{beginTime}, '%Y-%m-%d')
23
+                AND date_format(create_date, '%Y-%m-%d')<![CDATA[<= ]]> date_format(#{endTime}, '%Y-%m-%d')
24
+            </if>
25
+        </where>
26
+    </select>
27
+
28
+</mapper>

+ 5
- 0
CODE/smart-community/property-api/src/main/resources/mapper/HotelSettingMapper.xml Прегледај датотеку

@@ -0,0 +1,5 @@
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.HotelSettingMapper">
4
+
5
+</mapper>

+ 5
- 0
CODE/smart-community/property-api/src/main/resources/mapper/TpRentalHouseImgMapper.xml Прегледај датотеку

@@ -0,0 +1,5 @@
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.TpRentalHouseImgMapper">
4
+
5
+</mapper>

+ 5
- 0
CODE/smart-community/property-api/src/main/resources/mapper/TpRentalHouseMapper.xml Прегледај датотеку

@@ -0,0 +1,5 @@
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.TpRentalHouseMapper">
4
+
5
+</mapper>

+ 32
- 0
VUECODE/smart-property-manage/src/api/grogshop.js Прегледај датотеку

@@ -0,0 +1,32 @@
1
+import request from '@/utils/request'
2
+
3
+export function hotelRoom(data) {
4
+  return request({
5
+    url: '/hotelRoomList',
6
+    method: 'post',
7
+    data: {
8
+      roomNo: data.roomNo,
9
+      roomName: data.roomName,
10
+      price: data.price,
11
+      roomStatus: data.roomStatus,
12
+      beginTime: data.beginTime,
13
+      endTime: data.endTime,
14
+      sort: data.sort
15
+    }
16
+  })
17
+}
18
+export function hotelRoomAdd(data) {
19
+  return request({
20
+    url: '/hotelRoomAdd',
21
+    method: 'post',
22
+    data: {
23
+      roomNo: data.roomNo,
24
+      roomName: data.roomName,
25
+      price: data.price,
26
+      roomStatus: data.roomStatus,
27
+      sort: data.sort,
28
+      remark: data.remark
29
+    }
30
+  })
31
+}
32
+

+ 59
- 0
VUECODE/smart-property-manage/src/router/index.js Прегледај датотеку

@@ -417,6 +417,36 @@ export const constantRouterMap = [
417 417
       }
418 418
     ]
419 419
   },
420
+  {
421
+    path: '/rental',
422
+    component: Layout,
423
+    redirect: '/rental/index',
424
+    name: 'rental',
425
+    alwaysShow: true,
426
+    meta: { title: '长租公寓', icon: 'zip' },
427
+    children: [
428
+      {
429
+        path: '/rental/index',
430
+        component: () => import('@/views/rental/rentalIndex'),
431
+        name: 'rental-index',
432
+        meta: { title: '房间列表', icon: 'table' }
433
+      },
434
+      {
435
+        path: '/rental/add',
436
+        component: () => import('@/views/rental/rentalAdd'),
437
+        name: 'shop-add',
438
+        hidden: true,
439
+        meta: { title: '添加房间信息', icon: 'table' }
440
+      },
441
+      {
442
+        path: '/rental/edit',
443
+        component: () => import('@/views/rental/rentalEdit'),
444
+        name: 'rental-edit',
445
+        hidden: true,
446
+        meta: { title: '修改房间信息', icon: 'table' }
447
+      }
448
+    ]
449
+  },
420 450
   {
421 451
     path: '/message',
422 452
     component: Layout,
@@ -439,6 +469,35 @@ export const constantRouterMap = [
439 469
       }
440 470
     ]
441 471
   },
472
+  {
473
+    path: '/grogshop',
474
+    component: Layout,
475
+    redirect: '/grogshop/configindex',
476
+    name: 'grogshop',
477
+    alwaysShow: true,
478
+    meta: { title: '酒店管理', icon: 'zip' },
479
+    children: [
480
+      {
481
+        path: '/grogshop/configindex',
482
+        component: () => import('@/views/grogshop/configindex'),
483
+        name: 'grogshop-configindex',
484
+        meta: { title: '酒店配置', icon: 'table' }
485
+      },
486
+      {
487
+        path: '/grogshop/grogshopRoom',
488
+        component: () => import('@/views/grogshop/grogshopRoom'),
489
+        name: 'grogshop-grogshopRoom',
490
+        meta: { title: '房间列表', icon: 'table' }
491
+      },
492
+      {
493
+        path: '/grogshop/grogshopRoomAdd',
494
+        component: () => import('@/views/grogshop/grogshopRoomAdd'),
495
+        name: 'grogshop-grogshopRoomAdd',
496
+        hidden: true,
497
+        meta: { title: '新增房间', icon: 'table' }
498
+      }
499
+    ]
500
+  },
442 501
   {
443 502
     path: '/systemResources',
444 503
     component: Layout,

+ 2
- 1
VUECODE/smart-property-manage/src/store/index.js Прегледај датотеку

@@ -22,8 +22,8 @@ import message from './modules/message'
22 22
 import buildingTree from './modules/buildingTree'
23 23
 import equipment from './modules/equipment'
24 24
 import shopType from './modules/shopType'
25
+import grogshop from './modules/grogshop'
25 26
 import license from './modules/license'
26
-
27 27
 Vue.use(Vuex)
28 28
 
29 29
 const store = new Vuex.Store({
@@ -49,6 +49,7 @@ const store = new Vuex.Store({
49 49
     buildingTree,
50 50
     equipment,
51 51
     shopType,
52
+    grogshop,
52 53
     license
53 54
   },
54 55
   getters

+ 25
- 0
VUECODE/smart-property-manage/src/store/modules/grogshop.js Прегледај датотеку

@@ -0,0 +1,25 @@
1
+import { hotelRoom, hotelRoomAdd } from '@/api/grogshop'
2
+
3
+const grogshop = {
4
+  actions: {
5
+    HotelRoom({ commit }, data) {
6
+      return new Promise((resolve, reject) => {
7
+        hotelRoom(data).then(response => {
8
+          resolve(response)
9
+        }).catch(error => {
10
+          reject(error)
11
+        })
12
+      })
13
+    },
14
+    HotelRoomAdd({ commit }, data) {
15
+      return new Promise((resolve, reject) => {
16
+        hotelRoomAdd(data).then(response => {
17
+          resolve(response)
18
+        }).catch(error => {
19
+          reject(error)
20
+        })
21
+      })
22
+    }
23
+  }
24
+}
25
+export default grogshop

+ 145
- 0
VUECODE/smart-property-manage/src/views/grogshop/configindex.vue Прегледај датотеку

@@ -0,0 +1,145 @@
1
+<template>
2
+  <div class="root">
3
+    <el-form ref="ruleForm" :model="ruleForm" :rules="rules" label-width="100px" class="add-ruleForm">
4
+      <el-form-item label="角色名称" prop="roleName">
5
+        <el-input :disabled="true" v-model="ruleForm.roleName"/>
6
+      </el-form-item>
7
+      <el-form-item label="角色描述" prop="description">
8
+        <el-input :disabled="true" v-model="ruleForm.description"/>
9
+      </el-form-item>
10
+      <el-form-item label="资源权限" prop="menuArray">
11
+        <el-tree
12
+          ref="tree"
13
+          :data="menuList"
14
+          show-checkbox
15
+          node-key="id"
16
+          :default-expanded-keys="ruleForm.menuArray"
17
+          :default-checked-keys="ruleForm.menuArray"
18
+          :props="defaultProps">
19
+        </el-tree>
20
+      </el-form-item> 
21
+      <el-form-item>
22
+        <el-button type="primary" @click="goEditRole">去修改</el-button>
23
+      </el-form-item>
24
+    </el-form>
25
+  </div>
26
+</template>
27
+
28
+<script>
29
+import { mapState, mapActions, mapMutations } from 'vuex'
30
+import waves from '@/directive/waves' // Waves directive
31
+import { parseTime } from '@/utils'
32
+
33
+export default {
34
+  computed: {
35
+    ...mapState('role', {
36
+      menuList: s => s.menuList
37
+    })
38
+  },
39
+  data() {
40
+    return {
41
+      ruleForm: {
42
+        id: '',
43
+        roleName: '',
44
+        description: '',
45
+        menuArray: []
46
+      },
47
+      rules: {
48
+        roleName: [
49
+          { required: true, message: '请输入角色名称', trigger: 'blur' }
50
+        ],
51
+        menuArray: [
52
+          { type: 'array', required: true, message: '请至少选择一个活动性质', trigger: 'change' }
53
+        ]
54
+      },
55
+      defaultProps: {
56
+        children: 'children',
57
+        label: 'menuName',
58
+        disabled: () => true
59
+      }
60
+    }
61
+  },
62
+  created(){
63
+    this.ruleForm.id = this.$route.params.id
64
+    this.getDataById()
65
+    this.getMenuList()
66
+  },
67
+  methods: {
68
+    ...mapMutations('role', {
69
+    }),
70
+    ...mapActions('role', [
71
+      'FetchMenuList',
72
+      'UpdateRoleInfo',
73
+      'GetRoleInfo'
74
+    ]),
75
+    submitForm(formName) { // 提交
76
+      // 获取选中的树形节点 key
77
+      this.ruleForm.menuArray = this.$refs.tree.getCheckedKeys()
78
+      console.log(this.ruleForm.menuArray)
79
+      this.$refs[formName].validate((valid) => {
80
+        if (valid) {
81
+          this.updateRole()
82
+        } else {
83
+          console.log('error submit!!')
84
+          return false
85
+        }
86
+      })
87
+    },
88
+    getMenuList() {
89
+      this.FetchMenuList().then(() => {
90
+      }).catch(() => {
91
+        console.log('get list error')
92
+      })
93
+    },
94
+    resetForm(formName) { // 重置
95
+      this.$refs[formName].resetFields()
96
+    },
97
+    updateRole() {
98
+      // 加载框
99
+      const loading = this.$loading({
100
+        lock: true,
101
+        text: 'Loading',
102
+        spinner: 'el-icon-loading',
103
+        background: 'rgba(0, 0, 0, 0.7)'
104
+      })
105
+      this.UpdateRoleInfo(this.ruleForm).then((res) => {
106
+        if (res.code === '0') {
107
+          this.$message({
108
+            message: res.message,
109
+            type: 'success'
110
+          })
111
+          this.$router.push({ name: 'role-index' })
112
+          loading.close()
113
+          return
114
+        }
115
+        this.$message.error(res.message)
116
+        loading.close()
117
+      }).catch(() => {
118
+        loading.close()
119
+        console.log('error updateRole')
120
+      })
121
+    },
122
+    goEditRole(){
123
+      this.$router.push({ name: 'role-edit', params: { id: this.ruleForm.id }})
124
+    },
125
+    getDataById() {
126
+      this.GetRoleInfo(this.ruleForm.id).then((res) => {
127
+        this.ruleForm.roleName = res.data.roleName
128
+        this.ruleForm.description = res.data.description
129
+        this.ruleForm.menuArray = res.data.menuArray
130
+      }).catch(() => {
131
+        console.log('error init role')
132
+      })
133
+    }
134
+  }
135
+}
136
+</script>
137
+
138
+<style scoped>
139
+.add-ruleForm{
140
+  width: 800px;
141
+  margin-left: auto;
142
+  margin-right: auto;
143
+  margin-top: 50px;
144
+}
145
+</style>

+ 198
- 0
VUECODE/smart-property-manage/src/views/grogshop/grogshopRoom.vue Прегледај датотеку

@@ -0,0 +1,198 @@
1
+<template>
2
+  <div>
3
+    <el-form :inline="true" :model="listQuery" class="form-listQuery">
4
+      <el-form-item class="filter-item"  label="房间编号">
5
+        <el-input v-model="listQuery.roomNo"  placeholder="房间编号"/>
6
+      </el-form-item>
7
+      <el-form-item class="filter-item"  label="房间名称">
8
+        <el-input v-model="listQuery.roomName" placeholder="房间名称"/>
9
+      </el-form-item>
10
+      <el-form-item class="filter-item"  label="房间价格">
11
+        <el-input  v-model="listQuery.price" placeholder="房间价格"/>
12
+      </el-form-item>
13
+      <el-form-item class="filter-item"  label="上架状态">
14
+        <el-select v-model="listQuery.roomStatus" placeholder="待办类型">
15
+         <el-option label="已上架" value="1"/>
16
+         <el-option label="已下架" value="2"/>
17
+        </el-select>
18
+      </el-form-item>
19
+      <el-form-item class="filter-item"  label="预订日期从">
20
+            <el-date-picker
21
+              v-model="listQuery.beginTime"
22
+              type="date"
23
+              placeholder="年-月-日">
24
+              </el-date-picker>
25
+              <span>-</span>
26
+              <el-date-picker
27
+              v-model="listQuery.endTime"
28
+              type="date"
29
+              placeholder="年-月-日">
30
+              </el-date-picker>
31
+      </el-form-item>
32
+      <el-form-item>
33
+        <el-button type="info" class="filter-item" @click="handleFilter">清空</el-button>
34
+        <el-button type="primary" @click="search">查询</el-button>
35
+      </el-form-item>
36
+
37
+      <el-row>
38
+      <el-button type="success" @click="addHotelRoom()">新增</el-button>
39
+      <el-button type="info">编辑</el-button>
40
+       <el-button type="primary">上架状态</el-button>
41
+      <el-button type="danger">下架房间</el-button>
42
+      </el-row>
43
+
44
+    </el-form>
45
+      <el-table
46
+      v-loading="listLoading"
47
+      ref="multipleTable"
48
+      :data="listData"
49
+      border
50
+      tooltip-effect="dark"
51
+      style="width: 100%; margin-top: 20px;"
52
+      @selection-change="handleSelectionChange">
53
+      <el-table-column
54
+        type="selection"
55
+        width="55"/>
56
+      <el-table-column prop="roomNo" label="编号" align="center"/>
57
+      <el-table-column prop="roomName" label="房间名称" align="center"/>
58
+      <el-table-column prop="sort" label="权重" align="center"/>
59
+      <el-table-column prop="price" label="房间价格" align="center"/>
60
+      <el-table-column prop="roomStatus" label="上架状态" align="center"/>
61
+      <el-table-column prop="editUser" label="编辑人" align="center"/>
62
+      <el-table-column prop="createDate" label="时间" align="center"><template slot-scope="scope">{{ formatDate(scope.row.createDate) }}</template></el-table-column>
63
+
64
+    </el-table>
65
+        <div class="block">
66
+      <el-pagination
67
+        :current-page.sync="listQuery.pageNum"
68
+        :page-sizes="[10, 20, 50, 100]"
69
+        :page-size.sync="listQuery.pageSize"
70
+        :total="total"
71
+        layout="total, sizes, prev, pager, next, jumper"
72
+        @size-change="handleSizeChange"
73
+        @current-change="handleCurrentChange"/>
74
+  </div>
75
+
76
+</div>
77
+
78
+</template>
79
+
80
+<script>
81
+export default {
82
+    data() {
83
+        return {
84
+          listQuery: {
85
+            id: '',
86
+            messageContent: '',
87
+            status: '',
88
+            //待办类型
89
+            messageType:'',
90
+            pageNum: 1,
91
+            pageSize: 10,
92
+            dataValue: '',
93
+            roomNo: '',
94
+            roomName: '',
95
+            price: '',
96
+            beginTime: '',
97
+            endTime: '',
98
+            roomStatus: '',
99
+            editUser: ''      
100
+          },
101
+           deleteIds: [], // 选择的id集合
102
+           total: 0,
103
+           listLoading: true, // 加载圈
104
+           listData: [],
105
+        }
106
+    },
107
+    mounted(){
108
+        //  this.listLoading = false
109
+    this.dataQuery()
110
+    },
111
+    methods:{
112
+    dataQuery() { // 查询数据
113
+      this.listLoading = true
114
+      this.$store.dispatch('HotelRoom', this.listQuery).then((res) => {
115
+        const resData = res.data
116
+        this.listData = resData.list
117
+        this.listQuery.pageNum = resData.pageNum
118
+        this.listQuery.pageSize = resData.pageSize
119
+        this.total = resData.total
120
+        this.listLoading = false
121
+      }).catch(() => {
122
+        this.listLoading = false
123
+        console.log('error HotelRoom')
124
+      })
125
+    },
126
+    handleSizeChange(val) {
127
+      console.log(`每页 ${val} 条`)
128
+      this.listQuery.pageSize = val
129
+      this.dataQuery()
130
+    },
131
+    handleCurrentChange(val) {
132
+      console.log(`当前页: ${val}`)
133
+      this.listQuery.pageNum = val
134
+      this.dataQuery()
135
+    },
136
+    handleFilter() {
137
+      this.listQuery.messageContent = ''
138
+      this.listQuery.status = ''
139
+      this.listQuery.messageType = ''
140
+      this.listQuery.dataValue = ''
141
+      this.listQuery.pageNum = 1
142
+      this.listQuery.pageNum = 1
143
+      this.listQuery.pageSize = 10
144
+      this.dataQuery()
145
+    },
146
+    search() {
147
+      this.dataQuery()
148
+    },
149
+    handleSelectionChange(data) {
150
+      this.deleteIds = [] // 设置为 空
151
+      for (let i = 0; i < data.length; i++) {
152
+      this.deleteIds.push(data[i].id)
153
+    }
154
+    },
155
+     formatDate(val) {
156
+      if (val === null) {
157
+        return ''
158
+      }
159
+      var value = new Date(val)
160
+      var year = value.getFullYear()
161
+      var month = this.padDate(value.getMonth() + 1)
162
+      var day = this.padDate(value.getDate())
163
+      var hour = this.padDate(value.getHours())
164
+      var minutes = this.padDate(value.getMinutes())
165
+      var seconds = this.padDate(value.getSeconds())
166
+      return year + '-' + month + '-' + day + ' ' + hour + ':' + minutes + ':' + seconds
167
+    },
168
+      padDate(value) {
169
+      value = value < 10 ? '0' + value : value
170
+      return value
171
+    },
172
+    addHotelRoom(){
173
+      this.$router.push({ name: 'grogshop-grogshopRoomAdd' })
174
+    },
175
+  }
176
+
177
+
178
+}
179
+</script>
180
+
181
+<style>
182
+.form-listQuery{
183
+  margin-top: 20px;
184
+  margin-left: 30px;
185
+}
186
+.root{
187
+  display: flex;
188
+  flex-flow: column;
189
+}
190
+.block{
191
+  display: flex;
192
+  justify-content: flex-end;
193
+  margin-top: 10px;
194
+}
195
+.spanSize{
196
+    color:aqua
197
+}
198
+</style>

+ 77
- 0
VUECODE/smart-property-manage/src/views/grogshop/grogshopRoomAdd.vue Прегледај датотеку

@@ -0,0 +1,77 @@
1
+<template>
2
+  <div id="root">
3
+    <el-form ref="ruleForm" :model="ruleForm"  label-width="100px" class="demo-ruleForm">
4
+      <el-form-item label="房间名称" >
5
+        <el-input v-model="ruleForm.roomName" placeholder="房间名称"/>
6
+      </el-form-item>
7
+       <el-form-item label="房间号" >
8
+        <el-input v-model="ruleForm.roomNo" placeholder="房间号"/>
9
+      </el-form-item>
10
+     <el-form-item class="filter-item" label="房间描述" prop="remark" >
11
+        <el-input v-model.trim="ruleForm.remark" placeholder="房间描述"/>
12
+      </el-form-item>
13
+      <el-form-item label="房间价格">
14
+        <el-input v-model="ruleForm.price" placeholder="房间价格"/>
15
+      </el-form-item>
16
+      <el-form-item class="filter-item"  label="上架状态">
17
+        <el-select v-model="ruleForm.roomStatus" placeholder="上架">
18
+         <el-option label="上架" value="1"/>
19
+         <el-option label="下架" value="2"/>
20
+        </el-select>
21
+      </el-form-item>
22
+      <el-form-item label="权重" prop="sort">
23
+        <el-input v-model="ruleForm.sort" placeholder="权重"/>
24
+      </el-form-item>  
25
+      <el-form-item>
26
+        <el-button type="primary" @click="submitForm()">立即创建</el-button>
27
+      </el-form-item>
28
+    </el-form>
29
+  </div>
30
+</template>
31
+
32
+<script>
33
+export default {
34
+  data() {
35
+    return {
36
+      ruleForm: {
37
+            price: '',
38
+           remark: '',
39
+         roomName: '',
40
+       roomStatus: '',
41
+             sort: '',
42
+           roomNo: ''
43
+      }
44
+      // rules: {
45
+      //   userName: [
46
+      //     { required: true, message: '请输入姓名', trigger: 'blur' }
47
+      //   ],
48
+      //   price: [
49
+      //     { required: true, message: '请输入价格', trigger: 'blur' }
50
+      //   ],
51
+      //   menuArray: [
52
+      //     { required: true, message: '请选择角色', trigger: 'blur' }
53
+      //   ],       
54
+      // }
55
+    }
56
+  },
57
+  mounted() {
58
+  },
59
+  methods: {
60
+    submitForm(){
61
+      this.$store.dispatch('HotelRoomAdd', this.ruleForm).then((res) => {
62
+      }).catch(() => {
63
+        console.log('error HotelRoom')
64
+      })
65
+    }
66
+   }
67
+  }
68
+</script>
69
+
70
+<style scoped>
71
+.demo-ruleForm {
72
+  width: 500px;
73
+  margin-top: 20px;
74
+  margin-left: auto;
75
+  margin-right: auto;
76
+}
77
+</style>

+ 315
- 0
VUECODE/smart-property-manage/src/views/rental/rentalAdd.vue Прегледај датотеку

@@ -0,0 +1,315 @@
1
+<template>
2
+  <div class="root">
3
+    <el-form ref="ruleForm" :model="listData" :rules="rules" label-width="150px" class="add-ruleForm">
4
+      <el-form-item label="商铺名称" prop="shopName">
5
+        <el-input v-model="listData.shopName"/>
6
+      </el-form-item>
7
+      <el-form-item label="商铺说明" prop="remark">
8
+        <el-input v-model="listData.remark"/>
9
+      </el-form-item>
10
+      <el-form-item label="app首页展示图" prop="appIndexImg">
11
+        <el-upload
12
+          class="avatar-uploader"
13
+          name="uploadFiles"
14
+          :action="uploadImgUrl"
15
+          :show-file-list="false"
16
+          :on-success="handleAppIndexSuccess"
17
+          :before-upload="beforeAvatarUpload">
18
+          <img v-if="listData.appIndexImg" :src="listData.appIndexImg" class="avatar">
19
+          <i v-else class="el-icon-plus avatar-uploader-icon"></i>
20
+        </el-upload>
21
+      </el-form-item>
22
+      <el-form-item label="app列表展示图" prop="appListImg">
23
+        <el-upload
24
+          class="avatar-uploader"
25
+          name="uploadFiles"
26
+          :action="uploadImgUrl"
27
+          :show-file-list="false"
28
+          :on-success="handleAppListSuccess"
29
+          :before-upload="beforeAvatarUpload">
30
+          <img v-if="listData.appListImg" :src="listData.appListImg" class="avatar">
31
+          <i v-else class="el-icon-plus avatar-uploader-icon"></i>
32
+        </el-upload>
33
+      </el-form-item>
34
+      <el-form-item label="app商铺轮播图" prop="appCarouselImg">
35
+        <el-upload
36
+          name="uploadFiles"
37
+          :limit="6"
38
+          :action="uploadImgUrl"
39
+          list-type="picture-card"
40
+          :on-preview="handlePictureCardPreview"
41
+          :on-remove="handleRemove"
42
+          :on-success="handleSuccessCarouselImg">
43
+          <i class="el-icon-plus"></i>
44
+        </el-upload>
45
+        <el-dialog :visible.sync="dialogVisible">
46
+          <img width="100%" :src="dialogImageUrl" alt="">
47
+        </el-dialog>
48
+      </el-form-item>
49
+      <el-form-item label="权重" prop="sort">
50
+        <el-input v-model="listData.sort"/>
51
+      </el-form-item>
52
+      <el-form-item label="商铺类型" prop="shopTypeId">
53
+        <el-select v-model="listData.shopTypeId" placeholder="商铺类型" clearable class="filter-item">
54
+          <el-option v-for="item in shopTypeList" :key="item.id" :value="item.id" :label="item.typeName"/>
55
+        </el-select>
56
+      </el-form-item>
57
+      <el-form-item label="上架状态" prop="shopStatus">
58
+        <el-select v-model="listData.shopStatus" placeholder="请选择">
59
+          <el-option label="已上架" value="1"/>
60
+          <el-option label="已下架" value="2"/>
61
+        </el-select>
62
+      </el-form-item>
63
+      <el-form-item label="联系电话" prop="shopTel">
64
+        <el-input v-model="listData.shopTel"/>
65
+      </el-form-item>
66
+      <el-form-item label="商铺地址" prop="shopAddress">
67
+        <el-input v-model="listData.shopAddress"/>
68
+      </el-form-item>
69
+      <el-form-item label="人均消费" prop="averagePrice">
70
+        <el-input v-model="listData.averagePrice"/>
71
+      </el-form-item>
72
+      <el-form-item label="高德坐标">
73
+        <el-input placeholder="经度" v-model="listData.shopLongitude" style="width: 150px;" />
74
+        <el-input placeholder="纬度" v-model="listData.shopLatitude" style="width: 150px;" />
75
+      </el-form-item>
76
+      <el-form-item label="">
77
+         <!-- 地图 -->
78
+        <div style="width:100%;height:300px;" class="amap-page-container">
79
+          <el-amap-search-box :search-option="searchOption" :on-search-result="onSearchResult" class="search-box"/>
80
+          <el-amap ref="map" :events="events" :center="mapCenter" :zoom="12" class="amap-demo" vid="amapDemo">
81
+            <el-amap-marker v-for="(item,index) in markers" :key="index" :position="item" />
82
+          </el-amap>
83
+        </div>
84
+      </el-form-item>
85
+      <el-form-item label="商铺介绍">
86
+          <!-- <el-input v-model="addForm.bannerContent" placeholder="内容详情"/> -->
87
+          <div id="father">
88
+            <wangeditor @wangeditorEvent="wangeditorValue"/>
89
+          </div>
90
+        </el-form-item>
91
+      <el-form-item>
92
+        <el-button type="primary" @click="submitForm('ruleForm')">立即创建</el-button>
93
+        <el-button @click="resetForm('ruleForm')">重置</el-button>
94
+      </el-form-item>
95
+    </el-form>
96
+  </div>
97
+</template>
98
+
99
+<script>
100
+import Pagination from '@/components/Pagination' // Secondary package based on el-pagination
101
+import Wangeditor from '@/components/Wangeditor'
102
+
103
+export default {
104
+  components: { Pagination, Wangeditor },
105
+  data() {
106
+    return {
107
+      events: {
108
+        click: e => {
109
+          // _self.postData.Coordinate = e.lnglat.lat + ',' + e.lnglat.lng
110
+          this.listData.shopLongitude = e.lnglat.lng
111
+          this.listData.shopLatitude = e.lnglat.lat
112
+        }
113
+      },
114
+      listData: {
115
+        shopName: '',
116
+        remark: '',
117
+        appIndexImg: '',
118
+        appListImg: '',
119
+        appCarouselImg: [],
120
+        sort: '',
121
+        shopTypeId: '',
122
+        shopStatus: '',
123
+        shopTel: '',
124
+        shopAddress: '',
125
+        averagePrice: '',
126
+        shopLongitude: '',
127
+        shopLatitude: '',
128
+        shopIntroduction: ''
129
+      },
130
+      dialogImageUrl: '',
131
+      dialogVisible: false,
132
+      uploadImgUrl: process.env.BASE_API + '/uploadimage',
133
+      markers: [],
134
+      shopTypeList: [],
135
+      searchOption: {
136
+        city: '南京',
137
+        citylimit: false
138
+      },
139
+      mapCenter: [118.789509, 32.019989],
140
+      tableKey: 0,
141
+      rules: {
142
+        typeName: [
143
+          { required: true, message: '请输入商铺名称', trigger: 'blur' }
144
+        ],
145
+        remark: [
146
+          { required: true, message: '请输入商铺说明', trigger: 'blur' }
147
+        ],
148
+        shopTel: [
149
+          { required: true, message: '请输入联系电话', trigger: 'blur' }
150
+        ],
151
+        shopAddress: [
152
+          { required: true, message: '请输入商铺地址', trigger: 'blur' }
153
+        ],
154
+        appIndexImg: [
155
+          { required: true, message: 'app首页展示图', trigger: 'blur' }
156
+        ],
157
+        appListImg: [
158
+          { required: true, message: 'app列表展示图', trigger: 'blur' }
159
+        ],
160
+        appCarouselImg: [
161
+          { required: true, message: 'app商铺轮播图', trigger: 'blur' }
162
+        ],
163
+      }
164
+    }
165
+  },
166
+  mounted() {
167
+    this.getShopTypeList()
168
+  },
169
+  methods: {
170
+     addMarker() {
171
+      const lng = 121.5 + Math.round(Math.random() * 1000) / 10000
172
+      const lat = 31.197646 + Math.round(Math.random() * 500) / 10000
173
+      this.markers.push([lng, lat])
174
+    },
175
+    beforeAvatarUpload(file) {
176
+    },
177
+    handleAppIndexSuccess(res, file) {
178
+      this.listData.appIndexImg = res.data[0]
179
+    },
180
+    handleAppListSuccess(res, file) {
181
+      this.listData.appListImg = res.data[0]
182
+    },
183
+    handleRemove(file, fileList) {
184
+      this.listData.appCarouselImg = []
185
+      for (let i = 0; i < fileList.length; i++) {
186
+        this.listData.appCarouselImg.push(fileList[i].response.data[0])
187
+      }
188
+    },
189
+    handleSuccessCarouselImg(response, file, fileList) { // 活动配图上传成功时回调
190
+      const resImg = response.data[0]
191
+      this.listData.appCarouselImg.push(resImg)
192
+    },
193
+    handlePictureCardPreview(file) {
194
+      this.dialogImageUrl = file.url;
195
+      this.dialogVisible = true;
196
+    },
197
+    getShopTypeList() {
198
+      this.$store.dispatch('shopType/FetchShopTypeSelect', this.listData).then((res) => {
199
+        this.shopTypeList = res.data
200
+      }).catch(() => {
201
+        console.log('error ListAnnouncement')
202
+      })
203
+    },
204
+    onSearchResult(pois) {
205
+      // 搜索地图
206
+      let latSum = 0
207
+      let lngSum = 0
208
+      if (pois.length > 0) {
209
+        pois.forEach(poi => {
210
+          const { lng, lat } = poi
211
+          lngSum += lng
212
+          latSum += lat
213
+          this.markers.push([poi.lng, poi.lat])
214
+        })
215
+        const center = {
216
+          lng: lngSum / pois.length,
217
+          lat: latSum / pois.length
218
+        }
219
+        this.mapCenter = [center.lng, center.lat]
220
+      }
221
+    },
222
+    wangeditorValue(value) {
223
+      this.listData.shopIntroduction = value // 在这里接受子组件传过来的参数,赋值给data里的参数
224
+    },
225
+    submitForm(formName) { // 提交
226
+      this.$refs[formName].validate((valid) => {
227
+        if (valid) {
228
+          this.addShop()
229
+        } else {
230
+          console.log('error submit!!')
231
+          return false
232
+        }
233
+      })
234
+    },
235
+    resetForm(formName) { // 重置
236
+      // 重置为未注册
237
+      this.isRegistered = true
238
+      // 重置为非户主
239
+      this.roleDisabled = false
240
+
241
+      console.log(this.isRegistered)
242
+      this.$refs[formName].resetFields()
243
+    },
244
+    addShop() {
245
+      // 加载框
246
+      const loading = this.$loading({
247
+        lock: true,
248
+        text: 'Loading',
249
+        spinner: 'el-icon-loading',
250
+        background: 'rgba(0, 0, 0, 0.7)'
251
+      })
252
+      this.$store.dispatch('shopType/AddShop', this.listData).then((res) => {
253
+        if (res.code === '0') {
254
+          this.$message({
255
+            message: res.message,
256
+            type: 'success'
257
+          })
258
+          this.$router.push({ name: 'shop-index' })
259
+          loading.close()
260
+          return
261
+        }
262
+        this.$message.error(res.message)
263
+        loading.close()
264
+      }).catch(() => {
265
+        loading.close()
266
+        console.log('error AddBuilding')
267
+      })
268
+    }
269
+  }
270
+}
271
+</script>
272
+
273
+<style>
274
+.avatar-uploader .el-upload {
275
+    border: 1px dashed #d9d9d9;
276
+    border-radius: 6px;
277
+    cursor: pointer;
278
+    position: relative;
279
+    overflow: hidden;
280
+  }
281
+  .avatar-uploader .el-upload:hover {
282
+    border-color: #409EFF;
283
+  }
284
+  .avatar-uploader-icon {
285
+    font-size: 28px;
286
+    color: #8c939d;
287
+    width: 178px;
288
+    height: 178px;
289
+    line-height: 178px;
290
+    text-align: center;
291
+  }
292
+  .avatar {
293
+    width: 178px;
294
+    height: 178px;
295
+    display: block;
296
+  }
297
+  
298
+.add-ruleForm{
299
+  width: 800px;
300
+  margin-left: auto;
301
+  margin-right: auto;
302
+  margin-top: 50px;
303
+}
304
+</style>
305
+<style scoped>
306
+.search-box {
307
+  position: absolute;
308
+  top: 25px;
309
+  left: 20px;
310
+}
311
+
312
+.amap-page-container {
313
+  position: relative;
314
+}
315
+</style>

+ 330
- 0
VUECODE/smart-property-manage/src/views/rental/rentalEdit.vue Прегледај датотеку

@@ -0,0 +1,330 @@
1
+<template>
2
+  <div class="root">
3
+    <el-form ref="ruleForm" :model="listData" :rules="rules" label-width="150px" class="add-ruleForm">
4
+      <el-form-item label="商铺名称" prop="shopName">
5
+        <el-input v-model="listData.shopName"/>
6
+      </el-form-item>
7
+      <el-form-item label="商铺说明" prop="remark">
8
+        <el-input v-model="listData.remark"/>
9
+      </el-form-item>
10
+      <el-form-item label="app首页展示图" prop="appIndexImg">
11
+        <el-upload
12
+          class="avatar-uploader"
13
+          name="uploadFiles"
14
+          :action="uploadImgUrl"
15
+          :show-file-list="false"
16
+          :on-success="handleAppIndexSuccess"
17
+          :before-upload="beforeAvatarUpload">
18
+          <img v-if="listData.appIndexImg" :src="listData.appIndexImg" class="avatar">
19
+          <i v-else class="el-icon-plus avatar-uploader-icon"></i>
20
+        </el-upload>
21
+      </el-form-item>
22
+      <el-form-item label="app列表展示图" prop="appListImg">
23
+        <el-upload
24
+          class="avatar-uploader"
25
+          name="uploadFiles"
26
+          :action="uploadImgUrl"
27
+          :show-file-list="false"
28
+          :on-success="handleAppListSuccess"
29
+          :before-upload="beforeAvatarUpload">
30
+          <img v-if="listData.appListImg" :src="listData.appListImg" class="avatar">
31
+          <i v-else class="el-icon-plus avatar-uploader-icon"></i>
32
+        </el-upload>
33
+      </el-form-item>
34
+      <el-form-item label="app商铺轮播图" prop="appCarouselImg">
35
+        <el-upload
36
+          name="uploadFiles"
37
+          :limit="6"
38
+          :action="uploadImgUrl"
39
+          list-type="picture-card"
40
+          :file-list="displayAppCarouselImg"
41
+          :on-preview="handlePictureCardPreview"
42
+          :on-remove="handleRemove"
43
+          :on-success="handleSuccessCarouselImg">
44
+          <i class="el-icon-plus"></i>
45
+        </el-upload>
46
+        <el-dialog :visible.sync="dialogVisible">
47
+          <img width="100%" :src="dialogImageUrl" alt="">
48
+        </el-dialog>
49
+      </el-form-item>
50
+      <el-form-item label="权重" prop="sort">
51
+        <el-input v-model="listData.sort"/>
52
+      </el-form-item>
53
+      <el-form-item label="商铺类型" prop="shopTypeId">
54
+        <el-select v-model="listData.shopTypeId" placeholder="商铺类型" clearable class="filter-item">
55
+          <el-option v-for="item in shopTypeList" :key="item.id" :value="item.id" :label="item.typeName"/>
56
+        </el-select>
57
+      </el-form-item>
58
+      <el-form-item label="上架状态" prop="shopStatus">
59
+        <el-select v-model="listData.shopStatus" placeholder="请选择">
60
+          <el-option label="已上架" value="1"/>
61
+          <el-option label="已下架" value="2"/>
62
+        </el-select>
63
+      </el-form-item>
64
+      <el-form-item label="联系电话" prop="shopTel">
65
+        <el-input v-model="listData.shopTel"/>
66
+      </el-form-item>
67
+      <el-form-item label="商铺地址" prop="shopAddress">
68
+        <el-input v-model="listData.shopAddress"/>
69
+      </el-form-item>
70
+      <el-form-item label="人均消费" prop="averagePrice">
71
+        <el-input v-model="listData.averagePrice"/>
72
+      </el-form-item>
73
+      <el-form-item label="高德坐标">
74
+        <el-input placeholder="经度" v-model="listData.shopLongitude" style="width: 150px;" />
75
+        <el-input placeholder="纬度" v-model="listData.shopLatitude" style="width: 150px;" />
76
+      </el-form-item>
77
+      <el-form-item label="">
78
+         <!-- 地图 -->
79
+        <div style="width:100%;height:300px;" class="amap-page-container">
80
+          <el-amap-search-box :search-option="searchOption" :on-search-result="onSearchResult" class="search-box"/>
81
+          <el-amap ref="map" :events="events" :center="mapCenter" :zoom="12" class="amap-demo" vid="amapDemo">
82
+            <el-amap-marker v-for="(item,index) in markers" :key="index" :position="item" />
83
+          </el-amap>
84
+        </div>
85
+      </el-form-item>
86
+      <el-form-item label="商铺介绍">
87
+          <!-- <el-input v-model="addForm.bannerContent" placeholder="内容详情"/> -->
88
+          <div id="father">
89
+            <wangeditor :content="listData.shopIntroduction" @wangeditorEvent="wangeditorValue"/>
90
+          </div>
91
+        </el-form-item>
92
+      <el-form-item>
93
+        <el-button type="primary" @click="submitForm('ruleForm')">修改</el-button>
94
+      </el-form-item>
95
+    </el-form>
96
+  </div>
97
+</template>
98
+
99
+<script>
100
+import Pagination from '@/components/Pagination' // Secondary package based on el-pagination
101
+import Wangeditor from '@/components/Wangeditor'
102
+
103
+export default {
104
+  components: { Pagination, Wangeditor },
105
+  data() {
106
+    return {
107
+      events: {
108
+        click: e => {
109
+          // _self.postData.Coordinate = e.lnglat.lat + ',' + e.lnglat.lng
110
+          this.listData.shopLongitude = e.lnglat.lng
111
+          this.listData.shopLatitude = e.lnglat.lat
112
+        }
113
+      },
114
+      listData: {
115
+        id: '',
116
+        shopName: '',
117
+        remark: '',
118
+        appIndexImg: '',
119
+        appListImg: '',
120
+        appCarouselImg: [],
121
+        sort: '',
122
+        shopTypeId: '',
123
+        shopStatus: '',
124
+        shopTel: '',
125
+        shopAddress: '',
126
+        averagePrice: '',
127
+        shopLongitude: '',
128
+        shopLatitude: '',
129
+        shopIntroduction: ''
130
+      },
131
+      displayAppCarouselImg: [],
132
+      dialogImageUrl: '',
133
+      dialogVisible: false,
134
+      uploadImgUrl: process.env.BASE_API + '/uploadimage',
135
+      markers: [],
136
+      shopTypeList: [],
137
+      searchOption: {
138
+        city: '南京',
139
+        citylimit: false
140
+      },
141
+      mapCenter: [118.789509, 32.019989],
142
+      tableKey: 0,
143
+      rules: {
144
+        typeName: [
145
+          { required: true, message: '请输入商铺名称', trigger: 'blur' }
146
+        ],
147
+        remark: [
148
+          { required: true, message: '请输入商铺说明', trigger: 'blur' }
149
+        ],
150
+        shopTel: [
151
+          { required: true, message: '请输入联系电话', trigger: 'blur' }
152
+        ],
153
+        shopAddress: [
154
+          { required: true, message: '请输入商铺地址', trigger: 'blur' }
155
+        ],
156
+        appIndexImg: [
157
+          { required: true, message: 'app首页展示图', trigger: 'blur' }
158
+        ],
159
+        appListImg: [
160
+          { required: true, message: 'app列表展示图', trigger: 'blur' }
161
+        ],
162
+        appCarouselImg: [
163
+          { required: true, message: 'app商铺轮播图', trigger: 'blur' }
164
+        ],
165
+      }
166
+    }
167
+  },
168
+  created() {
169
+    this.listData.id = this.$route.query.id
170
+    this.getById()
171
+    this.getShopTypeList()
172
+  },
173
+  methods: {
174
+     addMarker() {
175
+      const lng = 121.5 + Math.round(Math.random() * 1000) / 10000
176
+      const lat = 31.197646 + Math.round(Math.random() * 500) / 10000
177
+      this.markers.push([lng, lat])
178
+    },
179
+    getById() {
180
+      this.$store.dispatch('shopType/GetShop', this.listData.id).then((res) => {
181
+        const shopData = res.data
182
+        this.listData = shopData
183
+        alert(this.listData.shopIntroduction)
184
+        // 多张图片进行遍历
185
+        for (let i = 0; i < shopData.appCarouselImg.length; i++) {
186
+          this.displayAppCarouselImg.push({ url: shopData.appCarouselImg[i] })
187
+        }
188
+      })
189
+    },
190
+    beforeAvatarUpload(file) {
191
+    },
192
+    handleAppIndexSuccess(res, file) {
193
+      this.listData.appIndexImg = res.data[0]
194
+    },
195
+    handleAppListSuccess(res, file) {
196
+      this.listData.appListImg = res.data[0]
197
+    },
198
+    handleRemove(file, fileList) {
199
+      this.listData.appCarouselImg = []
200
+      for (let i = 0; i < fileList.length; i++) {
201
+        this.listData.appCarouselImg.push(fileList[i].response.data[0])
202
+      }
203
+    },
204
+    handleSuccessCarouselImg(response, file, fileList) { // 活动配图上传成功时回调
205
+      const resImg = response.data[0]
206
+      this.listData.appCarouselImg.push(resImg)
207
+    },
208
+    handlePictureCardPreview(file) {
209
+      this.dialogImageUrl = file.url;
210
+      this.dialogVisible = true;
211
+    },
212
+    getShopTypeList() {
213
+      this.$store.dispatch('shopType/FetchShopTypeSelect', this.listData).then((res) => {
214
+        this.shopTypeList = res.data
215
+      }).catch(() => {
216
+        console.log('error ListAnnouncement')
217
+      })
218
+    },
219
+    onSearchResult(pois) {
220
+      // 搜索地图
221
+      let latSum = 0
222
+      let lngSum = 0
223
+      if (pois.length > 0) {
224
+        pois.forEach(poi => {
225
+          const { lng, lat } = poi
226
+          lngSum += lng
227
+          latSum += lat
228
+          this.markers.push([poi.lng, poi.lat])
229
+        })
230
+        const center = {
231
+          lng: lngSum / pois.length,
232
+          lat: latSum / pois.length
233
+        }
234
+        this.mapCenter = [center.lng, center.lat]
235
+      }
236
+    },
237
+    wangeditorValue(value) {
238
+      this.listData.shopIntroduction = value // 在这里接受子组件传过来的参数,赋值给data里的参数
239
+    },
240
+    submitForm(formName) { // 提交
241
+      this.$refs[formName].validate((valid) => {
242
+        if (valid) {
243
+          this.updateShop()
244
+        } else {
245
+          console.log('error submit!!')
246
+          return false
247
+        }
248
+      })
249
+    },
250
+    resetForm(formName) { // 重置
251
+      // 重置为未注册
252
+      this.isRegistered = true
253
+      // 重置为非户主
254
+      this.roleDisabled = false
255
+
256
+      console.log(this.isRegistered)
257
+      this.$refs[formName].resetFields()
258
+    },
259
+    updateShop() {
260
+      // 加载框
261
+      const loading = this.$loading({
262
+        lock: true,
263
+        text: 'Loading',
264
+        spinner: 'el-icon-loading',
265
+        background: 'rgba(0, 0, 0, 0.7)'
266
+      })
267
+      this.$store.dispatch('shopType/UpdateShop', this.listData).then((res) => {
268
+        if (res.code === '0') {
269
+          this.$message({
270
+            message: res.message,
271
+            type: 'success'
272
+          })
273
+          this.$router.push({ name: 'shop-index' })
274
+          loading.close()
275
+          return
276
+        }
277
+        this.$message.error(res.message)
278
+        loading.close()
279
+      }).catch(() => {
280
+        loading.close()
281
+        console.log('error UpdateShop')
282
+      })
283
+    }
284
+  }
285
+}
286
+</script>
287
+
288
+<style>
289
+.avatar-uploader .el-upload {
290
+    border: 1px dashed #d9d9d9;
291
+    border-radius: 6px;
292
+    cursor: pointer;
293
+    position: relative;
294
+    overflow: hidden;
295
+  }
296
+  .avatar-uploader .el-upload:hover {
297
+    border-color: #409EFF;
298
+  }
299
+  .avatar-uploader-icon {
300
+    font-size: 28px;
301
+    color: #8c939d;
302
+    width: 178px;
303
+    height: 178px;
304
+    line-height: 178px;
305
+    text-align: center;
306
+  }
307
+  .avatar {
308
+    width: 178px;
309
+    height: 178px;
310
+    display: block;
311
+  }
312
+  
313
+.add-ruleForm{
314
+  width: 800px;
315
+  margin-left: auto;
316
+  margin-right: auto;
317
+  margin-top: 50px;
318
+}
319
+</style>
320
+<style scoped>
321
+.search-box {
322
+  position: absolute;
323
+  top: 25px;
324
+  left: 20px;
325
+}
326
+
327
+.amap-page-container {
328
+  position: relative;
329
+}
330
+</style>

+ 328
- 0
VUECODE/smart-property-manage/src/views/rental/rentalIndex.vue Прегледај датотеку

@@ -0,0 +1,328 @@
1
+
2
+<template>
3
+  <div class="root">
4
+    <el-form :inline="true" :model="listQuery" class="form-listQuery">
5
+      <el-form-item class="filter-item" label="房间编号">
6
+        <el-input v-model.trim="listQuery.id" onkeyup="this.value=this.value.replace(/\D/g,'')" placeholder="房间编号" />
7
+      </el-form-item>
8
+      <el-form-item class="filter-item" label="房间名称" >
9
+        <el-input v-model.trim="listQuery.shopName" placeholder="房间名称" />
10
+      </el-form-item>
11
+      <el-form-item class="filter-item" label="租金从" >
12
+        <el-input v-model.trim="listQuery.shopName" placeholder="租金从" />
13
+      </el-form-item>
14
+      <el-form-item class="filter-item" label="到" >
15
+        <el-input v-model.trim="listQuery.shopName" placeholder="到" />
16
+      </el-form-item>
17
+      <el-form-item class="filter-item" label="租赁方式" >
18
+        <el-select v-model="listQuery.shopStatus" placeholder="请选择">
19
+            <el-option label="整租" value="1"/>
20
+            <el-option label="合租" value="2"/>
21
+          </el-select>
22
+      </el-form-item>
23
+      <el-form-item class="filter-item" label="户型" >
24
+        <el-select v-model="listQuery.shopStatus" placeholder="请选择">
25
+            <el-option label="一室居" value="1"/>
26
+            <el-option label="二室居" value="2"/>
27
+            <el-option label="三室居" value="3"/>
28
+            <el-option label="四室居及以上" value="4"/>
29
+          </el-select>
30
+      </el-form-item>
31
+      <el-form-item class="filter-item" label="上架状态" >
32
+        <el-select v-model="listQuery.shopStatus" placeholder="请选择">
33
+            <el-option label="已上架" value="1"/>
34
+            <el-option label="已下架" value="2"/>
35
+          </el-select>
36
+      </el-form-item>
37
+      <el-form-item>
38
+        <el-button type="info" class="filter-item" @click="handleFilter">清空</el-button>
39
+        <el-button type="primary" @click="search">查询</el-button>
40
+      </el-form-item>
41
+    </el-form>
42
+    <div class="button">
43
+      <el-button type="primary" @click="add">添加</el-button>
44
+      <el-button type="warning" @click="edit">修改</el-button>
45
+      <el-button type="danger" @click="shelfShop">上架房间</el-button>
46
+      <el-button type="danger" @click="obtainedShop">下架房间</el-button>
47
+    </div>
48
+    <el-table
49
+      v-loading="listLoading"
50
+      ref="multipleTable"
51
+      :data="rentalList"
52
+      border
53
+      tooltip-effect="dark"
54
+      style="width: 100%; margin-top: 20px;"
55
+      @selection-change="handleSelectionChange">
56
+      <el-table-column
57
+        type="selection"
58
+        width="55"/>
59
+      <el-table-column prop="id" label="房间编号" align="center"/>
60
+      <el-table-column prop="shopName" label="房间名称" align="center" >
61
+        <template slot-scope="scope"><a><span style="color: #63B8FF" @click="clickTitle(scope.row.id)">{{ scope.row.shopName }}</span></a></template>
62
+      </el-table-column>
63
+      <el-table-column prop="sort" label="权重" align="center"/>
64
+      <el-table-column prop="typeName" label="租金" align="center"/>
65
+      <el-table-column prop="shopStatus" label="上架状态" align="center">\
66
+        <template slot-scope="scope">
67
+          <span v-if="scope.row.shopStatus === '1'">已上架</span>
68
+          <span v-if="scope.row.shopStatus === '2'">已下架</span>
69
+        </template>
70
+      </el-table-column>
71
+      <el-table-column prop="shopStatus" label="租赁方式" align="center">\
72
+        <template slot-scope="scope">
73
+          <span v-if="scope.row.shopStatus === '1'">整租</span>
74
+          <span v-if="scope.row.shopStatus === '2'">合租</span>
75
+        </template>
76
+      </el-table-column>
77
+      <el-table-column prop="shopStatus" label="户型" align="center">\
78
+        <template slot-scope="scope">
79
+          <span v-if="scope.row.shopStatus === '1'">一室居</span>
80
+          <span v-if="scope.row.shopStatus === '2'">二室居</span>
81
+          <span v-if="scope.row.shopStatus === '3'">三室居</span>
82
+          <span v-if="scope.row.shopStatus === '4'">四室居及以上</span>
83
+        </template>
84
+      </el-table-column>
85
+      <el-table-column prop="updateDate" label="编辑时间" align="center" ><template slot-scope="scope">{{ formatDate(scope.row.updateDate) }}</template></el-table-column>
86
+      <el-table-column prop="userName" label="编辑人" align="center"/>
87
+    </el-table>
88
+    <div class="block">
89
+      <el-pagination
90
+        :current-page.sync="listQuery.pageNum"
91
+        :page-sizes="[10, 20, 50, 100]"
92
+        :page-size.sync="listQuery.pageSize"
93
+        :total="total"
94
+        layout="total, sizes, prev, pager, next, jumper"
95
+        @size-change="handleSizeChange"
96
+        @current-change="handleCurrentChange"/>
97
+    </div>
98
+  </div>
99
+</template>
100
+
101
+<script>
102
+import { mapState, mapActions, mapMutations } from 'vuex'
103
+
104
+export default {
105
+  data() {
106
+    return {
107
+      listQuery: {
108
+        id: '',
109
+        shopName: '',
110
+        shopTypeId: '',
111
+        shopStatus: '',
112
+        pageNum: 1,
113
+        pageSize: 10
114
+      },
115
+      total: 0, // 数据总数
116
+      shopList: [],
117
+      shopTypeList: [],
118
+      deleteIds: [], // 选择的id集合
119
+      listLoading: true // 加载圈
120
+    }
121
+  },
122
+  mounted() {
123
+    // 获取数据
124
+    this.dataQuery()
125
+    this.getShopTypeList()
126
+  },
127
+  methods: {
128
+    ...mapActions('shopType', [
129
+      'FetchShopList',
130
+      'FetchShopTypeSelect'
131
+    ]),
132
+    handleSizeChange(val) {
133
+      console.log(`每页 ${val} 条`)
134
+      this.listQuery.pageSize = val
135
+      this.dataQuery()
136
+    },
137
+    handleCurrentChange(val) {
138
+      console.log(`当前页: ${val}`)
139
+      this.listQuery.pageNum = val
140
+      this.dataQuery()
141
+    },
142
+    padDate(value) {
143
+      value = value < 10 ? '0' + value : value
144
+      return value
145
+    },
146
+    getStatus(row) { // 获取状态
147
+      let statusName = ''
148
+
149
+      // 判断状态
150
+      switch (row.status) {
151
+        case '0':
152
+          statusName = '已作废'
153
+          break
154
+        case '1':
155
+          statusName = '已发布'
156
+          break
157
+        case '2':
158
+          statusName = '草稿'
159
+          break
160
+      }
161
+
162
+      // 如果修改时间和创建时间不一致, 就显示已修改
163
+      if (row.status === '1' && (row.updateDate > row.createDate)) {
164
+        statusName = '已修改'
165
+      }
166
+
167
+      return statusName
168
+    },
169
+    dataQuery() { // 查询数据
170
+      this.listLoading = true
171
+      this.$store.dispatch('shopType/FetchShopList', this.listQuery).then((res) => {
172
+        const resData = res.data
173
+        this.rentalList = resData.list
174
+        this.total = resData.total
175
+        this.listLoading = false
176
+      }).catch(() => {
177
+        this.listLoading = false
178
+        console.log('error ListAnnouncement')
179
+      })
180
+    },
181
+    getShopTypeList() {
182
+      this.$store.dispatch('shopType/FetchShopTypeSelect', this.listQuery).then((res) => {
183
+        this.shopTypeList = res.data
184
+      }).catch(() => {
185
+        console.log('error ListAnnouncement')
186
+      })
187
+    },
188
+    handleSelectionChange(data) {
189
+      // 设置为 空
190
+      this.deleteIds = []
191
+      for (let i = 0; i < data.length; i++) {
192
+        this.deleteIds.push(data[i].id)
193
+      }
194
+    },
195
+	  search() {
196
+      this.listQuery.pageNum = 1
197
+      this.dataQuery()
198
+    },
199
+    handleFilter() {
200
+      this.listQuery.pageNum = 1
201
+      this.listQuery.pageSize = 10
202
+      this.listQuery.id =''
203
+      this.listQuery.shopName=''
204
+      this.listQuery.shopTypeId=''
205
+      this.listQuery.shopStatus=''
206
+      this.dataQuery()
207
+    },
208
+    // 添加公告
209
+    add() {
210
+      this.$router.push({ name: 'shop-add' })
211
+    },
212
+    edit(){// 编辑公告
213
+      const ids = this.deleteIds
214
+      if (ids.length > 1) {
215
+        this.$message.error('只能选择一行数据进行修改!')
216
+        return
217
+      }
218
+      if (ids < 1) {
219
+        this.$message.error('请选择一行数据进行修改!')
220
+        return
221
+      }
222
+       let ide= this.deleteIds[0]
223
+       this.listQuery.id = ide
224
+       this.$router.push({ name: 'shop-edit', query: { id: ide }})
225
+      },
226
+    deleteAnnouncement(){
227
+       let ide= this.deleteIds[0]
228
+       this.listQuery.id = ide 
229
+      this.$store.dispatch('AnnouncementById', this.listQuery).then((res) => {
230
+        const resData = res.data
231
+        const announcement = resData.tpAnnouncement
232
+        const imgList = resData.studentList
233
+        this.listQuery.status= announcement.status
234
+        console.log("1",this.listQuery.status)
235
+        if(this.listQuery.status == 0){
236
+          this.$message.error('已作废不可以作废')
237
+          return
238
+        }
239
+        this.deleteId()     
240
+      })    
241
+    },
242
+    shelfShop() {
243
+      this.listLoading = true
244
+      const ids = this.deleteIds
245
+      if (ids < 1) {
246
+        this.$message.error('请至少选择一行数据上架!')
247
+        return
248
+      }
249
+      this.$store.dispatch('shopType/ShelfShop', ids).then((res) => {
250
+        this.listLoading = false
251
+        this.dataQuery()
252
+      }).catch(() => {
253
+        this.listLoading = false
254
+        console.log('error DeleteAnnouncement')
255
+      })
256
+    },
257
+    obtainedShop() {
258
+      this.listLoading = true
259
+      const ids = this.deleteIds
260
+      if (ids < 1) {
261
+        this.$message.error('请至少选择一行数据下架!')
262
+        return
263
+      }
264
+      this.$store.dispatch('shopType/ObtainedShop', ids).then((res) => {
265
+        this.listLoading = false
266
+        this.dataQuery()
267
+      }).catch(() => {
268
+        this.listLoading = false
269
+        console.log('error DeleteAnnouncement')
270
+      })
271
+    },
272
+    deleteId(){
273
+       const ids = this.deleteIds
274
+      this.listLoading = true
275
+      console.log(ids)
276
+      this.$store.dispatch('DeleteAnnouncement', ids).then((res) => {
277
+        this.listLoading = false
278
+        this.listQuery.announcementTitle = ''
279
+        this.dataQuery()
280
+      }).catch(() => {
281
+        this.listLoading = false
282
+        console.log('error DeleteAnnouncement')
283
+      })
284
+    },
285
+
286
+
287
+    clickTitle(id) {
288
+      this.$router.push({ name: 'shop-edit', query: { id: id }})
289
+    },
290
+    formatDate(val) {
291
+      if (val === null) {
292
+        return ''
293
+      }
294
+      var value = new Date(val)
295
+      var year = value.getFullYear()
296
+      var month = value.getMonth() + 1
297
+      var day = value.getDate()
298
+      return year + '-' + month + '-' + day
299
+    }
300
+  }
301
+}
302
+</script>
303
+
304
+<style scoped>
305
+.root{
306
+  display: flex;
307
+  flex-flow: column;
308
+}
309
+.form-listQuery{
310
+  margin-top: 20px;
311
+  margin-left: 30px;
312
+}
313
+.operation{
314
+  display: flex;
315
+  justify-content: space-between;
316
+  margin-left: 20px;
317
+  margin-right: 20px;
318
+}
319
+.block{
320
+  display: flex;
321
+  justify-content: flex-end;
322
+  margin-top: 10px;
323
+}
324
+.button {
325
+  margin-left: 20px;
326
+}
327
+</style>
328
+

+ 1
- 1
VUECODE/smart-property-manage/src/views/ticket/index.vue Прегледај датотеку

@@ -1,7 +1,7 @@
1 1
 <template>
2 2
   <div class="root">
3 3
     <el-form :inline="true" :model="listQuery" class="form-listQuery">
4
-      <el-form-item class="filter-item" label="工单编号">
4
+      <el-form-item class="filter-item" label="房间编号">
5 5
         <el-input v-model.trim="listQuery.id" placeholder="工单编号" />
6 6
       </el-form-item>
7 7
       <el-form-item label="类型">