瀏覽代碼

fix: 修改需求

bill 2 年之前
父節點
當前提交
c710a47d8c
共有 5 個文件被更改,包括 38 次插入18 次删除
  1. 二進制
      src/assets/images/un-scene.png
  2. 1 1
      src/store/room.ts
  3. 10 11
      src/views/room/list.vue
  4. 22 6
      src/views/room/modal/mini-sync.vue
  5. 5 0
      src/views/scene/list.vue

二進制
src/assets/images/un-scene.png


+ 1 - 1
src/store/room.ts

@@ -25,7 +25,7 @@ export const createRoom = (room: Partial<Room>): Room => {
   const user = useUserStore().current
   const user = useUserStore().current
   return {
   return {
     id: TemplateId,
     id: TemplateId,
-    leaderName: user.nickname,
+    leaderName: user.nickname.substring(0, 15),
     title: '',
     title: '',
     time: new Date().toDateString(),
     time: new Date().toDateString(),
     viewCount: 0,
     viewCount: 0,

+ 10 - 11
src/views/room/list.vue

@@ -114,21 +114,19 @@ const shareRoom = async (room: Room) => {
 }
 }
 const miniSyncRoom = async (room: Room, key?: 'leader') => {
 const miniSyncRoom = async (room: Room, key?: 'leader') => {
   let miniCode: string
   let miniCode: string
+  let descs: string[]
   if (key === 'leader') {
   if (key === 'leader') {
     await roomStore.setLeaderRoomMiniCode(room)
     await roomStore.setLeaderRoomMiniCode(room)
     miniCode = room.leaderMiniCode!
     miniCode = room.leaderMiniCode!
+    descs = ['打开微信“扫一扫”', '进入微信小程序开始带看']
   } else {
   } else {
     await roomStore.setRoomMiniCode(room)
     await roomStore.setRoomMiniCode(room)
     miniCode = room.miniCode!
     miniCode = room.miniCode!
+    descs = ['分享给好友', '微信”扫一扫“参与带看']
   }
   }
-
-  Modal.info({
-    content: createVNode(MiniSync, { miniCode }),
-    title: '小程序带看',
-    width: '500px',
-    icon: null,
-    okText: '确定',
-    cancelText: null
+  renderModal(MiniSync, {
+    miniCode,
+    descs
   })
   })
 }
 }
 const webSyncRoom = (room: Room) => window.open(roomStore.getShareUrl(room))
 const webSyncRoom = (room: Room) => window.open(roomStore.getShareUrl(room))
@@ -139,12 +137,13 @@ const editRoom = async (room?: Room) => {
   }
   }
   renderModal(EditRoom, {
   renderModal(EditRoom, {
     room,
     room,
-    onSave(actionRoom) {
+    async onSave(actionRoom) {
       if (room) {
       if (room) {
-        roomStore.update(actionRoom)
+        await roomStore.update(actionRoom)
       } else {
       } else {
-        roomStore.insert(actionRoom)
+        await roomStore.insert(actionRoom)
       }
       }
+      message.success('保存成功')
     }
     }
   })
   })
 }
 }

+ 22 - 6
src/views/room/modal/mini-sync.vue

@@ -1,14 +1,30 @@
 <template>
 <template>
-  <div class="mini-code">
-    <img :src="miniCode" />
-    <p>打开微信“扫一扫”</p>
-    <p>进入微信小程序开始带看</p>
-  </div>
+  <a-modal
+    :visible="visible"
+    title="小程序带看"
+    :footer="null"
+    :after-close="onCancel"
+    width="500px"
+    @cancel="visible = false"
+  >
+    <div class="mini-code">
+      <img :src="miniCode" />
+      <p v-for="desc in descs" :key="desc">{{ desc }}</p>
+    </div>
+  </a-modal>
 </template>
 </template>
 
 
 <script lang="ts" setup>
 <script lang="ts" setup>
+import { ref } from 'vue'
+
 defineOptions<{ name: 'MiniSync' }>()
 defineOptions<{ name: 'MiniSync' }>()
-defineProps<{ miniCode: string }>()
+defineProps<{
+  miniCode: string
+  descs: string[]
+  onCancel: () => void
+}>()
+
+const visible = ref(true)
 </script>
 </script>
 
 
 <style lang="scss" scoped>
 <style lang="scss" scoped>

+ 5 - 0
src/views/scene/list.vue

@@ -91,9 +91,14 @@ const isOverflow = (keys: SceneKey[]) =>
 const selectedSceneKeys = ref<SceneKey[]>(props.selectNums)
 const selectedSceneKeys = ref<SceneKey[]>(props.selectNums)
 const keysOverflow = computed(() => isOverflow(selectedSceneKeys.value))
 const keysOverflow = computed(() => isOverflow(selectedSceneKeys.value))
 const changRowKeys = (keys: any[]) => {
 const changRowKeys = (keys: any[]) => {
+  const reserve = selectedSceneKeys.value.filter(num =>
+    filterScenes.value.every(scene => scene.num !== num)
+  )
+  keys = [...reserve, ...keys]
   if (isOverflow(keys)) {
   if (isOverflow(keys)) {
     keys = keys.slice(0, props.maxSelect)
     keys = keys.slice(0, props.maxSelect)
   }
   }
+
   selectedSceneKeys.value = keys as SceneKey[]
   selectedSceneKeys.value = keys as SceneKey[]
 }
 }
 const getCheckboxProps = (record: Scene) => ({
 const getCheckboxProps = (record: Scene) => ({