一单四制优化及加入工作流
This commit is contained in:
File diff suppressed because one or more lines are too long
1
unpackage/dist/dev/.sourcemap/mp-weixin/components/flow/FlowAssigneePickerPopup.js.map
vendored
Normal file
1
unpackage/dist/dev/.sourcemap/mp-weixin/components/flow/FlowAssigneePickerPopup.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1
unpackage/dist/dev/.sourcemap/mp-weixin/components/flow/FlowAssigneeTree.js.map
vendored
Normal file
1
unpackage/dist/dev/.sourcemap/mp-weixin/components/flow/FlowAssigneeTree.js.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"FlowAssigneeTree.js","sources":["components/flow/FlowAssigneeTree.vue","F:/software/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RTovaGV4aWV5dW4vVGhyZWVDaGVja3NPbmVFeHBvc3VyZV9wbGF0Zm9ybS8xMi4wN2Nob25ncWl4aW5kZS_kuInmn6XkuIDmm53lhYnlsI_nqIvluo8vdGhyZWVvbmVjaGVja1_lsI_nqIvluo8vY29tcG9uZW50cy9mbG93L0Zsb3dBc3NpZ25lZVRyZWUudnVl"],"sourcesContent":["<template>\r\n\t<view class=\"assignee-tree\">\r\n\t\t<template v-for=\"row in flatRows\" :key=\"row.key\">\r\n\t\t\t<view\r\n\t\t\t\tv-if=\"row.type === 'dept'\"\r\n\t\t\t\tclass=\"dept-node\"\r\n\t\t\t\t:style=\"{ paddingLeft: `${row.level * 24 + 20}rpx` }\"\r\n\t\t\t>\r\n\t\t\t\t<text class=\"dept-name\">{{ row.deptName }}</text>\r\n\t\t\t</view>\r\n\t\t\t<view\r\n\t\t\t\tv-else\r\n\t\t\t\tclass=\"user-item\"\r\n\t\t\t\t:class=\"{ active: String(selectedIdentityId) === String(resolveAssigneeIdentityId(row.user)) }\"\r\n\t\t\t\t:style=\"{ paddingLeft: `${row.level * 24 + 20}rpx` }\"\r\n\t\t\t\t@click=\"handleSelect(row.user)\"\r\n\t\t\t>\r\n\t\t\t\t<text class=\"user-item-text\">{{ formatAssigneeDisplayName(row.user) }}</text>\r\n\t\t\t\t<text\r\n\t\t\t\t\tv-if=\"String(selectedIdentityId) === String(resolveAssigneeIdentityId(row.user))\"\r\n\t\t\t\t\tclass=\"cuIcon-check text-blue\"\r\n\t\t\t\t></text>\r\n\t\t\t</view>\r\n\t\t</template>\r\n\t</view>\r\n</template>\r\n\r\n<script setup>\r\nimport { computed } from 'vue';\r\nimport {\r\n\tflattenApproverDeptTree,\r\n\tformatAssigneeDisplayName,\r\n\tresolveAssigneeIdentityId\r\n} from './flowAssigneeUtils.js';\r\n\r\nconst props = defineProps({\r\n\tdepts: {\r\n\t\ttype: Array,\r\n\t\tdefault: () => []\r\n\t},\r\n\tselectedIdentityId: {\r\n\t\ttype: String,\r\n\t\tdefault: ''\r\n\t}\r\n});\r\n\r\nconst emit = defineEmits(['select']);\r\n\r\nconst flatRows = computed(() => flattenApproverDeptTree(props.depts));\r\n\r\nconst handleSelect = (user) => {\r\n\temit('select', user);\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.dept-node {\r\n\tpadding: 20rpx 20rpx 12rpx;\r\n\tfont-size: 26rpx;\r\n\tcolor: #909399;\r\n\tline-height: 1.4;\r\n}\r\n\r\n.dept-name {\r\n\tfont-weight: 600;\r\n}\r\n\r\n.user-item {\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\tjustify-content: space-between;\r\n\tpadding: 24rpx 20rpx;\r\n\tborder-bottom: 1rpx solid #f5f5f5;\r\n\r\n\t&.active {\r\n\t\t.user-item-text {\r\n\t\t\tcolor: #2667E9;\r\n\t\t\tfont-weight: 600;\r\n\t\t}\r\n\t}\r\n\r\n\t.user-item-text {\r\n\t\tflex: 1;\r\n\t\tfont-size: 28rpx;\r\n\t\tcolor: #333;\r\n\t}\r\n}\r\n</style>\r\n","import Component from 'E:/hexieyun/ThreeChecksOneExposure_platform/12.07chongqixinde/三查一曝光小程序/threeonecheck_小程序/components/flow/FlowAssigneeTree.vue'\nwx.createComponent(Component)"],"names":["computed","flattenApproverDeptTree"],"mappings":";;;;;;;;;;;;;;;;;AAmCA,UAAM,QAAQ;AAWd,UAAM,OAAO;AAEb,UAAM,WAAWA,cAAQ,SAAC,MAAMC,kCAAAA,wBAAwB,MAAM,KAAK,CAAC;AAEpE,UAAM,eAAe,CAAC,SAAS;AAC9B,WAAK,UAAU,IAAI;AAAA,IACpB;;;;;;;;;;;;;;;;;;;;;;;;;;ACnDA,GAAG,gBAAgB,SAAS;"}
|
||||
1
unpackage/dist/dev/.sourcemap/mp-weixin/components/flow/flowAssigneeUtils.js.map
vendored
Normal file
1
unpackage/dist/dev/.sourcemap/mp-weixin/components/flow/flowAssigneeUtils.js.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"flowAssigneeUtils.js","sources":["components/flow/flowAssigneeUtils.js"],"sourcesContent":["export const resolveAssigneeIdentityId = (user) => {\r\n\tif (!user) return '';\r\n\tconst id = user.identityId ?? user.userIdentityId ?? user.userId ?? '';\r\n\treturn id === '' || id == null ? '' : String(id);\r\n};\r\n\r\nexport const getAssigneeItemKey = (user) => {\r\n\tconst identityId = resolveAssigneeIdentityId(user);\r\n\tif (identityId) return `identity-${identityId}`;\r\n\treturn `user-${user.userId || user.nickName || ''}`;\r\n};\r\n\r\nexport const formatAssigneeDisplayName = (user) => {\r\n\tif (!user) return '';\r\n\tif (user.identityName) {\r\n\t\treturn `${user.nickName || user.userName || ''}_${user.identityName}`;\r\n\t}\r\n\tif (user.postName) {\r\n\t\treturn `${user.nickName || user.userName || ''}_${user.postName}`;\r\n\t}\r\n\treturn user.nickName || user.userName || user.name || '未知人员';\r\n};\r\n\r\nexport const normalizeApproverDeptTree = (data) => {\r\n\tif (!data) return [];\r\n\tif (Array.isArray(data)) return data;\r\n\tif (Array.isArray(data.records)) return data.records;\r\n\tif (Array.isArray(data.list)) return data.list;\r\n\treturn [];\r\n};\r\n\r\nexport const findAssigneeUserInDeptTree = (depts, identityId) => {\r\n\tif (!identityId || !Array.isArray(depts)) return null;\r\n\tfor (const dept of depts) {\r\n\t\tconst user = (dept.users || []).find(\r\n\t\t\t(item) => String(resolveAssigneeIdentityId(item)) === String(identityId)\r\n\t\t);\r\n\t\tif (user) return user;\r\n\t\tif (dept.children?.length) {\r\n\t\t\tconst found = findAssigneeUserInDeptTree(dept.children, identityId);\r\n\t\t\tif (found) return found;\r\n\t\t}\r\n\t}\r\n\treturn null;\r\n};\r\n\r\n/** 将部门树拍平为可渲染行(部门标题 + 人员),避免小程序递归组件不展示子部门 */\r\nexport const flattenApproverDeptTree = (depts, level = 0) => {\r\n\tconst rows = [];\r\n\tif (!Array.isArray(depts)) return rows;\r\n\tfor (const dept of depts) {\r\n\t\trows.push({\r\n\t\t\ttype: 'dept',\r\n\t\t\tkey: `dept-${dept.deptId ?? dept.deptName ?? level}`,\r\n\t\t\tdeptName: dept.deptName || '',\r\n\t\t\tlevel\r\n\t\t});\r\n\t\tfor (const user of dept.users || []) {\r\n\t\t\trows.push({\r\n\t\t\t\ttype: 'user',\r\n\t\t\t\tkey: getAssigneeItemKey(user),\r\n\t\t\t\tuser,\r\n\t\t\t\tlevel: level + 1\r\n\t\t\t});\r\n\t\t}\r\n\t\tif (dept.children?.length) {\r\n\t\t\trows.push(...flattenApproverDeptTree(dept.children, level + 1));\r\n\t\t}\r\n\t}\r\n\treturn rows;\r\n};\r\n"],"names":[],"mappings":";AAAY,MAAC,4BAA4B,CAAC,SAAS;AAClD,MAAI,CAAC;AAAM,WAAO;AAClB,QAAM,KAAK,KAAK,cAAc,KAAK,kBAAkB,KAAK,UAAU;AACpE,SAAO,OAAO,MAAM,MAAM,OAAO,KAAK,OAAO,EAAE;AAChD;AAEO,MAAM,qBAAqB,CAAC,SAAS;AAC3C,QAAM,aAAa,0BAA0B,IAAI;AACjD,MAAI;AAAY,WAAO,YAAY,UAAU;AAC7C,SAAO,QAAQ,KAAK,UAAU,KAAK,YAAY,EAAE;AAClD;AAEY,MAAC,4BAA4B,CAAC,SAAS;AAClD,MAAI,CAAC;AAAM,WAAO;AAClB,MAAI,KAAK,cAAc;AACtB,WAAO,GAAG,KAAK,YAAY,KAAK,YAAY,EAAE,IAAI,KAAK,YAAY;AAAA,EACnE;AACD,MAAI,KAAK,UAAU;AAClB,WAAO,GAAG,KAAK,YAAY,KAAK,YAAY,EAAE,IAAI,KAAK,QAAQ;AAAA,EAC/D;AACD,SAAO,KAAK,YAAY,KAAK,YAAY,KAAK,QAAQ;AACvD;AAEY,MAAC,4BAA4B,CAAC,SAAS;AAClD,MAAI,CAAC;AAAM,WAAO;AAClB,MAAI,MAAM,QAAQ,IAAI;AAAG,WAAO;AAChC,MAAI,MAAM,QAAQ,KAAK,OAAO;AAAG,WAAO,KAAK;AAC7C,MAAI,MAAM,QAAQ,KAAK,IAAI;AAAG,WAAO,KAAK;AAC1C,SAAO;AACR;AAEY,MAAC,6BAA6B,CAAC,OAAO,eAAe;;AAChE,MAAI,CAAC,cAAc,CAAC,MAAM,QAAQ,KAAK;AAAG,WAAO;AACjD,aAAW,QAAQ,OAAO;AACzB,UAAM,QAAQ,KAAK,SAAS,CAAE,GAAE;AAAA,MAC/B,CAAC,SAAS,OAAO,0BAA0B,IAAI,CAAC,MAAM,OAAO,UAAU;AAAA,IAC1E;AACE,QAAI;AAAM,aAAO;AACjB,SAAI,UAAK,aAAL,mBAAe,QAAQ;AAC1B,YAAM,QAAQ,2BAA2B,KAAK,UAAU,UAAU;AAClE,UAAI;AAAO,eAAO;AAAA,IAClB;AAAA,EACD;AACD,SAAO;AACR;AAGY,MAAC,0BAA0B,CAAC,OAAO,QAAQ,MAAM;;AAC5D,QAAM,OAAO,CAAA;AACb,MAAI,CAAC,MAAM,QAAQ,KAAK;AAAG,WAAO;AAClC,aAAW,QAAQ,OAAO;AACzB,SAAK,KAAK;AAAA,MACT,MAAM;AAAA,MACN,KAAK,QAAQ,KAAK,UAAU,KAAK,YAAY,KAAK;AAAA,MAClD,UAAU,KAAK,YAAY;AAAA,MAC3B;AAAA,IACH,CAAG;AACD,eAAW,QAAQ,KAAK,SAAS,CAAA,GAAI;AACpC,WAAK,KAAK;AAAA,QACT,MAAM;AAAA,QACN,KAAK,mBAAmB,IAAI;AAAA,QAC5B;AAAA,QACA,OAAO,QAAQ;AAAA,MACnB,CAAI;AAAA,IACD;AACD,SAAI,UAAK,aAAL,mBAAe,QAAQ;AAC1B,WAAK,KAAK,GAAG,wBAAwB,KAAK,UAAU,QAAQ,CAAC,CAAC;AAAA,IAC9D;AAAA,EACD;AACD,SAAO;AACR;;;;;;"}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
unpackage/dist/dev/.sourcemap/mp-weixin/components/hazardDetail/processChain.js.map
vendored
Normal file
1
unpackage/dist/dev/.sourcemap/mp-weixin/components/hazardDetail/processChain.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1
unpackage/dist/dev/.sourcemap/mp-weixin/components/hazardDetail/processChainLabels.js.map
vendored
Normal file
1
unpackage/dist/dev/.sourcemap/mp-weixin/components/hazardDetail/processChainLabels.js.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"processChainLabels.js","sources":["components/hazardDetail/processChainLabels.js"],"sourcesContent":["export const CHAIN_LABELS = {\r\n\tloading: '加载中...',\r\n\tempty: '暂无流程记录',\r\n\tpersonnelSuffix: '人员:',\r\n\thazardCode: '隐患编号',\r\n\thazardTitle: '隐患标题',\r\n\tcheckSource: '检查形式',\r\n\thazardSource: '隐患来源',\r\n\thazardArea: '隐患区域',\r\n\taddress: '位置描述',\r\n\thazardLevel: '隐患等级',\r\n\thazardTag: '隐患标签',\r\n\tdescription: '问题描述',\r\n\thazardAttachments: '隐患附件',\r\n\tlegalBasis: '参考法规',\r\n\tassigneeName: '指定整改责任人',\r\n\tassignDeadline: '指定整改截至日期',\r\n\tassignStatus: '交办状态',\r\n\trectifyStatus: '整改状态',\r\n\trectifyPlan: '整改方案',\r\n\trectifyResult: '整改结果',\r\n\trectifyMeasures: '整改措施',\r\n\tcontrolMeasures: '管控措施',\r\n\trectifierName: '整改责任人',\r\n\tmanagerNames: '管理人员',\r\n\tmemberNames: '整改成员',\r\n\tplanCost: '预计费用',\r\n\tactualCost: '实际费用',\r\n\trectifyAttachments: '整改附件',\r\n\trectifySign: '整改签字',\r\n\tverifyResult: '验收结果',\r\n\tpass: '通过',\r\n\tverifyRemark: '验收备注',\r\n\tverifyAttachments: '验收附件',\r\n\tverifySign: '验收签字',\r\n\twriteoffDeadline: '整改时限',\r\n\tresponsibleDept: '治理责任单位',\r\n\tresponsiblePerson: '主要负责人',\r\n\tmainTreatment: '主要治理内容',\r\n\ttreatmentResult: '治理完成内容',\r\n\tselfVerify: '自行验收情况',\r\n\tapplySign: '申请签字',\r\n\tapprovalOpinion: '审批意见',\r\n\tapprovalComment: '意见说明',\r\n\tsmsReminder: '短信提醒',\r\n\tyes: '是',\r\n\tno: '否',\r\n\tapprovalSign: '审批签字',\r\n\tattachmentFallback: '附件',\r\n\tyuan: '元'\r\n};\r\n\r\nexport const LEVEL_NAME_CLASS_MAP = {\r\n\t一般: 'level-normal',\r\n\t一般隐患: 'level-normal',\r\n\t重大: 'level-major',\r\n\t重大隐患: 'level-major'\r\n};\r\n"],"names":[],"mappings":";AAAY,MAAC,eAAe;AAAA,EAC3B,SAAS;AAAA,EACT,OAAO;AAAA,EACP,iBAAiB;AAAA,EACjB,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,aAAa;AAAA,EACb,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,aAAa;AAAA,EACb,WAAW;AAAA,EACX,aAAa;AAAA,EACb,mBAAmB;AAAA,EACnB,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,gBAAgB;AAAA,EAChB,cAAc;AAAA,EACd,eAAe;AAAA,EACf,aAAa;AAAA,EACb,eAAe;AAAA,EACf,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf,cAAc;AAAA,EACd,aAAa;AAAA,EACb,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,oBAAoB;AAAA,EACpB,aAAa;AAAA,EACb,cAAc;AAAA,EACd,MAAM;AAAA,EACN,cAAc;AAAA,EACd,mBAAmB;AAAA,EACnB,YAAY;AAAA,EACZ,kBAAkB;AAAA,EAClB,iBAAiB;AAAA,EACjB,mBAAmB;AAAA,EACnB,eAAe;AAAA,EACf,iBAAiB;AAAA,EACjB,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,aAAa;AAAA,EACb,KAAK;AAAA,EACL,IAAI;AAAA,EACJ,cAAc;AAAA,EACd,oBAAoB;AAAA,EACpB,MAAM;AACP;AAEY,MAAC,uBAAuB;AAAA,EACnC,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,IAAI;AAAA,EACJ,MAAM;AACP;;;"}
|
||||
1
unpackage/dist/dev/.sourcemap/mp-weixin/components/hazardDetail/useProcessChainScroll.js.map
vendored
Normal file
1
unpackage/dist/dev/.sourcemap/mp-weixin/components/hazardDetail/useProcessChainScroll.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
unpackage/dist/dev/.sourcemap/mp-weixin/pages/closeout/apply.js.map
vendored
Normal file
1
unpackage/dist/dev/.sourcemap/mp-weixin/pages/closeout/apply.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1
unpackage/dist/dev/.sourcemap/mp-weixin/pages/closeout/approval.js.map
vendored
Normal file
1
unpackage/dist/dev/.sourcemap/mp-weixin/pages/closeout/approval.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1
unpackage/dist/dev/.sourcemap/mp-weixin/pages/closeout/leader-approval.js.map
vendored
Normal file
1
unpackage/dist/dev/.sourcemap/mp-weixin/pages/closeout/leader-approval.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
unpackage/dist/dev/.sourcemap/mp-weixin/pages/hiddendanger/acceptance-approval.js.map
vendored
Normal file
1
unpackage/dist/dev/.sourcemap/mp-weixin/pages/hiddendanger/acceptance-approval.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
unpackage/dist/dev/.sourcemap/mp-weixin/pages/hiddendanger/process-chain.js.map
vendored
Normal file
1
unpackage/dist/dev/.sourcemap/mp-weixin/pages/hiddendanger/process-chain.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
unpackage/dist/dev/.sourcemap/mp-weixin/pages/personalcenter/identity.js.map
vendored
Normal file
1
unpackage/dist/dev/.sourcemap/mp-weixin/pages/personalcenter/identity.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
unpackage/dist/dev/.sourcemap/mp-weixin/request/identity.js.map
vendored
Normal file
1
unpackage/dist/dev/.sourcemap/mp-weixin/request/identity.js.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"identity.js","sources":["request/identity.js"],"sourcesContent":["import { requestAPI } from './request.js';\r\n\r\n/** 获取当前用户身份列表及当前生效身份 */\r\nexport function getMyIdentity() {\r\n\treturn requestAPI({\r\n\t\turl: '/system/identity/my',\r\n\t\tmethod: 'GET'\r\n\t});\r\n}\r\n\r\n/** 切换当前用户身份 */\r\nexport function switchIdentity(identityId) {\r\n\treturn requestAPI({\r\n\t\turl: '/system/identity/switch',\r\n\t\tmethod: 'POST',\r\n\t\tdata: { identityId }\r\n\t});\r\n}\r\n\r\n/** 设置默认身份 */\r\nexport function setDefaultIdentity(identityId) {\r\n\treturn requestAPI({\r\n\t\turl: `/system/identity/setDefault/${identityId}`,\r\n\t\tmethod: 'PUT'\r\n\t});\r\n}\r\n"],"names":["requestAPI"],"mappings":";;AAGO,SAAS,gBAAgB;AAC/B,SAAOA,2BAAW;AAAA,IACjB,KAAK;AAAA,IACL,QAAQ;AAAA,EACV,CAAE;AACF;AAGO,SAAS,eAAe,YAAY;AAC1C,SAAOA,2BAAW;AAAA,IACjB,KAAK;AAAA,IACL,QAAQ;AAAA,IACR,MAAM,EAAE,WAAY;AAAA,EACtB,CAAE;AACF;;;"}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
{"version":3,"file":"draftCache.js","sources":["utils/draftCache.js"],"sourcesContent":["/** 草稿 Storage 命名空间(统一 key 前缀) */\nexport const DRAFT_NS = {\n\tASSIGN: 'draft_assign',\n\tACCEPT: 'draft_accept',\n\tRECTIFY: 'draft_rectify',\n\tINSPECTION_RESULT: 'draft_inspection_result',\n\tINSPECTION_SHEET: 'draft_inspection_sheet',\n\tHAZARD_ADD: 'draft_hazard_add'\n};\n\n/**\n * 构建草稿 Storage key(与迁移前页面逻辑一致,保留空片段)\n * 例:draft_rectify_100_ 、draft_accept_\n * @param {string} namespace 命名空间,如 DRAFT_NS.ASSIGN\n * @param {...string|number} parts 业务 id 片段\n */\nexport function buildDraftKey(namespace, ...parts) {\n\treturn [namespace, ...parts.map((p) => String(p ?? ''))].join('_');\n}\n\n/** 迁移期 compact key(曾错误地 filter 掉空片段) */\nexport function buildDraftKeyCompact(namespace, ...parts) {\n\treturn [namespace, ...parts.map((p) => String(p ?? '')).filter(Boolean)].join('_');\n}\n\n/**\n * 读取草稿,支持回退到其它 key(迁移兼容)\n * @param {string} primaryKey\n * @param {string[]} [fallbackKeys]\n */\nexport function loadDraftWithFallback(primaryKey, fallbackKeys = []) {\n\tconst primary = loadDraft(primaryKey);\n\tif (primary) {\n\t\treturn { data: primary, key: primaryKey, fromFallback: false };\n\t}\n\n\tfor (const fallbackKey of fallbackKeys) {\n\t\tif (!fallbackKey || fallbackKey === primaryKey) continue;\n\t\tconst fallback = loadDraft(fallbackKey);\n\t\tif (fallback) {\n\t\t\treturn { data: fallback, key: primaryKey, fromFallback: true, fallbackKey };\n\t\t}\n\t}\n\n\treturn { data: null, key: primaryKey, fromFallback: false };\n}\n\n/**\n * 读取草稿\n * @param {string} key\n * @returns {Object|null}\n */\nexport function loadDraft(key) {\n\tif (!key) return null;\n\n\tconst raw = uni.getStorageSync(key);\n\tif (!raw) return null;\n\n\ttry {\n\t\treturn typeof raw === 'string' ? JSON.parse(raw) : raw;\n\t} catch (error) {\n\t\tconsole.error('[draftCache] 解析草稿失败:', key, error);\n\t\treturn null;\n\t}\n}\n\n/**\n * 写入草稿\n * @param {string} key\n * @param {Object} data\n */\nexport function saveDraftToStorage(key, data) {\n\tif (!key) return;\n\n\tuni.setStorageSync(\n\t\tkey,\n\t\tJSON.stringify({\n\t\t\t...data,\n\t\t\tupdatedAt: Date.now()\n\t\t})\n\t);\n}\n\n/**\n * 删除草稿\n * @param {string} key\n */\nexport function removeDraft(key) {\n\tif (!key) return;\n\tuni.removeStorageSync(key);\n}\n\n/** 默认:payload 中任一字段有值即视为有内容(忽略 updatedAt) */\nexport function defaultHasContent(payload) {\n\tif (!payload || typeof payload !== 'object') return false;\n\n\treturn Object.entries(payload).some(([key, value]) => {\n\t\tif (key === 'updatedAt') return false;\n\t\tif (Array.isArray(value)) return value.length > 0;\n\t\tif (value && typeof value === 'object') return Object.keys(value).length > 0;\n\t\treturn value !== '' && value != null;\n\t});\n}\n"],"names":["uni"],"mappings":";;AACY,MAAC,WAAW;AAAA,EACvB,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,mBAAmB;AAAA,EACnB,kBAAkB;AAAA,EAClB,YAAY;AACb;AAQO,SAAS,cAAc,cAAc,OAAO;AAClD,SAAO,CAAC,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,OAAO,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,GAAG;AAClE;AAGO,SAAS,qBAAqB,cAAc,OAAO;AACzD,SAAO,CAAC,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,OAAO,KAAK,EAAE,CAAC,EAAE,OAAO,OAAO,CAAC,EAAE,KAAK,GAAG;AAClF;AAOO,SAAS,sBAAsB,YAAY,eAAe,IAAI;AACpE,QAAM,UAAU,UAAU,UAAU;AACpC,MAAI,SAAS;AACZ,WAAO,EAAE,MAAM,SAAS,KAAK,YAAY,cAAc;EACvD;AAED,aAAW,eAAe,cAAc;AACvC,QAAI,CAAC,eAAe,gBAAgB;AAAY;AAChD,UAAM,WAAW,UAAU,WAAW;AACtC,QAAI,UAAU;AACb,aAAO,EAAE,MAAM,UAAU,KAAK,YAAY,cAAc,MAAM;IAC9D;AAAA,EACD;AAED,SAAO,EAAE,MAAM,MAAM,KAAK,YAAY,cAAc;AACrD;AAOO,SAAS,UAAU,KAAK;AAC9B,MAAI,CAAC;AAAK,WAAO;AAEjB,QAAM,MAAMA,cAAAA,MAAI,eAAe,GAAG;AAClC,MAAI,CAAC;AAAK,WAAO;AAEjB,MAAI;AACH,WAAO,OAAO,QAAQ,WAAW,KAAK,MAAM,GAAG,IAAI;AAAA,EACnD,SAAQ,OAAO;AACfA,kBAAc,MAAA,MAAA,SAAA,6BAAA,wBAAwB,KAAK,KAAK;AAChD,WAAO;AAAA,EACP;AACF;AAOO,SAAS,mBAAmB,KAAK,MAAM;AAC7C,MAAI,CAAC;AAAK;AAEVA,gBAAAA,MAAI;AAAA,IACH;AAAA,IACA,KAAK,UAAU;AAAA,MACd,GAAG;AAAA,MACH,WAAW,KAAK,IAAK;AAAA,IACxB,CAAG;AAAA,EACH;AACA;AAMO,SAAS,YAAY,KAAK;AAChC,MAAI,CAAC;AAAK;AACVA,sBAAI,kBAAkB,GAAG;AAC1B;AAGO,SAAS,kBAAkB,SAAS;AAC1C,MAAI,CAAC,WAAW,OAAO,YAAY;AAAU,WAAO;AAEpD,SAAO,OAAO,QAAQ,OAAO,EAAE,KAAK,CAAC,CAAC,KAAK,KAAK,MAAM;AACrD,QAAI,QAAQ;AAAa,aAAO;AAChC,QAAI,MAAM,QAAQ,KAAK;AAAG,aAAO,MAAM,SAAS;AAChD,QAAI,SAAS,OAAO,UAAU;AAAU,aAAO,OAAO,KAAK,KAAK,EAAE,SAAS;AAC3E,WAAO,UAAU,MAAM,SAAS;AAAA,EAClC,CAAE;AACF;;;;;;;;"}
|
||||
{"version":3,"file":"draftCache.js","sources":["utils/draftCache.js"],"sourcesContent":["/** 草稿 Storage 命名空间(统一 key 前缀) */\nexport const DRAFT_NS = {\n\tASSIGN: 'draft_assign',\n\tACCEPT: 'draft_accept',\n\tACCEPT_APPROVAL: 'draft_accept_approval',\n\tRECTIFY: 'draft_rectify',\n\tINSPECTION_RESULT: 'draft_inspection_result',\n\tINSPECTION_SHEET: 'draft_inspection_sheet',\n\tHAZARD_ADD: 'draft_hazard_add'\n};\n\n/**\n * 构建草稿 Storage key(与迁移前页面逻辑一致,保留空片段)\n * 例:draft_rectify_100_ 、draft_accept_\n * @param {string} namespace 命名空间,如 DRAFT_NS.ASSIGN\n * @param {...string|number} parts 业务 id 片段\n */\nexport function buildDraftKey(namespace, ...parts) {\n\treturn [namespace, ...parts.map((p) => String(p ?? ''))].join('_');\n}\n\n/** 迁移期 compact key(曾错误地 filter 掉空片段) */\nexport function buildDraftKeyCompact(namespace, ...parts) {\n\treturn [namespace, ...parts.map((p) => String(p ?? '')).filter(Boolean)].join('_');\n}\n\n/**\n * 读取草稿,支持回退到其它 key(迁移兼容)\n * @param {string} primaryKey\n * @param {string[]} [fallbackKeys]\n */\nexport function loadDraftWithFallback(primaryKey, fallbackKeys = []) {\n\tconst primary = loadDraft(primaryKey);\n\tif (primary) {\n\t\treturn { data: primary, key: primaryKey, fromFallback: false };\n\t}\n\n\tfor (const fallbackKey of fallbackKeys) {\n\t\tif (!fallbackKey || fallbackKey === primaryKey) continue;\n\t\tconst fallback = loadDraft(fallbackKey);\n\t\tif (fallback) {\n\t\t\treturn { data: fallback, key: primaryKey, fromFallback: true, fallbackKey };\n\t\t}\n\t}\n\n\treturn { data: null, key: primaryKey, fromFallback: false };\n}\n\n/**\n * 读取草稿\n * @param {string} key\n * @returns {Object|null}\n */\nexport function loadDraft(key) {\n\tif (!key) return null;\n\n\tconst raw = uni.getStorageSync(key);\n\tif (!raw) return null;\n\n\ttry {\n\t\treturn typeof raw === 'string' ? JSON.parse(raw) : raw;\n\t} catch (error) {\n\t\tconsole.error('[draftCache] 解析草稿失败:', key, error);\n\t\treturn null;\n\t}\n}\n\n/**\n * 写入草稿\n * @param {string} key\n * @param {Object} data\n */\nexport function saveDraftToStorage(key, data) {\n\tif (!key) return;\n\n\tuni.setStorageSync(\n\t\tkey,\n\t\tJSON.stringify({\n\t\t\t...data,\n\t\t\tupdatedAt: Date.now()\n\t\t})\n\t);\n}\n\n/**\n * 删除草稿\n * @param {string} key\n */\nexport function removeDraft(key) {\n\tif (!key) return;\n\tuni.removeStorageSync(key);\n}\n\n/** 默认:payload 中任一字段有值即视为有内容(忽略 updatedAt) */\nexport function defaultHasContent(payload) {\n\tif (!payload || typeof payload !== 'object') return false;\n\n\treturn Object.entries(payload).some(([key, value]) => {\n\t\tif (key === 'updatedAt') return false;\n\t\tif (Array.isArray(value)) return value.length > 0;\n\t\tif (value && typeof value === 'object') return Object.keys(value).length > 0;\n\t\treturn value !== '' && value != null;\n\t});\n}\n"],"names":["uni"],"mappings":";;AACY,MAAC,WAAW;AAAA,EACvB,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,iBAAiB;AAAA,EACjB,SAAS;AAAA,EACT,mBAAmB;AAAA,EACnB,kBAAkB;AAAA,EAClB,YAAY;AACb;AAQO,SAAS,cAAc,cAAc,OAAO;AAClD,SAAO,CAAC,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,OAAO,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,GAAG;AAClE;AAGO,SAAS,qBAAqB,cAAc,OAAO;AACzD,SAAO,CAAC,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,OAAO,KAAK,EAAE,CAAC,EAAE,OAAO,OAAO,CAAC,EAAE,KAAK,GAAG;AAClF;AAOO,SAAS,sBAAsB,YAAY,eAAe,IAAI;AACpE,QAAM,UAAU,UAAU,UAAU;AACpC,MAAI,SAAS;AACZ,WAAO,EAAE,MAAM,SAAS,KAAK,YAAY,cAAc;EACvD;AAED,aAAW,eAAe,cAAc;AACvC,QAAI,CAAC,eAAe,gBAAgB;AAAY;AAChD,UAAM,WAAW,UAAU,WAAW;AACtC,QAAI,UAAU;AACb,aAAO,EAAE,MAAM,UAAU,KAAK,YAAY,cAAc,MAAM;IAC9D;AAAA,EACD;AAED,SAAO,EAAE,MAAM,MAAM,KAAK,YAAY,cAAc;AACrD;AAOO,SAAS,UAAU,KAAK;AAC9B,MAAI,CAAC;AAAK,WAAO;AAEjB,QAAM,MAAMA,cAAAA,MAAI,eAAe,GAAG;AAClC,MAAI,CAAC;AAAK,WAAO;AAEjB,MAAI;AACH,WAAO,OAAO,QAAQ,WAAW,KAAK,MAAM,GAAG,IAAI;AAAA,EACnD,SAAQ,OAAO;AACfA,kBAAc,MAAA,MAAA,SAAA,6BAAA,wBAAwB,KAAK,KAAK;AAChD,WAAO;AAAA,EACP;AACF;AAOO,SAAS,mBAAmB,KAAK,MAAM;AAC7C,MAAI,CAAC;AAAK;AAEVA,gBAAAA,MAAI;AAAA,IACH;AAAA,IACA,KAAK,UAAU;AAAA,MACd,GAAG;AAAA,MACH,WAAW,KAAK,IAAK;AAAA,IACxB,CAAG;AAAA,EACH;AACA;AAMO,SAAS,YAAY,KAAK;AAChC,MAAI,CAAC;AAAK;AACVA,sBAAI,kBAAkB,GAAG;AAC1B;AAGO,SAAS,kBAAkB,SAAS;AAC1C,MAAI,CAAC,WAAW,OAAO,YAAY;AAAU,WAAO;AAEpD,SAAO,OAAO,QAAQ,OAAO,EAAE,KAAK,CAAC,CAAC,KAAK,KAAK,MAAM;AACrD,QAAI,QAAQ;AAAa,aAAO;AAChC,QAAI,MAAM,QAAQ,KAAK;AAAG,aAAO,MAAM,SAAS;AAChD,QAAI,SAAS,OAAO,UAAU;AAAU,aAAO,OAAO,KAAK,KAAK,EAAE,SAAS;AAC3E,WAAO,UAAU,MAAM,SAAS;AAAA,EAClC,CAAE;AACF;;;;;;;;"}
|
||||
1
unpackage/dist/dev/.sourcemap/mp-weixin/utils/hazardNav.js.map
vendored
Normal file
1
unpackage/dist/dev/.sourcemap/mp-weixin/utils/hazardNav.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1
unpackage/dist/dev/.sourcemap/mp-weixin/utils/identitySwitch.js.map
vendored
Normal file
1
unpackage/dist/dev/.sourcemap/mp-weixin/utils/identitySwitch.js.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"identitySwitch.js","sources":["utils/identitySwitch.js"],"sourcesContent":["import { switchIdentity } from '@/request/identity.js';\r\nimport { getProfileDetail } from '@/request/three_one_api/info.js';\r\nimport { saveUserInfoToStorage } from '@/utils/userInfo.js';\r\n\r\nfunction unwrapPayload(res) {\r\n\tif (!res) return {};\r\n\tconst data = res.data;\r\n\tif (data && typeof data === 'object' && (\r\n\t\tdata.token ||\r\n\t\tdata.identities ||\r\n\t\tdata.currentIdentity ||\r\n\t\tdata.roles\r\n\t)) {\r\n\t\treturn data;\r\n\t}\r\n\treturn res;\r\n}\r\n\r\n/** 根据个人信息接口刷新本地 userInfo */\r\nexport async function refreshUserInfoStorage() {\r\n\tconst res = await getProfileDetail();\r\n\tif (res.code === 0 && res.data) {\r\n\t\treturn saveUserInfoToStorage(res.data);\r\n\t}\r\n\treturn null;\r\n}\r\n\r\n/** 执行身份切换:更新 token,再通过 profile 接口刷新 userInfo */\r\nexport async function performIdentitySwitch(identityId) {\r\n\tconst res = await switchIdentity(identityId);\r\n\tconst payload = unwrapPayload(res);\r\n\r\n\tif (payload.token) {\r\n\t\tuni.setStorageSync('token', payload.token);\r\n\t}\r\n\r\n\tif (payload.currentIdentity) {\r\n\t\tuni.setStorageSync('currentIdentity', JSON.stringify(payload.currentIdentity));\r\n\t}\r\n\r\n\tawait refreshUserInfoStorage();\r\n\treturn payload;\r\n}\r\n\r\n/** 切换成功后重启到首页,清空页面栈 */\r\nexport function reLaunchAfterSwitch() {\r\n\tuni.showToast({\r\n\t\ttitle: '身份切换成功',\r\n\t\ticon: 'success'\r\n\t});\r\n\tsetTimeout(() => {\r\n\t\tuni.reLaunch({\r\n\t\t\turl: '/pages/index/index'\r\n\t\t});\r\n\t}, 1500);\r\n}\r\n"],"names":["getProfileDetail","saveUserInfoToStorage","switchIdentity","uni"],"mappings":";;;;;AAIA,SAAS,cAAc,KAAK;AAC3B,MAAI,CAAC;AAAK,WAAO;AACjB,QAAM,OAAO,IAAI;AACjB,MAAI,QAAQ,OAAO,SAAS,aAC3B,KAAK,SACL,KAAK,cACL,KAAK,mBACL,KAAK,QACH;AACF,WAAO;AAAA,EACP;AACD,SAAO;AACR;AAGO,eAAe,yBAAyB;AAC9C,QAAM,MAAM,MAAMA,2BAAAA;AAClB,MAAI,IAAI,SAAS,KAAK,IAAI,MAAM;AAC/B,WAAOC,eAAqB,sBAAC,IAAI,IAAI;AAAA,EACrC;AACD,SAAO;AACR;AAGO,eAAe,sBAAsB,YAAY;AACvD,QAAM,MAAM,MAAMC,gCAAe,UAAU;AAC3C,QAAM,UAAU,cAAc,GAAG;AAEjC,MAAI,QAAQ,OAAO;AAClBC,kBAAAA,MAAI,eAAe,SAAS,QAAQ,KAAK;AAAA,EACzC;AAED,MAAI,QAAQ,iBAAiB;AAC5BA,kBAAG,MAAC,eAAe,mBAAmB,KAAK,UAAU,QAAQ,eAAe,CAAC;AAAA,EAC7E;AAED,QAAM,uBAAsB;AAC5B,SAAO;AACR;AAGO,SAAS,sBAAsB;AACrCA,gBAAAA,MAAI,UAAU;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,EACR,CAAE;AACD,aAAW,MAAM;AAChBA,kBAAAA,MAAI,SAAS;AAAA,MACZ,KAAK;AAAA,IACR,CAAG;AAAA,EACD,GAAE,IAAI;AACR;;;"}
|
||||
1
unpackage/dist/dev/.sourcemap/mp-weixin/utils/userInfo.js.map
vendored
Normal file
1
unpackage/dist/dev/.sourcemap/mp-weixin/utils/userInfo.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user