Pārlūkot izejas kodu

fix(bugs): 修改最近问题

tangning 3 gadi atpakaļ
vecāks
revīzija
b1962a8166

+ 1 - 1
src/api/scene/list.ts

@@ -13,7 +13,7 @@ enum Api {
   generateSceneEditToken = '/zfb-api/zfb/api/platform/generateSceneEditToken',
   downloadSceneData = '/zfb-api/zfb/scene/downloadSceneData',
   getDownloadProcess = '/zfb-api/zfb/scene/getDownloadProcess',
-  generateDefaultLiveRoom = '/zfb-api/zfb/scene/generateDefaultLiveRoom',
+  generateDefaultLiveRoom = '/basic-api/zfb/scene/generateDefaultLiveRoom',
 }
 
 /**

+ 0 - 83
src/api/staff/list.ts

@@ -1,83 +0,0 @@
-import { defHttp } from '/@/utils/http/axios';
-import { PageParams, ListGetResultModel, DelParams } from './model';
-import { Result } from '/#/axios';
-
-enum Api {
-  pageList = '/zfb-api/zfb/shop/sys/user/staffList',
-  preDel = '/zfb-api/zfb/shop/sys/user/preDeleteStaff',
-  roleList = '/zfb-api/zfb/shop/sys/user/roleList',
-  staffSave = '/zfb-api/zfb/shop/sys/user/staffSave',
-  update = '/zfb-api/zfb/shop/sys/user/update',
-  checkUser = '/zfb-api/zfb/user/checkUserExists',
-  deleteStaff = '/zfb-api/zfb/shop/sys/user/deleteStaff',
-}
-
-/**
- * @description: Get sample list value
- */
-
-export const ListApi = (params: PageParams) =>
-  defHttp.post<ListGetResultModel>({
-    url: Api.pageList,
-    params,
-    data: params,
-    headers: {
-      // @ts-ignore
-      ignoreCancelToken: true,
-    },
-  });
-export const delApi = (params: DelParams) =>
-  defHttp.post<Result>({
-    url: Api.deleteStaff,
-    params: { userId: params },
-    headers: {
-      // @ts-ignore
-      ignoreCancelToken: true,
-    },
-  });
-export const preDelApi = (params: number) =>
-  defHttp.post<Result>({
-    url: Api.preDel,
-    params: { userId: params },
-    headers: {
-      // @ts-ignore
-      ignoreCancelToken: true,
-    },
-  });
-export const roleLIstApi = (params) =>
-  defHttp.post<Result>({
-    url: Api.roleList,
-    params,
-    headers: {
-      // @ts-ignore
-      ignoreCancelToken: true,
-    },
-  });
-export const checkUserApi = (params) =>
-  defHttp.post<boolean>({
-    url: Api.checkUser,
-    params,
-    headers: {
-      // @ts-ignore
-      ignoreCancelToken: true,
-    },
-  });
-
-export const saveApi = (params) =>
-  defHttp.post<Result>({
-    url: Api.staffSave,
-    params,
-    headers: {
-      // @ts-ignore
-      ignoreCancelToken: true,
-    },
-  });
-export const updateApi = (params) =>
-  defHttp.post<Result>({
-    url: Api.update,
-    params,
-    headers: {
-      // @ts-ignore
-      ignoreCancelToken: true,
-    },
-  });

+ 2 - 1
src/api/staff/model.ts

@@ -6,7 +6,8 @@ export type PageParams = BasicPageParams;
 
 export interface DelParams {
   userId: number;
-  toUser: number;
+  toUserId: number;
+  toUserPhone: string;
 }
 export interface StaffListItem {
   id: number;

+ 1 - 3
src/views/advertisement/padsDrawer.vue

@@ -47,9 +47,7 @@
           httpApi({
             ...modelRef.value,
             ...data,
-            image:
-              'http://zfb-4dkankan.oss-cn-shenzhen.aliyuncs.com/scene/1546422941329_测试.png' ??
-              data.image.toString(),
+            image: data.image[0],
           }).then((_) => {
             setProps({
               submitButtonOptions: {

+ 1 - 1
src/views/member/list.vue

@@ -139,7 +139,7 @@ weixinOpenid: "oeADe5U9uLeMYsNigq98zdu8J96A"
         labelWidth: 100,
         schemas: [
           {
-            field: 'name',
+            field: 'username',
             label: '会员名称',
             component: 'Input',
             colProps: {

+ 3 - 0
src/views/product/ref.vue

@@ -81,6 +81,9 @@
                 xl: 6,
                 xxl: 6,
               },
+              componentProps: {
+                maxLength: 100,
+              },
             },
           ],
         },

+ 124 - 0
src/views/scenes/editorModal.vue

@@ -0,0 +1,124 @@
+<template>
+  <BasicModal
+    v-bind="$attrs"
+    @cancel="resetFields"
+    @register="register"
+    title="编辑场景"
+    @ok="handleOk"
+  >
+    <div class="pt-3px pr-3px">
+      <BasicForm @register="registerForm" />
+    </div>
+  </BasicModal>
+</template>
+<script lang="ts">
+  import { defineComponent, ref, unref } from 'vue';
+  import { delApi } from '/@/api/staff/list';
+  import { uploadLiveApi } from '/@/api/scene/live';
+  import { BasicModal, useModalInner } from '/@/components/Modal';
+  import { BasicForm, FormSchema, useForm } from '/@/components/Form/index';
+  import { useI18n } from '/@/hooks/web/useI18n';
+  import { useMessage } from '/@/hooks/web/useMessage';
+  const { t } = useI18n();
+
+  export default defineComponent({
+    components: { BasicModal, BasicForm },
+    props: {
+      userData: { type: Object },
+    },
+    emits: ['reload'],
+    setup(_, context) {
+      const modelRef = ref({
+        toUserId: 0,
+        userId: 0,
+      });
+      const options = ref([]);
+      const { createMessage } = useMessage();
+      const schemas: FormSchema[] = [
+        {
+          field: 'sceneName',
+          component: 'Input',
+          label: '场景名称',
+          required: true,
+          colProps: {
+            span: 22,
+          },
+        },
+        {
+          field: 'picList',
+          label: '直播间图片',
+          component: 'Upload',
+          componentProps: {
+            api: uploadLiveApi,
+            maxSize: 5,
+            emptyHidePreview: true,
+            maxNumber: 1,
+            accept: ['image/*'],
+            afterFetch: function (data) {
+              Reflect.set(data, 'url', data.message.url);
+              return data;
+            },
+          },
+
+          colProps: {
+            span: 20,
+          },
+        },
+        {
+          field: 'livestreamStatus',
+          component: 'RadioGroup',
+          label: t('routes.scenes.livestream'),
+          required: true,
+          defaultValue: 0,
+          componentProps: {
+            options: [
+              {
+                label: '是',
+                value: 1,
+                key: 1,
+              },
+              {
+                label: '否',
+                value: 0,
+                key: 0,
+              },
+            ],
+          },
+        },
+      ];
+      const [registerForm, { validate, resetFields, setFieldsValue }] = useForm({
+        labelWidth: 120,
+        schemas,
+        showActionButtonGroup: false,
+        actionColOptions: {
+          span: 24,
+        },
+      });
+
+      const [register, { closeModal }] = useModalInner((data) => {
+        data && onDataReceive(data);
+      });
+      function onDataReceive(data) {
+        data = unref(data);
+        console.log('onDataReceive', data);
+        setFieldsValue(data);
+        // 方式1;
+      }
+
+      async function handleOk() {
+        let data = await validate();
+        let res = await delApi({
+          toUserPhone: data.toUserPhone,
+          userId: modelRef.value.userId,
+          toUserId: modelRef.value.toUserId,
+        });
+        context && context.emit('reload', res);
+        createMessage.success(t('common.optSuccess'));
+        closeModal();
+        resetFields();
+      }
+
+      return { options, register, registerForm, model: modelRef, handleOk, resetFields };
+    },
+  });
+</script>

+ 16 - 5
src/views/scenes/list.vue

@@ -2,7 +2,7 @@
   <div class="p-4">
     <BasicTable @register="registerTable" :rowSelection="{ type: 'checkbox' }">
       <template #toolbar>
-        <a-button type="primary" @click="() => {}"> 新增</a-button>
+        <!-- <a-button type="primary" @click="() => {}"> 新增</a-button> -->
         <!-- <a-button type="primary" color="warning" @click="() => {}"> 编辑</a-button>
         <a-button type="primary" color="error" @click="() => {}"> 删除</a-button> -->
       </template>
@@ -29,13 +29,15 @@
               },
             },
             {
-              // icon: 'dashicons:editor-kitchensink',
               color: 'error',
               label: t('routes.scenes.editor'),
               onClick: openSceneEditor.bind(null, record),
             },
             {
-              // icon: 'dashicons:editor-kitchensink',
+              label: '编辑场景',
+              onClick: openSceneEditorModal.bind(null, record),
+            },
+            {
               color: 'error',
               label: t('routes.scenes.makeLiveCover'),
               onClick: generateDefaultLiveRoom.bind(null, record),
@@ -45,6 +47,7 @@
       </template>
     </BasicTable>
     <DownloadModal @register="registerDownloadModal" />
+    <EditorModal @register="registerEditorModal" @reload="reload" />
   </div>
 </template>
 <script lang="ts">
@@ -78,12 +81,14 @@
 
   import { useUserStore } from '/@/store/modules/user';
   import DownloadModal from './downloadModal.vue';
+  import EditorModal from './editorModal.vue';
 
   export default defineComponent({
-    components: { BasicTable, TableAction, TableImg, DownloadModal },
+    components: { BasicTable, TableAction, TableImg, DownloadModal, EditorModal },
     setup() {
       const { createMessage } = useMessage();
       const [registerDownloadModal, { openModal: openDownloadModal }] = useModal();
+      const [registerEditorModal, { openModal: openEditorModal }] = useModal();
       const { t } = useI18n();
 
       const columns: BasicColumn[] = [
@@ -225,7 +230,9 @@
           console.log('error', error);
         }
       }
-
+      function openSceneEditorModal(record: Recordable) {
+        openEditorModal(true, record);
+      }
       async function handleDownloadScene(record: Recordable) {
         const res = await downloadSceneDataAPi({
           sceneNum: record.num,
@@ -264,10 +271,14 @@
         registerTable,
         createMessage,
         t,
+        reload,
         openSceneEditor,
+        openEditorModal,
+        registerEditorModal,
         handleDownloadScene,
         registerDownloadModal,
         generateDefaultLiveRoom,
+        openSceneEditorModal,
       };
     },
   });

+ 1 - 1
src/views/scenes/live.vue

@@ -47,7 +47,7 @@
       </template>
     </BasicTable>
     <bindModal @register="registerBindModal" @success="reload" />
-    <!-- <addLiveModal @register="registeraddLiveModal" /> -->
+    <addLiveModal @register="registeraddLiveModal" />
     <LiveDrawer @register="registerLiveDrawer" @success="reload" />
   </div>
 </template>

+ 4 - 0
src/views/scenes/liveDrawer.vue

@@ -148,6 +148,10 @@
           component: 'Input',
           label: t('routes.scenes.liveName'),
           required: true,
+          helpMessage: '仅能输入 英文大小写和中文,最多可输入50个字',
+          componentProps: {
+            maxLength: 50,
+          },
         },
         {
           field: 'appListPicUrl',

+ 29 - 41
src/views/staff/delListModal.vue

@@ -7,17 +7,16 @@
     @ok="handleOk"
   >
     <div class="pt-3px pr-3px">
-      <BasicForm @register="registerForm" :model="model" />
+      <BasicForm @register="registerForm" />
     </div>
   </BasicModal>
 </template>
 <script lang="ts">
-  import { defineComponent, ref, computed } from 'vue';
-  import { saveApi, updateApi } from '/@/api/staff/list';
+  import { defineComponent, ref, unref } from 'vue';
+  import { delApi } from '/@/api/staff/list';
   import { BasicModal, useModalInner } from '/@/components/Modal';
   import { BasicForm, FormSchema, useForm } from '/@/components/Form/index';
   import { useI18n } from '/@/hooks/web/useI18n';
-  import { useUserStore } from '/@/store/modules/user';
   import { useMessage } from '/@/hooks/web/useMessage';
   const { t } = useI18n();
 
@@ -26,28 +25,17 @@
     props: {
       userData: { type: Object },
     },
+    emits: ['ok'],
     setup(_, context) {
-      const modelRef = ref({});
-      const userStore = useUserStore();
-      const options = ref([
-        {
-          label: '是',
-          value: 1,
-          key: '1',
-        },
-        { label: '否', value: 0, key: '0' },
-      ]);
-      const userinfo = computed(() => userStore.getUserInfo);
+      const modelRef = ref({
+        toUserId: 0,
+        userId: 0,
+      });
+      const options = ref([]);
       const { createMessage } = useMessage();
       const schemas: FormSchema[] = [
         {
-          field: 'userId',
-          component: 'Input',
-          label: '手机号',
-          show: false,
-        },
-        {
-          field: 'toUser',
+          field: 'toUserPhone',
           component: 'Select',
           label: '角色',
           required: true,
@@ -59,12 +47,10 @@
           },
           componentProps: {
             options: options.value,
-            // labelField: 'roleName',
-            // valueField: 'roleId',
           },
         },
       ];
-      const [registerForm, { setFieldsValue, validate, resetFields, updateSchema }] = useForm({
+      const [registerForm, { validate, resetFields, updateSchema }] = useForm({
         labelWidth: 120,
         schemas,
         showActionButtonGroup: false,
@@ -77,15 +63,18 @@
         data && onDataReceive(data);
       });
       function onDataReceive(data) {
+        data = unref(data);
+        modelRef.value.userId = data.id;
         console.log('onDataReceive', data);
         // 方式1;
-        setFieldsValue({
-          ...data,
-        });
         if (data.option) {
-          options.value = data.option;
+          options.value = data.option.map((ele) => {
+            ele.label = ele.nickName;
+            ele.value = ele.phone;
+            return ele;
+          });
           updateSchema({
-            field: 'toUser',
+            field: 'toUserPhone',
             component: 'Select',
             label: '角色',
             required: true,
@@ -96,7 +85,11 @@
               span: 22,
             },
             componentProps: {
-              options: options.value,
+              options: data.option,
+              onChange: function (value, item) {
+                modelRef.value.toUserId = item.id;
+                console.log('onChange', value, item);
+              },
             },
           });
         }
@@ -104,23 +97,18 @@
 
       async function handleOk() {
         let data = await validate();
-        const { companyId } = userinfo.value;
-        const requestApi = data.id ? updateApi : saveApi;
-        let res = await requestApi({
-          userName: data.phone,
-          phone: data.phone,
-          nickName: data.nickName,
-          roleId: data.roleId,
-          companyId,
+        let res = await delApi({
+          toUserPhone: data.toUserPhone,
+          userId: modelRef.value.userId,
+          toUserId: modelRef.value.toUserId,
         });
-        console.log('res', res);
         context && context.emit('ok', res);
         createMessage.success(t('common.optSuccess'));
         closeModal();
         resetFields();
       }
 
-      return { options, register, schemas, registerForm, model: modelRef, handleOk, resetFields };
+      return { options, register, registerForm, model: modelRef, handleOk, resetFields };
     },
   });
 </script>

+ 4 - 2
src/views/staff/list.vue

@@ -182,11 +182,12 @@
         openDetaileModal(true, record);
       }
       async function handleDelete(record) {
-        let check = await preDelApi(record.id);
+        let check = await preDelApi(23862); //record.id
+        console.log('https://cszfb.4dkankan.com', check);
         if (Array.isArray(check)) {
           return openDelListeModal(true, {
             ...record,
-            option: [{ label: '否杀杀杀', value: 2, key: '2' }],
+            option: check,
           });
         }
         handDelconfirm(record);
@@ -210,6 +211,7 @@
         createMessage,
         handDelconfirm,
         t,
+        reload,
         go,
         renderRoleType,
         renderStatus,

+ 1 - 1
src/views/system/role/role.data.ts

@@ -77,7 +77,7 @@ export const columns: BasicColumn[] = [
 
 export const searchFormSchema: FormSchema[] = [
   {
-    field: 'roleNme',
+    field: 'roleName',
     label: '角色名称',
     component: 'Input',
     colProps: { span: 8 },