Pārlūkot izejas kodu

feat(sdk): 修改

tangning 3 gadi atpakaļ
vecāks
revīzija
13d2a72f29

+ 4 - 3
src/layouts/default/header/components/Breadcrumb.vue

@@ -65,17 +65,18 @@
         const parent = getAllParentPath(menus, path);
         const filterMenus = menus.filter((item) => item.path === parent[0]);
         const matched = getMatched(filterMenus, parent) as any;
-
+        console.log('breadcrumbList',matched)
         if (!matched || matched.length === 0) return;
 
         const breadcrumbList = filterItem(matched);
-
+        console.log('breadcrumbList',breadcrumbList)
         if (currentRoute.value.meta?.currentActiveMenu) {
           breadcrumbList.push({
             ...currentRoute.value,
             name: currentRoute.value.meta?.title || currentRoute.value.name,
           } as unknown as RouteLocationMatched);
         }
+        console.log('breadcrumbList',breadcrumbList)
         routes.value = breadcrumbList;
       });
 
@@ -112,7 +113,7 @@
       function handleClick(route: RouteLocationMatched, paths: string[], e: Event) {
         e?.preventDefault();
         const { children, redirect, meta } = route;
-
+        console.log('handleClick',route)
         if (children?.length && !redirect) {
           e?.stopPropagation();
           return;

+ 2 - 0
src/locales/lang/zh-CN/routes/product.ts

@@ -10,6 +10,8 @@ export default {
   minVersion:'最低版本号',
   version:'版本号',
   description:'版本更新说明',
+  description_zh:'中文更新说明',
+  description_en:'英文更新说明',
   file:'文件',
   type:{
     1:'四维看看',

+ 1 - 0
src/router/routes/modules/customer.ts

@@ -20,6 +20,7 @@ export const customer: AppRouteRecordRaw = {
       component: () => import('/@/views/customer/index.vue'),
       meta: {
         title: t('routes.dashboard.customer'),
+        hideBreadcrumb: true,
         // icon: 'la:file-invoice-dollar',
       },
     },

+ 1 - 1
src/views/product/data.tsx

@@ -123,7 +123,7 @@ export const sdkTableSchema: BasicColumn[] = [
     dataIndex: 'isTop',
     width: 80,
     customRender: ({ record }) => {
-      if (!Reflect.has(record, 'pendingStatus')) {
+      if (!Reflect.has(record, 'isTop')) {
         record.pendingStatus = false;
       }
       return h(Switch, {

+ 11 - 10
src/views/product/sdk/AddModal.vue

@@ -21,7 +21,7 @@
   import { BasicModal, useModalInner } from '/@/components/Modal';
   import { BasicForm, FormSchema, useForm } from '/@/components/Form/index';
   import { useMessage } from '/@/hooks/web/useMessage';
-  import { uploadApi, AddAndUpload } from '/@/api/product/index';
+  import { uploadApi, SpaceSdkUpload } from '/@/api/product/index';
   import { useI18n } from '/@/hooks/web/useI18n';
 
   const { t } = useI18n();
@@ -108,19 +108,19 @@
         //   },
         // },
         {
-          field: 'description',
+          field: 'imprintCh',
           component: 'InputTextArea',
           required: true,
-          label: t('routes.product.description')+'中文',
+          label: t('routes.product.description_zh'),
           colProps: {
             span: 24,
           },
         },
         {
-          field: 'description',
+          field: 'imprintEn',
           component: 'InputTextArea',
           required: true,
-          label: t('routes.product.description')+'英文',
+          label: t('routes.product.description_en'),
           colProps: {
             span: 24,
           },
@@ -140,7 +140,7 @@
             maxNumber: 1,
             maxSize: 1000,
             fileFlow:true,
-            accept: ['4dage'],
+            accept: ['4dage','jpg','png'],
             afterFetch: function (data) {
               console.log('uploadApi',data)
               Reflect.set(data, 'url', data.file);
@@ -154,12 +154,12 @@
           },
         },
         {
-          field: 'orderSn',
+          field: 'isTop',
           component: 'CheckboxGroup',
           label: '官网置顶',
           componentProps: {
             options: [
-              { label: '顶顶顶顶顶顶顶', value: 1 },
+              { label: '(勾选此项,将在四维看看官网置顶)', value: 1 },
             ],
           },
           colProps: {
@@ -221,12 +221,13 @@
           const apiData = {
             data:{
             ...params as any,
-            type:modelRef.value,
+            platformType:modelRef.value,
             file:fileFlow.file,
+            isTop:params.isTop && params.isTop[0] || 0
             }
           }
           console.log('res', apiData);
-          const res = await AddAndUpload(apiData);
+          const res = await SpaceSdkUpload(apiData);
           console.log('res', res);
           closeModal();
           resetFields();

+ 48 - 58
src/views/product/sdk/EditModal.vue

@@ -6,12 +6,17 @@
     @visible-change="handleVisibleChange"
     @cancel="resetFields"
     @ok="handleSubmit"
-  >
+  >Checkbox
     <div class="pt-2px pr-3px">
       <BasicForm @register="registerForm" :model="model" >
         <template #text="{ model, field }">
           {{ model[field]  }}
         </template>
+        <template #Checkbox="{ model, field }">
+          <div>
+            <Checkbox v-model:checked="model[field]">(勾选此项,将在四维看看官网置顶)</Checkbox>
+          </div>
+        </template>
       </BasicForm>
     </div>
   </BasicModal>
@@ -20,13 +25,14 @@
   import { defineComponent, ref, nextTick, onMounted, reactive } from 'vue';
   import { BasicModal, useModalInner } from '/@/components/Modal';
   import { BasicForm, FormSchema, useForm } from '/@/components/Form/index';
+  import { Checkbox  } from 'ant-design-vue';
   import { useMessage } from '/@/hooks/web/useMessage';
-  import { EditAndUpload, } from '/@/api/product/index';
   import { useI18n } from '/@/hooks/web/useI18n';
+  import { uploadApi, SpaceSdkUpdate } from '/@/api/product/index';
 
   const { t } = useI18n();
   export default defineComponent({
-    components: { BasicModal, BasicForm },
+    components: { BasicModal, BasicForm, Checkbox },
     props: {
       userData: { type: Object },
     },
@@ -39,6 +45,14 @@
       const { createMessage } = useMessage();
       const schemas: FormSchema[] = [
         {
+          field: 'fileUrl',
+          component: 'Input',
+          label: t('routes.product.types'),
+          show: false,
+          colProps: {
+            span: 24,
+          },
+        },{
           field: 'id',
           component: 'Input',
           label: t('routes.product.types'),
@@ -47,7 +61,7 @@
             span: 24,
           },
         },{
-          field: 'type',
+          field: 'platformType',
           component: 'Input',
           label: t('routes.product.types'),
           show: false,
@@ -55,14 +69,13 @@
             span: 24,
           },
         },{
-          field: 'name',
+          field: 'type',
           component: 'Input',
           label: t('routes.product.types'),
           slot: 'text',
           colProps: {
             span: 24,
           },
-          // required: true,
         },
         {
           field: 'version',
@@ -97,63 +110,37 @@
           },
         },
         {
-          field: 'minVersion',
-          component: 'Input',
-          label: t('routes.product.minVersion'),
+          field: 'imprintCh',
+          component: 'InputTextArea',
           required: true,
-          rules: [
-            {
-              required: true,
-              // @ts-ignore
-              validator: async (rule, value) => {
-                const regPos = /.*[\u4e00-\u9fa5]+.*$/; // 非中文
-                if (!value) {
-                  return Promise.reject(t('common.inputText')+t('routes.product.minVersion'));
-                }
-                if (regPos.test(value)) {
-                  /* eslint-disable-next-line */
-                  return Promise.reject('不支持中文字符');
-                }
-                return Promise.resolve();
-              },
-              trigger: 'change',
-            },
-          ],
+          label: t('routes.product.description_zh'),
           colProps: {
             span: 24,
           },
         },
         {
-          field: 'description',
+          field: 'imprintEn',
           component: 'InputTextArea',
           required: true,
-          label: t('routes.product.description'),
+          label: t('routes.product.description_en'),
+          colProps: {
+            span: 24,
+          },
+        },
+        {
+          field: 'isTop',
+          component: 'CheckboxGroup',
+          label: '官网置顶',
+          slot:'Checkbox',
+          componentProps: {
+            options: [
+              { label: '(勾选此项,将在四维看看官网置顶)', value: 1 },
+            ],
+          },
           colProps: {
             span: 24,
           },
         },
-        // {
-        //   field: 'file',
-        //   component: 'Upload',
-        //   label: t('routes.product.file'),
-        //   required: true,
-        //   rules: [{ required: true, message: t('common.uploadMessge') }],
-        //   itemProps: {
-        //     validateTrigger: 'onBlur',
-        //   },
-        //   componentProps: {
-        //     api: uploadApi,
-        //     maxNumber: 1,
-        //     maxSize: 1000,
-        //     fileFlow:true,
-        //     accept: ['4dage'],
-        //     afterFetch: function (data) {
-        //       console.log('uploadApi',data)
-        //       Reflect.set(data, 'url', data.file);
-        //       fileFlow.file = data.file
-        //       return data;
-        //     },
-        //   },
       ];
       const [registerForm, { validate, resetFields, setFieldsValue }] = useForm({
         labelWidth: 120,
@@ -166,14 +153,15 @@
       onMounted(() => {});
       let addListFunc = () => {};
       const [register, { closeModal }] = useModalInner((data) => {
+        console.log('useModalInner',data)
         data && onDataReceive(data);
       });
       function renderOwnTypeLabel(type: number): string {
         switch (type) {
           case 2:
-            return t('routes.product.type.2');
+            return t('routes.product.sdkType.2');
           case 1:
-            return t('routes.product.type.1');
+            return t('routes.product.sdkType.1');
           case 3:
             return t('routes.product.type.3');
           default:
@@ -198,12 +186,13 @@
       }
       function onDataReceive(data) {
         modelRef.value = data
-        console.log('onDataReceive',data)
-        resetFields();
-        setFieldsValue({
+        let setData = {
           ...data,
           type:renderOwnTypeLabel(Number(data.type)),
-        });
+        }
+        console.log('onDataReceive',data,setData)
+        resetFields();
+        setFieldsValue(setData);
       }
       const handleSubmit = async () => {
         try {
@@ -212,9 +201,10 @@
           const apiData = {
             // ...modelRef.value,
             ...params as any,
+            isTop:params.isTop?1:0
           }
           console.log('res', apiData);
-          const res = await EditAndUpload(apiData);
+          const res = await SpaceSdkUpdate(apiData);
           console.log('res', res);
           closeModal();
           resetFields();

+ 5 - 0
src/views/product/sdk/index.vue

@@ -28,6 +28,11 @@
                 onClick: handleEdit.bind(null, record),
               },
               {
+                label: '下架',
+                icon: 'akar-icons:statistic-down',
+                onClick: handleEdit.bind(null, record),
+              },
+              {
                 label: '删除',
                 icon: 'ic:outline-delete-outline',
                 popConfirm: {