Forráskód Böngészése

fix(bugs): 修改部分问题

tangning 2 éve
szülő
commit
750fd9a102

+ 2 - 2
.env

@@ -2,7 +2,7 @@
 VITE_PORT = 3100
 
 # spa-title
-VITE_GLOB_APP_TITLE = Vben Admin
+VITE_GLOB_APP_TITLE = 四维看看
 
 # spa shortname
-VITE_GLOB_APP_SHORT_NAME = vue_vben_admin
+VITE_GLOB_APP_SHORT_NAME = 4DAGE

BIN
src/assets/images/grey-logo.png


BIN
src/assets/images/logo.png


+ 3 - 3
src/components/Application/src/AppLogo.vue

@@ -4,10 +4,10 @@
 -->
 <template>
   <div class="anticon" :class="getAppLogoClass" @click="goHome">
-    <img src="../../../assets/images/logo.png" />
-    <div class="ml-2 truncate md:opacity-100" :class="getTitleClass" v-show="showTitle">
+    <img src="../../../assets/images/grey-logo.png" />
+    <!-- <div class="ml-2 truncate md:opacity-100" :class="getTitleClass" v-show="showTitle">
       {{ title }}
-    </div>
+    </div> -->
   </div>
 </template>
 <script lang="ts" setup>

+ 1 - 1
src/design/var/index.less

@@ -11,7 +11,7 @@
 @header-height: 48px;
 
 // logo width
-@logo-width: 32px;
+@logo-width: auto;
 
 //
 @side-drag-z-index: 200;

+ 1 - 1
src/locales/lang/zh-CN/routes/dashboard.ts

@@ -57,7 +57,7 @@ export default {
   cameraScene: '相机场景管理',
   kankanScene: '四维看看',
   MinionScene: '四维看见',
-  laserScene: '四维双目深时',
+  laserScene: '四维深时',
   liteScene: '四维双目lite',
   sxz: '随心装方案管理',
   viewKankan: '全景看看作品管理',

+ 2 - 2
src/locales/lang/zh-CN/sys.ts

@@ -65,8 +65,8 @@ export default {
     signUpFormTitle: '注册',
     forgetFormTitle: '重置密码',
 
-    signInTitle: '开箱即用的中后台管理系统',
-    signInDesc: '输入您的个人详细信息开始使用!',
+    signInTitle: '让数字化飞入寻常百姓家',
+    signInDesc: '实景三维激光相机!',
     policy: '我同意xxx隐私政策',
     scanSign: `扫码后点击"确认",即可完成登录`,
 

+ 12 - 7
src/store/modules/other.ts

@@ -7,24 +7,29 @@ import { Persistent } from '/@/utils/cache/persistent';
 import { useUserStore } from './user';
 
 interface LockState {
-  overviewInfo: Nullable<OverviewInfo> | string;
+  overviewInfo: Nullable<OverviewInfo> | {};
 }
 
 export const otherInfoStore = defineStore({
   id: 'other-info',
   state: (): LockState => ({
-    overviewInfo:  sessionStorage.getItem('overviewInfo') || null,
+    overviewInfo:  {},
   }),
   getters: {
-    getOverviewInfo(): Nullable<OverviewInfo> {
-      return this.overviewInfo && JSON.parse(this.overviewInfo);
+    getOverviewInfo(): OverviewInfo | null {
+      if(JSON.stringify(this.overviewInfo) == "{}"){
+        let jsonInfo = sessionStorage.getItem('overviewInfo')
+        return jsonInfo?JSON.parse(jsonInfo):{}
+      }else{
+        return this.overviewInfo
+      }
     },
   },
   actions: {
-    setOverviewInfo(info: LockInfo) {
-      this.overviewInfo = JSON.stringify(info);
+    setOverviewInfo(info: OverviewInfo) {
+      this.overviewInfo = info;
       console.log('getOverviewInfo',this.overviewInfo,info)
-      sessionStorage.setItem('overviewInfo',this.overviewInfo)
+      sessionStorage.setItem('overviewInfo',JSON.stringify(this.overviewInfo))
     },
     resetLockInfo() {
       Persistent.removeLocal(LOCK_INFO_KEY, true);

+ 0 - 1
src/store/modules/permission.ts

@@ -72,7 +72,6 @@ export const usePermissionStore = defineStore({
     },
     getCheckPerm(value:string|string[]): boolean{
       const permCodeList = this.permCodeList;
-      console.log('permCodeList',permCodeList,value,permCodeList?.includes(value))
       if (!value) {
         return false;
       }

+ 10 - 1
src/views/account/details/OrderList.vue

@@ -32,7 +32,7 @@
   </a-tabs>
 </template>
 <script lang="ts">
-import { defineComponent, reactive } from 'vue';
+import { defineComponent, reactive, computed } from 'vue';
 import { BasicTable, useTable, FormProps, TableAction } from '/@/components/Table';
 import { PageWrapper } from '/@/components/Page';
 import { Divider, Card, Empty, Descriptions, Steps, Tabs } from 'ant-design-vue';
@@ -43,6 +43,7 @@ import { useModal } from '/@/components/Modal';
 import { useI18n } from '/@/hooks/web/useI18n';
 import { useMessage } from '/@/hooks/web/useMessage';
 import { cameraColumns, dowmColumns, equityColumns,equitySearchForm } from './data'
+import { otherInfoStore } from '/@/store/modules/other'
 export default defineComponent({
   components: {
     BasicTable,
@@ -60,9 +61,14 @@ export default defineComponent({
   },
   setup() {
     const { t } = useI18n();
+    const otherInfo = otherInfoStore();
+    const OverviewInfo = computed(() => otherInfo.getOverviewInfo);
+    const { userName } = OverviewInfo.value
     const searchInfo = reactive<Recordable>({
       activeKey: '1',
+      userName,
     });
+    console.log('OverviewInfo',searchInfo,OverviewInfo,userName)
     const [registerAddModal, { openModal: openAddModal }] = useModal();
     const [registerEditModal, { openModal: openEditModal }] = useModal();
     const { createMessage } = useMessage();
@@ -94,6 +100,7 @@ export default defineComponent({
       showTableSetting: true,
       showIndexColumn: false,
       rowKey: 'id',
+      searchInfo,
       fetchSetting: {
         pageField: 'pageNum',
         sizeField: 'pageSize',
@@ -117,6 +124,7 @@ export default defineComponent({
       formConfig: searchForm,
       showIndexColumn: false,
       showTableSetting: true,
+      searchInfo,
       rowKey: 'id',
       fetchSetting: {
         pageField: 'pageNum',
@@ -134,6 +142,7 @@ export default defineComponent({
       formConfig: equitySearchForm,
       showIndexColumn: false,
       showTableSetting: true,
+      searchInfo,
       rowKey: 'id',
       fetchSetting: {
         pageField: 'pageNum',

+ 31 - 27
src/views/account/product/data.tsx

@@ -14,11 +14,14 @@ export const columns:  BasicColumn[] = [
     title: '场景标题',
     dataIndex: 'sceneName',
     width: 150,
+    customRender: ({ record }) => {
+      return <a href={record.url}>{record.sceneName}</a>
+    },
   },
   {
     title: '场景码',
     dataIndex: 'num',
-    ellipsis: false,
+    ellipsis: true,
     width: 80,
   },
   {
@@ -147,18 +150,18 @@ export const searchForm: Partial<FormProps> = {
       },
     },
 
-    {
-      field: 'userName',
-      label: '用户账号',
-      component: 'Input',
-      componentProps: {
-        maxLength: 100,
-      },
-      colProps: {
-        xl: 6,
-        xxl: 6,
-      },
-    },
+    // {
+    //   field: 'userName',
+    //   label: '用户账号',
+    //   component: 'Input',
+    //   componentProps: {
+    //     maxLength: 100,
+    //   },
+    //   colProps: {
+    //     xl: 6,
+    //     xxl: 6,
+    //   },
+    // },
   ],
 };
 
@@ -168,13 +171,14 @@ export const cameraScene: BasicColumn[] = [
     dataIndex: 'name',
     width: 150,
     customRender: ({ record }) => {
-      return record.name ? h('span', record.name) : '-';
+      return <a href={record.url}>{record.name}</a>
+      // return record.name ? h('span', record.name) : '-';
     },
   },
   {
     title: '作品码',
     dataIndex: 'sceneCodes',
-    ellipsis: false,
+    ellipsis: true,
     width: 180,
   },
   {
@@ -260,17 +264,17 @@ export const cameraSearchForm: Partial<FormProps> = {
         xxl: 7,
       },
     },
-    {
-      field: 'userName',
-      label: '绑定账号',
-      component: 'Input',
-      componentProps: {
-        maxLength: 100,
-      },
-      colProps: {
-        xl: 6,
-        xxl: 6,
-      },
-    },
+    // {
+    //   field: 'userName',
+    //   label: '绑定账号',
+    //   component: 'Input',
+    //   componentProps: {
+    //     maxLength: 100,
+    //   },
+    //   colProps: {
+    //     xl: 6,
+    //     xxl: 6,
+    //   },
+    // },
   ],
 };

+ 8 - 4
src/views/account/product/index.vue

@@ -4,7 +4,7 @@
       <a-tabs v-model:activeKey="tableType" @change="changeTable">
         <a-tab-pane :key="0" tab="四维看看" />
         <a-tab-pane :key="1" tab="四维看见" />
-        <a-tab-pane :key="2" tab="四维双目深时" />
+        <a-tab-pane :key="2" tab="四维深时" />
         <a-tab-pane :key="3" tab="四维双目Lite" /> 
         <a-tab-pane :key="4" tab="全景看看" /> 
       </a-tabs
@@ -96,7 +96,7 @@
   </PageWrapper>
 </template>
 <script lang="ts">
-  import { defineComponent, ref } from 'vue';
+  import { defineComponent, ref, computed } from 'vue';
   import {
     BasicTable,
     useTable,
@@ -112,6 +112,7 @@
   import { columns,searchForm,cameraScene,cameraSearchForm} from './data'
   import { useModal } from '/@/components/Modal';
   import { usePermissionStore } from '/@/store/modules/permission';
+  import { otherInfoStore } from '/@/store/modules/other'
   import {
     operateSceneList,
     sceneMove,
@@ -139,6 +140,9 @@
     },
     setup() {
       const { t } = useI18n();
+      const otherInfo = otherInfoStore();
+      const OverviewInfo = computed(() => otherInfo.getOverviewInfo);
+      const { userName } = OverviewInfo.value
       const { createMessage, createConfirm } = useMessage();
       const timer = ref<NodeJS.Timeout | number | undefined | null>(null);
       const tableType = ref<number>(0); //0看看 、1看见、2深时
@@ -154,7 +158,7 @@
         title: `全景看看作品列表`,
         // titleHelpMessage: ['已启用expandRowByClick', '已启用stopButtonPropagation'],
         columns: cameraScene,
-        searchInfo: { type: tableType },
+        searchInfo: { type: tableType,userName },
         useSearchForm: true,
         formConfig: cameraSearchForm,
         showTableSetting: true,
@@ -173,7 +177,7 @@
         title: `场景列表`,
         // titleHelpMessage: ['已启用expandRowByClick', '已启用stopButtonPropagation'],
         columns: columns,
-        searchInfo: { type: tableType },
+        searchInfo: { type: tableType, userName},
         useSearchForm: true,
         formConfig: searchForm,
         showTableSetting: true,

+ 12 - 6
src/views/customer/scene.vue

@@ -1,18 +1,21 @@
 <template>
   <PageWrapper contentBackground>
-    <!-- <template #footer>
+    <template #footer>
       <a-tabs v-model:activeKey="tableType" @change="changeTable">
         <a-tab-pane :key="0" tab="四维看看" />
         <a-tab-pane :key="1" tab="四维看见" />
-        <a-tab-pane :key="2" tab="四维双目深时" />
+        <a-tab-pane :key="2" tab="四维深时" />
         <a-tab-pane :key="3" tab="四维双目Lite" /> </a-tabs
-    ></template> -->
+    ></template>
     <div class="desc-wrap-BasicTable">
       <BasicTable @register="registerTable">
         <template #toolbar>
           <a-button type="primary" @click="back">返回</a-button>
         </template>
-
+        
+        <template #herf="{ record }">
+          <a :href="record.url">{{record.sceneName}}</a>
+        </template>
         <template #action="{ record }">
           <TableAction
             stopButtonPropagation
@@ -132,11 +135,12 @@
       const companyId: Number = router.currentRoute.value.params.id - 0;
       const { createMessage, createConfirm } = useMessage();
       const tableType = ref<Recordable>(0); //0看看 、1看见、2深时
-      const tabList = ref<Array>(['四维看看', '四维看见', '四维双目深时', '四维双目Lite']);
+      const tabList = ref<Array>(['四维看看', '四维看见', '四维深时', '四维双目Lite']);
       const columns: BasicColumn[] = [
         {
           title: '场景标题',
           dataIndex: 'sceneName',
+          slots: { customRender: 'herf' },
           width: 150,
         },
         {
@@ -328,10 +332,12 @@
           content: '复制场景,场景归属在原相机下。<br/>确定要复制场景吗?',
           onOk: async () => {
             sceneCopy({ num: record.num })
-              .then(() => {
+              .then((res) => {
+                if(res){
                 message.success({
                   content: '删除成功',
                 });
+                }
               })
               .catch(() => {
                 message.success({

+ 2 - 0
src/views/operate/components/recruit/addModal.vue

@@ -99,6 +99,7 @@
             componentProps: {
               maxLength: 500,
               placeholder: '请输入职位要求',
+              rows:4,
             },
             colProps: {
               span: 22,
@@ -111,6 +112,7 @@
             componentProps: {
               maxLength: 500,
               placeholder: '请输入任职资格',
+              rows:4,
             },
             colProps: {
               span: 22,

+ 16 - 3
src/views/order/downloadList.vue

@@ -53,7 +53,7 @@
       const { createConfirm } = useMessage();
       const columns: BasicColumn[] = [
         {
-          title: '时间',
+          title: '下单时间',
           dataIndex: 'createTime',
           width: 150,
           customRender: ({ record }) => {
@@ -73,12 +73,20 @@
           width: 180,
         },
         {
-          title: '用户',
+          title: '用户账号',
           dataIndex: 'userName',
           width: 80,
+        },{
+          title: '相机sn码',
+          dataIndex: 'snCode',
+          width: 80,
+        },{
+          title: '场景',
+          dataIndex: 'sceneNum',
+          width: 80,
         },
         {
-          title: '订单金额',
+          title: '订单金额(元)',
           dataIndex: 'amount',
           width: 80,
         },
@@ -89,6 +97,11 @@
           width: 80,
         },
         {
+          title: '交易号',
+          dataIndex: 'number',
+          width: 180,
+        },
+        {
           title: '订单状态',
           dataIndex: 'payStatus',
           // slots: { customRender: 'orderStatus' },

+ 11 - 1
src/views/order/equityList.vue

@@ -53,7 +53,7 @@
       const { createMessage,createConfirm } = useMessage();
       const columns: BasicColumn[] = [
         {
-          title: '时间',
+          title: '下单时间',
           dataIndex: 'createTime',
           width: 150,
           customRender: ({ record }) => {
@@ -78,6 +78,16 @@
           width: 80,
         },
         {
+          title: '数量',
+          dataIndex: 'count',
+          width: 80,
+        },
+        {
+          title: '交易号',
+          dataIndex: 'number',
+          width: 180,
+        },
+        {
           title: '订单金额',
           dataIndex: 'amount',
           width: 80,

+ 1 - 1
src/views/product/app/AddModal.vue

@@ -104,7 +104,7 @@
             api: AppFileUpload,
             maxNumber: 1,
             maxSize: 1000,
-            accept: ['4dage','jpg','png'],
+            accept: ['ipa','apk'],
             afterFetch: function (data) {
               console.log('uploadApi',data)
               const {fileName,md5} = data.data

+ 1 - 1
src/views/product/firmware/AddModal.vue

@@ -131,7 +131,7 @@
             maxNumber: 1,
             maxSize: 1000,
             fileFlow:true,
-            accept: ['4dage'],
+            accept: ['zip'],
             afterFetch: function (data) {
               console.log('uploadApi',data)
               Reflect.set(data, 'url', data.file);

+ 1 - 1
src/views/product/sdk/AddModal.vue

@@ -140,7 +140,7 @@
             maxNumber: 1,
             maxSize: 1000,
             fileFlow:true,
-            accept: ['4dage','jpg','png'],
+            accept: ['zip','rar','png'],
             afterFetch: function (data) {
               console.log('uploadApi',data)
               Reflect.set(data, 'url', data.file);

+ 12 - 6
src/views/productOperation/cameraScene.vue

@@ -4,7 +4,7 @@
       <a-tabs v-model:activeKey="tableType" @change="changeTable">
         <a-tab-pane :key="0" tab="四维看看" />
         <a-tab-pane :key="1" tab="四维看见" />
-        <a-tab-pane :key="2" tab="四维双目深时" />
+        <a-tab-pane :key="2" tab="四维深时" />
         <a-tab-pane :key="3" tab="四维双目Lite" /> </a-tabs
     ></template>
     <div class="desc-wrap-BasicTable">
@@ -13,6 +13,10 @@
           <!-- <a-button type="primary" @click="exportExcel"> 导出1</a-button> -->
         </template>
 
+        <template #href="{ record }">
+          <a v-if="record.sceneName" :href="record.url">{{record.sceneName}}</a>
+          <span v-else>-</span>
+        </template>
         <template #action="{ record }">
           <TableAction
             stopButtonPropagation
@@ -129,18 +133,19 @@
       const { t } = useI18n();
       const { createMessage, createConfirm } = useMessage();
       const tableType = ref<Recordable>(0); //0看看 、1看见、2深时
-      const tabList = ref<Array>(['四维看看', '四维看见', '四维双目深时', '四维双目Lite']);
+      const tabList = ref<Array>(['四维看看', '四维看见', '四维深时', '四维双目Lite']);
       const columns: BasicColumn[] = [
         {
           title: '场景标题',
           dataIndex: 'sceneName',
+          slots: { customRender: 'href' },
           width: 150,
         },
         {
           title: '场景码',
           dataIndex: 'num',
-          ellipsis: false,
-          width: 80,
+          ellipsis: true,
+          width: 180,
         },
         {
           title: '拍摄时间',
@@ -220,7 +225,7 @@
         },
         {
           title: '状态',
-          dataIndex: 'statusString',
+          dataIndex: 'status',
           width: 80,
           customRender: ({ record }) => {
             let str;
@@ -238,7 +243,7 @@
                 str = '计算失败';
                 break;
             }
-            return record.payStatus == 1 ? '封存' : str;
+            return record.payStatus == -2 ? '封存' : str;
           },
         },
         {
@@ -408,6 +413,7 @@
               }
             });
           } else {
+            window.open(res.downloadUrl);
           }
         });
       }

+ 7 - 2
src/views/productOperation/sxz.vue

@@ -3,6 +3,10 @@
     <template #toolbar>
       <!-- <a-button type="primary" @click="exportExcel"> 导出1</a-button> -->
     </template>
+    <template #href="{ record }">
+          <a v-if="record.name" :href="record.url">{{record.name}}</a>
+          <span v-else>-</span>
+    </template>
     <template #action="{ record }">
       <TableAction
         stopButtonPropagation
@@ -68,13 +72,14 @@
         {
           title: '场景标题',
           dataIndex: 'sceneName',
+          slots: { customRender: 'href' },
           width: 150,
         },
         {
           title: '场景码',
           dataIndex: 'num',
-          ellipsis: false,
-          width: 80,
+          ellipsis: true,
+          width: 180,
         },
 
         {

+ 9 - 4
src/views/productOperation/viewKankan.vue

@@ -3,6 +3,10 @@
     <template #toolbar>
       <!-- <a-button type="primary" @click="exportExcel"> 导出1</a-button> -->
     </template>
+    <template #href="{ record }">
+          <a v-if="record.name" :href="record.url">{{record.name}}</a>
+          <span v-else>-</span>
+    </template>
     <template #action="{ record }">
       <TableAction
         stopButtonPropagation
@@ -56,15 +60,16 @@
         {
           title: '作品标题',
           dataIndex: 'name',
+          slots: { customRender: 'href' },
           width: 150,
-          customRender: ({ record }) => {
-            return record.name ? h('span', record.name) : '-';
-          },
+          // customRender: ({ record }) => {
+          //   return record.name ? h('span', record.name) : '-';
+          // },
         },
         {
           title: '作品码',
           dataIndex: 'sceneCodes',
-          ellipsis: false,
+          ellipsis: true,
           width: 180,
         },
         {

+ 1 - 1
src/views/sys/login/Login.vue

@@ -182,7 +182,7 @@
         }
 
         img {
-          width: 48px;
+          width: 150px;
         }
       }
     }

+ 12 - 12
src/views/sys/login/LoginForm.vue

@@ -52,7 +52,7 @@
         {{ t('sys.login.registerButton') }}
       </Button> -->
     </FormItem>
-    <ARow class="enter-x">
+    <!-- <ARow class="enter-x">
       <ACol :md="8" :xs="24">
         <Button block @click="setLoginState(LoginStateEnum.MOBILE)">
           {{ t('sys.login.mobileSignInFormTitle') }}
@@ -68,9 +68,9 @@
           {{ t('sys.login.registerButton') }}
         </Button>
       </ACol>
-    </ARow>
+    </ARow> -->
 
-    <Divider class="enter-x">{{ t('sys.login.otherSignIn') }}</Divider>
+    <!-- <Divider class="enter-x">{{ t('sys.login.otherSignIn') }}</Divider>
 
     <div class="flex justify-evenly enter-x" :class="`${prefixCls}-sign-in-way`">
       <GithubFilled />
@@ -78,20 +78,20 @@
       <AlipayCircleFilled />
       <GoogleCircleFilled />
       <TwitterCircleFilled />
-    </div>
+    </div> -->
   </Form>
 </template>
 <script lang="ts" setup>
   import { reactive, ref, unref, computed } from 'vue';
 
-  import { Checkbox, Form, Input, Row, Col, Button, Divider } from 'ant-design-vue';
-  import {
-    GithubFilled,
-    WechatFilled,
-    AlipayCircleFilled,
-    GoogleCircleFilled,
-    TwitterCircleFilled,
-  } from '@ant-design/icons-vue';
+  import { Checkbox, Form, Input, Row, Col, Button, } from 'ant-design-vue';//  Divider
+  // import {
+  //   GithubFilled,
+  //   WechatFilled,
+  //   AlipayCircleFilled,
+  //   GoogleCircleFilled,
+  //   TwitterCircleFilled,
+  // } from '@ant-design/icons-vue';
   import LoginFormTitle from './LoginFormTitle.vue';
 
   import { useI18n } from '/@/hooks/web/useI18n';

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

@@ -123,7 +123,7 @@ export const formSchema: FormSchema[] = [
     field: 'status',
     label: t('routes.system.isPlatformRole'),
     component: 'RadioButtonGroup',
-    defaultValue: 0,
+    defaultValue: 1,
     componentProps: {
       options: [
         { label: '启用', value: 1 },

+ 10 - 10
types/store.d.ts

@@ -15,18 +15,18 @@ export interface OverviewInfo {
   // Password required
   pwd?: string | undefined;
   // Is it locked?
-  id: number;
+  id?: number;
   incrementCount?: number;
   surDownNum?: number;
-  userName: string;
-  nickName: string;
-  createTime: string;
-  email: string;
-  vip: number;
-  incrementCount: number;
-  surDownNum: number;
-  cameraCount: number;
-  sceneNum: number;
+  userName?: string;
+  nickName?: string;
+  createTime?: string;
+  email?: string;
+  vip?: number;
+  incrementCount?: number;
+  surDownNum?: number;
+  cameraCount?: number;
+  sceneNum?: number;
 }
 
 // Error-log information