瀏覽代碼

Merge branch 'master' of http://git.ycjcjy.com/ershoufang/mp-agent into master

张延森 4 年之前
父節點
當前提交
a92b799de9

+ 39
- 3
src/store/models/renting.js 查看文件

@@ -10,7 +10,8 @@ export default () => {
10 10
   const list = ref([])
11 11
   const page = reactive({})
12 12
   const detail = reactive({})
13
-
13
+  const rentRole = reactive({})
14
+  const rentKeyBox = reactive({})
14 15
   const getList = data => {
15 16
     loading.value = true
16 17
     request({
@@ -62,7 +63,38 @@ export default () => {
62 63
     })
63 64
   }
64 65
 
65
-  
66
+    // 角色人信息
67
+  const getRole = data => {
68
+    request({
69
+      loadingId: 'rent.role.view',
70
+      url: '/rent/role/view',
71
+      params: {
72
+        roomId:data,
73
+      }
74
+    }).then(res => {
75
+      Object.assign(rentRole, res)
76
+    }).catch(e => {
77
+      console.error(e)
78
+      showDanger('获取角色人失败')
79
+    })
80
+  }
81
+
82
+ // 钥匙信息
83
+  const getKey = data => {
84
+    request({
85
+      loadingId: 'rent.key.view',
86
+      url: '/rent/key/view',
87
+      params: {
88
+        roomId: data,
89
+      }
90
+    }).then(res => {
91
+      Object.assign(rentKeyBox, res)
92
+    }).catch(e => {
93
+      console.error(e)
94
+      showDanger('获取钥匙失败')
95
+    })
96
+  }
97
+
66 98
 
67 99
 
68 100
 
@@ -72,6 +104,10 @@ export default () => {
72 104
     getList,
73 105
     detail,
74 106
     getDetail,
75
-    loading
107
+    loading,
108
+    getRole,
109
+    rentRole,
110
+    getKey,
111
+    rentKeyBox,
76 112
   }
77 113
 }

+ 85
- 36
src/view/followup/index.vue 查看文件

@@ -2,26 +2,39 @@
2 2
   <div class="closehouse">
3 3
     <van-form @submit="onSubmit">
4 4
       <van-field
5
-        v-model="state.id"
5
+        :model-value="`${detail.roomInfo?.roomCode}${detail.roomInfo?.id}`"
6 6
         name="id"
7 7
         label="房源编号"
8 8
         readonly
9 9
         placeholder="房源编号"
10 10
       />
11 11
       <van-field
12
-        v-model="state.building"
12
+        :model-value="detail.building?.buildingName"
13 13
         name="building"
14 14
         label="所属楼盘"
15 15
         readonly
16 16
         placeholder="所属楼盘"
17
-       
18 17
       />
18
+
19 19
       <van-field
20
+        required
21
+        :rules="[{ required: true, message: '请选择跟进类型' }]"
22
+        label="跟进类型"
23
+      >
24
+        <template #input>
25
+          <Picker
26
+            placeholder="请选择跟进类型"
27
+            :options="followTypeOptions"
28
+            v-model="formData.followType"
29
+          />
30
+        </template>
31
+      </van-field>
32
+      <!-- <van-field
20 33
         v-model="pickerState.value"
21 34
         readonly
22 35
         clickable
23 36
         required
24
-        name="address"
37
+        name="followType"
25 38
         label="跟进类型"
26 39
         placeholder="跟进类型"
27 40
         @click="pickerState.showPicker = true"
@@ -29,23 +42,26 @@
29 42
       />
30 43
       <van-popup v-model:show="pickerState.showPicker" position="bottom">
31 44
         <van-picker
32
-          :columns="columns"
45
+          :columns="followTypeOptions"
33 46
           @confirm="onConfirm"
34 47
           @cancel="pickerState.showPicker = false"
35 48
         />
36
-      </van-popup>
37
-      <!-- <van-field
38
-        v-model="state.building"
39
-        required
40
-        name="type"
41
-        label="关闭类型"
42
-        placeholder="请选择"
43
-        :rules="[{ required: true, message: '请填写密码' }]"
44
-      /> -->
49
+      </van-popup> -->
50
+
51
+      <van-field
52
+        v-show="formData.followType == 4"
53
+        v-model="formData.newRoomPrice"
54
+        label="价格调整为"
55
+        type="number"
56
+      >
57
+        <template #extra>
58
+          元/月
59
+        </template>
60
+      </van-field>
45 61
       <van-field
46
-        v-model="state.explain"
62
+        v-model="formData.followDesc"
47 63
         required
48
-        name="explain"
64
+        name="followDesc"
49 65
         label="跟进描述"
50 66
         placeholder="跟进描述"
51 67
         rows="3"
@@ -63,9 +79,12 @@
63 79
 </template>
64 80
 
65 81
 <script>
66
-import { reactive } from "vue";
67
-import { Form, Button, Field, Picker, Popup } from "vant";
68
-
82
+import { reactive, onMounted } from "vue";
83
+import { Form, Button, Field, Popup } from "vant";
84
+import { useRouter } from "vue-router";
85
+import { useModel } from "@zjxpcyc/vue-tiny-store";
86
+import Picker from "@/components/Picker";
87
+import request from "@/utils/request";
69 88
 export default {
70 89
   name: "closehouse",
71 90
   components: {
@@ -73,38 +92,68 @@ export default {
73 92
     [Button.name]: Button,
74 93
     [Field.name]: Field,
75 94
     [Popup.name]: Popup,
76
-    [Picker.name]: Picker,
95
+    Picker: Picker,
77 96
     // Secondhand:secondhand,
78 97
   },
79 98
   data() {
80 99
     return {};
81 100
   },
82 101
   setup() {
83
-    const state = reactive({
84
-      id: "",
85
-      building: "",
102
+     const roomId = router.currentRoute.value.query.roomId;
103
+    const formData = reactive({
104
+      roomId: roomId,
105
+      followType: undefined, //根据类型
106
+      newRoomPrice: undefined, //新价格
107
+      followDesc: undefined, //根进描述
86 108
     });
109
+    const router = useRouter();
110
+   
111
+    const { detail, getDetail } = useModel("room");
112
+
113
+    const followTypeOptions = [
114
+      {
115
+        text: "日常跟进",
116
+        value: "2",
117
+      },
118
+      {
119
+        text: "带看",
120
+        value: "1",
121
+      },
122
+      {
123
+        text: "查看敏感信息",
124
+        value: "3",
125
+      },
126
+      {
127
+        text: "价格调整",
128
+        value: "4",
129
+      },
130
+    ];
131
+
87 132
     const onSubmit = (values) => {
88 133
       console.log("submit", values);
134
+
135
+      request({
136
+        url: "/room/follow/save",
137
+        params: formData,
138
+      }).then(() => {
139
+        // list.value = res.result;
140
+      });
89 141
     };
90 142
 
91
-    const pickerState = reactive({
92
-      value: "",
93
-      showPicker: false,
143
+    onMounted(() => {
144
+      if (!detail.roomInfo) {
145
+        getDetail(roomId);
146
+      }
94 147
     });
95
-    const columns = ["杭州", "宁波", "温州", "嘉兴", "湖州"];
96
-
97
-    const onConfirm = (value) => {
98
-      pickerState.value = value;
99
-      pickerState.showPicker = false;
100
-    };
101 148
 
102 149
     return {
103
-      state,
104
-      pickerState,
105
-      columns,
106
-      onConfirm,
150
+   
151
+
152
+      formData,
153
+
107 154
       onSubmit,
155
+      detail,
156
+      followTypeOptions,
108 157
     };
109 158
   },
110 159
 };

+ 42
- 24
src/view/renting/detail/components/Follow.vue 查看文件

@@ -1,27 +1,37 @@
1 1
 <template>
2
-  <x-loading x-id="room.follow.list">
2
+  <x-loading x-id="rent.follow.list">
3 3
     <p v-if="!list.length">暂无跟进记录</p>
4 4
     <van-steps direction="vertical" :active="0" v-else>
5 5
       <van-step v-for="(item, index) in list" :key="index">
6
+        <p>{{ item.followUserName }} {{ item.createTime }}</p>
6 7
         <p>
7
-          {{item.followUserName}} {{item.createTime}}
8
-        </p>
9
-        <p>
10
-          {{item.followType === '0' ? '看房, ': ''}}
11
-          {{item.followDesc}}
8
+          {{ item.followType === "0" ? "看房, " : "" }}
9
+          {{ item.followDesc }}
12 10
         </p>
13 11
         <p v-if="item.followImg">
14 12
           <van-image width="100" height="100" :src="item.followImg" />
15
-        </p>          
13
+        </p>
16 14
       </van-step>
17 15
     </van-steps>
16
+
17
+    <!-- <x-field label=" " v-shiro="'room:info:security'"> -->
18
+
19
+    <van-button
20
+      size="small"
21
+      type="primary"
22
+      v-shiro="'room:renting:follow'"
23
+      @click="goToAddFollow"
24
+      >添加跟进</van-button
25
+    >
26
+    <!-- </x-field> -->
18 27
   </x-loading>
19 28
 </template>
20 29
 
21 30
 <script>
22
-import { onMounted, ref } from 'vue'
23
-import { List, Step, Steps, Image } from 'vant'
24
-import request from '@/utils/request'
31
+import { onMounted, ref } from "vue";
32
+import { List, Step, Steps, Image, Button } from "vant";
33
+import { useRouter } from "vue-router";
34
+import request from "@/utils/request";
25 35
 
26 36
 export default {
27 37
   components: {
@@ -29,35 +39,43 @@ export default {
29 39
     [Steps.name]: Steps,
30 40
     [Step.name]: Step,
31 41
     [Image.name]: Image,
42
+    [Button.name]: Button,
32 43
   },
33 44
   props: {
34 45
     roomId: undefined,
35 46
   },
36 47
   setup(props) {
37
-    const list = ref([])
38
-
48
+    const list = ref([]);
49
+    const router = useRouter();
39 50
     const handleLoad = () => {
40 51
       request({
41
-        loadingId: 'room.follow.list',
42
-        url: '/room/follow/list',
52
+        loadingId: "rent.follow.list",
53
+        url: "/rent/follow/list",
43 54
         params: {
44 55
           roomId: props.roomId,
45 56
           pageNo: 1,
46 57
           pageSize: 100,
47
-        }
48
-      }).then(res => {
49
-        list.value = res.result
50
-      })
51
-    }
58
+        },
59
+      }).then((res) => {
60
+        list.value = res.result;
61
+      });
62
+    };
63
+
64
+    const goToAddFollow = () =>
65
+      router.push({
66
+        name: "secondhand.detail",
67
+        query: { roomId: props.roomId },
68
+      });
52 69
 
53 70
     onMounted(() => {
54
-      handleLoad()
55
-    })
71
+      handleLoad();
72
+    });
56 73
 
57 74
     return {
58 75
       list,
59 76
       handleLoad,
60
-    }
61
-  }
62
-}
77
+      goToAddFollow,
78
+    };
79
+  },
80
+};
63 81
 </script>

+ 14
- 14
src/view/renting/detail/components/Key.vue 查看文件

@@ -1,34 +1,34 @@
1 1
 <template>
2
-  <x-loading x-id="room.key">
3
-    <p v-if="!roomKey">暂无钥匙信息</p>
4
-    <p v-else-if="roomKey.status === '1'">当前委托书正在审核中</p>
2
+  <x-loading x-id="rent.key.view">
3
+    <p v-if="!rentKey">暂无钥匙信息</p>
4
+    <p v-else-if="rentKey.status === '1'">当前委托书正在审核中</p>
5 5
     <div v-else>
6 6
       <shiro name="room:info:key">
7 7
         <template #callback>
8 8
           <van-empty image="error" description="无钥匙协议查看权限" />
9 9
         </template>
10 10
 
11
-        <x-field label=" " v-if="roomKeyBox.isCreate">
11
+        <x-field label=" " v-if="rentKeyBox.isCreate">
12 12
           <van-button size="small" type="danger">删除钥匙</van-button>
13 13
         </x-field>
14 14
 
15 15
         <x-field label="上传人">
16
-          {{roomKey.keyUserName}} ({{roomKey.keyUserPhone}})
16
+          {{rentKey.keyUserName}} ({{rentKey.keyUserPhone}})
17 17
         </x-field>
18 18
 
19 19
         <x-field label="上传时间">
20
-          {{roomKey.updateTime}}
20
+          {{rentKey.updateTime}}
21 21
         </x-field>
22 22
 
23 23
         <x-field label="钥匙编号">
24
-          {{roomKey.keyNo}}
24
+          {{rentKey.keyNo}}
25 25
         </x-field>
26 26
 
27 27
         <x-field label="存储位置">
28
-          {{roomKey.address}}
28
+          {{rentKey.address}}
29 29
         </x-field>
30 30
 
31
-        <van-image width="100" height="100" :src="roomKey.url" />
31
+        <van-image width="100" height="100" :src="rentKey.url" />
32 32
 
33 33
       </shiro>
34 34
     </div>
@@ -50,20 +50,20 @@ export default {
50 50
     roomId: undefined
51 51
   },
52 52
   setup(props) {
53
-    const { detail, roomKeyBox, getKey } = useModel("room")
53
+    const { detail, rentKeyBox, getKey } = useModel("renting")
54 54
 
55
-    const roomKey = computed(() => roomKeyBox.roomKey)
55
+    const rentKey = computed(() => rentKeyBox.roomKey)
56 56
 
57 57
     onMounted(() => {
58
-      if (!roomKeyBox.roomKey) {
58
+      if (!rentKeyBox.roomKey) {
59 59
         getKey(props.roomId)
60 60
       }
61 61
     })
62 62
 
63 63
     return {
64 64
       detail,
65
-      roomKeyBox,
66
-      roomKey,
65
+      rentKeyBox,
66
+      rentKey,
67 67
     }
68 68
   }
69 69
 }

+ 3
- 3
src/view/renting/detail/components/Look.vue 查看文件

@@ -1,5 +1,5 @@
1 1
 <template>
2
-  <x-loading x-id="room.look.list">
2
+  <x-loading x-id="rent.look.list">
3 3
     <p v-if="!list.length">暂无空看记录</p>
4 4
     <van-steps direction="vertical" :active="0" v-else>
5 5
       <van-step v-for="(item, index) in list" :key="index">
@@ -38,8 +38,8 @@ export default {
38 38
 
39 39
     const handleLoad = () => {
40 40
       request({
41
-        loadingId: 'room.look.list',
42
-        url: '/room/look/list',
41
+        loadingId: 'rent.look.list',
42
+        url: '/rent/look/list',
43 43
         params: {
44 44
           roomId: props.roomId,
45 45
           pageNo: 1,

+ 7
- 4
src/view/renting/detail/components/Main.vue 查看文件

@@ -3,7 +3,7 @@
3 3
     <x-field label="房源ID"> {{ roomInfo.roomCode }}{{ roomInfo.id }} </x-field>
4 4
 
5 5
     <x-field label="所属楼盘">
6
-      {{ roomInfo.buildingName }}
6
+      {{ building.buildingName }}
7 7
     </x-field>
8 8
 
9 9
     <x-field label="面积"> {{ roomInfo.acreage }} ㎡ </x-field>
@@ -27,8 +27,6 @@
27 27
       }}
28 28
     </x-field>
29 29
 
30
-
31
-
32 30
     <x-field label="创建方式">
33 31
       {{ roomInfo.createMethod === "1" ? "外部录入" : "荟居录入" }}
34 32
     </x-field>
@@ -76,7 +74,7 @@
76 74
         size="small"
77 75
         type="warning"
78 76
         @click="handleSecurityClick"
79
-        >查看敏感信息(剩余 {{ otherData.leftSecurityNum }} 次)</van-button
77
+        >查看敏感信息(剩余 {{ otherData?.leftSecurityNum }} 次)</van-button
80 78
       >
81 79
       <van-button
82 80
         v-else
@@ -121,6 +119,11 @@ export default {
121 119
       type: Object,
122 120
       default: () => ({}),
123 121
     },
122
+    building: {
123
+      type: Object,
124
+      default: () => ({}),
125
+    },
126
+
124 127
     otherData: Object,
125 128
   },
126 129
   setup(props) {

+ 14
- 42
src/view/renting/detail/components/Role.vue 查看文件

@@ -1,74 +1,46 @@
1 1
 <template>
2
-  <x-loading x-id="room.role">
2
+  <x-loading x-id="rent.role.view">
3 3
     <x-field label="首次录入人">
4 4
       {{firstInputUser}}
5 5
     </x-field>
6 6
     <x-field label="首次录入时间">
7
-      {{roomRole.createTime}}
7
+      {{rentRole.createTime}}
8 8
     </x-field>
9 9
     
10 10
     <x-field label="录入人">
11 11
       {{inputUser}}
12 12
     </x-field>
13 13
     <x-field label="录入时间">
14
-      {{roomRole.recordTime}}
14
+      {{rentRole.recordTime}}
15 15
     </x-field>
16 16
     
17 17
     <x-field label="维护人">
18
-      {{getNameFormated(roomRole.belongName, roomRole.belongId)}}
18
+      {{getNameFormated(rentRole.belongName, rentRole.belongId)}}
19 19
     </x-field>
20 20
     <x-field label=" " v-shiro="'room:info:belongTel'">
21 21
       <van-button size="small" type="warning">查看电话</van-button>
22 22
     </x-field>
23 23
     
24 24
     <x-field label="实勘人">
25
-      {{getNameFormated(roomRole.rescName, roomRole.rescId)}}
25
+      {{getNameFormated(rentRole.rescName, rentRole.rescId)}}
26 26
     </x-field>
27 27
     <x-field label="达成时间">
28
-      {{roomRole.rescTime}}
28
+      {{rentRole.rescTime}}
29 29
     </x-field>
30 30
     
31 31
     <x-field label="钥匙人">
32
-      {{getNameFormated(roomRole.keyName, roomRole.keyId)}}
33
-    </x-field>
34
-
35
-    <x-field label="委托人">
36
-      {{getNameFormated(roomRole.authName, roomRole.authId)}}
37
-    </x-field>
38
-    <x-field label="委托时间">
39
-      {{roomRole.authTime}}
32
+      {{getNameFormated(rentRole.keyName, rentRole.keyId)}}
40 33
     </x-field>
41 34
 
42 35
     <x-field label="最后修改人">
43
-      {{getNameFormated(roomRole.updateName, roomRole.updateId)}}
36
+      {{getNameFormated(rentRole.updateName, rentRole.updateId)}}
44 37
     </x-field>
45 38
     <x-field label="最后修改时间">
46
-      {{roomRole.updateTime}}
39
+      {{rentRole.updateTime}}
47 40
     </x-field>
48 41
 
49
-    <template v-if="roomInfo.roomStatus === '8'">
50
-      <x-field label="成交人">
51
-        {{getNameFormated(roomRole.doneName, roomRole.doneId)}}
52
-      </x-field>
53
-      <x-field label="成交时间">
54
-        {{roomRole.doneTime}}
55
-      </x-field>
56
-    </template>
57 42
 
58
-    <template v-if="roomInfo.roomStatus !== '0' && roomInfo.roomStatus !== '8'">
59
-      <x-field label="申请关闭人">
60
-        {{getNameFormated(roomRole.applyCloseName, roomRole.applyCloseId)}}
61
-      </x-field>
62
-      <x-field label="申请关闭时间">
63
-        {{roomRole.applyCloseTime}}
64
-      </x-field>
65
-      <x-field label="关闭操作人">
66
-        {{getNameFormated(roomRole.closeName, roomRole.closeId)}}
67
-      </x-field>
68
-      <x-field label="关闭操作时间">
69
-        {{roomRole.closeTime}}
70
-      </x-field>
71
-    </template>
43
+    
72 44
 
73 45
   </x-loading>
74 46
 </template>
@@ -89,7 +61,7 @@ export default {
89 61
     },
90 62
   },
91 63
   setup(props) {
92
-    const { roomRole, getRole } = useModel("room")
64
+    const { rentRole, getRole } = useModel("renting")
93 65
 
94 66
     const getNameFormated = (name, id) => {
95 67
       return name + (name ? `(ID:${id})` : '')
@@ -100,7 +72,7 @@ export default {
100 72
       if (createMethod === '1') {
101 73
         return '外部录入'
102 74
       } else {
103
-        return getNameFormated(roomRole.createName, roomRole.createId)
75
+        return getNameFormated(rentRole.createName, rentRole.createId)
104 76
       }
105 77
     })
106 78
 
@@ -109,7 +81,7 @@ export default {
109 81
       if (createMethod === '1') {
110 82
         return '外部录入'
111 83
       } else {
112
-        return getNameFormated(roomRole.recordName, roomRole.recordId)
84
+        return getNameFormated(rentRole.recordName, rentRole.recordId)
113 85
       }
114 86
     })
115 87
 
@@ -118,7 +90,7 @@ export default {
118 90
     })
119 91
 
120 92
     return {
121
-      roomRole,
93
+      rentRole,
122 94
       firstInputUser,
123 95
       inputUser,
124 96
       getNameFormated,

+ 10
- 10
src/view/renting/detail/index.vue 查看文件

@@ -1,7 +1,7 @@
1 1
 <template>
2 2
   <div class="secondhanddetail">
3 3
     <!-- xId='room.view' -->
4
-    <x-loading x-id="room.view" tip="正在加载详情">
4
+    <x-loading x-id="rent.key.view" tip="正在加载详情">
5 5
       <div>
6 6
         <Swiper></Swiper>
7 7
       </div>
@@ -24,7 +24,7 @@
24 24
       </div>
25 25
 
26 26
       <van-cell-group title="房源信息">
27
-        <RoomMain :room-info="detail.roomInfo" :other-data="roomOtherData" />
27
+        <RoomMain :room-info="detail.roomInfo" :building="detail.building"  :other-data="roomOtherData" />
28 28
       </van-cell-group>
29 29
 
30 30
       <van-cell-group title="其他信息">
@@ -36,12 +36,12 @@
36 36
             <RoomBase :room-info="detail.roomInfo" :building="detail.building" />
37 37
           </van-collapse-item>
38 38
 
39
-          <van-collapse-item name="2">
39
+          <!-- <van-collapse-item name="2">
40 40
             <template #title>
41 41
               <div>物业信息</div>
42 42
             </template>
43 43
             <RoomEstate :build-info="detail.building" />
44
-          </van-collapse-item>
44
+          </van-collapse-item> -->
45 45
 
46 46
           <van-collapse-item name="role">
47 47
             <template #title>
@@ -50,12 +50,12 @@
50 50
             <RoomRole :room-info="detail.roomInfo" />
51 51
           </van-collapse-item>
52 52
           
53
-          <van-collapse-item name="auth">
53
+          <!-- <van-collapse-item name="auth">
54 54
             <template #title>
55 55
               <div>委托书</div>
56 56
             </template>
57 57
             <RoomAuth :room-id="roomId" />
58
-          </van-collapse-item>
58
+          </van-collapse-item> -->
59 59
           
60 60
           <van-collapse-item name="key">
61 61
             <template #title>
@@ -124,9 +124,9 @@ import {
124 124
 import { useModel } from "@zjxpcyc/vue-tiny-store"
125 125
 import RoomMain from './components/Main'
126 126
 import RoomBase from './components/Base'
127
-import RoomEstate from './components/Estate'
127
+// import RoomEstate from './components/Estate'
128 128
 import RoomRole from './components/Role'
129
-import RoomAuth from './components/Auth'
129
+// import RoomAuth from './components/Auth'
130 130
 import RoomKey from './components/Key'
131 131
 import RoomFollow from './components/Follow'
132 132
 import RoomLook from './components/Look'
@@ -154,9 +154,9 @@ export default {
154 154
     Swiper: Swiper,
155 155
     RoomMain,
156 156
     RoomBase,
157
-    RoomEstate,
157
+    // RoomEstate,
158 158
     RoomRole,
159
-    RoomAuth,
159
+    // RoomAuth,
160 160
     RoomKey,
161 161
     RoomFollow,
162 162
     RoomLook,

+ 38
- 22
src/view/secondhand/detail/components/Follow.vue 查看文件

@@ -3,25 +3,32 @@
3 3
     <p v-if="!list.length">暂无跟进记录</p>
4 4
     <van-steps direction="vertical" :active="0" v-else>
5 5
       <van-step v-for="(item, index) in list" :key="index">
6
+        <p>{{ item.followUserName }} {{ item.createTime }}</p>
6 7
         <p>
7
-          {{item.followUserName}} {{item.createTime}}
8
-        </p>
9
-        <p>
10
-          {{item.followType === '0' ? '看房, ': ''}}
11
-          {{item.followDesc}}
8
+          {{ item.followType === "0" ? "看房, " : "" }}
9
+          {{ item.followDesc }}
12 10
         </p>
13 11
         <p v-if="item.followImg">
14 12
           <van-image width="100" height="100" :src="item.followImg" />
15
-        </p>          
13
+        </p>
16 14
       </van-step>
17 15
     </van-steps>
16
+    <van-button
17
+      size="small"
18
+      type="primary"
19
+     
20
+      @click="goToAddFollow"
21
+      >添加跟进</van-button
22
+    >
23
+     <!-- v-shiro="'room:info:addFollow'" -->
18 24
   </x-loading>
19 25
 </template>
20 26
 
21 27
 <script>
22
-import { onMounted, ref } from 'vue'
23
-import { List, Step, Steps, Image } from 'vant'
24
-import request from '@/utils/request'
28
+import { onMounted, ref } from "vue";
29
+import { List, Step, Steps, Image,Button } from "vant";
30
+import { useRouter } from 'vue-router'
31
+import request from "@/utils/request";
25 32
 
26 33
 export default {
27 34
   components: {
@@ -29,35 +36,44 @@ export default {
29 36
     [Steps.name]: Steps,
30 37
     [Step.name]: Step,
31 38
     [Image.name]: Image,
39
+    [Button.name]: Button,
40
+    
32 41
   },
33 42
   props: {
34 43
     roomId: undefined,
35 44
   },
36 45
   setup(props) {
37
-    const list = ref([])
46
+    const list = ref([]);
47
+    const router = useRouter()
38 48
 
39 49
     const handleLoad = () => {
40 50
       request({
41
-        loadingId: 'room.follow.list',
42
-        url: '/room/follow/list',
51
+        loadingId: "room.follow.list",
52
+        url: "/room/follow/list",
43 53
         params: {
44 54
           roomId: props.roomId,
45 55
           pageNo: 1,
46 56
           pageSize: 100,
47
-        }
48
-      }).then(res => {
49
-        list.value = res.result
50
-      })
51
-    }
57
+        },
58
+      }).then((res) => {
59
+        list.value = res.result;
60
+      });
61
+    };
62
+    const goToAddFollow = () =>
63
+      router.push({
64
+        name: "followup",
65
+        query: { roomId: props.roomId },
66
+      });
52 67
 
53 68
     onMounted(() => {
54
-      handleLoad()
55
-    })
69
+      handleLoad();
70
+    });
56 71
 
57 72
     return {
58 73
       list,
59 74
       handleLoad,
60
-    }
61
-  }
62
-}
75
+      goToAddFollow,
76
+    };
77
+  },
78
+};
63 79
 </script>