diff --git a/component/rightItemsindex/index.vue b/component/rightItemsindex/index.vue
index cf6cc1f..e10a10f 100644
--- a/component/rightItemsindex/index.vue
+++ b/component/rightItemsindex/index.vue
@@ -1195,7 +1195,6 @@
.time-text {
margin-left: 10rpx;
- // color: #364464;
font-size: 70rpx;
font-weight: 700;
width: 800rpx;
diff --git a/component/rightItemssecond/index.vue b/component/rightItemssecond/index.vue
index 6c63ec8..e7ead79 100644
--- a/component/rightItemssecond/index.vue
+++ b/component/rightItemssecond/index.vue
@@ -1,6 +1,7 @@
-
+
+
ID:12345678
@@ -47,20 +48,27 @@
-
+
+
+ 服务类型
+
-
{{item.type}}
+ :style="{
+ backgroundColor: item.color ? item.color : '',
+ ...(isBack ? {} : { width: '250rpx', height: '75rpx', fontSize: '30rpx', borderRadius: '10rpx' })
+ }">{{item.type}}
-
+
@@ -85,48 +93,69 @@
-
-
-
-
- {{item0.time}}
+
+
+
+
+
+ {{item0.time}}
+
-
-
-
-
-
-
-
-
-
-
- {{item1.time}}
-
-
- {{item1.type}}
+
+
+
+
+
+
+
+
+
+
+ {{item1.time}}
+
+
+ {{item1.type}}
+
+
+
+ {{splitString(item1.value)[0]}}
+
+
+ {{splitString(item1.value)[0]}}
+
+
+ {{splitString(item1.value)[1]}}
+
-
- {{item1.value}}
-
-
-
-
+
+
+
+
@@ -135,7 +164,23 @@
快捷指令
+
+
+
+
+ ×
+
+
+
+
+ {{item.name}}
+
+
+
@@ -145,6 +190,7 @@
+
@@ -154,19 +200,136 @@
-
-
+ -->
+
+
+
\ No newline at end of file
diff --git a/static/index/baba.png b/static/index/baba.png
new file mode 100644
index 0000000..695d733
Binary files /dev/null and b/static/index/baba.png differ
diff --git a/static/index/cheng.png b/static/index/cheng.png
new file mode 100644
index 0000000..24879bc
Binary files /dev/null and b/static/index/cheng.png differ
diff --git a/static/index/close.png b/static/index/close.png
new file mode 100644
index 0000000..c5cb9bb
Binary files /dev/null and b/static/index/close.png differ
diff --git a/static/index/crushpouple.png b/static/index/crushpouple.png
new file mode 100644
index 0000000..de45150
Binary files /dev/null and b/static/index/crushpouple.png differ
diff --git a/static/index/crushyellow.png b/static/index/crushyellow.png
new file mode 100644
index 0000000..478181e
Binary files /dev/null and b/static/index/crushyellow.png differ
diff --git a/static/index/ji.png b/static/index/ji.png
new file mode 100644
index 0000000..be4056b
Binary files /dev/null and b/static/index/ji.png differ
diff --git a/static/index/jidark.png b/static/index/jidark.png
new file mode 100644
index 0000000..89e9e15
Binary files /dev/null and b/static/index/jidark.png differ
diff --git a/static/index/niao.png b/static/index/niao.png
new file mode 100644
index 0000000..d741577
Binary files /dev/null and b/static/index/niao.png differ
diff --git a/static/index/ou.png b/static/index/ou.png
new file mode 100644
index 0000000..4add146
Binary files /dev/null and b/static/index/ou.png differ
diff --git a/static/index/ri.png b/static/index/ri.png
new file mode 100644
index 0000000..02b3e32
Binary files /dev/null and b/static/index/ri.png differ
diff --git a/static/index/ridark.png b/static/index/ridark.png
new file mode 100644
index 0000000..68a9c43
Binary files /dev/null and b/static/index/ridark.png differ
diff --git a/static/index/tu.png b/static/index/tu.png
new file mode 100644
index 0000000..831b75c
Binary files /dev/null and b/static/index/tu.png differ
diff --git a/static/index/zhou.png b/static/index/zhou.png
new file mode 100644
index 0000000..91ed3b3
Binary files /dev/null and b/static/index/zhou.png differ
diff --git a/static/index/zhoudark.png b/static/index/zhoudark.png
new file mode 100644
index 0000000..6ae261e
Binary files /dev/null and b/static/index/zhoudark.png differ
diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/app.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/app.js.map
index 550972e..9e911c5 100644
--- a/unpackage/dist/dev/.sourcemap/mp-weixin/app.js.map
+++ b/unpackage/dist/dev/.sourcemap/mp-weixin/app.js.map
@@ -1 +1 @@
-{"version":3,"file":"app.js","sources":["App.vue"],"sourcesContent":["\r\n\r\n\n"],"names":["uni"],"mappings":";;;;;;;;AACC,MAAK,YAAU;AAAA,EACd,UAAU,WAAW;AACpBA,kBAAAA,MAAA,MAAA,OAAA,gBAAY,YAAY;AAAA,EACxB;AAAA,EACD,QAAQ,WAAW;AAClBA,kBAAAA,MAAY,MAAA,OAAA,gBAAA,UAAU;AAAA,EACtB;AAAA,EACD,QAAQ,WAAW;AAClBA,kBAAAA,MAAY,MAAA,OAAA,iBAAA,UAAU;AAAA,EACvB;AACD;;;;;;;;;"}
\ No newline at end of file
+{"version":3,"file":"app.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;"}
\ No newline at end of file
diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/common/assets.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/common/assets.js.map
index 048beaf..95a4129 100644
--- a/unpackage/dist/dev/.sourcemap/mp-weixin/common/assets.js.map
+++ b/unpackage/dist/dev/.sourcemap/mp-weixin/common/assets.js.map
@@ -1 +1 @@
-{"version":3,"file":"assets.js","sources":["static/index/oldman.png","static/index/customer.png","static/index/undericons/upguang.png"],"sourcesContent":["export default \"__VITE_ASSET__71faa3fc__\"","export default \"__VITE_ASSET__3a5aea25__\"","export default \"__VITE_ASSET__bdab6700__\""],"names":[],"mappings":";AAAA,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,aAAA;;;;"}
\ No newline at end of file
+{"version":3,"file":"assets.js","sources":["static/index/oldman.png","static/index/customer.png","static/index/undericons/upguang.png","static/index/cheng.png"],"sourcesContent":["export default \"__VITE_ASSET__71faa3fc__\"","export default \"__VITE_ASSET__3a5aea25__\"","export default \"__VITE_ASSET__bdab6700__\"","export default \"__VITE_ASSET__7c82e504__\""],"names":[],"mappings":";AAAA,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,aAAA;ACAf,MAAe,aAAA;;;;;"}
\ No newline at end of file
diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map
index 3d80e04..303e821 100644
--- a/unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map
+++ b/unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map
@@ -1 +1 @@
-{"version":3,"file":"vendor.js","sources":["../Hbuilder/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/shared/dist/shared.esm-bundler.js","../Hbuilder/HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-i18n/dist/uni-i18n.es.js","../Hbuilder/HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-shared/dist/uni-shared.es.js","../Hbuilder/HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-mp-vue/dist/vue.runtime.esm.js","../Hbuilder/HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-mp-weixin/dist/uni.api.esm.js","../Hbuilder/HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-console/dist/index.esm.js","../Hbuilder/HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-mp-weixin/dist/uni.mp.esm.js","../Hbuilder/HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-app/dist/uni-app.es.js"],"sourcesContent":["/**\r\n* @vue/shared v3.4.21\r\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\r\n* @license MIT\r\n**/\r\nfunction makeMap(str, expectsLowerCase) {\r\n const set = new Set(str.split(\",\"));\r\n return expectsLowerCase ? (val) => set.has(val.toLowerCase()) : (val) => set.has(val);\r\n}\r\n\r\nconst EMPTY_OBJ = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze({}) : {};\r\nconst EMPTY_ARR = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze([]) : [];\r\nconst NOOP = () => {\r\n};\r\nconst NO = () => false;\r\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\r\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\r\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\r\nconst extend = Object.assign;\r\nconst remove = (arr, el) => {\r\n const i = arr.indexOf(el);\r\n if (i > -1) {\r\n arr.splice(i, 1);\r\n }\r\n};\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\r\nconst isArray = Array.isArray;\r\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\r\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\r\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\r\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\r\nconst isFunction = (val) => typeof val === \"function\";\r\nconst isString = (val) => typeof val === \"string\";\r\nconst isSymbol = (val) => typeof val === \"symbol\";\r\nconst isObject = (val) => val !== null && typeof val === \"object\";\r\nconst isPromise = (val) => {\r\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\r\n};\r\nconst objectToString = Object.prototype.toString;\r\nconst toTypeString = (value) => objectToString.call(value);\r\nconst toRawType = (value) => {\r\n return toTypeString(value).slice(8, -1);\r\n};\r\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\r\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\r\nconst isReservedProp = /* @__PURE__ */ makeMap(\r\n // the leading comma is intentional so empty string \"\" is also included\r\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\r\n);\r\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\r\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\r\n);\r\nconst cacheStringFunction = (fn) => {\r\n const cache = /* @__PURE__ */ Object.create(null);\r\n return (str) => {\r\n const hit = cache[str];\r\n return hit || (cache[str] = fn(str));\r\n };\r\n};\r\nconst camelizeRE = /-(\\w)/g;\r\nconst camelize = cacheStringFunction((str) => {\r\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\r\n});\r\nconst hyphenateRE = /\\B([A-Z])/g;\r\nconst hyphenate = cacheStringFunction(\r\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\r\n);\r\nconst capitalize = cacheStringFunction((str) => {\r\n return str.charAt(0).toUpperCase() + str.slice(1);\r\n});\r\nconst toHandlerKey = cacheStringFunction((str) => {\r\n const s = str ? `on${capitalize(str)}` : ``;\r\n return s;\r\n});\r\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\r\nconst invokeArrayFns = (fns, arg) => {\r\n for (let i = 0; i < fns.length; i++) {\r\n fns[i](arg);\r\n }\r\n};\r\nconst def = (obj, key, value) => {\r\n Object.defineProperty(obj, key, {\r\n configurable: true,\r\n enumerable: false,\r\n value\r\n });\r\n};\r\nconst looseToNumber = (val) => {\r\n const n = parseFloat(val);\r\n return isNaN(n) ? val : n;\r\n};\r\nconst toNumber = (val) => {\r\n const n = isString(val) ? Number(val) : NaN;\r\n return isNaN(n) ? val : n;\r\n};\r\nlet _globalThis;\r\nconst getGlobalThis = () => {\r\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\r\n};\r\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\r\nfunction genPropsAccessExp(name) {\r\n return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\r\n}\r\n\r\nconst PatchFlags = {\r\n \"TEXT\": 1,\r\n \"1\": \"TEXT\",\r\n \"CLASS\": 2,\r\n \"2\": \"CLASS\",\r\n \"STYLE\": 4,\r\n \"4\": \"STYLE\",\r\n \"PROPS\": 8,\r\n \"8\": \"PROPS\",\r\n \"FULL_PROPS\": 16,\r\n \"16\": \"FULL_PROPS\",\r\n \"NEED_HYDRATION\": 32,\r\n \"32\": \"NEED_HYDRATION\",\r\n \"STABLE_FRAGMENT\": 64,\r\n \"64\": \"STABLE_FRAGMENT\",\r\n \"KEYED_FRAGMENT\": 128,\r\n \"128\": \"KEYED_FRAGMENT\",\r\n \"UNKEYED_FRAGMENT\": 256,\r\n \"256\": \"UNKEYED_FRAGMENT\",\r\n \"NEED_PATCH\": 512,\r\n \"512\": \"NEED_PATCH\",\r\n \"DYNAMIC_SLOTS\": 1024,\r\n \"1024\": \"DYNAMIC_SLOTS\",\r\n \"DEV_ROOT_FRAGMENT\": 2048,\r\n \"2048\": \"DEV_ROOT_FRAGMENT\",\r\n \"HOISTED\": -1,\r\n \"-1\": \"HOISTED\",\r\n \"BAIL\": -2,\r\n \"-2\": \"BAIL\"\r\n};\r\nconst PatchFlagNames = {\r\n [1]: `TEXT`,\r\n [2]: `CLASS`,\r\n [4]: `STYLE`,\r\n [8]: `PROPS`,\r\n [16]: `FULL_PROPS`,\r\n [32]: `NEED_HYDRATION`,\r\n [64]: `STABLE_FRAGMENT`,\r\n [128]: `KEYED_FRAGMENT`,\r\n [256]: `UNKEYED_FRAGMENT`,\r\n [512]: `NEED_PATCH`,\r\n [1024]: `DYNAMIC_SLOTS`,\r\n [2048]: `DEV_ROOT_FRAGMENT`,\r\n [-1]: `HOISTED`,\r\n [-2]: `BAIL`\r\n};\r\n\r\nconst ShapeFlags = {\r\n \"ELEMENT\": 1,\r\n \"1\": \"ELEMENT\",\r\n \"FUNCTIONAL_COMPONENT\": 2,\r\n \"2\": \"FUNCTIONAL_COMPONENT\",\r\n \"STATEFUL_COMPONENT\": 4,\r\n \"4\": \"STATEFUL_COMPONENT\",\r\n \"TEXT_CHILDREN\": 8,\r\n \"8\": \"TEXT_CHILDREN\",\r\n \"ARRAY_CHILDREN\": 16,\r\n \"16\": \"ARRAY_CHILDREN\",\r\n \"SLOTS_CHILDREN\": 32,\r\n \"32\": \"SLOTS_CHILDREN\",\r\n \"TELEPORT\": 64,\r\n \"64\": \"TELEPORT\",\r\n \"SUSPENSE\": 128,\r\n \"128\": \"SUSPENSE\",\r\n \"COMPONENT_SHOULD_KEEP_ALIVE\": 256,\r\n \"256\": \"COMPONENT_SHOULD_KEEP_ALIVE\",\r\n \"COMPONENT_KEPT_ALIVE\": 512,\r\n \"512\": \"COMPONENT_KEPT_ALIVE\",\r\n \"COMPONENT\": 6,\r\n \"6\": \"COMPONENT\"\r\n};\r\n\r\nconst SlotFlags = {\r\n \"STABLE\": 1,\r\n \"1\": \"STABLE\",\r\n \"DYNAMIC\": 2,\r\n \"2\": \"DYNAMIC\",\r\n \"FORWARDED\": 3,\r\n \"3\": \"FORWARDED\"\r\n};\r\nconst slotFlagsText = {\r\n [1]: \"STABLE\",\r\n [2]: \"DYNAMIC\",\r\n [3]: \"FORWARDED\"\r\n};\r\n\r\nconst GLOBALS_ALLOWED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error\";\r\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\r\nconst isGloballyWhitelisted = isGloballyAllowed;\r\n\r\nconst range = 2;\r\nfunction generateCodeFrame(source, start = 0, end = source.length) {\r\n let lines = source.split(/(\\r?\\n)/);\r\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\r\n lines = lines.filter((_, idx) => idx % 2 === 0);\r\n let count = 0;\r\n const res = [];\r\n for (let i = 0; i < lines.length; i++) {\r\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\r\n if (count >= start) {\r\n for (let j = i - range; j <= i + range || end > count; j++) {\r\n if (j < 0 || j >= lines.length)\r\n continue;\r\n const line = j + 1;\r\n res.push(\r\n `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`\r\n );\r\n const lineLength = lines[j].length;\r\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\r\n if (j === i) {\r\n const pad = start - (count - (lineLength + newLineSeqLength));\r\n const length = Math.max(\r\n 1,\r\n end > count ? lineLength - pad : end - start\r\n );\r\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\r\n } else if (j > i) {\r\n if (end > count) {\r\n const length = Math.max(Math.min(end - count, lineLength), 1);\r\n res.push(` | ` + \"^\".repeat(length));\r\n }\r\n count += lineLength + newLineSeqLength;\r\n }\r\n }\r\n break;\r\n }\r\n }\r\n return res.join(\"\\n\");\r\n}\r\n\r\nfunction normalizeStyle(value) {\r\n if (isArray(value)) {\r\n const res = {};\r\n for (let i = 0; i < value.length; i++) {\r\n const item = value[i];\r\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\r\n if (normalized) {\r\n for (const key in normalized) {\r\n res[key] = normalized[key];\r\n }\r\n }\r\n }\r\n return res;\r\n } else if (isString(value) || isObject(value)) {\r\n return value;\r\n }\r\n}\r\nconst listDelimiterRE = /;(?![^(]*\\))/g;\r\nconst propertyDelimiterRE = /:([^]+)/;\r\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\r\nfunction parseStringStyle(cssText) {\r\n const ret = {};\r\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\r\n if (item) {\r\n const tmp = item.split(propertyDelimiterRE);\r\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\r\n }\r\n });\r\n return ret;\r\n}\r\nfunction stringifyStyle(styles) {\r\n let ret = \"\";\r\n if (!styles || isString(styles)) {\r\n return ret;\r\n }\r\n for (const key in styles) {\r\n const value = styles[key];\r\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\r\n if (isString(value) || typeof value === \"number\") {\r\n ret += `${normalizedKey}:${value};`;\r\n }\r\n }\r\n return ret;\r\n}\r\nfunction normalizeClass(value) {\r\n let res = \"\";\r\n if (isString(value)) {\r\n res = value;\r\n } else if (isArray(value)) {\r\n for (let i = 0; i < value.length; i++) {\r\n const normalized = normalizeClass(value[i]);\r\n if (normalized) {\r\n res += normalized + \" \";\r\n }\r\n }\r\n } else if (isObject(value)) {\r\n for (const name in value) {\r\n if (value[name]) {\r\n res += name + \" \";\r\n }\r\n }\r\n }\r\n return res.trim();\r\n}\r\nfunction normalizeProps(props) {\r\n if (!props)\r\n return null;\r\n let { class: klass, style } = props;\r\n if (klass && !isString(klass)) {\r\n props.class = normalizeClass(klass);\r\n }\r\n if (style) {\r\n props.style = normalizeStyle(style);\r\n }\r\n return props;\r\n}\r\n\r\nconst HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\r\nconst SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\r\nconst MATH_TAGS = \"annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics\";\r\nconst VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\r\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\r\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\r\nconst isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);\r\nconst isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\r\n\r\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\r\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\r\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\r\n specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\r\n);\r\nfunction includeBooleanAttr(value) {\r\n return !!value || value === \"\";\r\n}\r\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\r\nconst attrValidationCache = {};\r\nfunction isSSRSafeAttrName(name) {\r\n if (attrValidationCache.hasOwnProperty(name)) {\r\n return attrValidationCache[name];\r\n }\r\n const isUnsafe = unsafeAttrCharRE.test(name);\r\n if (isUnsafe) {\r\n console.error(`unsafe attribute name: ${name}`);\r\n }\r\n return attrValidationCache[name] = !isUnsafe;\r\n}\r\nconst propsToAttrMap = {\r\n acceptCharset: \"accept-charset\",\r\n className: \"class\",\r\n htmlFor: \"for\",\r\n httpEquiv: \"http-equiv\"\r\n};\r\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\r\n `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`\r\n);\r\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\r\n `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`\r\n);\r\nfunction isRenderableAttrValue(value) {\r\n if (value == null) {\r\n return false;\r\n }\r\n const type = typeof value;\r\n return type === \"string\" || type === \"number\" || type === \"boolean\";\r\n}\r\n\r\nconst escapeRE = /[\"'&<>]/;\r\nfunction escapeHtml(string) {\r\n const str = \"\" + string;\r\n const match = escapeRE.exec(str);\r\n if (!match) {\r\n return str;\r\n }\r\n let html = \"\";\r\n let escaped;\r\n let index;\r\n let lastIndex = 0;\r\n for (index = match.index; index < str.length; index++) {\r\n switch (str.charCodeAt(index)) {\r\n case 34:\r\n escaped = \""\";\r\n break;\r\n case 38:\r\n escaped = \"&\";\r\n break;\r\n case 39:\r\n escaped = \"'\";\r\n break;\r\n case 60:\r\n escaped = \"<\";\r\n break;\r\n case 62:\r\n escaped = \">\";\r\n break;\r\n default:\r\n continue;\r\n }\r\n if (lastIndex !== index) {\r\n html += str.slice(lastIndex, index);\r\n }\r\n lastIndex = index + 1;\r\n html += escaped;\r\n }\r\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\r\n}\r\nconst commentStripRE = /^-?>||--!>| looseEqual(item, val));\r\n}\r\n\r\nconst toDisplayString = (val) => {\r\n return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? JSON.stringify(val, replacer, 2) : String(val);\r\n};\r\nconst replacer = (_key, val) => {\r\n if (val && val.__v_isRef) {\r\n return replacer(_key, val.value);\r\n } else if (isMap(val)) {\r\n return {\r\n [`Map(${val.size})`]: [...val.entries()].reduce(\r\n (entries, [key, val2], i) => {\r\n entries[stringifySymbol(key, i) + \" =>\"] = val2;\r\n return entries;\r\n },\r\n {}\r\n )\r\n };\r\n } else if (isSet(val)) {\r\n return {\r\n [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))\r\n };\r\n } else if (isSymbol(val)) {\r\n return stringifySymbol(val);\r\n } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\r\n return String(val);\r\n }\r\n return val;\r\n};\r\nconst stringifySymbol = (v, i = \"\") => {\r\n var _a;\r\n return isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v;\r\n};\r\n\r\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, PatchFlags, ShapeFlags, SlotFlags, camelize, capitalize, def, escapeHtml, escapeHtmlComment, extend, genPropsAccessExp, generateCodeFrame, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyAllowed, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownSvgAttr, isMap, isMathMLTag, isModelListener, isObject, isOn, isPlainObject, isPromise, isRegExp, isRenderableAttrValue, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, looseToNumber, makeMap, normalizeClass, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\r\n","const isObject = (val) => val !== null && typeof val === 'object';\r\nconst defaultDelimiters = ['{', '}'];\r\nclass BaseFormatter {\r\n constructor() {\r\n this._caches = Object.create(null);\r\n }\r\n interpolate(message, values, delimiters = defaultDelimiters) {\r\n if (!values) {\r\n return [message];\r\n }\r\n let tokens = this._caches[message];\r\n if (!tokens) {\r\n tokens = parse(message, delimiters);\r\n this._caches[message] = tokens;\r\n }\r\n return compile(tokens, values);\r\n }\r\n}\r\nconst RE_TOKEN_LIST_VALUE = /^(?:\\d)+/;\r\nconst RE_TOKEN_NAMED_VALUE = /^(?:\\w)+/;\r\nfunction parse(format, [startDelimiter, endDelimiter]) {\r\n const tokens = [];\r\n let position = 0;\r\n let text = '';\r\n while (position < format.length) {\r\n let char = format[position++];\r\n if (char === startDelimiter) {\r\n if (text) {\r\n tokens.push({ type: 'text', value: text });\r\n }\r\n text = '';\r\n let sub = '';\r\n char = format[position++];\r\n while (char !== undefined && char !== endDelimiter) {\r\n sub += char;\r\n char = format[position++];\r\n }\r\n const isClosed = char === endDelimiter;\r\n const type = RE_TOKEN_LIST_VALUE.test(sub)\r\n ? 'list'\r\n : isClosed && RE_TOKEN_NAMED_VALUE.test(sub)\r\n ? 'named'\r\n : 'unknown';\r\n tokens.push({ value: sub, type });\r\n }\r\n // else if (char === '%') {\r\n // // when found rails i18n syntax, skip text capture\r\n // if (format[position] !== '{') {\r\n // text += char\r\n // }\r\n // }\r\n else {\r\n text += char;\r\n }\r\n }\r\n text && tokens.push({ type: 'text', value: text });\r\n return tokens;\r\n}\r\nfunction compile(tokens, values) {\r\n const compiled = [];\r\n let index = 0;\r\n const mode = Array.isArray(values)\r\n ? 'list'\r\n : isObject(values)\r\n ? 'named'\r\n : 'unknown';\r\n if (mode === 'unknown') {\r\n return compiled;\r\n }\r\n while (index < tokens.length) {\r\n const token = tokens[index];\r\n switch (token.type) {\r\n case 'text':\r\n compiled.push(token.value);\r\n break;\r\n case 'list':\r\n compiled.push(values[parseInt(token.value, 10)]);\r\n break;\r\n case 'named':\r\n if (mode === 'named') {\r\n compiled.push(values[token.value]);\r\n }\r\n else {\r\n if (process.env.NODE_ENV !== 'production') {\r\n console.warn(`Type of token '${token.type}' and format of value '${mode}' don't match!`);\r\n }\r\n }\r\n break;\r\n case 'unknown':\r\n if (process.env.NODE_ENV !== 'production') {\r\n console.warn(`Detect 'unknown' type of token!`);\r\n }\r\n break;\r\n }\r\n index++;\r\n }\r\n return compiled;\r\n}\r\n\r\nconst LOCALE_ZH_HANS = 'zh-Hans';\r\nconst LOCALE_ZH_HANT = 'zh-Hant';\r\nconst LOCALE_EN = 'en';\r\nconst LOCALE_FR = 'fr';\r\nconst LOCALE_ES = 'es';\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\r\nconst defaultFormatter = new BaseFormatter();\r\nfunction include(str, parts) {\r\n return !!parts.find((part) => str.indexOf(part) !== -1);\r\n}\r\nfunction startsWith(str, parts) {\r\n return parts.find((part) => str.indexOf(part) === 0);\r\n}\r\nfunction normalizeLocale(locale, messages) {\r\n if (!locale) {\r\n return;\r\n }\r\n locale = locale.trim().replace(/_/g, '-');\r\n if (messages && messages[locale]) {\r\n return locale;\r\n }\r\n locale = locale.toLowerCase();\r\n if (locale === 'chinese') {\r\n // 支付宝\r\n return LOCALE_ZH_HANS;\r\n }\r\n if (locale.indexOf('zh') === 0) {\r\n if (locale.indexOf('-hans') > -1) {\r\n return LOCALE_ZH_HANS;\r\n }\r\n if (locale.indexOf('-hant') > -1) {\r\n return LOCALE_ZH_HANT;\r\n }\r\n if (include(locale, ['-tw', '-hk', '-mo', '-cht'])) {\r\n return LOCALE_ZH_HANT;\r\n }\r\n return LOCALE_ZH_HANS;\r\n }\r\n let locales = [LOCALE_EN, LOCALE_FR, LOCALE_ES];\r\n if (messages && Object.keys(messages).length > 0) {\r\n locales = Object.keys(messages);\r\n }\r\n const lang = startsWith(locale, locales);\r\n if (lang) {\r\n return lang;\r\n }\r\n}\r\nclass I18n {\r\n constructor({ locale, fallbackLocale, messages, watcher, formater, }) {\r\n this.locale = LOCALE_EN;\r\n this.fallbackLocale = LOCALE_EN;\r\n this.message = {};\r\n this.messages = {};\r\n this.watchers = [];\r\n if (fallbackLocale) {\r\n this.fallbackLocale = fallbackLocale;\r\n }\r\n this.formater = formater || defaultFormatter;\r\n this.messages = messages || {};\r\n this.setLocale(locale || LOCALE_EN);\r\n if (watcher) {\r\n this.watchLocale(watcher);\r\n }\r\n }\r\n setLocale(locale) {\r\n const oldLocale = this.locale;\r\n this.locale = normalizeLocale(locale, this.messages) || this.fallbackLocale;\r\n if (!this.messages[this.locale]) {\r\n // 可能初始化时不存在\r\n this.messages[this.locale] = {};\r\n }\r\n this.message = this.messages[this.locale];\r\n // 仅发生变化时,通知\r\n if (oldLocale !== this.locale) {\r\n this.watchers.forEach((watcher) => {\r\n watcher(this.locale, oldLocale);\r\n });\r\n }\r\n }\r\n getLocale() {\r\n return this.locale;\r\n }\r\n watchLocale(fn) {\r\n const index = this.watchers.push(fn) - 1;\r\n return () => {\r\n this.watchers.splice(index, 1);\r\n };\r\n }\r\n add(locale, message, override = true) {\r\n const curMessages = this.messages[locale];\r\n if (curMessages) {\r\n if (override) {\r\n Object.assign(curMessages, message);\r\n }\r\n else {\r\n Object.keys(message).forEach((key) => {\r\n if (!hasOwn(curMessages, key)) {\r\n curMessages[key] = message[key];\r\n }\r\n });\r\n }\r\n }\r\n else {\r\n this.messages[locale] = message;\r\n }\r\n }\r\n f(message, values, delimiters) {\r\n return this.formater.interpolate(message, values, delimiters).join('');\r\n }\r\n t(key, locale, values) {\r\n let message = this.message;\r\n if (typeof locale === 'string') {\r\n locale = normalizeLocale(locale, this.messages);\r\n locale && (message = this.messages[locale]);\r\n }\r\n else {\r\n values = locale;\r\n }\r\n if (!hasOwn(message, key)) {\r\n console.warn(`Cannot translate the value of keypath ${key}. Use the value of keypath as default.`);\r\n return key;\r\n }\r\n return this.formater.interpolate(message[key], values).join('');\r\n }\r\n}\r\n\r\nfunction watchAppLocale(appVm, i18n) {\r\n // 需要保证 watch 的触发在组件渲染之前\r\n if (appVm.$watchLocale) {\r\n // vue2\r\n appVm.$watchLocale((newLocale) => {\r\n i18n.setLocale(newLocale);\r\n });\r\n }\r\n else {\r\n appVm.$watch(() => appVm.$locale, (newLocale) => {\r\n i18n.setLocale(newLocale);\r\n });\r\n }\r\n}\r\nfunction getDefaultLocale() {\r\n if (typeof uni !== 'undefined' && uni.getLocale) {\r\n return uni.getLocale();\r\n }\r\n // 小程序平台,uni 和 uni-i18n 互相引用,导致访问不到 uni,故在 global 上挂了 getLocale\r\n if (typeof global !== 'undefined' && global.getLocale) {\r\n return global.getLocale();\r\n }\r\n return LOCALE_EN;\r\n}\r\nfunction initVueI18n(locale, messages = {}, fallbackLocale, watcher) {\r\n // 兼容旧版本入参\r\n if (typeof locale !== 'string') {\r\n // ;[locale, messages] = [\r\n // messages as unknown as string,\r\n // locale as unknown as LocaleMessages,\r\n // ]\r\n // 暂不使用数组解构,uts编译器暂未支持。\r\n const options = [\r\n messages,\r\n locale,\r\n ];\r\n locale = options[0];\r\n messages = options[1];\r\n }\r\n if (typeof locale !== 'string') {\r\n // 因为小程序平台,uni-i18n 和 uni 互相引用,导致此时访问 uni 时,为 undefined\r\n locale = getDefaultLocale();\r\n }\r\n if (typeof fallbackLocale !== 'string') {\r\n fallbackLocale =\r\n (typeof __uniConfig !== 'undefined' && __uniConfig.fallbackLocale) ||\r\n LOCALE_EN;\r\n }\r\n const i18n = new I18n({\r\n locale,\r\n fallbackLocale,\r\n messages,\r\n watcher,\r\n });\r\n let t = (key, values) => {\r\n if (typeof getApp !== 'function') {\r\n // app view\r\n /* eslint-disable no-func-assign */\r\n t = function (key, values) {\r\n return i18n.t(key, values);\r\n };\r\n }\r\n else {\r\n let isWatchedAppLocale = false;\r\n t = function (key, values) {\r\n const appVm = getApp().$vm;\r\n // 可能$vm还不存在,比如在支付宝小程序中,组件定义较早,在props的default里使用了t()函数(如uni-goods-nav),此时app还未初始化\r\n // options: {\r\n // \ttype: Array,\r\n // \tdefault () {\r\n // \t\treturn [{\r\n // \t\t\ticon: 'shop',\r\n // \t\t\ttext: t(\"uni-goods-nav.options.shop\"),\r\n // \t\t}, {\r\n // \t\t\ticon: 'cart',\r\n // \t\t\ttext: t(\"uni-goods-nav.options.cart\")\r\n // \t\t}]\r\n // \t}\r\n // },\r\n if (appVm) {\r\n // 触发响应式\r\n appVm.$locale;\r\n if (!isWatchedAppLocale) {\r\n isWatchedAppLocale = true;\r\n watchAppLocale(appVm, i18n);\r\n }\r\n }\r\n return i18n.t(key, values);\r\n };\r\n }\r\n return t(key, values);\r\n };\r\n return {\r\n i18n,\r\n f(message, values, delimiters) {\r\n return i18n.f(message, values, delimiters);\r\n },\r\n t(key, values) {\r\n return t(key, values);\r\n },\r\n add(locale, message, override = true) {\r\n return i18n.add(locale, message, override);\r\n },\r\n watch(fn) {\r\n return i18n.watchLocale(fn);\r\n },\r\n getLocale() {\r\n return i18n.getLocale();\r\n },\r\n setLocale(newLocale) {\r\n return i18n.setLocale(newLocale);\r\n },\r\n };\r\n}\r\n\r\nconst isString = (val) => typeof val === 'string';\r\nlet formater;\r\nfunction hasI18nJson(jsonObj, delimiters) {\r\n if (!formater) {\r\n formater = new BaseFormatter();\r\n }\r\n return walkJsonObj(jsonObj, (jsonObj, key) => {\r\n const value = jsonObj[key];\r\n if (isString(value)) {\r\n if (isI18nStr(value, delimiters)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n return hasI18nJson(value, delimiters);\r\n }\r\n });\r\n}\r\nfunction parseI18nJson(jsonObj, values, delimiters) {\r\n if (!formater) {\r\n formater = new BaseFormatter();\r\n }\r\n walkJsonObj(jsonObj, (jsonObj, key) => {\r\n const value = jsonObj[key];\r\n if (isString(value)) {\r\n if (isI18nStr(value, delimiters)) {\r\n jsonObj[key] = compileStr(value, values, delimiters);\r\n }\r\n }\r\n else {\r\n parseI18nJson(value, values, delimiters);\r\n }\r\n });\r\n return jsonObj;\r\n}\r\nfunction compileI18nJsonStr(jsonStr, { locale, locales, delimiters, }) {\r\n if (!isI18nStr(jsonStr, delimiters)) {\r\n return jsonStr;\r\n }\r\n if (!formater) {\r\n formater = new BaseFormatter();\r\n }\r\n const localeValues = [];\r\n Object.keys(locales).forEach((name) => {\r\n if (name !== locale) {\r\n localeValues.push({\r\n locale: name,\r\n values: locales[name],\r\n });\r\n }\r\n });\r\n localeValues.unshift({ locale, values: locales[locale] });\r\n try {\r\n return JSON.stringify(compileJsonObj(JSON.parse(jsonStr), localeValues, delimiters), null, 2);\r\n }\r\n catch (e) { }\r\n return jsonStr;\r\n}\r\nfunction isI18nStr(value, delimiters) {\r\n return value.indexOf(delimiters[0]) > -1;\r\n}\r\nfunction compileStr(value, values, delimiters) {\r\n return formater.interpolate(value, values, delimiters).join('');\r\n}\r\nfunction compileValue(jsonObj, key, localeValues, delimiters) {\r\n const value = jsonObj[key];\r\n if (isString(value)) {\r\n // 存在国际化\r\n if (isI18nStr(value, delimiters)) {\r\n jsonObj[key] = compileStr(value, localeValues[0].values, delimiters);\r\n if (localeValues.length > 1) {\r\n // 格式化国际化语言\r\n const valueLocales = (jsonObj[key + 'Locales'] = {});\r\n localeValues.forEach((localValue) => {\r\n valueLocales[localValue.locale] = compileStr(value, localValue.values, delimiters);\r\n });\r\n }\r\n }\r\n }\r\n else {\r\n compileJsonObj(value, localeValues, delimiters);\r\n }\r\n}\r\nfunction compileJsonObj(jsonObj, localeValues, delimiters) {\r\n walkJsonObj(jsonObj, (jsonObj, key) => {\r\n compileValue(jsonObj, key, localeValues, delimiters);\r\n });\r\n return jsonObj;\r\n}\r\nfunction walkJsonObj(jsonObj, walk) {\r\n if (Array.isArray(jsonObj)) {\r\n for (let i = 0; i < jsonObj.length; i++) {\r\n if (walk(jsonObj, i)) {\r\n return true;\r\n }\r\n }\r\n }\r\n else if (isObject(jsonObj)) {\r\n for (const key in jsonObj) {\r\n if (walk(jsonObj, key)) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n}\r\n\r\nfunction resolveLocale(locales) {\r\n return (locale) => {\r\n if (!locale) {\r\n return locale;\r\n }\r\n locale = normalizeLocale(locale) || locale;\r\n return resolveLocaleChain(locale).find((locale) => locales.indexOf(locale) > -1);\r\n };\r\n}\r\nfunction resolveLocaleChain(locale) {\r\n const chain = [];\r\n const tokens = locale.split('-');\r\n while (tokens.length) {\r\n chain.push(tokens.join('-'));\r\n tokens.pop();\r\n }\r\n return chain;\r\n}\r\n\r\nexport { BaseFormatter as Formatter, I18n, LOCALE_EN, LOCALE_ES, LOCALE_FR, LOCALE_ZH_HANS, LOCALE_ZH_HANT, compileI18nJsonStr, hasI18nJson, initVueI18n, isI18nStr, isString, normalizeLocale, parseI18nJson, resolveLocale };\r\n","import { isHTMLTag, isSVGTag, isString, isFunction, isPlainObject, hyphenate, camelize, normalizeStyle as normalizeStyle$1, parseStringStyle, isArray, normalizeClass as normalizeClass$1, extend, capitalize } from '@vue/shared';\r\n\r\nconst BUILT_IN_TAG_NAMES = [\r\n 'ad',\r\n 'ad-content-page',\r\n 'ad-draw',\r\n 'audio',\r\n 'button',\r\n 'camera',\r\n 'canvas',\r\n 'checkbox',\r\n 'checkbox-group',\r\n 'cover-image',\r\n 'cover-view',\r\n 'editor',\r\n 'form',\r\n 'functional-page-navigator',\r\n 'icon',\r\n 'image',\r\n 'input',\r\n 'label',\r\n 'live-player',\r\n 'live-pusher',\r\n 'map',\r\n 'movable-area',\r\n 'movable-view',\r\n 'navigator',\r\n 'official-account',\r\n 'open-data',\r\n 'picker',\r\n 'picker-view',\r\n 'picker-view-column',\r\n 'progress',\r\n 'radio',\r\n 'radio-group',\r\n 'rich-text',\r\n 'scroll-view',\r\n 'slider',\r\n 'swiper',\r\n 'swiper-item',\r\n 'switch',\r\n 'text',\r\n 'textarea',\r\n 'video',\r\n 'view',\r\n 'web-view',\r\n 'location-picker',\r\n 'location-view',\r\n];\r\nconst BUILT_IN_TAGS = BUILT_IN_TAG_NAMES.map((tag) => 'uni-' + tag);\r\nconst TAGS = [\r\n 'app',\r\n 'layout',\r\n 'content',\r\n 'main',\r\n 'top-window',\r\n 'left-window',\r\n 'right-window',\r\n 'tabbar',\r\n 'page',\r\n 'page-head',\r\n 'page-wrapper',\r\n 'page-body',\r\n 'page-refresh',\r\n 'actionsheet',\r\n 'modal',\r\n 'toast',\r\n 'resize-sensor',\r\n 'shadow-root',\r\n].map((tag) => 'uni-' + tag);\r\nconst NVUE_BUILT_IN_TAGS = [\r\n 'svg',\r\n 'view',\r\n 'a',\r\n 'div',\r\n 'img',\r\n 'image',\r\n 'text',\r\n 'span',\r\n 'input',\r\n 'textarea',\r\n 'spinner',\r\n 'select',\r\n // slider 被自定义 u-slider 替代\r\n // 'slider',\r\n 'slider-neighbor',\r\n 'indicator',\r\n 'canvas',\r\n 'list',\r\n 'cell',\r\n 'header',\r\n 'loading',\r\n 'loading-indicator',\r\n 'refresh',\r\n 'scrollable',\r\n 'scroller',\r\n 'video',\r\n 'web',\r\n 'embed',\r\n 'tabbar',\r\n 'tabheader',\r\n 'datepicker',\r\n 'timepicker',\r\n 'marquee',\r\n 'countdown',\r\n 'dc-switch',\r\n 'waterfall',\r\n 'richtext',\r\n 'recycle-list',\r\n 'u-scalable',\r\n 'barcode',\r\n 'gcanvas',\r\n];\r\nconst UVUE_BUILT_IN_TAGS = [\r\n 'ad',\r\n 'ad-content-page',\r\n 'ad-draw',\r\n 'native-view',\r\n 'loading-indicator',\r\n 'list-view',\r\n 'list-item',\r\n 'swiper',\r\n 'swiper-item',\r\n 'rich-text',\r\n 'sticky-view',\r\n 'sticky-header',\r\n 'sticky-section',\r\n // 自定义\r\n 'uni-slider',\r\n // 原生实现\r\n 'button',\r\n 'nested-scroll-header',\r\n 'nested-scroll-body',\r\n 'waterflow',\r\n 'flow-item',\r\n];\r\nconst UVUE_WEB_BUILT_IN_TAGS = [\r\n 'list-view',\r\n 'list-item',\r\n 'sticky-section',\r\n 'sticky-header',\r\n 'cloud-db-element',\r\n].map((tag) => 'uni-' + tag);\r\nconst UVUE_IOS_BUILT_IN_TAGS = [\r\n 'scroll-view',\r\n 'web-view',\r\n 'slider',\r\n 'form',\r\n 'switch',\r\n];\r\nconst NVUE_U_BUILT_IN_TAGS = [\r\n 'u-text',\r\n 'u-image',\r\n 'u-input',\r\n 'u-textarea',\r\n 'u-video',\r\n 'u-web-view',\r\n 'u-slider',\r\n 'u-ad',\r\n 'u-ad-draw',\r\n 'u-rich-text',\r\n];\r\nconst UNI_UI_CONFLICT_TAGS = ['list-item'].map((tag) => 'uni-' + tag);\r\nfunction isBuiltInComponent(tag) {\r\n if (UNI_UI_CONFLICT_TAGS.indexOf(tag) !== -1) {\r\n return false;\r\n }\r\n // h5 平台会被转换为 v-uni-\r\n const realTag = 'uni-' + tag.replace('v-uni-', '');\r\n // TODO 区分x和非x\r\n return (BUILT_IN_TAGS.indexOf(realTag) !== -1 ||\r\n UVUE_WEB_BUILT_IN_TAGS.indexOf(realTag) !== -1);\r\n}\r\nfunction isH5CustomElement(tag, isX = false) {\r\n if (isX && UVUE_WEB_BUILT_IN_TAGS.indexOf(tag) !== -1) {\r\n return true;\r\n }\r\n return TAGS.indexOf(tag) !== -1 || BUILT_IN_TAGS.indexOf(tag) !== -1;\r\n}\r\nfunction isUniXElement(name) {\r\n return /^I?Uni.*Element(?:Impl)?$/.test(name);\r\n}\r\nfunction isH5NativeTag(tag) {\r\n return (tag !== 'head' &&\r\n (isHTMLTag(tag) || isSVGTag(tag)) &&\r\n !isBuiltInComponent(tag));\r\n}\r\nfunction isAppNativeTag(tag) {\r\n return isHTMLTag(tag) || isSVGTag(tag) || isBuiltInComponent(tag);\r\n}\r\nconst NVUE_CUSTOM_COMPONENTS = [\r\n 'ad',\r\n 'ad-draw',\r\n 'button',\r\n 'checkbox-group',\r\n 'checkbox',\r\n 'form',\r\n 'icon',\r\n 'label',\r\n 'movable-area',\r\n 'movable-view',\r\n 'navigator',\r\n 'picker',\r\n 'progress',\r\n 'radio-group',\r\n 'radio',\r\n 'rich-text',\r\n 'swiper-item',\r\n 'swiper',\r\n 'switch',\r\n 'slider',\r\n 'picker-view',\r\n 'picker-view-column',\r\n];\r\n// 内置的easycom组件\r\nconst UVUE_BUILT_IN_EASY_COMPONENTS = ['map'];\r\nfunction isAppUVueBuiltInEasyComponent(tag) {\r\n return UVUE_BUILT_IN_EASY_COMPONENTS.includes(tag);\r\n}\r\n// 主要是指前端实现的组件列表\r\nconst UVUE_CUSTOM_COMPONENTS = [\r\n ...NVUE_CUSTOM_COMPONENTS,\r\n ...UVUE_BUILT_IN_EASY_COMPONENTS,\r\n];\r\nfunction isAppUVueNativeTag(tag) {\r\n // 前端实现的内置组件都会注册一个根组件\r\n if (tag.startsWith('uni-') && tag.endsWith('-element')) {\r\n return true;\r\n }\r\n if (UVUE_BUILT_IN_TAGS.includes(tag)) {\r\n return true;\r\n }\r\n if (UVUE_CUSTOM_COMPONENTS.includes(tag)) {\r\n return false;\r\n }\r\n if (isBuiltInComponent(tag)) {\r\n return true;\r\n }\r\n // u-text,u-video...\r\n if (NVUE_U_BUILT_IN_TAGS.includes(tag)) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction isAppIOSUVueNativeTag(tag) {\r\n // 前端实现的内置组件都会注册一个根组件\r\n if (tag.startsWith('uni-') && tag.endsWith('-element')) {\r\n return true;\r\n }\r\n if (NVUE_BUILT_IN_TAGS.includes(tag)) {\r\n return true;\r\n }\r\n if (UVUE_BUILT_IN_TAGS.includes(tag)) {\r\n return true;\r\n }\r\n if (UVUE_IOS_BUILT_IN_TAGS.includes(tag)) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction isAppNVueNativeTag(tag) {\r\n if (NVUE_BUILT_IN_TAGS.includes(tag)) {\r\n return true;\r\n }\r\n if (NVUE_CUSTOM_COMPONENTS.includes(tag)) {\r\n return false;\r\n }\r\n if (isBuiltInComponent(tag)) {\r\n return true;\r\n }\r\n // u-text,u-video...\r\n if (NVUE_U_BUILT_IN_TAGS.includes(tag)) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction isMiniProgramNativeTag(tag) {\r\n return isBuiltInComponent(tag);\r\n}\r\nfunction isMiniProgramUVueNativeTag(tag) {\r\n // 小程序平台内置的自定义元素,会被转换为 view\r\n if (tag.startsWith('uni-') && tag.endsWith('-element')) {\r\n return true;\r\n }\r\n return isBuiltInComponent(tag);\r\n}\r\nfunction createIsCustomElement(tags = []) {\r\n return function isCustomElement(tag) {\r\n return tags.includes(tag);\r\n };\r\n}\r\nfunction isComponentTag(tag) {\r\n return tag[0].toLowerCase() + tag.slice(1) === 'component';\r\n}\r\nconst COMPONENT_SELECTOR_PREFIX = 'uni-';\r\nconst COMPONENT_PREFIX = 'v-' + COMPONENT_SELECTOR_PREFIX;\r\n\r\nconst LINEFEED = '\\n';\r\nconst NAVBAR_HEIGHT = 44;\r\nconst TABBAR_HEIGHT = 50;\r\nconst ON_REACH_BOTTOM_DISTANCE = 50;\r\nconst RESPONSIVE_MIN_WIDTH = 768;\r\nconst UNI_STORAGE_LOCALE = 'UNI_LOCALE';\r\n// quickapp-webview 不能使用 default 作为插槽名称\r\nconst SLOT_DEFAULT_NAME = 'd';\r\nconst COMPONENT_NAME_PREFIX = 'VUni';\r\nconst I18N_JSON_DELIMITERS = ['%', '%'];\r\nconst PRIMARY_COLOR = '#007aff';\r\nconst SELECTED_COLOR = '#0062cc'; // 选中的颜色,如选项卡默认的选中颜色\r\nconst BACKGROUND_COLOR = '#f7f7f7'; // 背景色,如标题栏默认背景色\r\nconst UNI_SSR = '__uniSSR';\r\nconst UNI_SSR_TITLE = 'title';\r\nconst UNI_SSR_STORE = 'store';\r\nconst UNI_SSR_DATA = 'data';\r\nconst UNI_SSR_GLOBAL_DATA = 'globalData';\r\nconst SCHEME_RE = /^([a-z-]+:)?\\/\\//i;\r\nconst DATA_RE = /^data:.*,.*/;\r\nconst WEB_INVOKE_APPSERVICE = 'WEB_INVOKE_APPSERVICE';\r\nconst WXS_PROTOCOL = 'wxs://';\r\nconst JSON_PROTOCOL = 'json://';\r\nconst WXS_MODULES = 'wxsModules';\r\nconst RENDERJS_MODULES = 'renderjsModules';\r\n// lifecycle\r\n// App and Page\r\nconst ON_SHOW = 'onShow';\r\nconst ON_HIDE = 'onHide';\r\n//App\r\nconst ON_LAUNCH = 'onLaunch';\r\nconst ON_ERROR = 'onError';\r\nconst ON_THEME_CHANGE = 'onThemeChange';\r\nconst OFF_THEME_CHANGE = 'offThemeChange';\r\nconst ON_HOST_THEME_CHANGE = 'onHostThemeChange';\r\nconst OFF_HOST_THEME_CHANGE = 'offHostThemeChange';\r\nconst ON_KEYBOARD_HEIGHT_CHANGE = 'onKeyboardHeightChange';\r\nconst ON_PAGE_NOT_FOUND = 'onPageNotFound';\r\nconst ON_UNHANDLE_REJECTION = 'onUnhandledRejection';\r\nconst ON_EXIT = 'onExit';\r\n//Page\r\nconst ON_LOAD = 'onLoad';\r\nconst ON_READY = 'onReady';\r\nconst ON_UNLOAD = 'onUnload';\r\n// 百度特有\r\nconst ON_INIT = 'onInit';\r\n// 微信特有\r\nconst ON_SAVE_EXIT_STATE = 'onSaveExitState';\r\nconst ON_RESIZE = 'onResize';\r\nconst ON_BACK_PRESS = 'onBackPress';\r\nconst ON_PAGE_SCROLL = 'onPageScroll';\r\nconst ON_TAB_ITEM_TAP = 'onTabItemTap';\r\nconst ON_REACH_BOTTOM = 'onReachBottom';\r\nconst ON_PULL_DOWN_REFRESH = 'onPullDownRefresh';\r\nconst ON_SHARE_TIMELINE = 'onShareTimeline';\r\nconst ON_SHARE_CHAT = 'onShareChat'; // xhs-share\r\nconst ON_ADD_TO_FAVORITES = 'onAddToFavorites';\r\nconst ON_SHARE_APP_MESSAGE = 'onShareAppMessage';\r\n// navigationBar\r\nconst ON_NAVIGATION_BAR_BUTTON_TAP = 'onNavigationBarButtonTap';\r\nconst ON_NAVIGATION_BAR_CHANGE = 'onNavigationBarChange';\r\nconst ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED = 'onNavigationBarSearchInputClicked';\r\nconst ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED = 'onNavigationBarSearchInputChanged';\r\nconst ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED = 'onNavigationBarSearchInputConfirmed';\r\nconst ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED = 'onNavigationBarSearchInputFocusChanged';\r\n// framework\r\nconst ON_APP_ENTER_FOREGROUND = 'onAppEnterForeground';\r\nconst ON_APP_ENTER_BACKGROUND = 'onAppEnterBackground';\r\nconst ON_WEB_INVOKE_APP_SERVICE = 'onWebInvokeAppService';\r\nconst ON_WXS_INVOKE_CALL_METHOD = 'onWxsInvokeCallMethod';\r\n// mergeVirtualHostAttributes\r\nconst VIRTUAL_HOST_STYLE = 'virtualHostStyle';\r\nconst VIRTUAL_HOST_CLASS = 'virtualHostClass';\r\nconst VIRTUAL_HOST_HIDDEN = 'virtualHostHidden';\r\nconst VIRTUAL_HOST_ID = 'virtualHostId';\r\n\r\nfunction cache(fn) {\r\n const cache = Object.create(null);\r\n return (str) => {\r\n const hit = cache[str];\r\n return hit || (cache[str] = fn(str));\r\n };\r\n}\r\nfunction cacheStringFunction(fn) {\r\n return cache(fn);\r\n}\r\nfunction getLen(str = '') {\r\n return ('' + str).replace(/[^\\x00-\\xff]/g, '**').length;\r\n}\r\nfunction hasLeadingSlash(str) {\r\n return str.indexOf('/') === 0;\r\n}\r\nfunction addLeadingSlash(str) {\r\n return hasLeadingSlash(str) ? str : '/' + str;\r\n}\r\nfunction removeLeadingSlash(str) {\r\n return hasLeadingSlash(str) ? str.slice(1) : str;\r\n}\r\nconst invokeArrayFns = (fns, arg) => {\r\n let ret;\r\n for (let i = 0; i < fns.length; i++) {\r\n ret = fns[i](arg);\r\n }\r\n return ret;\r\n};\r\nfunction updateElementStyle(element, styles) {\r\n for (const attrName in styles) {\r\n element.style[attrName] = styles[attrName];\r\n }\r\n}\r\nfunction once(fn, ctx = null) {\r\n let res;\r\n return ((...args) => {\r\n if (fn) {\r\n res = fn.apply(ctx, args);\r\n fn = null;\r\n }\r\n return res;\r\n });\r\n}\r\nconst sanitise = (val) => (val && JSON.parse(JSON.stringify(val))) || val;\r\nconst _completeValue = (value) => (value > 9 ? value : '0' + value);\r\nfunction formatDateTime({ date = new Date(), mode = 'date' }) {\r\n if (mode === 'time') {\r\n return (_completeValue(date.getHours()) + ':' + _completeValue(date.getMinutes()));\r\n }\r\n else {\r\n return (date.getFullYear() +\r\n '-' +\r\n _completeValue(date.getMonth() + 1) +\r\n '-' +\r\n _completeValue(date.getDate()));\r\n }\r\n}\r\nfunction callOptions(options, data) {\r\n options = options || {};\r\n if (isString(data)) {\r\n data = {\r\n errMsg: data,\r\n };\r\n }\r\n if (/:ok$/.test(data.errMsg)) {\r\n if (isFunction(options.success)) {\r\n options.success(data);\r\n }\r\n }\r\n else {\r\n if (isFunction(options.fail)) {\r\n options.fail(data);\r\n }\r\n }\r\n if (isFunction(options.complete)) {\r\n options.complete(data);\r\n }\r\n}\r\nfunction getValueByDataPath(obj, path) {\r\n if (!isString(path)) {\r\n return;\r\n }\r\n path = path.replace(/\\[(\\d+)\\]/g, '.$1');\r\n const parts = path.split('.');\r\n let key = parts[0];\r\n if (!obj) {\r\n obj = {};\r\n }\r\n if (parts.length === 1) {\r\n return obj[key];\r\n }\r\n return getValueByDataPath(obj[key], parts.slice(1).join('.'));\r\n}\r\nfunction sortObject(obj) {\r\n let sortObj = {};\r\n if (isPlainObject(obj)) {\r\n Object.keys(obj)\r\n .sort()\r\n .forEach((key) => {\r\n const _key = key;\r\n sortObj[_key] = obj[_key];\r\n });\r\n }\r\n return !Object.keys(sortObj) ? obj : sortObj;\r\n}\r\nfunction getGlobalOnce() {\r\n if (typeof globalThis !== 'undefined') {\r\n return globalThis;\r\n }\r\n // worker\r\n if (typeof self !== 'undefined') {\r\n return self;\r\n }\r\n // browser\r\n if (typeof window !== 'undefined') {\r\n return window;\r\n }\r\n // nodejs\r\n // if (typeof global !== 'undefined') {\r\n // return global\r\n // }\r\n function g() {\r\n return this;\r\n }\r\n if (typeof g() !== 'undefined') {\r\n return g();\r\n }\r\n return (function () {\r\n return new Function('return this')();\r\n })();\r\n}\r\nlet g = undefined;\r\nfunction getGlobal() {\r\n if (g) {\r\n return g;\r\n }\r\n g = getGlobalOnce();\r\n return g;\r\n}\r\n\r\nfunction isComponentInternalInstance(vm) {\r\n return !!vm.appContext;\r\n}\r\nfunction resolveComponentInstance(instance) {\r\n return (instance &&\r\n (isComponentInternalInstance(instance) ? instance.proxy : instance));\r\n}\r\nfunction resolveOwnerVm(vm) {\r\n if (!vm) {\r\n return;\r\n }\r\n let componentName = vm.type.name;\r\n while (componentName && isBuiltInComponent(hyphenate(componentName))) {\r\n // ownerInstance 内置组件需要使用父 vm\r\n vm = vm.parent;\r\n componentName = vm.type.name;\r\n }\r\n return vm.proxy;\r\n}\r\nfunction isElement(el) {\r\n // Element\r\n return el.nodeType === 1;\r\n}\r\nfunction resolveOwnerEl(instance, multi = false) {\r\n const { vnode } = instance;\r\n if (isElement(vnode.el)) {\r\n return multi ? (vnode.el ? [vnode.el] : []) : vnode.el;\r\n }\r\n const { subTree } = instance;\r\n // ShapeFlags.ARRAY_CHILDREN = 1<<4\r\n if (subTree.shapeFlag & 16) {\r\n const elemVNodes = subTree.children.filter((vnode) => vnode.el && isElement(vnode.el));\r\n if (elemVNodes.length > 0) {\r\n if (multi) {\r\n return elemVNodes.map((node) => node.el);\r\n }\r\n return elemVNodes[0].el;\r\n }\r\n }\r\n return multi ? (vnode.el ? [vnode.el] : []) : vnode.el;\r\n}\r\nfunction dynamicSlotName(name) {\r\n return name === 'default' ? SLOT_DEFAULT_NAME : name;\r\n}\r\nconst customizeRE = /:/g;\r\nfunction customizeEvent(str) {\r\n return camelize(str.replace(customizeRE, '-'));\r\n}\r\nfunction normalizeStyle(value) {\r\n const g = getGlobal();\r\n if (g && g.UTSJSONObject && value instanceof g.UTSJSONObject) {\r\n const styleObject = {};\r\n g.UTSJSONObject.keys(value).forEach((key) => {\r\n styleObject[key] = value[key];\r\n });\r\n return normalizeStyle$1(styleObject);\r\n }\r\n else if (value instanceof Map) {\r\n const styleObject = {};\r\n value.forEach((value, key) => {\r\n styleObject[key] = value;\r\n });\r\n return normalizeStyle$1(styleObject);\r\n }\r\n else if (isString(value)) {\r\n return parseStringStyle(value);\r\n }\r\n else if (isArray(value)) {\r\n const res = {};\r\n for (let i = 0; i < value.length; i++) {\r\n const item = value[i];\r\n const normalized = isString(item)\r\n ? parseStringStyle(item)\r\n : normalizeStyle(item);\r\n if (normalized) {\r\n for (const key in normalized) {\r\n res[key] = normalized[key];\r\n }\r\n }\r\n }\r\n return res;\r\n }\r\n else {\r\n return normalizeStyle$1(value);\r\n }\r\n}\r\nfunction normalizeClass(value) {\r\n let res = '';\r\n const g = getGlobal();\r\n if (g && g.UTSJSONObject && value instanceof g.UTSJSONObject) {\r\n g.UTSJSONObject.keys(value).forEach((key) => {\r\n if (value[key]) {\r\n res += key + ' ';\r\n }\r\n });\r\n }\r\n else if (value instanceof Map) {\r\n value.forEach((value, key) => {\r\n if (value) {\r\n res += key + ' ';\r\n }\r\n });\r\n }\r\n else if (isArray(value)) {\r\n for (let i = 0; i < value.length; i++) {\r\n const normalized = normalizeClass(value[i]);\r\n if (normalized) {\r\n res += normalized + ' ';\r\n }\r\n }\r\n }\r\n else {\r\n res = normalizeClass$1(value);\r\n }\r\n return res.trim();\r\n}\r\nfunction normalizeProps(props) {\r\n if (!props)\r\n return null;\r\n let { class: klass, style } = props;\r\n if (klass && !isString(klass)) {\r\n props.class = normalizeClass(klass);\r\n }\r\n if (style) {\r\n props.style = normalizeStyle(style);\r\n }\r\n return props;\r\n}\r\n\r\nlet lastLogTime = 0;\r\nfunction formatLog(module, ...args) {\r\n const now = Date.now();\r\n const diff = lastLogTime ? now - lastLogTime : 0;\r\n lastLogTime = now;\r\n return `[${now}][${diff}ms][${module}]:${args\r\n .map((arg) => JSON.stringify(arg))\r\n .join(' ')}`;\r\n}\r\n\r\nfunction formatKey(key) {\r\n return camelize(key.substring(5));\r\n}\r\n// question/139181,增加副作用,避免 initCustomDataset 在 build 下被 tree-shaking\r\nconst initCustomDatasetOnce = /*#__PURE__*/ once((isBuiltInElement) => {\r\n isBuiltInElement =\r\n isBuiltInElement || ((el) => el.tagName.startsWith('UNI-'));\r\n const prototype = HTMLElement.prototype;\r\n const setAttribute = prototype.setAttribute;\r\n prototype.setAttribute = function (key, value) {\r\n if (key.startsWith('data-') && isBuiltInElement(this)) {\r\n const dataset = this.__uniDataset ||\r\n (this.__uniDataset = {});\r\n dataset[formatKey(key)] = value;\r\n }\r\n setAttribute.call(this, key, value);\r\n };\r\n const removeAttribute = prototype.removeAttribute;\r\n prototype.removeAttribute = function (key) {\r\n if (this.__uniDataset &&\r\n key.startsWith('data-') &&\r\n isBuiltInElement(this)) {\r\n delete this.__uniDataset[formatKey(key)];\r\n }\r\n removeAttribute.call(this, key);\r\n };\r\n});\r\nfunction getCustomDataset(el) {\r\n return extend({}, el.dataset, el.__uniDataset);\r\n}\r\n\r\nconst unitRE = new RegExp(`\"[^\"]+\"|'[^']+'|url\\\\([^)]+\\\\)|(\\\\d*\\\\.?\\\\d+)[r|u]px`, 'g');\r\nfunction toFixed(number, precision) {\r\n const multiplier = Math.pow(10, precision + 1);\r\n const wholeNumber = Math.floor(number * multiplier);\r\n return (Math.round(wholeNumber / 10) * 10) / multiplier;\r\n}\r\nconst defaultRpx2Unit = {\r\n unit: 'rem',\r\n unitRatio: 10 / 320,\r\n unitPrecision: 5,\r\n};\r\nconst defaultMiniProgramRpx2Unit = {\r\n unit: 'rpx',\r\n unitRatio: 1,\r\n unitPrecision: 1,\r\n};\r\nconst defaultNVueRpx2Unit = defaultMiniProgramRpx2Unit;\r\nfunction createRpx2Unit(unit, unitRatio, unitPrecision) {\r\n // ignore: rpxCalcIncludeWidth\r\n return (val) => val.replace(unitRE, (m, $1) => {\r\n if (!$1) {\r\n return m;\r\n }\r\n if (unitRatio === 1) {\r\n return `${$1}${unit}`;\r\n }\r\n const value = toFixed(parseFloat($1) * unitRatio, unitPrecision);\r\n return value === 0 ? '0' : `${value}${unit}`;\r\n });\r\n}\r\n\r\nfunction passive(passive) {\r\n return { passive };\r\n}\r\nfunction normalizeDataset(el) {\r\n // TODO\r\n return JSON.parse(JSON.stringify(el.dataset || {}));\r\n}\r\nfunction normalizeTarget(el) {\r\n const { id, offsetTop, offsetLeft } = el;\r\n return {\r\n id,\r\n dataset: getCustomDataset(el),\r\n offsetTop,\r\n offsetLeft,\r\n };\r\n}\r\nfunction addFont(family, source, desc) {\r\n const fonts = document.fonts;\r\n if (fonts) {\r\n const fontFace = new FontFace(family, source, desc);\r\n return fontFace.load().then(() => {\r\n fonts.add && fonts.add(fontFace);\r\n });\r\n }\r\n return new Promise((resolve) => {\r\n const style = document.createElement('style');\r\n const values = [];\r\n if (desc) {\r\n const { style, weight, stretch, unicodeRange, variant, featureSettings } = desc;\r\n style && values.push(`font-style:${style}`);\r\n weight && values.push(`font-weight:${weight}`);\r\n stretch && values.push(`font-stretch:${stretch}`);\r\n unicodeRange && values.push(`unicode-range:${unicodeRange}`);\r\n variant && values.push(`font-variant:${variant}`);\r\n featureSettings && values.push(`font-feature-settings:${featureSettings}`);\r\n }\r\n style.innerText = `@font-face{font-family:\"${family}\";src:${source};${values.join(';')}}`;\r\n document.head.appendChild(style);\r\n resolve();\r\n });\r\n}\r\nfunction scrollTo(scrollTop, duration, isH5) {\r\n if (isString(scrollTop)) {\r\n const el = document.querySelector(scrollTop);\r\n if (el) {\r\n const { top } = el.getBoundingClientRect();\r\n scrollTop = top + window.pageYOffset;\r\n // 如果存在,减去 高度\r\n const pageHeader = document.querySelector('uni-page-head');\r\n if (pageHeader) {\r\n scrollTop -= pageHeader.offsetHeight;\r\n }\r\n }\r\n }\r\n if (scrollTop < 0) {\r\n scrollTop = 0;\r\n }\r\n const documentElement = document.documentElement;\r\n const { clientHeight, scrollHeight } = documentElement;\r\n scrollTop = Math.min(scrollTop, scrollHeight - clientHeight);\r\n if (duration === 0) {\r\n // 部分浏览器(比如微信)中 scrollTop 的值需要通过 document.body 来控制\r\n documentElement.scrollTop = document.body.scrollTop = scrollTop;\r\n return;\r\n }\r\n if (window.scrollY === scrollTop) {\r\n return;\r\n }\r\n const scrollTo = (duration) => {\r\n if (duration <= 0) {\r\n window.scrollTo(0, scrollTop);\r\n return;\r\n }\r\n const distaince = scrollTop - window.scrollY;\r\n requestAnimationFrame(function () {\r\n window.scrollTo(0, window.scrollY + (distaince / duration) * 10);\r\n scrollTo(duration - 10);\r\n });\r\n };\r\n scrollTo(duration);\r\n}\r\n\r\nconst encode = encodeURIComponent;\r\nfunction stringifyQuery(obj, encodeStr = encode) {\r\n const res = obj\r\n ? Object.keys(obj)\r\n .map((key) => {\r\n let val = obj[key];\r\n if (typeof val === undefined || val === null) {\r\n val = '';\r\n }\r\n else if (isPlainObject(val)) {\r\n val = JSON.stringify(val);\r\n }\r\n return encodeStr(key) + '=' + encodeStr(val);\r\n })\r\n .filter((x) => x.length > 0)\r\n .join('&')\r\n : null;\r\n return res ? `?${res}` : '';\r\n}\r\n/**\r\n * Decode text using `decodeURIComponent`. Returns the original text if it\r\n * fails.\r\n *\r\n * @param text - string to decode\r\n * @returns decoded string\r\n */\r\nfunction decode(text) {\r\n try {\r\n return decodeURIComponent('' + text);\r\n }\r\n catch (err) { }\r\n return '' + text;\r\n}\r\nfunction decodedQuery(query = {}) {\r\n const decodedQuery = {};\r\n Object.keys(query).forEach((name) => {\r\n try {\r\n decodedQuery[name] = decode(query[name]);\r\n }\r\n catch (e) {\r\n decodedQuery[name] = query[name];\r\n }\r\n });\r\n return decodedQuery;\r\n}\r\nconst PLUS_RE = /\\+/g; // %2B\r\n/**\r\n * https://github.com/vuejs/vue-router-next/blob/master/src/query.ts\r\n * @internal\r\n *\r\n * @param search - search string to parse\r\n * @returns a query object\r\n */\r\nfunction parseQuery(search) {\r\n const query = {};\r\n // avoid creating an object with an empty key and empty value\r\n // because of split('&')\r\n if (search === '' || search === '?')\r\n return query;\r\n const hasLeadingIM = search[0] === '?';\r\n const searchParams = (hasLeadingIM ? search.slice(1) : search).split('&');\r\n for (let i = 0; i < searchParams.length; ++i) {\r\n // pre decode the + into space\r\n const searchParam = searchParams[i].replace(PLUS_RE, ' ');\r\n // allow the = character\r\n let eqPos = searchParam.indexOf('=');\r\n let key = decode(eqPos < 0 ? searchParam : searchParam.slice(0, eqPos));\r\n let value = eqPos < 0 ? null : decode(searchParam.slice(eqPos + 1));\r\n if (key in query) {\r\n // an extra variable for ts types\r\n let currentValue = query[key];\r\n if (!isArray(currentValue)) {\r\n currentValue = query[key] = [currentValue];\r\n }\r\n currentValue.push(value);\r\n }\r\n else {\r\n query[key] = value;\r\n }\r\n }\r\n return query;\r\n}\r\n\r\nfunction parseUrl(url) {\r\n const [path, querystring] = url.split('?', 2);\r\n return {\r\n path,\r\n query: parseQuery(querystring || ''),\r\n };\r\n}\r\n\r\nfunction parseNVueDataset(attr) {\r\n const dataset = {};\r\n if (attr) {\r\n Object.keys(attr).forEach((key) => {\r\n if (key.indexOf('data-') === 0) {\r\n dataset[key.replace('data-', '')] = attr[key];\r\n }\r\n });\r\n }\r\n return dataset;\r\n}\r\n\r\nfunction plusReady(callback) {\r\n if (!isFunction(callback)) {\r\n return;\r\n }\r\n if (window.plus) {\r\n return callback();\r\n }\r\n document.addEventListener('plusready', callback);\r\n}\r\n\r\nclass DOMException extends Error {\r\n constructor(message) {\r\n super(message);\r\n this.name = 'DOMException';\r\n }\r\n}\r\n\r\nfunction normalizeEventType(type, options) {\r\n if (options) {\r\n if (options.capture) {\r\n type += 'Capture';\r\n }\r\n if (options.once) {\r\n type += 'Once';\r\n }\r\n if (options.passive) {\r\n type += 'Passive';\r\n }\r\n }\r\n return `on${capitalize(camelize(type))}`;\r\n}\r\nclass UniEvent {\r\n constructor(type, opts) {\r\n this.defaultPrevented = false;\r\n this.timeStamp = Date.now();\r\n this._stop = false;\r\n this._end = false;\r\n this.type = type;\r\n this.bubbles = !!opts.bubbles;\r\n this.cancelable = !!opts.cancelable;\r\n }\r\n preventDefault() {\r\n this.defaultPrevented = true;\r\n }\r\n stopImmediatePropagation() {\r\n this._end = this._stop = true;\r\n }\r\n stopPropagation() {\r\n this._stop = true;\r\n }\r\n}\r\nfunction createUniEvent(evt) {\r\n if (evt instanceof UniEvent) {\r\n return evt;\r\n }\r\n const [type] = parseEventName(evt.type);\r\n const uniEvent = new UniEvent(type, {\r\n bubbles: false,\r\n cancelable: false,\r\n });\r\n extend(uniEvent, evt);\r\n return uniEvent;\r\n}\r\nclass UniEventTarget {\r\n constructor() {\r\n this.listeners = Object.create(null);\r\n }\r\n dispatchEvent(evt) {\r\n const listeners = this.listeners[evt.type];\r\n if (!listeners) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n console.error(formatLog('dispatchEvent', this.nodeId), evt.type, 'not found');\r\n }\r\n return false;\r\n }\r\n // 格式化事件类型\r\n const event = createUniEvent(evt);\r\n const len = listeners.length;\r\n for (let i = 0; i < len; i++) {\r\n listeners[i].call(this, event);\r\n if (event._end) {\r\n break;\r\n }\r\n }\r\n return event.cancelable && event.defaultPrevented;\r\n }\r\n addEventListener(type, listener, options) {\r\n type = normalizeEventType(type, options);\r\n (this.listeners[type] || (this.listeners[type] = [])).push(listener);\r\n }\r\n removeEventListener(type, callback, options) {\r\n type = normalizeEventType(type, options);\r\n const listeners = this.listeners[type];\r\n if (!listeners) {\r\n return;\r\n }\r\n const index = listeners.indexOf(callback);\r\n if (index > -1) {\r\n listeners.splice(index, 1);\r\n }\r\n }\r\n}\r\nconst optionsModifierRE = /(?:Once|Passive|Capture)$/;\r\nfunction parseEventName(name) {\r\n let options;\r\n if (optionsModifierRE.test(name)) {\r\n options = {};\r\n let m;\r\n while ((m = name.match(optionsModifierRE))) {\r\n name = name.slice(0, name.length - m[0].length);\r\n options[m[0].toLowerCase()] = true;\r\n }\r\n }\r\n return [hyphenate(name.slice(2)), options];\r\n}\r\n\r\nconst EventModifierFlags = /*#__PURE__*/ (() => {\r\n return {\r\n stop: 1,\r\n prevent: 1 << 1,\r\n self: 1 << 2,\r\n };\r\n})();\r\nfunction encodeModifier(modifiers) {\r\n let flag = 0;\r\n if (modifiers.includes('stop')) {\r\n flag |= EventModifierFlags.stop;\r\n }\r\n if (modifiers.includes('prevent')) {\r\n flag |= EventModifierFlags.prevent;\r\n }\r\n if (modifiers.includes('self')) {\r\n flag |= EventModifierFlags.self;\r\n }\r\n return flag;\r\n}\r\n\r\nconst NODE_TYPE_PAGE = 0;\r\nconst NODE_TYPE_ELEMENT = 1;\r\nconst NODE_TYPE_TEXT = 3;\r\nconst NODE_TYPE_COMMENT = 8;\r\nfunction sibling(node, type) {\r\n const { parentNode } = node;\r\n if (!parentNode) {\r\n return null;\r\n }\r\n const { childNodes } = parentNode;\r\n return childNodes[childNodes.indexOf(node) + (type === 'n' ? 1 : -1)] || null;\r\n}\r\nfunction removeNode(node) {\r\n const { parentNode } = node;\r\n if (parentNode) {\r\n const { childNodes } = parentNode;\r\n const index = childNodes.indexOf(node);\r\n if (index > -1) {\r\n node.parentNode = null;\r\n childNodes.splice(index, 1);\r\n }\r\n }\r\n}\r\nfunction checkNodeId(node) {\r\n if (!node.nodeId && node.pageNode) {\r\n node.nodeId = node.pageNode.genId();\r\n }\r\n}\r\n// 为优化性能,各平台不使用proxy来实现node的操作拦截,而是直接通过pageNode定制\r\nclass UniNode extends UniEventTarget {\r\n constructor(nodeType, nodeName, container) {\r\n super();\r\n this.pageNode = null;\r\n this.parentNode = null;\r\n this._text = null;\r\n if (container) {\r\n const { pageNode } = container;\r\n if (pageNode) {\r\n this.pageNode = pageNode;\r\n this.nodeId = pageNode.genId();\r\n !pageNode.isUnmounted && pageNode.onCreate(this, nodeName);\r\n }\r\n }\r\n this.nodeType = nodeType;\r\n this.nodeName = nodeName;\r\n this.childNodes = [];\r\n }\r\n get firstChild() {\r\n return this.childNodes[0] || null;\r\n }\r\n get lastChild() {\r\n const { childNodes } = this;\r\n const length = childNodes.length;\r\n return length ? childNodes[length - 1] : null;\r\n }\r\n get nextSibling() {\r\n return sibling(this, 'n');\r\n }\r\n get nodeValue() {\r\n return null;\r\n }\r\n set nodeValue(_val) { }\r\n get textContent() {\r\n return this._text || '';\r\n }\r\n set textContent(text) {\r\n this._text = text;\r\n if (this.pageNode && !this.pageNode.isUnmounted) {\r\n this.pageNode.onTextContent(this, text);\r\n }\r\n }\r\n get parentElement() {\r\n const { parentNode } = this;\r\n if (parentNode && parentNode.nodeType === NODE_TYPE_ELEMENT) {\r\n return parentNode;\r\n }\r\n return null;\r\n }\r\n get previousSibling() {\r\n return sibling(this, 'p');\r\n }\r\n appendChild(newChild) {\r\n return this.insertBefore(newChild, null);\r\n }\r\n cloneNode(deep) {\r\n const cloned = extend(Object.create(Object.getPrototypeOf(this)), this);\r\n const { attributes } = cloned;\r\n if (attributes) {\r\n cloned.attributes = extend({}, attributes);\r\n }\r\n if (deep) {\r\n cloned.childNodes = cloned.childNodes.map((childNode) => childNode.cloneNode(true));\r\n }\r\n return cloned;\r\n }\r\n insertBefore(newChild, refChild) {\r\n // 先从现在的父节点移除(注意:不能触发onRemoveChild,否则会生成先remove该 id,再 insert)\r\n removeNode(newChild);\r\n newChild.pageNode = this.pageNode;\r\n newChild.parentNode = this;\r\n checkNodeId(newChild);\r\n const { childNodes } = this;\r\n if (refChild) {\r\n const index = childNodes.indexOf(refChild);\r\n if (index === -1) {\r\n throw new DOMException(`Failed to execute 'insertBefore' on 'Node': The node before which the new node is to be inserted is not a child of this node.`);\r\n }\r\n childNodes.splice(index, 0, newChild);\r\n }\r\n else {\r\n childNodes.push(newChild);\r\n }\r\n return this.pageNode && !this.pageNode.isUnmounted\r\n ? this.pageNode.onInsertBefore(this, newChild, refChild)\r\n : newChild;\r\n }\r\n removeChild(oldChild) {\r\n const { childNodes } = this;\r\n const index = childNodes.indexOf(oldChild);\r\n if (index === -1) {\r\n throw new DOMException(`Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node.`);\r\n }\r\n oldChild.parentNode = null;\r\n childNodes.splice(index, 1);\r\n return this.pageNode && !this.pageNode.isUnmounted\r\n ? this.pageNode.onRemoveChild(oldChild)\r\n : oldChild;\r\n }\r\n}\r\nconst ATTR_CLASS = 'class';\r\nconst ATTR_STYLE = 'style';\r\nconst ATTR_INNER_HTML = 'innerHTML';\r\nconst ATTR_TEXT_CONTENT = 'textContent';\r\nconst ATTR_V_SHOW = '.vShow';\r\nconst ATTR_V_OWNER_ID = '.vOwnerId';\r\nconst ATTR_V_RENDERJS = '.vRenderjs';\r\nconst ATTR_CHANGE_PREFIX = 'change:';\r\nclass UniBaseNode extends UniNode {\r\n constructor(nodeType, nodeName, container) {\r\n super(nodeType, nodeName, container);\r\n this.attributes = Object.create(null);\r\n this.style = null;\r\n this.vShow = null;\r\n this._html = null;\r\n }\r\n get className() {\r\n return (this.attributes[ATTR_CLASS] || '');\r\n }\r\n set className(val) {\r\n this.setAttribute(ATTR_CLASS, val);\r\n }\r\n get innerHTML() {\r\n return '';\r\n }\r\n set innerHTML(html) {\r\n this._html = html;\r\n }\r\n addEventListener(type, listener, options) {\r\n super.addEventListener(type, listener, options);\r\n if (this.pageNode && !this.pageNode.isUnmounted) {\r\n if (listener.wxsEvent) {\r\n this.pageNode.onAddWxsEvent(this, normalizeEventType(type, options), listener.wxsEvent, encodeModifier(listener.modifiers || []));\r\n }\r\n else {\r\n this.pageNode.onAddEvent(this, normalizeEventType(type, options), encodeModifier(listener.modifiers || []));\r\n }\r\n }\r\n }\r\n removeEventListener(type, callback, options) {\r\n super.removeEventListener(type, callback, options);\r\n if (this.pageNode && !this.pageNode.isUnmounted) {\r\n this.pageNode.onRemoveEvent(this, normalizeEventType(type, options));\r\n }\r\n }\r\n getAttribute(qualifiedName) {\r\n if (qualifiedName === ATTR_STYLE) {\r\n return this.style;\r\n }\r\n return this.attributes[qualifiedName];\r\n }\r\n removeAttribute(qualifiedName) {\r\n if (qualifiedName == ATTR_STYLE) {\r\n this.style = null;\r\n }\r\n else {\r\n delete this.attributes[qualifiedName];\r\n }\r\n if (this.pageNode && !this.pageNode.isUnmounted) {\r\n this.pageNode.onRemoveAttribute(this, qualifiedName);\r\n }\r\n }\r\n setAttribute(qualifiedName, value) {\r\n if (qualifiedName === ATTR_STYLE) {\r\n this.style = value;\r\n }\r\n else {\r\n this.attributes[qualifiedName] = value;\r\n }\r\n if (this.pageNode && !this.pageNode.isUnmounted) {\r\n this.pageNode.onSetAttribute(this, qualifiedName, value);\r\n }\r\n }\r\n toJSON({ attr, normalize, } = {}) {\r\n const { attributes, style, listeners, _text } = this;\r\n const res = {};\r\n if (Object.keys(attributes).length) {\r\n res.a = normalize ? normalize(attributes) : attributes;\r\n }\r\n const events = Object.keys(listeners);\r\n if (events.length) {\r\n let w = undefined;\r\n const e = {};\r\n events.forEach((name) => {\r\n const handlers = listeners[name];\r\n if (handlers.length) {\r\n // 可能存在多个 handler 且不同 modifiers 吗?\r\n const { wxsEvent, modifiers } = handlers[0];\r\n const modifier = encodeModifier(modifiers || []);\r\n if (!wxsEvent) {\r\n e[name] = modifier;\r\n }\r\n else {\r\n if (!w) {\r\n w = {};\r\n }\r\n w[name] = [normalize ? normalize(wxsEvent) : wxsEvent, modifier];\r\n }\r\n }\r\n });\r\n res.e = normalize ? normalize(e, false) : e;\r\n if (w) {\r\n res.w = normalize ? normalize(w, false) : w;\r\n }\r\n }\r\n if (style !== null) {\r\n res.s = normalize ? normalize(style) : style;\r\n }\r\n if (!attr) {\r\n res.i = this.nodeId;\r\n res.n = this.nodeName;\r\n }\r\n if (_text !== null) {\r\n res.t = normalize ? normalize(_text) : _text;\r\n }\r\n return res;\r\n }\r\n}\r\n\r\nclass UniCommentNode extends UniNode {\r\n constructor(text, container) {\r\n super(NODE_TYPE_COMMENT, '#comment', container);\r\n this._text = (process.env.NODE_ENV !== 'production') ? text : '';\r\n }\r\n toJSON(opts = {}) {\r\n // 暂时不传递 text 到 view 层,没啥意义,节省点数据量\r\n return opts.attr\r\n ? {}\r\n : {\r\n i: this.nodeId,\r\n };\r\n // return opts.attr\r\n // ? { t: this._text as string }\r\n // : {\r\n // i: this.nodeId!,\r\n // t: this._text as string,\r\n // }\r\n }\r\n}\r\n\r\nclass UniElement extends UniBaseNode {\r\n constructor(nodeName, container) {\r\n super(NODE_TYPE_ELEMENT, nodeName.toUpperCase(), container);\r\n this.tagName = this.nodeName;\r\n }\r\n}\r\nclass UniInputElement extends UniElement {\r\n get value() {\r\n return this.getAttribute('value');\r\n }\r\n set value(val) {\r\n this.setAttribute('value', val);\r\n }\r\n}\r\nclass UniTextAreaElement extends UniInputElement {\r\n}\r\n\r\nclass UniTextNode extends UniBaseNode {\r\n constructor(text, container) {\r\n super(NODE_TYPE_TEXT, '#text', container);\r\n this._text = text;\r\n }\r\n get nodeValue() {\r\n return this._text || '';\r\n }\r\n set nodeValue(text) {\r\n this._text = text;\r\n if (this.pageNode && !this.pageNode.isUnmounted) {\r\n this.pageNode.onNodeValue(this, text);\r\n }\r\n }\r\n}\r\n\r\nconst forcePatchProps = {\r\n AD: ['data'],\r\n 'AD-DRAW': ['data'],\r\n 'LIVE-PLAYER': ['picture-in-picture-mode'],\r\n MAP: [\r\n 'markers',\r\n 'polyline',\r\n 'circles',\r\n 'controls',\r\n 'include-points',\r\n 'polygons',\r\n ],\r\n PICKER: ['range', 'value'],\r\n 'PICKER-VIEW': ['value'],\r\n 'RICH-TEXT': ['nodes'],\r\n VIDEO: ['danmu-list', 'header'],\r\n 'WEB-VIEW': ['webview-styles'],\r\n};\r\nconst forcePatchPropKeys = ['animation'];\r\n\r\nconst forcePatchProp = (el, key) => {\r\n if (forcePatchPropKeys.indexOf(key) > -1) {\r\n return true;\r\n }\r\n const keys = forcePatchProps[el.nodeName];\r\n if (keys && keys.indexOf(key) > -1) {\r\n return true;\r\n }\r\n return false;\r\n};\r\n\r\nconst ACTION_TYPE_PAGE_CREATE = 1;\r\nconst ACTION_TYPE_PAGE_CREATED = 2;\r\nconst ACTION_TYPE_CREATE = 3;\r\nconst ACTION_TYPE_INSERT = 4;\r\nconst ACTION_TYPE_REMOVE = 5;\r\nconst ACTION_TYPE_SET_ATTRIBUTE = 6;\r\nconst ACTION_TYPE_REMOVE_ATTRIBUTE = 7;\r\nconst ACTION_TYPE_ADD_EVENT = 8;\r\nconst ACTION_TYPE_REMOVE_EVENT = 9;\r\nconst ACTION_TYPE_SET_TEXT = 10;\r\nconst ACTION_TYPE_ADD_WXS_EVENT = 12;\r\nconst ACTION_TYPE_PAGE_SCROLL = 15;\r\nconst ACTION_TYPE_EVENT = 20;\r\n\r\n/**\r\n * 需要手动传入 timer,主要是解决 App 平台的定制 timer\r\n */\r\nfunction debounce(fn, delay, { clearTimeout, setTimeout }) {\r\n let timeout;\r\n const newFn = function () {\r\n clearTimeout(timeout);\r\n const timerFn = () => fn.apply(this, arguments);\r\n timeout = setTimeout(timerFn, delay);\r\n };\r\n newFn.cancel = function () {\r\n clearTimeout(timeout);\r\n };\r\n return newFn;\r\n}\r\n\r\nclass EventChannel {\r\n constructor(id, events) {\r\n this.id = id;\r\n this.listener = {};\r\n this.emitCache = [];\r\n if (events) {\r\n Object.keys(events).forEach((name) => {\r\n this.on(name, events[name]);\r\n });\r\n }\r\n }\r\n emit(eventName, ...args) {\r\n const fns = this.listener[eventName];\r\n if (!fns) {\r\n return this.emitCache.push({\r\n eventName,\r\n args,\r\n });\r\n }\r\n fns.forEach((opt) => {\r\n opt.fn.apply(opt.fn, args);\r\n });\r\n this.listener[eventName] = fns.filter((opt) => opt.type !== 'once');\r\n }\r\n on(eventName, fn) {\r\n this._addListener(eventName, 'on', fn);\r\n this._clearCache(eventName);\r\n }\r\n once(eventName, fn) {\r\n this._addListener(eventName, 'once', fn);\r\n this._clearCache(eventName);\r\n }\r\n off(eventName, fn) {\r\n const fns = this.listener[eventName];\r\n if (!fns) {\r\n return;\r\n }\r\n if (fn) {\r\n for (let i = 0; i < fns.length;) {\r\n if (fns[i].fn === fn) {\r\n fns.splice(i, 1);\r\n i--;\r\n }\r\n i++;\r\n }\r\n }\r\n else {\r\n delete this.listener[eventName];\r\n }\r\n }\r\n _clearCache(eventName) {\r\n for (let index = 0; index < this.emitCache.length; index++) {\r\n const cache = this.emitCache[index];\r\n const _name = eventName\r\n ? cache.eventName === eventName\r\n ? eventName\r\n : null\r\n : cache.eventName;\r\n if (!_name)\r\n continue;\r\n const location = this.emit.apply(this, [_name, ...cache.args]);\r\n if (typeof location === 'number') {\r\n this.emitCache.pop();\r\n continue;\r\n }\r\n this.emitCache.splice(index, 1);\r\n index--;\r\n }\r\n }\r\n _addListener(eventName, type, fn) {\r\n (this.listener[eventName] || (this.listener[eventName] = [])).push({\r\n fn,\r\n type,\r\n });\r\n }\r\n}\r\n\r\nconst PAGE_HOOKS = [\r\n ON_INIT,\r\n ON_LOAD,\r\n ON_SHOW,\r\n ON_HIDE,\r\n ON_UNLOAD,\r\n ON_BACK_PRESS,\r\n ON_PAGE_SCROLL,\r\n ON_TAB_ITEM_TAP,\r\n ON_REACH_BOTTOM,\r\n ON_PULL_DOWN_REFRESH,\r\n ON_SHARE_TIMELINE,\r\n ON_SHARE_APP_MESSAGE,\r\n ON_SHARE_CHAT,\r\n ON_ADD_TO_FAVORITES,\r\n ON_SAVE_EXIT_STATE,\r\n ON_NAVIGATION_BAR_BUTTON_TAP,\r\n ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED,\r\n ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED,\r\n ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED,\r\n ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED,\r\n];\r\nfunction isRootImmediateHook(name) {\r\n const PAGE_SYNC_HOOKS = [ON_LOAD, ON_SHOW];\r\n return PAGE_SYNC_HOOKS.indexOf(name) > -1;\r\n}\r\n// isRootImmediateHookX deprecated\r\nfunction isRootHook(name) {\r\n return PAGE_HOOKS.indexOf(name) > -1;\r\n}\r\nconst UniLifecycleHooks = [\r\n ON_SHOW,\r\n ON_HIDE,\r\n ON_LAUNCH,\r\n ON_ERROR,\r\n ON_THEME_CHANGE,\r\n ON_PAGE_NOT_FOUND,\r\n ON_UNHANDLE_REJECTION,\r\n ON_EXIT,\r\n ON_INIT,\r\n ON_LOAD,\r\n ON_READY,\r\n ON_UNLOAD,\r\n ON_RESIZE,\r\n ON_BACK_PRESS,\r\n ON_PAGE_SCROLL,\r\n ON_TAB_ITEM_TAP,\r\n ON_REACH_BOTTOM,\r\n ON_PULL_DOWN_REFRESH,\r\n ON_SHARE_TIMELINE,\r\n ON_ADD_TO_FAVORITES,\r\n ON_SHARE_APP_MESSAGE,\r\n ON_SHARE_CHAT,\r\n ON_SAVE_EXIT_STATE,\r\n ON_NAVIGATION_BAR_BUTTON_TAP,\r\n ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED,\r\n ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED,\r\n ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED,\r\n ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED,\r\n];\r\nconst MINI_PROGRAM_PAGE_RUNTIME_HOOKS = /*#__PURE__*/ (() => {\r\n return {\r\n onPageScroll: 1,\r\n onShareAppMessage: 1 << 1,\r\n onShareTimeline: 1 << 2,\r\n };\r\n})();\r\nfunction isUniLifecycleHook(name, value, checkType = true) {\r\n // 检查类型\r\n if (checkType && !isFunction(value)) {\r\n return false;\r\n }\r\n if (UniLifecycleHooks.indexOf(name) > -1) {\r\n // 已预定义\r\n return true;\r\n }\r\n else if (name.indexOf('on') === 0) {\r\n // 以 on 开头\r\n return true;\r\n }\r\n return false;\r\n}\r\n\r\nlet vueApp;\r\nconst createVueAppHooks = [];\r\n/**\r\n * 提供 createApp 的回调事件,方便三方插件接收 App 对象,处理挂靠全局 mixin 之类的逻辑\r\n */\r\nfunction onCreateVueApp(hook) {\r\n // TODO 每个 nvue 页面都会触发\r\n if (vueApp) {\r\n return hook(vueApp);\r\n }\r\n createVueAppHooks.push(hook);\r\n}\r\nfunction invokeCreateVueAppHook(app) {\r\n vueApp = app;\r\n createVueAppHooks.forEach((hook) => hook(app));\r\n}\r\nconst invokeCreateErrorHandler = once((app, createErrorHandler) => {\r\n // 不再判断开发者是否监听了onError,直接返回 createErrorHandler,内部 errorHandler 会调用开发者自定义的 errorHandler,以及判断开发者是否监听了onError\r\n return createErrorHandler(app);\r\n});\r\n\r\nconst E = function () {\r\n // Keep this empty so it's easier to inherit from\r\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\r\n};\r\nE.prototype = {\r\n _id: 1,\r\n on: function (name, callback, ctx) {\r\n var e = this.e || (this.e = {});\r\n (e[name] || (e[name] = [])).push({\r\n fn: callback,\r\n ctx: ctx,\r\n _id: this._id,\r\n });\r\n return this._id++;\r\n },\r\n once: function (name, callback, ctx) {\r\n var self = this;\r\n function listener() {\r\n self.off(name, listener);\r\n callback.apply(ctx, arguments);\r\n }\r\n listener._ = callback;\r\n return this.on(name, listener, ctx);\r\n },\r\n emit: function (name) {\r\n var data = [].slice.call(arguments, 1);\r\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\r\n var i = 0;\r\n var len = evtArr.length;\r\n for (i; i < len; i++) {\r\n evtArr[i].fn.apply(evtArr[i].ctx, data);\r\n }\r\n return this;\r\n },\r\n off: function (name, event) {\r\n var e = this.e || (this.e = {});\r\n var evts = e[name];\r\n var liveEvents = [];\r\n if (evts && event) {\r\n for (var i = evts.length - 1; i >= 0; i--) {\r\n if (evts[i].fn === event ||\r\n evts[i].fn._ === event ||\r\n evts[i]._id === event) {\r\n evts.splice(i, 1);\r\n break;\r\n }\r\n }\r\n liveEvents = evts;\r\n }\r\n // Remove event from queue to prevent memory leak\r\n // Suggested by https://github.com/lazd\r\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\r\n liveEvents.length ? (e[name] = liveEvents) : delete e[name];\r\n return this;\r\n },\r\n};\r\nvar E$1 = E;\r\n\r\nconst borderStyles = {\r\n black: 'rgba(0,0,0,0.4)',\r\n white: 'rgba(255,255,255,0.4)',\r\n};\r\nfunction normalizeTabBarStyles(borderStyle) {\r\n if (borderStyle && borderStyle in borderStyles) {\r\n return borderStyles[borderStyle];\r\n }\r\n return borderStyle;\r\n}\r\nfunction normalizeTitleColor(titleColor) {\r\n return titleColor === 'black' ? '#000000' : '#ffffff';\r\n}\r\nfunction resolveStringStyleItem(modeStyle, styleItem, key) {\r\n if (isString(styleItem) && styleItem.startsWith('@')) {\r\n const _key = styleItem.replace('@', '');\r\n let _styleItem = modeStyle[_key] || styleItem;\r\n switch (key) {\r\n case 'titleColor':\r\n _styleItem = normalizeTitleColor(_styleItem);\r\n break;\r\n case 'borderStyle':\r\n _styleItem = normalizeTabBarStyles(_styleItem);\r\n break;\r\n }\r\n return _styleItem;\r\n }\r\n return styleItem;\r\n}\r\nfunction normalizeStyles(pageStyle, themeConfig = {}, mode = 'light') {\r\n const modeStyle = themeConfig[mode];\r\n const styles = {};\r\n if (typeof modeStyle === 'undefined' || !pageStyle)\r\n return pageStyle;\r\n Object.keys(pageStyle).forEach((key) => {\r\n const styleItem = pageStyle[key]; // Object Array String\r\n const parseStyleItem = () => {\r\n if (isPlainObject(styleItem))\r\n return normalizeStyles(styleItem, themeConfig, mode);\r\n if (isArray(styleItem))\r\n return styleItem.map((item) => {\r\n if (typeof item === 'object')\r\n return normalizeStyles(item, themeConfig, mode);\r\n return resolveStringStyleItem(modeStyle, item);\r\n });\r\n return resolveStringStyleItem(modeStyle, styleItem, key);\r\n };\r\n styles[key] = parseStyleItem();\r\n });\r\n return styles;\r\n}\r\n\r\nfunction getEnvLocale() {\r\n const { env } = process;\r\n const lang = env.LC_ALL || env.LC_MESSAGES || env.LANG || env.LANGUAGE;\r\n return (lang && lang.replace(/[.:].*/, '')) || 'en';\r\n}\r\n\r\nexport { ACTION_TYPE_ADD_EVENT, ACTION_TYPE_ADD_WXS_EVENT, ACTION_TYPE_CREATE, ACTION_TYPE_EVENT, ACTION_TYPE_INSERT, ACTION_TYPE_PAGE_CREATE, ACTION_TYPE_PAGE_CREATED, ACTION_TYPE_PAGE_SCROLL, ACTION_TYPE_REMOVE, ACTION_TYPE_REMOVE_ATTRIBUTE, ACTION_TYPE_REMOVE_EVENT, ACTION_TYPE_SET_ATTRIBUTE, ACTION_TYPE_SET_TEXT, ATTR_CHANGE_PREFIX, ATTR_CLASS, ATTR_INNER_HTML, ATTR_STYLE, ATTR_TEXT_CONTENT, ATTR_V_OWNER_ID, ATTR_V_RENDERJS, ATTR_V_SHOW, BACKGROUND_COLOR, BUILT_IN_TAGS, BUILT_IN_TAG_NAMES, COMPONENT_NAME_PREFIX, COMPONENT_PREFIX, COMPONENT_SELECTOR_PREFIX, DATA_RE, E$1 as Emitter, EventChannel, EventModifierFlags, I18N_JSON_DELIMITERS, JSON_PROTOCOL, LINEFEED, MINI_PROGRAM_PAGE_RUNTIME_HOOKS, NAVBAR_HEIGHT, NODE_TYPE_COMMENT, NODE_TYPE_ELEMENT, NODE_TYPE_PAGE, NODE_TYPE_TEXT, NVUE_BUILT_IN_TAGS, NVUE_U_BUILT_IN_TAGS, OFF_HOST_THEME_CHANGE, OFF_THEME_CHANGE, ON_ADD_TO_FAVORITES, ON_APP_ENTER_BACKGROUND, ON_APP_ENTER_FOREGROUND, ON_BACK_PRESS, ON_ERROR, ON_EXIT, ON_HIDE, ON_HOST_THEME_CHANGE, ON_INIT, ON_KEYBOARD_HEIGHT_CHANGE, ON_LAUNCH, ON_LOAD, ON_NAVIGATION_BAR_BUTTON_TAP, ON_NAVIGATION_BAR_CHANGE, ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED, ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED, ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED, ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED, ON_PAGE_NOT_FOUND, ON_PAGE_SCROLL, ON_PULL_DOWN_REFRESH, ON_REACH_BOTTOM, ON_REACH_BOTTOM_DISTANCE, ON_READY, ON_RESIZE, ON_SAVE_EXIT_STATE, ON_SHARE_APP_MESSAGE, ON_SHARE_CHAT, ON_SHARE_TIMELINE, ON_SHOW, ON_TAB_ITEM_TAP, ON_THEME_CHANGE, ON_UNHANDLE_REJECTION, ON_UNLOAD, ON_WEB_INVOKE_APP_SERVICE, ON_WXS_INVOKE_CALL_METHOD, PLUS_RE, PRIMARY_COLOR, RENDERJS_MODULES, RESPONSIVE_MIN_WIDTH, SCHEME_RE, SELECTED_COLOR, SLOT_DEFAULT_NAME, TABBAR_HEIGHT, TAGS, UNI_SSR, UNI_SSR_DATA, UNI_SSR_GLOBAL_DATA, UNI_SSR_STORE, UNI_SSR_TITLE, UNI_STORAGE_LOCALE, UNI_UI_CONFLICT_TAGS, UVUE_BUILT_IN_TAGS, UVUE_IOS_BUILT_IN_TAGS, UVUE_WEB_BUILT_IN_TAGS, UniBaseNode, UniCommentNode, UniElement, UniEvent, UniInputElement, UniLifecycleHooks, UniNode, UniTextAreaElement, UniTextNode, VIRTUAL_HOST_CLASS, VIRTUAL_HOST_HIDDEN, VIRTUAL_HOST_ID, VIRTUAL_HOST_STYLE, WEB_INVOKE_APPSERVICE, WXS_MODULES, WXS_PROTOCOL, addFont, addLeadingSlash, borderStyles, cache, cacheStringFunction, callOptions, createIsCustomElement, createRpx2Unit, createUniEvent, customizeEvent, debounce, decode, decodedQuery, defaultMiniProgramRpx2Unit, defaultNVueRpx2Unit, defaultRpx2Unit, dynamicSlotName, forcePatchProp, formatDateTime, formatLog, getCustomDataset, getEnvLocale, getGlobal, getLen, getValueByDataPath, initCustomDatasetOnce, invokeArrayFns, invokeCreateErrorHandler, invokeCreateVueAppHook, isAppIOSUVueNativeTag, isAppNVueNativeTag, isAppNativeTag, isAppUVueBuiltInEasyComponent, isAppUVueNativeTag, isBuiltInComponent, isComponentInternalInstance, isComponentTag, isH5CustomElement, isH5NativeTag, isMiniProgramNativeTag, isMiniProgramUVueNativeTag, isRootHook, isRootImmediateHook, isUniLifecycleHook, isUniXElement, normalizeClass, normalizeDataset, normalizeEventType, normalizeProps, normalizeStyle, normalizeStyles, normalizeTabBarStyles, normalizeTarget, normalizeTitleColor, onCreateVueApp, once, parseEventName, parseNVueDataset, parseQuery, parseUrl, passive, plusReady, removeLeadingSlash, resolveComponentInstance, resolveOwnerEl, resolveOwnerVm, sanitise, scrollTo, sortObject, stringifyQuery, updateElementStyle };\r\n","import { isRootHook, getValueByDataPath, isUniLifecycleHook, ON_ERROR, UniLifecycleHooks, invokeCreateErrorHandler, dynamicSlotName } from '@dcloudio/uni-shared';\r\nimport { NOOP, extend, isSymbol, isObject, def, hasChanged, isFunction, isArray, isPromise, camelize, capitalize, EMPTY_OBJ, remove, toHandlerKey, hasOwn, hyphenate, isReservedProp, toRawType, isString, normalizeClass, normalizeStyle, isOn, toTypeString, isMap, isIntegerKey, isSet, isPlainObject, makeMap, invokeArrayFns, isBuiltInDirective, looseToNumber, NO, EMPTY_ARR, isModelListener, toNumber, toDisplayString } from '@vue/shared';\r\nexport { EMPTY_OBJ, camelize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\r\n\r\n/**\r\n* @dcloudio/uni-mp-vue v3.4.21\r\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\r\n* @license MIT\r\n**/\r\n\r\nfunction warn$2(msg, ...args) {\r\n console.warn(`[Vue warn] ${msg}`, ...args);\r\n}\r\n\r\nlet activeEffectScope;\r\nclass EffectScope {\r\n constructor(detached = false) {\r\n this.detached = detached;\r\n /**\r\n * @internal\r\n */\r\n this._active = true;\r\n /**\r\n * @internal\r\n */\r\n this.effects = [];\r\n /**\r\n * @internal\r\n */\r\n this.cleanups = [];\r\n this.parent = activeEffectScope;\r\n if (!detached && activeEffectScope) {\r\n this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(\r\n this\r\n ) - 1;\r\n }\r\n }\r\n get active() {\r\n return this._active;\r\n }\r\n run(fn) {\r\n if (this._active) {\r\n const currentEffectScope = activeEffectScope;\r\n try {\r\n activeEffectScope = this;\r\n return fn();\r\n } finally {\r\n activeEffectScope = currentEffectScope;\r\n }\r\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\r\n warn$2(`cannot run an inactive effect scope.`);\r\n }\r\n }\r\n /**\r\n * This should only be called on non-detached scopes\r\n * @internal\r\n */\r\n on() {\r\n activeEffectScope = this;\r\n }\r\n /**\r\n * This should only be called on non-detached scopes\r\n * @internal\r\n */\r\n off() {\r\n activeEffectScope = this.parent;\r\n }\r\n stop(fromParent) {\r\n if (this._active) {\r\n let i, l;\r\n for (i = 0, l = this.effects.length; i < l; i++) {\r\n this.effects[i].stop();\r\n }\r\n for (i = 0, l = this.cleanups.length; i < l; i++) {\r\n this.cleanups[i]();\r\n }\r\n if (this.scopes) {\r\n for (i = 0, l = this.scopes.length; i < l; i++) {\r\n this.scopes[i].stop(true);\r\n }\r\n }\r\n if (!this.detached && this.parent && !fromParent) {\r\n const last = this.parent.scopes.pop();\r\n if (last && last !== this) {\r\n this.parent.scopes[this.index] = last;\r\n last.index = this.index;\r\n }\r\n }\r\n this.parent = void 0;\r\n this._active = false;\r\n }\r\n }\r\n}\r\nfunction effectScope(detached) {\r\n return new EffectScope(detached);\r\n}\r\nfunction recordEffectScope(effect, scope = activeEffectScope) {\r\n if (scope && scope.active) {\r\n scope.effects.push(effect);\r\n }\r\n}\r\nfunction getCurrentScope() {\r\n return activeEffectScope;\r\n}\r\nfunction onScopeDispose(fn) {\r\n if (activeEffectScope) {\r\n activeEffectScope.cleanups.push(fn);\r\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\r\n warn$2(\r\n `onScopeDispose() is called when there is no active effect scope to be associated with.`\r\n );\r\n }\r\n}\r\n\r\nlet activeEffect;\r\nclass ReactiveEffect {\r\n constructor(fn, trigger, scheduler, scope) {\r\n this.fn = fn;\r\n this.trigger = trigger;\r\n this.scheduler = scheduler;\r\n this.active = true;\r\n this.deps = [];\r\n /**\r\n * @internal\r\n */\r\n this._dirtyLevel = 4;\r\n /**\r\n * @internal\r\n */\r\n this._trackId = 0;\r\n /**\r\n * @internal\r\n */\r\n this._runnings = 0;\r\n /**\r\n * @internal\r\n */\r\n this._shouldSchedule = false;\r\n /**\r\n * @internal\r\n */\r\n this._depsLength = 0;\r\n recordEffectScope(this, scope);\r\n }\r\n get dirty() {\r\n if (this._dirtyLevel === 2 || this._dirtyLevel === 3) {\r\n this._dirtyLevel = 1;\r\n pauseTracking();\r\n for (let i = 0; i < this._depsLength; i++) {\r\n const dep = this.deps[i];\r\n if (dep.computed) {\r\n triggerComputed(dep.computed);\r\n if (this._dirtyLevel >= 4) {\r\n break;\r\n }\r\n }\r\n }\r\n if (this._dirtyLevel === 1) {\r\n this._dirtyLevel = 0;\r\n }\r\n resetTracking();\r\n }\r\n return this._dirtyLevel >= 4;\r\n }\r\n set dirty(v) {\r\n this._dirtyLevel = v ? 4 : 0;\r\n }\r\n run() {\r\n this._dirtyLevel = 0;\r\n if (!this.active) {\r\n return this.fn();\r\n }\r\n let lastShouldTrack = shouldTrack;\r\n let lastEffect = activeEffect;\r\n try {\r\n shouldTrack = true;\r\n activeEffect = this;\r\n this._runnings++;\r\n preCleanupEffect(this);\r\n return this.fn();\r\n } finally {\r\n postCleanupEffect(this);\r\n this._runnings--;\r\n activeEffect = lastEffect;\r\n shouldTrack = lastShouldTrack;\r\n }\r\n }\r\n stop() {\r\n var _a;\r\n if (this.active) {\r\n preCleanupEffect(this);\r\n postCleanupEffect(this);\r\n (_a = this.onStop) == null ? void 0 : _a.call(this);\r\n this.active = false;\r\n }\r\n }\r\n}\r\nfunction triggerComputed(computed) {\r\n return computed.value;\r\n}\r\nfunction preCleanupEffect(effect2) {\r\n effect2._trackId++;\r\n effect2._depsLength = 0;\r\n}\r\nfunction postCleanupEffect(effect2) {\r\n if (effect2.deps.length > effect2._depsLength) {\r\n for (let i = effect2._depsLength; i < effect2.deps.length; i++) {\r\n cleanupDepEffect(effect2.deps[i], effect2);\r\n }\r\n effect2.deps.length = effect2._depsLength;\r\n }\r\n}\r\nfunction cleanupDepEffect(dep, effect2) {\r\n const trackId = dep.get(effect2);\r\n if (trackId !== void 0 && effect2._trackId !== trackId) {\r\n dep.delete(effect2);\r\n if (dep.size === 0) {\r\n dep.cleanup();\r\n }\r\n }\r\n}\r\nfunction effect(fn, options) {\r\n if (fn.effect instanceof ReactiveEffect) {\r\n fn = fn.effect.fn;\r\n }\r\n const _effect = new ReactiveEffect(fn, NOOP, () => {\r\n if (_effect.dirty) {\r\n _effect.run();\r\n }\r\n });\r\n if (options) {\r\n extend(_effect, options);\r\n if (options.scope)\r\n recordEffectScope(_effect, options.scope);\r\n }\r\n if (!options || !options.lazy) {\r\n _effect.run();\r\n }\r\n const runner = _effect.run.bind(_effect);\r\n runner.effect = _effect;\r\n return runner;\r\n}\r\nfunction stop(runner) {\r\n runner.effect.stop();\r\n}\r\nlet shouldTrack = true;\r\nlet pauseScheduleStack = 0;\r\nconst trackStack = [];\r\nfunction pauseTracking() {\r\n trackStack.push(shouldTrack);\r\n shouldTrack = false;\r\n}\r\nfunction resetTracking() {\r\n const last = trackStack.pop();\r\n shouldTrack = last === void 0 ? true : last;\r\n}\r\nfunction pauseScheduling() {\r\n pauseScheduleStack++;\r\n}\r\nfunction resetScheduling() {\r\n pauseScheduleStack--;\r\n while (!pauseScheduleStack && queueEffectSchedulers.length) {\r\n queueEffectSchedulers.shift()();\r\n }\r\n}\r\nfunction trackEffect(effect2, dep, debuggerEventExtraInfo) {\r\n var _a;\r\n if (dep.get(effect2) !== effect2._trackId) {\r\n dep.set(effect2, effect2._trackId);\r\n const oldDep = effect2.deps[effect2._depsLength];\r\n if (oldDep !== dep) {\r\n if (oldDep) {\r\n cleanupDepEffect(oldDep, effect2);\r\n }\r\n effect2.deps[effect2._depsLength++] = dep;\r\n } else {\r\n effect2._depsLength++;\r\n }\r\n if (!!(process.env.NODE_ENV !== \"production\")) {\r\n (_a = effect2.onTrack) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));\r\n }\r\n }\r\n}\r\nconst queueEffectSchedulers = [];\r\nfunction triggerEffects(dep, dirtyLevel, debuggerEventExtraInfo) {\r\n var _a;\r\n pauseScheduling();\r\n for (const effect2 of dep.keys()) {\r\n let tracking;\r\n if (effect2._dirtyLevel < dirtyLevel && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {\r\n effect2._shouldSchedule || (effect2._shouldSchedule = effect2._dirtyLevel === 0);\r\n effect2._dirtyLevel = dirtyLevel;\r\n }\r\n if (effect2._shouldSchedule && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {\r\n if (!!(process.env.NODE_ENV !== \"production\")) {\r\n (_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));\r\n }\r\n effect2.trigger();\r\n if ((!effect2._runnings || effect2.allowRecurse) && effect2._dirtyLevel !== 2) {\r\n effect2._shouldSchedule = false;\r\n if (effect2.scheduler) {\r\n queueEffectSchedulers.push(effect2.scheduler);\r\n }\r\n }\r\n }\r\n }\r\n resetScheduling();\r\n}\r\n\r\nconst createDep = (cleanup, computed) => {\r\n const dep = /* @__PURE__ */ new Map();\r\n dep.cleanup = cleanup;\r\n dep.computed = computed;\r\n return dep;\r\n};\r\n\r\nconst targetMap = /* @__PURE__ */ new WeakMap();\r\nconst ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"iterate\" : \"\");\r\nconst MAP_KEY_ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"Map key iterate\" : \"\");\r\nfunction track(target, type, key) {\r\n if (shouldTrack && activeEffect) {\r\n let depsMap = targetMap.get(target);\r\n if (!depsMap) {\r\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\r\n }\r\n let dep = depsMap.get(key);\r\n if (!dep) {\r\n depsMap.set(key, dep = createDep(() => depsMap.delete(key)));\r\n }\r\n trackEffect(\r\n activeEffect,\r\n dep,\r\n !!(process.env.NODE_ENV !== \"production\") ? {\r\n target,\r\n type,\r\n key\r\n } : void 0\r\n );\r\n }\r\n}\r\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\r\n const depsMap = targetMap.get(target);\r\n if (!depsMap) {\r\n return;\r\n }\r\n let deps = [];\r\n if (type === \"clear\") {\r\n deps = [...depsMap.values()];\r\n } else if (key === \"length\" && isArray(target)) {\r\n const newLength = Number(newValue);\r\n depsMap.forEach((dep, key2) => {\r\n if (key2 === \"length\" || !isSymbol(key2) && key2 >= newLength) {\r\n deps.push(dep);\r\n }\r\n });\r\n } else {\r\n if (key !== void 0) {\r\n deps.push(depsMap.get(key));\r\n }\r\n switch (type) {\r\n case \"add\":\r\n if (!isArray(target)) {\r\n deps.push(depsMap.get(ITERATE_KEY));\r\n if (isMap(target)) {\r\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\r\n }\r\n } else if (isIntegerKey(key)) {\r\n deps.push(depsMap.get(\"length\"));\r\n }\r\n break;\r\n case \"delete\":\r\n if (!isArray(target)) {\r\n deps.push(depsMap.get(ITERATE_KEY));\r\n if (isMap(target)) {\r\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\r\n }\r\n }\r\n break;\r\n case \"set\":\r\n if (isMap(target)) {\r\n deps.push(depsMap.get(ITERATE_KEY));\r\n }\r\n break;\r\n }\r\n }\r\n pauseScheduling();\r\n for (const dep of deps) {\r\n if (dep) {\r\n triggerEffects(\r\n dep,\r\n 4,\r\n !!(process.env.NODE_ENV !== \"production\") ? {\r\n target,\r\n type,\r\n key,\r\n newValue,\r\n oldValue,\r\n oldTarget\r\n } : void 0\r\n );\r\n }\r\n }\r\n resetScheduling();\r\n}\r\nfunction getDepFromReactive(object, key) {\r\n var _a;\r\n return (_a = targetMap.get(object)) == null ? void 0 : _a.get(key);\r\n}\r\n\r\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\r\nconst builtInSymbols = new Set(\r\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\r\n);\r\nconst arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations();\r\nfunction createArrayInstrumentations() {\r\n const instrumentations = {};\r\n [\"includes\", \"indexOf\", \"lastIndexOf\"].forEach((key) => {\r\n instrumentations[key] = function(...args) {\r\n const arr = toRaw(this);\r\n for (let i = 0, l = this.length; i < l; i++) {\r\n track(arr, \"get\", i + \"\");\r\n }\r\n const res = arr[key](...args);\r\n if (res === -1 || res === false) {\r\n return arr[key](...args.map(toRaw));\r\n } else {\r\n return res;\r\n }\r\n };\r\n });\r\n [\"push\", \"pop\", \"shift\", \"unshift\", \"splice\"].forEach((key) => {\r\n instrumentations[key] = function(...args) {\r\n pauseTracking();\r\n pauseScheduling();\r\n const res = toRaw(this)[key].apply(this, args);\r\n resetScheduling();\r\n resetTracking();\r\n return res;\r\n };\r\n });\r\n return instrumentations;\r\n}\r\nfunction hasOwnProperty(key) {\r\n const obj = toRaw(this);\r\n track(obj, \"has\", key);\r\n return obj.hasOwnProperty(key);\r\n}\r\nclass BaseReactiveHandler {\r\n constructor(_isReadonly = false, _isShallow = false) {\r\n this._isReadonly = _isReadonly;\r\n this._isShallow = _isShallow;\r\n }\r\n get(target, key, receiver) {\r\n const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;\r\n if (key === \"__v_isReactive\") {\r\n return !isReadonly2;\r\n } else if (key === \"__v_isReadonly\") {\r\n return isReadonly2;\r\n } else if (key === \"__v_isShallow\") {\r\n return isShallow2;\r\n } else if (key === \"__v_raw\") {\r\n if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype\r\n // this means the reciever is a user proxy of the reactive proxy\r\n Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {\r\n return target;\r\n }\r\n return;\r\n }\r\n const targetIsArray = isArray(target);\r\n if (!isReadonly2) {\r\n if (targetIsArray && hasOwn(arrayInstrumentations, key)) {\r\n return Reflect.get(arrayInstrumentations, key, receiver);\r\n }\r\n if (key === \"hasOwnProperty\") {\r\n return hasOwnProperty;\r\n }\r\n }\r\n const res = Reflect.get(target, key, receiver);\r\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\r\n return res;\r\n }\r\n if (!isReadonly2) {\r\n track(target, \"get\", key);\r\n }\r\n if (isShallow2) {\r\n return res;\r\n }\r\n if (isRef(res)) {\r\n return targetIsArray && isIntegerKey(key) ? res : res.value;\r\n }\r\n if (isObject(res)) {\r\n return isReadonly2 ? readonly(res) : reactive(res);\r\n }\r\n return res;\r\n }\r\n}\r\nclass MutableReactiveHandler extends BaseReactiveHandler {\r\n constructor(isShallow2 = false) {\r\n super(false, isShallow2);\r\n }\r\n set(target, key, value, receiver) {\r\n let oldValue = target[key];\r\n if (!this._isShallow) {\r\n const isOldValueReadonly = isReadonly(oldValue);\r\n if (!isShallow(value) && !isReadonly(value)) {\r\n oldValue = toRaw(oldValue);\r\n value = toRaw(value);\r\n }\r\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\r\n if (isOldValueReadonly) {\r\n return false;\r\n } else {\r\n oldValue.value = value;\r\n return true;\r\n }\r\n }\r\n }\r\n const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key);\r\n const result = Reflect.set(target, key, value, receiver);\r\n if (target === toRaw(receiver)) {\r\n if (!hadKey) {\r\n trigger(target, \"add\", key, value);\r\n } else if (hasChanged(value, oldValue)) {\r\n trigger(target, \"set\", key, value, oldValue);\r\n }\r\n }\r\n return result;\r\n }\r\n deleteProperty(target, key) {\r\n const hadKey = hasOwn(target, key);\r\n const oldValue = target[key];\r\n const result = Reflect.deleteProperty(target, key);\r\n if (result && hadKey) {\r\n trigger(target, \"delete\", key, void 0, oldValue);\r\n }\r\n return result;\r\n }\r\n has(target, key) {\r\n const result = Reflect.has(target, key);\r\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\r\n track(target, \"has\", key);\r\n }\r\n return result;\r\n }\r\n ownKeys(target) {\r\n track(\r\n target,\r\n \"iterate\",\r\n isArray(target) ? \"length\" : ITERATE_KEY\r\n );\r\n return Reflect.ownKeys(target);\r\n }\r\n}\r\nclass ReadonlyReactiveHandler extends BaseReactiveHandler {\r\n constructor(isShallow2 = false) {\r\n super(true, isShallow2);\r\n }\r\n set(target, key) {\r\n if (!!(process.env.NODE_ENV !== \"production\")) {\r\n warn$2(\r\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\r\n target\r\n );\r\n }\r\n return true;\r\n }\r\n deleteProperty(target, key) {\r\n if (!!(process.env.NODE_ENV !== \"production\")) {\r\n warn$2(\r\n `Delete operation on key \"${String(key)}\" failed: target is readonly.`,\r\n target\r\n );\r\n }\r\n return true;\r\n }\r\n}\r\nconst mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();\r\nconst readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();\r\nconst shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(\r\n true\r\n);\r\nconst shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);\r\n\r\nconst toShallow = (value) => value;\r\nconst getProto = (v) => Reflect.getPrototypeOf(v);\r\nfunction get(target, key, isReadonly = false, isShallow = false) {\r\n target = target[\"__v_raw\"];\r\n const rawTarget = toRaw(target);\r\n const rawKey = toRaw(key);\r\n if (!isReadonly) {\r\n if (hasChanged(key, rawKey)) {\r\n track(rawTarget, \"get\", key);\r\n }\r\n track(rawTarget, \"get\", rawKey);\r\n }\r\n const { has: has2 } = getProto(rawTarget);\r\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\r\n if (has2.call(rawTarget, key)) {\r\n return wrap(target.get(key));\r\n } else if (has2.call(rawTarget, rawKey)) {\r\n return wrap(target.get(rawKey));\r\n } else if (target !== rawTarget) {\r\n target.get(key);\r\n }\r\n}\r\nfunction has(key, isReadonly = false) {\r\n const target = this[\"__v_raw\"];\r\n const rawTarget = toRaw(target);\r\n const rawKey = toRaw(key);\r\n if (!isReadonly) {\r\n if (hasChanged(key, rawKey)) {\r\n track(rawTarget, \"has\", key);\r\n }\r\n track(rawTarget, \"has\", rawKey);\r\n }\r\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\r\n}\r\nfunction size(target, isReadonly = false) {\r\n target = target[\"__v_raw\"];\r\n !isReadonly && track(toRaw(target), \"iterate\", ITERATE_KEY);\r\n return Reflect.get(target, \"size\", target);\r\n}\r\nfunction add(value) {\r\n value = toRaw(value);\r\n const target = toRaw(this);\r\n const proto = getProto(target);\r\n const hadKey = proto.has.call(target, value);\r\n if (!hadKey) {\r\n target.add(value);\r\n trigger(target, \"add\", value, value);\r\n }\r\n return this;\r\n}\r\nfunction set$1(key, value) {\r\n value = toRaw(value);\r\n const target = toRaw(this);\r\n const { has: has2, get: get2 } = getProto(target);\r\n let hadKey = has2.call(target, key);\r\n if (!hadKey) {\r\n key = toRaw(key);\r\n hadKey = has2.call(target, key);\r\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\r\n checkIdentityKeys(target, has2, key);\r\n }\r\n const oldValue = get2.call(target, key);\r\n target.set(key, value);\r\n if (!hadKey) {\r\n trigger(target, \"add\", key, value);\r\n } else if (hasChanged(value, oldValue)) {\r\n trigger(target, \"set\", key, value, oldValue);\r\n }\r\n return this;\r\n}\r\nfunction deleteEntry(key) {\r\n const target = toRaw(this);\r\n const { has: has2, get: get2 } = getProto(target);\r\n let hadKey = has2.call(target, key);\r\n if (!hadKey) {\r\n key = toRaw(key);\r\n hadKey = has2.call(target, key);\r\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\r\n checkIdentityKeys(target, has2, key);\r\n }\r\n const oldValue = get2 ? get2.call(target, key) : void 0;\r\n const result = target.delete(key);\r\n if (hadKey) {\r\n trigger(target, \"delete\", key, void 0, oldValue);\r\n }\r\n return result;\r\n}\r\nfunction clear() {\r\n const target = toRaw(this);\r\n const hadItems = target.size !== 0;\r\n const oldTarget = !!(process.env.NODE_ENV !== \"production\") ? isMap(target) ? new Map(target) : new Set(target) : void 0;\r\n const result = target.clear();\r\n if (hadItems) {\r\n trigger(target, \"clear\", void 0, void 0, oldTarget);\r\n }\r\n return result;\r\n}\r\nfunction createForEach(isReadonly, isShallow) {\r\n return function forEach(callback, thisArg) {\r\n const observed = this;\r\n const target = observed[\"__v_raw\"];\r\n const rawTarget = toRaw(target);\r\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\r\n !isReadonly && track(rawTarget, \"iterate\", ITERATE_KEY);\r\n return target.forEach((value, key) => {\r\n return callback.call(thisArg, wrap(value), wrap(key), observed);\r\n });\r\n };\r\n}\r\nfunction createIterableMethod(method, isReadonly, isShallow) {\r\n return function(...args) {\r\n const target = this[\"__v_raw\"];\r\n const rawTarget = toRaw(target);\r\n const targetIsMap = isMap(rawTarget);\r\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\r\n const isKeyOnly = method === \"keys\" && targetIsMap;\r\n const innerIterator = target[method](...args);\r\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\r\n !isReadonly && track(\r\n rawTarget,\r\n \"iterate\",\r\n isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY\r\n );\r\n return {\r\n // iterator protocol\r\n next() {\r\n const { value, done } = innerIterator.next();\r\n return done ? { value, done } : {\r\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\r\n done\r\n };\r\n },\r\n // iterable protocol\r\n [Symbol.iterator]() {\r\n return this;\r\n }\r\n };\r\n };\r\n}\r\nfunction createReadonlyMethod(type) {\r\n return function(...args) {\r\n if (!!(process.env.NODE_ENV !== \"production\")) {\r\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\r\n warn$2(\r\n `${capitalize(type)} operation ${key}failed: target is readonly.`,\r\n toRaw(this)\r\n );\r\n }\r\n return type === \"delete\" ? false : type === \"clear\" ? void 0 : this;\r\n };\r\n}\r\nfunction createInstrumentations() {\r\n const mutableInstrumentations2 = {\r\n get(key) {\r\n return get(this, key);\r\n },\r\n get size() {\r\n return size(this);\r\n },\r\n has,\r\n add,\r\n set: set$1,\r\n delete: deleteEntry,\r\n clear,\r\n forEach: createForEach(false, false)\r\n };\r\n const shallowInstrumentations2 = {\r\n get(key) {\r\n return get(this, key, false, true);\r\n },\r\n get size() {\r\n return size(this);\r\n },\r\n has,\r\n add,\r\n set: set$1,\r\n delete: deleteEntry,\r\n clear,\r\n forEach: createForEach(false, true)\r\n };\r\n const readonlyInstrumentations2 = {\r\n get(key) {\r\n return get(this, key, true);\r\n },\r\n get size() {\r\n return size(this, true);\r\n },\r\n has(key) {\r\n return has.call(this, key, true);\r\n },\r\n add: createReadonlyMethod(\"add\"),\r\n set: createReadonlyMethod(\"set\"),\r\n delete: createReadonlyMethod(\"delete\"),\r\n clear: createReadonlyMethod(\"clear\"),\r\n forEach: createForEach(true, false)\r\n };\r\n const shallowReadonlyInstrumentations2 = {\r\n get(key) {\r\n return get(this, key, true, true);\r\n },\r\n get size() {\r\n return size(this, true);\r\n },\r\n has(key) {\r\n return has.call(this, key, true);\r\n },\r\n add: createReadonlyMethod(\"add\"),\r\n set: createReadonlyMethod(\"set\"),\r\n delete: createReadonlyMethod(\"delete\"),\r\n clear: createReadonlyMethod(\"clear\"),\r\n forEach: createForEach(true, true)\r\n };\r\n const iteratorMethods = [\r\n \"keys\",\r\n \"values\",\r\n \"entries\",\r\n Symbol.iterator\r\n ];\r\n iteratorMethods.forEach((method) => {\r\n mutableInstrumentations2[method] = createIterableMethod(method, false, false);\r\n readonlyInstrumentations2[method] = createIterableMethod(method, true, false);\r\n shallowInstrumentations2[method] = createIterableMethod(method, false, true);\r\n shallowReadonlyInstrumentations2[method] = createIterableMethod(\r\n method,\r\n true,\r\n true\r\n );\r\n });\r\n return [\r\n mutableInstrumentations2,\r\n readonlyInstrumentations2,\r\n shallowInstrumentations2,\r\n shallowReadonlyInstrumentations2\r\n ];\r\n}\r\nconst [\r\n mutableInstrumentations,\r\n readonlyInstrumentations,\r\n shallowInstrumentations,\r\n shallowReadonlyInstrumentations\r\n] = /* @__PURE__ */ createInstrumentations();\r\nfunction createInstrumentationGetter(isReadonly, shallow) {\r\n const instrumentations = shallow ? isReadonly ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly ? readonlyInstrumentations : mutableInstrumentations;\r\n return (target, key, receiver) => {\r\n if (key === \"__v_isReactive\") {\r\n return !isReadonly;\r\n } else if (key === \"__v_isReadonly\") {\r\n return isReadonly;\r\n } else if (key === \"__v_raw\") {\r\n return target;\r\n }\r\n return Reflect.get(\r\n hasOwn(instrumentations, key) && key in target ? instrumentations : target,\r\n key,\r\n receiver\r\n );\r\n };\r\n}\r\nconst mutableCollectionHandlers = {\r\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\r\n};\r\nconst shallowCollectionHandlers = {\r\n get: /* @__PURE__ */ createInstrumentationGetter(false, true)\r\n};\r\nconst readonlyCollectionHandlers = {\r\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\r\n};\r\nconst shallowReadonlyCollectionHandlers = {\r\n get: /* @__PURE__ */ createInstrumentationGetter(true, true)\r\n};\r\nfunction checkIdentityKeys(target, has2, key) {\r\n const rawKey = toRaw(key);\r\n if (rawKey !== key && has2.call(target, rawKey)) {\r\n const type = toRawType(target);\r\n warn$2(\r\n `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`\r\n );\r\n }\r\n}\r\n\r\nconst reactiveMap = /* @__PURE__ */ new WeakMap();\r\nconst shallowReactiveMap = /* @__PURE__ */ new WeakMap();\r\nconst readonlyMap = /* @__PURE__ */ new WeakMap();\r\nconst shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\r\nfunction targetTypeMap(rawType) {\r\n switch (rawType) {\r\n case \"Object\":\r\n case \"Array\":\r\n return 1 /* COMMON */;\r\n case \"Map\":\r\n case \"Set\":\r\n case \"WeakMap\":\r\n case \"WeakSet\":\r\n return 2 /* COLLECTION */;\r\n default:\r\n return 0 /* INVALID */;\r\n }\r\n}\r\nfunction getTargetType(value) {\r\n return value[\"__v_skip\"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value));\r\n}\r\nfunction reactive(target) {\r\n if (isReadonly(target)) {\r\n return target;\r\n }\r\n return createReactiveObject(\r\n target,\r\n false,\r\n mutableHandlers,\r\n mutableCollectionHandlers,\r\n reactiveMap\r\n );\r\n}\r\nfunction shallowReactive(target) {\r\n return createReactiveObject(\r\n target,\r\n false,\r\n shallowReactiveHandlers,\r\n shallowCollectionHandlers,\r\n shallowReactiveMap\r\n );\r\n}\r\nfunction readonly(target) {\r\n return createReactiveObject(\r\n target,\r\n true,\r\n readonlyHandlers,\r\n readonlyCollectionHandlers,\r\n readonlyMap\r\n );\r\n}\r\nfunction shallowReadonly(target) {\r\n return createReactiveObject(\r\n target,\r\n true,\r\n shallowReadonlyHandlers,\r\n shallowReadonlyCollectionHandlers,\r\n shallowReadonlyMap\r\n );\r\n}\r\nfunction createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\r\n if (!isObject(target)) {\r\n if (!!(process.env.NODE_ENV !== \"production\")) {\r\n warn$2(`value cannot be made reactive: ${String(target)}`);\r\n }\r\n return target;\r\n }\r\n if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\r\n return target;\r\n }\r\n const existingProxy = proxyMap.get(target);\r\n if (existingProxy) {\r\n return existingProxy;\r\n }\r\n const targetType = getTargetType(target);\r\n if (targetType === 0 /* INVALID */) {\r\n return target;\r\n }\r\n const proxy = new Proxy(\r\n target,\r\n targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers\r\n );\r\n proxyMap.set(target, proxy);\r\n return proxy;\r\n}\r\nfunction isReactive(value) {\r\n if (isReadonly(value)) {\r\n return isReactive(value[\"__v_raw\"]);\r\n }\r\n return !!(value && value[\"__v_isReactive\"]);\r\n}\r\nfunction isReadonly(value) {\r\n return !!(value && value[\"__v_isReadonly\"]);\r\n}\r\nfunction isShallow(value) {\r\n return !!(value && value[\"__v_isShallow\"]);\r\n}\r\nfunction isProxy(value) {\r\n return isReactive(value) || isReadonly(value);\r\n}\r\nfunction toRaw(observed) {\r\n const raw = observed && observed[\"__v_raw\"];\r\n return raw ? toRaw(raw) : observed;\r\n}\r\nfunction markRaw(value) {\r\n if (Object.isExtensible(value)) {\r\n def(value, \"__v_skip\", true);\r\n }\r\n return value;\r\n}\r\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\r\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\r\n\r\nconst COMPUTED_SIDE_EFFECT_WARN = `Computed is still dirty after getter evaluation, likely because a computed is mutating its own dependency in its getter. State mutations in computed getters should be avoided. Check the docs for more details: https://vuejs.org/guide/essentials/computed.html#getters-should-be-side-effect-free`;\r\nclass ComputedRefImpl {\r\n constructor(getter, _setter, isReadonly, isSSR) {\r\n this.getter = getter;\r\n this._setter = _setter;\r\n this.dep = void 0;\r\n this.__v_isRef = true;\r\n this[\"__v_isReadonly\"] = false;\r\n this.effect = new ReactiveEffect(\r\n () => getter(this._value),\r\n () => triggerRefValue(\r\n this,\r\n this.effect._dirtyLevel === 2 ? 2 : 3\r\n )\r\n );\r\n this.effect.computed = this;\r\n this.effect.active = this._cacheable = !isSSR;\r\n this[\"__v_isReadonly\"] = isReadonly;\r\n }\r\n get value() {\r\n const self = toRaw(this);\r\n if ((!self._cacheable || self.effect.dirty) && hasChanged(self._value, self._value = self.effect.run())) {\r\n triggerRefValue(self, 4);\r\n }\r\n trackRefValue(self);\r\n if (self.effect._dirtyLevel >= 2) {\r\n if (!!(process.env.NODE_ENV !== \"production\") && this._warnRecursive) {\r\n warn$2(COMPUTED_SIDE_EFFECT_WARN, `\r\n\r\ngetter: `, this.getter);\r\n }\r\n triggerRefValue(self, 2);\r\n }\r\n return self._value;\r\n }\r\n set value(newValue) {\r\n this._setter(newValue);\r\n }\r\n // #region polyfill _dirty for backward compatibility third party code for Vue <= 3.3.x\r\n get _dirty() {\r\n return this.effect.dirty;\r\n }\r\n set _dirty(v) {\r\n this.effect.dirty = v;\r\n }\r\n // #endregion\r\n}\r\nfunction computed$1(getterOrOptions, debugOptions, isSSR = false) {\r\n let getter;\r\n let setter;\r\n const onlyGetter = isFunction(getterOrOptions);\r\n if (onlyGetter) {\r\n getter = getterOrOptions;\r\n setter = !!(process.env.NODE_ENV !== \"production\") ? () => {\r\n warn$2(\"Write operation failed: computed value is readonly\");\r\n } : NOOP;\r\n } else {\r\n getter = getterOrOptions.get;\r\n setter = getterOrOptions.set;\r\n }\r\n const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);\r\n if (!!(process.env.NODE_ENV !== \"production\") && debugOptions && !isSSR) {\r\n cRef.effect.onTrack = debugOptions.onTrack;\r\n cRef.effect.onTrigger = debugOptions.onTrigger;\r\n }\r\n return cRef;\r\n}\r\n\r\nfunction trackRefValue(ref2) {\r\n var _a;\r\n if (shouldTrack && activeEffect) {\r\n ref2 = toRaw(ref2);\r\n trackEffect(\r\n activeEffect,\r\n (_a = ref2.dep) != null ? _a : ref2.dep = createDep(\r\n () => ref2.dep = void 0,\r\n ref2 instanceof ComputedRefImpl ? ref2 : void 0\r\n ),\r\n !!(process.env.NODE_ENV !== \"production\") ? {\r\n target: ref2,\r\n type: \"get\",\r\n key: \"value\"\r\n } : void 0\r\n );\r\n }\r\n}\r\nfunction triggerRefValue(ref2, dirtyLevel = 4, newVal) {\r\n ref2 = toRaw(ref2);\r\n const dep = ref2.dep;\r\n if (dep) {\r\n triggerEffects(\r\n dep,\r\n dirtyLevel,\r\n !!(process.env.NODE_ENV !== \"production\") ? {\r\n target: ref2,\r\n type: \"set\",\r\n key: \"value\",\r\n newValue: newVal\r\n } : void 0\r\n );\r\n }\r\n}\r\nfunction isRef(r) {\r\n return !!(r && r.__v_isRef === true);\r\n}\r\nfunction ref(value) {\r\n return createRef(value, false);\r\n}\r\nfunction shallowRef(value) {\r\n return createRef(value, true);\r\n}\r\nfunction createRef(rawValue, shallow) {\r\n if (isRef(rawValue)) {\r\n return rawValue;\r\n }\r\n return new RefImpl(rawValue, shallow);\r\n}\r\nclass RefImpl {\r\n constructor(value, __v_isShallow) {\r\n this.__v_isShallow = __v_isShallow;\r\n this.dep = void 0;\r\n this.__v_isRef = true;\r\n this._rawValue = __v_isShallow ? value : toRaw(value);\r\n this._value = __v_isShallow ? value : toReactive(value);\r\n }\r\n get value() {\r\n trackRefValue(this);\r\n return this._value;\r\n }\r\n set value(newVal) {\r\n const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal);\r\n newVal = useDirectValue ? newVal : toRaw(newVal);\r\n if (hasChanged(newVal, this._rawValue)) {\r\n this._rawValue = newVal;\r\n this._value = useDirectValue ? newVal : toReactive(newVal);\r\n triggerRefValue(this, 4, newVal);\r\n }\r\n }\r\n}\r\nfunction triggerRef(ref2) {\r\n triggerRefValue(ref2, 4, !!(process.env.NODE_ENV !== \"production\") ? ref2.value : void 0);\r\n}\r\nfunction unref(ref2) {\r\n return isRef(ref2) ? ref2.value : ref2;\r\n}\r\nfunction toValue(source) {\r\n return isFunction(source) ? source() : unref(source);\r\n}\r\nconst shallowUnwrapHandlers = {\r\n get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),\r\n set: (target, key, value, receiver) => {\r\n const oldValue = target[key];\r\n if (isRef(oldValue) && !isRef(value)) {\r\n oldValue.value = value;\r\n return true;\r\n } else {\r\n return Reflect.set(target, key, value, receiver);\r\n }\r\n }\r\n};\r\nfunction proxyRefs(objectWithRefs) {\r\n return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\r\n}\r\nclass CustomRefImpl {\r\n constructor(factory) {\r\n this.dep = void 0;\r\n this.__v_isRef = true;\r\n const { get, set } = factory(\r\n () => trackRefValue(this),\r\n () => triggerRefValue(this)\r\n );\r\n this._get = get;\r\n this._set = set;\r\n }\r\n get value() {\r\n return this._get();\r\n }\r\n set value(newVal) {\r\n this._set(newVal);\r\n }\r\n}\r\nfunction customRef(factory) {\r\n return new CustomRefImpl(factory);\r\n}\r\nfunction toRefs(object) {\r\n if (!!(process.env.NODE_ENV !== \"production\") && !isProxy(object)) {\r\n warn$2(`toRefs() expects a reactive object but received a plain one.`);\r\n }\r\n const ret = isArray(object) ? new Array(object.length) : {};\r\n for (const key in object) {\r\n ret[key] = propertyToRef(object, key);\r\n }\r\n return ret;\r\n}\r\nclass ObjectRefImpl {\r\n constructor(_object, _key, _defaultValue) {\r\n this._object = _object;\r\n this._key = _key;\r\n this._defaultValue = _defaultValue;\r\n this.__v_isRef = true;\r\n }\r\n get value() {\r\n const val = this._object[this._key];\r\n return val === void 0 ? this._defaultValue : val;\r\n }\r\n set value(newVal) {\r\n this._object[this._key] = newVal;\r\n }\r\n get dep() {\r\n return getDepFromReactive(toRaw(this._object), this._key);\r\n }\r\n}\r\nclass GetterRefImpl {\r\n constructor(_getter) {\r\n this._getter = _getter;\r\n this.__v_isRef = true;\r\n this.__v_isReadonly = true;\r\n }\r\n get value() {\r\n return this._getter();\r\n }\r\n}\r\nfunction toRef(source, key, defaultValue) {\r\n if (isRef(source)) {\r\n return source;\r\n } else if (isFunction(source)) {\r\n return new GetterRefImpl(source);\r\n } else if (isObject(source) && arguments.length > 1) {\r\n return propertyToRef(source, key, defaultValue);\r\n } else {\r\n return ref(source);\r\n }\r\n}\r\nfunction propertyToRef(source, key, defaultValue) {\r\n const val = source[key];\r\n return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue);\r\n}\r\n\r\nconst stack = [];\r\nfunction pushWarningContext(vnode) {\r\n stack.push(vnode);\r\n}\r\nfunction popWarningContext() {\r\n stack.pop();\r\n}\r\nfunction warn$1(msg, ...args) {\r\n pauseTracking();\r\n const instance = stack.length ? stack[stack.length - 1].component : null;\r\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\r\n const trace = getComponentTrace();\r\n if (appWarnHandler) {\r\n callWithErrorHandling(\r\n appWarnHandler,\r\n instance,\r\n 11,\r\n [\r\n msg + args.map((a) => {\r\n var _a, _b;\r\n return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);\r\n }).join(\"\"),\r\n instance && instance.proxy,\r\n trace.map(\r\n ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`\r\n ).join(\"\\n\"),\r\n trace\r\n ]\r\n );\r\n } else {\r\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\r\n if (trace.length && // avoid spamming console during tests\r\n true) {\r\n warnArgs.push(`\r\n`, ...formatTrace(trace));\r\n }\r\n console.warn(...warnArgs);\r\n }\r\n resetTracking();\r\n}\r\nfunction getComponentTrace() {\r\n let currentVNode = stack[stack.length - 1];\r\n if (!currentVNode) {\r\n return [];\r\n }\r\n const normalizedStack = [];\r\n while (currentVNode) {\r\n const last = normalizedStack[0];\r\n if (last && last.vnode === currentVNode) {\r\n last.recurseCount++;\r\n } else {\r\n normalizedStack.push({\r\n vnode: currentVNode,\r\n recurseCount: 0\r\n });\r\n }\r\n const parentInstance = currentVNode.component && currentVNode.component.parent;\r\n currentVNode = parentInstance && parentInstance.vnode;\r\n }\r\n return normalizedStack;\r\n}\r\nfunction formatTrace(trace) {\r\n const logs = [];\r\n trace.forEach((entry, i) => {\r\n logs.push(...i === 0 ? [] : [`\r\n`], ...formatTraceEntry(entry));\r\n });\r\n return logs;\r\n}\r\nfunction formatTraceEntry({ vnode, recurseCount }) {\r\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\r\n const isRoot = vnode.component ? vnode.component.parent == null : false;\r\n const open = ` at <${formatComponentName(\r\n vnode.component,\r\n vnode.type,\r\n isRoot\r\n )}`;\r\n const close = `>` + postfix;\r\n return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];\r\n}\r\nfunction formatProps(props) {\r\n const res = [];\r\n const keys = Object.keys(props);\r\n keys.slice(0, 3).forEach((key) => {\r\n res.push(...formatProp(key, props[key]));\r\n });\r\n if (keys.length > 3) {\r\n res.push(` ...`);\r\n }\r\n return res;\r\n}\r\nfunction formatProp(key, value, raw) {\r\n if (isString(value)) {\r\n value = JSON.stringify(value);\r\n return raw ? value : [`${key}=${value}`];\r\n } else if (typeof value === \"number\" || typeof value === \"boolean\" || value == null) {\r\n return raw ? value : [`${key}=${value}`];\r\n } else if (isRef(value)) {\r\n value = formatProp(key, toRaw(value.value), true);\r\n return raw ? value : [`${key}=Ref<`, value, `>`];\r\n } else if (isFunction(value)) {\r\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\r\n } else {\r\n value = toRaw(value);\r\n return raw ? value : [`${key}=`, value];\r\n }\r\n}\r\n\r\nconst ErrorTypeStrings = {\r\n [\"sp\"]: \"serverPrefetch hook\",\r\n [\"bc\"]: \"beforeCreate hook\",\r\n [\"c\"]: \"created hook\",\r\n [\"bm\"]: \"beforeMount hook\",\r\n [\"m\"]: \"mounted hook\",\r\n [\"bu\"]: \"beforeUpdate hook\",\r\n [\"u\"]: \"updated\",\r\n [\"bum\"]: \"beforeUnmount hook\",\r\n [\"um\"]: \"unmounted hook\",\r\n [\"a\"]: \"activated hook\",\r\n [\"da\"]: \"deactivated hook\",\r\n [\"ec\"]: \"errorCaptured hook\",\r\n [\"rtc\"]: \"renderTracked hook\",\r\n [\"rtg\"]: \"renderTriggered hook\",\r\n [0]: \"setup function\",\r\n [1]: \"render function\",\r\n [2]: \"watcher getter\",\r\n [3]: \"watcher callback\",\r\n [4]: \"watcher cleanup function\",\r\n [5]: \"native event handler\",\r\n [6]: \"component event handler\",\r\n [7]: \"vnode hook\",\r\n [8]: \"directive hook\",\r\n [9]: \"transition hook\",\r\n [10]: \"app errorHandler\",\r\n [11]: \"app warnHandler\",\r\n [12]: \"ref function\",\r\n [13]: \"async component loader\",\r\n [14]: \"scheduler flush. This is likely a Vue internals bug. Please open an issue at https://github.com/vuejs/core .\"\r\n};\r\nfunction callWithErrorHandling(fn, instance, type, args) {\r\n try {\r\n return args ? fn(...args) : fn();\r\n } catch (err) {\r\n handleError(err, instance, type);\r\n }\r\n}\r\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\r\n if (isFunction(fn)) {\r\n const res = callWithErrorHandling(fn, instance, type, args);\r\n if (res && isPromise(res)) {\r\n res.catch((err) => {\r\n handleError(err, instance, type);\r\n });\r\n }\r\n return res;\r\n }\r\n const values = [];\r\n for (let i = 0; i < fn.length; i++) {\r\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\r\n }\r\n return values;\r\n}\r\nfunction handleError(err, instance, type, throwInDev = true) {\r\n const contextVNode = instance ? instance.vnode : null;\r\n if (instance) {\r\n let cur = instance.parent;\r\n const exposedInstance = instance.proxy;\r\n const errorInfo = !!(process.env.NODE_ENV !== \"production\") ? ErrorTypeStrings[type] || type : `https://vuejs.org/error-reference/#runtime-${type}`;\r\n while (cur) {\r\n const errorCapturedHooks = cur.ec;\r\n if (errorCapturedHooks) {\r\n for (let i = 0; i < errorCapturedHooks.length; i++) {\r\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\r\n return;\r\n }\r\n }\r\n }\r\n cur = cur.parent;\r\n }\r\n const appErrorHandler = instance.appContext.config.errorHandler;\r\n if (appErrorHandler) {\r\n callWithErrorHandling(\r\n appErrorHandler,\r\n null,\r\n 10,\r\n [err, exposedInstance, errorInfo]\r\n );\r\n return;\r\n }\r\n }\r\n logError(err, type, contextVNode, throwInDev);\r\n}\r\nfunction logError(err, type, contextVNode, throwInDev = true) {\r\n if (!!(process.env.NODE_ENV !== \"production\")) {\r\n const info = ErrorTypeStrings[type] || type;\r\n if (contextVNode) {\r\n pushWarningContext(contextVNode);\r\n }\r\n warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\r\n if (contextVNode) {\r\n popWarningContext();\r\n }\r\n if (throwInDev) {\r\n console.error(err);\r\n } else {\r\n console.error(err);\r\n }\r\n } else {\r\n console.error(err);\r\n }\r\n}\r\n\r\nlet isFlushing = false;\r\nlet isFlushPending = false;\r\nconst queue = [];\r\nlet flushIndex = 0;\r\nconst pendingPostFlushCbs = [];\r\nlet activePostFlushCbs = null;\r\nlet postFlushIndex = 0;\r\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\r\nlet currentFlushPromise = null;\r\nconst RECURSION_LIMIT = 100;\r\nfunction nextTick$1(fn) {\r\n const p = currentFlushPromise || resolvedPromise;\r\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\r\n}\r\nfunction findInsertionIndex(id) {\r\n let start = flushIndex + 1;\r\n let end = queue.length;\r\n while (start < end) {\r\n const middle = start + end >>> 1;\r\n const middleJob = queue[middle];\r\n const middleJobId = getId(middleJob);\r\n if (middleJobId < id || middleJobId === id && middleJob.pre) {\r\n start = middle + 1;\r\n } else {\r\n end = middle;\r\n }\r\n }\r\n return start;\r\n}\r\nfunction queueJob(job) {\r\n if (!queue.length || !queue.includes(\r\n job,\r\n isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex\r\n )) {\r\n if (job.id == null) {\r\n queue.push(job);\r\n } else {\r\n queue.splice(findInsertionIndex(job.id), 0, job);\r\n }\r\n queueFlush();\r\n }\r\n}\r\nfunction queueFlush() {\r\n if (!isFlushing && !isFlushPending) {\r\n isFlushPending = true;\r\n currentFlushPromise = resolvedPromise.then(flushJobs);\r\n }\r\n}\r\nfunction hasQueueJob(job) {\r\n return queue.indexOf(job) > -1;\r\n}\r\nfunction invalidateJob(job) {\r\n const i = queue.indexOf(job);\r\n if (i > flushIndex) {\r\n queue.splice(i, 1);\r\n }\r\n}\r\nfunction queuePostFlushCb(cb) {\r\n if (!isArray(cb)) {\r\n if (!activePostFlushCbs || !activePostFlushCbs.includes(\r\n cb,\r\n cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex\r\n )) {\r\n pendingPostFlushCbs.push(cb);\r\n }\r\n } else {\r\n pendingPostFlushCbs.push(...cb);\r\n }\r\n queueFlush();\r\n}\r\nfunction flushPreFlushCbs(instance, seen, i = isFlushing ? flushIndex + 1 : 0) {\r\n if (!!(process.env.NODE_ENV !== \"production\")) {\r\n seen = seen || /* @__PURE__ */ new Map();\r\n }\r\n for (; i < queue.length; i++) {\r\n const cb = queue[i];\r\n if (cb && cb.pre) {\r\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\r\n continue;\r\n }\r\n queue.splice(i, 1);\r\n i--;\r\n cb();\r\n }\r\n }\r\n}\r\nfunction flushPostFlushCbs(seen) {\r\n if (pendingPostFlushCbs.length) {\r\n const deduped = [...new Set(pendingPostFlushCbs)].sort(\r\n (a, b) => getId(a) - getId(b)\r\n );\r\n pendingPostFlushCbs.length = 0;\r\n if (activePostFlushCbs) {\r\n activePostFlushCbs.push(...deduped);\r\n return;\r\n }\r\n activePostFlushCbs = deduped;\r\n if (!!(process.env.NODE_ENV !== \"production\")) {\r\n seen = seen || /* @__PURE__ */ new Map();\r\n }\r\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\r\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) {\r\n continue;\r\n }\r\n activePostFlushCbs[postFlushIndex]();\r\n }\r\n activePostFlushCbs = null;\r\n postFlushIndex = 0;\r\n }\r\n}\r\nconst getId = (job) => job.id == null ? Infinity : job.id;\r\nconst comparator = (a, b) => {\r\n const diff = getId(a) - getId(b);\r\n if (diff === 0) {\r\n if (a.pre && !b.pre)\r\n return -1;\r\n if (b.pre && !a.pre)\r\n return 1;\r\n }\r\n return diff;\r\n};\r\nfunction flushJobs(seen) {\r\n isFlushPending = false;\r\n isFlushing = true;\r\n if (!!(process.env.NODE_ENV !== \"production\")) {\r\n seen = seen || /* @__PURE__ */ new Map();\r\n }\r\n queue.sort(comparator);\r\n const check = !!(process.env.NODE_ENV !== \"production\") ? (job) => checkRecursiveUpdates(seen, job) : NOOP;\r\n try {\r\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\r\n const job = queue[flushIndex];\r\n if (job && job.active !== false) {\r\n if (!!(process.env.NODE_ENV !== \"production\") && check(job)) {\r\n continue;\r\n }\r\n callWithErrorHandling(job, null, 14);\r\n }\r\n }\r\n } finally {\r\n flushIndex = 0;\r\n queue.length = 0;\r\n flushPostFlushCbs(seen);\r\n isFlushing = false;\r\n currentFlushPromise = null;\r\n if (queue.length || pendingPostFlushCbs.length) {\r\n flushJobs(seen);\r\n }\r\n }\r\n}\r\nfunction checkRecursiveUpdates(seen, fn) {\r\n if (!seen.has(fn)) {\r\n seen.set(fn, 1);\r\n } else {\r\n const count = seen.get(fn);\r\n if (count > RECURSION_LIMIT) {\r\n const instance = fn.ownerInstance;\r\n const componentName = instance && getComponentName(instance.type);\r\n handleError(\r\n `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,\r\n null,\r\n 10\r\n );\r\n return true;\r\n } else {\r\n seen.set(fn, count + 1);\r\n }\r\n }\r\n}\r\n\r\nlet devtools;\r\nlet buffer = [];\r\nlet devtoolsNotInstalled = false;\r\nfunction emit$1(event, ...args) {\r\n if (devtools) {\r\n devtools.emit(event, ...args);\r\n } else if (!devtoolsNotInstalled) {\r\n buffer.push({ event, args });\r\n }\r\n}\r\nfunction setDevtoolsHook(hook, target) {\r\n var _a, _b;\r\n devtools = hook;\r\n if (devtools) {\r\n devtools.enabled = true;\r\n buffer.forEach(({ event, args }) => devtools.emit(event, ...args));\r\n buffer = [];\r\n } else if (\r\n // handle late devtools injection - only do this if we are in an actual\r\n // browser environment to avoid the timer handle stalling test runner exit\r\n // (#4815)\r\n typeof window !== \"undefined\" && // some envs mock window but not fully\r\n window.HTMLElement && // also exclude jsdom\r\n !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes(\"jsdom\"))\r\n ) {\r\n const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];\r\n replay.push((newHook) => {\r\n setDevtoolsHook(newHook, target);\r\n });\r\n setTimeout(() => {\r\n if (!devtools) {\r\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\r\n devtoolsNotInstalled = true;\r\n buffer = [];\r\n }\r\n }, 3e3);\r\n } else {\r\n devtoolsNotInstalled = true;\r\n buffer = [];\r\n }\r\n}\r\nfunction devtoolsInitApp(app, version) {\r\n emit$1(\"app:init\" /* APP_INIT */, app, version, {\r\n Fragment,\r\n Text,\r\n Comment,\r\n Static\r\n });\r\n}\r\nconst devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(\r\n \"component:added\" /* COMPONENT_ADDED */\r\n);\r\nconst devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\r\nconst _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(\r\n \"component:removed\" /* COMPONENT_REMOVED */\r\n);\r\nconst devtoolsComponentRemoved = (component) => {\r\n if (devtools && typeof devtools.cleanupBuffer === \"function\" && // remove the component if it wasn't buffered\r\n !devtools.cleanupBuffer(component)) {\r\n _devtoolsComponentRemoved(component);\r\n }\r\n};\r\n/*! #__NO_SIDE_EFFECTS__ */\r\n// @__NO_SIDE_EFFECTS__\r\nfunction createDevtoolsComponentHook(hook) {\r\n return (component) => {\r\n emit$1(\r\n hook,\r\n component.appContext.app,\r\n component.uid,\r\n // fixed by xxxxxx\r\n // 为 0 是 App,无 parent 是 Page 指向 App\r\n component.uid === 0 ? void 0 : component.parent ? component.parent.uid : 0,\r\n component\r\n );\r\n };\r\n}\r\nconst devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(\r\n \"perf:start\" /* PERFORMANCE_START */\r\n);\r\nconst devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(\r\n \"perf:end\" /* PERFORMANCE_END */\r\n);\r\nfunction createDevtoolsPerformanceHook(hook) {\r\n return (component, type, time) => {\r\n emit$1(hook, component.appContext.app, component.uid, component, type, time);\r\n };\r\n}\r\nfunction devtoolsComponentEmit(component, event, params) {\r\n emit$1(\r\n \"component:emit\" /* COMPONENT_EMIT */,\r\n component.appContext.app,\r\n component,\r\n event,\r\n params\r\n );\r\n}\r\n\r\nfunction emit(instance, event, ...rawArgs) {\r\n if (instance.isUnmounted)\r\n return;\r\n const props = instance.vnode.props || EMPTY_OBJ;\r\n if (!!(process.env.NODE_ENV !== \"production\")) {\r\n const {\r\n emitsOptions,\r\n propsOptions: [propsOptions]\r\n } = instance;\r\n if (emitsOptions) {\r\n if (!(event in emitsOptions) && true) {\r\n if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {\r\n warn$1(\r\n `Component emitted event \"${event}\" but it is neither declared in the emits option nor as an \"${toHandlerKey(event)}\" prop.`\r\n );\r\n }\r\n } else {\r\n const validator = emitsOptions[event];\r\n if (isFunction(validator)) {\r\n const isValid = validator(...rawArgs);\r\n if (!isValid) {\r\n warn$1(\r\n `Invalid event arguments: event validation failed for event \"${event}\".`\r\n );\r\n }\r\n }\r\n }\r\n }\r\n }\r\n let args = rawArgs;\r\n const isModelListener = event.startsWith(\"update:\");\r\n const modelArg = isModelListener && event.slice(7);\r\n if (modelArg && modelArg in props) {\r\n const modifiersKey = `${modelArg === \"modelValue\" ? \"model\" : modelArg}Modifiers`;\r\n const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\r\n if (trim) {\r\n args = rawArgs.map((a) => isString(a) ? a.trim() : a);\r\n }\r\n if (number) {\r\n args = rawArgs.map(looseToNumber);\r\n }\r\n }\r\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\r\n devtoolsComponentEmit(instance, event, args);\r\n }\r\n if (!!(process.env.NODE_ENV !== \"production\")) {\r\n const lowerCaseEvent = event.toLowerCase();\r\n if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\r\n warn$1(\r\n `Event \"${lowerCaseEvent}\" is emitted in component ${formatComponentName(\r\n instance,\r\n instance.type\r\n )} but the handler is registered for \"${event}\". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use \"${hyphenate(\r\n event\r\n )}\" instead of \"${event}\".`\r\n );\r\n }\r\n }\r\n let handlerName;\r\n let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249)\r\n props[handlerName = toHandlerKey(camelize(event))];\r\n if (!handler && isModelListener) {\r\n handler = props[handlerName = toHandlerKey(hyphenate(event))];\r\n }\r\n if (handler) {\r\n callWithAsyncErrorHandling(\r\n handler,\r\n instance,\r\n 6,\r\n args\r\n );\r\n }\r\n const onceHandler = props[handlerName + `Once`];\r\n if (onceHandler) {\r\n if (!instance.emitted) {\r\n instance.emitted = {};\r\n } else if (instance.emitted[handlerName]) {\r\n return;\r\n }\r\n instance.emitted[handlerName] = true;\r\n callWithAsyncErrorHandling(\r\n onceHandler,\r\n instance,\r\n 6,\r\n args\r\n );\r\n }\r\n}\r\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\r\n const cache = appContext.emitsCache;\r\n const cached = cache.get(comp);\r\n if (cached !== void 0) {\r\n return cached;\r\n }\r\n const raw = comp.emits;\r\n let normalized = {};\r\n let hasExtends = false;\r\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\r\n const extendEmits = (raw2) => {\r\n const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true);\r\n if (normalizedFromExtend) {\r\n hasExtends = true;\r\n extend(normalized, normalizedFromExtend);\r\n }\r\n };\r\n if (!asMixin && appContext.mixins.length) {\r\n appContext.mixins.forEach(extendEmits);\r\n }\r\n if (comp.extends) {\r\n extendEmits(comp.extends);\r\n }\r\n if (comp.mixins) {\r\n comp.mixins.forEach(extendEmits);\r\n }\r\n }\r\n if (!raw && !hasExtends) {\r\n if (isObject(comp)) {\r\n cache.set(comp, null);\r\n }\r\n return null;\r\n }\r\n if (isArray(raw)) {\r\n raw.forEach((key) => normalized[key] = null);\r\n } else {\r\n extend(normalized, raw);\r\n }\r\n if (isObject(comp)) {\r\n cache.set(comp, normalized);\r\n }\r\n return normalized;\r\n}\r\nfunction isEmitListener(options, key) {\r\n if (!options || !isOn(key)) {\r\n return false;\r\n }\r\n key = key.slice(2).replace(/Once$/, \"\");\r\n return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key);\r\n}\r\n\r\nlet currentRenderingInstance = null;\r\nlet currentScopeId = null;\r\nfunction setCurrentRenderingInstance(instance) {\r\n const prev = currentRenderingInstance;\r\n currentRenderingInstance = instance;\r\n currentScopeId = instance && instance.type.__scopeId || null;\r\n return prev;\r\n}\r\nconst withScopeId = (_id) => withCtx;\r\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\r\n if (!ctx)\r\n return fn;\r\n if (fn._n) {\r\n return fn;\r\n }\r\n const renderFnWithContext = (...args) => {\r\n if (renderFnWithContext._d) {\r\n setBlockTracking(-1);\r\n }\r\n const prevInstance = setCurrentRenderingInstance(ctx);\r\n let res;\r\n try {\r\n res = fn(...args);\r\n } finally {\r\n setCurrentRenderingInstance(prevInstance);\r\n if (renderFnWithContext._d) {\r\n setBlockTracking(1);\r\n }\r\n }\r\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\r\n devtoolsComponentUpdated(ctx);\r\n }\r\n return res;\r\n };\r\n renderFnWithContext._n = true;\r\n renderFnWithContext._c = true;\r\n renderFnWithContext._d = true;\r\n return renderFnWithContext;\r\n}\r\n\r\nfunction markAttrsAccessed() {\r\n}\r\n\r\nconst COMPONENTS = \"components\";\r\nconst DIRECTIVES = \"directives\";\r\nfunction resolveComponent(name, maybeSelfReference) {\r\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\r\n}\r\nconst NULL_DYNAMIC_COMPONENT = Symbol.for(\"v-ndc\");\r\nfunction resolveDirective(name) {\r\n return resolveAsset(DIRECTIVES, name);\r\n}\r\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\r\n const instance = currentRenderingInstance || currentInstance;\r\n if (instance) {\r\n const Component = instance.type;\r\n if (type === COMPONENTS) {\r\n const selfName = getComponentName(\r\n Component,\r\n false\r\n );\r\n if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {\r\n return Component;\r\n }\r\n }\r\n const res = (\r\n // local registration\r\n // check instance[type] first which is resolved for options API\r\n resolve(instance[type] || Component[type], name) || // global registration\r\n resolve(instance.appContext[type], name)\r\n );\r\n if (!res && maybeSelfReference) {\r\n return Component;\r\n }\r\n if (!!(process.env.NODE_ENV !== \"production\") && warnMissing && !res) {\r\n const extra = type === COMPONENTS ? `\r\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;\r\n warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\r\n }\r\n return res;\r\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\r\n warn$1(\r\n `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`\r\n );\r\n }\r\n}\r\nfunction resolve(registry, name) {\r\n return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);\r\n}\r\n\r\nconst ssrContextKey = Symbol.for(\"v-scx\");\r\nconst useSSRContext = () => {\r\n {\r\n const ctx = inject(ssrContextKey);\r\n if (!ctx) {\r\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\r\n `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.`\r\n );\r\n }\r\n return ctx;\r\n }\r\n};\r\n\r\nfunction watchEffect(effect, options) {\r\n return doWatch(effect, null, options);\r\n}\r\nfunction watchPostEffect(effect, options) {\r\n return doWatch(\r\n effect,\r\n null,\r\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"post\" }) : { flush: \"post\" }\r\n );\r\n}\r\nfunction watchSyncEffect(effect, options) {\r\n return doWatch(\r\n effect,\r\n null,\r\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"sync\" }) : { flush: \"sync\" }\r\n );\r\n}\r\nconst INITIAL_WATCHER_VALUE = {};\r\nfunction watch(source, cb, options) {\r\n if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(cb)) {\r\n warn$1(\r\n `\\`watch(fn, options?)\\` signature has been moved to a separate API. Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only supports \\`watch(source, cb, options?) signature.`\r\n );\r\n }\r\n return doWatch(source, cb, options);\r\n}\r\nfunction doWatch(source, cb, {\r\n immediate,\r\n deep,\r\n flush,\r\n once,\r\n onTrack,\r\n onTrigger\r\n} = EMPTY_OBJ) {\r\n if (cb && once) {\r\n const _cb = cb;\r\n cb = (...args) => {\r\n _cb(...args);\r\n unwatch();\r\n };\r\n }\r\n if (!!(process.env.NODE_ENV !== \"production\") && deep !== void 0 && typeof deep === \"number\") {\r\n warn$1(\r\n `watch() \"deep\" option with number value will be used as watch depth in future versions. Please use a boolean instead to avoid potential breakage.`\r\n );\r\n }\r\n if (!!(process.env.NODE_ENV !== \"production\") && !cb) {\r\n if (immediate !== void 0) {\r\n warn$1(\r\n `watch() \"immediate\" option is only respected when using the watch(source, callback, options?) signature.`\r\n );\r\n }\r\n if (deep !== void 0) {\r\n warn$1(\r\n `watch() \"deep\" option is only respected when using the watch(source, callback, options?) signature.`\r\n );\r\n }\r\n if (once !== void 0) {\r\n warn$1(\r\n `watch() \"once\" option is only respected when using the watch(source, callback, options?) signature.`\r\n );\r\n }\r\n }\r\n const warnInvalidSource = (s) => {\r\n warn$1(\r\n `Invalid watch source: `,\r\n s,\r\n `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`\r\n );\r\n };\r\n const instance = currentInstance;\r\n const reactiveGetter = (source2) => deep === true ? source2 : (\r\n // for deep: false, only traverse root-level properties\r\n traverse(source2, deep === false ? 1 : void 0)\r\n );\r\n let getter;\r\n let forceTrigger = false;\r\n let isMultiSource = false;\r\n if (isRef(source)) {\r\n getter = () => source.value;\r\n forceTrigger = isShallow(source);\r\n } else if (isReactive(source)) {\r\n getter = () => reactiveGetter(source);\r\n forceTrigger = true;\r\n } else if (isArray(source)) {\r\n isMultiSource = true;\r\n forceTrigger = source.some((s) => isReactive(s) || isShallow(s));\r\n getter = () => source.map((s) => {\r\n if (isRef(s)) {\r\n return s.value;\r\n } else if (isReactive(s)) {\r\n return reactiveGetter(s);\r\n } else if (isFunction(s)) {\r\n return callWithErrorHandling(s, instance, 2);\r\n } else {\r\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(s);\r\n }\r\n });\r\n } else if (isFunction(source)) {\r\n if (cb) {\r\n getter = () => callWithErrorHandling(source, instance, 2);\r\n } else {\r\n getter = () => {\r\n if (cleanup) {\r\n cleanup();\r\n }\r\n return callWithAsyncErrorHandling(\r\n source,\r\n instance,\r\n 3,\r\n [onCleanup]\r\n );\r\n };\r\n }\r\n } else {\r\n getter = NOOP;\r\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(source);\r\n }\r\n if (cb && deep) {\r\n const baseGetter = getter;\r\n getter = () => traverse(baseGetter());\r\n }\r\n let cleanup;\r\n let onCleanup = (fn) => {\r\n cleanup = effect.onStop = () => {\r\n callWithErrorHandling(fn, instance, 4);\r\n cleanup = effect.onStop = void 0;\r\n };\r\n };\r\n let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;\r\n const job = () => {\r\n if (!effect.active || !effect.dirty) {\r\n return;\r\n }\r\n if (cb) {\r\n const newValue = effect.run();\r\n if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue)) || false) {\r\n if (cleanup) {\r\n cleanup();\r\n }\r\n callWithAsyncErrorHandling(cb, instance, 3, [\r\n newValue,\r\n // pass undefined as the old value when it's changed for the first time\r\n oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,\r\n onCleanup\r\n ]);\r\n oldValue = newValue;\r\n }\r\n } else {\r\n effect.run();\r\n }\r\n };\r\n job.allowRecurse = !!cb;\r\n let scheduler;\r\n if (flush === \"sync\") {\r\n scheduler = job;\r\n } else if (flush === \"post\") {\r\n scheduler = () => queuePostRenderEffect$1(job, instance && instance.suspense);\r\n } else {\r\n job.pre = true;\r\n if (instance)\r\n job.id = instance.uid;\r\n scheduler = () => queueJob(job);\r\n }\r\n const effect = new ReactiveEffect(getter, NOOP, scheduler);\r\n const scope = getCurrentScope();\r\n const unwatch = () => {\r\n effect.stop();\r\n if (scope) {\r\n remove(scope.effects, effect);\r\n }\r\n };\r\n if (!!(process.env.NODE_ENV !== \"production\")) {\r\n effect.onTrack = onTrack;\r\n effect.onTrigger = onTrigger;\r\n }\r\n if (cb) {\r\n if (immediate) {\r\n job();\r\n } else {\r\n oldValue = effect.run();\r\n }\r\n } else if (flush === \"post\") {\r\n queuePostRenderEffect$1(\r\n effect.run.bind(effect),\r\n instance && instance.suspense\r\n );\r\n } else {\r\n effect.run();\r\n }\r\n return unwatch;\r\n}\r\nfunction instanceWatch(source, value, options) {\r\n const publicThis = this.proxy;\r\n const getter = isString(source) ? source.includes(\".\") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);\r\n let cb;\r\n if (isFunction(value)) {\r\n cb = value;\r\n } else {\r\n cb = value.handler;\r\n options = value;\r\n }\r\n const reset = setCurrentInstance(this);\r\n const res = doWatch(getter, cb.bind(publicThis), options);\r\n reset();\r\n return res;\r\n}\r\nfunction createPathGetter(ctx, path) {\r\n const segments = path.split(\".\");\r\n return () => {\r\n let cur = ctx;\r\n for (let i = 0; i < segments.length && cur; i++) {\r\n cur = cur[segments[i]];\r\n }\r\n return cur;\r\n };\r\n}\r\nfunction traverse(value, depth, currentDepth = 0, seen) {\r\n if (!isObject(value) || value[\"__v_skip\"]) {\r\n return value;\r\n }\r\n if (depth && depth > 0) {\r\n if (currentDepth >= depth) {\r\n return value;\r\n }\r\n currentDepth++;\r\n }\r\n seen = seen || /* @__PURE__ */ new Set();\r\n if (seen.has(value)) {\r\n return value;\r\n }\r\n seen.add(value);\r\n if (isRef(value)) {\r\n traverse(value.value, depth, currentDepth, seen);\r\n } else if (isArray(value)) {\r\n for (let i = 0; i < value.length; i++) {\r\n traverse(value[i], depth, currentDepth, seen);\r\n }\r\n } else if (isSet(value) || isMap(value)) {\r\n value.forEach((v) => {\r\n traverse(v, depth, currentDepth, seen);\r\n });\r\n } else if (isPlainObject(value)) {\r\n for (const key in value) {\r\n traverse(value[key], depth, currentDepth, seen);\r\n }\r\n }\r\n return value;\r\n}\r\n\r\nfunction validateDirectiveName(name) {\r\n if (isBuiltInDirective(name)) {\r\n warn$1(\"Do not use built-in directive ids as custom directive id: \" + name);\r\n }\r\n}\r\nfunction withDirectives(vnode, directives) {\r\n if (currentRenderingInstance === null) {\r\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`withDirectives can only be used inside render functions.`);\r\n return vnode;\r\n }\r\n const instance = getExposeProxy(currentRenderingInstance) || currentRenderingInstance.proxy;\r\n const bindings = vnode.dirs || (vnode.dirs = []);\r\n for (let i = 0; i < directives.length; i++) {\r\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\r\n if (dir) {\r\n if (isFunction(dir)) {\r\n dir = {\r\n mounted: dir,\r\n updated: dir\r\n };\r\n }\r\n if (dir.deep) {\r\n traverse(value);\r\n }\r\n bindings.push({\r\n dir,\r\n instance,\r\n value,\r\n oldValue: void 0,\r\n arg,\r\n modifiers\r\n });\r\n }\r\n }\r\n return vnode;\r\n}\r\n\r\nfunction createAppContext() {\r\n return {\r\n app: null,\r\n config: {\r\n isNativeTag: NO,\r\n performance: false,\r\n globalProperties: {},\r\n optionMergeStrategies: {},\r\n errorHandler: void 0,\r\n warnHandler: void 0,\r\n compilerOptions: {}\r\n },\r\n mixins: [],\r\n components: {},\r\n directives: {},\r\n provides: /* @__PURE__ */ Object.create(null),\r\n optionsCache: /* @__PURE__ */ new WeakMap(),\r\n propsCache: /* @__PURE__ */ new WeakMap(),\r\n emitsCache: /* @__PURE__ */ new WeakMap()\r\n };\r\n}\r\nlet uid$1 = 0;\r\nfunction createAppAPI(render, hydrate) {\r\n return function createApp(rootComponent, rootProps = null) {\r\n if (!isFunction(rootComponent)) {\r\n rootComponent = extend({}, rootComponent);\r\n }\r\n if (rootProps != null && !isObject(rootProps)) {\r\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`root props passed to app.mount() must be an object.`);\r\n rootProps = null;\r\n }\r\n const context = createAppContext();\r\n const installedPlugins = /* @__PURE__ */ new WeakSet();\r\n const app = context.app = {\r\n _uid: uid$1++,\r\n _component: rootComponent,\r\n _props: rootProps,\r\n _container: null,\r\n _context: context,\r\n _instance: null,\r\n version,\r\n get config() {\r\n return context.config;\r\n },\r\n set config(v) {\r\n if (!!(process.env.NODE_ENV !== \"production\")) {\r\n warn$1(\r\n `app.config cannot be replaced. Modify individual options instead.`\r\n );\r\n }\r\n },\r\n use(plugin, ...options) {\r\n if (installedPlugins.has(plugin)) {\r\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`Plugin has already been applied to target app.`);\r\n } else if (plugin && isFunction(plugin.install)) {\r\n installedPlugins.add(plugin);\r\n plugin.install(app, ...options);\r\n } else if (isFunction(plugin)) {\r\n installedPlugins.add(plugin);\r\n plugin(app, ...options);\r\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\r\n warn$1(\r\n `A plugin must either be a function or an object with an \"install\" function.`\r\n );\r\n }\r\n return app;\r\n },\r\n mixin(mixin) {\r\n if (__VUE_OPTIONS_API__) {\r\n if (!context.mixins.includes(mixin)) {\r\n context.mixins.push(mixin);\r\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\r\n warn$1(\r\n \"Mixin has already been applied to target app\" + (mixin.name ? `: ${mixin.name}` : \"\")\r\n );\r\n }\r\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\r\n warn$1(\"Mixins are only available in builds supporting Options API\");\r\n }\r\n return app;\r\n },\r\n component(name, component) {\r\n if (!!(process.env.NODE_ENV !== \"production\")) {\r\n validateComponentName(name, context.config);\r\n }\r\n if (!component) {\r\n return context.components[name];\r\n }\r\n if (!!(process.env.NODE_ENV !== \"production\") && context.components[name]) {\r\n warn$1(`Component \"${name}\" has already been registered in target app.`);\r\n }\r\n context.components[name] = component;\r\n return app;\r\n },\r\n directive(name, directive) {\r\n if (!!(process.env.NODE_ENV !== \"production\")) {\r\n validateDirectiveName(name);\r\n }\r\n if (!directive) {\r\n return context.directives[name];\r\n }\r\n if (!!(process.env.NODE_ENV !== \"production\") && context.directives[name]) {\r\n warn$1(`Directive \"${name}\" has already been registered in target app.`);\r\n }\r\n context.directives[name] = directive;\r\n return app;\r\n },\r\n // fixed by xxxxxx\r\n mount() {\r\n },\r\n // fixed by xxxxxx\r\n unmount() {\r\n },\r\n provide(key, value) {\r\n if (!!(process.env.NODE_ENV !== \"production\") && key in context.provides) {\r\n warn$1(\r\n `App already provides property with key \"${String(key)}\". It will be overwritten with the new value.`\r\n );\r\n }\r\n context.provides[key] = value;\r\n return app;\r\n },\r\n runWithContext(fn) {\r\n const lastApp = currentApp;\r\n currentApp = app;\r\n try {\r\n return fn();\r\n } finally {\r\n currentApp = lastApp;\r\n }\r\n }\r\n };\r\n return app;\r\n };\r\n}\r\nlet currentApp = null;\r\n\r\nfunction provide(key, value) {\r\n if (!currentInstance) {\r\n if (!!(process.env.NODE_ENV !== \"production\")) {\r\n warn$1(`provide() can only be used inside setup().`);\r\n }\r\n } else {\r\n let provides = currentInstance.provides;\r\n const parentProvides = currentInstance.parent && currentInstance.parent.provides;\r\n if (parentProvides === provides) {\r\n provides = currentInstance.provides = Object.create(parentProvides);\r\n }\r\n provides[key] = value;\r\n if (currentInstance.type.mpType === \"app\") {\r\n currentInstance.appContext.app.provide(key, value);\r\n }\r\n }\r\n}\r\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\r\n const instance = currentInstance || currentRenderingInstance;\r\n if (instance || currentApp) {\r\n const provides = instance ? instance.parent == null ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : currentApp._context.provides;\r\n if (provides && key in provides) {\r\n return provides[key];\r\n } else if (arguments.length > 1) {\r\n return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;\r\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\r\n warn$1(`injection \"${String(key)}\" not found.`);\r\n }\r\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\r\n warn$1(`inject() can only be used inside setup() or functional components.`);\r\n }\r\n}\r\nfunction hasInjectionContext() {\r\n return !!(currentInstance || currentRenderingInstance || currentApp);\r\n}\r\n\r\n/*! #__NO_SIDE_EFFECTS__ */\r\n// @__NO_SIDE_EFFECTS__\r\nfunction defineComponent(options, extraOptions) {\r\n return isFunction(options) ? (\r\n // #8326: extend call and options.name access are considered side-effects\r\n // by Rollup, so we have to wrap it in a pure-annotated IIFE.\r\n /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()\r\n ) : options;\r\n}\r\n\r\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\r\nfunction onActivated(hook, target) {\r\n registerKeepAliveHook(hook, \"a\", target);\r\n}\r\nfunction onDeactivated(hook, target) {\r\n registerKeepAliveHook(hook, \"da\", target);\r\n}\r\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\r\n const wrappedHook = hook.__wdc || (hook.__wdc = () => {\r\n let current = target;\r\n while (current) {\r\n if (current.isDeactivated) {\r\n return;\r\n }\r\n current = current.parent;\r\n }\r\n return hook();\r\n });\r\n injectHook(type, wrappedHook, target);\r\n if (target) {\r\n let current = target.parent;\r\n while (current && current.parent) {\r\n if (isKeepAlive(current.parent.vnode)) {\r\n injectToKeepAliveRoot(wrappedHook, type, target, current);\r\n }\r\n current = current.parent;\r\n }\r\n }\r\n}\r\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\r\n const injected = injectHook(\r\n type,\r\n hook,\r\n keepAliveRoot,\r\n true\r\n /* prepend */\r\n );\r\n onUnmounted(() => {\r\n remove(keepAliveRoot[type], injected);\r\n }, target);\r\n}\r\n\r\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\r\n if (target) {\r\n if (isRootHook(type)) {\r\n target = target.root;\r\n }\r\n const hooks = target[type] || (target[type] = []);\r\n const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\r\n if (target.isUnmounted) {\r\n return;\r\n }\r\n pauseTracking();\r\n const reset = setCurrentInstance(target);\r\n const res = callWithAsyncErrorHandling(hook, target, type, args);\r\n reset();\r\n resetTracking();\r\n return res;\r\n });\r\n if (prepend) {\r\n hooks.unshift(wrappedHook);\r\n } else {\r\n hooks.push(wrappedHook);\r\n }\r\n return wrappedHook;\r\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\r\n const apiName = toHandlerKey(\r\n (ErrorTypeStrings[type] || type.replace(/^on/, \"\")).replace(/ hook$/, \"\")\r\n );\r\n warn$1(\r\n `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (``)\r\n );\r\n }\r\n}\r\nconst createHook = (lifecycle) => (hook, target = currentInstance) => (\r\n // post-create lifecycle registrations are noops during SSR (except for serverPrefetch)\r\n (!isInSSRComponentSetup || lifecycle === \"sp\") && injectHook(lifecycle, (...args) => hook(...args), target)\r\n);\r\nconst onBeforeMount = createHook(\"bm\");\r\nconst onMounted = createHook(\"m\");\r\nconst onBeforeUpdate = createHook(\"bu\");\r\nconst onUpdated = createHook(\"u\");\r\nconst onBeforeUnmount = createHook(\"bum\");\r\nconst onUnmounted = createHook(\"um\");\r\nconst onServerPrefetch = createHook(\"sp\");\r\nconst onRenderTriggered = createHook(\r\n \"rtg\"\r\n);\r\nconst onRenderTracked = createHook(\r\n \"rtc\"\r\n);\r\nfunction onErrorCaptured(hook, target = currentInstance) {\r\n injectHook(\"ec\", hook, target);\r\n}\r\n\r\nfunction toHandlers(obj, preserveCaseIfNecessary) {\r\n const ret = {};\r\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(obj)) {\r\n warn$1(`v-on with no argument expects an object value.`);\r\n return ret;\r\n }\r\n for (const key in obj) {\r\n ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key];\r\n }\r\n return ret;\r\n}\r\n\r\nconst getPublicInstance = (i) => {\r\n if (!i)\r\n return null;\r\n if (isStatefulComponent(i))\r\n return getExposeProxy(i) || i.proxy;\r\n return getPublicInstance(i.parent);\r\n};\r\nconst publicPropertiesMap = (\r\n // Move PURE marker to new line to workaround compiler discarding it\r\n // due to type annotation\r\n /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {\r\n $: (i) => i,\r\n // fixed by xxxxxx vue-i18n 在 dev 模式,访问了 $el,故模拟一个假的\r\n // $el: i => i.vnode.el,\r\n $el: (i) => i.__$el || (i.__$el = {}),\r\n $data: (i) => i.data,\r\n $props: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.props) : i.props,\r\n $attrs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.attrs) : i.attrs,\r\n $slots: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.slots) : i.slots,\r\n $refs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.refs) : i.refs,\r\n $parent: (i) => getPublicInstance(i.parent),\r\n $root: (i) => getPublicInstance(i.root),\r\n $emit: (i) => i.emit,\r\n $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type,\r\n $forceUpdate: (i) => i.f || (i.f = () => {\r\n i.effect.dirty = true;\r\n queueJob(i.update);\r\n }),\r\n // $nextTick: i => i.n || (i.n = nextTick.bind(i.proxy!)),// fixed by xxxxxx\r\n $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP\r\n })\r\n);\r\nconst isReservedPrefix = (key) => key === \"_\" || key === \"$\";\r\nconst hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\r\nconst PublicInstanceProxyHandlers = {\r\n get({ _: instance }, key) {\r\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\r\n if (!!(process.env.NODE_ENV !== \"production\") && key === \"__isVue\") {\r\n return true;\r\n }\r\n let normalizedProps;\r\n if (key[0] !== \"$\") {\r\n const n = accessCache[key];\r\n if (n !== void 0) {\r\n switch (n) {\r\n case 1 /* SETUP */:\r\n return setupState[key];\r\n case 2 /* DATA */:\r\n return data[key];\r\n case 4 /* CONTEXT */:\r\n return ctx[key];\r\n case 3 /* PROPS */:\r\n return props[key];\r\n }\r\n } else if (hasSetupBinding(setupState, key)) {\r\n accessCache[key] = 1 /* SETUP */;\r\n return setupState[key];\r\n } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\r\n accessCache[key] = 2 /* DATA */;\r\n return data[key];\r\n } else if (\r\n // only cache other properties when instance has declared (thus stable)\r\n // props\r\n (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key)\r\n ) {\r\n accessCache[key] = 3 /* PROPS */;\r\n return props[key];\r\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\r\n accessCache[key] = 4 /* CONTEXT */;\r\n return ctx[key];\r\n } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) {\r\n accessCache[key] = 0 /* OTHER */;\r\n }\r\n }\r\n const publicGetter = publicPropertiesMap[key];\r\n let cssModule, globalProperties;\r\n if (publicGetter) {\r\n if (key === \"$attrs\") {\r\n track(instance, \"get\", key);\r\n !!(process.env.NODE_ENV !== \"production\") && markAttrsAccessed();\r\n } else if (!!(process.env.NODE_ENV !== \"production\") && key === \"$slots\") {\r\n track(instance, \"get\", key);\r\n }\r\n return publicGetter(instance);\r\n } else if (\r\n // css module (injected by vue-loader)\r\n (cssModule = type.__cssModules) && (cssModule = cssModule[key])\r\n ) {\r\n return cssModule;\r\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\r\n accessCache[key] = 4 /* CONTEXT */;\r\n return ctx[key];\r\n } else if (\r\n // global properties\r\n globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)\r\n ) {\r\n {\r\n return globalProperties[key];\r\n }\r\n } else if (!!(process.env.NODE_ENV !== \"production\") && currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading\r\n // to infinite warning loop\r\n key.indexOf(\"__v\") !== 0)) {\r\n if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {\r\n warn$1(\r\n `Property ${JSON.stringify(\r\n key\r\n )} must be accessed via $data because it starts with a reserved character (\"$\" or \"_\") and is not proxied on the render context.`\r\n );\r\n } else if (instance === currentRenderingInstance) {\r\n warn$1(\r\n `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`\r\n );\r\n }\r\n }\r\n },\r\n set({ _: instance }, key, value) {\r\n const { data, setupState, ctx } = instance;\r\n if (hasSetupBinding(setupState, key)) {\r\n setupState[key] = value;\r\n return true;\r\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup && hasOwn(setupState, key)) {\r\n warn$1(`Cannot mutate \r\n\r\n","import Component from 'D:/hldy_app/component/rightItemsindex/index.vue'\nwx.createComponent(Component)"],"names":["ref","onMounted","onBeforeUnmount"],"mappings":";;;;;;;;;;;;;;;;;AAutBC,UAAM,QAAQ;AAWR,UAAA,iBAAiBA,kBAAI,KAAK;AAC1B,UAAA,WAAWA,kBAAI,IAAI;AACnB,UAAA,YAAYA,kBAAI,GAAG;AACnB,UAAA,SAASA,kBAAI,GAAG;AAChB,UAAA,UAAUA,kBAAI,GAAG;AACjB,UAAA,wBAAwBA,kBAAI,KAAK;AAGjC,UAAA,oBAAoBA,kBAAI,KAAK;AAC7B,UAAA,cAAcA,kBAAI,IAAI;AACtB,UAAA,eAAeA,kBAAI,GAAG;AACtB,UAAA,YAAYA,kBAAI,GAAG;AACnB,UAAA,aAAaA,kBAAI,GAAG;AACpB,UAAA,2BAA2BA,kBAAI,KAAK;AAGpC,UAAA,oBAAoBA,kBAAI,KAAK;AAC7B,UAAA,cAAcA,kBAAI,GAAG;AACrB,UAAA,eAAeA,kBAAI,GAAG;AACtB,UAAA,YAAYA,kBAAI,GAAG;AACnB,UAAA,aAAaA,kBAAI,IAAI;AACrB,UAAA,2BAA2BA,kBAAI,KAAK;AAEpC,UAAA,cAAcA,kBAAI,EAAE;AACpB,UAAA,WAAWA,kBAAI,EAAE;AACjB,UAAA,UAAUA,kBAAI,EAAE;AAGtB,UAAM,gBAAgBA,cAAAA,IAAsB;AAAA,MAC3C,EAAE,KAAK,sCAAsC,WAAW,0CAA0C,MAAM,OAAO;AAAA,MAC/G,EAAE,KAAK,2CAA2C,WAAW,+CAA+C,MAAM,OAAO;AAAA,MACzH,EAAE,KAAK,2CAA2C,WAAW,2CAA2C,MAAM,OAAO;AAAA,MACrH,EAAE,KAAK,0CAA0C,WAAW,2CAA2C,MAAM,MAAM;AAAA,MACnH,EAAE,KAAK,2CAA2C,WAAW,2CAA2C,MAAM,OAAO;AAAA,MACrH,EAAE,KAAK,yCAAyC,WAAW,yCAAyC,MAAM,OAAO;AAAA,IAAA,CACjH;AAGD,UAAM,WAAWA,cAAAA,IAAoB;AAAA,MACpC,EAAE,KAAK,uCAAuC,MAAM,OAAO;AAAA,MAC3D,EAAE,KAAK,qCAAqC,MAAM,OAAO;AAAA,MACzD,EAAE,KAAK,wCAAwC,MAAM,OAAO;AAAA,IAAA,CAC5D;AAED,UAAM,eAAeA,cAAAA,IAAoB;AAAA,MACxC,EAAE,KAAK,2CAA2C,MAAM,OAAO;AAAA,MAC/D,EAAE,KAAK,yCAAyC,MAAM,OAAO;AAAA,MAC7D,EAAE,KAAK,4CAA4C,MAAM,OAAO;AAAA,IAAA,CAChE;AAED,UAAM,aAAaA,cAAAA,IAAe;AAAA,MACjC,EAAE,KAAK,mCAAmC,MAAM,QAAQ,QAAQ,EAAE;AAAA,MAClE,EAAE,KAAK,qCAAqC,MAAM,QAAQ,QAAQ,GAAG;AAAA,MACrE,EAAE,KAAK,mCAAmC,MAAM,QAAQ,QAAQ,IAAI;AAAA,MACpE,EAAE,KAAK,kCAAkC,MAAM,QAAQ,QAAQ,EAAE;AAAA,MACjE,EAAE,KAAK,kCAAkC,MAAM,SAAS,QAAQ,EAAE;AAAA,IAAA,CAClE;AAED,UAAM,iBAAiBA,cAAAA,IAAe;AAAA,MACrC,EAAE,KAAK,yCAAyC,MAAM,QAAQ,QAAQ,GAAG;AAAA,MACzE,EAAE,KAAK,2CAA2C,MAAM,QAAQ,QAAQ,GAAG;AAAA,MAC3E,EAAE,KAAK,yCAAyC,MAAM,QAAQ,QAAQ,IAAI;AAAA,MAC1E,EAAE,KAAK,wCAAwC,MAAM,QAAQ,QAAQ,GAAG;AAAA,MACxE,EAAE,KAAK,wCAAwC,MAAM,SAAS,QAAQ,GAAG;AAAA,IAAA,CACzE;AAID,UAAM,iBAAiBA,cAAAA,IAAsB;AAAA,MAC5C,EAAE,KAAK,wCAAwC,WAAW,2CAA2C,MAAM,KAAK;AAAA,MAChH,EAAE,KAAK,wCAAwC,WAAW,2CAA2C,MAAM,KAAK;AAAA,MAChH,EAAE,KAAK,wCAAwC,WAAW,2CAA2C,MAAM,KAAK;AAAA,MAChH,EAAE,KAAK,sCAAsC,WAAW,yCAAyC,MAAM,KAAK;AAAA,IAAA,CAC5G;AAED,UAAM,qBAAqBA,cAAAA,IAAsB;AAAA,MAChD,EAAE,KAAK,2CAA2C,WAAW,2CAA2C,MAAM,KAAK;AAAA,MACnH,EAAE,KAAK,0CAA0C,WAAW,2CAA2C,MAAM,KAAK;AAAA,MAClH,EAAE,KAAK,2CAA2C,WAAW,2CAA2C,MAAM,KAAK;AAAA,MACnH,EAAE,KAAK,yCAAyC,WAAW,yCAAyC,MAAM,KAAK;AAAA,IAAA,CAC/G;AAEiBA,kBAAAA,IAAY,CAAC;AACzB,UAAA,iBAAiBA,kBAAY,CAAC;AAGlBA,kBAAAA,IAAa,KAAK;AAE9B,UAAA,UAAUA,kBAAc,CAAA,CAAE;AAE1B,UAAA,oBAAoBA,kBAAY,CAAC;AACjC,UAAA,sBAAsBA,kBAAY,CAAC;AACnC,UAAA,uBAAuBA,kBAAY,CAAC;AACpC,UAAA,qBAAqBA,kBAAY,CAAC;AACdA,kBAAAA,IAAY,CAAC;AACvC,UAAM,OAAO;AAEb,UAAM,iBAAiB,MAAM;AACvB,WAAA,cAAc,CAAC,MAAM,QAAQ;AAAA,IAAA;AAO7B,UAAA,kBAAkB,CAAC,UAAmB;AAC3C,qBAAe,QAAQ;AAAA,IAAA;AAElB,UAAA,WAAW,CAAC,UAAmB;AACpC,UAAI,QAAQ,MAAM,SAAS,KAAK,GAAG;AAClC,YAAI,QAAQ,CAAA;AACJ,gBAAA,MAAM,QAAQ,CAAC,QAAiB;AACvC,cAAI,QAAQ,OAAO;AAClB,kBAAM,KAAK,GAAG;AAAA,UACf;AAAA,QAAA,CACA;AACD,gBAAQ,QAAQ;AAAA,MAAA,OACV;AACE,gBAAA,MAAM,KAAK,KAAK;AAAA,MACzB;AAAA,IAAA;AAGD,UAAM,aAAa,MAAM;AAClB,YAAA,0BAAU;AAGV,YAAA,QAAQ,IAAI,SAAS,EAAE,WAAW,SAAS,GAAG,GAAG;AACjD,YAAA,UAAU,IAAI,WAAW,EAAE,WAAW,SAAS,GAAG,GAAG;AAC3D,kBAAY,QAAQ,GAAG,KAAK,IAAI,OAAO;AAGjC,YAAA,OAAO,IAAI;AACX,YAAA,SAAS,IAAI,aAAa,GAAG,SAAS,EAAE,SAAS,GAAG,GAAG;AACvD,YAAA,MAAM,IAAI,QAAQ,EAAE,WAAW,SAAS,GAAG,GAAG;AACpD,eAAS,QAAQ,GAAG,IAAI,IAAI,KAAK,IAAI,GAAG;AAGlC,YAAA,WAAW,CAAC,OAAO,OAAO,OAAO,OAAO,OAAO,OAAO,KAAK;AACjE,YAAM,OAAO,SAAS,IAAI,OAAQ,CAAA;AAClC,cAAQ,QAAQ;AAAA,IAAA;AAGX,UAAA,iBAAiB,CAAC,UAAgB;AACnB,0BAAA,QAAQ,MAAM,OAAO;AAAA,IAAA;AAEpC,UAAA,oBAAoB,CAAC,UAAgB;AACrB,2BAAA,QAAQ,MAAM,OAAO;AAAA,IAAA;AAgB3C,UAAM,YAAY,MAAM;AACvB,qBAAe,QAAQ;AACvB,iBAAW,MAAM;AAChB,iBAAS,QAAQ;AACjB,kBAAU,QAAQ;AAClB,eAAO,QAAQ;AACf,gBAAQ,QAAQ;AAChB,8BAAsB,QAAQ;AAAA,SAC5B,EAAE;AAAA,IAAA;AAEN,UAAM,aAAa,MAAM;AACxB,eAAS,QAAQ;AACjB,gBAAU,QAAQ;AAClB,aAAO,QAAQ;AACf,cAAQ,QAAQ;AAChB,4BAAsB,QAAQ;AAC9B,iBAAW,MAAM;AAChB,uBAAe,QAAQ;AAAA,SACrB,GAAG;AAAA,IAAA;AAKP,UAAM,eAAe,MAAM;AAC1B,wBAAkB,QAAQ;AAC1B,iBAAW,MAAM;AAChB,oBAAY,QAAQ;AACpB,qBAAa,QAAQ;AACrB,kBAAU,QAAQ;AAClB,mBAAW,QAAQ;AACnB,iCAAyB,QAAQ;AAAA,SAC/B,EAAE;AAAA,IAAA;AAEN,UAAM,gBAAgB,MAAM;AAC3B,kBAAY,QAAQ;AACpB,mBAAa,QAAQ;AACrB,gBAAU,QAAQ;AAClB,iBAAW,QAAQ;AACnB,+BAAyB,QAAQ;AACjC,iBAAW,MAAM;AAChB,0BAAkB,QAAQ;AAAA,SACxB,GAAG;AAAA,IAAA;AAKP,UAAM,eAAe,MAAM;AAC1B,wBAAkB,QAAQ;AAC1B,iBAAW,MAAM;AAChB,oBAAY,QAAQ;AACpB,qBAAa,QAAQ;AACrB,kBAAU,QAAQ;AAClB,mBAAW,QAAQ;AACnB,iCAAyB,QAAQ;AAAA,SAC/B,EAAE;AAAA,IAAA;AAEN,UAAM,gBAAgB,MAAM;AAC3B,kBAAY,QAAQ;AACpB,mBAAa,QAAQ;AACrB,gBAAU,QAAQ;AAClB,iBAAW,QAAQ;AACnB,+BAAyB,QAAQ;AACjC,iBAAW,MAAM;AAChB,0BAAkB,QAAQ;AAAA,SACxB,GAAG;AAAA,IAAA;AAEP,QAAI,UAAU;AAEdC,kBAAAA,UAAU,MAAM;AACf,gBAAU,WAAW;AAErB,kBAAY,YAAY,GAAI;AAAA,IAAA,CAC5B;AAEDC,kBAAAA,gBAAgB,MAAM;AACrB,oBAAc,OAAO;AAAA,IAAA,CACrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/8BF,GAAG,gBAAgB,SAAS;"}
\ No newline at end of file
+{"version":3,"file":"index.js","sources":["../Hbuilder/HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDovaGxkeV9hcHAvY29tcG9uZW50L3JpZ2h0SXRlbXNpbmRleC9pbmRleC52dWU"],"sourcesContent":["import Component from 'D:/hldy_app/component/rightItemsindex/index.vue'\nwx.createComponent(Component)"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,GAAG,gBAAgB,SAAS;"}
\ No newline at end of file
diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/component/rightItemssecond/index.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/component/rightItemssecond/index.js.map
index 81d769c..5560f5a 100644
--- a/unpackage/dist/dev/.sourcemap/mp-weixin/component/rightItemssecond/index.js.map
+++ b/unpackage/dist/dev/.sourcemap/mp-weixin/component/rightItemssecond/index.js.map
@@ -1 +1 @@
-{"version":3,"file":"index.js","sources":["component/rightItemssecond/index.vue","../Hbuilder/HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDovaGxkeV9hcHAvY29tcG9uZW50L3JpZ2h0SXRlbXNzZWNvbmQvaW5kZXgudnVl"],"sourcesContent":["\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tID:12345678\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t名称:未命名01\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t王金福\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t切换到暗黑模式\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t取消暗黑模式\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{{ item.name }}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{{item}}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t时间矩阵\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t2\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\r\n\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{{ item.name }}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\r\n\t\r\n\r\n\r\n\r\n\r\n\r\n","import Component from 'D:/hldy_app/component/rightItemssecond/index.vue'\nwx.createComponent(Component)"],"names":["ref"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAgGC,UAAM,QAAQ;AAed,UAAM,WAAWA,cAAAA,IAAc;AAAA,MAC9B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MAEA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,CACA;AAED,UAAM,gBAAgBA,cAAAA,IAAsB;AAAA,MAC3C,EAAE,KAAK,sCAAsC,WAAW,0CAA0C,MAAM,OAAO;AAAA,MAC/G,EAAE,KAAK,2CAA2C,WAAW,+CAA+C,MAAM,OAAO;AAAA,MACzH,EAAE,KAAK,2CAA2C,WAAW,2CAA2C,MAAM,OAAO;AAAA,MACrH,EAAE,KAAK,0CAA0C,WAAW,2CAA2C,MAAM,MAAM;AAAA,MACnH,EAAE,KAAK,2CAA2C,WAAW,2CAA2C,MAAM,OAAO;AAAA,MACrH,EAAE,KAAK,yCAAyC,WAAW,yCAAyC,MAAM,OAAO;AAAA,IAAA,CACjH;AAGD,UAAM,gBAAgBA,cAAAA,IAAsB;AAAA,MAC3C,EAAE,KAAK,2CAA2C,WAAW,0CAA0C,MAAM,KAAK;AAAA,MAClH,EAAE,KAAK,2CAA2C,WAAW,0CAA0C,MAAM,KAAK;AAAA,MAClH,EAAE,KAAK,yCAAyC,WAAW,wCAAwC,MAAM,KAAK;AAAA,MAC9G,EAAE,KAAK,yCAAyC,WAAW,wCAAwC,MAAM,KAAK;AAAA,MAC9G,EAAE,KAAK,yCAAyC,WAAW,wCAAwC,MAAM,KAAK;AAAA,IAAA,CAE9G;AAEK,UAAA,iBAAiBA,kBAAY,CAAC;AAC9B,UAAA,cAAcA,kBAAY,CAAC;AAC3B,UAAA,gBAAgBA,kBAAY,CAAC;AAGjBA,kBAAAA,IAAa,KAAK;AAEpBA,kBAAAA,IAAc,CAAA,CAAE;AAChC,UAAM,OAAO;AAEb,UAAM,iBAAiB,MAAM;AACvB,WAAA,cAAc,CAAC,MAAM,QAAQ;AAAA,IAAA;AAG7B,UAAA,kBAAkB,CAAC,UAAmB;AAC3C,qBAAe,QAAQ;AAAA,IAAA;AAGlB,UAAA,QAAQA,kBAAI,IAAI;AAEhB,UAAA,mBAAmB,CAAC,MAAY,UAAmB;AAClD,YAAA,QAAQ,WAAW,MAAM;AAC9B,sBAAc,QAAQ;AACtB,aAAK,YAAY,IAAI;AAAA,SACnB,GAAG;AAAA,IAAA;AAGP,UAAM,iBAAiB,MAAM;AAC5B,UAAI,MAAM,OAAO;AAChB,qBAAa,MAAM,KAAK;AACxB,cAAM,QAAQ;AAAA,MACf;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxLF,GAAG,gBAAgB,SAAS;"}
\ No newline at end of file
+{"version":3,"file":"index.js","sources":["../Hbuilder/HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDovaGxkeV9hcHAvY29tcG9uZW50L3JpZ2h0SXRlbXNzZWNvbmQvaW5kZXgudnVl"],"sourcesContent":["import Component from 'D:/hldy_app/component/rightItemssecond/index.vue'\nwx.createComponent(Component)"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,GAAG,gBAAgB,SAAS;"}
\ No newline at end of file
diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map
index a36c504..12749cd 100644
--- a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map
+++ b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map
@@ -1 +1 @@
-{"version":3,"file":"index.js","sources":["pages/index/index.vue","../Hbuilder/HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvaW5kZXgvaW5kZXgudnVl"],"sourcesContent":["\r\n\t\r\n\t\t\r\n\t\t\t{{savename}}\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t王金凤\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\r\n\r\n\r\n\r\n\r\n","import MiniProgramPage from 'D:/hldy_app/pages/index/index.vue'\nwx.createPage(MiniProgramPage)"],"names":["ref","uni","onShow"],"mappings":";;;;;;AA8BC,MAAA,kBAA4B,MAAA;AAC5B,MAAA,mBAA6B,MAAA;;;;AAI7B,UAAM,WAAWA,cAAAA,IAAY;AAAA,MAC5B,EAAE,KAAK,oCAAoC,WAAW,6CAA6C;AAAA,MACnG,EAAE,KAAK,oCAAoC,WAAW,6CAA6C;AAAA,MACnG,EAAE,KAAK,qCAAqC,WAAW,8CAA6C;AAAA,MACpG,EAAE,KAAK,mCAAmC,WAAW,4CAA4C;AAAA,MACjG,EAAE,KAAK,mCAAmC,WAAW,4CAA4C;AAAA,MACjG,EAAE,KAAK,mCAAmC,WAAW,4CAA4C;AAAA,IAAA,CACjG;AAGK,UAAA,YAAYA,kBAAY,CAAC;AACzB,UAAA,gBAAgBA,kBAAa,KAAK;AAClC,UAAA,sBAAsBA,kBAAa,KAAK;AAExC,UAAA,WAAWA,kBAAa,KAAK;AAEnBA,kBAAAA,IAAc,CAAA,CAAE;AAENA,kBAAAA,IAAY,CAAC;AACXA,kBAAAA,IAAY,CAAC;AACZA,kBAAAA,IAAY,CAAC;AACfA,kBAAAA,IAAY,CAAC;AACdA,kBAAAA,IAAY,CAAC;AAEjC,UAAA,aAAa,CAAC,QAAe;AAClC,eAAS,QAAQ;AAAA,IAAA;AAGZ,UAAA,aAAa,CAAC,UAAmB;AACtC,UAAG,UAAQ,GAAE;AACZ,sBAAc,QAAQ;AACtB,4BAAoB,QAAQ;AAC5BC,sBAAAA,MAAI,WAAW;AAAA,UACb,KAAK,uCAAuC,SAAS,KAAK;AAAA,UAC1D,eAAe;AAAA,UACf,mBAAmB;AAAA;AAAA,QAAA,CACpB;AACD;AAAA,MACD;AACA,gBAAU,QAAQ;AAClB,oBAAc,QAAQ;AACtB,0BAAoB,QAAQ;AAC5B,iBAAW,MAAI;AACd,gBAAQ,OAAO;AAAA,UACb,KAAK;AACN,0BAAc,QAAQ;AACnB;AAAA,UACF,KAAK;AACH,gCAAoB,QAAQ;AAC5B;AAAA,QAEJ;AAAA,SACC,EAAE;AAAA,IAAA;AAEC,UAAA,UAAUD,kBAAI,CAAC;AACf,UAAA,UAAUA,kBAAI,CAAC;AACf,UAAA,WAAWA,kBAAI,EAAE;AACjB,UAAA,UAAUA,kBAAI,IAAI;AAElB,UAAA,QAAQ,CAAC,UAAU;AAClB,YAAA,QAAQ,MAAM,QAAQ,CAAC;AAC7B,cAAQ,QAAQ,KAAG,KAAK,MAAM,MAAM,OAAO,IAAI;AAC/C,cAAQ,QAAQ,KAAG,KAAK,MAAM,MAAM,OAAO,IAAI;AAAA,IAAA;AAE1C,UAAA,WAAW,CAAC,QAAc;AAC/B,eAAS,QAAQ;AACjB,cAAQ,QAAQ;AAAA,IAAA;AAGjB,UAAM,WAAW,MAAK;AACrB,eAAS,QAAQ;AACjB,cAAQ,QAAQ;AAChB,cAAQ,QAAQ;AAChB,cAAQ,QAAQ;AAAA,IAAA;AAGjBE,kBAAAA,OAAO,MAAM;AAEZ,iBAAW,MAAI;AACd,mBAAW,UAAU,KAAK;AAAA,SACzB,EAAE;AAAA,IAAA,CACJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnHF,GAAG,WAAW,eAAe;"}
\ No newline at end of file
+{"version":3,"file":"index.js","sources":["../Hbuilder/HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvaW5kZXgvaW5kZXgudnVl"],"sourcesContent":["import MiniProgramPage from 'D:/hldy_app/pages/index/index.vue'\nwx.createPage(MiniProgramPage)"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,GAAG,WAAW,eAAe;"}
\ No newline at end of file
diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/login/login.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/login/login.js.map
index 97a65db..fed32c6 100644
--- a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/login/login.js.map
+++ b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/login/login.js.map
@@ -1 +1 @@
-{"version":3,"file":"login.js","sources":["pages/login/login.vue","../Hbuilder/HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvbG9naW4vbG9naW4udnVl"],"sourcesContent":["\n \n \n \n 1\n \n \n 2\n \n \n 3\n \n \n \n\n\n\n\n\n","import MiniProgramPage from 'D:/hldy_app/pages/login/login.vue'\nwx.createPage(MiniProgramPage)"],"names":[],"mappings":";;AAiBA,MAAK,YAAU;AAAA,EACb,OAAO;AACL,WAAO;AAAA,MACL,QAAQ;AAAA,MACR,QAAQ;AAAA,MACR,YAAY;AAAA;EAEf;AAAA,EACD,SAAS;AAAA;AAAA,IAEP,aAAa,GAAG;AACd,WAAK,SAAS,EAAE,QAAQ,CAAC,EAAE;AAC3B,WAAK,SAAS,EAAE,QAAQ,CAAC,EAAE;AAC3B,WAAK,aAAa;AAAA,IACnB;AAAA;AAAA,IAED,YAAY,GAAG;AACb,YAAM,QAAQ,EAAE,QAAQ,CAAC,EAAE,UAAU,KAAK;AAC1C,YAAM,QAAQ,EAAE,QAAQ,CAAC,EAAE,UAAU,KAAK;AAE1C,UAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,GAAG;AAErC,aAAK,aAAa;AAAA,aACb;AAEL,aAAK,aAAa;AAAA,MACpB;AAEA,UAAI,KAAK,YAAY;AACnB,UAAE,eAAc;AAAA,MAClB;AAAA,IACD;AAAA;AAAA,IAED,aAAa;AACX,WAAK,aAAa;AAAA,IACpB;AAAA,EACF;AACF;;;;;;;;;ACrDA,GAAG,WAAW,eAAe;"}
\ No newline at end of file
+{"version":3,"file":"login.js","sources":["../Hbuilder/HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvbG9naW4vbG9naW4udnVl"],"sourcesContent":["import MiniProgramPage from 'D:/hldy_app/pages/login/login.vue'\nwx.createPage(MiniProgramPage)"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,GAAG,WAAW,eAAe;"}
\ No newline at end of file
diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/somethingmove/index.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/somethingmove/index.js.map
index b71a0dc..c8f3a26 100644
--- a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/somethingmove/index.js.map
+++ b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/somethingmove/index.js.map
@@ -1 +1 @@
-{"version":3,"file":"index.js","sources":["pages/somethingmove/index.vue","../Hbuilder/HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvc29tZXRoaW5nbW92ZS9pbmRleC52dWU"],"sourcesContent":["\r\n\r\n\t\r\n\t\t1111111\r\n\t\n\n\n\n\n","import MiniProgramPage from 'D:/hldy_app/pages/somethingmove/index.vue'\nwx.createPage(MiniProgramPage)"],"names":["ref","onLoad","uni"],"mappings":";;;;;AAWO,UAAA,WAAWA,kBAAI,KAAK;AAO1BC,kBAAA,OAAO,CAAC,YAAyB;AAE7B,UAAA,QAAQ,aAAa,SAAQ;AAC/B,iBAAS,QAAQ;AAAA,MAAA,OACb;AACJ,iBAAS,QAAQ;AAAA,MAClB;AAAA,IAAA,CACA;AAED,UAAM,SAAS,MAAK;AACnBC,oBAAA,MAAI,aAAa;AAAA,IAAA;;;;;;;;;;AC3BnB,GAAG,WAAW,eAAe;"}
\ No newline at end of file
+{"version":3,"file":"index.js","sources":["../Hbuilder/HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvc29tZXRoaW5nbW92ZS9pbmRleC52dWU"],"sourcesContent":["import MiniProgramPage from 'D:/hldy_app/pages/somethingmove/index.vue'\nwx.createPage(MiniProgramPage)"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AACA,GAAG,WAAW,eAAe;"}
\ No newline at end of file
diff --git a/unpackage/dist/dev/app-plus/app-config-service.js b/unpackage/dist/dev/app-plus/app-config-service.js
index eddc57b..73b0a63 100644
--- a/unpackage/dist/dev/app-plus/app-config-service.js
+++ b/unpackage/dist/dev/app-plus/app-config-service.js
@@ -1,7 +1,7 @@
;(function(){
let u=void 0,isReady=false,onReadyCallbacks=[],isServiceReady=false,onServiceReadyCallbacks=[];
- const __uniConfig = {"pages":[],"globalStyle":{"backgroundColor":"#F8F8F8","bounce":"none","navigationBar":{"backgroundColor":"#F8F8F8","titleText":"uni-app x","type":"default","titleColor":"#000000"},"isNVue":false},"nvue":{"compiler":"uni-app","styleCompiler":"uni-app","flex-direction":"column"},"renderer":"auto","appname":"养老App","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":true},"compilerVersion":"4.55","entryPagePath":"pages/index/index","entryPageQuery":"","realEntryPagePath":"","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000},"locales":{},"darkmode":false,"themeConfig":{}};
+ const __uniConfig = {"pages":[],"globalStyle":{"backgroundColor":"#F8F8F8","bounce":"none","navigationBar":{"backgroundColor":"#F8F8F8","titleText":"uni-app x","type":"default","titleColor":"#000000"},"isNVue":false},"nvue":{"compiler":"uni-app","styleCompiler":"uni-app","flex-direction":"column"},"renderer":"auto","appname":"养老App","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":true},"compilerVersion":"4.56","entryPagePath":"pages/index/index","entryPageQuery":"","realEntryPagePath":"","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000},"locales":{},"darkmode":false,"themeConfig":{}};
const __uniRoutes = [{"path":"pages/index/index","meta":{"isQuit":true,"isEntry":true,"navigationBar":{"style":"custom","type":"default"},"isNVue":false}},{"path":"pages/login/login","meta":{"navigationBar":{"style":"custom","type":"default"},"isNVue":false}},{"path":"pages/somethingmove/index","meta":{"navigationBar":{"style":"custom","type":"default"},"isNVue":false}}].map(uniRoute=>(uniRoute.meta.route=uniRoute.path,__uniConfig.pages.push(uniRoute.path),uniRoute.path='/'+uniRoute.path,uniRoute));
__uniConfig.styles=[];//styles
__uniConfig.onReady=function(callback){if(__uniConfig.ready){callback()}else{onReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"ready",{get:function(){return isReady},set:function(val){isReady=val;if(!isReady){return}const callbacks=onReadyCallbacks.slice(0);onReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
diff --git a/unpackage/dist/dev/app-plus/app-service.js b/unpackage/dist/dev/app-plus/app-service.js
index 3ad456b..b35f26f 100644
--- a/unpackage/dist/dev/app-plus/app-service.js
+++ b/unpackage/dist/dev/app-plus/app-service.js
@@ -2215,24 +2215,79 @@ if (uni.restoreGlobal) {
emits: ["darkchange", "savename", "closename"],
setup(__props, { expose: __expose, emit: __emit }) {
const props = __props;
+ vue.watch(
+ () => props.canmove,
+ () => {
+ bottomisShaking.value = false;
+ }
+ );
+ vue.watch(
+ () => props.isshow,
+ () => {
+ bottomisShaking.value = false;
+ }
+ );
vue.onMounted(() => {
downList.value = bigArray[0].data;
});
+ const bottomItems = vue.ref([
+ {
+ name: "纸尿裤",
+ url: "/static/index/niao.png"
+ },
+ {
+ name: "呕吐",
+ url: "/static/index/tu.png"
+ },
+ {
+ name: "吸痰",
+ url: "/static/index/ou.png"
+ },
+ {
+ name: "大便",
+ url: "/static/index/baba.png"
+ }
+ ]);
+ const timeArray = [
+ `00`,
+ `05`,
+ `10`,
+ `15`,
+ `20`,
+ `25`,
+ `30`,
+ `35`,
+ `40`,
+ `45`,
+ `50`,
+ `55`
+ ];
+ const weekDays = ["周一", "周二", "周三", "周四", "周五", "周六", "周日"];
+ const days = Array.from({ length: 31 }, (_, i) => (i + 1).toString().padStart(2, "0"));
+ const isweek = vue.ref(true);
const scrollTop = vue.ref(0);
const downList = vue.ref();
const rightList = vue.ref([
// "三分段",
// "四分段",
]);
+ const isopen = vue.ref(false);
+ const songisopen = vue.ref(false);
+ const isopacity = vue.ref(false);
+ const songisopacity = vue.ref(false);
+ const currentNumber = vue.ref(1);
+ const changecurrentNumber = (event) => {
+ currentNumber.value = event.detail.current;
+ };
const getClass = (item, index0, index1) => {
if (!props.canmove && props.liang.index0 === index0 && props.liang.index1 === index1) {
- return "super-card-time-card-blue";
+ return "title-time-border-blue";
} else if (item.type === "日常") {
- return "super-card-time-card-yellow";
+ return "title-time-border-yellow";
} else if (item.type) {
- return "super-card-time-card-pouple";
+ return "title-time-border-pouple";
}
- return "super-card-time-card";
+ return "title-time-border";
};
const undericonList = vue.ref([
{ url: "/static/index/undericons/alarm.png", targetUrl: "/static/index/undericons/alarmdark.png", name: "服务考核" },
@@ -2272,21 +2327,55 @@ if (uni.restoreGlobal) {
};
const timer = vue.ref(null);
const elementsInfo = vue.ref({});
- const rulerTouchStart = (item, index0, index1) => {
+ const moveX = vue.ref(0);
+ const moveY = vue.ref(0);
+ const openX = vue.ref(0);
+ const openY = vue.ref(0);
+ const flyNumber = vue.ref({
+ index0: 999,
+ index1: 999
+ });
+ const deletebottom = (index) => {
+ bottomItems.value.splice(index, 1);
+ };
+ const rulerTouchStart = (item, index0, index1, e) => {
+ moveX.value = Math.floor(e.touches[0].pageX);
+ moveY.value = Math.floor(e.touches[0].pageY);
timer.value = setTimeout(() => {
if (item.value) {
- uni.showModal({
- title: "警告",
- content: "确认删除该方格吗?",
- success: function(res) {
- if (res.confirm) {
- timearr.value[index0].children[index1].value = "";
- } else if (res.cancel)
- ;
- }
- });
+ flyNumber.value.index0 = index0 + currentNumber.value * 6;
+ flyNumber.value.index1 = index1;
+ const query = uni.createSelectorQuery();
+ query.selectAll(".super-card-time-card").boundingClientRect((data) => {
+ data.forEach(async (res) => {
+ if (res.left > 200 && res.left < 1067 && res.top < 500 && res.top > 170 && res.dataset.index0 == index0 && res.dataset.index1 == index1) {
+ if (res.left > 200 && res.left < 500) {
+ openX.value = Math.floor(res.left) + 520;
+ } else {
+ openX.value = Math.floor(res.left);
+ }
+ openY.value = Math.floor(res.top);
+ await vue.nextTick();
+ isopen.value = true;
+ isopacity.value = false;
+ setTimeout(() => {
+ isopacity.value = true;
+ }, 100);
+ }
+ });
+ }).exec();
}
- }, 1500);
+ }, 200);
+ };
+ const rulerTouchMove = (e) => {
+ const moveXa = Math.floor(e.touches[0].pageX);
+ const moveYa = Math.floor(e.touches[0].pageY);
+ if (Math.abs(moveXa - moveX.value) > 0 || Math.abs(moveYa - moveY.value) > 0) {
+ if (timer.value) {
+ clearTimeout(timer.value);
+ timer.value = null;
+ }
+ }
};
const rulerTouchEnd = () => {
if (timer.value) {
@@ -2294,6 +2383,14 @@ if (uni.restoreGlobal) {
timer.value = null;
}
};
+ const deleteRuler = (index0, index1) => {
+ timearr.value[index0].children[index1].value = "";
+ timearr.value[index0].children[index1].time = "";
+ timearr.value[index0].children[index1].type = "";
+ isopen.value = false;
+ flyNumber.value.index0 = 999;
+ flyNumber.value.index1 = 999;
+ };
const longPressTimer = vue.ref(null);
const isScrolling = vue.ref(false);
let scrollTimeout = null;
@@ -2306,31 +2403,22 @@ if (uni.restoreGlobal) {
}, 400);
}
const isBack = vue.ref(false);
- const handleTouchStart = (item, index) => {
+ const saveX = vue.ref(0);
+ const saveY = vue.ref(0);
+ const handleTouchStart = (item, index, e) => {
+ saveX.value = Math.floor(e.touches[0].pageX);
+ saveY.value = Math.floor(e.touches[0].pageY);
longPressTimer.value = setTimeout(() => {
if (isScrolling.value)
return;
isBack.value = true;
downmenuIndex.value = index;
+ indexsave.value = [-1, -1];
const reldata = [];
const query = uni.createSelectorQuery();
query.selectAll(".super-card-time-card").boundingClientRect((data) => {
data.forEach((res) => {
- if (res.left > 200 && res.left < 1067 && res.top < 500 && res.top > 190) {
- reldata.push(res);
- }
- });
- }).exec();
- query.selectAll(".super-card-time-card-yellow").boundingClientRect((data) => {
- data.forEach((res) => {
- if (res.left > 200 && res.left < 1067 && res.top < 500 && res.top > 190) {
- reldata.push(res);
- }
- });
- }).exec();
- query.selectAll(".super-card-time-card-pouple").boundingClientRect((data) => {
- data.forEach((res) => {
- if (res.left > 200 && res.left < 1067 && res.top < 500 && res.top > 190) {
+ if (res.left > 200 && res.left < 1067 && res.top < 500 && res.top > 170) {
reldata.push(res);
}
});
@@ -2338,28 +2426,150 @@ if (uni.restoreGlobal) {
emit("savename", item, reldata);
}, 200);
};
+ function isblue() {
+ if (!openOp.value && cardsumit.value.startTime || openOp.value === 1 && cardsumit.value.startTime && (cardsumit.value.weekTime || cardsumit.value.monthTime) || openOp.value === 2) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+ const handleTouchMove = (e) => {
+ const moveX2 = Math.floor(e.touches[0].pageX);
+ const moveY2 = Math.floor(e.touches[0].pageY);
+ if (Math.abs(moveX2 - saveX.value) > 0 || Math.abs(moveY2 - saveY.value) > 0) {
+ if (longPressTimer.value) {
+ clearTimeout(longPressTimer.value);
+ longPressTimer.value = null;
+ }
+ }
+ };
const handleTouchEnd = () => {
if (longPressTimer.value) {
clearTimeout(longPressTimer.value);
longPressTimer.value = null;
}
};
+ const bottomTimer = vue.ref(null);
+ const bottomisShaking = vue.ref(false);
+ const bottomTouchStart = () => {
+ bottomTimer.value = setTimeout(() => {
+ bottomisShaking.value = true;
+ }, 500);
+ };
+ const bottomTouchEnd = () => {
+ if (bottomTimer.value) {
+ clearTimeout(bottomTimer.value);
+ bottomTimer.value = null;
+ }
+ };
+ const openValue = vue.ref({
+ time: "",
+ array: []
+ });
+ const cardsumit = vue.ref({
+ op: {
+ name: "",
+ index: [-1, -1, -1]
+ },
+ startTime: "",
+ monthTime: "",
+ weekTime: ""
+ });
+ const openOp = vue.ref(0);
+ const clickOp = (index, name, op) => {
+ cardsumit.value.startTime = "";
+ cardsumit.value.monthTime = "";
+ cardsumit.value.weekTime = "";
+ if (cardsumit.value.op[2] === index) {
+ cardsumit.value.op[2] = -1;
+ cardsumit.value.op.name = "";
+ openOp.value = -1;
+ } else {
+ cardsumit.value.op[2] = index;
+ cardsumit.value.op.name = name;
+ openOp.value = op;
+ }
+ };
+ const clickTime = (index) => {
+ if (cardsumit.value.startTime == index) {
+ cardsumit.value.startTime = "";
+ } else {
+ cardsumit.value.startTime = index;
+ }
+ };
+ const clickweek = (index) => {
+ if (cardsumit.value.weekTime == index) {
+ cardsumit.value.weekTime = "";
+ } else {
+ cardsumit.value.weekTime = index;
+ }
+ };
+ const clickmonth = (index) => {
+ if (cardsumit.value.monthTime == index) {
+ cardsumit.value.monthTime = "";
+ } else {
+ cardsumit.value.monthTime = index;
+ }
+ };
+ const indexsave = vue.ref([-1, -1]);
const rulerEnd = async (res) => {
isBack.value = false;
if (props.liang.index0 !== 999 && res) {
- timearr.value[props.liang.index0].children[props.liang.index1].value = res;
- const shouldAdd = timearr.value.some((obj) => {
- const children = obj.children;
- return children[children.length - 1].value.trim() !== "";
+ cardsumit.value = {
+ op: {
+ name: "",
+ index: [-1, -1, -1]
+ },
+ startTime: "",
+ monthTime: "",
+ weekTime: ""
+ };
+ songisopacity.value = false;
+ songisopen.value = true;
+ setTimeout(() => {
+ songisopacity.value = true;
+ }, 200);
+ cardsumit.value.op[0] = upmenuIndex.value;
+ cardsumit.value.op[1] = downmenuIndex.value;
+ openValue.value.time = timearr.value[props.liang.index0 + currentNumber.value * 6].time;
+ openValue.value.array = bigArray[upmenuIndex.value].data[downmenuIndex.value].data;
+ indexsave.value = [props.liang.index0 + currentNumber.value * 6, props.liang.index1];
+ clickOp(0, openValue.value.array[0].type, openValue.value.array[0].op);
+ }
+ };
+ const movetoruler = async () => {
+ songisopen.value = false;
+ isweek.value = true;
+ if (!openOp.value) {
+ timearr.value[indexsave.value[0]].children[indexsave.value[1]].type = "日常";
+ } else if (openOp.value === 1) {
+ timearr.value[indexsave.value[0]].children[indexsave.value[1]].type = cardsumit.value.weekTime || cardsumit.value.monthTime + "号";
+ } else if (openOp.value === 2) {
+ bottomItems.value.push({
+ name: cardsumit.value.op.name,
+ url: "/static/index/ou.png"
});
- if (shouldAdd) {
- timearr.value.forEach((obj) => {
- obj.children.push({ value: "" });
- });
- scrollTop.value = 999;
- await vue.nextTick();
- scrollTop.value = 9999;
- }
+ return;
+ }
+ timearr.value[indexsave.value[0]].children[indexsave.value[1]].value = cardsumit.value.op.name;
+ const startHour = Number(openValue.value.time);
+ const startMinute = Number(cardsumit.value.startTime);
+ const endMinute = startMinute + 10;
+ const endHour = startHour + Math.floor(endMinute / 60);
+ const formattedStart = `${String(startHour)}:${String(startMinute).padStart(2, "0")}`;
+ const formattedEnd = `${String(endHour)}:${String(endMinute % 60).padStart(2, "0")}`;
+ timearr.value[indexsave.value[0]].children[indexsave.value[1]].time = `${formattedStart}-${formattedEnd}`;
+ const shouldAdd = timearr.value.some((obj) => {
+ const children = obj.children;
+ return children[children.length - 1].value.trim() !== "";
+ });
+ if (shouldAdd) {
+ timearr.value.forEach((obj) => {
+ obj.children.push({ value: "" });
+ });
+ scrollTop.value = 999;
+ await vue.nextTick();
+ scrollTop.value = 9999;
}
};
__expose({
@@ -2373,10 +2583,10 @@ if (uni.restoreGlobal) {
{
time: "00",
children: [
- { value: "A" },
{ value: "" },
{ value: "" },
- { value: "B" },
+ { value: "" },
+ { value: "" },
{ value: "" },
{ value: "" },
{ value: "" },
@@ -2388,11 +2598,11 @@ if (uni.restoreGlobal) {
children: [
{ value: "" },
{ value: "" },
- { value: "C" },
{ value: "" },
{ value: "" },
{ value: "" },
- { value: "D" },
+ { value: "" },
+ { value: "" },
{ value: "" }
]
},
@@ -2404,7 +2614,7 @@ if (uni.restoreGlobal) {
{ value: "" },
{ value: "" },
{ value: "" },
- { value: "E" },
+ { value: "" },
{ value: "" },
{ value: "" }
]
@@ -2428,7 +2638,7 @@ if (uni.restoreGlobal) {
{ value: "" },
{ value: "" },
{ value: "" },
- { value: "F" },
+ { value: "" },
{ value: "" },
{ value: "" },
{ value: "" },
@@ -2444,7 +2654,7 @@ if (uni.restoreGlobal) {
{ value: "" },
{ value: "" },
{ value: "" },
- { value: "G" },
+ { value: "" },
{ value: "" }
]
},
@@ -2468,7 +2678,7 @@ if (uni.restoreGlobal) {
{ value: "" },
{ value: "" },
{ value: "" },
- { value: "H" },
+ { value: "" },
{ value: "" },
{ value: "" },
{ value: "" }
@@ -2511,7 +2721,7 @@ if (uni.restoreGlobal) {
{
time: "10",
children: [
- { value: "ccc" },
+ { value: "" },
{ value: "" },
{ value: "" },
{ value: "" },
@@ -2524,7 +2734,7 @@ if (uni.restoreGlobal) {
{
time: "11",
children: [
- { value: "aaa" },
+ { value: "" },
{ value: "" },
{ value: "" },
{ value: "" },
@@ -2540,7 +2750,7 @@ if (uni.restoreGlobal) {
{ value: "" },
{ value: "" },
{ value: "" },
- { value: "J" },
+ { value: "" },
{ value: "" },
{ value: "" },
{ value: "" },
@@ -2556,7 +2766,7 @@ if (uni.restoreGlobal) {
{ value: "" },
{ value: "" },
{ value: "" },
- { value: "K" },
+ { value: "" },
{ value: "" }
]
},
@@ -2580,7 +2790,7 @@ if (uni.restoreGlobal) {
{ value: "" },
{ value: "" },
{ value: "" },
- { value: "L" },
+ { value: "" },
{ value: "" },
{ value: "" },
{ value: "" }
@@ -2608,7 +2818,7 @@ if (uni.restoreGlobal) {
{ value: "" },
{ value: "" },
{ value: "" },
- { value: "xxx" },
+ { value: "" },
{ value: "" }
]
},
@@ -2680,17 +2890,29 @@ if (uni.restoreGlobal) {
{
time: "23",
children: [
- { value: "1" },
- { value: "" },
- { value: "3" },
{ value: "" },
{ value: "" },
- { value: "e" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
{ value: "" },
{ value: "" }
]
}
]);
+ function splitString(str) {
+ let index = str.indexOf("(");
+ if (index === -1) {
+ index = str.indexOf("(");
+ }
+ if (index !== -1) {
+ const firstPart = str.substring(0, index);
+ const secondPart = str.substring(index);
+ return [firstPart, secondPart];
+ }
+ return [str];
+ }
const bigArray = [
{
"type": "清洁照料",
@@ -2896,6 +3118,15 @@ if (uni.restoreGlobal) {
{ "type": "被褥调整", "data": "老人踢蹬被褥,调成被褥" },
{ "type": "睡姿调整", "data": "" }
]
+ },
+ {
+ "type": "睡眠指令",
+ "color": "#FFC363",
+ "data": [
+ { "type": "被褥调整", "data": "老人踢蹬被褥,调成被褥", "op": 0 },
+ { "type": "被褥调整", "data": "老人踢蹬被褥,调成被褥", "op": 1 },
+ { "type": "被褥调整", "data": "老人踢蹬被褥,调成被褥", "op": 2 }
+ ]
}
]
},
@@ -2966,9 +3197,6 @@ if (uni.restoreGlobal) {
"data": [
{ "type": "床椅转移", "data": "准备轮椅.换好衣物手纸.水杯.食物.进行转移" },
{ "type": "床椅转移(大体重)", "data": "" },
- { "type": "床椅转移", "data": "" },
- { "type": "床椅转移(大体重)", "data": "" },
- { "type": "协助床椅转移", "data": "" },
{ "type": "协助床椅转移", "data": "" }
]
},
@@ -3066,399 +3294,854 @@ if (uni.restoreGlobal) {
]
}
];
- const __returned__ = { props, scrollTop, downList, rightList, getClass, undericonList, doctorsayList, rightListIndex, undermenuIndex, upmenuIndex, downmenuIndex, underFans, roomTar, emit, darkFanschange, changLeft, changeMenuUnder, rightListClick, timer, elementsInfo, rulerTouchStart, rulerTouchEnd, longPressTimer, isScrolling, get scrollTimeout() {
+ const __returned__ = { props, bottomItems, timeArray, weekDays, days, isweek, scrollTop, downList, rightList, isopen, songisopen, isopacity, songisopacity, currentNumber, changecurrentNumber, getClass, undericonList, doctorsayList, rightListIndex, undermenuIndex, upmenuIndex, downmenuIndex, underFans, roomTar, emit, darkFanschange, changLeft, changeMenuUnder, rightListClick, timer, elementsInfo, moveX, moveY, openX, openY, flyNumber, deletebottom, rulerTouchStart, rulerTouchMove, rulerTouchEnd, deleteRuler, longPressTimer, isScrolling, get scrollTimeout() {
return scrollTimeout;
}, set scrollTimeout(v) {
scrollTimeout = v;
- }, handleScroll, isBack, handleTouchStart, handleTouchEnd, rulerEnd, moveNumber, timearr, bigArray };
+ }, handleScroll, isBack, saveX, saveY, handleTouchStart, isblue, handleTouchMove, handleTouchEnd, bottomTimer, bottomisShaking, bottomTouchStart, bottomTouchEnd, openValue, cardsumit, openOp, clickOp, clickTime, clickweek, clickmonth, indexsave, rulerEnd, movetoruler, moveNumber, timearr, splitString, bigArray };
Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
return __returned__;
}
});
+ const _imports_1 = "/static/index/cheng.png";
function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
+ var _a, _b, _c, _d, _e, _f;
return vue.openBlock(), vue.createElementBlock(
- "view",
- {
- class: "right-container",
- style: vue.normalizeStyle($props.isshow ? { opacity: `1` } : { opacity: `0` })
- },
+ vue.Fragment,
+ null,
[
- vue.createElementVNode("view", { class: "right-container-title-nav" }, [
- vue.createElementVNode(
- "text",
- {
- class: vue.normalizeClass($props.darkFans ? `right-container-title-no-dark` : `right-container-title-no`)
- },
- " ID:12345678 ",
- 2
- /* CLASS */
- ),
- vue.createElementVNode(
- "text",
- {
- class: vue.normalizeClass($props.darkFans ? `right-container-title-no-dark` : `right-container-title-no`)
- },
- " 名称:未命名01 ",
- 2
- /* CLASS */
- ),
- vue.createElementVNode("view", { class: "right-icons" }, [
- vue.createElementVNode("image", {
- class: "right-icons-img",
- src: `/static/index/undericons/man.png`
- }, null, 8, ["src"]),
- vue.createElementVNode(
- "view",
- {
- class: vue.normalizeClass($props.darkFans ? `right-icons-font-dark` : `right-icons-font`)
- },
- "王金福",
- 2
- /* CLASS */
- ),
- vue.createElementVNode("image", {
- class: "right-icons-img-icon",
- src: $props.darkFans ? `/static/index/undericons/face.png` : `/static/index/undericons/facelight.png`
- }, null, 8, ["src"]),
- vue.createElementVNode("image", {
- class: "right-icons-img-icon",
- src: $props.darkFans ? `/static/index/undericons/hand.png` : `/static/index/undericons/handlight.png`
- }, null, 8, ["src"]),
- vue.createElementVNode("image", {
- class: "right-icons-img-icon",
- src: $props.darkFans ? `/static/index/undericons/out.png` : `/static/index/undericons/outlight.png`
- }, null, 8, ["src"])
- ]),
- vue.withDirectives(vue.createElementVNode(
- "view",
- {
- class: "right-container-title-class-anhei-button",
- onClick: _cache[0] || (_cache[0] = ($event) => $setup.darkFanschange())
- },
- [
- vue.createElementVNode("text", { class: "right-container-title-class-anhei" }, " 切换到暗黑模式 ")
- ],
- 512
- /* NEED_PATCH */
- ), [
- [vue.vShow, !$props.darkFans]
- ]),
- vue.withDirectives(vue.createElementVNode(
- "view",
- {
- class: "right-container-title-class-anhei-button",
- style: vue.normalizeStyle($props.darkFans ? { backgroundColor: "#fff" } : {}),
- onClick: _cache[1] || (_cache[1] = ($event) => $setup.darkFanschange())
- },
- [
+ vue.createCommentVNode(" click是让抖动停止 "),
+ vue.createElementVNode(
+ "view",
+ {
+ class: "right-container",
+ style: vue.normalizeStyle($props.isshow ? { opacity: `1` } : { opacity: `0` }),
+ onClick: _cache[13] || (_cache[13] = ($event) => $setup.bottomisShaking = false)
+ },
+ [
+ vue.createElementVNode("view", { class: "right-container-title-nav" }, [
vue.createElementVNode(
"text",
{
- class: "right-container-title-class-anhei",
- style: vue.normalizeStyle($props.darkFans ? { color: "black" } : {})
+ class: vue.normalizeClass($props.darkFans ? `right-container-title-no-dark` : `right-container-title-no`)
},
- " 取消暗黑模式 ",
+ " ID:12345678 ",
+ 2
+ /* CLASS */
+ ),
+ vue.createElementVNode(
+ "text",
+ {
+ class: vue.normalizeClass($props.darkFans ? `right-container-title-no-dark` : `right-container-title-no`)
+ },
+ " 名称:未命名01 ",
+ 2
+ /* CLASS */
+ ),
+ vue.createElementVNode("view", { class: "right-icons" }, [
+ vue.createElementVNode("image", {
+ class: "right-icons-img",
+ src: `/static/index/undericons/man.png`
+ }, null, 8, ["src"]),
+ vue.createElementVNode(
+ "view",
+ {
+ class: vue.normalizeClass($props.darkFans ? `right-icons-font-dark` : `right-icons-font`)
+ },
+ "王金福",
+ 2
+ /* CLASS */
+ ),
+ vue.createElementVNode("image", {
+ class: "right-icons-img-icon",
+ src: $props.darkFans ? `/static/index/undericons/face.png` : `/static/index/undericons/facelight.png`
+ }, null, 8, ["src"]),
+ vue.createElementVNode("image", {
+ class: "right-icons-img-icon",
+ src: $props.darkFans ? `/static/index/undericons/hand.png` : `/static/index/undericons/handlight.png`
+ }, null, 8, ["src"]),
+ vue.createElementVNode("image", {
+ class: "right-icons-img-icon",
+ src: $props.darkFans ? `/static/index/undericons/out.png` : `/static/index/undericons/outlight.png`
+ }, null, 8, ["src"])
+ ]),
+ vue.withDirectives(vue.createElementVNode(
+ "view",
+ {
+ class: "right-container-title-class-anhei-button",
+ onClick: _cache[0] || (_cache[0] = ($event) => $setup.darkFanschange())
+ },
+ [
+ vue.createElementVNode("text", { class: "right-container-title-class-anhei" }, " 切换到暗黑模式 ")
+ ],
+ 512
+ /* NEED_PATCH */
+ ), [
+ [vue.vShow, !$props.darkFans]
+ ]),
+ vue.withDirectives(vue.createElementVNode(
+ "view",
+ {
+ class: "right-container-title-class-anhei-button",
+ style: vue.normalizeStyle($props.darkFans ? { backgroundColor: "#fff" } : {}),
+ onClick: _cache[1] || (_cache[1] = ($event) => $setup.darkFanschange())
+ },
+ [
+ vue.createElementVNode(
+ "text",
+ {
+ class: "right-container-title-class-anhei",
+ style: vue.normalizeStyle($props.darkFans ? { color: "black" } : {})
+ },
+ " 取消暗黑模式 ",
+ 4
+ /* STYLE */
+ )
+ ],
4
/* STYLE */
- )
- ],
- 4
- /* STYLE */
- ), [
- [vue.vShow, $props.darkFans]
- ])
- ]),
- vue.createElementVNode("view", { class: "doctorsay-container-view" }, [
- vue.createElementVNode("view", { class: "doctorsay-container-items" }, [
- vue.createElementVNode("view", { class: "doctorsay-container-up" }, [
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList($setup.doctorsayList, (item, index) => {
- return vue.openBlock(), vue.createElementBlock("view", {
- key: index,
- onClick: ($event) => $setup.changLeft(index)
- }, [
- vue.createElementVNode(
- "view",
- {
- class: "doctorsay-container-card",
- style: vue.normalizeStyle(index === $setup.upmenuIndex ? { backgroundColor: `#0184db` } : {})
- },
- [
- vue.createElementVNode("image", {
- class: "doctorsay-container-card-img",
- src: index === $setup.upmenuIndex ? item.targetUrl : item.url
- }, null, 8, ["src"]),
+ ), [
+ [vue.vShow, $props.darkFans]
+ ])
+ ]),
+ vue.createElementVNode("view", { class: "doctorsay-container-view" }, [
+ vue.createElementVNode("view", { class: "doctorsay-container-items" }, [
+ vue.createElementVNode("view", { class: "doctorsay-container-up" }, [
+ (vue.openBlock(true), vue.createElementBlock(
+ vue.Fragment,
+ null,
+ vue.renderList($setup.doctorsayList, (item, index) => {
+ return vue.openBlock(), vue.createElementBlock("view", {
+ key: index,
+ onClick: ($event) => $setup.changLeft(index)
+ }, [
vue.createElementVNode(
"view",
{
- class: vue.normalizeClass(index === $setup.upmenuIndex ? `doctorsay-container-card-font-dark` : `doctorsay-container-card-font`)
+ class: "doctorsay-container-card",
+ style: vue.normalizeStyle(index === $setup.upmenuIndex ? { backgroundColor: `#0184db` } : {})
},
- vue.toDisplayString(item.name),
- 3
- /* TEXT, CLASS */
+ [
+ vue.createElementVNode("image", {
+ class: "doctorsay-container-card-img",
+ src: index === $setup.upmenuIndex ? item.targetUrl : item.url
+ }, null, 8, ["src"]),
+ vue.createElementVNode(
+ "view",
+ {
+ class: vue.normalizeClass(index === $setup.upmenuIndex ? `doctorsay-container-card-font-dark` : `doctorsay-container-card-font`)
+ },
+ vue.toDisplayString(item.name),
+ 3
+ /* TEXT, CLASS */
+ )
+ ],
+ 4
+ /* STYLE */
)
- ],
- 4
- /* STYLE */
- )
- ], 8, ["onClick"]);
- }),
- 128
- /* KEYED_FRAGMENT */
- ))
- ]),
- vue.createElementVNode("view", { class: "doctorsay-container-down" }, [
- vue.createElementVNode("view", { class: "doctorsay-top" }),
- vue.createElementVNode("scroll-view", {
- "scroll-y": $props.canmove,
- class: "doctorsay-container-scroll",
- onScroll: $setup.handleScroll
- }, [
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList($setup.downList, (item, index) => {
- return vue.openBlock(), vue.createElementBlock("view", { key: index }, [
- vue.createElementVNode("view", {
- class: "doctorsay-container-button",
- onTouchstart: ($event) => $setup.handleTouchStart(item.type, index),
- onTouchend: $setup.handleTouchEnd
- }, [
- vue.createElementVNode(
- "text",
- {
- class: vue.normalizeClass($setup.downmenuIndex === index ? `doctorsay-container-text-target` : `doctorsay-container-text`),
- style: vue.normalizeStyle($setup.isBack ? {} : { width: `220rpx`, height: `75rpx`, fontSize: `30rpx` })
- },
- vue.toDisplayString(item.type),
- 7
- /* TEXT, CLASS, STYLE */
- ),
- vue.withDirectives(vue.createElementVNode("image", {
- class: "doctorsay-container-button-uplight",
- style: vue.normalizeStyle($setup.isBack ? {} : { top: "30rpx" }),
- src: `/static/index/cardicons/uplight.png`
- }, null, 12, ["src"]), [
- [vue.vShow, $setup.downmenuIndex === index]
- ])
- ], 40, ["onTouchstart"])
- ]);
- }),
- 128
- /* KEYED_FRAGMENT */
- ))
- ], 40, ["scroll-y"]),
- vue.createElementVNode("view", { class: "doctorsay-top" })
- ])
- ]),
- vue.createElementVNode("view", { class: "doctorsay-container-container" }, [
- vue.createElementVNode("view", { class: "doctorsay-container-title" }, [
- vue.createElementVNode("view", { class: "doctorsay-container-left" }, [
- vue.createElementVNode("view", { class: "doctorsay-container-left-gun" }),
- vue.createElementVNode("view", { class: "doctorsay-container-left-font" }, "时间矩阵")
- ]),
- vue.createElementVNode("view", { class: "doctorsay-container-right" }, [
- vue.createElementVNode("view", { class: "doctorsay-container-right-kuai-cheng" }),
- vue.createElementVNode("view", { class: "doctorsay-container-kuai-font" }, "日常"),
- vue.createElementVNode("view", { class: "doctorsay-container-right-kuai-zi" }),
- vue.createElementVNode("view", { class: "doctorsay-container-kuai-font" }, "周期"),
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList($setup.rightList, (item, index) => {
- return vue.openBlock(), vue.createElementBlock("view", {
- class: "doctorsay-container-button-father",
- key: index
- }, [
- vue.createElementVNode("view", {
- class: vue.normalizeClass($setup.rightListIndex === index ? `doctorsay-container-button-target` : `doctorsay-container-button`),
- onClick: ($event) => $setup.rightListClick(index)
- }, vue.toDisplayString(item), 11, ["onClick"])
- ]);
- }),
- 128
- /* KEYED_FRAGMENT */
- ))
- ])
- ]),
- vue.createElementVNode("view", { class: "super-card" }, [
- vue.createElementVNode("view", { class: "super-card-container" }, [
- vue.createElementVNode("scroll-view", {
- class: "scroll-x",
- "scroll-left": $setup.rightListIndex ? 1240 : 930,
- "scroll-x": "",
- "show-scrollbar": false
- }, [
- vue.createElementVNode("view", { style: { "display": "flex" } }, [
+ ], 8, ["onClick"]);
+ }),
+ 128
+ /* KEYED_FRAGMENT */
+ ))
+ ]),
+ vue.createElementVNode("view", { class: "doctorsay-container-down" }, [
+ vue.createElementVNode("view", { class: "doctorsay-top" }, [
+ vue.createElementVNode("view", { class: "doctorsay-top-gun" }),
+ vue.createElementVNode("view", { class: "doctorsay-top-font" }, "服务类型")
+ ]),
+ vue.createElementVNode("scroll-view", {
+ "scroll-y": $props.canmove,
+ class: "doctorsay-container-scroll",
+ onScroll: $setup.handleScroll
+ }, [
(vue.openBlock(true), vue.createElementBlock(
vue.Fragment,
null,
- vue.renderList($setup.timearr, (item0, index) => {
+ vue.renderList($setup.downList, (item, index) => {
return vue.openBlock(), vue.createElementBlock("view", { key: index }, [
- vue.createElementVNode(
- "view",
- {
- class: "super-card-time",
- style: vue.normalizeStyle($setup.rightListIndex ? { width: "275rpx" } : { width: "206rpx" })
- },
- vue.toDisplayString(item0.time),
- 5
- /* TEXT, STYLE */
- )
+ vue.createElementVNode("view", {
+ class: "doctorsay-container-button",
+ onTouchstart: ($event) => $setup.handleTouchStart(item.type, index, $event),
+ onTouchmove: $setup.handleTouchMove,
+ onTouchend: $setup.handleTouchEnd
+ }, [
+ vue.createElementVNode(
+ "text",
+ {
+ class: vue.normalizeClass($setup.downmenuIndex === index ? `doctorsay-container-text-target` : `doctorsay-container-text`),
+ style: vue.normalizeStyle({
+ backgroundColor: item.color ? item.color : "",
+ ...$setup.isBack ? {} : { width: "250rpx", height: "75rpx", fontSize: "30rpx", borderRadius: "10rpx" }
+ })
+ },
+ vue.toDisplayString(item.type),
+ 7
+ /* TEXT, CLASS, STYLE */
+ ),
+ vue.withDirectives(vue.createElementVNode("image", {
+ class: "doctorsay-container-button-uplight",
+ style: vue.normalizeStyle($setup.isBack ? {} : { top: "30rpx" }),
+ src: `/static/index/cardicons/uplight.png`
+ }, null, 12, ["src"]), [
+ [vue.vShow, $setup.downmenuIndex === index]
+ ])
+ ], 40, ["onTouchstart"])
]);
}),
128
/* KEYED_FRAGMENT */
))
+ ], 40, ["scroll-y"]),
+ vue.createCommentVNode(' ')
+ ])
+ ]),
+ vue.createElementVNode("view", { class: "doctorsay-container-container" }, [
+ vue.createElementVNode("view", { class: "doctorsay-container-title" }, [
+ vue.createElementVNode("view", { class: "doctorsay-container-left" }, [
+ vue.createElementVNode("view", { class: "doctorsay-container-left-gun" }),
+ vue.createElementVNode("view", { class: "doctorsay-container-left-font" }, "时间矩阵")
]),
- vue.createElementVNode("view", { style: { "display": "flex", "height": "calc(100% - 80rpx)" } }, [
- vue.createElementVNode("scroll-view", {
- style: vue.normalizeStyle([{ "height": "100%" }, $setup.rightListIndex ? { width: "6700rpx" } : { width: "5000rpx" }]),
- "scroll-top": $setup.scrollTop,
- "scroll-y": "",
- "show-scrollbar": false
+ vue.createElementVNode("view", { class: "doctorsay-container-right" }, [
+ vue.createElementVNode("view", { class: "doctorsay-container-right-kuai-cheng" }),
+ vue.createElementVNode("view", { class: "doctorsay-container-kuai-font" }, "日常"),
+ vue.createElementVNode("view", { class: "doctorsay-container-right-kuai-zi" }),
+ vue.createElementVNode("view", { class: "doctorsay-container-kuai-font" }, "周期"),
+ (vue.openBlock(true), vue.createElementBlock(
+ vue.Fragment,
+ null,
+ vue.renderList($setup.rightList, (item, index) => {
+ return vue.openBlock(), vue.createElementBlock("view", {
+ class: "doctorsay-container-button-father",
+ key: index
+ }, [
+ vue.createElementVNode("view", {
+ class: vue.normalizeClass($setup.rightListIndex === index ? `doctorsay-container-button-target` : `doctorsay-container-button`),
+ onClick: ($event) => $setup.rightListClick(index)
+ }, vue.toDisplayString(item), 11, ["onClick"])
+ ]);
+ }),
+ 128
+ /* KEYED_FRAGMENT */
+ ))
+ ])
+ ]),
+ vue.createElementVNode("view", { class: "super-card" }, [
+ vue.createElementVNode("view", { class: "super-card-container" }, [
+ vue.createElementVNode("swiper", {
+ current: $setup.currentNumber,
+ class: "scroll-x",
+ circular: "",
+ "indicator-dots": false,
+ onChange: $setup.changecurrentNumber,
+ interval: 4e3,
+ duration: 500
}, [
- vue.createElementVNode("view", { style: { "display": "flex", "height": "100%" } }, [
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList($setup.timearr, (item0, index0) => {
- return vue.openBlock(), vue.createElementBlock("view", { key: index0 }, [
- vue.createElementVNode(
- "view",
- {
- class: "super-card-time-und",
- style: vue.normalizeStyle($setup.rightListIndex ? { width: "275rpx" } : { width: "206rpx" })
- },
- [
+ (vue.openBlock(), vue.createElementBlock(
+ vue.Fragment,
+ null,
+ vue.renderList([1, 2, 3, 4], (item, index) => {
+ return vue.createElementVNode("swiper-item", { key: index }, [
+ vue.createElementVNode("view", { style: { "display": "flex" } }, [
+ (vue.openBlock(true), vue.createElementBlock(
+ vue.Fragment,
+ null,
+ vue.renderList($setup.timearr.slice(index * 6, (index + 1) * 6), (item0, index0) => {
+ return vue.openBlock(), vue.createElementBlock("view", { key: index0 }, [
+ vue.createElementVNode(
+ "view",
+ {
+ class: "super-card-time",
+ style: vue.normalizeStyle($setup.rightListIndex ? { width: "275rpx" } : { width: "206rpx" })
+ },
+ vue.toDisplayString(item0.time),
+ 5
+ /* TEXT, STYLE */
+ )
+ ]);
+ }),
+ 128
+ /* KEYED_FRAGMENT */
+ ))
+ ]),
+ vue.createElementVNode("view", { style: { "display": "flex", "height": "calc(100% - 80rpx)" } }, [
+ vue.createElementVNode("scroll-view", {
+ style: vue.normalizeStyle([{ "height": "100%" }, $setup.rightListIndex ? { width: "6700rpx" } : { width: "5000rpx" }]),
+ "scroll-top": $setup.scrollTop,
+ "scroll-y": "",
+ "show-scrollbar": false
+ }, [
+ vue.createElementVNode("view", { style: { "display": "flex", "height": "100%" } }, [
(vue.openBlock(true), vue.createElementBlock(
vue.Fragment,
null,
- vue.renderList(item0.children, (item1, index1) => {
- return vue.openBlock(), vue.createElementBlock("view", {
- style: { "width": "100%" },
- key: index1
- }, [
- vue.createElementVNode("view", {
- class: vue.normalizeClass($setup.getClass(item1, index0, index1)),
- onTouchstart: ($event) => $setup.rulerTouchStart(item1, index0, index1),
- onTouchend: _cache[2] || (_cache[2] = ($event) => $setup.rulerTouchEnd()),
- "data-index0": index0,
- "data-index1": index1
- }, [
- vue.withDirectives(vue.createElementVNode(
- "view",
- { class: "title-time" },
- [
- vue.createElementVNode(
- "view",
- { class: "title-time-time" },
- vue.toDisplayString(item1.time),
- 1
- /* TEXT */
- ),
- vue.createElementVNode(
- "view",
- {
- class: "title-time-button",
- style: vue.normalizeStyle(item1.type === "日常" ? { color: `#4A2E00` } : { backgroundColor: `#7B61FF`, color: `#fff` })
- },
- vue.toDisplayString(item1.type),
- 5
- /* TEXT, STYLE */
- )
- ],
- 512
- /* NEED_PATCH */
- ), [
- [vue.vShow, item1.time]
- ]),
- vue.createTextVNode(
- " " + vue.toDisplayString(item1.value),
- 1
- /* TEXT */
- )
- ], 42, ["onTouchstart", "data-index0", "data-index1"])
+ vue.renderList($setup.timearr.slice(index * 6, (index + 1) * 6), (item0, index0) => {
+ return vue.openBlock(), vue.createElementBlock("view", { key: index0 }, [
+ vue.createElementVNode(
+ "view",
+ {
+ class: "super-card-time-und",
+ style: vue.normalizeStyle($setup.rightListIndex ? { width: "275rpx" } : { width: "206rpx" })
+ },
+ [
+ (vue.openBlock(true), vue.createElementBlock(
+ vue.Fragment,
+ null,
+ vue.renderList(item0.children, (item1, index1) => {
+ return vue.openBlock(), vue.createElementBlock("view", {
+ style: { "width": "100%" },
+ key: index1
+ }, [
+ vue.createElementVNode("view", {
+ class: "super-card-time-card",
+ id: `a${index0}_${index1}`,
+ style: { "position": "relative" },
+ onTouchstart: ($event) => $setup.rulerTouchStart(item1, index0, index1, $event),
+ onTouchmove: $setup.rulerTouchMove,
+ onTouchend: _cache[2] || (_cache[2] = ($event) => $setup.rulerTouchEnd()),
+ "data-index0": index0,
+ "data-index1": index1
+ }, [
+ vue.createElementVNode(
+ "view",
+ {
+ class: vue.normalizeClass($setup.getClass(item1, index0, index1)),
+ style: { "font-size": "30rpx" }
+ },
+ [
+ vue.withDirectives(vue.createElementVNode(
+ "view",
+ {
+ class: "title-time",
+ style: { "margin-top": "5rpx" }
+ },
+ [
+ vue.createElementVNode(
+ "view",
+ {
+ class: "title-time-time",
+ style: { "font-size": "30rpx" }
+ },
+ vue.toDisplayString(item1.time),
+ 1
+ /* TEXT */
+ ),
+ vue.createElementVNode(
+ "view",
+ {
+ class: "title-time-button",
+ style: vue.normalizeStyle(item1.type == "日常" ? { color: `#4A2E00` } : { backgroundColor: `#7B61FF`, color: `#fff` })
+ },
+ vue.toDisplayString(item1.type),
+ 5
+ /* TEXT, STYLE */
+ )
+ ],
+ 512
+ /* NEED_PATCH */
+ ), [
+ [vue.vShow, item1.time]
+ ]),
+ vue.withDirectives(vue.createElementVNode(
+ "view",
+ { style: { "margin-top": "-15rpx" } },
+ vue.toDisplayString($setup.splitString(item1.value)[0]),
+ 513
+ /* TEXT, NEED_PATCH */
+ ), [
+ [vue.vShow, !$setup.splitString(item1.value)[1]]
+ ]),
+ vue.withDirectives(vue.createElementVNode(
+ "view",
+ { style: { "margin-top": "-15rpx" } },
+ vue.toDisplayString($setup.splitString(item1.value)[0]),
+ 513
+ /* TEXT, NEED_PATCH */
+ ), [
+ [vue.vShow, $setup.splitString(item1.value)[1]]
+ ]),
+ vue.withDirectives(vue.createElementVNode(
+ "view",
+ { style: { "margin-top": "-15rpx" } },
+ vue.toDisplayString($setup.splitString(item1.value)[1]),
+ 513
+ /* TEXT, NEED_PATCH */
+ ), [
+ [vue.vShow, $setup.splitString(item1.value)[1]]
+ ])
+ ],
+ 2
+ /* CLASS */
+ )
+ ], 40, ["id", "onTouchstart", "data-index0", "data-index1"])
+ ]);
+ }),
+ 128
+ /* KEYED_FRAGMENT */
+ ))
+ ],
+ 4
+ /* STYLE */
+ )
]);
}),
128
/* KEYED_FRAGMENT */
))
- ],
- 4
- /* STYLE */
+ ])
+ ], 12, ["scroll-top"])
+ ])
+ ]);
+ }),
+ 64
+ /* STABLE_FRAGMENT */
+ ))
+ ], 40, ["current"])
+ ])
+ ]),
+ vue.createElementVNode("view", { class: "super-card-end" }, [
+ vue.createElementVNode("view", { class: "super-end-father" }, [
+ vue.createElementVNode("view", { class: "super-end-font-father" }, [
+ vue.createElementVNode("view", { class: "super-end-font-gun" }),
+ vue.createElementVNode("view", { class: "super-end-font-font" }, "快捷指令")
+ ]),
+ vue.createElementVNode("view", { class: "super-end-items" }, [
+ (vue.openBlock(true), vue.createElementBlock(
+ vue.Fragment,
+ null,
+ vue.renderList($setup.bottomItems, (item, index) => {
+ return vue.openBlock(), vue.createElementBlock("view", { key: index }, [
+ vue.createElementVNode(
+ "view",
+ {
+ onTouchstart: $setup.bottomTouchStart,
+ onTouchend: $setup.bottomTouchEnd,
+ class: "super-end-items-father"
+ },
+ [
+ vue.withDirectives(vue.createElementVNode("view", {
+ class: "super-end-items-father-close-father",
+ onClick: vue.withModifiers(($event) => $setup.deletebottom(index), ["stop"])
+ }, " × ", 8, ["onClick"]), [
+ [vue.vShow, $setup.bottomisShaking]
+ ]),
+ vue.createElementVNode(
+ "view",
+ {
+ class: vue.normalizeClass($setup.bottomisShaking ? `super-end-items-img-father-active` : `super-end-items-img-father`)
+ },
+ [
+ vue.createElementVNode("image", {
+ class: "super-end-items-img",
+ src: item.url
+ }, null, 8, ["src"])
+ ],
+ 2
+ /* CLASS */
+ ),
+ vue.createElementVNode(
+ "view",
+ { class: "super-end-items-font" },
+ vue.toDisplayString(item.name),
+ 1
+ /* TEXT */
+ )
+ ],
+ 32
+ /* NEED_HYDRATION */
+ )
+ ]);
+ }),
+ 128
+ /* KEYED_FRAGMENT */
+ ))
+ ])
+ ])
+ ])
+ ])
+ ]),
+ vue.createElementVNode("view", { class: "right-container-sec" }, [
+ vue.createElementVNode("view", { class: "under-father" }, [
+ (vue.openBlock(true), vue.createElementBlock(
+ vue.Fragment,
+ null,
+ vue.renderList($setup.undericonList, (item, index) => {
+ return vue.openBlock(), vue.createElementBlock("view", {
+ class: "under-father-view",
+ key: index,
+ onClick: ($event) => $setup.changeMenuUnder(index)
+ }, [
+ vue.withDirectives(vue.createElementVNode(
+ "image",
+ {
+ class: "under-father-light",
+ src: _imports_0$1
+ },
+ null,
+ 512
+ /* NEED_PATCH */
+ ), [
+ [vue.vShow, index === $setup.undermenuIndex]
+ ]),
+ vue.createElementVNode("image", {
+ class: "under-father-img",
+ src: index === $setup.undermenuIndex ? item.targetUrl : item.url
+ }, null, 8, ["src"]),
+ vue.createElementVNode(
+ "view",
+ {
+ class: vue.normalizeClass($props.darkFans ? `under-father-img-font-dark` : `under-father-img-font`)
+ },
+ vue.toDisplayString(item.name),
+ 3
+ /* TEXT, CLASS */
+ )
+ ], 8, ["onClick"]);
+ }),
+ 128
+ /* KEYED_FRAGMENT */
+ ))
+ ])
+ ]),
+ vue.createCommentVNode(" 长按的弹出层 "),
+ vue.withDirectives(vue.createElementVNode(
+ "view",
+ {
+ class: "popup-overlay",
+ onClick: _cache[5] || (_cache[5] = ($event) => {
+ $setup.isopen = false;
+ $setup.flyNumber.index0 = 999;
+ })
+ },
+ [
+ vue.createElementVNode(
+ "view",
+ {
+ class: "popup-overlay-content",
+ style: vue.normalizeStyle({ top: 2 * $setup.openY - 350 + "rpx", left: 2 * $setup.openX - 780 + "rpx", opacity: $setup.isopacity ? 1 : 0, backgroundColor: ((_b = (_a = $setup.timearr[$setup.flyNumber.index0]) == null ? void 0 : _a.children[$setup.flyNumber.index1]) == null ? void 0 : _b.type) === "日常" ? "#fffcf6" : "rgb(246, 244, 254)" }),
+ onClick: _cache[4] || (_cache[4] = vue.withModifiers(() => {
+ }, ["stop"]))
+ },
+ [
+ vue.createElementVNode("view", { class: "popup-overlay-content-left" }, [
+ vue.createElementVNode("image", {
+ class: "popup-overlay-content-left-img",
+ src: `/static/index/teeth.png`
+ }, null, 8, ["src"]),
+ vue.createElementVNode(
+ "text",
+ { class: "popup-overlay-content-left-font" },
+ vue.toDisplayString((_d = (_c = $setup.timearr[$setup.flyNumber.index0]) == null ? void 0 : _c.children[$setup.flyNumber.index1]) == null ? void 0 : _d.value),
+ 1
+ /* TEXT */
+ )
+ ]),
+ vue.createElementVNode("view", { class: "popup-overlay-content-right" }, [
+ vue.createCommentVNode(` 日常\r
+ \r
+ {{timearr[flyNumber.index0]?.children[flyNumber.index1]?.type}}\r
+ `),
+ vue.createElementVNode("image", {
+ class: "right-crush",
+ src: ((_f = (_e = $setup.timearr[$setup.flyNumber.index0]) == null ? void 0 : _e.children[$setup.flyNumber.index1]) == null ? void 0 : _f.type) === "日常" ? `/static/index/crushyellow.png` : `/static/index/crushpouple.png`,
+ onClick: _cache[3] || (_cache[3] = ($event) => $setup.deleteRuler($setup.flyNumber.index0, $setup.flyNumber.index1))
+ }, null, 8, ["src"]),
+ vue.createElementVNode("view", { class: "time-font" }, " 10:00 - 10:10 "),
+ vue.createElementVNode("view", { class: "time-text" }, " 为老人提供口腔清洁器具,牙膏、牙刷及水杯,看护完成 ")
+ ])
+ ],
+ 4
+ /* STYLE */
+ )
+ ],
+ 512
+ /* NEED_PATCH */
+ ), [
+ [vue.vShow, $setup.isopen]
+ ]),
+ vue.createCommentVNode(" 拉动松手的弹出层 "),
+ $setup.songisopen ? (vue.openBlock(), vue.createElementBlock("view", {
+ key: 0,
+ class: "popup-song",
+ onClick: _cache[12] || (_cache[12] = ($event) => $setup.songisopen = false)
+ }, [
+ vue.createElementVNode(
+ "view",
+ {
+ class: "popup-song-contain",
+ style: vue.normalizeStyle({ opacity: $setup.songisopacity ? 1 : 0 }),
+ onClick: _cache[11] || (_cache[11] = vue.withModifiers(() => {
+ }, ["stop"]))
+ },
+ [
+ vue.createElementVNode("view", { class: "popup-song-father" }, [
+ vue.createElementVNode("image", {
+ class: "shu-up-img",
+ src: _imports_1
+ }),
+ vue.createElementVNode("view", { class: "shu-up-font" }, [
+ vue.createElementVNode(
+ "view",
+ { class: "" },
+ " 服务时段:" + vue.toDisplayString($setup.openValue.time + ":00"),
+ 1
+ /* TEXT */
+ ),
+ vue.createElementVNode("view", { style: { "margin-left": "30rpx" } }, " 护理时长:10分钟 ")
+ ]),
+ vue.createElementVNode("view", { class: "shu-container-left" }, [
+ vue.createElementVNode("view", { class: "shu-container-left-gun" }),
+ vue.createElementVNode("view", { class: "shu-container-left-font" }, "服务指令")
+ ]),
+ vue.createElementVNode("view", { class: "arrayindex" }, [
+ (vue.openBlock(true), vue.createElementBlock(
+ vue.Fragment,
+ null,
+ vue.renderList($setup.openValue.array, (item, index) => {
+ return vue.openBlock(), vue.createElementBlock("view", { key: index }, [
+ vue.createElementVNode("view", {
+ style: { "position": "relative" },
+ class: vue.normalizeClass($setup.cardsumit.op[2] === index ? `arrayindex-one-target` : `arrayindex-one`),
+ onClick: ($event) => $setup.clickOp(index, item.type, item.op)
+ }, [
+ vue.withDirectives(vue.createElementVNode("image", {
+ class: "ri-img",
+ src: $setup.cardsumit.op[2] !== index ? `/static/index/ridark.png` : `/static/index/ri.png`
+ }, null, 8, ["src"]), [
+ [vue.vShow, !item.op]
+ ]),
+ vue.withDirectives(vue.createElementVNode("image", {
+ class: "ri-img",
+ src: $setup.cardsumit.op[2] == index ? `/static/index/zhoudark.png` : `/static/index/zhou.png`
+ }, null, 8, ["src"]), [
+ [vue.vShow, item.op === 1]
+ ]),
+ vue.withDirectives(vue.createElementVNode("image", {
+ class: "ri-img",
+ src: $setup.cardsumit.op[2] == index ? `/static/index/jidark.png` : `/static/index/ji.png`
+ }, null, 8, ["src"]), [
+ [vue.vShow, item.op === 2]
+ ]),
+ vue.createTextVNode(
+ " " + vue.toDisplayString(item.type),
+ 1
+ /* TEXT */
)
+ ], 10, ["onClick"])
+ ]);
+ }),
+ 128
+ /* KEYED_FRAGMENT */
+ ))
+ ]),
+ vue.withDirectives(vue.createElementVNode(
+ "view",
+ {
+ class: "shu-container-left",
+ style: { "margin-top": "50rpx" }
+ },
+ [
+ vue.createElementVNode("view", { class: "shu-container-left-gun" }),
+ vue.createElementVNode("view", { class: "shu-container-left-font" }, "开始分钟")
+ ],
+ 512
+ /* NEED_PATCH */
+ ), [
+ [vue.vShow, $setup.openOp != 2]
+ ]),
+ vue.withDirectives(vue.createElementVNode(
+ "view",
+ { class: "time-father" },
+ [
+ (vue.openBlock(), vue.createElementBlock(
+ vue.Fragment,
+ null,
+ vue.renderList($setup.timeArray, (item, index) => {
+ return vue.createElementVNode("view", { key: index }, [
+ vue.withDirectives(vue.createElementVNode(
+ "view",
+ { class: "time-one-hui" },
+ vue.toDisplayString(item),
+ 513
+ /* TEXT, NEED_PATCH */
+ ), [
+ [vue.vShow, Number(item) >= 50]
+ ]),
+ vue.withDirectives(vue.createElementVNode("view", {
+ class: vue.normalizeClass($setup.cardsumit.startTime === item ? `time-one-target` : `time-one`),
+ onClick: ($event) => $setup.clickTime(item)
+ }, vue.toDisplayString(item), 11, ["onClick"]), [
+ [vue.vShow, Number(item) < 50]
+ ])
+ ]);
+ }),
+ 64
+ /* STABLE_FRAGMENT */
+ ))
+ ],
+ 512
+ /* NEED_PATCH */
+ ), [
+ [vue.vShow, $setup.openOp != 2]
+ ]),
+ vue.withDirectives(vue.createElementVNode(
+ "view",
+ {
+ class: "shu-container-left",
+ style: { "margin-top": "50rpx" }
+ },
+ [
+ vue.createElementVNode("view", { class: "shu-container-left-gun" }),
+ vue.createElementVNode("view", { class: "shu-container-left-font" }, "周期类型")
+ ],
+ 512
+ /* NEED_PATCH */
+ ), [
+ [vue.vShow, $setup.openOp == 1]
+ ]),
+ vue.withDirectives(vue.createElementVNode(
+ "view",
+ { class: "radio-father" },
+ [
+ vue.createElementVNode(
+ "view",
+ {
+ class: vue.normalizeClass($setup.isweek ? `radio-circle-target` : `radio-circle`),
+ onClick: _cache[6] || (_cache[6] = ($event) => {
+ $setup.isweek = true;
+ $setup.cardsumit.monthTime = "";
+ })
+ },
+ null,
+ 2
+ /* CLASS */
+ ),
+ vue.createElementVNode("view", {
+ class: "radio-font",
+ onClick: _cache[7] || (_cache[7] = ($event) => {
+ $setup.isweek = true;
+ $setup.cardsumit.monthTime = "";
+ })
+ }, "每周"),
+ vue.createElementVNode(
+ "view",
+ {
+ class: vue.normalizeClass(!$setup.isweek ? `radio-circle-target` : `radio-circle`),
+ onClick: _cache[8] || (_cache[8] = ($event) => {
+ $setup.isweek = false;
+ $setup.cardsumit.weekTime = "";
+ })
+ },
+ null,
+ 2
+ /* CLASS */
+ ),
+ vue.createElementVNode("view", {
+ class: "radio-font",
+ onClick: _cache[9] || (_cache[9] = ($event) => {
+ $setup.isweek = false;
+ $setup.cardsumit.weekTime = "";
+ })
+ }, "每月")
+ ],
+ 512
+ /* NEED_PATCH */
+ ), [
+ [vue.vShow, $setup.openOp == 1]
+ ]),
+ vue.withDirectives(vue.createElementVNode(
+ "view",
+ { class: "week-father" },
+ [
+ (vue.openBlock(), vue.createElementBlock(
+ vue.Fragment,
+ null,
+ vue.renderList($setup.weekDays, (item, index) => {
+ return vue.createElementVNode("view", { key: index }, [
+ vue.createElementVNode("view", {
+ class: vue.normalizeClass($setup.cardsumit.weekTime === item ? `week-one-target` : `week-one`),
+ onClick: ($event) => $setup.clickweek(item)
+ }, vue.toDisplayString(item), 11, ["onClick"])
+ ]);
+ }),
+ 64
+ /* STABLE_FRAGMENT */
+ ))
+ ],
+ 512
+ /* NEED_PATCH */
+ ), [
+ [vue.vShow, $setup.isweek && $setup.openOp == 1]
+ ]),
+ vue.withDirectives(vue.createElementVNode(
+ "view",
+ { class: "month-father" },
+ [
+ (vue.openBlock(true), vue.createElementBlock(
+ vue.Fragment,
+ null,
+ vue.renderList($setup.days, (item, index) => {
+ return vue.openBlock(), vue.createElementBlock("view", { key: index }, [
+ vue.createElementVNode("view", {
+ class: vue.normalizeClass($setup.cardsumit.monthTime === item ? `month-one-target` : `month-one`),
+ onClick: ($event) => $setup.clickmonth(item)
+ }, vue.toDisplayString(item), 11, ["onClick"])
]);
}),
128
/* KEYED_FRAGMENT */
))
+ ],
+ 512
+ /* NEED_PATCH */
+ ), [
+ [vue.vShow, !$setup.isweek && $setup.openOp == 1]
+ ]),
+ vue.createElementVNode("view", { class: "button-father" }, [
+ vue.createElementVNode("view", { style: { "display": "flex" } }, [
+ vue.withDirectives(vue.createElementVNode(
+ "view",
+ {
+ class: "button-father-right",
+ onClick: $setup.movetoruler
+ },
+ " 确定 ",
+ 512
+ /* NEED_PATCH */
+ ), [
+ [vue.vShow, $setup.isblue()]
+ ]),
+ vue.withDirectives(vue.createElementVNode(
+ "view",
+ { class: "button-father-wrong" },
+ " 确定 ",
+ 512
+ /* NEED_PATCH */
+ ), [
+ [vue.vShow, !$setup.isblue()]
+ ]),
+ vue.createElementVNode("view", {
+ class: "button-father-wrong",
+ onClick: _cache[10] || (_cache[10] = ($event) => $setup.songisopen = false),
+ style: { "margin-left": "20rpx" }
+ }, " 取消 ")
])
- ], 12, ["scroll-top"])
+ ])
])
- ], 8, ["scroll-left"])
- ])
- ]),
- vue.createElementVNode("view", { class: "super-card-end" }, [
- vue.createElementVNode("view", { class: "super-end-father" }, [
- vue.createElementVNode("view", { class: "super-end-font-father" }, [
- vue.createElementVNode("view", { class: "super-end-font-gun" }),
- vue.createElementVNode("view", { class: "super-end-font-font" }, "快捷指令")
- ])
- ])
- ])
- ])
- ]),
- vue.createElementVNode("view", { class: "right-container-sec" }, [
- vue.createElementVNode("view", { class: "under-father" }, [
- (vue.openBlock(true), vue.createElementBlock(
- vue.Fragment,
- null,
- vue.renderList($setup.undericonList, (item, index) => {
- return vue.openBlock(), vue.createElementBlock("view", {
- class: "under-father-view",
- key: index,
- onClick: ($event) => $setup.changeMenuUnder(index)
- }, [
- vue.withDirectives(vue.createElementVNode(
- "image",
- {
- class: "under-father-light",
- src: _imports_0$1
- },
- null,
- 512
- /* NEED_PATCH */
- ), [
- [vue.vShow, index === $setup.undermenuIndex]
- ]),
- vue.createElementVNode("image", {
- class: "under-father-img",
- src: index === $setup.undermenuIndex ? item.targetUrl : item.url
- }, null, 8, ["src"]),
- vue.createElementVNode(
- "view",
- {
- class: vue.normalizeClass($props.darkFans ? `under-father-img-font-dark` : `under-father-img-font`)
- },
- vue.toDisplayString(item.name),
- 3
- /* TEXT, CLASS */
- )
- ], 8, ["onClick"]);
- }),
- 128
- /* KEYED_FRAGMENT */
- ))
- ])
- ]),
- vue.createCommentVNode(" 弹出层 "),
- vue.createCommentVNode(' ')
+ ],
+ 4
+ /* STYLE */
+ )
+ ])) : vue.createCommentVNode("v-if", true)
+ ],
+ 4
+ /* STYLE */
+ )
],
- 4
- /* STYLE */
+ 2112
+ /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
);
}
const rightItemssecond = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["render", _sfc_render$3], ["__scopeId", "data-v-337bb5da"], ["__file", "D:/hldy_app/component/rightItemssecond/index.vue"]]);
@@ -3618,7 +4301,7 @@ if (uni.restoreGlobal) {
5
/* TEXT, STYLE */
), [
- [vue.vShow, $setup.savename]
+ [vue.vShow, $setup.savename && $setup.clientX]
]),
vue.createElementVNode("view", { class: "left-container" }, [
vue.createElementVNode("view", { class: "left-head" }, [
diff --git a/unpackage/dist/dev/app-plus/manifest.json b/unpackage/dist/dev/app-plus/manifest.json
index 7cecc8e..bf5c003 100644
--- a/unpackage/dist/dev/app-plus/manifest.json
+++ b/unpackage/dist/dev/app-plus/manifest.json
@@ -89,7 +89,7 @@
"uni-app": {
"control": "uni-v3",
"vueVersion": "3",
- "compilerVersion": "4.55",
+ "compilerVersion": "4.56",
"nvueCompiler": "uni-app",
"renderer": "auto",
"nvue": {
diff --git a/unpackage/dist/dev/app-plus/pages/index/index.css b/unpackage/dist/dev/app-plus/pages/index/index.css
index fd98dfb..f85f0f0 100644
--- a/unpackage/dist/dev/app-plus/pages/index/index.css
+++ b/unpackage/dist/dev/app-plus/pages/index/index.css
@@ -3359,44 +3359,12 @@
display: flex;
justify-content: center;
align-items: center;
- height: 4.375rem;
- width: calc(100%);
- border-right: 0.03125rem solid #BFBFCB;
- border-top: 0.03125rem solid #BFBFCB;
- flex-direction: column;
-}
-.super-card .super-card-time-card-blue[data-v-337bb5da] {
- background-color: #3FA9F5;
- display: flex;
- justify-content: space-evenly;
- align-items: center;
- height: 4.375rem;
- width: calc(100%);
- border-right: 0.03125rem solid #BFBFCB;
- border-top: 0.03125rem solid #BFBFCB;
- flex-direction: column;
-}
-.super-card .super-card-time-card-yellow[data-v-337bb5da] {
- background-color: #fffaf1;
- display: flex;
- justify-content: space-evenly;
- align-items: center;
- height: 4.375rem;
- width: calc(100%);
- border-right: 0.03125rem solid #BFBFCB;
- border-top: 0.03125rem solid #BFBFCB;
- flex-direction: column;
-}
-.super-card .super-card-time-card-pouple[data-v-337bb5da] {
- background-color: #e0daff;
- display: flex;
- justify-content: space-evenly;
- align-items: center;
- height: 4.375rem;
+ height: 5.46875rem;
width: calc(100%);
border-right: 0.03125rem solid #BFBFCB;
border-top: 0.03125rem solid #BFBFCB;
flex-direction: column;
+ background-color: #f3f6fc;
}
.right-container[data-v-337bb5da] {
width: calc(100% - 7.34375rem);
@@ -3459,10 +3427,26 @@
/* 右下角阴影 */
}
.right-container .doctorsay-container-view .doctorsay-container-items .doctorsay-container-down .doctorsay-container-scroll[data-v-337bb5da] {
- height: 21.5625rem;
+ height: 19.375rem;
}
.right-container .doctorsay-container-view .doctorsay-container-items .doctorsay-container-down .doctorsay-top[data-v-337bb5da] {
- height: 1.25rem;
+ height: 2.5rem;
+ display: flex;
+ margin-bottom: 0.625rem;
+}
+.right-container .doctorsay-container-view .doctorsay-container-items .doctorsay-container-down .doctorsay-top .doctorsay-top-gun[data-v-337bb5da] {
+ margin-top: 1.15625rem;
+ margin-left: 1.25rem;
+ margin-right: 0.625rem;
+ width: 0.40625rem;
+ height: 1.09375rem;
+ background: linear-gradient(to bottom, #04BCED, #0160CE);
+ border-radius: 0.3125rem;
+}
+.right-container .doctorsay-container-view .doctorsay-container-items .doctorsay-container-down .doctorsay-top .doctorsay-top-font[data-v-337bb5da] {
+ font-size: 1.0625rem;
+ font-weight: 700;
+ margin-top: 1.0625rem;
}
.right-container .doctorsay-container-view .doctorsay-container-items .doctorsay-container-down .doctorsay-container-button[data-v-337bb5da] {
display: flex;
@@ -3476,7 +3460,7 @@
background-color: #c9e8ff;
border-radius: 0.625rem;
border: 0.0625rem solid #fff;
- width: 7.8125rem;
+ width: 9.375rem;
height: 3.125rem;
display: flex;
justify-content: center;
@@ -3492,7 +3476,7 @@
background-color: #f3f6fc;
border: 0.0625rem solid #fff;
border-radius: 0.3125rem;
- width: 6.875rem;
+ width: 7.8125rem;
height: 2.34375rem;
display: flex;
justify-content: center;
@@ -3531,33 +3515,116 @@
}
.right-container .doctorsay-container-view .doctorsay-container-container .super-card-end[data-v-337bb5da] {
width: 100%;
- height: 6.25rem;
display: flex;
}
.right-container .doctorsay-container-view .doctorsay-container-container .super-card-end .super-end-father[data-v-337bb5da] {
height: 100%;
display: flex;
+ flex-direction: column;
width: 100%;
}
+.right-container .doctorsay-container-view .doctorsay-container-container .super-card-end .super-end-father .super-end-items[data-v-337bb5da] {
+ display: flex;
+ width: calc(100% - 1.875rem);
+ height: 9.375rem;
+ margin-left: 0.9375rem;
+ overflow-x: auto;
+}
+.right-container .doctorsay-container-view .doctorsay-container-container .super-card-end .super-end-father .super-end-items .super-end-items-father[data-v-337bb5da] {
+ margin-left: 0.3125rem;
+ margin-top: 0.46875rem;
+ width: 4.6875rem;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ flex-direction: column;
+ position: relative;
+}
+.right-container .doctorsay-container-view .doctorsay-container-container .super-card-end .super-end-father .super-end-items .super-end-items-father .super-end-items-father-close-father[data-v-337bb5da] {
+ width: 1.25rem;
+ height: 1.25rem;
+ border-radius: 50%;
+ display: flex;
+ background-color: #fff;
+ justify-content: center;
+ align-items: center;
+ position: absolute;
+ top: -0.3125rem;
+ right: 0.46875rem;
+ z-index: 10;
+ background-color: #02abfe;
+ color: #fff;
+}
+.right-container .doctorsay-container-view .doctorsay-container-container .super-card-end .super-end-father .super-end-items .super-end-items-father .super-end-items-img-father[data-v-337bb5da] {
+ width: 3.125rem;
+ height: 3.125rem;
+ border-radius: 50%;
+ display: flex;
+ background-color: #fff;
+ justify-content: center;
+ align-items: center;
+ /* 让正方形变成圆 */
+}
+.right-container .doctorsay-container-view .doctorsay-container-container .super-card-end .super-end-father .super-end-items .super-end-items-father .super-end-items-img-father .super-end-items-img[data-v-337bb5da] {
+ width: 2.34375rem;
+ height: 2.34375rem;
+}
+.right-container .doctorsay-container-view .doctorsay-container-container .super-card-end .super-end-father .super-end-items .super-end-items-father .super-end-items-img-father-active[data-v-337bb5da] {
+ width: 3.125rem;
+ height: 3.125rem;
+ border-radius: 50%;
+ display: flex;
+ background-color: #fff;
+ justify-content: center;
+ align-items: center;
+ animation: shake-337bb5da 0.5s infinite;
+ /* 让正方形变成圆 */
+}
+.right-container .doctorsay-container-view .doctorsay-container-container .super-card-end .super-end-father .super-end-items .super-end-items-father .super-end-items-img-father-active .super-end-items-img[data-v-337bb5da] {
+ width: 2.34375rem;
+ height: 2.34375rem;
+}
+@keyframes shake-337bb5da {
+0% {
+ transform: rotate(-10deg);
+}
+25% {
+ transform: rotate(10deg);
+}
+50% {
+ transform: rotate(-10deg);
+}
+75% {
+ transform: rotate(10deg);
+}
+100% {
+ transform: rotate(-10deg);
+}
+}
+.right-container .doctorsay-container-view .doctorsay-container-container .super-card-end .super-end-father .super-end-items .super-end-items-father .super-end-items-font[data-v-337bb5da] {
+ margin-top: 0.3125rem;
+ font-size: 0.78125rem;
+}
.right-container .doctorsay-container-view .doctorsay-container-container .super-card-end .super-end-father .super-end-font-father[data-v-337bb5da] {
display: flex;
}
.right-container .doctorsay-container-view .doctorsay-container-container .super-card-end .super-end-father .super-end-font-father .super-end-font-gun[data-v-337bb5da] {
margin-left: 1.25rem;
margin-right: 0.625rem;
+ margin-top: 0.15625rem;
width: 0.40625rem;
- height: 1.71875rem;
+ height: 1.25rem;
background: linear-gradient(to bottom, #04BCED, #0160CE);
border-radius: 0.3125rem;
}
.right-container .doctorsay-container-view .doctorsay-container-container .super-card-end .super-end-father .super-end-font-father .super-end-font-font[data-v-337bb5da] {
- font-size: 1.3125rem;
+ font-size: 1.1875rem;
font-weight: 700;
}
.right-container .doctorsay-container-view .doctorsay-container-container .doctorsay-container-title[data-v-337bb5da] {
width: 100%;
height: 4.0625rem;
- background-color: #c9e8ff;
+ background-color: #f1f6fd;
display: flex;
align-items: center;
justify-content: space-between;
@@ -3566,7 +3633,7 @@
height: 100%;
display: flex;
align-items: center;
- width: 8.125rem;
+ width: 9.6875rem;
}
.right-container .doctorsay-container-view .doctorsay-container-container .doctorsay-container-title .doctorsay-container-right .doctorsay-container-button-father[data-v-337bb5da] {
display: flex;
@@ -3596,18 +3663,18 @@
}
.right-container .doctorsay-container-view .doctorsay-container-container .doctorsay-container-title .doctorsay-container-right .doctorsay-container-right-kuai-cheng[data-v-337bb5da] {
background-color: #FFDBA1;
- height: 0.9375rem;
- width: 0.9375rem;
- border-radius: 0.15625rem;
+ height: 1.40625rem;
+ width: 1.40625rem;
+ border-radius: 0.21875rem;
}
.right-container .doctorsay-container-view .doctorsay-container-container .doctorsay-container-title .doctorsay-container-right .doctorsay-container-right-kuai-zi[data-v-337bb5da] {
background-color: #7B61FF;
- height: 0.9375rem;
- width: 0.9375rem;
- border-radius: 0.15625rem;
+ height: 1.40625rem;
+ width: 1.40625rem;
+ border-radius: 0.21875rem;
}
.right-container .doctorsay-container-view .doctorsay-container-container .doctorsay-container-title .doctorsay-container-right .doctorsay-container-kuai-font[data-v-337bb5da] {
- font-size: 0.875rem;
+ font-size: 1rem;
margin-left: 0.3125rem;
margin-right: 0.78125rem;
}
@@ -3615,15 +3682,16 @@
display: flex;
}
.right-container .doctorsay-container-view .doctorsay-container-container .doctorsay-container-title .doctorsay-container-left .doctorsay-container-left-gun[data-v-337bb5da] {
+ margin-top: 0.21875rem;
margin-left: 1.25rem;
margin-right: 0.625rem;
width: 0.40625rem;
- height: 1.71875rem;
+ height: 1.25rem;
background: linear-gradient(to bottom, #04BCED, #0160CE);
border-radius: 0.3125rem;
}
.right-container .doctorsay-container-view .doctorsay-container-container .doctorsay-container-title .doctorsay-container-left .doctorsay-container-left-font[data-v-337bb5da] {
- font-size: 1.3125rem;
+ font-size: 1.1875rem;
font-weight: 700;
}
.right-container .right-container-sec[data-v-337bb5da] {
@@ -3752,7 +3820,7 @@
display: flex;
}
.title-time .title-time-time[data-v-337bb5da] {
- font-size: 1.09375rem;
+ font-size: 1rem;
margin-right: 0.3125rem;
}
.title-time .title-time-button[data-v-337bb5da] {
@@ -3762,6 +3830,426 @@
border-radius: 0.3125rem;
font-size: 0.78125rem;
}
+.popup-overlay[data-v-337bb5da] {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ /* 添加毛玻璃效果 */
+ z-index: 999;
+}
+.popup-overlay .popup-overlay-content[data-v-337bb5da] {
+ position: absolute;
+ display: flex;
+ align-items: center;
+ width: 25rem;
+ height: 12.1875rem;
+ background-color: #fff;
+ border-radius: 0.9375rem;
+ box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.1);
+ opacity: 0;
+ transition: opacity 0.4s ease;
+}
+.popup-overlay .popup-overlay-content .popup-overlay-content-left[data-v-337bb5da] {
+ height: 100%;
+ width: 10.9375rem;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ flex-direction: column;
+}
+.popup-overlay .popup-overlay-content .popup-overlay-content-left .popup-overlay-content-left-img[data-v-337bb5da] {
+ width: 8.75rem;
+ height: 5.625rem;
+ margin-top: -0.9375rem;
+}
+.popup-overlay .popup-overlay-content .popup-overlay-content-left .popup-overlay-content-left-font[data-v-337bb5da] {
+ font-size: 0.9375rem;
+}
+.popup-overlay .popup-overlay-content .popup-overlay-content-right[data-v-337bb5da] {
+ height: 100%;
+ width: 14.0625rem;
+ position: relative;
+}
+.popup-overlay .popup-overlay-content .popup-overlay-content-right .time-font[data-v-337bb5da] {
+ font-size: 1.5625rem;
+ margin-top: 3.125rem;
+ margin-bottom: 0.3125rem;
+ font-weight: 700;
+ background: linear-gradient(to bottom, #7080A1, #263556);
+ -webkit-background-clip: text;
+ color: transparent;
+}
+.popup-overlay .popup-overlay-content .popup-overlay-content-right .time-text[data-v-337bb5da] {
+ margin-left: 0.3125rem;
+ font-size: 0.9375rem;
+ width: 11.875rem;
+ margin-bottom: 1.5625rem;
+ line-height: 1.09375rem;
+}
+.popup-overlay .popup-overlay-content .popup-overlay-content-right .right-richang[data-v-337bb5da] {
+ background-color: #FFC363;
+ position: absolute;
+ top: 3.375rem;
+ right: 1.5625rem;
+ padding: 0.15625rem;
+ border-radius: 0.3125rem;
+}
+.popup-overlay .popup-overlay-content .popup-overlay-content-right .right-richangnot[data-v-337bb5da] {
+ background-color: #7B61FF;
+ position: absolute;
+ top: 3.375rem;
+ right: 1.5625rem;
+ padding: 0.15625rem;
+ border-radius: 0.3125rem;
+ color: #fff;
+}
+.popup-overlay .popup-overlay-content .popup-overlay-content-right .right-crush[data-v-337bb5da] {
+ position: absolute;
+ top: 0.625rem;
+ right: 0.625rem;
+ width: 2.1875rem;
+ height: 2.1875rem;
+ animation: shake-337bb5da 0.5s 3;
+}
+.popup-song[data-v-337bb5da] {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ /* 添加毛玻璃效果 */
+ z-index: 999;
+}
+.popup-song .popup-song-contain[data-v-337bb5da] {
+ position: absolute;
+ right: 13.125rem;
+ width: 40.625rem;
+ background-color: #fff;
+ border-radius: 0.625rem;
+ box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.1);
+ opacity: 0;
+ transition: opacity 0.4s ease;
+}
+.popup-song .popup-song-contain .shu-container-left[data-v-337bb5da] {
+ display: flex;
+ margin-top: 2.1875rem;
+ margin-bottom: 0.625rem;
+}
+.popup-song .popup-song-contain .shu-container-left .shu-container-left-gun[data-v-337bb5da] {
+ margin-top: 0.15625rem;
+ margin-left: 1.25rem;
+ margin-right: 0.625rem;
+ width: 0.40625rem;
+ height: 1.09375rem;
+ background: linear-gradient(to bottom, #04BCED, #0160CE);
+ border-radius: 0.3125rem;
+}
+.popup-song .popup-song-contain .shu-container-left .shu-container-left-font[data-v-337bb5da] {
+ font-size: 1.09375rem;
+ font-weight: 700;
+}
+.popup-song-father[data-v-337bb5da] {
+ position: relative;
+}
+.popup-song-father .shu-up-img[data-v-337bb5da] {
+ position: absolute;
+ top: -2.1875rem;
+ left: 9.53125rem;
+ width: 21.875rem;
+ height: 2.5rem;
+}
+.popup-song-father .shu-up-font[data-v-337bb5da] {
+ position: absolute;
+ top: -1.5625rem;
+ left: 12.1875rem;
+ display: flex;
+ color: #ff5a00;
+}
+.popup-song-father .arrayindex[data-v-337bb5da] {
+ display: flex;
+ flex-wrap: wrap;
+ width: 100%;
+ margin-left: 0.9375rem;
+ margin-right: 0.9375rem;
+}
+.popup-song-father .arrayindex .arrayindex-one[data-v-337bb5da] {
+ width: 12.03125rem;
+ height: 3.125rem;
+ margin-left: 0.625rem;
+ margin-top: 0.625rem;
+ background-color: #f1f5fc;
+ border-radius: 0.625rem;
+ border: 0.03125rem solid #6d83b3;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ font-size: 0.90625rem;
+}
+.popup-song-father .arrayindex .arrayindex-one-target[data-v-337bb5da] {
+ width: 12.03125rem;
+ height: 3.125rem;
+ margin-left: 0.625rem;
+ margin-top: 0.625rem;
+ background-color: #fffaf1;
+ border-radius: 0.625rem;
+ border: 0.03125rem solid #ffb501;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ font-size: 0.90625rem;
+}
+.ri-img[data-v-337bb5da] {
+ position: absolute;
+ top: -0.125rem;
+ right: -0.09375rem;
+ width: 1.5625rem;
+ height: 1.5625rem;
+}
+.time-father[data-v-337bb5da] {
+ display: flex;
+ width: 100%;
+ flex-wrap: wrap;
+ margin-left: 0.9375rem;
+ margin-right: 0.9375rem;
+}
+.time-father .time-one[data-v-337bb5da] {
+ width: 3.125rem;
+ height: 3.125rem;
+ margin-left: 0.625rem;
+ margin-top: 0.625rem;
+ background-color: #f1f5fc;
+ border-radius: 0.625rem;
+ border: 0.03125rem solid #6d83b3;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ font-size: 0.90625rem;
+}
+.time-father .time-one-target[data-v-337bb5da] {
+ width: 3.125rem;
+ height: 3.125rem;
+ margin-left: 0.625rem;
+ margin-top: 0.625rem;
+ background-color: #02abfe;
+ color: #fff;
+ border-radius: 0.625rem;
+ border: 0.03125rem solid #fff;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ font-size: 0.90625rem;
+}
+.time-father .time-one-hui[data-v-337bb5da] {
+ width: 3.125rem;
+ height: 3.125rem;
+ margin-left: 0.625rem;
+ margin-top: 0.625rem;
+ background-color: #dadada;
+ color: #fff;
+ border-radius: 0.625rem;
+ border: 0.03125rem solid #fff;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ font-size: 0.90625rem;
+}
+.button-father[data-v-337bb5da] {
+ height: 6.25rem;
+ width: calc(100%-2.5rem);
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ margin-left: 1.25rem;
+ margin-right: 1.25rem;
+ margin-top: 0.625rem;
+ border-top: 0.03125rem solid #e6e6e6;
+}
+.button-father .button-father-right[data-v-337bb5da] {
+ background-color: #02abfe;
+ width: 6.25rem;
+ height: 2.5rem;
+ border-radius: 1.25rem;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ color: #fff;
+}
+.button-father .button-father-wrong[data-v-337bb5da] {
+ background-color: #dadada;
+ width: 6.25rem;
+ height: 2.5rem;
+ border-radius: 1.25rem;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+.month-father[data-v-337bb5da] {
+ display: flex;
+ width: calc(100% - 1.875rem);
+ flex-wrap: wrap;
+ margin-left: 0.9375rem;
+ margin-right: 0.9375rem;
+ margin-top: 0.625rem;
+}
+.month-father .month-one[data-v-337bb5da] {
+ width: 2.34375rem;
+ height: 2.34375rem;
+ margin-left: 0.625rem;
+ margin-top: 0.625rem;
+ background-color: #f1f5fc;
+ border-radius: 0.625rem;
+ border: 0.03125rem solid #6d83b3;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ font-size: 0.90625rem;
+}
+.month-father .month-one-target[data-v-337bb5da] {
+ width: 2.34375rem;
+ height: 2.34375rem;
+ margin-left: 0.625rem;
+ margin-top: 0.625rem;
+ background-color: #02abfe;
+ color: #fff;
+ border-radius: 0.625rem;
+ border: 0.03125rem solid #fff;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ font-size: 0.90625rem;
+}
+.week-father[data-v-337bb5da] {
+ display: flex;
+ width: 100%;
+ flex-wrap: wrap;
+ margin-left: 0.9375rem;
+ margin-right: 0.9375rem;
+ margin-top: 0.625rem;
+}
+.week-father .week-one[data-v-337bb5da] {
+ width: 6.25rem;
+ height: 3.125rem;
+ margin-left: 0.625rem;
+ margin-top: 0.625rem;
+ background-color: #f1f5fc;
+ border-radius: 0.625rem;
+ border: 0.03125rem solid #6d83b3;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ font-size: 0.90625rem;
+}
+.week-father .week-one-target[data-v-337bb5da] {
+ width: 6.25rem;
+ height: 3.125rem;
+ margin-left: 0.625rem;
+ margin-top: 0.625rem;
+ background-color: #02abfe;
+ color: #fff;
+ border-radius: 0.625rem;
+ border: 0.03125rem solid #fff;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ font-size: 0.90625rem;
+}
+.radio-father[data-v-337bb5da] {
+ display: flex;
+ width: 100%;
+ flex-wrap: wrap;
+ margin-left: 2.34375rem;
+ margin-right: 0.9375rem;
+}
+.radio-father .radio-circle[data-v-337bb5da] {
+ margin-top: 0.0625rem;
+ width: 0.9375rem;
+ height: 0.9375rem;
+ border-radius: 50%;
+ border: 0.0625rem solid black;
+ background-color: transparent;
+}
+.radio-father .radio-circle-target[data-v-337bb5da] {
+ position: relative;
+ margin-top: 0.0625rem;
+ width: 0.9375rem;
+ height: 0.9375rem;
+ border-radius: 50%;
+ border: 0.0625rem solid #02abfe;
+ background-color: transparent;
+}
+.radio-father .radio-circle-target[data-v-337bb5da]::after {
+ content: "";
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ width: 0.625rem;
+ height: 0.625rem;
+ background-color: #02abfe;
+ border-radius: 50%;
+}
+.radio-father .radio-font[data-v-337bb5da] {
+ margin-left: 0.46875rem;
+ margin-right: 1.875rem;
+ font-size: 0.90625rem;
+}
+.title-time-border[data-v-337bb5da] {
+ margin-top: 0.125rem;
+ margin-left: 0.125rem;
+ width: calc(100% - 0.25rem);
+ height: calc(100% - 0.25rem);
+ border-radius: 0.625rem;
+ display: flex;
+ justify-content: space-evenly;
+ align-items: center;
+ flex-direction: column;
+}
+.title-time-border-blue[data-v-337bb5da] {
+ margin-top: 0.125rem;
+ margin-left: 0.125rem;
+ background-color: #dae8fa;
+ width: calc(100% - 0.25rem);
+ height: calc(100% - 0.25rem);
+ border-radius: 0.625rem;
+ display: flex;
+ justify-content: space-evenly;
+ align-items: center;
+ flex-direction: column;
+}
+.title-time-border-yellow[data-v-337bb5da] {
+ margin-top: 0.09375rem;
+ margin-left: 0.09375rem;
+ border: 0.03125rem solid #dae8fa;
+ background-color: #fffaf1;
+ width: calc(100% - 0.25rem);
+ height: calc(100% - 0.25rem);
+ border-radius: 0.625rem;
+ display: flex;
+ justify-content: space-evenly;
+ align-items: center;
+ flex-direction: column;
+}
+.title-time-border-pouple[data-v-337bb5da] {
+ margin-top: 0.09375rem;
+ margin-left: 0.09375rem;
+ border: 0.03125rem solid #dae8fa;
+ background-color: #e8e3ff;
+ width: calc(100% - 0.25rem);
+ height: calc(100% - 0.25rem);
+ border-radius: 0.625rem;
+ display: flex;
+ justify-content: space-evenly;
+ align-items: center;
+ flex-direction: column;
+}
.backgroundContainer[data-v-1cf27b2a] {
display: flex;
@@ -3787,10 +4275,21 @@
}
.move-font[data-v-1cf27b2a] {
position: absolute;
- font-size: 1.40625rem;
font-weight: 700;
z-index: 10;
pointer-events: none;
+ color: #016AD1;
+ background-color: #fff;
+ border-radius: 0.625rem;
+ border: 0.0625rem solid #fff;
+ width: 9.375rem;
+ height: 3.125rem;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ text-align: center;
+ font-size: 1.40625rem;
+ box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.1);
}
.left-container[data-v-1cf27b2a] {
width: 7.34375rem;
diff --git a/unpackage/dist/dev/app-plus/static/index/baba.png b/unpackage/dist/dev/app-plus/static/index/baba.png
new file mode 100644
index 0000000..695d733
Binary files /dev/null and b/unpackage/dist/dev/app-plus/static/index/baba.png differ
diff --git a/unpackage/dist/dev/app-plus/static/index/cheng.png b/unpackage/dist/dev/app-plus/static/index/cheng.png
new file mode 100644
index 0000000..24879bc
Binary files /dev/null and b/unpackage/dist/dev/app-plus/static/index/cheng.png differ
diff --git a/unpackage/dist/dev/app-plus/static/index/close.png b/unpackage/dist/dev/app-plus/static/index/close.png
new file mode 100644
index 0000000..c5cb9bb
Binary files /dev/null and b/unpackage/dist/dev/app-plus/static/index/close.png differ
diff --git a/unpackage/dist/dev/app-plus/static/index/crushpouple.png b/unpackage/dist/dev/app-plus/static/index/crushpouple.png
new file mode 100644
index 0000000..de45150
Binary files /dev/null and b/unpackage/dist/dev/app-plus/static/index/crushpouple.png differ
diff --git a/unpackage/dist/dev/app-plus/static/index/crushyellow.png b/unpackage/dist/dev/app-plus/static/index/crushyellow.png
new file mode 100644
index 0000000..478181e
Binary files /dev/null and b/unpackage/dist/dev/app-plus/static/index/crushyellow.png differ
diff --git a/unpackage/dist/dev/app-plus/static/index/ji.png b/unpackage/dist/dev/app-plus/static/index/ji.png
new file mode 100644
index 0000000..be4056b
Binary files /dev/null and b/unpackage/dist/dev/app-plus/static/index/ji.png differ
diff --git a/unpackage/dist/dev/app-plus/static/index/jidark.png b/unpackage/dist/dev/app-plus/static/index/jidark.png
new file mode 100644
index 0000000..89e9e15
Binary files /dev/null and b/unpackage/dist/dev/app-plus/static/index/jidark.png differ
diff --git a/unpackage/dist/dev/app-plus/static/index/niao.png b/unpackage/dist/dev/app-plus/static/index/niao.png
new file mode 100644
index 0000000..d741577
Binary files /dev/null and b/unpackage/dist/dev/app-plus/static/index/niao.png differ
diff --git a/unpackage/dist/dev/app-plus/static/index/ou.png b/unpackage/dist/dev/app-plus/static/index/ou.png
new file mode 100644
index 0000000..4add146
Binary files /dev/null and b/unpackage/dist/dev/app-plus/static/index/ou.png differ
diff --git a/unpackage/dist/dev/app-plus/static/index/ri.png b/unpackage/dist/dev/app-plus/static/index/ri.png
new file mode 100644
index 0000000..02b3e32
Binary files /dev/null and b/unpackage/dist/dev/app-plus/static/index/ri.png differ
diff --git a/unpackage/dist/dev/app-plus/static/index/ridark.png b/unpackage/dist/dev/app-plus/static/index/ridark.png
new file mode 100644
index 0000000..68a9c43
Binary files /dev/null and b/unpackage/dist/dev/app-plus/static/index/ridark.png differ
diff --git a/unpackage/dist/dev/app-plus/static/index/tu.png b/unpackage/dist/dev/app-plus/static/index/tu.png
new file mode 100644
index 0000000..831b75c
Binary files /dev/null and b/unpackage/dist/dev/app-plus/static/index/tu.png differ
diff --git a/unpackage/dist/dev/app-plus/static/index/zhou.png b/unpackage/dist/dev/app-plus/static/index/zhou.png
new file mode 100644
index 0000000..91ed3b3
Binary files /dev/null and b/unpackage/dist/dev/app-plus/static/index/zhou.png differ
diff --git a/unpackage/dist/dev/app-plus/static/index/zhoudark.png b/unpackage/dist/dev/app-plus/static/index/zhoudark.png
new file mode 100644
index 0000000..6ae261e
Binary files /dev/null and b/unpackage/dist/dev/app-plus/static/index/zhoudark.png differ
diff --git a/unpackage/dist/dev/mp-weixin/common/assets.js b/unpackage/dist/dev/mp-weixin/common/assets.js
index 245d3c4..99a80b4 100644
--- a/unpackage/dist/dev/mp-weixin/common/assets.js
+++ b/unpackage/dist/dev/mp-weixin/common/assets.js
@@ -2,7 +2,9 @@
const _imports_0$2 = "/static/index/oldman.png";
const _imports_0$1 = "/static/index/customer.png";
const _imports_0 = "/static/index/undericons/upguang.png";
+const _imports_1 = "/static/index/cheng.png";
exports._imports_0 = _imports_0$2;
exports._imports_0$1 = _imports_0;
exports._imports_0$2 = _imports_0$1;
+exports._imports_1 = _imports_1;
//# sourceMappingURL=../../.sourcemap/mp-weixin/common/assets.js.map
diff --git a/unpackage/dist/dev/mp-weixin/common/vendor.js b/unpackage/dist/dev/mp-weixin/common/vendor.js
index b450d17..91e8a4f 100644
--- a/unpackage/dist/dev/mp-weixin/common/vendor.js
+++ b/unpackage/dist/dev/mp-weixin/common/vendor.js
@@ -3836,7 +3836,8 @@ function createComponentInstance(vnode, parent, suspense) {
$uniElements: /* @__PURE__ */ new Map(),
$templateUniElementRefs: [],
$templateUniElementStyles: {},
- $eS: {}
+ $eS: {},
+ $eA: {}
};
{
instance.ctx = createDevRenderContext(instance);
@@ -4334,6 +4335,7 @@ function patch(instance, data, oldData) {
}
data = deepCopy(data);
data.$eS = instance.$eS || {};
+ data.$eA = instance.$eA || {};
const ctx = instance.ctx;
const mpType = ctx.mpType;
if (mpType === "page" || mpType === "component") {
@@ -5175,6 +5177,10 @@ function vFor(source, renderItem) {
}
return ret;
}
+function setRef(ref2, id, opts = {}) {
+ const { $templateRefs } = getCurrentInstance();
+ $templateRefs.push({ i: id, r: ref2, k: opts.k, f: opts.f });
+}
const o = (value, key) => vOn(value, key);
const f = (source, renderItem) => vFor(source, renderItem);
const s = (value) => stringifyStyle(value);
@@ -5182,11 +5188,21 @@ const e = (target, ...sources) => extend(target, ...sources);
const n = (value) => normalizeClass(value);
const t = (val) => toDisplayString(val);
const p = (props) => renderProps(props);
+const sr = (ref2, id, opts) => setRef(ref2, id, opts);
function createApp$1(rootComponent, rootProps = null) {
rootComponent && (rootComponent.mpType = "app");
return createVueApp(rootComponent, rootProps).use(plugin);
}
const createSSRApp = createApp$1;
+function getLocaleLanguage$1() {
+ let localeLanguage = "";
+ {
+ const appBaseInfo = wx.getAppBaseInfo();
+ const language = appBaseInfo && appBaseInfo.language ? appBaseInfo.language : LOCALE_EN;
+ localeLanguage = normalizeLocale(language) || LOCALE_EN;
+ }
+ return localeLanguage;
+}
function validateProtocolFail(name, msg) {
console.warn(`${name}: ${msg}`);
}
@@ -5756,7 +5772,9 @@ const $once = defineSyncApi(API_ONCE, (name, callback) => {
const $off = defineSyncApi(API_OFF, (name, callback) => {
if (!isArray(name))
name = name ? [name] : [];
- name.forEach((n2) => eventBus.off(n2, callback));
+ name.forEach((n2) => {
+ eventBus.off(n2, callback);
+ });
}, OffProtocol);
const $emit = defineSyncApi(API_EMIT, (name, ...args) => {
eventBus.emit(name, ...args);
@@ -5948,6 +5966,9 @@ function initWrapper(protocols2) {
}
return function wrapper(methodName, method) {
const hasProtocol = hasOwn(protocols2, methodName);
+ if (!hasProtocol && typeof wx[methodName] !== "function") {
+ return method;
+ }
const needWrapper = hasProtocol || isFunction(protocols2.returnValue) || isContextApi(methodName) || isTaskApi(methodName);
const hasMethod = hasProtocol || isFunction(method);
if (!hasProtocol && !method) {
@@ -5987,7 +6008,7 @@ const getLocale = () => {
if (app && app.$vm) {
return app.$vm.$locale;
}
- return normalizeLocale(wx.getAppBaseInfo().language) || LOCALE_EN;
+ return getLocaleLanguage$1();
};
const setLocale = (locale) => {
const app = isFunction(getApp) && getApp();
@@ -6069,9 +6090,9 @@ function populateParameters(fromRes, toRes) {
appVersion: "1.0.0",
appVersionCode: "100",
appLanguage: getAppLanguage(hostLanguage),
- uniCompileVersion: "4.45",
- uniCompilerVersion: "4.45",
- uniRuntimeVersion: "4.45",
+ uniCompileVersion: "4.56",
+ uniCompilerVersion: "4.56",
+ uniRuntimeVersion: "4.56",
uniPlatform: "mp-weixin",
deviceBrand,
deviceModel: model,
@@ -6220,9 +6241,9 @@ const getAppBaseInfo = {
appLanguage: getAppLanguage(hostLanguage),
isUniAppX: false,
uniPlatform: "mp-weixin",
- uniCompileVersion: "4.45",
- uniCompilerVersion: "4.45",
- uniRuntimeVersion: "4.45"
+ uniCompileVersion: "4.56",
+ uniCompilerVersion: "4.56",
+ uniRuntimeVersion: "4.56"
};
extend(toRes, parameters);
}
@@ -6402,11 +6423,23 @@ function createSelectorQuery() {
const query = wx$2.createSelectorQuery();
const oldIn = query.in;
query.in = function newIn(component) {
+ if (component.$scope) {
+ return oldIn.call(this, component.$scope);
+ }
return oldIn.call(this, initComponentMocks(component));
};
return query;
}
const wx$2 = initWx();
+if (!wx$2.canIUse("getAppBaseInfo")) {
+ wx$2.getAppBaseInfo = wx$2.getSystemInfoSync;
+}
+if (!wx$2.canIUse("getWindowInfo")) {
+ wx$2.getWindowInfo = wx$2.getSystemInfoSync;
+}
+if (!wx$2.canIUse("getDeviceInfo")) {
+ wx$2.getDeviceInfo = wx$2.getSystemInfoSync;
+}
let baseInfo = wx$2.getAppBaseInfo && wx$2.getAppBaseInfo();
if (!baseInfo) {
baseInfo = wx$2.getSystemInfoSync();
@@ -6448,84 +6481,48 @@ var protocols = /* @__PURE__ */ Object.freeze({
});
const wx$1 = initWx();
var index = initUni(shims, protocols, wx$1);
-const CONSOLE_TYPES = ["log", "warn", "error", "info", "debug"];
-let sendConsole = null;
-const messageQueue = [];
-function sendConsoleMessages(messages) {
- if (sendConsole == null) {
- messageQueue.push(...messages);
- return;
- }
- sendConsole(JSON.stringify({
- type: "console",
- data: messages
- }));
-}
-function setSendConsole(value) {
- sendConsole = value;
- if (value != null && messageQueue.length > 0) {
- const messages = messageQueue.slice();
- messageQueue.length = 0;
- sendConsoleMessages(messages);
- }
-}
-const originalConsole = /* @__PURE__ */ CONSOLE_TYPES.reduce((methods, type) => {
- methods[type] = console[type].bind(console);
- return methods;
-}, {});
-const atFileRegex = /^at\s+[\w/./-]+:\d+$/;
-function rewriteConsole() {
- function wrapConsole(type) {
- return function(...args) {
- const originalArgs = [...args];
- if (originalArgs.length) {
- const maybeAtFile = originalArgs[originalArgs.length - 1];
- if (typeof maybeAtFile === "string" && atFileRegex.test(maybeAtFile)) {
- originalArgs.pop();
- }
- }
- {
- originalConsole[type](...originalArgs);
- }
- sendConsoleMessages([formatMessage(type, args)]);
- };
- }
- if (isConsoleWritable()) {
- CONSOLE_TYPES.forEach((type) => {
- console[type] = wrapConsole(type);
+function initRuntimeSocket(hosts, port, id) {
+ if (hosts == "" || port == "" || id == "")
+ return Promise.resolve(null);
+ return hosts.split(",").reduce((promise, host2) => {
+ return promise.then((socket) => {
+ if (socket != null)
+ return Promise.resolve(socket);
+ return tryConnectSocket(host2, port, id);
});
- return function restoreConsole() {
- CONSOLE_TYPES.forEach((type) => {
- console[type] = originalConsole[type];
- });
- };
- } else {
- const oldLog = index.__f__;
- if (oldLog) {
- index.__f__ = function(...args) {
- const [type, filename, ...rest] = args;
- oldLog(type, "", ...rest);
- sendConsoleMessages([formatMessage(type, [...rest, filename])]);
- };
- return function restoreConsole() {
- index.__f__ = oldLog;
- };
- }
- }
- return function restoreConsole() {
- };
+ }, Promise.resolve(null));
}
-function isConsoleWritable() {
- const value = console.log;
- const sym = Symbol();
- try {
- console.log = sym;
- } catch (ex) {
- return false;
- }
- const isWritable = console.log === sym;
- console.log = value;
- return isWritable;
+const SOCKET_TIMEOUT = 500;
+function tryConnectSocket(host2, port, id) {
+ return new Promise((resolve, reject) => {
+ const socket = index.connectSocket({
+ url: `ws://${host2}:${port}/${id}`,
+ multiple: true,
+ // 支付宝小程序 是否开启多实例
+ fail() {
+ resolve(null);
+ }
+ });
+ const timer = setTimeout(() => {
+ socket.close({
+ code: 1006,
+ reason: "connect timeout"
+ });
+ resolve(null);
+ }, SOCKET_TIMEOUT);
+ socket.onOpen((e2) => {
+ clearTimeout(timer);
+ resolve(socket);
+ });
+ socket.onClose((e2) => {
+ clearTimeout(timer);
+ resolve(null);
+ });
+ socket.onError((e2) => {
+ clearTimeout(timer);
+ resolve(null);
+ });
+ });
}
function formatMessage(type, args) {
try {
@@ -6534,7 +6531,6 @@ function formatMessage(type, args) {
args: formatArgs(args)
};
} catch (e2) {
- originalConsole.error(e2);
}
return {
type,
@@ -6551,7 +6547,67 @@ function formatArg(arg, depth = 0) {
value: "[Maximum depth reached]"
};
}
- return ARG_FORMATTERS[typeof arg](arg, depth);
+ const type = typeof arg;
+ switch (type) {
+ case "string":
+ return formatString(arg);
+ case "number":
+ return formatNumber(arg);
+ case "boolean":
+ return formatBoolean(arg);
+ case "object":
+ return formatObject(arg, depth);
+ case "undefined":
+ return formatUndefined();
+ case "function":
+ return formatFunction(arg);
+ case "symbol": {
+ return formatSymbol(arg);
+ }
+ case "bigint":
+ return formatBigInt(arg);
+ }
+}
+function formatFunction(value) {
+ return {
+ type: "function",
+ value: `function ${value.name}() {}`
+ };
+}
+function formatUndefined() {
+ return {
+ type: "undefined"
+ };
+}
+function formatBoolean(value) {
+ return {
+ type: "boolean",
+ value: String(value)
+ };
+}
+function formatNumber(value) {
+ return {
+ type: "number",
+ value: String(value)
+ };
+}
+function formatBigInt(value) {
+ return {
+ type: "bigint",
+ value: String(value)
+ };
+}
+function formatString(value) {
+ return {
+ type: "string",
+ value
+ };
+}
+function formatSymbol(value) {
+ return {
+ type: "symbol",
+ value: value.description
+ };
}
function formatObject(value, depth) {
if (value === null) {
@@ -6559,17 +6615,19 @@ function formatObject(value, depth) {
type: "null"
};
}
- if (isComponentPublicInstance(value)) {
- return formatComponentPublicInstance(value, depth);
- }
- if (isComponentInternalInstance(value)) {
- return formatComponentInternalInstance(value, depth);
- }
- if (isUniElement(value)) {
- return formatUniElement(value, depth);
- }
- if (isCSSStyleDeclaration(value)) {
- return formatCSSStyleDeclaration(value, depth);
+ {
+ if (isComponentPublicInstance(value)) {
+ return formatComponentPublicInstance(value, depth);
+ }
+ if (isComponentInternalInstance(value)) {
+ return formatComponentInternalInstance(value, depth);
+ }
+ if (isUniElement(value)) {
+ return formatUniElement(value, depth);
+ }
+ if (isCSSStyleDeclaration(value)) {
+ return formatCSSStyleDeclaration(value, depth);
+ }
}
if (Array.isArray(value)) {
return {
@@ -6635,10 +6693,20 @@ function formatObject(value, depth) {
className: value.name || "Error"
};
}
+ let className = void 0;
+ {
+ const constructor = value.constructor;
+ if (constructor) {
+ if (constructor.get$UTSMetadata$) {
+ className = constructor.get$UTSMetadata$().name;
+ }
+ }
+ }
return {
type: "object",
+ className,
value: {
- properties: Object.entries(value).map(([name, value2]) => formatObjectProperty(name, value2, depth + 1))
+ properties: Object.entries(value).map((entry) => formatObjectProperty(entry[0], entry[1], depth + 1))
}
};
}
@@ -6699,14 +6767,14 @@ function formatCSSStyleDeclaration(style, depth) {
};
}
function formatObjectProperty(name, value, depth) {
- return Object.assign(formatArg(value, depth), {
- name
- });
+ const result = formatArg(value, depth);
+ result.name = name;
+ return result;
}
function formatArrayElement(value, index2, depth) {
- return Object.assign(formatArg(value, depth), {
- name: `${index2}`
- });
+ const result = formatArg(value, depth);
+ result.name = `${index2}`;
+ return result;
}
function formatSetEntry(value, depth) {
return {
@@ -6719,97 +6787,94 @@ function formatMapEntry(value, depth) {
value: formatArg(value[1], depth)
};
}
-const ARG_FORMATTERS = {
- function(value) {
- return {
- type: "function",
- value: `function ${value.name}() {}`
- };
- },
- undefined() {
- return {
- type: "undefined"
- };
- },
- object(value, depth) {
- return formatObject(value, depth);
- },
- boolean(value) {
- return {
- type: "boolean",
- value: String(value)
- };
- },
- number(value) {
- return {
- type: "number",
- value: String(value)
- };
- },
- bigint(value) {
- return {
- type: "bigint",
- value: String(value)
- };
- },
- string(value) {
- return {
- type: "string",
- value
- };
- },
- symbol(value) {
- return {
- type: "symbol",
- value: value.description
+const CONSOLE_TYPES = ["log", "warn", "error", "info", "debug"];
+let sendConsole = null;
+const messageQueue = [];
+const messageExtra = {};
+function sendConsoleMessages(messages) {
+ if (sendConsole == null) {
+ messageQueue.push(...messages);
+ return;
+ }
+ sendConsole(JSON.stringify(Object.assign({
+ type: "console",
+ data: messages
+ }, messageExtra)));
+}
+function setSendConsole(value, extra = {}) {
+ sendConsole = value;
+ Object.assign(messageExtra, extra);
+ if (value != null && messageQueue.length > 0) {
+ const messages = messageQueue.slice();
+ messageQueue.length = 0;
+ sendConsoleMessages(messages);
+ }
+}
+const originalConsole = /* @__PURE__ */ CONSOLE_TYPES.reduce((methods, type) => {
+ methods[type] = console[type].bind(console);
+ return methods;
+}, {});
+const atFileRegex = /^\s*at\s+[\w/./-]+:\d+$/;
+function rewriteConsole() {
+ function wrapConsole(type) {
+ return function(...args) {
+ const originalArgs = [...args];
+ if (originalArgs.length) {
+ const maybeAtFile = originalArgs[originalArgs.length - 1];
+ if (typeof maybeAtFile === "string" && atFileRegex.test(maybeAtFile)) {
+ originalArgs.pop();
+ }
+ }
+ {
+ originalConsole[type](...originalArgs);
+ }
+ sendConsoleMessages([formatMessage(type, args)]);
};
}
-};
-function initRuntimeSocket(hosts, port, id) {
- if (!hosts || !port || !id)
- return Promise.resolve(null);
- return hosts.split(",").reduce((promise, host2) => {
- return promise.then((socket) => {
- if (socket)
- return socket;
- return tryConnectSocket(host2, port, id);
+ if (isConsoleWritable()) {
+ CONSOLE_TYPES.forEach((type) => {
+ console[type] = wrapConsole(type);
});
- }, Promise.resolve(null));
-}
-const SOCKET_TIMEOUT = 500;
-function tryConnectSocket(host2, port, id) {
- return new Promise((resolve, reject) => {
- const socket = index.connectSocket({
- url: `ws://${host2}:${port}/${id}`,
- // 支付宝小程序 是否开启多实例
- multiple: true,
- fail() {
- resolve(null);
- }
- });
- const timer = setTimeout(() => {
- socket.close({
- code: 1006,
- reason: "connect timeout"
+ return function restoreConsole() {
+ CONSOLE_TYPES.forEach((type) => {
+ console[type] = originalConsole[type];
});
- resolve(null);
- }, SOCKET_TIMEOUT);
- socket.onOpen((e2) => {
- clearTimeout(timer);
- resolve(socket);
- });
- socket.onClose((e2) => {
- clearTimeout(timer);
- resolve(null);
- });
- socket.onError((e2) => {
- clearTimeout(timer);
- resolve(null);
- });
- });
+ };
+ } else {
+ {
+ if (typeof index !== "undefined" && index.__f__) {
+ const oldLog = index.__f__;
+ if (oldLog) {
+ index.__f__ = function(...args) {
+ const [type, filename, ...rest] = args;
+ oldLog(type, "", ...rest);
+ sendConsoleMessages([formatMessage(type, [...rest, filename])]);
+ };
+ return function restoreConsole() {
+ index.__f__ = oldLog;
+ };
+ }
+ }
+ }
+ }
+ return function restoreConsole() {
+ };
+}
+function isConsoleWritable() {
+ const value = console.log;
+ const sym = Symbol();
+ try {
+ console.log = sym;
+ } catch (ex) {
+ return false;
+ }
+ const isWritable = console.log === sym;
+ console.log = value;
+ return isWritable;
}
let sendError = null;
const errorQueue = /* @__PURE__ */ new Set();
+const errorExtra = {};
function sendErrorMessages(errors) {
if (sendError == null) {
errors.forEach((error) => {
@@ -6817,30 +6882,38 @@ function sendErrorMessages(errors) {
});
return;
}
- sendError(JSON.stringify({
- type: "error",
- data: errors.map((err) => {
- const isPromiseRejection = err && "promise" in err && "reason" in err;
- const prefix = isPromiseRejection ? "UnhandledPromiseRejection: " : "";
- if (isPromiseRejection) {
- err = err.reason;
+ const data = errors.map((err) => {
+ const isPromiseRejection = err && "promise" in err && "reason" in err;
+ const prefix = isPromiseRejection ? "UnhandledPromiseRejection: " : "";
+ if (isPromiseRejection) {
+ err = err.reason;
+ }
+ if (err instanceof Error && err.stack) {
+ if (err.message && !err.stack.includes(err.message)) {
+ return `${prefix}${err.message}
+${err.stack}`;
}
- if (err instanceof Error && err.stack) {
- return prefix + err.stack;
+ return `${prefix}${err.stack}`;
+ }
+ if (typeof err === "object" && err !== null) {
+ try {
+ return prefix + JSON.stringify(err);
+ } catch (err2) {
+ return prefix + String(err2);
}
- if (typeof err === "object" && err !== null) {
- try {
- return prefix + JSON.stringify(err);
- } catch (err2) {
- return prefix + String(err2);
- }
- }
- return prefix + String(err);
- })
- }));
+ }
+ return prefix + String(err);
+ }).filter(Boolean);
+ if (data.length > 0) {
+ sendError(JSON.stringify(Object.assign({
+ type: "error",
+ data
+ }, errorExtra)));
+ }
}
-function setSendError(value) {
+function setSendError(value, extra = {}) {
sendError = value;
+ Object.assign(errorExtra, extra);
if (value != null && errorQueue.size > 0) {
const errors = Array.from(errorQueue);
errorQueue.clear();
@@ -6879,7 +6952,7 @@ function initOnError() {
function initRuntimeSocketService() {
const hosts = "192.168.2.36,127.0.0.1";
const port = "8090";
- const id = "mp-weixin_0XB_2U";
+ const id = "mp-weixin_gSgnR3";
const lazy = typeof swan !== "undefined";
let restoreError = lazy ? () => {
} : initOnError();
@@ -7041,6 +7114,15 @@ function findVmByVueId(instance, vuePid) {
}
}
}
+function getLocaleLanguage() {
+ let localeLanguage = "";
+ {
+ const appBaseInfo = wx.getAppBaseInfo();
+ const language = appBaseInfo && appBaseInfo.language ? appBaseInfo.language : LOCALE_EN;
+ localeLanguage = normalizeLocale(language) || LOCALE_EN;
+ }
+ return localeLanguage;
+}
const MP_METHODS = [
"createSelectorQuery",
"createIntersectionObserver",
@@ -7307,9 +7389,7 @@ function initAppLifecycle(appOptions, vm) {
}
}
function initLocale(appVm) {
- const locale = ref(
- normalizeLocale(wx.getAppBaseInfo().language) || LOCALE_EN
- );
+ const locale = ref(getLocaleLanguage());
Object.defineProperty(appVm, "$locale", {
get() {
return locale.value;
@@ -7823,6 +7903,7 @@ exports.e = e;
exports.f = f;
exports.index = index;
exports.n = n;
+exports.nextTick$1 = nextTick$1;
exports.o = o;
exports.onBeforeUnmount = onBeforeUnmount;
exports.onLoad = onLoad;
@@ -7831,5 +7912,7 @@ exports.onShow = onShow;
exports.p = p;
exports.ref = ref;
exports.s = s;
+exports.sr = sr;
exports.t = t;
+exports.unref = unref;
//# sourceMappingURL=../../.sourcemap/mp-weixin/common/vendor.js.map
diff --git a/unpackage/dist/dev/mp-weixin/component/rightItemsindex/index.js b/unpackage/dist/dev/mp-weixin/component/rightItemsindex/index.js
index 623241d..fbc27da 100644
--- a/unpackage/dist/dev/mp-weixin/component/rightItemsindex/index.js
+++ b/unpackage/dist/dev/mp-weixin/component/rightItemsindex/index.js
@@ -508,7 +508,7 @@ const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({
} : {
transform: `scale(1)`,
marginLeft: `0rpx`,
- marginTop: `-100rpx`
+ marginTop: `-89rpx`
}),
bQ: common_vendor.n(__props.darkFans ? `right-container-fir-left-card-dark` : `right-container-fir-left-card`),
bR: common_vendor.o(() => {
@@ -565,21 +565,18 @@ const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({
cw: common_vendor.n(__props.darkFans ? `time-people-font-dark` : `time-people-font`),
cx: common_vendor.n(`time-people-thi`),
cy: common_vendor.n(__props.darkFans ? `time-button-end-dark` : `time-button-end`),
- cz: common_vendor.s(isPopupVisiblefiropensec.value ? {
- marginTop: `50rpx`
- } : `{}`),
- cA: `/static/index/yiliao/project2.png`,
- cB: common_vendor.n(__props.darkFans ? `right-container-photo-text-dark` : `right-container-photo-text`),
- cC: common_vendor.n(`right-container-photo`),
- cD: __props.darkFans
+ cz: `/static/index/yiliao/project2.png`,
+ cA: common_vendor.n(__props.darkFans ? `right-container-photo-text-dark` : `right-container-photo-text`),
+ cB: common_vendor.n(`right-container-photo`),
+ cC: __props.darkFans
}, __props.darkFans ? {
- cE: `/static/index/cardbgc/leftlight.png`
+ cD: `/static/index/cardbgc/leftlight.png`
} : {}, {
- cF: common_vendor.s(__props.darkFans ? `background: linear-gradient(to top, rgba(0, 0, 0, 0) 0%, #386997 50%, rgba(0, 0, 0, 0) 100%);` : ``),
- cG: `/static/index/hulilist/shang.png`,
- cH: !__props.darkFans
+ cE: common_vendor.s(__props.darkFans ? `background: linear-gradient(to top, rgba(0, 0, 0, 0) 0%, #386997 50%, rgba(0, 0, 0, 0) 100%);` : ``),
+ cF: `/static/index/hulilist/shang.png`,
+ cG: !__props.darkFans
}, !__props.darkFans ? {
- cI: common_vendor.f(mediumList.value, (item, index, i0) => {
+ cH: common_vendor.f(mediumList.value, (item, index, i0) => {
return {
a: item.url,
b: common_vendor.t(item.name),
@@ -587,7 +584,10 @@ const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({
d: item.number !== 0,
e: index
};
- })
+ }),
+ cI: common_vendor.s(isPopupVisiblefiropensec.value ? {
+ height: `700rpx`
+ } : {})
} : {}, {
cJ: __props.darkFans
}, __props.darkFans ? {
@@ -604,12 +604,12 @@ const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({
cL: `/static/index/hulilist/xia.png`,
cM: common_vendor.s(isPopupVisiblefiropensec.value ? {
transform: `scale(1.5)`,
- marginLeft: ``,
- marginTop: `200rpx`
+ marginLeft: `-630rpx`,
+ marginTop: `650rpx`
} : {
transform: `scale(1)`,
marginLeft: `100rpx`,
- marginTop: `200rpx`
+ marginTop: `150rpx`
}),
cN: common_vendor.n(__props.darkFans ? `right-container-left-dark` : `right-container-left`),
cO: common_vendor.o(() => {
diff --git a/unpackage/dist/dev/mp-weixin/component/rightItemsindex/index.wxml b/unpackage/dist/dev/mp-weixin/component/rightItemsindex/index.wxml
index 1937489..d8a959b 100644
--- a/unpackage/dist/dev/mp-weixin/component/rightItemsindex/index.wxml
+++ b/unpackage/dist/dev/mp-weixin/component/rightItemsindex/index.wxml
@@ -1 +1 @@
- ID:12345678 名称:未命名01 王金福 切换到暗黑模式 取消暗黑模式 护理类待执行 准备洁具(口腔) 10:00 - 10:10 为老人提供口腔清洁器具,牙膏、牙刷及水杯,看护完成 单人执行 -- 开始服务 服务结束 {{item.b}}{{item.b}}{{U}}{{W}}{{Y}}23°C39%{{item.d}}{{item.d}}医疗类进行中 10:00 - 10:10 医嘱类型:药品 处置方式:肌肉注射 用药类型:抗生素类 执行方式:周期一日执行一次 单人执行 赵宇 开始服务 服务结束 脑膜炎(1/2) {{item.b}}{{item.b}}保洁类待执行 10:00 - 10:10 为老人提供口腔清洁器具,牙膏、牙刷及水杯,看护完成 单人执行 王金福 / 李贵田 开始服务 服务结束 更换纸尿裤 {{item.c}}
\ No newline at end of file
+ ID:12345678 名称:未命名01 王金福 切换到暗黑模式 取消暗黑模式 护理类待执行 准备洁具(口腔) 10:00 - 10:10 为老人提供口腔清洁器具,牙膏、牙刷及水杯,看护完成 单人执行 -- 开始服务 服务结束 {{item.b}}{{item.b}}{{U}}{{W}}{{Y}}23°C39%{{item.d}}{{item.d}}医疗类进行中 10:00 - 10:10 医嘱类型:药品 处置方式:肌肉注射 用药类型:抗生素类 执行方式:周期一日执行一次 单人执行 赵宇 开始服务 服务结束 脑膜炎(1/2) {{item.b}}{{item.b}}保洁类待执行 10:00 - 10:10 为老人提供口腔清洁器具,牙膏、牙刷及水杯,看护完成 单人执行 王金福 / 李贵田 开始服务 服务结束 更换纸尿裤 {{item.c}}
\ No newline at end of file
diff --git a/unpackage/dist/dev/mp-weixin/component/rightItemssecond/index.js b/unpackage/dist/dev/mp-weixin/component/rightItemssecond/index.js
index 96f828f..e7e4178 100644
--- a/unpackage/dist/dev/mp-weixin/component/rightItemssecond/index.js
+++ b/unpackage/dist/dev/mp-weixin/component/rightItemssecond/index.js
@@ -15,33 +15,58 @@ const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({
canmove: {
type: Boolean,
required: true
+ },
+ liang: {
+ type: Object
}
},
- emits: ["darkchange", "savename"],
- setup(__props, { emit: __emit }) {
+ emits: ["darkchange", "savename", "closename"],
+ setup(__props, { expose: __expose, emit: __emit }) {
const props = __props;
- const downList = common_vendor.ref([
- "口腔清洁啊",
- "头部清洁",
- "面部清洁",
- "躯干清洁",
- "四肢清洁",
- "会阴清洁",
- "肛周清洁",
- "手清洁",
- "足清洁",
- "剃须",
- "口腔清洁",
- "头部清洁",
- "面部清洁",
- "躯干清洁",
- "四肢清洁",
- "会阴清洁",
- "肛周清洁",
- "手清洁",
- "足清洁",
- "剃须"
+ common_vendor.onMounted(() => {
+ downList.value = bigArray[0].data;
+ });
+ const timeArray = [
+ `00`,
+ `05`,
+ `10`,
+ `15`,
+ `20`,
+ `25`,
+ `30`,
+ `35`,
+ `40`,
+ `45`,
+ `50`,
+ `55`
+ ];
+ const weekDays = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"];
+ const days = Array.from({ length: 31 }, (_, i) => (i + 1).toString().padStart(2, "0"));
+ const isweek = common_vendor.ref(true);
+ const scrollTop = common_vendor.ref(0);
+ const downList = common_vendor.ref();
+ const rightList = common_vendor.ref([
+ // "三分段",
+ // "四分段",
]);
+ const isopen = common_vendor.ref(false);
+ const songisopen = common_vendor.ref(false);
+ const isopacity = common_vendor.ref(false);
+ const songisopacity = common_vendor.ref(false);
+ const currentNumber = common_vendor.ref(1);
+ const changecurrentNumber = (event) => {
+ currentNumber.value = event.detail.current;
+ };
+ const getClass = (item, index0, index1) => {
+ if (!props.canmove && props.liang.index0 === index0 && props.liang.index1 === index1) {
+ return "super-card-time-card-blue";
+ } else if (item.type === "日常") {
+ return "super-card-time-card-yellow";
+ } else if (item.type) {
+ return "super-card-time-card-pouple";
+ }
+ return "super-card-time-card";
+ };
const undericonList = common_vendor.ref([
{ url: "/static/index/undericons/alarm.png", targetUrl: "/static/index/undericons/alarmdark.png", name: "服务考核" },
{ url: "/static/index/undericons/linshitime.png", targetUrl: "/static/index/undericons/linshitimedark.png", name: "护理流程" },
@@ -54,36 +79,936 @@ const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({
{ url: "/static/index/doctorsay/light/clean.png", targetUrl: "/static/index/doctorsay/dark/clean.png", name: "清洁" },
{ url: "/static/index/doctorsay/light/drink.png", targetUrl: "/static/index/doctorsay/dark/drink.png", name: "饮食" },
{ url: "/static/index/doctorsay/light/bed.png", targetUrl: "/static/index/doctorsay/dark/bed.png", name: "睡眠" },
- { url: "/static/index/doctorsay/light/shi.png", targetUrl: "/static/index/doctorsay/dark/shi.png", name: "排便" },
+ { url: "/static/index/doctorsay/light/shi.png", targetUrl: "/static/index/doctorsay/dark/shi.png", name: "排泻" },
{ url: "/static/index/doctorsay/light/use.png", targetUrl: "/static/index/doctorsay/dark/use.png", name: "日常" }
]);
+ const rightListIndex = common_vendor.ref(1);
const undermenuIndex = common_vendor.ref(0);
const upmenuIndex = common_vendor.ref(0);
- const downmenuIndex = common_vendor.ref(0);
+ const downmenuIndex = common_vendor.ref(999);
common_vendor.ref(false);
common_vendor.ref([]);
const emit = __emit;
const darkFanschange = () => {
emit("darkchange", !props.darkFans);
};
+ const changLeft = (index) => {
+ upmenuIndex.value = index;
+ downList.value = bigArray[index].data;
+ downmenuIndex.value = 999;
+ };
const changeMenuUnder = (index) => {
undermenuIndex.value = index;
};
- const timer = common_vendor.ref(null);
- const handleTouchStart = (item, index) => {
- timer.value = setTimeout(() => {
- downmenuIndex.value = index;
- emit("savename", item);
- }, 500);
+ const rightListClick = (index) => {
+ rightListIndex.value = index;
};
- const handleTouchEnd = () => {
+ const timer = common_vendor.ref(null);
+ common_vendor.ref({});
+ const moveX = common_vendor.ref(0);
+ const moveY = common_vendor.ref(0);
+ const openX = common_vendor.ref(0);
+ const openY = common_vendor.ref(0);
+ const flyNumber = common_vendor.ref({
+ index0: 999,
+ index1: 999
+ });
+ const rulerTouchStart = (item, index0, index1, e) => {
+ moveX.value = Math.floor(e.touches[0].pageX);
+ moveY.value = Math.floor(e.touches[0].pageY);
+ timer.value = setTimeout(() => {
+ if (item.value) {
+ flyNumber.value.index0 = index0 + currentNumber.value * 6;
+ flyNumber.value.index1 = index1;
+ const query = common_vendor.index.createSelectorQuery();
+ query.selectAll(".super-card-time-card, .super-card-time-card-yellow, .super-card-time-card-pouple").boundingClientRect((data) => {
+ data.forEach(async (res) => {
+ if (res.left > 200 && res.left < 1067 && res.top < 500 && res.top > 190 && res.dataset.index0 == index0 && res.dataset.index1 == index1) {
+ openX.value = Math.floor(res.left);
+ openY.value = Math.floor(res.top);
+ await common_vendor.nextTick$1();
+ isopen.value = true;
+ isopacity.value = false;
+ setTimeout(() => {
+ isopacity.value = true;
+ }, 100);
+ }
+ });
+ }).exec();
+ }
+ }, 200);
+ };
+ const rulerTouchMove = (e) => {
+ const moveXa = Math.floor(e.touches[0].pageX);
+ const moveYa = Math.floor(e.touches[0].pageY);
+ if (Math.abs(moveXa - moveX.value) > 0 || Math.abs(moveYa - moveY.value) > 0) {
+ if (timer.value) {
+ clearTimeout(timer.value);
+ timer.value = null;
+ }
+ }
+ };
+ const rulerTouchEnd = () => {
if (timer.value) {
clearTimeout(timer.value);
timer.value = null;
}
};
+ const deleteRuler = (index0, index1) => {
+ timearr.value[index0].children[index1].value = "";
+ timearr.value[index0].children[index1].time = "";
+ timearr.value[index0].children[index1].type = "";
+ isopen.value = false;
+ flyNumber.value.index0 = 999;
+ flyNumber.value.index1 = 999;
+ };
+ const longPressTimer = common_vendor.ref(null);
+ const isScrolling = common_vendor.ref(false);
+ let scrollTimeout = null;
+ function handleScroll(e) {
+ isScrolling.value = true;
+ if (scrollTimeout)
+ clearTimeout(scrollTimeout);
+ scrollTimeout = setTimeout(() => {
+ isScrolling.value = false;
+ }, 400);
+ }
+ const isBack = common_vendor.ref(false);
+ const saveX = common_vendor.ref(0);
+ const saveY = common_vendor.ref(0);
+ const handleTouchStart = (item, index, e) => {
+ saveX.value = Math.floor(e.touches[0].pageX);
+ saveY.value = Math.floor(e.touches[0].pageY);
+ longPressTimer.value = setTimeout(() => {
+ if (isScrolling.value)
+ return;
+ isBack.value = true;
+ downmenuIndex.value = index;
+ indexsave.value = [-1, -1];
+ const reldata = [];
+ const query = common_vendor.index.createSelectorQuery();
+ query.selectAll(".super-card-time-card, .super-card-time-card-yellow, .super-card-time-card-pouple").boundingClientRect((data) => {
+ data.forEach((res) => {
+ if (res.left > 200 && res.left < 1067 && res.top < 500 && res.top > 190) {
+ reldata.push(res);
+ }
+ });
+ }).exec();
+ emit("savename", item, reldata);
+ }, 200);
+ };
+ const handleTouchMove = (e) => {
+ const moveX2 = Math.floor(e.touches[0].pageX);
+ const moveY2 = Math.floor(e.touches[0].pageY);
+ if (Math.abs(moveX2 - saveX.value) > 0 || Math.abs(moveY2 - saveY.value) > 0) {
+ if (longPressTimer.value) {
+ clearTimeout(longPressTimer.value);
+ longPressTimer.value = null;
+ }
+ }
+ };
+ const handleTouchEnd = () => {
+ if (longPressTimer.value) {
+ clearTimeout(longPressTimer.value);
+ longPressTimer.value = null;
+ }
+ };
+ const openValue = common_vendor.ref({
+ time: "",
+ array: []
+ });
+ const cardsumit = common_vendor.ref({
+ op: {
+ name: "",
+ index: [-1, -1, -1]
+ },
+ startTime: "",
+ monthTime: "",
+ weekTime: ""
+ });
+ const clickOp = (index, name) => {
+ if (cardsumit.value.op[2] === index) {
+ cardsumit.value.op[2] = -1;
+ cardsumit.value.op.name = "";
+ } else {
+ cardsumit.value.op[2] = index;
+ cardsumit.value.op.name = name;
+ }
+ };
+ const clickTime = (index) => {
+ if (cardsumit.value.startTime == index) {
+ cardsumit.value.startTime = "";
+ } else {
+ cardsumit.value.startTime = index;
+ }
+ };
+ const clickweek = (index) => {
+ if (cardsumit.value.weekTime == index) {
+ cardsumit.value.weekTime = "";
+ } else {
+ cardsumit.value.weekTime = index;
+ }
+ };
+ const clickmonth = (index) => {
+ if (cardsumit.value.monthTime == index) {
+ cardsumit.value.monthTime = "";
+ } else {
+ cardsumit.value.monthTime = index;
+ }
+ };
+ const indexsave = common_vendor.ref([-1, -1]);
+ const rulerEnd = async (res) => {
+ isBack.value = false;
+ if (props.liang.index0 !== 999 && res) {
+ cardsumit.value = {
+ op: {
+ name: "",
+ index: [-1, -1, -1]
+ },
+ startTime: "",
+ monthTime: "",
+ weekTime: ""
+ };
+ songisopacity.value = false;
+ songisopen.value = true;
+ setTimeout(() => {
+ songisopacity.value = true;
+ }, 200);
+ cardsumit.value.op[0] = upmenuIndex.value;
+ cardsumit.value.op[1] = downmenuIndex.value;
+ openValue.value.time = timearr.value[props.liang.index0 + currentNumber.value * 6].time;
+ openValue.value.array = bigArray[upmenuIndex.value].data[downmenuIndex.value].data;
+ indexsave.value = [props.liang.index0 + currentNumber.value * 6, props.liang.index1];
+ }
+ };
+ const movetoruler = async () => {
+ songisopen.value = false;
+ timearr.value[indexsave.value[0]].children[indexsave.value[1]].value = cardsumit.value.op.name;
+ timearr.value[indexsave.value[0]].children[indexsave.value[1]].type = "日常";
+ const startHour = Number(openValue.value.time);
+ const startMinute = Number(cardsumit.value.startTime);
+ const endMinute = startMinute + 10;
+ const endHour = startHour + Math.floor(endMinute / 60);
+ const formattedStart = `${String(startHour)}:${String(startMinute)}`;
+ const formattedEnd = `${String(endHour)}:${String(endMinute % 60)}`;
+ timearr.value[indexsave.value[0]].children[indexsave.value[1]].time = `${formattedStart}-${formattedEnd}`;
+ const shouldAdd = timearr.value.some((obj) => {
+ const children = obj.children;
+ return children[children.length - 1].value.trim() !== "";
+ });
+ if (shouldAdd) {
+ timearr.value.forEach((obj) => {
+ obj.children.push({ value: "" });
+ });
+ scrollTop.value = 999;
+ await common_vendor.nextTick$1();
+ scrollTop.value = 9999;
+ }
+ };
+ __expose({
+ rulerEnd
+ });
+ common_vendor.ref({
+ index0: 999,
+ index1: 999
+ });
+ const timearr = common_vendor.ref([
+ {
+ time: "00",
+ children: [
+ { value: "A" },
+ { value: "" },
+ { value: "" },
+ { value: "B" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" }
+ ]
+ },
+ {
+ time: "01",
+ children: [
+ { value: "" },
+ { value: "" },
+ { value: "C" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "D" },
+ { value: "" }
+ ]
+ },
+ {
+ time: "02",
+ children: [
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "E" },
+ { value: "" },
+ { value: "" }
+ ]
+ },
+ {
+ time: "03",
+ children: [
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" }
+ ]
+ },
+ {
+ time: "04",
+ children: [
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "F" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" }
+ ]
+ },
+ {
+ time: "05",
+ children: [
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "G" },
+ { value: "" }
+ ]
+ },
+ {
+ time: "06",
+ children: [
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" }
+ ]
+ },
+ {
+ time: "07",
+ children: [
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "H" },
+ { value: "" },
+ { value: "" },
+ { value: "" }
+ ]
+ },
+ {
+ time: "08",
+ children: [
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" }
+ ]
+ },
+ {
+ time: "09",
+ children: [
+ {
+ value: "四肢清洁",
+ type: "日常",
+ time: "9:00-9:30"
+ },
+ {
+ value: "指甲",
+ type: "周一",
+ time: "9:00-9:33"
+ },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" }
+ ]
+ },
+ {
+ time: "10",
+ children: [
+ { value: "ccc" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" }
+ ]
+ },
+ {
+ time: "11",
+ children: [
+ { value: "aaa" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" }
+ ]
+ },
+ {
+ time: "12",
+ children: [
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "J" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" }
+ ]
+ },
+ {
+ time: "13",
+ children: [
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "K" },
+ { value: "" }
+ ]
+ },
+ {
+ time: "14",
+ children: [
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" }
+ ]
+ },
+ {
+ time: "15",
+ children: [
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "L" },
+ { value: "" },
+ { value: "" },
+ { value: "" }
+ ]
+ },
+ {
+ time: "16",
+ children: [
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" }
+ ]
+ },
+ {
+ time: "17",
+ children: [
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "xxx" },
+ { value: "" }
+ ]
+ },
+ {
+ time: "18",
+ children: [
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" }
+ ]
+ },
+ {
+ time: "19",
+ children: [
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" }
+ ]
+ },
+ {
+ time: "20",
+ children: [
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" }
+ ]
+ },
+ {
+ time: "21",
+ children: [
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" }
+ ]
+ },
+ {
+ time: "22",
+ children: [
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" },
+ { value: "" }
+ ]
+ },
+ {
+ time: "23",
+ children: [
+ { value: "1" },
+ { value: "" },
+ { value: "3" },
+ { value: "" },
+ { value: "" },
+ { value: "e" },
+ { value: "" },
+ { value: "" }
+ ]
+ }
+ ]);
+ const bigArray = [
+ {
+ "type": "清洁照料",
+ "data": [
+ {
+ "type": "口腔清洁",
+ "data": [
+ { "type": "准备洁具(口腔)", "data": "为老人提供口腔清洁器具,牙膏牙刷及水杯.看护完成" },
+ { "type": "协助清洁(口腔)", "data": "准备水杯.牙刷牙膏.纸巾.协助完成清洁." },
+ { "type": "义齿清洁(口腔)", "data": "准备凉开水浸泡.取下流水冲洗.盐水棉球擦拭口腔.漱口.水.协助清洁" },
+ { "type": "棉球清洁(口腔)", "data": "准备好盐水棉球.镊子.止血钳.压舌板.垫巾.手电筒.完成清洁" }
+ ]
+ },
+ {
+ "type": "头部清洁",
+ "data": [
+ { "type": "准备洁具(头部)", "data": "准备温水.一次性面巾.洗发水.清洗头部." },
+ { "type": "协助洗头", "data": "准备温水.毛巾.洗发水.清洗头部.擦干头部." },
+ { "type": "卧式洗头", "data": "" },
+ { "type": "擦头", "data": "" },
+ { "type": "刮头", "data": "" }
+ ]
+ },
+ {
+ "type": "面部清洁",
+ "data": [
+ { "type": "准备洁具(面部)", "data": "" },
+ { "type": "协助洁面", "data": "准备温水.一次性面巾.洁面乳.清洁面部.涂抹面霜.棉签擦拭耳朵.鼻孔." }
+ ]
+ },
+ {
+ "type": "躯干清洁",
+ "data": [
+ { "type": "准备洁具(躯干)", "data": "准备温水.一次性面巾.香皂.换洗衣物.清洁皮肤.完成后涂抹身体保湿乳." },
+ { "type": "协助清洁(躯干)", "data": "" },
+ { "type": "卧床清洁(躯干)", "data": "" }
+ ]
+ },
+ {
+ "type": "四肢清洁",
+ "data": [
+ { "type": "准备洁具(四肢)", "data": "" },
+ { "type": "协助清洁(四肢)", "data": "准备温水.一次性面巾.香皂.清洁后涂抹身体保湿乳." },
+ { "type": "卧床清洁(四肢)", "data": "" },
+ { "type": "肌张力高(清洁)", "data": "准备温水.一次性面巾.香皂.清洁后涂抹身体保湿乳." }
+ ]
+ },
+ {
+ "type": "会阴清洁",
+ "data": [
+ { "type": "会阴清洁(男)", "data": "准备手套.盐水棉球.碘伏棉球.干棉球.环形完成清洁" },
+ { "type": "会阴清洁(女)", "data": "准备手套.碘伏棉球.盐水棉球.干棉球.纵向完成擦拭" }
+ ]
+ },
+ {
+ "type": "肛周清洁",
+ "data": [
+ { "type": "肛周清洁", "data": "准备手套.碘伏棉球.盐水棉球.干棉球完成清洁" }
+ ]
+ },
+ {
+ "type": "手清洁",
+ "data": [
+ { "type": "洗手", "data": "" },
+ { "type": "泡手", "data": "准备温水水盆.洗手液.一次性面巾.清洁后涂抹润手霜" },
+ { "type": "准备洁具", "data": "" },
+ { "type": "协助洗手", "data": "" },
+ { "type": "强直屈曲洗手", "data": "" }
+ ]
+ },
+ {
+ "type": "足清洁",
+ "data": [
+ { "type": "泡脚", "data": "准备温水水盆.毛巾完成清洁后涂抹保湿乳" },
+ { "type": "卧式泡脚", "data": "" }
+ ]
+ },
+ {
+ "type": "剃须",
+ "data": [
+ { "type": "修睫毛", "data": "" },
+ { "type": "剃须", "data": "准备剃须液.剃须刀.一次性面巾.温水.协助剃须" }
+ ]
+ },
+ {
+ "type": "修甲",
+ "data": [
+ { "type": "角质增生(修甲)", "data": "准备指甲刀.纸巾.进行修剪" },
+ { "type": "灰指甲(修甲)", "data": "准备专用指甲刀.纸巾.盐水棉球.进行修剪" },
+ { "type": "正常(修甲)", "data": "准备指甲刀.纸巾.进行修剪" }
+ ]
+ },
+ {
+ "type": "理发",
+ "data": [
+ { "type": "理发", "data": "准备围巾.推子理发后.温水清洗." },
+ { "type": "理发(颅骨缺损)", "data": "" }
+ ]
+ },
+ {
+ "type": "沐浴",
+ "data": [
+ { "type": "床上沐浴", "data": "准备温水.一次性毛巾.香皂.洗发水.身体保湿乳协助清洗." },
+ { "type": "深度清洁", "data": "准备温水.一次性面巾.洗发水.香皂.棉签.指甲刀.身体保湿乳.盐水棉球.完成清洁" },
+ { "type": "浴间洗浴", "data": "准备平车.换洗衣物.浴巾.洗发水.澡巾.香皂.被子.完成清洁" },
+ { "type": "床上沐浴(大体重)", "data": "" },
+ { "type": "深度清洁(大体重)", "data": "" },
+ { "type": "浴间洗浴(大体重)", "data": "" }
+ ]
+ },
+ {
+ "type": "气切消毒",
+ "data": [
+ { "type": "内套管清洁", "data": "" },
+ { "type": "更换气切纱布", "data": "" }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "饮食照料",
+ "data": [
+ {
+ "type": "正餐饮食",
+ "data": [
+ { "type": "准备餐具", "data": "按需床头摇起" },
+ { "type": "协助进餐(正常)", "data": "按需床头摇起" },
+ { "type": "协助进餐(超时)", "data": "按需床头摇起" },
+ { "type": "鼻胃管进餐", "data": "床头摇起45度角" },
+ { "type": "鼻肠管进餐", "data": "床头摇起45度角" },
+ { "type": "轮椅进餐", "data": "" },
+ { "type": "轮椅进餐(大体重)", "data": "" }
+ ]
+ },
+ {
+ "type": "辅餐饮食",
+ "data": [
+ { "type": "准备餐具", "data": "按需床头摇起" },
+ { "type": "协助进餐(正常)", "data": "按需床头摇起" },
+ { "type": "协助进餐(超时)", "data": "按需床头摇起" },
+ { "type": "鼻胃管进餐", "data": "床头摇起45度角" },
+ { "type": "鼻肠管进餐", "data": "床头摇起45度角" }
+ ]
+ },
+ {
+ "type": "果汁饮食",
+ "data": [
+ { "type": "准备餐具", "data": "按需床头摇起" },
+ { "type": "协助进餐(正常)", "data": "按需床头摇起" },
+ { "type": "协助进餐(超时)", "data": "按需床头摇起" },
+ { "type": "鼻胃管进餐", "data": "床头摇起45度角" },
+ { "type": "鼻肠管进餐", "data": "床头摇起45度角" }
+ ]
+ },
+ {
+ "type": "饮水饮食",
+ "data": [
+ { "type": "吸管喂药", "data": "" },
+ { "type": "准备水杯", "data": "" },
+ { "type": "协助饮水", "data": "" },
+ { "type": "协助饮水(超时)", "data": "" },
+ { "type": "鼻胃管饮水", "data": "床头摇起45度角" },
+ { "type": "鼻肠管饮水", "data": "床头摇起45度角" },
+ { "type": "准备水杯", "data": "按需床头摇起" },
+ { "type": "协助饮水", "data": "按需床头摇起" },
+ { "type": "协助饮水(超时)", "data": "按需床头摇起" },
+ { "type": "鼻胃管饮水", "data": "" },
+ { "type": "鼻肠管饮水", "data": "" }
+ ]
+ },
+ {
+ "type": "加餐饮食",
+ "data": [
+ { "type": "准备餐具", "data": "" },
+ { "type": "协助进餐", "data": "" },
+ { "type": "协助进餐(超时)", "data": "" },
+ { "type": "鼻胃管进餐", "data": "" },
+ { "type": "胃肠管进餐", "data": "" },
+ { "type": "准备餐具", "data": "" },
+ { "type": "协助进餐", "data": "" },
+ { "type": "协助进餐(超时)", "data": "" },
+ { "type": "鼻胃管进餐", "data": "" },
+ { "type": "胃肠管进餐", "data": "" },
+ { "type": "食物加工", "data": "" }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "睡眠照料",
+ "data": [
+ {
+ "type": "巡视",
+ "data": [
+ { "type": "巡视", "data": "巡视中.避免说话.走路轻." },
+ { "type": "体位调整", "data": "巡视过程中发现老人体位不正确或踢蹬被褥,进行体位调整和盖被褥" }
+ ]
+ },
+ {
+ "type": "体位调整",
+ "data": [
+ { "type": "防坠床", "data": "" },
+ { "type": "被褥调整", "data": "老人踢蹬被褥,调成被褥" },
+ { "type": "睡姿调整", "data": "" }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "排泄照料",
+ "data": [
+ {
+ "type": "小便",
+ "data": [
+ { "type": "更换尿袋", "data": "准备尿袋一次性面巾.温水.进行操作" },
+ { "type": "更换隔尿垫", "data": "准备尿片.尿裤.温水.一次性面巾.进行操作" },
+ { "type": "使用尿盆", "data": "准备尿盆.温水.一次性面巾进行操作" },
+ { "type": "使用尿壶", "data": "准备尿壶.温水.一次性面巾.协助操作" },
+ { "type": "协助入厕", "data": "准备轮椅.推至卫生间.协助如厕" },
+ { "type": "坐便椅", "data": "准备坐便椅.手纸.床椅转移.协助如厕" },
+ { "type": "留置尿袋", "data": "准备尿液指定容器夹闭尿管.将.尿液倒出后.关闭开关." },
+ { "type": "更换纸尿裤", "data": "" },
+ { "type": "热敷抚触排尿", "data": "" },
+ { "type": "协助坐便椅", "data": "" },
+ { "type": "更换尿片", "data": "" }
+ ]
+ },
+ {
+ "type": "大便",
+ "data": [
+ { "type": "床上排便", "data": "准备尿片.尿裤.温水.一次性面巾.手纸.进行操作" },
+ { "type": "协助坐便椅", "data": "准备坐便椅.手纸." },
+ { "type": "协助入厕", "data": "准备轮椅" },
+ { "type": "人工取便", "data": "准备排便手套.开塞露.温水.一次性面巾.手纸.尿片.尿裤." },
+ { "type": "造瘘袋", "data": "准备手套.便器.温水." },
+ { "type": "坐便椅", "data": "" }
+ ]
+ },
+ {
+ "type": "吸痰",
+ "data": [
+ { "type": "口腔吸痰", "data": "准备吸痰器.吸痰管.泡管液.冲管水.盐水棉球.纱布.完成吸痰" },
+ { "type": "气切吸痰", "data": "准备吸痰器.吸痰管.冲管水.泡管液.纱布块.完成操作" }
+ ]
+ },
+ {
+ "type": "呕吐",
+ "data": [
+ { "type": "呕吐", "data": "准备换洗衣物.被褥.吸痰器.吸痰管.冲管水.漱口水.纱布.完成操作." }
+ ]
+ },
+ {
+ "type": "引流",
+ "data": [
+ { "type": "腹腔引流护理", "data": "" }
+ ]
+ }
+ ]
+ },
+ {
+ "type": "日常照料",
+ "data": [
+ {
+ "type": "协助喂药",
+ "data": [
+ { "type": "协助喂药", "data": "准备好服用药物.温水.看护服用" },
+ { "type": "鼻饲喂药", "data": "床头摇起45度角,准备温水.灌注器.药物.匀速灌注." },
+ { "type": "注射器/吸管喂药", "data": "" }
+ ]
+ },
+ {
+ "type": "床椅转移",
+ "data": [
+ { "type": "床椅转移", "data": "准备轮椅.换好衣物手纸.水杯.食物.进行转移" },
+ { "type": "床椅转移(大体重)", "data": "" },
+ { "type": "协助床椅转移", "data": "" }
+ ]
+ },
+ {
+ "type": "压疮防护",
+ "data": [
+ { "type": "一级压疮防护", "data": "准备好体位垫.整理好衣物.进行翻身.扣背" },
+ { "type": "二级压疮防护", "data": "翻身扣背垫枕开始操作" },
+ { "type": "三级压疮防护", "data": "带压疮翻身扣背垫枕.进行操作" },
+ { "type": "一级压疮防护(大体重)", "data": "" },
+ { "type": "二级压疮防护(大体重)", "data": "" },
+ { "type": "三级压疮防护(大体重)", "data": "" }
+ ]
+ },
+ {
+ "type": "轮椅防护",
+ "data": [
+ { "type": "轮椅防护", "data": "准备好安全带.坐垫.1小内将长者抬起.放松肌肉." },
+ { "type": "轮椅防护(大体重)", "data": "" },
+ { "type": "轮椅防护", "data": "" },
+ { "type": "床椅转移(大体重)", "data": "" }
+ ]
+ },
+ {
+ "type": "约束防护",
+ "data": [
+ { "type": "约束位按摩(手)", "data": "约束位置用约束手套或束缚带.2小时.解开.放松." },
+ { "type": "约束位按摩(足)", "data": "使用约束带.约束位置2小时按摩.用温水清洁." },
+ { "type": "约束位按摩(全)", "data": "约束位置2小时放松.清洗." },
+ { "type": "防护网约束", "data": "通过防护网对老人进行约束看护" }
+ ]
+ },
+ {
+ "type": "按摩保健",
+ "data": [
+ { "type": "协助行走", "data": "准备舒适鞋子.水杯.手纸.协助行走" },
+ { "type": "放松按摩", "data": "手法放松.舒筋活血." },
+ { "type": "心灵慰藉", "data": "陪同倾听.肢体放松.互动.安抚." },
+ { "type": "躁狂", "data": "针对躁狂老人的狂燥期,发出喊叫,敲打等动作的忍受服务" }
+ ]
+ },
+ {
+ "type": "更换衣物",
+ "data": [
+ { "type": "准备衣物", "data": "准备舒适衣裤" },
+ { "type": "协助更换", "data": "" },
+ { "type": "肢体障碍(半侧)", "data": "" },
+ { "type": "肢体障碍(全身)", "data": "" },
+ { "type": "准备衣物", "data": "" },
+ { "type": "协助更换", "data": "" },
+ { "type": "肢体障碍(半侧)", "data": "" },
+ { "type": "肢体障碍(全身)", "data": "" },
+ { "type": "协助更换(大体重)", "data": "" },
+ { "type": "肢体障碍(半侧)(大体重)", "data": "" },
+ { "type": "肢体障碍(全测)(大体重)", "data": "" },
+ { "type": "肢体障碍(半测)(大体重)", "data": "" }
+ ]
+ },
+ {
+ "type": "调整坐卧",
+ "data": [
+ { "type": "坐起", "data": "为老人调整床位60度角" },
+ { "type": "躺下", "data": "为老人调整床位180度角" }
+ ]
+ },
+ {
+ "type": "殡仪服务",
+ "data": [
+ { "type": "遗体净身", "data": "" },
+ { "type": "遗体穿衣", "data": "" },
+ { "type": "遗体转移", "data": "" },
+ { "type": "床位消毒", "data": "" }
+ ]
+ },
+ {
+ "type": "换床上用品",
+ "data": [
+ { "type": "更换床上用品(全部)", "data": "" },
+ { "type": "隔尿褥子更换", "data": "" }
+ ]
+ },
+ {
+ "type": "临终服务",
+ "data": [
+ { "type": "临终护理", "data": "" }
+ ]
+ },
+ {
+ "type": "制氧机应用",
+ "data": [
+ { "type": "制氧机吸氧", "data": "制氧机吸氧" },
+ { "type": "制氧机维护", "data": "制氧机维护,清洁维护,更换湿化瓶" }
+ ]
+ }
+ ]
+ }
+ ];
return (_ctx, _cache) => {
- return {
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p;
+ return common_vendor.e({
a: common_vendor.n(__props.darkFans ? `right-container-title-no-dark` : `right-container-title-no`),
b: common_vendor.n(__props.darkFans ? `right-container-title-no-dark` : `right-container-title-no`),
c: `/static/index/undericons/man.png`,
@@ -110,21 +1035,97 @@ const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({
backgroundColor: `#0184db`
} : {}),
e: index,
- f: common_vendor.o(($event) => upmenuIndex.value = index, index)
+ f: common_vendor.o(($event) => changLeft(index), index)
};
}),
o: common_vendor.f(downList.value, (item, index, i0) => {
return {
- a: downmenuIndex.value === index,
- b: common_vendor.t(item),
- c: common_vendor.n(downmenuIndex.value === index ? `doctorsay-container-text-target` : `doctorsay-container-text`),
- d: index,
- e: common_vendor.o(($event) => handleTouchStart(item, index), index),
- f: common_vendor.o(handleTouchEnd, index)
+ a: common_vendor.t(item.type),
+ b: common_vendor.n(downmenuIndex.value === index ? `doctorsay-container-text-target` : `doctorsay-container-text`),
+ c: downmenuIndex.value === index,
+ d: common_vendor.o(($event) => handleTouchStart(item.type, index, $event), index),
+ e: common_vendor.o(handleTouchMove, index),
+ f: common_vendor.o(handleTouchEnd, index),
+ g: index
};
}),
- p: __props.canmove,
- q: common_vendor.f(undericonList.value, (item, index, i0) => {
+ p: common_vendor.s(isBack.value ? {} : {
+ width: `250rpx`,
+ height: `75rpx`,
+ fontSize: `30rpx`,
+ borderRadius: `10rpx`
+ }),
+ q: common_vendor.s(isBack.value ? {} : {
+ top: "30rpx"
+ }),
+ r: `/static/index/cardicons/uplight.png`,
+ s: __props.canmove,
+ t: common_vendor.o(handleScroll),
+ v: common_vendor.f(rightList.value, (item, index, i0) => {
+ return {
+ a: common_vendor.t(item),
+ b: common_vendor.n(rightListIndex.value === index ? `doctorsay-container-button-target` : `doctorsay-container-button`),
+ c: common_vendor.o(($event) => rightListClick(index), index),
+ d: index
+ };
+ }),
+ w: common_vendor.f([1, 2, 3, 4], (item, index, i0) => {
+ return {
+ a: common_vendor.f(timearr.value.slice(index * 6, (index + 1) * 6), (item0, index0, i1) => {
+ return {
+ a: common_vendor.t(item0.time),
+ b: index0
+ };
+ }),
+ b: common_vendor.f(timearr.value.slice(index * 6, (index + 1) * 6), (item0, index0, i1) => {
+ return {
+ a: common_vendor.f(item0.children, (item1, index1, i2) => {
+ return {
+ a: common_vendor.t(item1.time),
+ b: common_vendor.t(item1.type),
+ c: common_vendor.s(item1.type == "日常" ? {
+ color: `#4A2E00`
+ } : {
+ backgroundColor: `#7B61FF`,
+ color: `#fff`
+ }),
+ d: item1.time,
+ e: common_vendor.t(item1.value),
+ f: common_vendor.n(getClass(item1, index0, index1)),
+ g: `a${index0}_${index1}`,
+ h: common_vendor.o(($event) => rulerTouchStart(item1, index0, index1, $event), index1),
+ i: common_vendor.o(rulerTouchMove, index1),
+ j: common_vendor.o(($event) => rulerTouchEnd(), index1),
+ k: index1,
+ l: index1
+ };
+ }),
+ b: index0,
+ c: index0
+ };
+ }),
+ c: index
+ };
+ }),
+ x: common_vendor.s(rightListIndex.value ? {
+ width: "275rpx"
+ } : {
+ width: "206rpx"
+ }),
+ y: common_vendor.s(rightListIndex.value ? {
+ width: "275rpx"
+ } : {
+ width: "206rpx"
+ }),
+ z: scrollTop.value,
+ A: common_vendor.s(rightListIndex.value ? {
+ width: "6700rpx"
+ } : {
+ width: "5000rpx"
+ }),
+ B: currentNumber.value,
+ C: common_vendor.o(changecurrentNumber),
+ D: common_vendor.f(undericonList.value, (item, index, i0) => {
return {
a: index === undermenuIndex.value,
b: index === undermenuIndex.value ? item.targetUrl : item.url,
@@ -133,14 +1134,86 @@ const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({
e: common_vendor.o(($event) => changeMenuUnder(index), index)
};
}),
- r: common_assets._imports_0$1,
- s: common_vendor.n(__props.darkFans ? `under-father-img-font-dark` : `under-father-img-font`),
- t: common_vendor.s(__props.isshow ? {
+ E: common_assets._imports_0$1,
+ F: common_vendor.n(__props.darkFans ? `under-father-img-font-dark` : `under-father-img-font`),
+ G: `/static/index/teeth.png`,
+ H: common_vendor.t((_b = (_a = timearr.value[flyNumber.value.index0]) == null ? void 0 : _a.children[flyNumber.value.index1]) == null ? void 0 : _b.value),
+ I: ((_d = (_c = timearr.value[flyNumber.value.index0]) == null ? void 0 : _c.children[flyNumber.value.index1]) == null ? void 0 : _d.type) === "日常"
+ }, ((_f = (_e = timearr.value[flyNumber.value.index0]) == null ? void 0 : _e.children[flyNumber.value.index1]) == null ? void 0 : _f.type) === "日常" ? {} : {}, {
+ J: ((_h = (_g = timearr.value[flyNumber.value.index0]) == null ? void 0 : _g.children[flyNumber.value.index1]) == null ? void 0 : _h.type) !== "日常"
+ }, ((_j = (_i = timearr.value[flyNumber.value.index0]) == null ? void 0 : _i.children[flyNumber.value.index1]) == null ? void 0 : _j.type) !== "日常" ? {
+ K: common_vendor.t((_l = (_k = timearr.value[flyNumber.value.index0]) == null ? void 0 : _k.children[flyNumber.value.index1]) == null ? void 0 : _l.type)
+ } : {}, {
+ L: ((_n = (_m = timearr.value[flyNumber.value.index0]) == null ? void 0 : _m.children[flyNumber.value.index1]) == null ? void 0 : _n.type) === "日常" ? `/static/index/crushyellow.png` : `/static/index/crushpouple.png`,
+ M: common_vendor.o(($event) => deleteRuler(flyNumber.value.index0, flyNumber.value.index1)),
+ N: 2 * openY.value - 350 + "rpx",
+ O: 2 * openX.value - 780 + "rpx",
+ P: isopacity.value ? 1 : 0,
+ Q: ((_p = (_o = timearr.value[flyNumber.value.index0]) == null ? void 0 : _o.children[flyNumber.value.index1]) == null ? void 0 : _p.type) === "日常" ? "rgb(255, 250, 241)" : "rgb(246, 244, 254)",
+ R: common_vendor.o(() => {
+ }),
+ S: isopen.value,
+ T: common_vendor.o(($event) => {
+ isopen.value = false;
+ flyNumber.value.index0 = 999;
+ }),
+ U: songisopen.value
+ }, songisopen.value ? {
+ V: common_assets._imports_1,
+ W: common_vendor.t(openValue.value.time + ":00"),
+ X: common_vendor.f(openValue.value.array, (item, index, i0) => {
+ return {
+ a: cardsumit.value.op[2] !== index ? `/static/index/ridark.png` : `/static/index/ri.png`,
+ b: common_vendor.t(item.type),
+ c: common_vendor.n(cardsumit.value.op[2] === index ? `arrayindex-one-target` : `arrayindex-one`),
+ d: common_vendor.o(($event) => clickOp(index, item.type), index),
+ e: index
+ };
+ }),
+ Y: common_vendor.f(timeArray, (item, index, i0) => {
+ return {
+ a: common_vendor.t(item),
+ b: common_vendor.n(cardsumit.value.startTime === item ? `time-one-target` : `time-one`),
+ c: common_vendor.o(($event) => clickTime(item), index),
+ d: index
+ };
+ }),
+ Z: common_vendor.n(isweek.value ? `radio-circle-target` : `radio-circle`),
+ aa: common_vendor.o(($event) => isweek.value = true),
+ ab: common_vendor.n(!isweek.value ? `radio-circle-target` : `radio-circle`),
+ ac: common_vendor.o(($event) => isweek.value = false),
+ ad: common_vendor.f(weekDays, (item, index, i0) => {
+ return {
+ a: common_vendor.t(item),
+ b: common_vendor.n(cardsumit.value.weekTime === item ? `week-one-target` : `week-one`),
+ c: common_vendor.o(($event) => clickweek(item), index),
+ d: index
+ };
+ }),
+ ae: isweek.value,
+ af: common_vendor.f(common_vendor.unref(days), (item, index, i0) => {
+ return {
+ a: common_vendor.t(item),
+ b: common_vendor.n(cardsumit.value.monthTime === item ? `month-one-target` : `month-one`),
+ c: common_vendor.o(($event) => clickmonth(item), index),
+ d: index
+ };
+ }),
+ ag: !isweek.value,
+ ah: common_vendor.o(movetoruler),
+ ai: cardsumit.value.op.name && cardsumit.value.startTime,
+ aj: !cardsumit.value.op.name || !cardsumit.value.startTime,
+ ak: songisopacity.value ? 1 : 0,
+ al: common_vendor.o(() => {
+ }),
+ am: common_vendor.o(($event) => songisopen.value = false)
+ } : {}, {
+ an: common_vendor.s(__props.isshow ? {
opacity: `1`
} : {
opacity: `0`
})
- };
+ });
};
}
});
diff --git a/unpackage/dist/dev/mp-weixin/component/rightItemssecond/index.wxml b/unpackage/dist/dev/mp-weixin/component/rightItemssecond/index.wxml
index a0e57e8..4f2e661 100644
--- a/unpackage/dist/dev/mp-weixin/component/rightItemssecond/index.wxml
+++ b/unpackage/dist/dev/mp-weixin/component/rightItemssecond/index.wxml
@@ -1 +1 @@
- ID:12345678 名称:未命名01 王金福 切换到暗黑模式 取消暗黑模式 {{item.b}}{{item.b}}时间矩阵 2 {{item.c}}
\ No newline at end of file
+ ID:12345678 名称:未命名01 王金福 切换到暗黑模式 取消暗黑模式 {{item.b}}{{item.a}}时间矩阵日常周期{{item.a}}{{item0.a}}{{item1.a}}{{item1.b}} {{item1.e}}快捷指令{{item.c}}
\ No newline at end of file
diff --git a/unpackage/dist/dev/mp-weixin/component/rightItemssecond/index.wxss b/unpackage/dist/dev/mp-weixin/component/rightItemssecond/index.wxss
index 8635ab5..e0ab8f6 100644
--- a/unpackage/dist/dev/mp-weixin/component/rightItemssecond/index.wxss
+++ b/unpackage/dist/dev/mp-weixin/component/rightItemssecond/index.wxss
@@ -1,3 +1,83 @@
+.super-card.data-v-337bb5da {
+ display: flex;
+ justify-content: center;
+ width: 100%;
+ height: calc(100% - 400rpx);
+ margin-top: 30rpx;
+}
+.super-card .scroll-x.data-v-337bb5da {
+ height: 100%;
+ width: 100%;
+}
+.super-card .super-card-container.data-v-337bb5da {
+ background-color: #f1f7fd;
+ overflow: hidden;
+ width: 1650rpx;
+ height: 780rpx;
+ border-radius: 20rpx;
+ border: 1rpx solid black;
+}
+.super-card .super-card-time.data-v-337bb5da {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ background-color: #e9efff;
+ height: 80rpx;
+ width: 100rpx;
+ border-right: 1rpx solid #BFBFCB;
+ font-weight: 700;
+}
+.super-card .super-card-time-und.data-v-337bb5da {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ width: 100rpx;
+ flex-direction: column;
+ border-right: 1rpx solid #BFBFCB;
+}
+.super-card .super-card-time-card.data-v-337bb5da {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ height: 175rpx;
+ width: calc(100%);
+ border-right: 1rpx solid #BFBFCB;
+ border-top: 1rpx solid #BFBFCB;
+ flex-direction: column;
+}
+.super-card .super-card-time-card-blue.data-v-337bb5da {
+ background-color: #dae8fa;
+ display: flex;
+ justify-content: space-evenly;
+ align-items: center;
+ height: 175rpx;
+ width: calc(100%);
+ border-right: 1rpx solid #BFBFCB;
+ border-top: 1rpx solid #BFBFCB;
+ flex-direction: column;
+}
+.super-card .super-card-time-card-yellow.data-v-337bb5da {
+ background-color: #fffaf1;
+ display: flex;
+ justify-content: space-evenly;
+ align-items: center;
+ height: 175rpx;
+ width: calc(100%);
+ border-right: 1rpx solid #BFBFCB;
+ border-top: 1rpx solid #BFBFCB;
+ flex-direction: column;
+}
+.super-card .super-card-time-card-pouple.data-v-337bb5da {
+ background-color: #e0daff;
+ display: flex;
+ justify-content: space-evenly;
+ align-items: center;
+ height: 175rpx;
+ width: calc(100%);
+ border-right: 1rpx solid #BFBFCB;
+ border-top: 1rpx solid #BFBFCB;
+ flex-direction: column;
+}
.right-container.data-v-337bb5da {
width: calc(100% - 235rpx);
height: 100vh;
@@ -48,7 +128,9 @@
color: #FFFFFF;
}
.right-container .doctorsay-container-view .doctorsay-container-items .doctorsay-container-down.data-v-337bb5da {
- background-color: #ddeafa;
+ background-color: rgba(221, 234, 250);
+ -webkit-backdrop-filter: blur(8rpx);
+ backdrop-filter: blur(8rpx);
width: 290rpx;
height: 770rpx;
border-radius: 40rpx;
@@ -67,27 +149,57 @@
justify-content: center;
align-items: center;
height: 85rpx;
- font-size: 35rpx;
- font-weight: 700;
position: relative;
}
.right-container .doctorsay-container-view .doctorsay-container-items .doctorsay-container-down .doctorsay-container-button .doctorsay-container-text-target.data-v-337bb5da {
color: #016AD1;
background-color: #c9e8ff;
- padding: 10rpx 30rpx;
- border-radius: 40rpx;
+ border-radius: 20rpx;
border: 2rpx solid #fff;
- font-size: 40rpx;
+ width: 300rpx;
+ height: 100rpx;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ text-align: center;
+ font-size: 45rpx;
+ transition: all 0.4s ease-in-out;
+ box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.1);
+ z-index: 20;
+ font-weight: 700;
+}
+.right-container .doctorsay-container-view .doctorsay-container-items .doctorsay-container-down .doctorsay-container-button .doctorsay-container-text.data-v-337bb5da {
+ background-color: #f3f6fc;
+ border: 2rpx solid #fff;
+ border-radius: 10rpx;
+ width: 250rpx;
+ height: 75rpx;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ text-align: center;
+ transition: all 0.4s ease-in-out;
+ font-weight: 500;
+ font-size: 30rpx;
}
.right-container .doctorsay-container-view .doctorsay-container-items .doctorsay-container-down .doctorsay-container-button .doctorsay-container-button-gun.data-v-337bb5da {
position: absolute;
- top: 22rpx;
+ top: 19rpx;
left: 1rpx;
width: 10rpx;
- height: 42rpx;
+ height: 50rpx;
background: linear-gradient(to bottom, #04BCED, #0160CE);
border-radius: 10rpx;
}
+.right-container .doctorsay-container-view .doctorsay-container-items .doctorsay-container-down .doctorsay-container-button .doctorsay-container-button-uplight.data-v-337bb5da {
+ position: absolute;
+ top: 40rpx;
+ left: 20rpx;
+ width: 250rpx;
+ height: 50rpx;
+ z-index: 21;
+ transition: all 0.4s ease-in-out;
+}
.right-container .doctorsay-container-view .doctorsay-container-container.data-v-337bb5da {
width: 1730rpx;
height: 1220rpx;
@@ -97,6 +209,32 @@
/* 右下角阴影 */
overflow: hidden;
}
+.right-container .doctorsay-container-view .doctorsay-container-container .super-card-end.data-v-337bb5da {
+ width: 100%;
+ height: 200rpx;
+ display: flex;
+}
+.right-container .doctorsay-container-view .doctorsay-container-container .super-card-end .super-end-father.data-v-337bb5da {
+ height: 100%;
+ display: flex;
+ width: 100%;
+}
+.right-container .doctorsay-container-view .doctorsay-container-container .super-card-end .super-end-father .super-end-font-father.data-v-337bb5da {
+ display: flex;
+}
+.right-container .doctorsay-container-view .doctorsay-container-container .super-card-end .super-end-father .super-end-font-father .super-end-font-gun.data-v-337bb5da {
+ margin-left: 40rpx;
+ margin-right: 20rpx;
+ margin-top: 7rpx;
+ width: 13rpx;
+ height: 40rpx;
+ background: linear-gradient(to bottom, #04BCED, #0160CE);
+ border-radius: 10rpx;
+}
+.right-container .doctorsay-container-view .doctorsay-container-container .super-card-end .super-end-father .super-end-font-father .super-end-font-font.data-v-337bb5da {
+ font-size: 42rpx;
+ font-weight: 700;
+}
.right-container .doctorsay-container-view .doctorsay-container-container .doctorsay-container-title.data-v-337bb5da {
width: 100%;
height: 130rpx;
@@ -105,14 +243,64 @@
align-items: center;
justify-content: space-between;
}
+.right-container .doctorsay-container-view .doctorsay-container-container .doctorsay-container-title .doctorsay-container-right.data-v-337bb5da {
+ height: 100%;
+ display: flex;
+ align-items: center;
+ width: 310rpx;
+}
+.right-container .doctorsay-container-view .doctorsay-container-container .doctorsay-container-title .doctorsay-container-right .doctorsay-container-button-father.data-v-337bb5da {
+ display: flex;
+}
+.right-container .doctorsay-container-view .doctorsay-container-container .doctorsay-container-title .doctorsay-container-right .doctorsay-container-button-father .doctorsay-container-button-target.data-v-337bb5da {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ background-color: #3FA9F5;
+ color: #fff;
+ width: 140rpx;
+ height: 60rpx;
+ margin-right: 20rpx;
+ font-size: 28rpx;
+ border-radius: 10rpx;
+}
+.right-container .doctorsay-container-view .doctorsay-container-container .doctorsay-container-title .doctorsay-container-right .doctorsay-container-button-father .doctorsay-container-button.data-v-337bb5da {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ background-color: #fff;
+ width: 140rpx;
+ height: 60rpx;
+ margin-right: 20rpx;
+ font-size: 28rpx;
+ border-radius: 10rpx;
+}
+.right-container .doctorsay-container-view .doctorsay-container-container .doctorsay-container-title .doctorsay-container-right .doctorsay-container-right-kuai-cheng.data-v-337bb5da {
+ background-color: #FFDBA1;
+ height: 45rpx;
+ width: 45rpx;
+ border-radius: 7rpx;
+}
+.right-container .doctorsay-container-view .doctorsay-container-container .doctorsay-container-title .doctorsay-container-right .doctorsay-container-right-kuai-zi.data-v-337bb5da {
+ background-color: #7B61FF;
+ height: 45rpx;
+ width: 45rpx;
+ border-radius: 7rpx;
+}
+.right-container .doctorsay-container-view .doctorsay-container-container .doctorsay-container-title .doctorsay-container-right .doctorsay-container-kuai-font.data-v-337bb5da {
+ font-size: 32rpx;
+ margin-left: 10rpx;
+ margin-right: 25rpx;
+}
.right-container .doctorsay-container-view .doctorsay-container-container .doctorsay-container-title .doctorsay-container-left.data-v-337bb5da {
display: flex;
}
.right-container .doctorsay-container-view .doctorsay-container-container .doctorsay-container-title .doctorsay-container-left .doctorsay-container-left-gun.data-v-337bb5da {
+ margin-top: 7rpx;
margin-left: 40rpx;
margin-right: 20rpx;
width: 13rpx;
- height: 55rpx;
+ height: 40rpx;
background: linear-gradient(to bottom, #04BCED, #0160CE);
border-radius: 10rpx;
}
@@ -242,3 +430,372 @@
font-weight: 800;
color: white;
}
+.title-time.data-v-337bb5da {
+ display: flex;
+}
+.title-time .title-time-time.data-v-337bb5da {
+ font-size: 35rpx;
+ margin-right: 10rpx;
+}
+.title-time .title-time-button.data-v-337bb5da {
+ background-color: #FFC363;
+ padding: 0 5rpx;
+ padding-top: 5rpx;
+ border-radius: 10rpx;
+ font-size: 25rpx;
+}
+.popup-overlay.data-v-337bb5da {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ /* 添加毛玻璃效果 */
+ z-index: 999;
+}
+.popup-overlay .popup-overlay-content.data-v-337bb5da {
+ position: absolute;
+ display: flex;
+ align-items: center;
+ width: 800rpx;
+ height: 450rpx;
+ background-color: #fff;
+ border-radius: 20rpx;
+ box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.1);
+ opacity: 0;
+ transition: opacity 0.4s ease;
+}
+.popup-overlay .popup-overlay-content .popup-overlay-content-left.data-v-337bb5da {
+ height: 100%;
+ width: 350rpx;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ flex-direction: column;
+}
+.popup-overlay .popup-overlay-content .popup-overlay-content-left .popup-overlay-content-left-img.data-v-337bb5da {
+ width: 330rpx;
+ height: 240rpx;
+}
+.popup-overlay .popup-overlay-content .popup-overlay-content-left .popup-overlay-content-left-font.data-v-337bb5da {
+ margin-top: 20rpx;
+}
+.popup-overlay .popup-overlay-content .popup-overlay-content-right.data-v-337bb5da {
+ height: 100%;
+ width: 450rpx;
+ position: relative;
+}
+.popup-overlay .popup-overlay-content .popup-overlay-content-right .time-font.data-v-337bb5da {
+ font-size: 50rpx;
+ margin-top: 100rpx;
+ margin-bottom: 10rpx;
+ font-weight: 700;
+ background: linear-gradient(to bottom, #7080A1, #263556);
+ -webkit-background-clip: text;
+ color: transparent;
+}
+.popup-overlay .popup-overlay-content .popup-overlay-content-right .time-text.data-v-337bb5da {
+ margin-left: 10rpx;
+ font-size: 38rpx;
+ font-weight: 700;
+ width: 350rpx;
+ margin-bottom: 50rpx;
+ line-height: 45rpx;
+}
+.popup-overlay .popup-overlay-content .popup-overlay-content-right .right-richang.data-v-337bb5da {
+ background-color: #FFC363;
+ position: absolute;
+ top: 108rpx;
+ right: 50rpx;
+ padding: 5rpx;
+ border-radius: 10rpx;
+}
+.popup-overlay .popup-overlay-content .popup-overlay-content-right .right-richangnot.data-v-337bb5da {
+ background-color: #7B61FF;
+ position: absolute;
+ top: 108rpx;
+ right: 50rpx;
+ padding: 5rpx;
+ border-radius: 10rpx;
+ color: #fff;
+}
+.popup-overlay .popup-overlay-content .popup-overlay-content-right .right-crush.data-v-337bb5da {
+ position: absolute;
+ top: 20rpx;
+ right: 20rpx;
+ width: 70rpx;
+ height: 70rpx;
+}
+.popup-song.data-v-337bb5da {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ /* 添加毛玻璃效果 */
+ z-index: 999;
+}
+.popup-song .popup-song-contain.data-v-337bb5da {
+ position: absolute;
+ width: 1300rpx;
+ background-color: #fff;
+ border-radius: 20rpx;
+ box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.1);
+ opacity: 0;
+ transition: opacity 0.4s ease;
+}
+.popup-song .popup-song-contain .shu-container-left.data-v-337bb5da {
+ display: flex;
+ margin-top: 70rpx;
+ margin-bottom: 20rpx;
+}
+.popup-song .popup-song-contain .shu-container-left .shu-container-left-gun.data-v-337bb5da {
+ margin-top: 5rpx;
+ margin-left: 40rpx;
+ margin-right: 20rpx;
+ width: 13rpx;
+ height: 35rpx;
+ background: linear-gradient(to bottom, #04BCED, #0160CE);
+ border-radius: 10rpx;
+}
+.popup-song .popup-song-contain .shu-container-left .shu-container-left-font.data-v-337bb5da {
+ font-size: 35rpx;
+ font-weight: 700;
+}
+.popup-song-father.data-v-337bb5da {
+ position: relative;
+}
+.popup-song-father .shu-up-img.data-v-337bb5da {
+ position: absolute;
+ top: -70rpx;
+ left: 305rpx;
+ width: 700rpx;
+ height: 80rpx;
+}
+.popup-song-father .shu-up-font.data-v-337bb5da {
+ position: absolute;
+ top: -50rpx;
+ left: 390rpx;
+ display: flex;
+ color: #ff5a00;
+}
+.popup-song-father .arrayindex.data-v-337bb5da {
+ display: flex;
+ flex-wrap: wrap;
+ width: 100%;
+ margin-left: 30rpx;
+ margin-right: 30rpx;
+}
+.popup-song-father .arrayindex .arrayindex-one.data-v-337bb5da {
+ width: 385rpx;
+ height: 100rpx;
+ margin-left: 20rpx;
+ margin-top: 20rpx;
+ background-color: #f1f5fc;
+ border-radius: 20rpx;
+ border: 1rpx solid #6d83b3;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ font-size: 29rpx;
+}
+.popup-song-father .arrayindex .arrayindex-one-target.data-v-337bb5da {
+ width: 385rpx;
+ height: 100rpx;
+ margin-left: 20rpx;
+ margin-top: 20rpx;
+ background-color: #fffaf1;
+ border-radius: 20rpx;
+ border: 1rpx solid #ffb501;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ font-size: 29rpx;
+}
+.ri-img.data-v-337bb5da {
+ position: absolute;
+ top: -4rpx;
+ right: -3rpx;
+ width: 50rpx;
+ height: 50rpx;
+}
+.time-father.data-v-337bb5da {
+ display: flex;
+ width: 100%;
+ flex-wrap: wrap;
+ margin-left: 30rpx;
+ margin-right: 30rpx;
+}
+.time-father .time-one.data-v-337bb5da {
+ width: 100rpx;
+ height: 100rpx;
+ margin-left: 20rpx;
+ margin-top: 20rpx;
+ background-color: #f1f5fc;
+ border-radius: 20rpx;
+ border: 1rpx solid #6d83b3;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ font-size: 29rpx;
+}
+.time-father .time-one-target.data-v-337bb5da {
+ width: 100rpx;
+ height: 100rpx;
+ margin-left: 20rpx;
+ margin-top: 20rpx;
+ background-color: #02abfe;
+ color: #fff;
+ border-radius: 20rpx;
+ border: 1rpx solid #fff;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ font-size: 29rpx;
+}
+.button-father.data-v-337bb5da {
+ height: 200rpx;
+ width: calc(100%-80rpx);
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ margin-left: 40rpx;
+ margin-right: 40rpx;
+ margin-top: 20rpx;
+ border-top: 1rpx solid #e6e6e6;
+}
+.button-father .button-father-right.data-v-337bb5da {
+ background-color: #02abfe;
+ width: 200rpx;
+ height: 80rpx;
+ border-radius: 40rpx;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ color: #fff;
+}
+.button-father .button-father-wrong.data-v-337bb5da {
+ background-color: #dadada;
+ width: 200rpx;
+ height: 80rpx;
+ border-radius: 40rpx;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+.month-father.data-v-337bb5da {
+ display: flex;
+ width: calc(100% - 60rpx);
+ flex-wrap: wrap;
+ margin-left: 30rpx;
+ margin-right: 30rpx;
+ margin-top: 20rpx;
+}
+.month-father .month-one.data-v-337bb5da {
+ width: 75rpx;
+ height: 75rpx;
+ margin-left: 20rpx;
+ margin-top: 20rpx;
+ background-color: #f1f5fc;
+ border-radius: 20rpx;
+ border: 1rpx solid #6d83b3;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ font-size: 29rpx;
+}
+.month-father .month-one-target.data-v-337bb5da {
+ width: 75rpx;
+ height: 75rpx;
+ margin-left: 20rpx;
+ margin-top: 20rpx;
+ background-color: #02abfe;
+ color: #fff;
+ border-radius: 20rpx;
+ border: 1rpx solid #fff;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ font-size: 29rpx;
+}
+.week-father.data-v-337bb5da {
+ display: flex;
+ width: 100%;
+ flex-wrap: wrap;
+ margin-left: 30rpx;
+ margin-right: 30rpx;
+ margin-top: 20rpx;
+}
+.week-father .week-one.data-v-337bb5da {
+ width: 200rpx;
+ height: 100rpx;
+ margin-left: 20rpx;
+ margin-top: 20rpx;
+ background-color: #f1f5fc;
+ border-radius: 20rpx;
+ border: 1rpx solid #6d83b3;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ font-size: 29rpx;
+}
+.week-father .week-one-target.data-v-337bb5da {
+ width: 200rpx;
+ height: 100rpx;
+ margin-left: 20rpx;
+ margin-top: 20rpx;
+ background-color: #02abfe;
+ color: #fff;
+ border-radius: 20rpx;
+ border: 1rpx solid #fff;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ font-size: 29rpx;
+}
+.radio-father.data-v-337bb5da {
+ display: flex;
+ width: 100%;
+ flex-wrap: wrap;
+ margin-left: 75rpx;
+ margin-right: 30rpx;
+}
+.radio-father .radio-circle.data-v-337bb5da {
+ margin-top: 2rpx;
+ width: 30rpx;
+ height: 30rpx;
+ border-radius: 50%;
+ border: 2rpx solid black;
+ background-color: transparent;
+}
+.radio-father .radio-circle-target.data-v-337bb5da {
+ position: relative;
+ margin-top: 2rpx;
+ width: 30rpx;
+ height: 30rpx;
+ border-radius: 50%;
+ border: 2rpx solid #02abfe;
+ background-color: transparent;
+}
+.radio-father .radio-circle-target.data-v-337bb5da::after {
+ content: "";
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ width: 20rpx;
+ height: 20rpx;
+ background-color: #02abfe;
+ border-radius: 50%;
+}
+.radio-father .radio-font.data-v-337bb5da {
+ margin-left: 15rpx;
+ margin-right: 60rpx;
+ font-size: 29rpx;
+}
diff --git a/unpackage/dist/dev/mp-weixin/pages/index/index.js b/unpackage/dist/dev/mp-weixin/pages/index/index.js
index fb038ad..3d74627 100644
--- a/unpackage/dist/dev/mp-weixin/pages/index/index.js
+++ b/unpackage/dist/dev/mp-weixin/pages/index/index.js
@@ -60,21 +60,63 @@ const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({
const clientY = common_vendor.ref(0);
const savename = common_vendor.ref("");
const canmove = common_vendor.ref(true);
- const getxy = (event) => {
+ const indexNumber = common_vendor.ref({
+ index0: 999,
+ index1: 999
+ });
+ const getxyrel = (event) => {
const touch = event.touches[0];
- clientX.value = 2 * (Math.floor(touch.clientX) - 60);
+ clientX.value = 2 * (Math.floor(touch.clientX) - 100);
clientY.value = 2 * (Math.floor(touch.clientY) - 55);
+ const translateX = Math.floor(touch.clientX) - 50;
+ const translateY = Math.floor(touch.clientY) - 25;
+ const clickedItem = fangkuaiValue.value.find((item) => {
+ return translateX >= item.left && translateX <= item.right && translateY >= item.top && translateY <= item.bottom;
+ });
+ if (clickedItem) {
+ const { index0, index1 } = clickedItem.dataset;
+ indexNumber.value.index0 = index0;
+ indexNumber.value.index1 = index1;
+ } else {
+ indexNumber.value.index0 = 999;
+ indexNumber.value.index1 = 999;
+ }
};
- const openname = (res) => {
+ const getxy = throttle(getxyrel, 10);
+ const fangkuaiValue = common_vendor.ref([]);
+ const openname = (res, fangkuai) => {
savename.value = res;
canmove.value = false;
+ fangkuaiValue.value = fangkuai;
};
- const cleanall = () => {
+ const closename = () => {
savename.value = "";
+ canmove.value = true;
+ fangkuaiValue.value = [];
+ };
+ const ruler = common_vendor.ref(null);
+ const cleanall = () => {
+ var _a;
clientX.value = 9999;
clientY.value = 9999;
canmove.value = true;
+ indexNumber.value = {
+ index0: 999,
+ index1: 999
+ };
+ (_a = ruler.value) == null ? void 0 : _a.rulerEnd(savename.value);
+ savename.value = "";
};
+ function throttle(fn, delay) {
+ let lastExecutionTime = 0;
+ return function(...args) {
+ const now = Date.now();
+ if (now - lastExecutionTime >= delay) {
+ lastExecutionTime = now;
+ fn.apply(this, args);
+ }
+ };
+ }
common_vendor.onShow(() => {
setTimeout(() => {
changeMenu(menuIndex.value);
@@ -83,7 +125,7 @@ const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({
return (_ctx, _cache) => {
return {
a: common_vendor.t(savename.value),
- b: savename.value,
+ b: savename.value && clientX.value,
c: `${clientY.value}rpx`,
d: `${clientX.value}rpx`,
e: common_assets._imports_0,
@@ -103,17 +145,25 @@ const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({
isshow: menuIndexshow.value,
darkFans: darkFans.value
}),
- l: menuIndex.value == 1,
- m: common_vendor.o(darkchange),
- n: common_vendor.o(openname),
- o: common_vendor.p({
+ l: common_vendor.sr(ruler, "1cf27b2a-1", {
+ "k": "ruler"
+ }),
+ m: menuIndex.value == 1,
+ n: common_vendor.o(darkchange),
+ o: common_vendor.o(openname),
+ p: common_vendor.o(closename),
+ q: common_vendor.p({
+ liang: indexNumber.value,
isshow: menuIndexshowsecond.value,
canmove: canmove.value,
darkFans: darkFans.value
}),
- p: common_vendor.n(darkFans.value ? `darkbackgroundContainer` : `backgroundContainer`),
- q: common_vendor.o(getxy),
- r: common_vendor.o(cleanall)
+ r: common_vendor.n(darkFans.value ? `darkbackgroundContainer` : `backgroundContainer`),
+ s: common_vendor.o(
+ //@ts-ignore
+ (...args) => common_vendor.unref(getxy) && common_vendor.unref(getxy)(...args)
+ ),
+ t: common_vendor.o(cleanall)
};
};
}
diff --git a/unpackage/dist/dev/mp-weixin/pages/index/index.wxml b/unpackage/dist/dev/mp-weixin/pages/index/index.wxml
index 4f4bf09..61fcdd4 100644
--- a/unpackage/dist/dev/mp-weixin/pages/index/index.wxml
+++ b/unpackage/dist/dev/mp-weixin/pages/index/index.wxml
@@ -1 +1 @@
-{{a}} 王金凤
\ No newline at end of file
+{{a}} 王金凤
\ No newline at end of file
diff --git a/unpackage/dist/dev/mp-weixin/pages/index/index.wxss b/unpackage/dist/dev/mp-weixin/pages/index/index.wxss
index 883c6a8..de1c58a 100644
--- a/unpackage/dist/dev/mp-weixin/pages/index/index.wxss
+++ b/unpackage/dist/dev/mp-weixin/pages/index/index.wxss
@@ -22,9 +22,21 @@
}
.move-font.data-v-1cf27b2a {
position: absolute;
- font-size: 45rpx;
font-weight: 700;
z-index: 10;
+ pointer-events: none;
+ color: #016AD1;
+ background-color: #fff;
+ border-radius: 20rpx;
+ border: 2rpx solid #fff;
+ width: 300rpx;
+ height: 100rpx;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ text-align: center;
+ font-size: 45rpx;
+ box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.1);
}
.left-container.data-v-1cf27b2a {
width: 235rpx;
diff --git a/unpackage/dist/dev/mp-weixin/static/index/cardicons/uplight.png b/unpackage/dist/dev/mp-weixin/static/index/cardicons/uplight.png
new file mode 100644
index 0000000..5e40e0c
Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/cardicons/uplight.png differ
diff --git a/unpackage/dist/dev/mp-weixin/static/index/cheng.png b/unpackage/dist/dev/mp-weixin/static/index/cheng.png
new file mode 100644
index 0000000..24879bc
Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/cheng.png differ
diff --git a/unpackage/dist/dev/mp-weixin/static/index/crushpouple.png b/unpackage/dist/dev/mp-weixin/static/index/crushpouple.png
new file mode 100644
index 0000000..de45150
Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/crushpouple.png differ
diff --git a/unpackage/dist/dev/mp-weixin/static/index/crushyellow.png b/unpackage/dist/dev/mp-weixin/static/index/crushyellow.png
new file mode 100644
index 0000000..478181e
Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/crushyellow.png differ
diff --git a/unpackage/dist/dev/mp-weixin/static/index/ri.png b/unpackage/dist/dev/mp-weixin/static/index/ri.png
new file mode 100644
index 0000000..02b3e32
Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/ri.png differ
diff --git a/unpackage/dist/dev/mp-weixin/static/index/ridark.png b/unpackage/dist/dev/mp-weixin/static/index/ridark.png
new file mode 100644
index 0000000..68a9c43
Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/ridark.png differ