交办、整改责任人修改

This commit is contained in:
王利强
2026-06-30 09:47:10 +08:00
parent d4897284e8
commit 455fd4fc07
638 changed files with 5153 additions and 2572 deletions

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

View File

@@ -1 +1 @@
{"version":3,"file":"hazardForm.js","sources":["components/hazard/hazardForm.js"],"sourcesContent":["import { buildAttachmentItem } from '@/utils/upload.js';\r\n\r\nexport const LEVEL_OPTIONS = [\r\n\t{ id: 2, title: '一般隐患' },\r\n\t{ id: 3, title: '重大隐患' }\r\n];\r\n\r\nexport const SOURCE_OPTIONS = [\r\n\t{ id: 1, title: '部门检查' },\r\n\t{ id: 2, title: '督导检查' },\r\n\t{ id: 3, title: '企业自查' },\r\n\t{ id: 4, title: '行业互查' }\r\n];\r\n\r\nexport const AI_LEVEL_MAP = {\r\n\t轻微: 0,\r\n\t轻微隐患: 0,\r\n\t一般: 0,\r\n\t一般隐患: 0,\r\n\t重大: 1,\r\n\t重大隐患: 1\r\n};\r\n\r\nexport function createEmptyHazardPayload() {\r\n\treturn {\r\n\t\tformData: {\r\n\t\t\ttitle: '',\r\n\t\t\tlevel: 0,\r\n\t\t\tsource: 0,\r\n\t\t\tdescription: '',\r\n\t\t\ttagIndex: 0,\r\n\t\t\ttagId: null,\r\n\t\t\tregulationId: null,\r\n\t\t\tregulationName: ''\r\n\t\t},\r\n\t\taddress: '',\r\n\t\tlng: 0,\r\n\t\tlat: 0,\r\n\t\tareaId: '',\r\n\t\tareaName: '',\r\n\t\tfileList: []\r\n\t};\r\n}\r\n\r\nexport function buildHiddenDangerParams(payload, extra = {}) {\r\n\tconst { formData, address, lng, lat, areaId, fileList } = payload;\r\n\tconst selectedTag = payload.tagOptions?.[formData.tagIndex];\r\n\tconst tagId = formData.tagId ?? (selectedTag ? selectedTag.id : null);\r\n\r\n\treturn {\r\n\t\ttitle: formData.title,\r\n\t\tlevel: LEVEL_OPTIONS[formData.level]?.id || 2,\r\n\t\tlng: lng || 0,\r\n\t\tlat: lat || 0,\r\n\t\taddress: address || '',\r\n\t\tareaId: areaId || null,\r\n\t\tdescription: formData.description || '',\r\n\t\tsource: SOURCE_OPTIONS[formData.source]?.title || '',\r\n\t\ttagId,\r\n\t\tattachments: (fileList || [])\r\n\t\t\t.filter((f) => f.status === 'success')\r\n\t\t\t.map((file) => buildAttachmentItem(file)),\r\n\t\tregulationId: formData.regulationId || null,\r\n\t\t...extra\r\n\t};\r\n}\r\n\r\nexport function hasValidHazardPayload(payload) {\r\n\tif (!payload) return false;\r\n\tconst { formData, fileList } = payload;\r\n\treturn !!(formData?.title && fileList?.length > 0);\r\n}\r\n"],"names":["buildAttachmentItem"],"mappings":";;AAEY,MAAC,gBAAgB;AAAA,EAC5B,EAAE,IAAI,GAAG,OAAO,OAAQ;AAAA,EACxB,EAAE,IAAI,GAAG,OAAO,OAAQ;AACzB;AAEY,MAAC,iBAAiB;AAAA,EAC7B,EAAE,IAAI,GAAG,OAAO,OAAQ;AAAA,EACxB,EAAE,IAAI,GAAG,OAAO,OAAQ;AAAA,EACxB,EAAE,IAAI,GAAG,OAAO,OAAQ;AAAA,EACxB,EAAE,IAAI,GAAG,OAAO,OAAQ;AACzB;AAEY,MAAC,eAAe;AAAA,EAC3B,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,IAAI;AAAA,EACJ,MAAM;AACP;AAEO,SAAS,2BAA2B;AAC1C,SAAO;AAAA,IACN,UAAU;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,aAAa;AAAA,MACb,UAAU;AAAA,MACV,OAAO;AAAA,MACP,cAAc;AAAA,MACd,gBAAgB;AAAA,IAChB;AAAA,IACD,SAAS;AAAA,IACT,KAAK;AAAA,IACL,KAAK;AAAA,IACL,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,UAAU,CAAE;AAAA,EACd;AACA;AAEO,SAAS,wBAAwB,SAAS,QAAQ,IAAI;;AAC5D,QAAM,EAAE,UAAU,SAAS,KAAK,KAAK,QAAQ,SAAU,IAAG;AAC1D,QAAM,eAAc,aAAQ,eAAR,mBAAqB,SAAS;AAClD,QAAM,QAAQ,SAAS,UAAU,cAAc,YAAY,KAAK;AAEhE,SAAO;AAAA,IACN,OAAO,SAAS;AAAA,IAChB,SAAO,mBAAc,SAAS,KAAK,MAA5B,mBAA+B,OAAM;AAAA,IAC5C,KAAK,OAAO;AAAA,IACZ,KAAK,OAAO;AAAA,IACZ,SAAS,WAAW;AAAA,IACpB,QAAQ,UAAU;AAAA,IAClB,aAAa,SAAS,eAAe;AAAA,IACrC,UAAQ,oBAAe,SAAS,MAAM,MAA9B,mBAAiC,UAAS;AAAA,IAClD;AAAA,IACA,cAAc,YAAY,CAAE,GAC1B,OAAO,CAAC,MAAM,EAAE,WAAW,SAAS,EACpC,IAAI,CAAC,SAASA,aAAmB,oBAAC,IAAI,CAAC;AAAA,IACzC,cAAc,SAAS,gBAAgB;AAAA,IACvC,GAAG;AAAA,EACL;AACA;AAEO,SAAS,sBAAsB,SAAS;AAC9C,MAAI,CAAC;AAAS,WAAO;AACrB,QAAM,EAAE,UAAU,SAAU,IAAG;AAC/B,SAAO,CAAC,GAAE,qCAAU,WAAS,qCAAU,UAAS;AACjD;;;;;;;"}
{"version":3,"file":"hazardForm.js","sources":["components/hazard/hazardForm.js"],"sourcesContent":["import { buildAttachmentItem } from '@/utils/upload.js';\r\n\r\nexport const LEVEL_OPTIONS = [\r\n\t{ id: 2, title: '一般隐患' },\r\n\t{ id: 3, title: '重大隐患' }\r\n];\r\n\r\nexport const SOURCE_OPTIONS = [\r\n\t{ id: 1, title: '部门检查' },\r\n\t{ id: 2, title: '督导检查' },\r\n\t{ id: 3, title: '企业自查' },\r\n\t{ id: 4, title: '行业互查' }\r\n];\r\n\r\nexport const AI_LEVEL_MAP = {\r\n\t轻微: 0,\r\n\t轻微隐患: 0,\r\n\t一般: 0,\r\n\t一般隐患: 0,\r\n\t重大: 1,\r\n\t重大隐患: 1\r\n};\r\n\r\nexport function createEmptyHazardPayload() {\r\n\treturn {\r\n\t\tformData: {\r\n\t\t\ttitle: '',\r\n\t\t\tlevel: 0,\r\n\t\t\tsource: 0,\r\n\t\t\thazardSourceCode: null,\r\n\t\t\thazardSourceName: '',\r\n\t\t\tdescription: '',\r\n\t\t\ttagIndex: 0,\r\n\t\t\ttagId: null,\r\n\t\t\tregulationId: null,\r\n\t\t\tregulationName: ''\r\n\t\t},\r\n\t\taddress: '',\r\n\t\tlng: 0,\r\n\t\tlat: 0,\r\n\t\tareaId: '',\r\n\t\tareaName: '',\r\n\t\tfileList: []\r\n\t};\r\n}\r\n\r\nexport function buildHiddenDangerParams(payload, extra = {}) {\r\n\tconst { formData, address, lng, lat, areaId, fileList } = payload;\r\n\tconst selectedTag = payload.tagOptions?.[formData.tagIndex];\r\n\tconst tagId = formData.tagId ?? (selectedTag ? selectedTag.id : null);\r\n\r\n\treturn {\r\n\t\ttitle: formData.title,\r\n\t\tlevel: LEVEL_OPTIONS[formData.level]?.id || 2,\r\n\t\tlng: lng || 0,\r\n\t\tlat: lat || 0,\r\n\t\taddress: address || '',\r\n\t\tareaId: areaId || null,\r\n\t\tdescription: formData.description || '',\r\n\t\tsource: SOURCE_OPTIONS[formData.source]?.title || '',\r\n\t\thazardSource: formData.hazardSourceCode ?? null,\r\n\t\ttagId,\r\n\t\tattachments: (fileList || [])\r\n\t\t\t.filter((f) => f.status === 'success')\r\n\t\t\t.map((file) => buildAttachmentItem(file)),\r\n\t\tregulationId: formData.regulationId || null,\r\n\t\t...extra\r\n\t};\r\n}\r\n\r\nexport function hasValidHazardPayload(payload) {\r\n\tif (!payload) return false;\r\n\tconst { formData, fileList } = payload;\r\n\treturn !!(formData?.title && fileList?.length > 0);\r\n}\r\n\r\nexport function hasHazardFormContent(payload) {\r\n\tif (!payload) return false;\r\n\tconst data = payload.formData || {};\r\n\tconst files = payload.fileList || [];\r\n\treturn !!(\r\n\t\tdata.title ||\r\n\t\tdata.description ||\r\n\t\tdata.regulationName ||\r\n\t\tdata.regulationId ||\r\n\t\tdata.hazardSourceCode != null ||\r\n\t\tdata.hazardSourceName ||\r\n\t\tpayload.address ||\r\n\t\tpayload.areaId ||\r\n\t\tpayload.areaName ||\r\n\t\t(files.length > 0)\r\n\t);\r\n}\r\n"],"names":["buildAttachmentItem"],"mappings":";;AAEY,MAAC,gBAAgB;AAAA,EAC5B,EAAE,IAAI,GAAG,OAAO,OAAQ;AAAA,EACxB,EAAE,IAAI,GAAG,OAAO,OAAQ;AACzB;AAEY,MAAC,iBAAiB;AAAA,EAC7B,EAAE,IAAI,GAAG,OAAO,OAAQ;AAAA,EACxB,EAAE,IAAI,GAAG,OAAO,OAAQ;AAAA,EACxB,EAAE,IAAI,GAAG,OAAO,OAAQ;AAAA,EACxB,EAAE,IAAI,GAAG,OAAO,OAAQ;AACzB;AAEY,MAAC,eAAe;AAAA,EAC3B,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,IAAI;AAAA,EACJ,MAAM;AACP;AAEO,SAAS,2BAA2B;AAC1C,SAAO;AAAA,IACN,UAAU;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,kBAAkB;AAAA,MAClB,kBAAkB;AAAA,MAClB,aAAa;AAAA,MACb,UAAU;AAAA,MACV,OAAO;AAAA,MACP,cAAc;AAAA,MACd,gBAAgB;AAAA,IAChB;AAAA,IACD,SAAS;AAAA,IACT,KAAK;AAAA,IACL,KAAK;AAAA,IACL,QAAQ;AAAA,IACR,UAAU;AAAA,IACV,UAAU,CAAE;AAAA,EACd;AACA;AAEO,SAAS,wBAAwB,SAAS,QAAQ,IAAI;;AAC5D,QAAM,EAAE,UAAU,SAAS,KAAK,KAAK,QAAQ,SAAU,IAAG;AAC1D,QAAM,eAAc,aAAQ,eAAR,mBAAqB,SAAS;AAClD,QAAM,QAAQ,SAAS,UAAU,cAAc,YAAY,KAAK;AAEhE,SAAO;AAAA,IACN,OAAO,SAAS;AAAA,IAChB,SAAO,mBAAc,SAAS,KAAK,MAA5B,mBAA+B,OAAM;AAAA,IAC5C,KAAK,OAAO;AAAA,IACZ,KAAK,OAAO;AAAA,IACZ,SAAS,WAAW;AAAA,IACpB,QAAQ,UAAU;AAAA,IAClB,aAAa,SAAS,eAAe;AAAA,IACrC,UAAQ,oBAAe,SAAS,MAAM,MAA9B,mBAAiC,UAAS;AAAA,IAClD,cAAc,SAAS,oBAAoB;AAAA,IAC3C;AAAA,IACA,cAAc,YAAY,CAAE,GAC1B,OAAO,CAAC,MAAM,EAAE,WAAW,SAAS,EACpC,IAAI,CAAC,SAASA,aAAmB,oBAAC,IAAI,CAAC;AAAA,IACzC,cAAc,SAAS,gBAAgB;AAAA,IACvC,GAAG;AAAA,EACL;AACA;AAEO,SAAS,sBAAsB,SAAS;AAC9C,MAAI,CAAC;AAAS,WAAO;AACrB,QAAM,EAAE,UAAU,SAAU,IAAG;AAC/B,SAAO,CAAC,GAAE,qCAAU,WAAS,qCAAU,UAAS;AACjD;AAEO,SAAS,qBAAqB,SAAS;AAC7C,MAAI,CAAC;AAAS,WAAO;AACrB,QAAM,OAAO,QAAQ,YAAY;AACjC,QAAM,QAAQ,QAAQ,YAAY;AAClC,SAAO,CAAC,EACP,KAAK,SACL,KAAK,eACL,KAAK,kBACL,KAAK,gBACL,KAAK,oBAAoB,QACzB,KAAK,oBACL,QAAQ,WACR,QAAQ,UACR,QAAQ,YACP,MAAM,SAAS;AAElB;;;;;;;;"}

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

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

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

View File

@@ -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};\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;AACnB;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\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;;;;;;;;"}