隐患详情重新设计,检查计划重新设计成做题排查式

This commit is contained in:
王利强
2026-06-21 16:30:12 +08:00
parent 1fe87ec438
commit cc94d3e3e9
256 changed files with 12542 additions and 5956 deletions

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
{"version":3,"file":"assets.js","sources":["static/home_icon/jianbianbeijing.png","static/yujin/yujin_sousuo.png","static/yujin/yujin_tongji.png","static/my/edit.png","static/my/Notification.png","static/my/Account.png","static/my/Customer service.png","static/my/Phone.png","static/index/index_bg.png","static/index/phone.png","static/index/lock.png","static/index/蒙版组 260.png"],"sourcesContent":["export default \"__VITE_ASSET__ea9fb36d__\"","export default \"__VITE_ASSET__8fe3bf4d__\"","export default \"__VITE_ASSET__d9a3c09a__\"","export default \"__VITE_ASSET__e5df6314__\"","export default \"__VITE_ASSET__553a3ebb__\"","export default \"__VITE_ASSET__ebdbece8__\"","export default \"__VITE_ASSET__2a9450b4__\"","export default \"__VITE_ASSET__57c23edd__\"","export default \"__VITE_ASSET__f48d129d__\"","export default \"__VITE_ASSET__6b0aa87a__\"","export default \"__VITE_ASSET__e0160358__\"","export default \"__VITE_ASSET__d3a3f4fb__\""],"names":[],"mappings":";AAAA,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,aAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,aAAA;ACAf,MAAe,aAAA;;;;;;;;;;;;;"}
{"version":3,"file":"assets.js","sources":["static/home_icon/jianbianbeijing.png","static/yinhuan_detail/status.png","static/yinhuan_detail/date.png","static/yujin/yujin_sousuo.png","static/yujin/yujin_tongji.png","static/my/edit.png","static/my/Notification.png","static/my/Account.png","static/my/Customer service.png","static/my/Phone.png","static/index/index_bg.png","static/index/phone.png","static/index/lock.png","static/index/蒙版组 260.png"],"sourcesContent":["export default \"__VITE_ASSET__ea9fb36d__\"","export default \"__VITE_ASSET__8ebecbdc__\"","export default \"__VITE_ASSET__4ec3ff67__\"","export default \"__VITE_ASSET__8fe3bf4d__\"","export default \"__VITE_ASSET__d9a3c09a__\"","export default \"__VITE_ASSET__e5df6314__\"","export default \"__VITE_ASSET__553a3ebb__\"","export default \"__VITE_ASSET__ebdbece8__\"","export default \"__VITE_ASSET__2a9450b4__\"","export default \"__VITE_ASSET__57c23edd__\"","export default \"__VITE_ASSET__f48d129d__\"","export default \"__VITE_ASSET__6b0aa87a__\"","export default \"__VITE_ASSET__e0160358__\"","export default \"__VITE_ASSET__d3a3f4fb__\""],"names":[],"mappings":";AAAA,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,aAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,aAAA;ACAf,MAAe,aAAA;;;;;;;;;;;;;;;"}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +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;;;;;;;"}

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}

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

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 +0,0 @@
{"version":3,"file":"props.js","sources":["uni_modules/uview-plus/components/u-checkbox-group/props.js"],"sourcesContent":["import { defineMixin } from '../../libs/vue'\r\nimport defProps from '../../libs/config/props.js'\r\n\r\nexport const props = defineMixin({\r\n props: {\r\n // 标识符\r\n name: {\r\n type: String,\r\n default: () => defProps.checkboxGroup.name\r\n },\r\n\t\t// #ifdef VUE3\r\n\t\t// 绑定的值\r\n\t\tmodelValue: {\r\n\t\t type: Array,\r\n\t\t default: () => defProps.checkboxGroup.value\r\n\t\t},\r\n\t\t// #endif\r\n\t\t// #ifdef VUE2\r\n\t\t// 绑定的值\r\n\t\tvalue: {\r\n\t\t type: Array,\r\n\t\t default: () => defProps.checkboxGroup.value\r\n\t\t},\r\n\t\t// #endif\r\n // 形状circle-圆形square-方形\r\n shape: {\r\n type: String,\r\n default: () => defProps.checkboxGroup.shape\r\n },\r\n // 是否禁用全部checkbox\r\n disabled: {\r\n type: Boolean,\r\n default: () => defProps.checkboxGroup.disabled\r\n },\r\n\r\n // 选中状态下的颜色如设置此值将会覆盖parent的activeColor值\r\n activeColor: {\r\n type: String,\r\n default: () => defProps.checkboxGroup.activeColor\r\n },\r\n // 未选中的颜色\r\n inactiveColor: {\r\n type: String,\r\n default: () => defProps.checkboxGroup.inactiveColor\r\n },\r\n\r\n // 整个组件的尺寸默认px\r\n size: {\r\n type: [String, Number],\r\n default: () => defProps.checkboxGroup.size\r\n },\r\n // 布局方式row-横向column-纵向\r\n placement: {\r\n type: String,\r\n default: () => defProps.checkboxGroup.placement\r\n },\r\n // label的字体大小px单位\r\n labelSize: {\r\n type: [String, Number],\r\n default: () => defProps.checkboxGroup.labelSize\r\n },\r\n // label的字体颜色\r\n labelColor: {\r\n type: [String],\r\n default: () => defProps.checkboxGroup.labelColor\r\n },\r\n // 是否禁止点击文本操作\r\n labelDisabled: {\r\n type: Boolean,\r\n default: () => defProps.checkboxGroup.labelDisabled\r\n },\r\n // 图标颜色\r\n iconColor: {\r\n type: String,\r\n default: () => defProps.checkboxGroup.iconColor\r\n },\r\n // 图标的大小单位px\r\n iconSize: {\r\n type: [String, Number],\r\n default: () => defProps.checkboxGroup.iconSize\r\n },\r\n // 勾选图标的对齐方式left-左边right-右边\r\n iconPlacement: {\r\n type: String,\r\n default: () => defProps.checkboxGroup.iconPlacement\r\n },\r\n // 竖向配列时,是否显示下划线\r\n borderBottom: {\r\n type: Boolean,\r\n default: () => defProps.checkboxGroup.borderBottom\r\n }\r\n }\r\n})\r\n"],"names":["defineMixin","defProps"],"mappings":";;;AAGY,MAAC,QAAQA,+BAAAA,YAAY;AAAA,EAC7B,OAAO;AAAA;AAAA,IAEH,MAAM;AAAA,MACF,MAAM;AAAA,MACN,SAAS,MAAMC,8CAAS,cAAc;AAAA,IACzC;AAAA;AAAA,IAGP,YAAY;AAAA,MACR,MAAM;AAAA,MACN,SAAS,MAAMA,8CAAS,cAAc;AAAA,IACzC;AAAA;AAAA,IAUK,OAAO;AAAA,MACH,MAAM;AAAA,MACN,SAAS,MAAMA,8CAAS,cAAc;AAAA,IACzC;AAAA;AAAA,IAED,UAAU;AAAA,MACN,MAAM;AAAA,MACN,SAAS,MAAMA,8CAAS,cAAc;AAAA,IACzC;AAAA;AAAA,IAGD,aAAa;AAAA,MACT,MAAM;AAAA,MACN,SAAS,MAAMA,8CAAS,cAAc;AAAA,IACzC;AAAA;AAAA,IAED,eAAe;AAAA,MACX,MAAM;AAAA,MACN,SAAS,MAAMA,8CAAS,cAAc;AAAA,IACzC;AAAA;AAAA,IAGD,MAAM;AAAA,MACF,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,SAAS,MAAMA,8CAAS,cAAc;AAAA,IACzC;AAAA;AAAA,IAED,WAAW;AAAA,MACP,MAAM;AAAA,MACN,SAAS,MAAMA,8CAAS,cAAc;AAAA,IACzC;AAAA;AAAA,IAED,WAAW;AAAA,MACP,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,SAAS,MAAMA,8CAAS,cAAc;AAAA,IACzC;AAAA;AAAA,IAED,YAAY;AAAA,MACR,MAAM,CAAC,MAAM;AAAA,MACb,SAAS,MAAMA,8CAAS,cAAc;AAAA,IACzC;AAAA;AAAA,IAED,eAAe;AAAA,MACX,MAAM;AAAA,MACN,SAAS,MAAMA,8CAAS,cAAc;AAAA,IACzC;AAAA;AAAA,IAED,WAAW;AAAA,MACP,MAAM;AAAA,MACN,SAAS,MAAMA,8CAAS,cAAc;AAAA,IACzC;AAAA;AAAA,IAED,UAAU;AAAA,MACN,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,SAAS,MAAMA,8CAAS,cAAc;AAAA,IACzC;AAAA;AAAA,IAED,eAAe;AAAA,MACX,MAAM;AAAA,MACN,SAAS,MAAMA,8CAAS,cAAc;AAAA,IACzC;AAAA;AAAA,IAED,cAAc;AAAA,MACV,MAAM;AAAA,MACN,SAAS,MAAMA,8CAAS,cAAc;AAAA,IACzC;AAAA,EACJ;AACL,CAAC;;"}

View File

@@ -1 +0,0 @@
{"version":3,"file":"u-choose.js","sources":["uni_modules/uview-plus/components/u-choose/u-choose.vue","F:/software/HBuilderX/HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RTovaGV4aWV5dW4vVGhyZWVDaGVja3NPbmVFeHBvc3VyZV9wbGF0Zm9ybS8xMi4wN2Nob25ncWl4aW5kZS_kuInmn6XkuIDmm53lhYnlsI_nqIvluo8vdGhyZWVvbmVjaGVja1_lsI_nqIvluo8vdW5pX21vZHVsZXMvdXZpZXctcGx1cy9jb21wb25lbnRzL3UtY2hvb3NlL3UtY2hvb3NlLnZ1ZQ"],"sourcesContent":["<style scoped lang=\"scss\">\r\n\t.up-choose {\r\n\t\t::v-deep .up-tag {\r\n\t\t font-weight: 600;\r\n\t\t}\r\n\t\t&:last-child {\r\n\t\t\tmargin-right: 0;\r\n\t\t}\r\n\t}\r\n\t\r\n\t.up-choose-wrap {\r\n\t\tflex-wrap: wrap;\r\n\t}\r\n\t\r\n\t.up-choose-nowrap {\r\n\t\tflex-wrap: nowrap;\r\n\t\twhite-space: nowrap;\r\n\t}\r\n</style>\r\n\r\n<template>\r\n\t<scroll-view \r\n\t\t:scroll-x=\"wrap === false\" \r\n\t\t:class=\"['up-choose', wrap ? 'up-choose-wrap' : 'up-choose-nowrap']\">\r\n <template :key=\"item.id\" v-for=\"(item,index) in options\">\r\n <view :style=\"{width: itemWidth, display: 'inline-block'}\">\r\n <slot :item=\"item\" :index=\"index\">\r\n <up-tag :type=\"index == currentIndex ? 'primary' : 'info'\"\r\n size=\"large\" :plain=\"index == currentIndex ? false : true\"\r\n :class=\"currentIndex === index ? 'active': ''\" :height=\"itemHeight\"\r\n :style=\"{width: itemWidth, padding: itemPadding}\"\r\n @click=\"change(index)\">\r\n {{item[labelName]}}\r\n </up-tag>\r\n </slot>\r\n </view>\r\n </template>\r\n\t</scroll-view>\r\n</template>\r\n\r\n<script>\r\n\texport default {\r\n\t name: 'up-choose',\r\n\t props: {\r\n\t\t\toptions:{\r\n\t\t\t\ttype: Array,\r\n\t\t\t\tdefault: ()=>{\r\n\t\t\t\t\treturn [];\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tmodelValue: {\r\n\t\t\t\ttype: [Number,String,Array],\r\n\t\t\t\tdefault: false\r\n\t\t\t},\r\n\t\t\ttype: {\r\n\t\t\t type: [String],\r\n\t\t\t default: 'radio'\r\n\t\t\t},\r\n\t\t\titemWidth: {\r\n\t\t\t type: [String],\r\n\t\t\t default: 'auto'\r\n\t\t\t},\r\n\t\t\titemHeight: {\r\n\t\t\t type: [String],\r\n\t\t\t default: '50px'\r\n\t\t\t},\r\n itemPadding: {\r\n type: [String],\r\n\t\t\t default: '8px'\r\n },\r\n\t\t\tlabelName: {\r\n\t\t\t type: String,\r\n\t\t\t default: 'title'\r\n\t\t\t},\r\n\t\t\tvalueName: {\r\n\t\t\t type: String,\r\n\t\t\t default: 'value'\r\n\t\t\t},\r\n\t\t\tcustomClick: {\r\n\t\t\t type: Boolean,\r\n\t\t\t default: false\r\n\t\t\t},\r\n\t\t\t// 是否换行\r\n\t\t\twrap: {\r\n\t\t\t\ttype: Boolean,\r\n\t\t\t\tdefault: true\r\n\t\t\t}\r\n\t },\r\n\t data() {\r\n\t return {\r\n\t\t\t\tcurrentIndex: ''\r\n\t }\r\n\t },\r\n\t created: function () {\r\n\t\t\tthis.currentIndex = this.modelValue;\r\n\t },\r\n emits: ['update:modelValue', 'custom-click'],\r\n\t methods: {\r\n\t change(index){\r\n\t\t\t\tif (this.customClick) {\r\n\t\t\t\t\tthis.$emit('custom-click', index);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.currentIndex = index;\r\n\t\t\t\t\tthis.$emit('update:modelValue', index);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t }\r\n\t}\r\n</script>","import Component from 'E:/hexieyun/ThreeChecksOneExposure_platform/12.07chongqixinde/三查一曝光小程序/threeonecheck_小程序/uni_modules/uview-plus/components/u-choose/u-choose.vue'\nwx.createComponent(Component)"],"names":[],"mappings":";;AAyCC,MAAK,YAAU;AAAA,EACX,MAAM;AAAA,EACN,OAAO;AAAA,IACT,SAAQ;AAAA,MACP,MAAM;AAAA,MACN,SAAS,MAAI;AACZ,eAAO;MACR;AAAA,IACA;AAAA,IACD,YAAY;AAAA,MACX,MAAM,CAAC,QAAO,QAAO,KAAK;AAAA,MAC1B,SAAS;AAAA,IACT;AAAA,IACD,MAAM;AAAA,MACF,MAAM,CAAC,MAAM;AAAA,MACb,SAAS;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACP,MAAM,CAAC,MAAM;AAAA,MACb,SAAS;AAAA,IACZ;AAAA,IACD,YAAY;AAAA,MACR,MAAM,CAAC,MAAM;AAAA,MACb,SAAS;AAAA,IACZ;AAAA,IACQ,aAAa;AAAA,MACT,MAAM,CAAC,MAAM;AAAA,MACtB,SAAS;AAAA,IACH;AAAA,IACV,WAAW;AAAA,MACP,MAAM;AAAA,MACN,SAAS;AAAA,IACZ;AAAA,IACD,WAAW;AAAA,MACP,MAAM;AAAA,MACN,SAAS;AAAA,IACZ;AAAA,IACD,aAAa;AAAA,MACT,MAAM;AAAA,MACN,SAAS;AAAA,IACZ;AAAA;AAAA,IAED,MAAM;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA,IACV;AAAA,EACG;AAAA,EACD,OAAO;AACH,WAAO;AAAA,MACZ,cAAc;AAAA,IACT;AAAA,EACH;AAAA,EACD,SAAS,WAAY;AACvB,SAAK,eAAe,KAAK;AAAA,EACtB;AAAA,EACE,OAAO,CAAC,qBAAqB,cAAc;AAAA,EAC9C,SAAS;AAAA,IACL,OAAO,OAAM;AAClB,UAAI,KAAK,aAAa;AACrB,aAAK,MAAM,gBAAgB,KAAK;AAAA,aAC1B;AACN,aAAK,eAAe;AACpB,aAAK,MAAM,qBAAqB,KAAK;AAAA,MACtC;AAAA,IACD;AAAA,EACE;AACJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1GD,GAAG,gBAAgB,SAAS;"}

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

@@ -0,0 +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;;;;;;;;"}

File diff suppressed because one or more lines are too long