Quellcode durchsuchen

fix(room): 部分文案修改

tangning vor 3 Jahren
Ursprung
Commit
c63e02b93e
3 geänderte Dateien mit 159 neuen und 85 gelöschten Zeilen
  1. 60 0
      src/locales/lang/zh-CN/routes/room.ts
  2. 42 34
      src/views/scenes/room.vue
  3. 57 51
      src/views/scenes/roomDeital.vue

+ 60 - 0
src/locales/lang/zh-CN/routes/room.ts

@@ -0,0 +1,60 @@
+export default {
+  sceneName: '场景名称',
+  webSite: '场景链接',
+  childName: '拍摄设备ID',
+  brandName: '直播场景',
+  viewCount: '场景访问量',
+  createTime: '拍摄时间',
+  num: '场景码',
+  process: '下载进度',
+  sceneList: '场景列表',
+  bindAnchor: '绑定主播',
+  anchorRoom: '房间名称',
+  appListPicUrl: '房间间封面',
+  sortOrder: '排序',
+  anchorUserName: '主持人名称',
+  isShow: '是否显示',
+  livestream: '开播',
+  capacities: '带看模式(人)',
+  listRoomsState: '房间间状态',
+  bindShowerNameList: '已绑定主播',
+  livestreamStatus: '是否开播',
+  liveBroadcast: '房间列表',
+  downloadScene: '下载场景',
+  downloadSceneConfirm: '是否确认下载场景',
+  editor: '打开编辑器',
+  cancelDownload: '取消下载',
+  own: '主播选择',
+  userName: '员工名称',
+  canShow: '是否同时开通一起逛',
+  bindTime: '绑定时间',
+  anchorList: '主播列表',
+  addLive: '新增场景',
+  liveType: '房间类型',
+  liveName: '房间名称',
+  makeLiveCover: '生成房间',
+  sceneUrl: '场景链接',
+  detailAddr: '详细地址',
+  contractPhone: '联系电话',
+  simpleDesc: '房间间描述',
+  roleType: {
+    0: '公司管理员',
+    1: '公司员工',
+  },
+  houseType: {
+    0: '新房',
+    1: '二手房',
+    2: '公寓',
+    3: '民宿',
+    9: '全部',
+  },
+  status: '状态',
+  roomStatus: '房间状态',
+  statusText: {
+    1: '正常',
+    0: '封存',
+    101: '直播中',
+    102: '未开始',
+    103: '已结束',
+  },
+};

+ 42 - 34
src/views/scenes/room.vue

@@ -21,7 +21,7 @@
         />
       </template>
       <template #Time="{ record }">
-        <Time :value="record.effectiveStartTime" mode="datetime" />
+        <Time :value="record.createTime" mode="datetime" />
       </template>
 
       <template #liveTime="{ record }">
@@ -43,6 +43,7 @@
 </template>
 <script lang="ts">
   import { defineComponent, computed, toRaw } from 'vue';
+  import dayjs from 'dayjs';
   import {
     BasicTable,
     useTable,
@@ -77,13 +78,19 @@
           width: 100,
         },
         {
-          title: t('routes.scenes.anchorRoom'),
+          title: t('routes.room.anchorRoom'),
           dataIndex: 'name',
           ellipsis: false,
           width: 130,
         },
         {
-          title: t('routes.scenes.capacities'),
+          title: t('routes.room.brandName'),
+          dataIndex: 'brandName',
+          ellipsis: false,
+          width: 130,
+        },
+        {
+          title: t('routes.room.capacities'),
           dataIndex: 'capacities',
           // slots: { customRender: 'houseType' },
           width: 100,
@@ -105,8 +112,9 @@
         },
         {
           title: '创建时间',
-          dataIndex: 'assistantPhone',
-          width: 140,
+          dataIndex: 'createTime',
+          slots: { customRender: 'Time' },
+          width: 150,
         },
         {
           title: '开播时间段',
@@ -115,23 +123,17 @@
           width: 180,
         },
         {
-          title: '直播结束时间',
-          dataIndex: 'effectiveEndTime',
-          slots: { customRender: 'Time' },
-          width: 150,
-        },
-        {
           title: '创建人',
           dataIndex: 'createUserName',
           width: 140,
         },
         {
-          title: t('routes.scenes.roomStatus'),
+          title: t('routes.room.roomStatus'),
           dataIndex: 'state',
           width: 180,
           customRender: ({ record }) => {
             const enable = record.state;
-            const text = renderRoomType(enable); // ? t('routes.scenes.statusText.1') : t('routes.scenes.statusText.0');
+            const text = renderRoomType(enable); // ? t('routes.room.statusText.1') : t('routes.room.statusText.0');
             return text;
           },
         },
@@ -152,7 +154,7 @@
         schemas: [
           {
             field: 'sceneName',
-            label: t('routes.scenes.anchorRoom'),
+            label: t('routes.room.anchorRoom'),
             component: 'Input',
             componentProps: {
               maxLength: 100,
@@ -164,7 +166,7 @@
           },
           {
             field: 'anchorUserName',
-            label: t('routes.scenes.anchorUserName'),
+            label: t('routes.room.anchorUserName'),
             component: 'Input',
             componentProps: {
               maxLength: 100,
@@ -176,7 +178,7 @@
           },
           {
             field: 'state',
-            label: t('routes.scenes.listRoomsState'),
+            label: t('routes.room.listRoomsState'),
             component: 'Select',
             colProps: {
               xl: 5,
@@ -191,17 +193,17 @@
                   key: '0',
                 },
                 {
-                  label: t('routes.scenes.statusText.101'),
+                  label: t('routes.room.statusText.101'),
                   value: 101,
                   key: '101',
                 },
                 {
-                  label: t('routes.scenes.statusText.102'),
+                  label: t('routes.room.statusText.102'),
                   value: 102,
                   key: '102',
                 },
                 {
-                  label: t('routes.scenes.statusText.103'),
+                  label: t('routes.room.statusText.103'),
                   value: 103,
                   key: '103',
                 },
@@ -224,7 +226,7 @@
           case 4:
             return '装修';
           default:
-            return t(`routes.scenes.houseType.9`);
+            return t(`routes.room.houseType.9`);
         }
       }
 
@@ -241,18 +243,18 @@
           case 4:
             return '装修';
           case 101:
-            return t('routes.scenes.statusText.101');
+            return t('routes.room.statusText.101');
           case 102:
-            return t('routes.scenes.statusText.102');
+            return t('routes.room.statusText.102');
           case 103:
-            return t('routes.scenes.statusText.103');
+            return t('routes.room.statusText.103');
           default:
-            return t(`routes.scenes.houseType.9`);
+            return t(`routes.room.houseType.9`);
         }
       }
 
       const [registerTable, { reload }] = useTable({
-        title: t(`routes.scenes.liveBroadcast`),
+        title: t(`routes.room.liveBroadcast`),
         api: listRoomsApi,
         columns: columns,
         useSearchForm: true,
@@ -290,7 +292,15 @@
       function openTargetModal(record: Recordable) {
         addopenModal(true, {
           isUpdate: true,
-          record: toRaw(record),
+          record: {
+            ...toRaw(record),
+            launchPeriod: [
+              record.effectiveEndTime &&
+                dayjs(record.effectiveEndTime).format('YYYY-MM-DD HH:mm:ss'),
+              record.effectiveStartTime &&
+                dayjs(record.effectiveStartTime).format('YYYY-MM-DD HH:mm:ss'),
+            ],
+          },
         });
       }
       function handleAddLiveScene() {
@@ -306,6 +316,12 @@
             brandId: setRecord.brandName,
             anchorUserId: setRecord.anchorUserName,
             assistantUserId: setRecord.assistantUserName,
+            launchPeriod: [
+              record.effectiveEndTime &&
+                dayjs(record.effectiveEndTime).format('YYYY-MM-DD HH:mm:ss'),
+              record.effectiveStartTime &&
+                dayjs(record.effectiveStartTime).format('YYYY-MM-DD HH:mm:ss'),
+            ],
           },
         });
       }
@@ -360,13 +376,6 @@
           ];
         }
       }
-
-      function handleEditLiveScene(record: Recordable) {
-        openLiveDrawer(true, {
-          record,
-          isUpdate: true,
-        });
-      }
       async function handleDismissRoom(record: Recordable) {
         await dismissRoom({ id: record.id });
         createMessage.success(t('common.optSuccess'));
@@ -394,7 +403,6 @@
         handleAddLiveScene,
         handleSeeLiveScene,
         handleDeleteLiveScene,
-        handleEditLiveScene,
         getCheckRole,
         getEquity,
       };

+ 57 - 51
src/views/scenes/roomDeital.vue

@@ -2,7 +2,7 @@
   <BasicModal
     v-bind="$attrs"
     @register="register"
-    :minHeight="330"
+    :minHeight="340"
     :title="modalTitle"
     @visible-change="handleVisibleChange"
     @ok="handleSubmit"
@@ -27,7 +27,7 @@
   import { staffListApi } from '/@/api/staff/list';
   import { ListApi } from '/@/api/scene/live';
   import { bindUserList, createOrUpdate } from '/@/api/scene/list';
-  import dayjs from 'dayjs';
+  // import dayjs from 'dayjs';
   import { cloneDeep } from 'lodash-es';
 
   const { t } = useI18n();
@@ -63,7 +63,7 @@
         },
         {
           field: 'brandId',
-          label: '直播场景',
+          label: '房间场景',
           component: 'ApiSelect',
           itemProps: {
             validateTrigger: 'blur',
@@ -112,12 +112,13 @@
           },
         },
         {
-          field: 'effectiveStartTime',
-          component: 'DatePicker',
-          label: '开始时间',
+          field: 'launchPeriod', //'effectiveStartTime',
+          component: 'RangePicker',
+          label: '开播时间段',
           colProps: {
             span: 22,
           },
+          required: true,
           componentProps: {
             onChange: async (data) => {
               console.log('data', data);
@@ -128,22 +129,25 @@
             // valueFormat: 'YYYY-MM-DD HH:mm',
             format: 'YYYY-MM-DD HH:mm',
             showTime: true,
+            // disabledDate: validateStartTime,
           },
         },
-        {
-          field: 'effectiveEndTime',
-          component: 'DatePicker',
-          label: '计划结束时间',
-          colProps: {
-            span: 22,
-          },
-          componentProps: {
-            // valueFormat: 'YYYY-MM-DD HH:mm',
-            format: 'YYYY-MM-DD HH:mm',
-            showTime: true,
-            disabledDate: validateTime,
-          },
-        },
+        // {
+        //   field: 'effectiveEndTime',
+        //   component: 'DatePicker',
+        //   label: '计划结束时间',
+        //   colProps: {
+        //     span: 22,
+        //   },
+        //   required: true,
+        //   componentProps: {
+        //     // valueFormat: 'YYYY-MM-DD HH:mm',
+        //     format: 'YYYY-MM-DD HH:mm',
+        //     showTime: true,
+        //     disabledDate: validateDate,
+        //     disabledTime: validateTime,
+        //   },
+        // },
         {
           field: 'assistantUserId',
           component: 'ApiSelect',
@@ -202,33 +206,23 @@
       const [register, { closeModal }] = useModalInner(async (data) => {
         data && onDataReceive(data);
       });
-
-      function validateTime(current) {
-        let { effectiveStartTime } = getFieldsValue();
-        console.log('effectiveStartTime', effectiveStartTime);
-        if (!effectiveStartTime) return;
-        return !dayjs(effectiveStartTime).isBefore(dayjs(current));
-      }
       function onDataReceive(data) {
         isPropsData.isUpdate = data.isUpdate || false;
         isPropsData.isSetData = data.isSetData || false;
         isPropsData.record = data.record || {};
-        console.log('onDataReceive', data.record);
         if (data.isUpdate) {
           //编辑
           setFieldsValue({
             ...data.record,
-            effectiveEndTime:
-              data.record.effectiveEndTime &&
-              dayjs(data.record.effectiveEndTime).format('YYYY-MM-DD HH:mm:ss'),
-            effectiveStartTime:
-              data.record.effectiveStartTime &&
-              dayjs(data.record.effectiveStartTime).format('YYYY-MM-DD HH:mm:ss'),
           });
           updateSchema(
-            schemas.map((ele) => {
+            schemas.map((ele, index) => {
               return {
                 ...ele,
+                componentProps: {
+                  ...ele.componentProps,
+                  disabled: index < 3 ? true : false,
+                },
                 slot: '',
               };
             }),
@@ -239,15 +233,20 @@
         } else if (data.isSetData) {
           //查看
           let setSchemas = [];
-          setFieldsValue(data.record);
+          console.log('setFieldsValue', data.record);
           schemas.map((ele) => {
             let setSchemasItem = {
               ...ele,
-              slot: 'text',
+              componentProps: {
+                ...ele.componentProps,
+                disabled: true,
+              },
+              // slot: 'text',
             };
             setSchemas.push(cloneDeep(setSchemasItem));
           });
           updateSchema(setSchemas);
+          setFieldsValue(data.record);
         } else {
           //新增
           resetFields();
@@ -255,7 +254,11 @@
             schemas.map((ele) => {
               return {
                 ...ele,
-                slot: '',
+                componentProps: {
+                  ...ele.componentProps,
+                  disabled: false,
+                },
+                // slot: '',
               };
             }),
           );
@@ -263,26 +266,21 @@
       }
       const handleSubmit = async () => {
         const values = await validate();
-        console.log('validate', values);
+        const { launchPeriod } = values;
+        console.log('validate', values, launchPeriod);
         let apiData = {
           ...values,
-          effectiveEndTime: new Date(values.effectiveEndTime).getTime(),
-          effectiveStartTime: new Date(values.effectiveStartTime).getTime(),
+          effectiveEndTime: new Date(launchPeriod[0]).getTime(),
+          effectiveStartTime: new Date(launchPeriod[1]).getTime(),
         };
         if (isPropsData.isUpdate) {
           apiData.id = isPropsData.record.id;
+          await createOrUpdate(apiData);
+          createMessage.success(t('common.optSuccess'));
         }
-        await createOrUpdate(apiData);
-        // console.log('ddda',res)
-        // if (res) {
-        // addListFunc({ phone: values.phone, memoName: values.memoName });
         resetFields();
         closeModal();
-        createMessage.success(t('common.optSuccess'));
         emit('success');
-        // } else {
-        //   createMessage.error('操作失败');
-        // }
       };
       function handleVisibleChange(v) {
         v && props.userData && nextTick(() => onDataReceive(props.userData));
@@ -291,6 +289,15 @@
         resetFields();
       }
       function brandIdChange(data) {
+        let disabled = isPropsData.isUpdate ? isPropsData.isUpdate : data ? false : true;
+        if (!data) {
+          return;
+        }
+        if (!disabled) {
+          setFieldsValue({
+            anchorUserId: '',
+          });
+        }
         updateSchema({
           field: 'anchorUserId',
           componentProps: {
@@ -300,7 +307,7 @@
                 return { ...ele, userName: ele.userName + `(${ele.nickName})` };
               });
             },
-            disabled: data ? false : true,
+            disabled,
             showSearch: true,
             resultField: 'list',
             labelField: 'userName',
@@ -359,7 +366,6 @@
         closeModal,
         handleClose,
         getFieldsValue,
-        validateTime,
         setFieldsValue,
         // nextTick,
       };