From 3aedad63dd01f1fc5154cb520af32edab967d6e0 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周一, 12 5月 2025 09:15:26 +0800
Subject: [PATCH] Merge branch 'master' of http://222.71.245.114:9086/r/HIA24016N_PipeLineDemo

---
 PipeLineLems/pipelinelems_web/src/widgets/OrderManagement-main/hooks/permission.ts |   99 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 99 insertions(+), 0 deletions(-)

diff --git a/PipeLineLems/pipelinelems_web/src/widgets/OrderManagement-main/hooks/permission.ts b/PipeLineLems/pipelinelems_web/src/widgets/OrderManagement-main/hooks/permission.ts
new file mode 100644
index 0000000..002bd30
--- /dev/null
+++ b/PipeLineLems/pipelinelems_web/src/widgets/OrderManagement-main/hooks/permission.ts
@@ -0,0 +1,99 @@
+import { reactive, ref, onUnmounted } from 'vue'
+import sdk from 'sdk'
+import { ElMessage } from 'element-plus'
+import { _t } from '../app'
+import { get } from 'lodash'
+
+const subs = [
+  {
+    id: 'DefectList',
+    name: '缂洪櫡娓呭崟',
+  },
+  {
+    id: 'ToDoUnqualified',
+    name: '寰呭姙涓嶈壇鍝�',
+  },
+  {
+    id: 'JudgmentRecord',
+    name: '浜у搧鍒ゅ畾璁板綍',
+  },
+  {
+    id: 'ToDoUnqualified-judgment',
+    name: '寰呭姙涓嶈壇鍝�-鍒ゅ畾',
+  },
+  {
+    id: 'ToDoUnqualified-configuration',
+    name: '寰呭姙涓嶈壇鍝�-閰嶇疆',
+  },
+  {
+    id: 'JudgmentRecord-export',
+    name: '浜у搧鍒ゅ畾璁板綍-瀵煎嚭',
+  },
+]
+const subsType = subs.map((e) => e.id)
+export const permissionCodes = ref<any[]>([])
+export const initPermission = (props: any) => {
+  // // 鍓嶇椤甸潰鏉冮檺璁剧疆
+  const node = reactive(props.node)
+
+  let permissions =
+    process.env.NODE_ENV === 'development'
+      ? []
+      : window.app.current.project?.current.page?.permissions
+  const permission = {
+    id: node?.id,
+    name: node?.name,
+    subs,
+  }
+  const children = get(
+    window.app.current.project?.current.page,
+    'body.children',
+    []
+  )
+  // permissions.push(permission)
+  const childrenIds = children.map((item: any) => item.id)
+  permissions = permissions.filter((item: any) => childrenIds.includes(item.id))
+
+  if (
+    permissions.every((item: typeof permission) => item.id !== permission.id)
+  ) {
+    permissions.push(permission)
+  }
+
+  if (childrenIds.includes(permission.id)) {
+    const currentPermission = permissions.find(
+      (item: typeof permission) => item.id === permission.id
+    )
+    currentPermission && Object.assign(currentPermission, permission)
+  }
+  const userInfo = sdk.userInfo
+
+  // mock data
+  if (process.env.NODE_ENV === 'development') {
+    userInfo.permissions = {
+      all: true,
+      widgets: [],
+    }
+  }
+
+  if (userInfo.permissions.all) {
+    permissionCodes.value = permission.subs.map((item) => item.id)
+  } else {
+    permissionCodes.value = userInfo.permissions.widgets
+  }
+
+  onUnmounted(() => {
+    const index = permissions.findIndex((f: any) => f.id === node?.id)
+    if (index !== -1) {
+      permissions.splice(index, 1)
+    }
+  })
+}
+
+export const isHasPermission = (code: (typeof subsType)[number]) => {
+  if (!permissionCodes.value.includes(code)) {
+    ElMessage.warning(_t('鐢ㄦ埛娌℃湁璇ユ潈闄愶紒'))
+    return false
+  }
+  return true
+}

--
Gitblit v1.9.3