gemercheung 2 年之前
父节点
当前提交
87a7b32d1a

+ 4 - 2
src/api/statistic.ts

@@ -104,8 +104,10 @@ export const exportAllRoomStatistic = async (params: RoomMsgParams): Promise<voi
 }
 export const exportRoomMsgStatistic = async (params: RoomMsgParams): Promise<void> => {
     const { t } = useI18n()
-    const res = await axios.post<AxiosResponse>('takelook/exportRoomMsg', {
-       ...params,
+    const res = await axios<AxiosResponse>({
+        method:'post',
+        url:'takelook/exportRoomMsg',
+        data:params,
         responseType: 'blob', // Important
         headers: {
             'Content-Type': 'application/vnd.ms-excel'

+ 0 - 1
src/components.d.ts

@@ -35,7 +35,6 @@ declare module '@vue/runtime-core' {
     ATabPane: typeof import('ant-design-vue/es')['TabPane']
     ATabs: typeof import('ant-design-vue/es')['Tabs']
     ATextarea: typeof import('ant-design-vue/es')['Textarea']
-    ATooltip: typeof import('ant-design-vue/es')['Tooltip']
     BarChartOutlined: typeof import('@ant-design/icons-vue')['BarChartOutlined']
     CloseOutlined: typeof import('@ant-design/icons-vue')['CloseOutlined']
     DataList: typeof import('./components/data-list/index.vue')['default']

+ 6 - 4
src/locales/lang/en/room.ts

@@ -49,8 +49,10 @@ export default {
   addUser: 'Add User',
   userAccount: 'User Account',
   userAccountRequired: "Please input the User's Account",
-  setRoomNumber:"Set the number of guests in the studio",
-  roomTitle:'Room Title',
-  passwordError:'Please set a full 4-digit password!',
-  authUserError:'授权失败,此账号不存在!',
+  setRoomNumber: "Set the number of guests in the studio",
+  roomTitle: 'Room Title',
+  passwordError: 'Please set a full 4-digit password!',
+  authUserError: '授权失败,此账号不存在!',
+  authTipTitle: 'Authorization Guidelines',
+  authTipContent: "Please provide your complete cell phone account details after selecting [Add User] for authorization. After authorization, the associated mobile phone account connects to the [Li-Stream] mini-program and is allowed to initiate a Livestream using the studio."
 }

+ 2 - 0
src/locales/lang/zh/room.ts

@@ -51,4 +51,6 @@ export default {
   roomTitle: '房间名称',
   passwordError:'请设置完整的4位数字密码!',
   authUserError:'授权失败,此账号不存在!',
+  authTipTitle:'授权须知',
+  authTipContent: "点击【添加用户】后,输入完整的手机账号进行授权。授权后,相应的手机账号登录【四维带看】小程序,可使用该带看房间发起带看。"
 }

+ 33 - 17
src/views/room/edit-room/index.vue

@@ -141,17 +141,29 @@
               :placeholder="['-', '-', '-', '-']"
             />
           </a-form-item>
-          <a-form-item
-            :label="t('room.authorize')"
-            name="scenes"
-            style="margin-bottom: 2px"
-          >
-            <template #slot="label">
+          <a-form-item name="scenes" style="margin-bottom: 2px">
+            <div slot="label" style="margin: 10px 0">
               {{ t('room.authorize') }}
-              <a-tooltip title="Tooltip with customize">
-                <InfoCircleOutlined />
-              </a-tooltip>
-            </template>
+              <InfoCircleOutlined
+                @click="
+                  Modal.confirm({
+                    centered:true,
+                    title: () => t('room.authTipTitle'),
+                    icon: () => createVNode(ExclamationCircleOutlined),
+                    //@ts-ignore
+                    cancelButtonProps: { style: { display: 'none' } },
+                    cancelText: false,
+                    content: () =>
+                      createVNode(
+                        'div',
+                        { style: 'color:red;' },
+                        t('room.authTipContent')
+                      ),
+                    class: 'test'
+                  })
+                "
+              />
+            </div>
             <a-button
               type="primary"
               size="small"
@@ -210,7 +222,7 @@
           :rules="[{ required: true, message: t('room.userAccountRequired') }]"
         >
           <a-input
-            v-model:value="authformState.userName"
+            v-model:value.trim="authformState.userName"
             :placeholder="t('room.userAccountRequired')"
           />
         </a-form-item>
@@ -240,11 +252,13 @@ import {
   defineComponent,
   reactive,
   computed,
-  unref
+  unref,
+  createVNode
 } from 'vue'
+
 import { createRoom, useRoomStore } from '@/store/modules/room'
 import { props } from './props'
-import { message } from 'ant-design-vue'
+import { message, Modal } from 'ant-design-vue'
 import { mainURL } from '@/env'
 import EditScenes from './scene-list.vue'
 import unScenePng from '@/assets/images/un-scene.png'
@@ -255,6 +269,7 @@ import { useI18n } from '@/hook/useI18n'
 import { useLocale } from '@/locales/useLocale'
 import dayjs, { Dayjs } from 'dayjs'
 import { addAuthUser } from '@/api'
+import {ExclamationCircleOutlined} from '@ant-design/icons-vue'
 
 // const titleValidator = ref({
 //   validator: (_, value) =>
@@ -361,15 +376,13 @@ export default defineComponent({
           )
           console.log('isExist', isExist === -1)
           if (isExist === -1) {
-            const dup = structuredClone(toRaw(authformState));
-            console.log('dup',dup);
+            const dup = structuredClone(toRaw(authformState))
             current.userObjList?.push(dup)
           }
 
           authvisible.value = false
           console.log('current', current)
         } else {
-          
           message.error(t('room.authUserError'))
         }
       } else {
@@ -417,7 +430,10 @@ export default defineComponent({
       isRoomEnd,
       handleAssistantUseDelete,
       disabledDate,
-      disabledTime
+      disabledTime,
+      createVNode,
+      Modal,
+      ExclamationCircleOutlined
       // authTargetUser,
       // authTargetUserTime
     }

+ 6 - 1
src/views/statistic/tab/tab1.vue

@@ -461,6 +461,9 @@ watch(
   val => {
     if (Number(val) === 1) {
       initTab()
+    } else {
+      formState.roomTitle = ''
+      formState.userTime = []
     }
   },
   {
@@ -490,7 +493,9 @@ onMounted(async () => {
 
 const handleFinish = async () => {
   await statisticStore.fetchRoomVisitChart({
-    timeList: formState.userTime.map(item=>item.toString()),
+    timeList: formState.userTime
+      ? formState.userTime.map(item => item.toString())
+      : [],
     roomTitle: formState.roomTitle?.length ? formState.roomTitle : ''
   })
   initRoomVisitChart()

+ 10 - 2
src/views/statistic/tab/tab2.vue

@@ -29,6 +29,7 @@
                 :show-time="{ format: 'HH:mm' }"
                 format="YYYY-MM-DD HH:mm"
                 style="width: 80%"
+                allowClear
                 v-model:value="formState.userTime"
               />
             </a-form-item>
@@ -149,7 +150,9 @@ const fetchList = () => {
   statisticStore.fetchAllRoomList({
     pageNum: pagination.value.current,
     pageSize: pagination.value.pageSize,
-    timeList: formState.userTime.map(item=>item.toString()), 
+    timeList: formState.userTime
+      ? formState.userTime.map(item => item.toString())
+      : [],
     roomTitle: formState.roomTitle?.length ? formState.roomTitle : ''
   })
 }
@@ -157,7 +160,9 @@ const exportList = () => {
   statisticStore.exportAllRoomList({
     pageNum: pagination.value.current,
     pageSize: pagination.value.pageSize,
-    timeList: formState.userTime.map(item=>item.toString()), 
+    timeList: formState.userTime
+      ? formState.userTime.map(item => item.toString())
+      : [],
     roomTitle: formState.roomTitle?.length ? formState.roomTitle : ''
   })
 }
@@ -169,6 +174,9 @@ watch(
     if (Number(unref(val)) === 2) {
       statisticStore.setAllRoomListPage()
       fetchList()
+    } else {
+      formState.roomTitle = ''
+      formState.userTime = []
     }
   },
   {

+ 10 - 3
src/views/statistic/tab/tab3.vue

@@ -165,13 +165,15 @@ const pagination = computed(() => {
 
 const fetchList = () => {
   try {
-    console.log('formState-userTime',formState.userTime);
+    console.log('formState-userTime', formState.userTime)
     statisticStore.fetchRoomMsglist({
       pageNum: pagination.value.current,
       pageSize: pagination.value.pageSize,
       // startTime: formState.userTime?.length ? formState.userTime[0] : '',
       // endTime: formState.userTime?.length ? formState.userTime[1] : '',
-      timeList: formState.userTime.map(item=>item.toString()), 
+      timeList: formState.userTime
+      ? formState.userTime.map(item => item.toString())
+      : [],
       roomTitle: formState.roomTitle?.length ? formState.roomTitle : ''
     })
   } catch (error) {
@@ -185,7 +187,9 @@ const exportList = () => {
       pageSize: pagination.value.pageSize,
       // startTime: formState.userTime?.length ? formState.userTime[0] : '',
       // endTime: formState.userTime?.length ? formState.userTime[1] : '',
-      timeList: formState.userTime.map(item=>item.toString()), 
+      timeList: formState.userTime
+      ? formState.userTime.map(item => item.toString())
+      : [],
       roomTitle: formState.roomTitle?.length ? formState.roomTitle : ''
     })
   } catch (error) {
@@ -198,6 +202,9 @@ watch(
     if (Number(unref(val)) === 3) {
       statisticStore.setRoomMsgPage()
       fetchList()
+    } else {
+      formState.roomTitle = ''
+      formState.userTime = []
     }
   },
   {