Przeglądaj źródła

Merge branch 'master' into 'feedback'

# Conflicts:
#   .env.development
朱 叠 1 rok temu
rodzic
commit
dfde58db78

+ 2 - 0
.env

@@ -15,3 +15,5 @@ VITE_GLOB_LOGIN_APP = '/skyeye-login/#/'
 VITE_GLOB_SKYEYE_WORLD = /skyeye-world/
 
 VITE_GLOB_APP_PC = /skyeyev3pc/
+
+VITE_GLOB_TENANT_CODE=shangfei

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

@@ -252,10 +252,11 @@ export const getCompanyLayoutApi = (params: { companyId: number; labelId: number
 // };
 
 /** 查询所有公司主页配置 */
-export const getCompanyLayoutList = () => {
+export const getCompanyLayoutList = (params: { name: string }) => {
   return http.request({
     url: '/homepageConfig/getCompanyLayoutList',
     method: 'get',
+    params,
   });
 };
 

+ 1 - 0
src/api/scene/sceneOperate.ts

@@ -17,6 +17,7 @@ export interface ComAddDatas {
   parent?: null | ComAddDatas;
   longitude?: number; //经度
   latitude?: number; //纬度
+  regionCode: string;
 }
 
 /**

+ 1 - 1
src/api/system/region.ts

@@ -21,7 +21,7 @@ export function regionList(params) {
 /**
  * @description: 获取省份/直辖市
  */
-export function provinceList(params) {
+export function getProvinceList(params?: any) {
   return http.request({
     url: '/region/queryProvinceList',
     method: 'GET',

+ 1 - 1
src/api/system/user.ts

@@ -15,7 +15,7 @@ export interface BasicPageParams {
 /**
  * @description: 获取用户信息
  */
-export function getUserInfo(params) {
+export function getUserInfo(params: { tenantCode?: string }) {
   return http.request({
     url: '/login/info',
     method: 'POST',

+ 2 - 0
src/hooks/setting/index.ts

@@ -16,6 +16,7 @@ export const useGlobSetting = (): Readonly<GlobConfig> => {
     VITE_GLOB_LOGIN_APP,
     VITE_GLOB_SKYEYE_WORLD,
     VITE_GLOB_APP_PC,
+    VITE_GLOB_TENANT_CODE,
   } = getAppEnvConfig();
 
   if (!/[a-zA-Z\_]*/.test(VITE_GLOB_APP_SHORT_NAME)) {
@@ -37,6 +38,7 @@ export const useGlobSetting = (): Readonly<GlobConfig> => {
     loginApp: VITE_GLOB_LOGIN_APP,
     skyeyeWorldUrl: VITE_GLOB_SKYEYE_WORLD,
     appPCUrl: VITE_GLOB_APP_PC,
+    tenantCode: VITE_GLOB_TENANT_CODE,
   };
   return glob as Readonly<GlobConfig>;
 };

+ 4 - 3
src/layout/components/Header/index.vue

@@ -228,6 +228,7 @@
   import { Render, getRender } from '@/components/Render';
   import urlJoin from 'url-join';
   import { getRedirectUrl } from '@/utils/getRedirectUrl';
+  import { useGlobSetting } from '@/hooks/setting';
 
   defineEmits(['update:collapsed']);
 
@@ -249,6 +250,8 @@
 
   const BASE_LOGIN_NAME = PageEnum.BASE_LOGIN_NAME;
 
+  const { appPCUrl } = useGlobSetting();
+
   const drawerSetting = ref();
 
   const amendPwdRef = ref();
@@ -268,9 +271,7 @@
   });
 
   const getPLUrl = () => {
-    return userStore.getUserInfo.username?.includes('gov')
-      ? urlJoin(location.origin, '/skyeye-world/')
-      : urlJoin(location.origin, '/skyeyev3pc/');
+    return appPCUrl + '#/entry';
   };
 
   const getUsername = computed(() => {

+ 3 - 1
src/store/modules/user.ts

@@ -7,7 +7,9 @@ import { ResultEnum } from '@/enums/httpEnum';
 const Storage = createStorage({ storage: localStorage });
 import { getUserInfo, login } from '@/api/system/user';
 import { storage } from '@/utils/Storage';
+import { useGlobSetting } from '@/hooks/setting';
 
+const { tenantCode } = useGlobSetting();
 export interface IUserState {
   token: string;
   username: string;
@@ -97,7 +99,7 @@ export const useUserStore = defineStore({
     // 获取用户信息
     GetInfo() {
       return new Promise((resolve, reject) => {
-        getUserInfo()
+        getUserInfo({ tenantCode })
           .then((res) => {
             const result = res;
             if (result.permissions && result.permissions.length) {

+ 5 - 2
src/views/page-config/PageConfig.vue

@@ -17,7 +17,7 @@
       </div>
     </el-card>
     <el-card shadow="never" class="flex-1" style="margin-top: 8px; overflow: auto">
-      <PageMain />
+      <PageMain ref="pageMain" />
     </el-card>
   </div>
 </template>
@@ -28,8 +28,11 @@
   import PageMain from './component/PageMain.vue';
 
   const searchCom = ref('');
+  const pageMain = ref();
 
-  const searchPageConfig = () => {};
+  const searchPageConfig = () => {
+    pageMain.value.getList(searchCom.value);
+  };
 
   const broadcast = () => {
     ElMessage({

+ 9 - 10
src/views/page-config/component/PageMain.vue

@@ -69,15 +69,18 @@
   const companyLayoutList = ref<companyLayoutType[]>([]);
 
   onMounted(() => {
-    getCompanyLayoutList().then((res) => {
+    getList('');
+  });
+
+  const getList = (searchCom) => {
+    getCompanyLayoutList({ name: searchCom }).then((res) => {
       companyLayoutList.value = res;
       companyLayoutList.value = companyLayoutList.value.map((item) => {
         item.layout = JSON.parse(item.layout);
         return item;
       });
-      console.log('companyLayoutList.value', companyLayoutList.value);
     });
-  });
+  };
 
   const router = useRouter();
 
@@ -115,16 +118,12 @@
   const deleteItem = (item) => {
     // 处理删除逻辑
     delCompanyLayout(item.id).then(() => {
-      getCompanyLayoutList().then((res) => {
-        companyLayoutList.value = res;
-        companyLayoutList.value = companyLayoutList.value.map((item) => {
-          item.layout = JSON.parse(item.layout);
-          return item;
-        });
-      });
+      getList('');
     });
   };
 
+  defineExpose({ getList });
+
   // const label = ref('');
 </script>
 

+ 23 - 1
src/views/system-config/scene-manage/CompanyDrawer.vue

@@ -74,6 +74,16 @@
             ></div>
           </div>
         </el-form-item>
+        <el-form-item label="所在省市" prop="regionCode">
+          <el-select v-model="ruleForm.regionCode" placeholder="请选择省市" style="width: 200px">
+            <el-option
+              v-for="item in provinceList"
+              :key="item.regionCode"
+              :label="item.regionName"
+              :value="item.regionCode"
+            />
+          </el-select>
+        </el-form-item>
         <el-form-item label="坐标经度" prop="longitude"
           ><el-input v-model="ruleForm.longitude" type="number" style="width: 200px"></el-input
         ></el-form-item>
@@ -104,7 +114,7 @@
 </template>
 
 <script setup lang="ts">
-  import { computed, reactive, ref, defineProps, defineEmits, watch } from 'vue';
+  import { computed, reactive, ref, defineProps, defineEmits, watch, onMounted } from 'vue';
   import {
     addCompanyModuleLabel,
     editCompanyModuleLabel,
@@ -116,6 +126,9 @@
   import { ElMessage, ElMessageBox } from 'element-plus';
   import { CirclePlus } from '@element-plus/icons-vue';
   import { addCompany, editCompany } from '@/api/scene/sceneOperate';
+  import { getProvinceList } from '@/api/system/region';
+  import { useRequest } from 'vue-hooks-plus';
+  import { string } from 'vue-types';
 
   interface SelectItemType {
     tag: string;
@@ -137,6 +150,7 @@
       remark?: string;
       longitude?: number; //经度
       latitude?: number; //纬度
+      regionCode: string;
     };
   }>();
 
@@ -170,6 +184,7 @@
     remark?: string; //备注,可用于添加经纬度,非必要
     longitude?: number; //经度
     latitude?: number; //纬度
+    regionCode: string;
   }
 
   const ruleForm = reactive<RuleForm>({
@@ -186,6 +201,7 @@
     remark: '',
     longitude: undefined, //经度
     latitude: undefined, //纬度
+    regionCode: '',
   });
   const rules = reactive<FormRules>({
     name: [
@@ -199,6 +215,8 @@
     ],
   });
 
+  const { data: provinceList } = useRequest(getProvinceList);
+
   //增加空的场景&模板
   const addChange = () => {
     ruleForm.selectItems!.push({
@@ -219,6 +237,7 @@
       ruleForm.remark = data.remark;
       ruleForm.latitude = data.latitude;
       ruleForm.longitude = data.longitude;
+      ruleForm.regionCode = data.regionCode;
     },
     { immediate: true },
   );
@@ -287,6 +306,7 @@
           remark: ruleForm.remark,
           longitude: ruleForm.longitude,
           latitude: ruleForm.latitude,
+          regionCode: ruleForm.regionCode,
         };
         //提交数据并重置关闭el-draw
         addCompany(newComData)
@@ -355,6 +375,7 @@
         remark: ruleForm.remark,
         longitude: ruleForm.longitude,
         latitude: ruleForm.latitude,
+        regionCode: ruleForm.regionCode,
       };
       // 编辑上传
       editCompany(editNewCom)
@@ -382,6 +403,7 @@
     ruleForm.code = '';
     ruleForm.addEnable = ENABLED.TRUE;
     ruleForm.selectItems = [{ tag: '', template: '' }];
+    ruleForm.regionCode = '';
   };
 </script>
 

+ 1 - 0
src/views/system-config/scene-manage/SceneManage.vue

@@ -330,6 +330,7 @@
         remark: editedItem.value?.remark,
         longitude: editedItem.value?.longitude!,
         latitude: editedItem.value?.latitude!,
+        regionCode: editedItem.value?.regionCode,
       };
     } else if (level.value === DATA_LEVEL.workshop && 'companyId' in editedItem.value!) {
       showDrawer.value = DrawerType.workshop;

+ 11 - 10
src/views/system-config/scene-manage/use-method.tsx

@@ -5,7 +5,9 @@ import {
   LabelModuleListType,
 } from '@/api/scene/sceneOperate';
 import { WorkShopTempleteType } from '@/api/scene/secene-templet';
-// skyeyev3pc/#/company?companyId=117&labelId=2
+import { useGlobSetting } from '@/hooks/setting';
+
+const { appPCUrl } = useGlobSetting()
 
 export const colomns = [
   { label: '场景名称', prop: 'name', width: 300 },
@@ -18,7 +20,7 @@ export const colomns = [
       if (!row.parent && row.labelList?.[0]?.id) {
         return (
           <a
-            href={`/skyeyev3pc/#/company?companyId=${row.id}&labelId=${row.labelList[0]?.id}`}
+            href={`${appPCUrl}#/company?companyId=${row.id}&labelId=${row.labelList[0]?.id}`}
             target="_blank"
           >
             公司预览
@@ -26,7 +28,7 @@ export const colomns = [
         );
       } else if (row.parent && !row.parent.parent) {
         return (
-          <a href={`/skyeyev3pc/#/shop?id=${row.id}`} target="_blank">
+          <a href={`${appPCUrl}#/shop?id=${row.id}`} target="_blank">
             车间预览
           </a>
         );
@@ -37,8 +39,8 @@ export const colomns = [
 
 interface DataSourceUser
   extends SceneListType<
-    GetListWorkshop<WorkspaceAddDatas, WorkShopTempleteType>,
-    LabelModuleListType
+  GetListWorkshop<WorkspaceAddDatas, WorkShopTempleteType>,
+  LabelModuleListType
   > {
   parent?: SceneListType<
     GetListWorkshop<WorkspaceAddDatas, WorkShopTempleteType>,
@@ -151,22 +153,21 @@ export const findItemLevel = (data, targetId, targetName, currentLevel = 0) => {
 
 
 //得到parent
-export const getParent = (data:DataSourceUser[], targetCode:string) => {
+export const getParent = (data: DataSourceUser[], targetCode: string) => {
+
 
-  
-  
   //let parentNode = {} as DataSourceUser
   for (let i = 0; i < data.length; i++) {
     const item = data[i];
 
-    if (item.code === targetCode ) {
+    if (item.code === targetCode) {
       // parentNode = item
       return item
     }
 
     if (item.children && item.children.length > 0) {
       const foundItem = getParent(item.children, targetCode);
-      if(foundItem){
+      if (foundItem) {
         return foundItem
       }
     }

+ 2 - 2
src/views/system/region/region.vue

@@ -66,7 +66,7 @@
   import { BasicTable, TableAction, BasicColumn } from '@/components/Table';
   import { FileAddOutlined, SearchOutlined } from '@vicons/antd';
   import { columns } from './columns';
-  import { provinceList, parentList, regionTreeList, deleteRegion } from '@/api/system/region';
+  import { getProvinceList, parentList, regionTreeList, deleteRegion } from '@/api/system/region';
   import CreateDrawer from './CreateDrawer.vue';
 
   const message = ElMessage;
@@ -112,7 +112,7 @@
       ...unref(params),
       ...res,
     };
-    const tableData = await provinceList(_params);
+    const tableData = await getProvinceList(_params);
     tableData.forEach((item) => {
       item.hasChildren = true;
     });

+ 4 - 0
types/config.d.ts

@@ -83,6 +83,8 @@ export interface GlobEnvConfig {
   VITE_GLOB_SKYEYE_WORLD: string;
   /** PC模块登录地址 */
   VITE_GLOB_APP_PC: string;
+
+  VITE_GLOB_TENANT_CODE: string;
 }
 export interface GlobConfig {
   // 标题
@@ -99,4 +101,6 @@ export interface GlobConfig {
   prodMock: boolean;
   // 图片访问地址
   imgUrl: string | undefined;
+
+  tenantCode: string;
 }