فهرست منبع

feat: (live) 增加字段

gemercheung 3 سال پیش
والد
کامیت
7949ff0d1f
4فایلهای تغییر یافته به همراه150 افزوده شده و 111 حذف شده
  1. 3 2
      src/api/scene/list.ts
  2. 3 2
      src/api/scene/live.ts
  3. 100 95
      src/api/scene/model.ts
  4. 44 12
      src/views/scenes/liveDrawer.vue

+ 3 - 2
src/api/scene/list.ts

@@ -1,6 +1,7 @@
 import { defHttp } from '/@/utils/http/axios';
 import {
-  PageParams,
+  // PageParams,
+  ListParams,
   RentListGetResultModel,
   SceneEditParam,
   SceneDownloadParam,
@@ -86,7 +87,7 @@ export const listRoomsApi = (params: UpdateParams) =>
       ignoreCancelToken: true,
     },
   });
-export const ListApi = (params: PageParams) =>
+export const ListApi = (params: ListParams) =>
   defHttp.post<RentListGetResultModel>({
     url: Api.pageList,
     params,

+ 3 - 2
src/api/scene/live.ts

@@ -1,6 +1,7 @@
 import { defHttp } from '/@/utils/http/axios';
 import {
   PageParams,
+  ListParams,
   InfoParams,
   RentListGetResultModel,
   SceneLiveItem,
@@ -31,7 +32,7 @@ export type SceneLiveItemResult = SceneLiveItem;
  * @description: Get sample list value
  */
 
-export const ListApi = (params: PageParams) =>
+export const ListApi = (params: ListParams) =>
   defHttp.get<RentListGetResultModel>({
     url: Api.pageList,
     params,
@@ -106,7 +107,7 @@ export function uploadLiveVideoApi(
   );
 }
 
-export const getAllSceneApi = (params: PageParams) =>
+export const getAllSceneApi = (params: ListParams) =>
   defHttp.post<RentListGetResultModel>({
     url: Api.getAllScene,
     params,

+ 100 - 95
src/api/scene/model.ts

@@ -1,95 +1,100 @@
-import { BasicPageParams, BasicFetchResult } from '/@/api/model/baseModel';
-/**
- * @description: Request list interface parameters
- */
-export type PageParams = BasicPageParams;
-export interface bindAnchorListParam {
-  brandId?: number | string;
-  canShow?: number;
-  type?: number;
-  userId?: number | string;
-}
-export interface InfoParams {
-  id?: number | string;
-  token?: string;
-}
-export interface UpdateParams {
-  sceneNum?: string;
-  isShow?: string;
-  appListPicUrl?: string;
-}
-
-export interface SceneDownloadParam {
-  sceneNum?: string;
-}
-export interface SceneEditParam {
-  sceneNum: string;
-  userName: string;
-}
-
-export interface SceneLiveItem {
-  address: string;
-  adminId: number;
-  appListPicUrl: string;
-  bindShowerId: number;
-  bindShowerName: string;
-  bindShowerNameList: string;
-  city: string;
-  contractPhone: string;
-  createTime: number;
-  createUserDeptId: number;
-  createUserId: number;
-  deleted: number;
-  id: number;
-  introduceVideo: string;
-  introduceVideoCover: string;
-  latitude: number;
-  liveRoomUrl: string;
-  livestreamStatus: number;
-  longitude: number;
-  name: string;
-  picList: string;
-  sceneName: string;
-  sceneNum: string;
-  sceneUrl: string;
-  shareWxQrCode: string;
-  simpleDesc: string;
-  sortOrder: number;
-  token: string;
-  type: number;
-  updateTime: number;
-  updateUserId: number;
-}
-
-export interface SceneProccessItem {
-  precent?: number;
-  status?: number;
-  url?: string;
-}
-
-export interface sceneItem {
-  appListPicUrl: string;
-  createTime: number;
-  createUserId: number;
-  deleted: number;
-  id: number;
-  isShow: number;
-  name: string;
-  sceneNum: string;
-  sceneUrl: string;
-  token: string;
-  updateTime: number;
-  updateUserId: number;
-}
-
-export interface SceneLiveModel {
-  brand: SceneLiveItem;
-  code?: number;
-}
-/**
- * @description: Request list return value
- */
-export type RentListGetResultModel = BasicFetchResult<SceneLiveItem>;
-export type LiveListGetResultModel = BasicFetchResult<SceneLiveItem>;
-export type GetDownloadProcessModel = BasicFetchResult<SceneProccessItem>;
-export type GetAllSceneModel = BasicFetchResult<sceneItem>;
+import { BasicPageParams, BasicFetchResult } from '/@/api/model/baseModel';
+/**
+ * @description: Request list interface parameters
+ */
+export type PageParams = BasicPageParams;
+
+export interface ListParams extends PageParams {
+  sceneName?: string;
+  sceneNum?: string;
+}
+export interface bindAnchorListParam {
+  brandId?: number | string;
+  canShow?: number;
+  type?: number;
+  userId?: number | string;
+}
+export interface InfoParams {
+  id?: number | string;
+  token?: string;
+}
+export interface UpdateParams {
+  sceneNum?: string;
+  isShow?: string;
+  appListPicUrl?: string;
+}
+
+export interface SceneDownloadParam {
+  sceneNum?: string;
+}
+export interface SceneEditParam {
+  sceneNum: string;
+  userName: string;
+}
+
+export interface SceneLiveItem {
+  address: string;
+  adminId: number;
+  appListPicUrl: string;
+  bindShowerId: number;
+  bindShowerName: string;
+  bindShowerNameList: string;
+  city: string;
+  contractPhone: string;
+  createTime: number;
+  createUserDeptId: number;
+  createUserId: number;
+  deleted: number;
+  id: number;
+  introduceVideo: string;
+  introduceVideoCover: string;
+  latitude: number;
+  liveRoomUrl: string;
+  livestreamStatus: number;
+  longitude: number;
+  name: string;
+  picList: string;
+  sceneName: string;
+  sceneNum: string;
+  sceneUrl: string;
+  shareWxQrCode: string;
+  simpleDesc: string;
+  sortOrder: number;
+  token: string;
+  type: number;
+  updateTime: number;
+  updateUserId: number;
+}
+
+export interface SceneProccessItem {
+  precent?: number;
+  status?: number;
+  url?: string;
+}
+
+export interface sceneItem {
+  appListPicUrl: string;
+  createTime: number;
+  createUserId: number;
+  deleted: number;
+  id: number;
+  isShow: number;
+  name: string;
+  sceneNum: string;
+  sceneUrl: string;
+  token: string;
+  updateTime: number;
+  updateUserId: number;
+}
+
+export interface SceneLiveModel {
+  brand: SceneLiveItem;
+  code?: number;
+}
+/**
+ * @description: Request list return value
+ */
+export type RentListGetResultModel = BasicFetchResult<SceneLiveItem>;
+export type LiveListGetResultModel = BasicFetchResult<SceneLiveItem>;
+export type GetDownloadProcessModel = BasicFetchResult<SceneProccessItem>;
+export type GetAllSceneModel = BasicFetchResult<sceneItem>;

+ 44 - 12
src/views/scenes/liveDrawer.vue

@@ -72,6 +72,7 @@
     // LiveSceneDeleteApi,
   } from '/@/api/scene/live';
   import { useScript } from '/@/hooks/web/useScript';
+  import { staffListApi } from '/@/api/staff/list';
   const A_MAP_URL = 'https://webapi.amap.com/maps?v=2.0&key=e661b00bdf2c44cccf71ef6070ef41b8';
 
   // const A_MAP_URL = 'https://webapi.amap.com/maps?v=2.0&key=5a2d384532ae531bf99bd8487c4f03d2';
@@ -92,6 +93,7 @@
       const token = userStore.getToken;
       const userinfo = computed(() => userStore.getUserInfo);
       const wrapRef = ref<HTMLDivElement | null>(null);
+
       const sceneNumOption = reactive({
         list: [],
         allList: [],
@@ -373,12 +375,34 @@
             ],
           },
         },
+        // {
+        //   field: 'contractPhone',
+        //   component: 'Input',
+        //   label: t('routes.scenes.contractPhone'),
+        //   required: true,
+        //   helpMessage: ['支持填写400(400-xxx-xxxx)热线、手机号等联系方式'],
+        // },
         {
-          field: 'contractPhone',
-          component: 'Input',
-          label: t('routes.scenes.contractPhone'),
+          field: 'contractId',
+          component: 'ApiSelect',
+          label: '联系人',
           required: true,
-          helpMessage: ['支持填写400(400-xxx-xxxx)热线、手机号等联系方式'],
+          componentProps: {
+            api: staffListApi,
+            resultField: 'list',
+            labelField: 'nickName',
+            valueField: 'id',
+            immediate: true,
+            onChange: function (_, opt) {
+              console.log('opt', opt.value);
+              // Reflect.set(modalRecord, 'shippingName', opt.label);
+            },
+            params: {
+              page: 1,
+              limit: 1000,
+            },
+            required: true,
+          },
         },
       ];
       // updateSchema, validate
@@ -402,10 +426,12 @@
           limit: 100,
           sceneNum: record && record.sceneNum,
         });
+        // @ts-ignore
         sceneNumOption.list = Option.list.map((ele) => {
           return {
             ...ele,
             label: ele.sceneName,
+            // @ts-ignore
             value: ele.num,
           };
         });
@@ -433,7 +459,8 @@
         if (unref(isUpdate)) {
           try {
             const res = await getLiveInfoApi({ id: record.id, token });
-            let setDAta: infoItem = {
+            // console.log('edit', res);
+            let setDAta = reactive<infoItem>({
               province: '',
               city: '',
               district: '',
@@ -441,8 +468,9 @@
               picList: [],
               appListPicUrl: [],
               introduceVideo: [],
-            };
-            let ssq = res.address.split(' ');
+            });
+
+            let ssq = res.address?.split(' ');
             try {
               let ssqlist = ssq[0].split(',');
               setDAta.province = ssqlist[0];
@@ -450,7 +478,7 @@
               setDAta.district = ssqlist[2];
               setDAta.address = ssq[1];
               setDAta.location = ssqlist;
-              setDAta.picList = res.picList.split('#$#');
+              setDAta.picList = res.picList?.split('#$#') || [];
               setDAta.appListPicUrl = [res.appListPicUrl];
               setDAta.introduceVideo = [res.introduceVideo];
               defaultAddress.address = ssq[1];
@@ -461,8 +489,10 @@
               defaultAddress.lng = res.longitude;
               defaultAddress.lat = res.latitude;
               detailAddr.value = ssq[2];
-            } catch (error) {}
-            myData.introduceVideoCover = res.introduceVideoCover;
+            } catch (error) {
+              console.warn('edit-error', error);
+            }
+            myData.introduceVideoCover = res.introduceVideoCover || '';
             myData.sceneUrl = res.sceneUrl;
             await setFieldsValue({
               ...res,
@@ -554,9 +584,11 @@
           limit: 100,
           page: 1,
         });
+        // @ts-ignore
         sceneNumOption.list = list.map((ele) => {
           return {
             ...ele,
+            // @ts-ignore
             value: ele.num,
             label: ele.sceneName,
           };
@@ -631,7 +663,7 @@
       async function handleSubmit() {
         const { companyId, id } = userinfo.value;
         const { lng, lat } = defaultAddress;
-        let requerApi = isUpdate.value ? brandUpdateApi : addSave;
+        let requestApi = isUpdate.value ? brandUpdateApi : addSave;
         try {
           map && map.destroy();
           const values = await validate();
@@ -654,7 +686,7 @@
           if (myData.id) {
             apiData.id = myData.id;
           }
-          await requerApi(apiData);
+          await requestApi(apiData);
           resetFields();
           closeDrawer();
           createMessage.success(t('common.optSuccess'));