diff --git a/manifest.json b/manifest.json index 73f0b63..6d2ebce 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { - "name" : "hil", - "appid" : "", - "description" : "", + "name" : "养老App", + "appid" : "__UNI__FB2D473", + "description" : "养老App", "versionName" : "1.0.0", "versionCode" : "100", "transformPx" : false, @@ -10,11 +10,11 @@ "usingComponents" : true, "nvueStyleCompiler" : "uni-app", "compilerVersion" : 3, - "screenOrientation": [ - // "portrait-primary", // 竖屏 - "landscape-primary", // 横屏(home 键在右侧) - "landscape-secondary" // 横屏(home 键在左侧) - ], + "screenOrientation" : [ + // "portrait-primary", // 竖屏 + "landscape-primary", // 横屏(home 键在右侧) + "landscape-secondary" // 横屏(home 键在左侧) + ], "splashscreen" : { "alwaysShowBeforeRender" : true, "waiting" : true, diff --git a/pages/index/index.vue b/pages/index/index.vue index 50b8bf2..9f30626 100644 --- a/pages/index/index.vue +++ b/pages/index/index.vue @@ -21,18 +21,21 @@ - N00123456 + ID:12345678 - - 护理单元01 + + 名称:未命名01 - + 王金福 - - - + + + @@ -50,7 +53,7 @@ -
护理类
+
护理类
@@ -68,10 +71,6 @@ @change="onSwiperChange"> - - -
待执行
+ :src="`/static/index/teeth.png`" @click="showPopup" /> @@ -97,10 +94,8 @@ -
- @@ -109,22 +104,25 @@ 为老人提供口腔清洁器具,牙膏、牙刷及水杯,看护完成 - - - - 单人执行 - - - - - - -- - + + + + + 单人执行 + + + + + + -- + + + 开始服务 @@ -140,9 +138,6 @@
- -
- -
-
+ + + + + {{ currentTime }} @@ -228,7 +224,6 @@ -
医疗类
@@ -236,29 +231,26 @@ + :style="index===secondcurrentIndexup?{backgroundColor:`#01A0FE`}:{}"> -
- + -
- +
+ :indicator-dots="false" :autoplay="false" :interval="4000" :duration="500"> +
进行中 +
- 10:00 - 10:10 - @@ -287,6 +279,18 @@ 执行:周期一日执行一次 + + + + 单人执行 + + + + 赵宇 + + 开始服务 @@ -307,9 +311,6 @@
- -
@@ -317,7 +318,7 @@ - + @@ -339,65 +340,52 @@ - - - - 服务指令 - - + :style="darkFans ? { backgroundColor: 'rgb(17, 45, 74)', backgroundImage :`none` } : {backgroundImage:`url('/static/index/mountain.png')`,backgroundPosition: `60% 50%`}"> +
+ +
保洁类
- - - - - - - -
- 保洁类
- - - - 更换纸尿裤 - + + + + + + + +
待执行 +
- -
- - 10:00 - 10:10 + + 为老人提供口腔清洁器具,牙膏、牙刷及水杯,看护完成 + + - + :src="darkFans?`/static/index/darkicon/zhixingpeopledark.png`:`/static/index/cardicons/zhixing.png`" /> - 协作执行 + 单人执行 - - + + :src="darkFans?`/static/index/medium/dopeopledark.png`:`/static/index/cardicons/zhifa.png`" /> 王金福 / 李贵田 + - + + 开始服务 @@ -406,22 +394,158 @@ - -
-
-
- - - + + + + 更换纸尿裤 + + +
+
+
+
- - - + + + - + + + + + + + + +
护理类
+ + + + + + + + + + + +
+ 待执行 +
+
+ + + + + 准备洁具(口腔) + + + +
+ + + + + 10:00 - 10:10 + + + 为老人提供口腔清洁器具,牙膏、牙刷及水杯,看护完成 + + + + + + 单人执行 + + + + + + -- + + + + + + + 开始服务 + + + 服务结束 + + + + +
+
+ +
+ + + +
+
+
+ + + + + + {{item.name}} + + + + + + + {{item.name}} + + + + +
+
+
@@ -429,7 +553,15 @@ \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":["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 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 fc1ba97..249e5fa 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"],"sourcesContent":["export default \"__VITE_ASSET__71faa3fc__\""],"names":[],"mappings":";AAAA,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"],"sourcesContent":["export default \"__VITE_ASSET__71faa3fc__\"","export default \"__VITE_ASSET__3a5aea25__\"","export default \"__VITE_ASSET__bdab6700__\""],"names":[],"mappings":";AAAA,MAAe,aAAA;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 80be99f..e4f418c 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"],"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 MiniProgramPage from 'D:/hldy_app/pages/index/index.vue'\nwx.createPage(MiniProgramPage)"],"names":["ref","onMounted"],"mappings":";;;;;;;;;;AAoFC,UAAM,WAAWA,cAAAA,IAAY;AAAA,MAC5B,EAAE,KAAK,oCAAoC,WAAW,6CAA6C;AAAA,MACnG,EAAE,KAAK,oCAAoC,WAAW,6CAA6C;AAAA,MACnG,EAAE,KAAK,qCAAqC,WAAW,8CAA8C;AAAA,MACrG,EAAE,KAAK,mCAAmC,WAAW,4CAA4C;AAAA,MACjG,EAAE,KAAK,mCAAmC,WAAW,4CAA4C;AAAA,IAAA,CACjG;AAGK,UAAA,YAAYA,kBAAY,CAAC;AAGzB,UAAA,aAAa,CAAC,UAAmB;AACtC,gBAAU,QAAQ;AAAA,IAAA;AAInBC,kBAAAA,UAAU,MAAM;AAAA,IAAA,CAKf;;;;;;;;;;;;;;;;;;;;;;;ACzGF,GAAG,WAAW,eAAe;"} \ No newline at end of file +{"version":3,"file":"index.js","sources":["pages/index/index.vue","../Hbuilder/HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvaW5kZXgvaW5kZXgudnVl"],"sourcesContent":["\r\n\r\n\r\n\r\n","import MiniProgramPage from 'D:/hldy_app/pages/index/index.vue'\nwx.createPage(MiniProgramPage)"],"names":["ref","onMounted","onBeforeUnmount"],"mappings":";;;;;;AA2bO,UAAA,cAAcA,kBAAI,EAAE;AACpB,UAAA,WAAWA,kBAAI,EAAE;AACjB,UAAA,UAAUA,kBAAI,EAAE;AAQtB,UAAM,WAAWA,cAAAA,IAAY;AAAA,MAC5B,EAAE,KAAK,oCAAoC,WAAW,6CAA6C;AAAA,MACnG,EAAE,KAAK,oCAAoC,WAAW,6CAA6C;AAAA,MACnG,EAAE,KAAK,qCAAqC,WAAW,8CAA8C;AAAA,MACrG,EAAE,KAAK,mCAAmC,WAAW,4CAA4C;AAAA,MACjG,EAAE,KAAK,mCAAmC,WAAW,4CAA4C;AAAA,MACjG,EAAE,KAAK,mCAAmC,WAAW,4CAA4C;AAAA,IAAA,CACjG;AAED,UAAM,gBAAgBA,cAAAA,IAAY;AAAA,MACjC,EAAE,KAAK,sCAAsC,WAAW,yCAAyC;AAAA,MACjG,EAAE,KAAK,2CAA2C,WAAW,8CAA8C;AAAA,IAAA,CAE3G;AAaD,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;AASD,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;AAEK,UAAA,YAAYA,kBAAY,CAAC;AACzB,UAAA,iBAAiBA,kBAAY,CAAC;AAE9B,UAAA,WAAWA,kBAAa,KAAK;AACjBA,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;AAClC,UAAA,oBAAoBA,kBAAY,CAAC;AAEjC,UAAA,aAAa,CAAC,UAAmB;AACtC,gBAAU,QAAQ;AAAA,IAAA;AAGb,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;AAE3C,UAAM,YAAY,MAAM;AAAA,IAAA;AAOxBC,kBAAAA,UAAU,MAAM;AACJ;AAEX,kBAAY,YAAY,GAAI;AAAA,IAAA,CAC5B;AAEDC,kBAAAA,gBAAgB,MAAM;AACrB,oBAAc,UAAU;AAAA,IAAA,CACxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3lBF,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 new file mode 100644 index 0000000..97a65db --- /dev/null +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/login/login.js.map @@ -0,0 +1 @@ +{"version":3,"file":"login.js","sources":["pages/login/login.vue","../Hbuilder/HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvbG9naW4vbG9naW4udnVl"],"sourcesContent":["\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 diff --git a/unpackage/dist/dev/app-plus/app-config-service.js b/unpackage/dist/dev/app-plus/app-config-service.js index de42eb7..115ec42 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","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":"hil","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":true},"compilerVersion":"4.45","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","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.45","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}}].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 19c2010..73fad77 100644 --- a/unpackage/dist/dev/app-plus/app-service.js +++ b/unpackage/dist/dev/app-plus/app-service.js @@ -35,6 +35,12 @@ if (uni.restoreGlobal) { __name: "index", setup(__props, { expose: __expose }) { __expose(); + const isPopupVisible = vue.ref(false); + const widthCom = vue.ref(1320); + const heightCom = vue.ref(530); + const topCom = vue.ref(150); + const leftCom = vue.ref(233); + const isPopupVisiblefiropen = vue.ref(false); const currentTime = vue.ref(""); const fullDate = vue.ref(""); const weekDay = vue.ref(""); @@ -48,17 +54,21 @@ if (uni.restoreGlobal) { ]); const undericonList = vue.ref([ { url: "/static/index/undericons/alarm.png", targetUrl: "/static/index/undericons/alarmdark.png" }, - { url: "/static/index/undericons/linshitime.png", targetUrl: "/static/index/undericons/linshitimedark.png" } + { url: "/static/index/undericons/linshitime.png", targetUrl: "/static/index/undericons/linshitimedark.png" }, + { url: "/static/index/darkicon/zhaomingdark.png", targetUrl: "/static/index/roomicons/zhaomingtar.png" }, + { url: "/static/index/darkicon/kontiaodark.png", targetUrl: "/static/index/roomicons/kongtiaotar.png" }, + { url: "/static/index/darkicon/nuanfengdark.png", targetUrl: "/static/index/roomicons/nuanfengtar.png" }, + { url: "/static/index/darkicon/dianqidark.png", targetUrl: "/static/index/roomicons/dianqitar.png" } ]); const huliList = vue.ref([ { url: "/static/index/hulilist/zhuandan.png", name: "转单执行" }, - { url: "/static/index/hulilist/xiezhu.png", name: "协助执行" }, - { url: "/static/index/hulilist/zhongdian.png", name: "重点追踪" } + { url: "/static/index/hulilist/xiezhu.png", name: "协助执行" } + // { url: '/static/index/hulilist/zhongdian.png', name: "重点追踪" }, ]); const huliListDark = vue.ref([ { url: "/static/index/darkicon/zhuandandark.png", name: "转单执行" }, - { url: "/static/index/darkicon/xiezhudark.png", name: "协助执行" }, - { url: "/static/index/darkicon/zhongdiandark.png", name: "重点追踪" } + { url: "/static/index/darkicon/xiezhudark.png", name: "协助执行" } + // { url: '/static/index/darkicon/zhongdiandark.png', name: "重点追踪" }, ]); const mediumList = vue.ref([ { url: "/static/index/medium/yaopin.png", name: "药品信息", number: 0 }, @@ -93,6 +103,7 @@ if (uni.restoreGlobal) { const roomTar = vue.ref([]); const firstcurrentIndex = vue.ref(0); const firstcurrentIndexup = vue.ref(0); + const secondcurrentIndexup = vue.ref(0); const secondcurrentIndex = vue.ref(0); const thirdcurrentIndex = vue.ref(0); const changeMenu = (index) => { @@ -130,8 +141,29 @@ if (uni.restoreGlobal) { const onSwiperChange = (event) => { firstcurrentIndexup.value = event.detail.current; }; + const onSwiperChangesec = (event) => { + secondcurrentIndexup.value = event.detail.current; + }; const gotoLogin = () => { }; + const showPopup = () => { + isPopupVisible.value = true; + setTimeout(() => { + widthCom.value = 1800; + heightCom.value = 960; + topCom.value = 150; + leftCom.value = 233; + isPopupVisiblefiropen.value = true; + }, 100); + }; + const closePopup = () => { + widthCom.value = 1320; + heightCom.value = 530; + topCom.value = 150; + leftCom.value = 233; + isPopupVisiblefiropen.value = false; + isPopupVisible.value = false; + }; vue.onMounted(() => { updateTime(); setInterval(updateTime, 1e3); @@ -139,13 +171,14 @@ if (uni.restoreGlobal) { vue.onBeforeUnmount(() => { clearInterval(updateTime); }); - const __returned__ = { currentTime, fullDate, weekDay, iconList, undericonList, huliList, huliListDark, mediumList, mediumListdark, roomBtttonList, roomBtttonListdark, menuIndex, undermenuIndex, darkFans, underFans, roomTar, firstcurrentIndex, firstcurrentIndexup, secondcurrentIndex, thirdcurrentIndex, changeMenu, changeMenuUnder, saveItem, updateTime, onSwiperChange, gotoLogin }; + const __returned__ = { isPopupVisible, widthCom, heightCom, topCom, leftCom, isPopupVisiblefiropen, currentTime, fullDate, weekDay, iconList, undericonList, huliList, huliListDark, mediumList, mediumListdark, roomBtttonList, roomBtttonListdark, menuIndex, undermenuIndex, darkFans, underFans, roomTar, firstcurrentIndex, firstcurrentIndexup, secondcurrentIndexup, secondcurrentIndex, thirdcurrentIndex, changeMenu, changeMenuUnder, saveItem, updateTime, onSwiperChange, onSwiperChangesec, gotoLogin, showPopup, closePopup }; Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true }); return __returned__; } }); const _imports_0 = "/static/index/oldman.png"; - const _imports_1 = "/static/index/undericons/upguang.png"; + const _imports_1 = "/static/index/customer.png"; + const _imports_2 = "/static/index/undericons/upguang.png"; const _export_sfc = (sfc, props) => { const target = sfc.__vccOpts || sfc; for (const [key, val] of props) { @@ -221,16 +254,16 @@ if (uni.restoreGlobal) { { class: vue.normalizeClass($setup.darkFans ? `right-container-title-no-dark` : `right-container-title-no`) }, - " N00123456 ", + " ID:12345678 ", 2 /* CLASS */ ), vue.createElementVNode( "text", { - class: vue.normalizeClass($setup.darkFans ? `right-container-title-class-dark` : `right-container-title-class`) + class: vue.normalizeClass($setup.darkFans ? `right-container-title-no-dark` : `right-container-title-no`) }, - " 护理单元01 ", + " 名称:未命名01 ", 2 /* CLASS */ ), @@ -312,7 +345,10 @@ if (uni.restoreGlobal) { class: "right-container-fir-left-card-hulilei", src: `/static/index/hulilei.png` }, null, 8, ["src"]), - vue.createElementVNode("div", { class: "right-container-fir-left-card-hulilei-font" }, "护理类"), + vue.createElementVNode("div", { + class: "right-container-fir-left-card-hulilei-font", + onClick: $setup.showPopup + }, "护理类"), $setup.darkFans ? (vue.openBlock(), vue.createElementBlock("image", { key: 0, class: "card-upfaguang", @@ -363,11 +399,6 @@ if (uni.restoreGlobal) { key: index }, [ vue.createElementVNode("view", { class: "right-container-fir-left-card-flex" }, [ - vue.createElementVNode("image", { - class: "right-container-fir-left-card-main-left-up", - src: `/static/index/arrow2.png`, - onClick: _cache[2] || (_cache[2] = ($event) => $setup.firstcurrentIndex === 0 ? $setup.firstcurrentIndex = 2 : $setup.firstcurrentIndex = $setup.firstcurrentIndex - 1) - }, null, 8, ["src"]), vue.createElementVNode("view", { class: "uni-margin-wrap-fir" }, [ vue.createElementVNode("swiper", { current: $setup.firstcurrentIndex, @@ -387,15 +418,12 @@ if (uni.restoreGlobal) { }, [ vue.createElementVNode("view", { class: "right-container-fir-left-card-card" }, [ vue.createElementVNode("view", { class: "right-container-fir-left-card-zhixing" }, [ - vue.createElementVNode("image", { - class: "right-container-fir-left-card-zhixing-img", - src: `/static/index/daizhixing.png` - }, null, 8, ["src"]), vue.createElementVNode("div", { class: "right-container-fir-left-card-zhixing-font" }, "待执行 ") ]), vue.createElementVNode("image", { class: "right-container-fir-left-card-img", - src: `/static/index/teeth.png` + src: `/static/index/teeth.png`, + onClick: $setup.showPopup }, null, 8, ["src"]), vue.createElementVNode("view", { class: "right-container-fir-left-card-main-laba-video" }, [ vue.createElementVNode("image", { @@ -437,35 +465,37 @@ if (uni.restoreGlobal) { 2 /* CLASS */ ), - vue.createElementVNode("view", { class: "time-people-fir" }, [ - vue.createElementVNode("image", { - class: "time-people-img", - src: $setup.darkFans ? `/static/index/darkicon/zhixingpeopledark.png` : `/static/index/cardicons/zhixing.png` - }, null, 8, ["src"]), - vue.createElementVNode( - "text", - { - class: vue.normalizeClass($setup.darkFans ? `time-people-font-dark` : `time-people-font`) - }, - " 单人执行 ", - 2 - /* CLASS */ - ) - ]), - vue.createElementVNode("view", { class: "time-people-sec" }, [ - vue.createElementVNode("image", { - class: "time-people-img", - src: $setup.darkFans ? `/static/index/medium/dopeopledark.png` : `/static/index/cardicons/zhifa.png` - }, null, 8, ["src"]), - vue.createElementVNode( - "text", - { - class: vue.normalizeClass($setup.darkFans ? `time-people-font-dark` : `time-people-font`) - }, - " -- ", - 2 - /* CLASS */ - ) + vue.createElementVNode("view", { class: "time-people-two" }, [ + vue.createElementVNode("view", { class: "time-people-fir" }, [ + vue.createElementVNode("image", { + class: "time-people-img", + src: $setup.darkFans ? `/static/index/darkicon/zhixingpeopledark.png` : `/static/index/cardicons/zhixing.png` + }, null, 8, ["src"]), + vue.createElementVNode( + "text", + { + class: vue.normalizeClass($setup.darkFans ? `time-people-font-dark` : `time-people-font`) + }, + " 单人执行 ", + 2 + /* CLASS */ + ) + ]), + vue.createElementVNode("view", { class: "time-people-sec" }, [ + vue.createElementVNode("image", { + class: "time-people-img", + src: $setup.darkFans ? `/static/index/medium/dopeopledark.png` : `/static/index/cardicons/zhifa.png` + }, null, 8, ["src"]), + vue.createElementVNode( + "text", + { + class: vue.normalizeClass($setup.darkFans ? `time-people-font-dark` : `time-people-font`) + }, + " -- ", + 2 + /* CLASS */ + ) + ]) ]), vue.createElementVNode("view", { class: "time-button-view" }, [ vue.createElementVNode("view", { class: "time-button-start" }, " 开始服务 "), @@ -487,11 +517,6 @@ if (uni.restoreGlobal) { )) ], 8, ["current"]) ]), - vue.createElementVNode("image", { - class: "right-container-fir-left-card-main-right", - src: `/static/index/arrow.png`, - onClick: _cache[3] || (_cache[3] = ($event) => $setup.firstcurrentIndex === 2 ? $setup.firstcurrentIndex = 0 : $setup.firstcurrentIndex = $setup.firstcurrentIndex + 1) - }, null, 8, ["src"]), vue.createElementVNode("view", { class: "split-line-white-right-left" }, [ $setup.darkFans ? (vue.openBlock(), vue.createElementBlock("image", { key: 0, @@ -592,6 +617,25 @@ if (uni.restoreGlobal) { }, [ vue.createElementVNode("view", { class: "right-container-card" }, [ + vue.createElementVNode("view", { class: "right-container-card-right" }, [ + (vue.openBlock(), vue.createElementBlock( + vue.Fragment, + null, + vue.renderList([1, 2, 3, 4], (item, index) => { + return vue.createElementVNode("view", { + class: "", + key: index + }, [ + vue.createElementVNode("image", { + class: "right-container-card-right-img", + src: _imports_1 + }) + ]); + }), + 64 + /* STABLE_FRAGMENT */ + )) + ]), vue.createElementVNode( "text", { @@ -758,7 +802,7 @@ if (uni.restoreGlobal) { { key: index, class: vue.normalizeClass($setup.darkFans ? `dot-dark` : `dot`), - style: vue.normalizeStyle(index === $setup.firstcurrentIndexup ? { backgroundColor: `#01A0FE` } : {}) + style: vue.normalizeStyle(index === $setup.secondcurrentIndexup ? { backgroundColor: `#01A0FE` } : {}) }, null, 6 @@ -777,14 +821,14 @@ if (uni.restoreGlobal) { src: `/static/index/cardbgc/uplight.png` }, null, 8, ["src"])) : vue.createCommentVNode("v-if", true), vue.createElementVNode("swiper", { - current: $setup.firstcurrentIndexup, + current: $setup.secondcurrentIndexup, class: "swiper savehundred", circular: "", "indicator-dots": false, vertical: true, interval: 4e3, duration: 500, - onChange: $setup.onSwiperChange + onChange: $setup.onSwiperChangesec }, [ (vue.openBlock(), vue.createElementBlock( vue.Fragment, @@ -794,19 +838,14 @@ if (uni.restoreGlobal) { class: "swiper-item-flex", key: index }, [ - vue.createElementVNode("div", { class: "right-container-fir-left-card-flex" }, [ - vue.createElementVNode("image", { - class: "right-container-fir-left-card-main-left", - src: `/static/index/arrow2.png`, - onClick: _cache[4] || (_cache[4] = ($event) => $setup.secondcurrentIndex === 0 ? $setup.secondcurrentIndex = 2 : $setup.secondcurrentIndex = $setup.secondcurrentIndex - 1) - }, null, 8, ["src"]), + vue.createElementVNode("div", { class: "right-container-fir-left-card-flex-sec" }, [ vue.createElementVNode("view", { class: "uni-margin-wrap" }, [ vue.createElementVNode("swiper", { current: $setup.secondcurrentIndex, class: "swiper", circular: "", "indicator-dots": false, - autoplay: true, + autoplay: false, interval: 4e3, duration: 500 }, [ @@ -818,6 +857,7 @@ if (uni.restoreGlobal) { class: "swiper-item-flex", key: index2 }, [ + vue.createElementVNode("div", { class: "right-container-left-font-spec" }, "进行中 "), vue.createElementVNode("view", { class: "time-tra-sec" }, [ vue.createElementVNode( "view", @@ -888,6 +928,34 @@ if (uni.restoreGlobal) { /* CLASS */ ) ]), + vue.createElementVNode("view", { class: "time-people-thi" }, [ + vue.createElementVNode("image", { + class: "time-people-img", + src: $setup.darkFans ? `/static/index/darkicon/zhixingpeopledark.png` : `/static/index/cardicons/zhixing.png` + }, null, 8, ["src"]), + vue.createElementVNode( + "text", + { + class: vue.normalizeClass($setup.darkFans ? `time-people-font-dark` : `time-people-font`) + }, + " 单人执行 ", + 2 + /* CLASS */ + ), + vue.createElementVNode("image", { + class: "time-people-img", + src: $setup.darkFans ? `/static/index/medium/dopeopledark.png` : `/static/index/cardicons/zhifa.png` + }, null, 8, ["src"]), + vue.createElementVNode( + "text", + { + class: vue.normalizeClass($setup.darkFans ? `time-people-font-dark` : `time-people-font`) + }, + " 赵宇 ", + 2 + /* CLASS */ + ) + ]), vue.createElementVNode("view", { class: "time-button-view" }, [ vue.createElementVNode("view", { class: "time-button-start" }, " 开始服务 "), vue.createElementVNode( @@ -922,12 +990,7 @@ if (uni.restoreGlobal) { /* STABLE_FRAGMENT */ )) ], 8, ["current"]) - ]), - vue.createElementVNode("image", { - class: "right-container-fir-left-card-main-right", - src: `/static/index/arrow.png`, - onClick: _cache[5] || (_cache[5] = ($event) => $setup.secondcurrentIndex === 2 ? $setup.secondcurrentIndex = 0 : $setup.secondcurrentIndex = $setup.secondcurrentIndex + 1) - }, null, 8, ["src"]) + ]) ]) ]); }), @@ -942,7 +1005,7 @@ if (uni.restoreGlobal) { src: `/static/index/cardbgc/leftlight.png` }, null, 8, ["src"])) : vue.createCommentVNode("v-if", true) ]), - vue.createElementVNode("view", { class: "right-huli" }, [ + vue.createElementVNode("view", { class: "right-huli-fir" }, [ vue.createElementVNode("image", { class: "right-huli-shang", src: `/static/index/hulilist/shang.png` @@ -1062,154 +1125,128 @@ if (uni.restoreGlobal) { "view", { class: "right-container-right-father", - style: vue.normalizeStyle($setup.darkFans ? { backgroundColor: "rgb(22, 48, 76)" } : "") + style: vue.normalizeStyle($setup.darkFans ? { backgroundColor: "rgb(17, 45, 74)", backgroundImage: `none` } : { backgroundImage: `url('/static/index/mountain.png')`, backgroundPosition: `60% 50%` }) }, [ - vue.createElementVNode("view", { class: "right-container-right-title" }, [ - vue.createElementVNode( - "text", - { - class: vue.normalizeClass($setup.darkFans ? `right-container-right-text-dark` : `right-container-right-text`) - }, - "服务指令", - 2 - /* CLASS */ - ), - vue.createElementVNode("image", { - class: "right-container-right-img", - src: $setup.darkFans ? `/static/index/darkicon/diandark.png` : `/static/index/medium/whitedian.png` - }, null, 8, ["src"]) - ]), vue.createElementVNode("view", { class: "right-container-right-down-father" }, [ - vue.createElementVNode("image", { - class: "right-container-right-down-left", - src: `/static/index/arrow2.png`, - onClick: _cache[6] || (_cache[6] = ($event) => $setup.thirdcurrentIndex === 0 ? $setup.thirdcurrentIndex = 2 : $setup.thirdcurrentIndex = $setup.thirdcurrentIndex - 1) - }, null, 8, ["src"]), - vue.createElementVNode("view", { class: "uni-margin-wrap" }, [ - vue.createElementVNode("swiper", { - current: $setup.thirdcurrentIndex, - class: "swiper", - circular: "", - "indicator-dots": false, - autoplay: true, - interval: 4e3, - duration: 500 - }, [ - (vue.openBlock(), vue.createElementBlock( - vue.Fragment, - null, - vue.renderList([1, 2, 3], (item, index) => { - return vue.createElementVNode("swiper-item", { - class: "swiper-item-flex", - key: index - }, [ - vue.createElementVNode( - "view", - { - class: vue.normalizeClass($setup.darkFans ? `right-container-right-down-card-dark` : `right-container-right-down-card`) - }, - [ - vue.createElementVNode("view", { class: "right-container-right-down-card-card" }, [ + vue.createElementVNode("div", { class: "right-container-fir-left-card-flex-sec" }, [ + vue.createElementVNode("image", { + class: "right-container-fir-left-card-flex-sec-img", + src: `/static/index/baojielei.png` + }, null, 8, ["src"]), + vue.createElementVNode("div", { class: "right-container-fir-left-card-flex-sec-font" }, "保洁类"), + vue.createElementVNode("image", { + class: "right-container-fir-left-card-flex-sec-imgright-fir", + src: `/static/index/baojieleft.png` + }, null, 8, ["src"]), + vue.createElementVNode("image", { + class: "right-container-fir-left-card-flex-sec-imgright-sec", + src: `/static/index/baojieright.png` + }, null, 8, ["src"]), + vue.createElementVNode("view", { class: "uni-margin-wrap" }, [ + vue.createElementVNode("swiper", { + current: $setup.secondcurrentIndex, + class: "swiper", + circular: "", + "indicator-dots": false, + autoplay: false, + interval: 4e3, + duration: 500 + }, [ + (vue.openBlock(), vue.createElementBlock( + vue.Fragment, + null, + vue.renderList([1, 2, 3], (item, index) => { + return vue.createElementVNode("swiper-item", { + class: "swiper-item-flex", + key: index + }, [ + vue.createElementVNode("view", { class: "time-tra-thi" }, [ + vue.createElementVNode("view", { class: "time-tra-thi-zhixing" }, [ + vue.createElementVNode("div", { class: "time-tra-thi-zhixing-font" }, "待执行 ") + ]), + vue.createElementVNode( + "view", + { + class: vue.normalizeClass($setup.darkFans ? `time-font-dark` : `time-font`) + }, + " 10:00 - 10:10 ", + 2 + /* CLASS */ + ), + vue.createElementVNode( + "view", + { + class: vue.normalizeClass($setup.darkFans ? `time-text-dark` : `time-text`) + }, + " 为老人提供口腔清洁器具,牙膏、牙刷及水杯,看护完成 ", + 2 + /* CLASS */ + ), + vue.createElementVNode("view", { class: "time-people-two" }, [ vue.createElementVNode("image", { - class: "right-container-right-down-card-card-type", - src: $setup.darkFans ? `/static/index/darkicon/baojieleidark.png` : `/static/index/label.png` + class: "time-people-img", + src: $setup.darkFans ? `/static/index/darkicon/zhixingpeopledark.png` : `/static/index/cardicons/zhixing.png` }, null, 8, ["src"]), vue.createElementVNode( - "div", + "text", { - class: vue.normalizeClass($setup.darkFans ? `right-container-right-down-card-card-font-dark` : `right-container-right-down-card-card-font`) + class: vue.normalizeClass($setup.darkFans ? `time-people-font-dark` : `time-people-font`) }, - " 保洁类", + " 单人执行 ", 2 /* CLASS */ ), vue.createElementVNode("image", { - class: "right-container-right-down-card-img", - src: `/static/index/project3.png` + class: "time-people-img", + src: $setup.darkFans ? `/static/index/medium/dopeopledark.png` : `/static/index/cardicons/zhifa.png` }, null, 8, ["src"]), - vue.createElementVNode("view", { class: "" }, [ - vue.createElementVNode( - "text", - { - class: vue.normalizeClass($setup.darkFans ? `right-container-right-down-card-font-dark` : `right-container-right-down-card-font`) - }, - " 更换纸尿裤 ", - 2 - /* CLASS */ - ) - ]) + vue.createElementVNode( + "text", + { + class: vue.normalizeClass($setup.darkFans ? `time-people-font-dark` : `time-people-font`) + }, + " 王金福 / 李贵田 ", + 2 + /* CLASS */ + ) ]), - vue.createElementVNode("view", { class: "right-container-right-down-card-line" }), - vue.createElementVNode("view", { class: "time-tra-next" }, [ + vue.createElementVNode("view", { class: "time-button-view" }, [ + vue.createElementVNode("view", { class: "time-button-start" }, " 开始服务 "), vue.createElementVNode( "view", { - class: vue.normalizeClass($setup.darkFans ? `time-font-dark` : `time-font`) + class: vue.normalizeClass($setup.darkFans ? `time-button-end-dark` : `time-button-end`) }, - " 10:00 - 10:10 ", + " 服务结束 ", 2 /* CLASS */ - ), - vue.createElementVNode("view", { class: "time-people" }, [ - vue.createElementVNode("image", { - class: "time-people-img", - src: $setup.darkFans ? `/static/index/darkicon/zhixingrenyuanddark.png` : `/static/index/cardicons/zhifa.png` - }, null, 8, ["src"]), - vue.createElementVNode( - "text", - { - class: vue.normalizeClass($setup.darkFans ? `time-people-font-dark` : `time-people-font`) - }, - " 协作执行 ", - 2 - /* CLASS */ - ) - ]), - vue.createElementVNode("view", { class: "time-people" }, [ - vue.createElementVNode("image", { - class: "time-people-img", - src: $setup.darkFans ? `/static/index/darkicon/zhixingfangshidark.png` : `/static/index/cardicons/zhixing.png` - }, null, 8, ["src"]), - vue.createElementVNode( - "text", - { - class: vue.normalizeClass($setup.darkFans ? `time-people-font-dark` : `time-people-font`) - }, - " 王金福 / 李贵田 ", - 2 - /* CLASS */ - ) - ]), - vue.createElementVNode("view", { class: "time-button-view-fin" }, [ - vue.createElementVNode("view", { class: "time-button-start" }, " 开始服务 "), - vue.createElementVNode( - "view", - { - class: vue.normalizeClass($setup.darkFans ? `time-button-end-dark` : `time-button-end`) - }, - " 服务结束 ", - 2 - /* CLASS */ - ) - ]) + ) ]) - ], - 2 - /* CLASS */ - ) - ]); - }), - 64 - /* STABLE_FRAGMENT */ - )) - ], 8, ["current"]) - ]), - vue.createElementVNode("image", { - class: "right-container-right-down-right", - src: `/static/index/arrow.png`, - onClick: _cache[7] || (_cache[7] = ($event) => $setup.thirdcurrentIndex === 2 ? $setup.thirdcurrentIndex = 0 : $setup.thirdcurrentIndex = $setup.thirdcurrentIndex + 1) - }, null, 8, ["src"]) + ]), + vue.createElementVNode("view", { class: "time-tra-thi-photo" }, [ + vue.createElementVNode("image", { + class: "time-tra-thi-photo-img", + src: `/static/index/project3.png` + }, null, 8, ["src"]), + vue.createElementVNode( + "text", + { + class: vue.normalizeClass($setup.darkFans ? `time-tra-thi-photo-font-dark` : `time-tra-thi-photo-font`) + }, + " 更换纸尿裤 ", + 2 + /* CLASS */ + ) + ]) + ]); + }), + 64 + /* STABLE_FRAGMENT */ + )) + ], 8, ["current"]) + ]) + ]) ]) ], 4 @@ -1229,7 +1266,7 @@ if (uni.restoreGlobal) { "image", { class: "under-father-light", - src: _imports_1 + src: _imports_2 }, null, 512 @@ -1247,6 +1284,341 @@ if (uni.restoreGlobal) { /* KEYED_FRAGMENT */ )) ]) + ]), + vue.createCommentVNode(" 弹出层 "), + vue.withDirectives(vue.createElementVNode( + "view", + { + class: "popup-overlay", + onClick: $setup.closePopup + }, + [ + vue.createElementVNode( + "view", + { + class: "popup-overlay-content", + onClick: _cache[2] || (_cache[2] = vue.withModifiers(() => { + }, ["stop"])), + style: vue.normalizeStyle({ width: $setup.widthCom + "rpx", height: $setup.heightCom + "rpx", top: $setup.topCom + "rpx", left: $setup.leftCom + "rpx" }) + }, + [ + vue.createElementVNode("view", { class: "right-container-fir-left-nav-open" }, [ + vue.createElementVNode( + "view", + { + class: vue.normalizeClass($setup.darkFans ? `right-container-fir-left-card-dark` : `right-container-fir-left-card`) + }, + [ + vue.createElementVNode("image", { + class: "right-container-fir-left-card-hulilei", + src: `/static/index/hulilei.png` + }, null, 8, ["src"]), + vue.createElementVNode("div", { + class: "right-container-fir-left-card-hulilei-font", + onClick: $setup.closePopup + }, "护理类"), + $setup.darkFans ? (vue.openBlock(), vue.createElementBlock("image", { + key: 0, + class: "card-upfaguang", + style: vue.normalizeStyle($setup.isPopupVisiblefiropen ? { top: `680rpx` } : `{}`), + src: `/static/index/cardbgc/uplight.png` + }, null, 12, ["src"])) : vue.createCommentVNode("v-if", true), + vue.createElementVNode("view", { class: "right-container-fir-left-card-main" }, [ + vue.createElementVNode("swiper", { + current: $setup.firstcurrentIndexup, + class: "swiper savehundred", + circular: "", + "indicator-dots": false, + vertical: true, + "disable-touch": "" + }, [ + (vue.openBlock(), vue.createElementBlock( + vue.Fragment, + null, + vue.renderList([1, 2, 3], (item, index) => { + return vue.createElementVNode("swiper-item", { + class: "swiper-item-flex", + key: index + }, [ + vue.createElementVNode("view", { class: "right-container-fir-left-card-flex" }, [ + vue.createElementVNode("view", { class: "uni-margin-wrap-fir" }, [ + vue.createElementVNode("swiper", { + current: $setup.firstcurrentIndex, + class: "swiper", + circular: "", + style: vue.normalizeStyle($setup.isPopupVisiblefiropen ? { height: `700rpx` } : `{}`), + "indicator-dots": false, + interval: 4e3, + duration: 500, + "disable-touch": "" + }, [ + (vue.openBlock(), vue.createElementBlock( + vue.Fragment, + null, + vue.renderList([1, 2, 3], (item2, index2) => { + return vue.createElementVNode("swiper-item", { + class: "swiper-item-flex", + key: index2 + }, [ + vue.createElementVNode("view", { class: "right-container-fir-left-card-card" }, [ + vue.createElementVNode( + "view", + { + class: "right-container-fir-left-card-zhixing", + style: vue.normalizeStyle($setup.isPopupVisiblefiropen ? { top: `40rpx`, left: `1300rpx` } : `{}`) + }, + [ + vue.createElementVNode( + "div", + { + class: "right-container-fir-left-card-zhixing-font", + style: vue.normalizeStyle($setup.isPopupVisiblefiropen ? { fontSize: `30rpx` } : `{}`) + }, + " 待执行 ", + 4 + /* STYLE */ + ) + ], + 4 + /* STYLE */ + ), + vue.createElementVNode("image", { + class: "right-container-fir-left-card-img", + style: vue.normalizeStyle($setup.isPopupVisiblefiropen ? { width: `600rpx`, height: `500rpx` } : `{}`), + src: `/static/index/teeth.png`, + onClick: $setup.closePopup + }, null, 12, ["src"]), + vue.createElementVNode("view", { class: "right-container-fir-left-card-main-laba-video" }, [ + vue.createElementVNode("image", { + class: "right-container-fir-left-card-main-laba", + style: vue.normalizeStyle($setup.isPopupVisiblefiropen ? { width: `55rpx`, height: `55rpx` } : `{}`), + src: $setup.darkFans ? `/static/index/darkicon/labadark.png` : `/static/index/laba.png` + }, null, 12, ["src"]), + vue.createElementVNode( + "text", + { + style: vue.normalizeStyle($setup.isPopupVisiblefiropen ? { fontSize: `42rpx` } : `{}`), + class: vue.normalizeClass($setup.darkFans ? `right-container-fir-left-card-main-font-dark` : `right-container-fir-left-card-main-font`) + }, + " 准备洁具(口腔) ", + 6 + /* CLASS, STYLE */ + ), + vue.createElementVNode("image", { + class: "right-container-fir-left-card-main-video", + style: vue.normalizeStyle($setup.isPopupVisiblefiropen ? { width: `55rpx`, height: `55rpx` } : `{}`), + src: $setup.darkFans ? `/static/index/indexvideo.png` : `/static/index/indexvideo.png` + }, null, 12, ["src"]) + ]) + ]), + vue.createElementVNode( + "view", + { + class: "split-line", + style: vue.normalizeStyle($setup.isPopupVisiblefiropen ? { height: `300rpx` } : `{}`) + }, + null, + 4 + /* STYLE */ + ), + vue.createElementVNode("view", { class: "time-tra-fir" }, [ + vue.createElementVNode( + "view", + { + class: vue.normalizeClass($setup.darkFans ? `time-font-dark` : `time-font`), + style: vue.normalizeStyle($setup.isPopupVisiblefiropen ? { fontSize: `100rpx` } : `{}`) + }, + " 10:00 - 10:10 ", + 6 + /* CLASS, STYLE */ + ), + vue.createElementVNode( + "view", + { + class: vue.normalizeClass($setup.darkFans ? `time-text-dark` : `time-text`), + style: vue.normalizeStyle($setup.isPopupVisiblefiropen ? { fontSize: `60rpx`, lineHeight: `70rpx`, width: `800rpx` } : `{}`) + }, + " 为老人提供口腔清洁器具,牙膏、牙刷及水杯,看护完成 ", + 6 + /* CLASS, STYLE */ + ), + vue.createElementVNode( + "view", + { + class: "time-people-two", + style: vue.normalizeStyle($setup.isPopupVisiblefiropen ? { marginBottom: "60rpx" } : `{}`) + }, + [ + vue.createElementVNode("view", { class: "time-people-fir" }, [ + vue.createElementVNode("image", { + class: "time-people-img", + src: $setup.darkFans ? `/static/index/darkicon/zhixingpeopledark.png` : `/static/index/cardicons/zhixing.png`, + style: vue.normalizeStyle($setup.isPopupVisiblefiropen ? { width: `55rpx`, height: `55rpx` } : `{}`) + }, null, 12, ["src"]), + vue.createElementVNode( + "text", + { + class: vue.normalizeClass($setup.darkFans ? `time-people-font-dark` : `time-people-font`), + style: vue.normalizeStyle($setup.isPopupVisiblefiropen ? { fontSize: `42rpx`, marginRight: "40rpx" } : `{}`) + }, + " 单人执行 ", + 6 + /* CLASS, STYLE */ + ) + ]), + vue.createElementVNode("view", { class: "time-people-sec" }, [ + vue.createElementVNode("image", { + class: "time-people-img", + src: $setup.darkFans ? `/static/index/medium/dopeopledark.png` : `/static/index/cardicons/zhifa.png`, + style: vue.normalizeStyle($setup.isPopupVisiblefiropen ? { width: `55rpx`, height: `55rpx` } : `{}`) + }, null, 12, ["src"]), + vue.createElementVNode( + "text", + { + class: vue.normalizeClass($setup.darkFans ? `time-people-font-dark` : `time-people-font`), + style: vue.normalizeStyle($setup.isPopupVisiblefiropen ? { fontSize: `42rpx` } : `{}`) + }, + " -- ", + 6 + /* CLASS, STYLE */ + ) + ]) + ], + 4 + /* STYLE */ + ), + vue.createElementVNode("view", { class: "time-button-view" }, [ + vue.createElementVNode( + "view", + { + class: "time-button-start", + style: vue.normalizeStyle($setup.isPopupVisiblefiropen ? { width: `350rpx`, height: `110rpx`, borderRadius: `80rpx` } : `{}`) + }, + " 开始服务 ", + 4 + /* STYLE */ + ), + vue.createElementVNode( + "view", + { + class: vue.normalizeClass($setup.darkFans ? `time-button-end-dark` : `time-button-end`), + style: vue.normalizeStyle($setup.isPopupVisiblefiropen ? { width: `350rpx`, height: `110rpx`, borderRadius: `80rpx` } : `{}`) + }, + " 服务结束 ", + 6 + /* CLASS, STYLE */ + ) + ]) + ]) + ]); + }), + 64 + /* STABLE_FRAGMENT */ + )) + ], 12, ["current"]) + ]), + vue.createElementVNode("view", { class: "split-line-white-right-left" }, [ + $setup.darkFans ? (vue.openBlock(), vue.createElementBlock("image", { + key: 0, + class: "split-line-white-img", + src: `/static/index/cardbgc/leftlight.png` + }, null, 8, ["src"])) : vue.createCommentVNode("v-if", true) + ]) + ]) + ]); + }), + 64 + /* STABLE_FRAGMENT */ + )) + ], 8, ["current"]), + vue.createElementVNode("view", { class: "right-huli-sec" }, [ + vue.createElementVNode("image", { + class: "right-huli-shang", + src: `/static/index/hulilist/shang.png` + }, null, 8, ["src"]), + !$setup.darkFans ? (vue.openBlock(), vue.createElementBlock("scroll-view", { + key: 0, + "show-scrollbar": false, + "scroll-y": "true", + class: "right-huli-view" + }, [ + (vue.openBlock(true), vue.createElementBlock( + vue.Fragment, + null, + vue.renderList($setup.huliList, (item, index) => { + return vue.openBlock(), vue.createElementBlock("view", { + key: index, + class: "right-huli-view-dis" + }, [ + vue.createElementVNode("image", { + class: "right-huli-img", + src: item.url + }, null, 8, ["src"]), + vue.createElementVNode( + "text", + { class: "right-huli-text" }, + vue.toDisplayString(item.name), + 1 + /* TEXT */ + ) + ]); + }), + 128 + /* KEYED_FRAGMENT */ + )) + ])) : vue.createCommentVNode("v-if", true), + vue.createCommentVNode(" 暗黑模式 "), + $setup.darkFans ? (vue.openBlock(), vue.createElementBlock("scroll-view", { + key: 1, + "show-scrollbar": false, + "scroll-y": "true", + class: "right-huli-view" + }, [ + (vue.openBlock(true), vue.createElementBlock( + vue.Fragment, + null, + vue.renderList($setup.huliListDark, (item, index) => { + return vue.openBlock(), vue.createElementBlock("view", { + key: index, + class: "right-huli-view-dis" + }, [ + vue.createElementVNode("image", { + class: "right-huli-img", + src: item.url + }, null, 8, ["src"]), + vue.createElementVNode( + "text", + { class: "right-huli-text-dark" }, + vue.toDisplayString(item.name), + 1 + /* TEXT */ + ) + ]); + }), + 128 + /* KEYED_FRAGMENT */ + )) + ])) : vue.createCommentVNode("v-if", true), + vue.createElementVNode("image", { + class: "right-huli-xia", + src: `/static/index/hulilist/xia.png` + }, null, 8, ["src"]) + ]) + ]) + ], + 2 + /* CLASS */ + ) + ]) + ], + 4 + /* STYLE */ + ) + ], + 512 + /* NEED_PATCH */ + ), [ + [vue.vShow, $setup.isPopupVisible] ]) ]) ], diff --git a/unpackage/dist/dev/app-plus/manifest.json b/unpackage/dist/dev/app-plus/manifest.json index d2f1698..35ad2f0 100644 --- a/unpackage/dist/dev/app-plus/manifest.json +++ b/unpackage/dist/dev/app-plus/manifest.json @@ -4,13 +4,13 @@ "iPhone", "iPad" ], - "id": "", - "name": "hil", + "id": "__UNI__FB2D473", + "name": "养老App", "version": { "name": "1.0.0", "code": "100" }, - "description": "", + "description": "养老App", "developer": { "name": "", "email": "", diff --git a/unpackage/dist/dev/app-plus/pages/index/index.css b/unpackage/dist/dev/app-plus/pages/index/index.css index 29d308d..ce62279 100644 --- a/unpackage/dist/dev/app-plus/pages/index/index.css +++ b/unpackage/dist/dev/app-plus/pages/index/index.css @@ -3,7 +3,7 @@ position: relative; width: 100%; height: 100vh; - background-image: url('../../static/index/lightbgc.png'); + background-image: url('../../static/index/lightbgcnew.png'); background-size: cover; background-position: center center; overflow: hidden; @@ -24,20 +24,34 @@ } .right-container .right-container-sec[data-v-1cf27b2a] { width: 100%; - margin-top: 0.9375rem; display: flex; position: relative; } +.right-container .right-container-sec .right-container-left-font-spec[data-v-1cf27b2a] { + position: absolute; + top: 5.625rem; + left: 18.125rem; + width: 3.125rem; + height: 1.25rem; + font-size: 0.78125rem; + border-radius: 0.15625rem; + color: #fff; + z-index: 10; + background-color: #34c678; + display: flex; + justify-content: center; + align-items: center; +} .right-container .right-container-sec .right-container-fir-left-carousel[data-v-1cf27b2a] { position: absolute; - right: 7.8125rem; - top: 0.15625rem; + right: 7.65625rem; + top: 0.53125rem; } .right-container .right-container-sec .right-container-fir-left-carousel .carousel[data-v-1cf27b2a] { position: relative; width: 0.9375rem; /* 轮播图的宽度 */ - height: 3.125rem; + height: 2.5rem; /* 轮播图的高度 */ /* 背景色(示例) */ } @@ -74,15 +88,17 @@ } .right-container .right-container-sec .right-container-right-father[data-v-1cf27b2a] { margin-left: 2%; - width: 40%; - height: 18.75rem; + width: 41%; + height: 19.6875rem; border-radius: 1.09375rem; border: 0.03125rem solid #fff; background-color: rgba(200, 216, 238, 0.8); + background-position: 60% 50%; /* 背景颜色 #f4f9ff,透明度 70% */ position: relative; display: flex; flex-direction: column; + box-shadow: 0px 0.25rem 0.5rem rgba(0, 0, 0, 0.3); } .right-container .right-container-sec .right-container-right-father .uni-margin-wrap[data-v-1cf27b2a] { margin-top: 6.25rem; @@ -107,10 +123,10 @@ .right-container .right-container-sec .right-container-right-father .time-tra-next .time-button-view-fin[data-v-1cf27b2a] { display: flex; margin-top: 1.5625rem; - margin-left: -0.9375rem; + margin-left: -1.5625rem; } .right-container .right-container-sec .right-container-right-father .time-tra-next .time-button-view-fin .time-button-start[data-v-1cf27b2a] { - width: 6.25rem; + width: 6.875rem; height: 2.5rem; border-radius: 1.5625rem; background: linear-gradient(to top, #047ADB, #0EA7DD); @@ -119,29 +135,29 @@ justify-content: center; align-items: center; color: #fff; - font-size: 0.9375rem; + font-size: 1rem; margin-right: 0.78125rem; box-shadow: 0.09375rem 0.09375rem 0.3125rem rgba(0, 0, 0, 0.3); } .right-container .right-container-sec .right-container-right-father .time-tra-next .time-button-view-fin .time-button-end[data-v-1cf27b2a] { - width: 6.25rem; + width: 6.875rem; height: 2.5rem; border-radius: 1.5625rem; background-color: #fff; display: flex; justify-content: center; align-items: center; - font-size: 0.9375rem; + font-size: 1rem; box-shadow: 0.09375rem 0.09375rem 0.3125rem rgba(0, 0, 0, 0.3); } .right-container .right-container-sec .right-container-right-father .time-tra-next .time-button-view-fin .time-button-end-dark[data-v-1cf27b2a] { - width: 6.25rem; + width: 6.875rem; height: 2.5rem; border-radius: 1.5625rem; display: flex; justify-content: center; align-items: center; - font-size: 0.9375rem; + font-size: 1rem; box-shadow: 0.09375rem 0.09375rem 0.3125rem rgba(0, 0, 0, 0.3); background: linear-gradient(to top, #6B87BA, #FFFFFF); /* 渐变从下到上 */ @@ -156,13 +172,12 @@ margin-right: 0.15625rem; } .right-container .right-container-sec .right-container-right-father .time-tra-next .time-people .time-people-font[data-v-1cf27b2a] { - color: #586787; - font-size: 1.09375rem; + font-size: 0.9375rem; margin-right: 2.8125rem; } .right-container .right-container-sec .right-container-right-father .time-tra-next .time-people .time-people-font-dark[data-v-1cf27b2a] { color: #CDD6EA; - font-size: 1.09375rem; + font-size: 0.9375rem; margin-right: 2.8125rem; } .right-container .right-container-sec .right-container-right-father .time-tra-next .time-font[data-v-1cf27b2a] { @@ -185,7 +200,6 @@ } .right-container .right-container-sec .right-container-right-father .time-tra-next .time-text[data-v-1cf27b2a] { margin-left: 0.3125rem; - color: #364464; font-size: 2.1875rem; font-weight: 700; width: 25rem; @@ -213,10 +227,9 @@ margin-top: -4.6875rem; } .right-container .right-container-sec .right-container-right-father .right-container-right-down-father .right-container-right-down-card-dark[data-v-1cf27b2a] { - margin-left: 0.15625rem; - margin-right: 0.15625rem; + margin-left: 1.5625rem; margin-top: 1.875rem; - width: 99%; + width: 23.84375rem; height: 13.4375rem; border-radius: 1.25rem; position: relative; @@ -231,8 +244,8 @@ height: 6.25rem; /* 高度占满父容器 */ background: linear-gradient(to top, rgba(0, 0, 0, 0) 0%, #808080 50%, rgba(0, 0, 0, 0) 100%); - margin-left: 0; - margin-right: 0.3125rem; + margin-left: -0.625rem; + margin-right: 0.9375rem; margin-top: 3.125rem; } .right-container .right-container-sec .right-container-right-father .right-container-right-down-father .right-container-right-down-card-dark .right-container-right-down-card-card[data-v-1cf27b2a] { @@ -265,8 +278,8 @@ color: #fff; } .right-container .right-container-sec .right-container-right-father .right-container-right-down-father .right-container-right-down-card-dark .right-container-right-down-card-card .right-container-right-down-card-img[data-v-1cf27b2a] { - width: 8.75rem; - height: 7.1875rem; + width: 7.1875rem; + height: 6.25rem; margin-top: 0.9375rem; } .right-container .right-container-sec .right-container-right-father .right-container-right-down-father .right-container-right-down-card-dark .right-container-right-down-card-card .right-container-right-down-card-font[data-v-1cf27b2a] { @@ -279,15 +292,15 @@ margin-top: 0.9375rem; } .right-container .right-container-sec .right-container-right-father .right-container-right-down-father .right-container-right-down-card[data-v-1cf27b2a] { - margin-left: 0.15625rem; - margin-right: 0.15625rem; + margin-left: 1.5625rem; margin-top: 1.875rem; - width: 99%; + width: 23.84375rem; height: 13.4375rem; border-radius: 1.25rem; position: relative; display: flex; - border: 0.0625rem solid black; + border: 0.03125rem solid black; + box-shadow: 0px 0.25rem 0.5rem rgba(0, 0, 0, 0.3); } .right-container .right-container-sec .right-container-right-father .right-container-right-down-father .right-container-right-down-card .right-container-right-down-card-line[data-v-1cf27b2a] { width: 1px; @@ -295,8 +308,8 @@ height: 6.25rem; /* 高度占满父容器 */ background: linear-gradient(to top, rgba(0, 0, 0, 0) 0%, #808080 50%, rgba(0, 0, 0, 0) 100%); - margin-left: 0; - margin-right: 0.3125rem; + margin-left: -0.625rem; + margin-right: 0.9375rem; margin-top: 3.125rem; } .right-container .right-container-sec .right-container-right-father .right-container-right-down-father .right-container-right-down-card .right-container-right-down-card-card[data-v-1cf27b2a] { @@ -322,8 +335,8 @@ color: #414F6E; } .right-container .right-container-sec .right-container-right-father .right-container-right-down-father .right-container-right-down-card .right-container-right-down-card-card .right-container-right-down-card-img[data-v-1cf27b2a] { - width: 8.75rem; - height: 7.1875rem; + width: 7.1875rem; + height: 6.25rem; margin-top: 0.9375rem; } .right-container .right-container-sec .right-container-right-father .right-container-right-down-father .right-container-right-down-card .right-container-right-down-card-card .right-container-right-down-card-font[data-v-1cf27b2a] { @@ -367,7 +380,7 @@ } .right-container .right-container-sec .right-container-left[data-v-1cf27b2a] { width: 55%; - height: 18.75rem; + height: 19.6875rem; border-radius: 1.40625rem; border: 0.03125rem solid #fff; /* 背景颜色 #f4f9ff,透明度 70% */ @@ -377,14 +390,15 @@ align-items: center; background-color: rgba(255, 255, 255, 0.5); /* 白色背景透明度为 10% */ - background-image: url('../../static/index/cardbgc/newbgc.png'); - background-position: 10% 60%; + background-image: url('../../static/index/mountain.png'); + background-position: 70% 45%; overflow: hidden; + box-shadow: 0px 0.25rem 0.5rem rgba(0, 0, 0, 0.3); /* 背景图片从左上角25%和30%的位置开始 */ } .right-container .right-container-sec .right-container-left-dark[data-v-1cf27b2a] { width: 55%; - height: 18.75rem; + height: 19.6875rem; border-radius: 1.40625rem; border: 0.03125rem solid #fff; background-color: #16304c; @@ -403,6 +417,7 @@ } .right-container .right-container-sec .uni-margin-wrap .swiper .swiper-item-flex[data-v-1cf27b2a] { display: flex; + position: relative; } .right-container .right-container-sec .uni-margin-wrap .swiper .swiper-item[data-v-1cf27b2a] { display: block; @@ -414,10 +429,9 @@ height: 1.5625rem; width: 1.5625rem; margin-right: 0.3125rem; - margin-left: 0.3125rem; z-index: 11; } -.right-container .right-container-sec .right-huli[data-v-1cf27b2a] { +.right-container .right-container-sec .right-huli-fir[data-v-1cf27b2a] { width: 7.8125rem; height: 100%; margin-top: 0; @@ -426,7 +440,8 @@ align-items: center; flex-direction: column; } -.right-container .right-container-sec .right-huli .right-huli-view[data-v-1cf27b2a] { +.right-container .right-container-sec .right-huli-fir .right-huli-view[data-v-1cf27b2a] { + margin-left: 0.25rem; height: 23.4375rem; overflow: auto; display: flex; @@ -435,7 +450,7 @@ flex-direction: column; box-sizing: border-box; } -.right-container .right-container-sec .right-huli .right-huli-view .right-huli-view-dis[data-v-1cf27b2a] { +.right-container .right-container-sec .right-huli-fir .right-huli-view .right-huli-view-dis[data-v-1cf27b2a] { display: flex; justify-content: center; align-items: center; @@ -443,29 +458,29 @@ width: 100%; height: 4.6875rem; } -.right-container .right-container-sec .right-huli .right-huli-view .right-huli-view-dis .right-huli-img[data-v-1cf27b2a] { - width: 1.875rem; - height: 1.875rem; +.right-container .right-container-sec .right-huli-fir .right-huli-view .right-huli-view-dis .right-huli-img[data-v-1cf27b2a] { + width: 2.1875rem; + height: 2.1875rem; } -.right-container .right-container-sec .right-huli .right-huli-view .right-huli-view-dis .right-huli-text[data-v-1cf27b2a] { +.right-container .right-container-sec .right-huli-fir .right-huli-view .right-huli-view-dis .right-huli-text[data-v-1cf27b2a] { width: 100%; height: 0.3125rem; font-size: 0.78125rem; text-align: center; } -.right-container .right-container-sec .right-huli .right-huli-view .right-huli-view-dis .right-huli-text-dark[data-v-1cf27b2a] { +.right-container .right-container-sec .right-huli-fir .right-huli-view .right-huli-view-dis .right-huli-text-dark[data-v-1cf27b2a] { width: 100%; height: 0.3125rem; font-size: 0.78125rem; text-align: center; color: #fff; } -.right-container .right-container-sec .right-huli .right-huli-shang[data-v-1cf27b2a] { +.right-container .right-container-sec .right-huli-fir .right-huli-shang[data-v-1cf27b2a] { margin-top: 1.25rem; width: 0.9375rem; height: 0.9375rem; } -.right-container .right-container-sec .right-huli .right-huli-xia[data-v-1cf27b2a] { +.right-container .right-container-sec .right-huli-fir .right-huli-xia[data-v-1cf27b2a] { margin-bottom: 1.25rem; width: 0.9375rem; height: 0.9375rem; @@ -475,6 +490,7 @@ flex-direction: column; justify-content: center; align-items: center; + margin-left: 1.5625rem; } .right-container .right-container-sec .right-container-photo .right-container-photo-img[data-v-1cf27b2a] { width: 9.6875rem; @@ -494,14 +510,13 @@ .right-container .right-container-sec .right-container-fir-left-card-main-left[data-v-1cf27b2a] { height: 1.5625rem; width: 1.5625rem; - margin-right: 0.6875rem; margin-left: 0.9375rem; } .right-container .right-container-sec .right-container-left-type[data-v-1cf27b2a] { position: absolute; top: 1.3125rem; left: -0.46875rem; - width: 7.1875rem; + width: 7.34375rem; height: 2.28125rem; z-index: 10; } @@ -513,11 +528,161 @@ color: #fff; z-index: 10; } -.right-container .right-container-sec .time-tra-sec[data-v-1cf27b2a] { - margin-left: 0; - margin-top: 3.125rem; +.right-container .right-container-sec .time-tra-thi[data-v-1cf27b2a] { + margin-left: 2.5rem; + margin-top: 2.1875rem; height: 100%; - width: 21.875rem; + width: 17.1875rem; + position: relative; +} +.right-container .right-container-sec .time-tra-thi .time-text[data-v-1cf27b2a] { + margin-left: 0.3125rem; + font-size: 1.09375rem; + width: 14.0625rem; + margin-bottom: 1.25rem; + line-height: 1.25rem; +} +.right-container .right-container-sec .time-tra-thi .time-text-dark[data-v-1cf27b2a] { + margin-left: 0.3125rem; + color: #CDD6EA; + font-size: 1.09375rem; + width: 14.0625rem; + margin-bottom: 1.25rem; + line-height: 1.25rem; +} +.right-container .right-container-sec .time-tra-thi .time-tra-thi-zhixing[data-v-1cf27b2a] { + position: absolute; + top: 2.34375rem; + left: 14.0625rem; +} +.right-container .right-container-sec .time-tra-thi .time-tra-thi-zhixing-font[data-v-1cf27b2a] { + position: absolute; + top: 1.875rem; + left: 0.3125rem; + width: 3.125rem; + height: 1.25rem; + font-size: 0.78125rem; + border-radius: 0.15625rem; + color: #fff; + z-index: 10; + background-color: #f37b5b; + display: flex; + justify-content: center; + align-items: center; +} +.right-container .right-container-sec .time-tra-thi .time-people-two[data-v-1cf27b2a] { + display: flex; + margin-top: 1.25rem; + margin-bottom: 1.25rem; +} +.right-container .right-container-sec .time-tra-thi .time-people-img[data-v-1cf27b2a] { + width: 1.3125rem; + height: 1.3125rem; + margin-right: 0.3125rem; +} +.right-container .right-container-sec .time-tra-thi .time-people-font[data-v-1cf27b2a] { + font-size: 0.9375rem; + margin-right: 0.625rem; +} +.right-container .right-container-sec .time-tra-thi .time-people-font-dark[data-v-1cf27b2a] { + color: #CDD6EA; + font-size: 0.9375rem; + margin-right: 0.625rem; +} +.right-container .right-container-sec .time-tra-thi .time-people-thi[data-v-1cf27b2a] { + display: flex; +} +.right-container .right-container-sec .time-tra-thi .time-people-thi .time-people-img[data-v-1cf27b2a] { + width: 1.3125rem; + height: 1.3125rem; + margin-right: 0.15625rem; + margin-left: 0.15625rem; +} +.right-container .right-container-sec .time-tra-thi .time-people-thi .time-people-font[data-v-1cf27b2a] { + font-size: 0.9375rem; + margin-right: 0.625rem; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; +} +.right-container .right-container-sec .time-tra-thi .time-people-thi .time-people-font-dark[data-v-1cf27b2a] { + color: #CDD6EA; + font-size: 0.9375rem; + margin-right: 0.625rem; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; +} +.right-container .right-container-sec .time-tra-thi .time-button-view[data-v-1cf27b2a] { + display: flex; + margin-left: 0; +} +.right-container .right-container-sec .time-tra-thi .time-button-view .time-button-start[data-v-1cf27b2a] { + width: 7.1875rem; + height: 2.5rem; + border-radius: 1.25rem; + background: linear-gradient(to bottom, #AF8ED7, #4D3E9B); + border-left: 0.0625rem solid #fff; + display: flex; + justify-content: center; + align-items: center; + color: #fff; + font-size: 1rem; + margin-right: 0.78125rem; + box-shadow: 0.09375rem 0.09375rem 0.3125rem rgba(0, 0, 0, 0.3); +} +.right-container .right-container-sec .time-tra-thi .time-button-view .time-button-end[data-v-1cf27b2a] { + width: 7.1875rem; + height: 2.5rem; + border-radius: 1.25rem; + background-color: #fff; + display: flex; + justify-content: center; + align-items: center; + font-size: 1rem; + box-shadow: 0.09375rem 0.09375rem 0.3125rem rgba(0, 0, 0, 0.3); +} +.right-container .right-container-sec .time-tra-thi .time-button-view .time-button-end-dark[data-v-1cf27b2a] { + width: 7.1875rem; + height: 2.5rem; + border-radius: 1.25rem; + display: flex; + justify-content: center; + align-items: center; + font-size: 1rem; + box-shadow: 0.09375rem 0.09375rem 0.3125rem rgba(0, 0, 0, 0.3); + background: linear-gradient(to top, #6B87BA, #FFFFFF); +} +.right-container .right-container-sec .time-tra-thi .time-font[data-v-1cf27b2a] { + font-size: 2.1875rem; + margin-top: 3.75rem; + margin-bottom: 1.25rem; + font-weight: 700; + background: linear-gradient(to bottom, #7080A1, #263556); + -webkit-background-clip: text; + color: transparent; +} +.right-container .right-container-sec .time-tra-thi .time-font-dark[data-v-1cf27b2a] { + font-size: 2.1875rem; + margin-top: 3.75rem; + margin-bottom: 1.25rem; + background: linear-gradient(to bottom, #FFFFFF, #B2C8E2); + -webkit-background-clip: text; + color: transparent; + font-weight: 700; +} +.right-container .right-container-sec .time-tra-thi .time-text-img[data-v-1cf27b2a] { + position: absolute; + top: 0; + left: 9.375rem; + width: 2.5rem; + height: 2.5rem; +} +.right-container .right-container-sec .time-tra-sec[data-v-1cf27b2a] { + margin-left: 2.5rem; + margin-top: 3.4375rem; + height: 100%; + width: 15.625rem; overflow: hidden; } .right-container .right-container-sec .time-tra-sec .time-people-thi[data-v-1cf27b2a] { @@ -531,7 +696,6 @@ margin-left: 0.15625rem; } .right-container .right-container-sec .time-tra-sec .time-people-thi .time-people-font[data-v-1cf27b2a] { - color: #586787; font-size: 0.9375rem; margin-right: 0.625rem; text-overflow: ellipsis; @@ -561,7 +725,7 @@ justify-content: center; align-items: center; color: #fff; - font-size: 0.9375rem; + font-size: 1rem; margin-right: 0.78125rem; box-shadow: 0.09375rem 0.09375rem 0.3125rem rgba(0, 0, 0, 0.3); } @@ -573,7 +737,7 @@ display: flex; justify-content: center; align-items: center; - font-size: 0.9375rem; + font-size: 1rem; box-shadow: 0.09375rem 0.09375rem 0.3125rem rgba(0, 0, 0, 0.3); } .right-container .right-container-sec .time-tra-sec .time-button-view .time-button-end-dark[data-v-1cf27b2a] { @@ -583,13 +747,13 @@ display: flex; justify-content: center; align-items: center; - font-size: 0.9375rem; + font-size: 1rem; box-shadow: 0.09375rem 0.09375rem 0.3125rem rgba(0, 0, 0, 0.3); background: linear-gradient(to top, #6B87BA, #FFFFFF); } .right-container .right-container-sec .time-tra-sec .time-font[data-v-1cf27b2a] { - font-size: 2.03125rem; - margin-top: 1.5625rem; + font-size: 2.34375rem; + margin-top: 0.9375rem; margin-bottom: 0.3125rem; font-weight: 700; background: linear-gradient(to bottom, #7080A1, #263556); @@ -597,36 +761,14 @@ color: transparent; } .right-container .right-container-sec .time-tra-sec .time-font-dark[data-v-1cf27b2a] { - font-size: 2.03125rem; - margin-top: 1.5625rem; + font-size: 2.34375rem; + margin-top: 0.9375rem; margin-bottom: 0.3125rem; background: linear-gradient(to bottom, #FFFFFF, #B2C8E2); -webkit-background-clip: text; color: transparent; font-weight: 700; } -.right-container .right-container-sec .time-tra-sec .time-text[data-v-1cf27b2a] { - margin-left: 0.3125rem; - color: #364464; - font-size: 2.34375rem; - font-weight: 700; - width: 25rem; - margin-bottom: 1.5625rem; - line-height: 2.1875rem; - position: relative; -} -.right-container .right-container-sec .time-tra-sec .time-text-dark[data-v-1cf27b2a] { - margin-left: 0.3125rem; - font-size: 2.34375rem; - font-weight: 700; - width: 25rem; - margin-bottom: 1.5625rem; - line-height: 2.1875rem; - position: relative; - background: linear-gradient(to bottom, #FFFFFF, #B2C8E2); - -webkit-background-clip: text; - color: transparent; -} .right-container .right-container-sec .time-tra-sec .time-text-img[data-v-1cf27b2a] { position: absolute; top: 0; @@ -643,36 +785,39 @@ height: 1.3125rem; margin-right: 0.3125rem; margin-left: 0.15625rem; + transition: all 0.4s ease-in-out; } .right-container .time-people-sec .time-people-font[data-v-1cf27b2a] { - color: #586787; font-size: 0.9375rem; margin-right: 2.8125rem; + transition: all 0.4s ease-in-out; } .right-container .time-people-sec .time-people-font-dark[data-v-1cf27b2a] { color: #CDD6EA; font-size: 0.9375rem; margin-right: 2.8125rem; + transition: all 0.4s ease-in-out; } .right-container .right-container-fir[data-v-1cf27b2a] { width: 100%; height: 18.125rem; display: flex; - overflow: hidden; } .right-container .right-container-fir .right-container-fir-left-nav[data-v-1cf27b2a] { width: 63%; - height: 18.0625rem; + height: 17.125rem; border-radius: 1.40625rem; /* 圆角 */ position: relative; /* 增加背景色确保视觉效果 */ - background-color: rgba(255, 255, 255, 0.1); + background-color: rgba(255, 255, 255, 0.6); + box-shadow: 0px 0.25rem 0.5rem rgba(0, 0, 0, 0.3); + /* 增强的阴影效果 */ /* 包括边框在内计算宽高 */ } .right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-carousel[data-v-1cf27b2a] { position: absolute; - right: 7.1875rem; + left: 29.0625rem; margin-top: 0.3125rem; } .right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-carousel .carousel[data-v-1cf27b2a] { @@ -722,11 +867,10 @@ height: 100%; border-radius: 1.40625rem; border: 0.03125rem solid #fff; - background-color: rgba(255, 255, 255, 0.1); + background-color: rgba(99, 115, 157, 0.1); /* 白色背景透明度为 10% */ - background-image: url('../../static/index/cardbgc/newbgc.png'); - background-position: 10% 60%; - /* 背景图片从左上角25%和30%的位置开始 */ + background-image: url('../../static/index/mountain.png'); + background-position: 60% 50%; } .right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-dark[data-v-1cf27b2a] { position: absolute; @@ -744,7 +888,7 @@ display: flex; justify-content: center; align-items: center; - width: 42.1875rem; + width: 100%; height: 100%; } .right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .split-line-white-right-left[data-v-1cf27b2a] { @@ -753,7 +897,7 @@ height: 25rem; /* 高度占满父容器 */ background: linear-gradient(to top, rgba(0, 0, 0, 0) 0%, #fff 50%, rgba(0, 0, 0, 0) 100%); - margin-right: 1.5625rem; + margin-right: 0.625rem; position: relative; } .right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .split-line-white-right-left .split-line-white-img[data-v-1cf27b2a] { @@ -785,15 +929,18 @@ height: 1.5625rem; width: 1.5625rem; margin-right: 0.78125rem; - margin-left: 0.625rem; z-index: 1; } .right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .time-tra-fir[data-v-1cf27b2a] { + margin-top: 1.25rem; margin-left: 0.9375rem; } +.right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .time-tra-fir .time-people-two[data-v-1cf27b2a] { + display: flex; +} .right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .time-tra-fir .time-button-view[data-v-1cf27b2a] { display: flex; - margin-top: 0.9375rem; + margin-top: 0.3125rem; margin-left: 0; } .right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .time-tra-fir .time-button-view .time-button-start[data-v-1cf27b2a] { @@ -806,7 +953,7 @@ justify-content: center; align-items: center; color: #fff; - font-size: 0.9375rem; + font-size: 1rem; margin-right: 0.78125rem; box-shadow: 0.09375rem 0.09375rem 0.3125rem rgba(0, 0, 0, 0.3); } @@ -818,7 +965,7 @@ display: flex; justify-content: center; align-items: center; - font-size: 0.9375rem; + font-size: 1rem; box-shadow: 0.09375rem 0.09375rem 0.3125rem rgba(0, 0, 0, 0.3); } .right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .time-tra-fir .time-button-view .time-button-end-dark[data-v-1cf27b2a] { @@ -828,13 +975,14 @@ display: flex; justify-content: center; align-items: center; - font-size: 0.9375rem; + font-size: 1rem; box-shadow: 0.09375rem 0.09375rem 0.3125rem rgba(0, 0, 0, 0.3); background: linear-gradient(to top, #6B87BA, #FFFFFF); /* 渐变从下到上 */ } .right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .time-tra-fir .time-people-fir[data-v-1cf27b2a] { display: flex; + margin-right: 0.625rem; } .right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .time-tra-fir .time-people-fir .time-people-img[data-v-1cf27b2a] { width: 1.3125rem; @@ -843,7 +991,6 @@ margin-left: 0.15625rem; } .right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .time-tra-fir .time-people-fir .time-people-font[data-v-1cf27b2a] { - color: #586787; font-size: 0.9375rem; } .right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .time-tra-fir .time-people-fir .time-people-font-dark[data-v-1cf27b2a] { @@ -851,7 +998,7 @@ font-size: 0.9375rem; } .right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .time-tra-fir .time-font[data-v-1cf27b2a] { - font-size: 1.875rem; + font-size: 2.1875rem; margin-bottom: 0.9375rem; background: linear-gradient(to top, #334160, #687898); -webkit-background-clip: text; @@ -859,7 +1006,7 @@ font-weight: 700; } .right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .time-tra-fir .time-font-dark[data-v-1cf27b2a] { - font-size: 1.875rem; + font-size: 2.1875rem; margin-bottom: 0.9375rem; background: linear-gradient(to right, #EBF4FF, #ADC4E0); -webkit-background-clip: text; @@ -868,8 +1015,7 @@ } .right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .time-tra-fir .time-text[data-v-1cf27b2a] { margin-left: 0.3125rem; - color: #586787; - font-size: 1rem; + font-size: 1.09375rem; width: 16.5625rem; margin-bottom: 1.25rem; line-height: 1.25rem; @@ -877,7 +1023,7 @@ .right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .time-tra-fir .time-text-dark[data-v-1cf27b2a] { margin-left: 0.3125rem; color: #CDD6EA; - font-size: 1rem; + font-size: 1.09375rem; width: 16.5625rem; margin-bottom: 1.25rem; line-height: 1.25rem; @@ -888,33 +1034,37 @@ align-items: center; flex-direction: column; position: relative; + margin-left: 1.5625rem; } .right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .right-container-fir-left-card-card .right-container-fir-left-card-zhixing[data-v-1cf27b2a] { position: absolute; - top: 0; - left: 25.625rem; + top: 0.3125rem; + left: 27.1875rem; } .right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .right-container-fir-left-card-card .right-container-fir-left-card-zhixing-font[data-v-1cf27b2a] { position: absolute; - top: 0.15625rem; - left: 0.78125rem; - width: 4.6875rem; + top: 1.875rem; + left: 0.3125rem; + width: 3.125rem; + height: 1.25rem; font-size: 0.78125rem; + border-radius: 0.15625rem; color: #fff; z-index: 10; -} -.right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .right-container-fir-left-card-card .right-container-fir-left-card-zhixing-img[data-v-1cf27b2a] { - width: 3.75rem; - height: 1.5625rem; - z-index: 9; + background-color: #f37b5b; + display: flex; + justify-content: center; + align-items: center; } .right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .right-container-fir-left-card-card .right-container-fir-left-card-main-font[data-v-1cf27b2a] { font-size: 1.0625rem; font-weight: 350; + transition: all 0.4s ease-in-out; } .right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .right-container-fir-left-card-card .right-container-fir-left-card-main-font-dark[data-v-1cf27b2a] { font-size: 1.0625rem; font-weight: 350; + transition: all 0.4s ease-in-out; color: #fff; } .right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .right-container-fir-left-card-card .right-container-fir-left-card-main-laba-video[data-v-1cf27b2a] { @@ -928,10 +1078,12 @@ width: 1.40625rem; height: 1.40625rem; margin-right: 0.15625rem; + transition: all 0.4s ease-in-out; } .right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .right-container-fir-left-card-card .right-container-fir-left-card-main-laba-video .right-container-fir-left-card-main-video[data-v-1cf27b2a] { width: 1.40625rem; height: 1.40625rem; + transition: all 0.4s ease-in-out; } .right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .right-container-fir-left-card-card .right-container-fir-left-card-img[data-v-1cf27b2a] { width: 11.25rem; @@ -946,7 +1098,7 @@ .right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-hulilei[data-v-1cf27b2a] { position: absolute; top: 1.3125rem; - left: -0.46875rem; + left: -0.3125rem; width: 6.875rem; height: 2.28125rem; z-index: 10; @@ -954,7 +1106,7 @@ .right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-hulilei-font[data-v-1cf27b2a] { position: absolute; top: 1.59375rem; - left: 1.25rem; + left: 1.40625rem; font-size: 1.125rem; color: #fff; z-index: 10; @@ -963,24 +1115,44 @@ margin-left: 2%; margin-right: 2%; width: 21.875rem; - height: 18.0625rem; + height: 17.125rem; border-radius: 1.25rem; border: 0.03125rem solid #fff; background: url(../../static/index/rightbgi.png); background-size: cover; + box-shadow: 0px 0.25rem 0.5rem rgba(0, 0, 0, 0.3); } .right-container .right-container-fir .right-container-fir-right-dark[data-v-1cf27b2a] { margin-left: 2%; margin-right: 2%; width: 21.875rem; - height: 18.0625rem; + height: 17.125rem; border-radius: 1.25rem; border: 0.03125rem solid #fff; background-color: #16304c; } .right-container .right-container-fir .right-container-card[data-v-1cf27b2a] { + margin-top: 0.78125rem; + margin-left: 1.25rem; + position: relative; +} +.right-container .right-container-fir .right-container-card .right-container-card-right[data-v-1cf27b2a] { + position: absolute; + right: 0; + top: 0; + width: 3.75rem; + height: 10.9375rem; + display: flex; + align-items: center; + justify-content: center; + flex-direction: column; margin-top: 0.625rem; - margin-left: 1.5625rem; + margin-right: 0.625rem; +} +.right-container .right-container-fir .right-container-card .right-container-card-right .right-container-card-right-img[data-v-1cf27b2a] { + width: 2.1875rem; + height: 2.1875rem; + margin-top: 0.3125rem; } .right-container .right-container-fir .right-container-card .right-container-button[data-v-1cf27b2a] { display: flex; @@ -1003,7 +1175,7 @@ height: 4.6875rem; } .right-container .right-container-fir .right-container-card .right-container-button .right-container-button-any .right-container-button-text[data-v-1cf27b2a] { - font-size: 0.9375rem; + font-size: 0.78125rem; color: #313D56; } .right-container .right-container-fir .right-container-card .right-container-button .right-container-button-img[data-v-1cf27b2a] { @@ -1019,7 +1191,7 @@ } .right-container .right-container-fir .right-container-card .right-container-tem[data-v-1cf27b2a] { display: flex; - margin-top: 0.9375rem; + margin-top: 0.625rem; margin-bottom: 0.625rem; } .right-container .right-container-fir .right-container-card .right-container-tem .right-container-tem-text[data-v-1cf27b2a] { @@ -1054,11 +1226,10 @@ } .right-container .right-container-fir .right-container-card .right-container-date[data-v-1cf27b2a] { font-size: 1.09375rem; - color: #7080A1; display: block; margin: 0; margin-left: 0.5625rem; - margin-bottom: 0.46875rem; + margin-bottom: 0.3125rem; } .right-container .right-container-fir .right-container-card .right-container-date-dark[data-v-1cf27b2a] { font-size: 1.09375rem; @@ -1066,7 +1237,7 @@ display: block; margin: 0; margin-left: 0.5625rem; - margin-bottom: 0.46875rem; + margin-bottom: 0.3125rem; background: linear-gradient(to bottom, #FFFFFF, #B2C8E2); -webkit-background-clip: text; color: transparent; @@ -1090,21 +1261,23 @@ margin-left: 0.625rem; } .right-container .right-container-title-nav .right-container-title-no[data-v-1cf27b2a] { - font-size: 0.78125rem; + font-size: 1.09375rem; + margin-right: 0.625rem; } .right-container .right-container-title-nav .right-container-title-no-dark[data-v-1cf27b2a] { - font-size: 0.78125rem; + font-size: 1.09375rem; background: linear-gradient(to bottom, #FFFFFF, #B2C8E2); -webkit-background-clip: text; color: transparent; + margin-right: 0.625rem; } .right-container .right-container-title-nav .right-container-title-class[data-v-1cf27b2a] { - font-size: 0.78125rem; + font-size: 1.09375rem; font-weight: 800; margin-left: 0.625rem; } .right-container .right-container-title-nav .right-container-title-class-dark[data-v-1cf27b2a] { - font-size: 0.78125rem; + font-size: 1.09375rem; font-weight: 800; margin-left: 0.625rem; background: linear-gradient(to bottom, #FFFFFF, #B2C8E2); @@ -1151,17 +1324,17 @@ flex-direction: column; } .left-container .left-head .left-head-img[data-v-1cf27b2a] { - width: 3.75rem; - height: 3.75rem; - margin-top: 2.5rem; + width: 4.6875rem; + height: 4.6875rem; + margin-top: 1.875rem; } .left-container .left-head .left-head-font[data-v-1cf27b2a] { font-weight: 700; - font-size: 0.9375rem; + font-size: 1.25rem; } .left-container .left-head .left-head-font-dark[data-v-1cf27b2a] { font-weight: 700; - font-size: 0.9375rem; + font-size: 1.25rem; background: linear-gradient(to right, #EBF4FF, #ADC4E0); -webkit-background-clip: text; color: transparent; @@ -1171,7 +1344,6 @@ justify-content: center; align-items: center; flex-direction: column; - margin-top: 0.9375rem; } .left-container .left-img-container .left-img[data-v-1cf27b2a] { width: 2.90625rem; @@ -1197,7 +1369,6 @@ height: 25rem; /* 高度占满父容器 */ background: linear-gradient(to top, rgba(0, 0, 0, 0) 0%, #fff 50%, rgba(0, 0, 0, 0) 100%); - margin-left: 0.625rem; position: relative; } .split-line-white-sec .split-line-white-img[data-v-1cf27b2a] { @@ -1210,10 +1381,11 @@ } .card-upfaguang[data-v-1cf27b2a] { position: absolute; - top: 18.75rem; - left: 4.6875rem; + top: 8.28125rem; + left: 1.5625rem; height: 18.75rem; width: 15.625rem; + transition: all 0.4s ease-in-out; } .card-upfaguang-down[data-v-1cf27b2a] { position: absolute; @@ -1223,7 +1395,8 @@ width: 15.625rem; } .right-huli-sec[data-v-1cf27b2a] { - width: 6.25rem; + margin-left: 0.21875rem; + width: 7.1875rem; height: 100%; display: flex; justify-content: center; @@ -1238,10 +1411,10 @@ align-items: flex-start; /* 垂直方向对齐方式可以调整 */ flex-direction: column; - margin-left: -2.28125rem; + height: 14.0625rem; } .right-huli-sec .right-huli-view .right-huli-view-dis[data-v-1cf27b2a] { - height: 4.6875rem; + height: 6.875rem; display: flex; justify-content: center; align-items: center; @@ -1249,8 +1422,8 @@ width: 100%; } .right-huli-sec .right-huli-view .right-huli-view-dis .right-huli-img[data-v-1cf27b2a] { - width: 2.1875rem; - height: 2.1875rem; + width: 2.8125rem; + height: 2.8125rem; } .right-huli-sec .right-huli-view .right-huli-view-dis .right-huli-text[data-v-1cf27b2a] { width: 100%; @@ -1270,12 +1443,10 @@ .right-huli-sec .right-huli-shang[data-v-1cf27b2a] { width: 0.9375rem; height: 0.625rem; - margin-left: -2.28125rem; } .right-huli-sec .right-huli-xia[data-v-1cf27b2a] { width: 0.9375rem; height: 0.625rem; - margin-left: -2.28125rem; } .right-container-fir-left-card-flex[data-v-1cf27b2a] { display: flex; @@ -1283,6 +1454,47 @@ align-items: center; width: 100%; height: 100%; + margin-left: 0.625rem; +} +.right-container-fir-left-card-flex-sec[data-v-1cf27b2a] { + display: flex; + justify-content: center; + align-items: center; + width: 100%; + height: 100%; + position: relative; +} +.right-container-fir-left-card-flex-sec .right-container-fir-left-card-flex-sec-img[data-v-1cf27b2a] { + position: absolute; + top: 1.3125rem; + left: -0.3125rem; + width: 6.875rem; + height: 2.28125rem; + z-index: 10; +} +.right-container-fir-left-card-flex-sec .right-container-fir-left-card-flex-sec-font[data-v-1cf27b2a] { + position: absolute; + top: 1.59375rem; + left: 1.40625rem; + font-size: 1.125rem; + color: #fff; + z-index: 10; +} +.right-container-fir-left-card-flex-sec .right-container-fir-left-card-flex-sec-imgright-fir[data-v-1cf27b2a] { + position: absolute; + width: 3.125rem; + height: 1.5625rem; + top: 1.59375rem; + left: 20.3125rem; + z-index: 10; +} +.right-container-fir-left-card-flex-sec .right-container-fir-left-card-flex-sec-imgright-sec[data-v-1cf27b2a] { + position: absolute; + width: 3.125rem; + height: 1.5625rem; + top: 1.59375rem; + left: 20.9375rem; + z-index: 10; } .savehundred[data-v-1cf27b2a] { width: 100%; @@ -1338,25 +1550,360 @@ margin-right: 1.25rem; } .right-icons .right-icons-font[data-v-1cf27b2a] { - margin-left: 0.625rem; - margin-right: 0.625rem; + margin-left: 0.3125rem; + margin-right: 0.3125rem; + font-size: 1.09375rem; + margin-top: -0.9375rem; } .right-icons .right-icons-font-dark[data-v-1cf27b2a] { color: #fff; - margin-left: 0.625rem; - margin-right: 0.625rem; -} -.right-icons .right-icons-img[data-v-1cf27b2a] { - width: 1.875rem; - height: 1.875rem; margin-left: 0.3125rem; margin-right: 0.3125rem; - margin-bottom: 0.3125rem; - margin-right: 0.625rem; + font-size: 1.09375rem; + margin-top: -0.9375rem; +} +.right-icons .right-icons-img[data-v-1cf27b2a] { + width: 2.5rem; + height: 2.5rem; + margin-left: 0.3125rem; + margin-right: 0.3125rem; + margin-top: -1.25rem; } .right-icons .right-icons-img-icon[data-v-1cf27b2a] { width: 1.875rem; height: 2.5rem; - margin-top: 0.3125rem; + margin-top: -0.3125rem; margin-left: 0.25rem; } +.time-tra-thi-photo[data-v-1cf27b2a] { + display: flex; + justify-content: center; + align-items: center; + width: 9.375rem; + flex-direction: column; +} +.time-tra-thi-photo .time-tra-thi-photo-img[data-v-1cf27b2a] { + width: 10.3125rem; + height: 10.3125rem; + margin-top: -3.125rem; + margin-left: -1.5625rem; +} +.time-tra-thi-photo .time-tra-thi-photo-font[data-v-1cf27b2a] { + font-size: 0.9375rem; + margin-right: 1.5625rem; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; +} +.time-tra-thi-photo .time-tra-thi-photo-font-dark[data-v-1cf27b2a] { + color: #CDD6EA; + font-size: 0.9375rem; + margin-right: 1.5625rem; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; +} +.popup-overlay[data-v-1cf27b2a] { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.5); + display: flex; + justify-content: center; + align-items: center; + -webkit-backdrop-filter: blur(0.09375rem); + backdrop-filter: blur(0.09375rem); + /* 添加毛玻璃效果 */ + z-index: 999; +} +.popup-overlay .popup-overlay-content[data-v-1cf27b2a] { + position: absolute; + border-radius: 1.5625rem; + transition: width 0.4s ease-in-out, height 0.4s ease-in-out, top 0.4s ease-in-out, left 0.4s ease-in-out; + /* 修正了 transition 语法 */ +} +.popup-overlay .popup-overlay-content .right-container-fir-left-nav-open[data-v-1cf27b2a] { + width: 100%; + height: 100%; + border-radius: 1.40625rem; + /* 圆角 */ + position: relative; + /* 增加背景色确保视觉效果 */ + background-color: rgba(255, 255, 255, 0.6); + box-shadow: 0px 0.25rem 0.5rem rgba(0, 0, 0, 0.3); + /* 增强的阴影效果 */ + /* 包括边框在内计算宽高 */ +} +.popup-overlay .popup-overlay-content .right-container-fir-left-nav-open .right-container-fir-left-carousel[data-v-1cf27b2a] { + position: absolute; + left: 29.6875rem; + margin-top: 0.3125rem; +} +.popup-overlay .popup-overlay-content .right-container-fir-left-nav-open .right-container-fir-left-card[data-v-1cf27b2a] { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + border-radius: 1.40625rem; + border: 0.03125rem solid #fff; + background-color: #c9ddf4; + /* 白色背景透明度为 10% */ + /* 白色背景透明度为 10% */ + background-image: url('../../static/index/mountain.png'); + background-position: 60% 50%; + /* 背景图片从左上角25%和30%的位置开始 */ +} +.popup-overlay .popup-overlay-content .right-container-fir-left-nav-open .right-container-fir-left-card-dark[data-v-1cf27b2a] { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + border-radius: 1.40625rem; + background-image: url('../../static/index/cardbgc/bgcdark.png'); + background-color: rgba(12, 25, 47, 0.1); + border: 0.03125rem solid #fff; + /* 底色 */ +} +.popup-overlay .popup-overlay-content .right-container-fir-left-nav-open .right-container-fir-left-card-main[data-v-1cf27b2a] { + display: flex; + justify-content: center; + align-items: center; + width: 100%; + height: 100%; +} +.popup-overlay .popup-overlay-content .right-container-fir-left-nav-open .right-container-fir-left-card-main .split-line-white-right-left[data-v-1cf27b2a] { + width: 0.0625rem; + /* 线条的宽度 */ + height: 25rem; + /* 高度占满父容器 */ + background: linear-gradient(to top, rgba(0, 0, 0, 0) 0%, #fff 50%, rgba(0, 0, 0, 0) 100%); + margin-right: 0.625rem; + position: relative; +} +.popup-overlay .popup-overlay-content .right-container-fir-left-nav-open .right-container-fir-left-card-main .split-line-white-right-left .split-line-white-img[data-v-1cf27b2a] { + position: absolute; + top: 0; + left: -9.375rem; + height: 25rem; + width: 9.375rem; + z-index: -1; +} +.popup-overlay .popup-overlay-content .right-container-fir-left-nav-open .right-container-fir-left-card-main .uni-margin-wrap-fir[data-v-1cf27b2a] { + width: 100%; + transition: all 0.4s ease-in-out; +} +.popup-overlay .popup-overlay-content .right-container-fir-left-nav-open .right-container-fir-left-card-main .uni-margin-wrap-fir .swiper[data-v-1cf27b2a] { + height: 14.6875rem; +} +.popup-overlay .popup-overlay-content .right-container-fir-left-nav-open .right-container-fir-left-card-main .uni-margin-wrap-fir .swiper .swiper-item-flex[data-v-1cf27b2a] { + display: flex; + margin-top: 0.9375rem; + z-index: 10; +} +.popup-overlay .popup-overlay-content .right-container-fir-left-nav-open .right-container-fir-left-card-main .uni-margin-wrap-fir .swiper .swiper-item[data-v-1cf27b2a] { + display: block; + height: 6.25rem; + line-height: 9.375rem; + text-align: center; +} +.popup-overlay .popup-overlay-content .right-container-fir-left-nav-open .right-container-fir-left-card-main .right-container-fir-left-card-main-right[data-v-1cf27b2a] { + height: 1.5625rem; + width: 1.5625rem; + margin-right: 0.78125rem; + z-index: 1; +} +.popup-overlay .popup-overlay-content .right-container-fir-left-nav-open .right-container-fir-left-card-main .time-tra-fir[data-v-1cf27b2a] { + margin-top: 1.25rem; + margin-left: 0.9375rem; +} +.popup-overlay .popup-overlay-content .right-container-fir-left-nav-open .right-container-fir-left-card-main .time-tra-fir .time-people-two[data-v-1cf27b2a] { + display: flex; + transition: all 0.4s ease-in-out; +} +.popup-overlay .popup-overlay-content .right-container-fir-left-nav-open .right-container-fir-left-card-main .time-tra-fir .time-button-view[data-v-1cf27b2a] { + display: flex; + margin-top: 0.3125rem; + margin-left: 0; + transition: all 0.4s ease-in-out; +} +.popup-overlay .popup-overlay-content .right-container-fir-left-nav-open .right-container-fir-left-card-main .time-tra-fir .time-button-view .time-button-start[data-v-1cf27b2a] { + width: 7.1875rem; + height: 2.5rem; + border-radius: 1.25rem; + background: linear-gradient(to top, #047ADB, #0EA7DD); + border-left: 0.0625rem solid #fff; + display: flex; + justify-content: center; + align-items: center; + color: #fff; + font-size: 1rem; + margin-right: 0.78125rem; + box-shadow: 0.09375rem 0.09375rem 0.3125rem rgba(0, 0, 0, 0.3); + transition: all 0.4s ease-in-out; +} +.popup-overlay .popup-overlay-content .right-container-fir-left-nav-open .right-container-fir-left-card-main .time-tra-fir .time-button-view .time-button-end[data-v-1cf27b2a] { + width: 7.1875rem; + height: 2.5rem; + border-radius: 1.25rem; + background-color: #fff; + display: flex; + justify-content: center; + align-items: center; + font-size: 1rem; + box-shadow: 0.09375rem 0.09375rem 0.3125rem rgba(0, 0, 0, 0.3); + transition: all 0.4s ease-in-out; +} +.popup-overlay .popup-overlay-content .right-container-fir-left-nav-open .right-container-fir-left-card-main .time-tra-fir .time-button-view .time-button-end-dark[data-v-1cf27b2a] { + width: 7.1875rem; + height: 2.5rem; + border-radius: 1.25rem; + display: flex; + justify-content: center; + align-items: center; + font-size: 1rem; + box-shadow: 0.09375rem 0.09375rem 0.3125rem rgba(0, 0, 0, 0.3); + background: linear-gradient(to top, #6B87BA, #FFFFFF); + transition: all 0.4s ease-in-out; + /* 渐变从下到上 */ +} +.popup-overlay .popup-overlay-content .right-container-fir-left-nav-open .right-container-fir-left-card-main .time-tra-fir .time-people-fir[data-v-1cf27b2a] { + display: flex; + margin-right: 0.625rem; +} +.popup-overlay .popup-overlay-content .right-container-fir-left-nav-open .right-container-fir-left-card-main .time-tra-fir .time-people-fir .time-people-img[data-v-1cf27b2a] { + width: 1.3125rem; + height: 1.3125rem; + margin-right: 0.3125rem; + margin-left: 0.15625rem; + transition: all 0.4s ease-in-out; +} +.popup-overlay .popup-overlay-content .right-container-fir-left-nav-open .right-container-fir-left-card-main .time-tra-fir .time-people-fir .time-people-font[data-v-1cf27b2a] { + font-size: 0.9375rem; + transition: all 0.4s ease-in-out; +} +.popup-overlay .popup-overlay-content .right-container-fir-left-nav-open .right-container-fir-left-card-main .time-tra-fir .time-people-fir .time-people-font-dark[data-v-1cf27b2a] { + color: #CDD6EA; + font-size: 0.9375rem; + transition: all 0.4s ease-in-out; +} +.popup-overlay .popup-overlay-content .right-container-fir-left-nav-open .right-container-fir-left-card-main .time-tra-fir .time-font[data-v-1cf27b2a] { + font-size: 2.1875rem; + margin-bottom: 0.9375rem; + background: linear-gradient(to top, #334160, #687898); + -webkit-background-clip: text; + color: transparent; + font-weight: 700; + transition: all 0.4s ease-in-out; +} +.popup-overlay .popup-overlay-content .right-container-fir-left-nav-open .right-container-fir-left-card-main .time-tra-fir .time-font-dark[data-v-1cf27b2a] { + font-size: 2.1875rem; + margin-bottom: 0.9375rem; + background: linear-gradient(to right, #EBF4FF, #ADC4E0); + -webkit-background-clip: text; + color: transparent; + font-weight: 700; + transition: all 0.4s ease-in-out; +} +.popup-overlay .popup-overlay-content .right-container-fir-left-nav-open .right-container-fir-left-card-main .time-tra-fir .time-text[data-v-1cf27b2a] { + margin-left: 0.3125rem; + font-size: 1.09375rem; + width: 16.5625rem; + margin-bottom: 1.25rem; + line-height: 1.25rem; + transition: all 0.4s ease-in-out; +} +.popup-overlay .popup-overlay-content .right-container-fir-left-nav-open .right-container-fir-left-card-main .time-tra-fir .time-text-dark[data-v-1cf27b2a] { + margin-left: 0.3125rem; + color: #CDD6EA; + font-size: 1.09375rem; + width: 16.5625rem; + margin-bottom: 1.25rem; + line-height: 1.25rem; + transition: all 0.4s ease-in-out; +} +.popup-overlay .popup-overlay-content .right-container-fir-left-nav-open .right-container-fir-left-card-main .right-container-fir-left-card-card[data-v-1cf27b2a] { + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + position: relative; + margin-left: 1.5625rem; +} +.popup-overlay .popup-overlay-content .right-container-fir-left-nav-open .right-container-fir-left-card-main .right-container-fir-left-card-card .right-container-fir-left-card-zhixing[data-v-1cf27b2a] { + position: absolute; + top: 0.3125rem; + left: 27.1875rem; + transition: all 0.4s ease-in-out; +} +.popup-overlay .popup-overlay-content .right-container-fir-left-nav-open .right-container-fir-left-card-main .right-container-fir-left-card-card .right-container-fir-left-card-zhixing-font[data-v-1cf27b2a] { + position: absolute; + top: 1.875rem; + left: 0.3125rem; + width: 3.125rem; + height: 1.25rem; + font-size: 0.78125rem; + border-radius: 0.15625rem; + color: #fff; + z-index: 10; + background-color: #f37b5b; + display: flex; + justify-content: center; + align-items: center; + transition: all 0.4s ease-in-out; +} +.popup-overlay .popup-overlay-content .right-container-fir-left-nav-open .right-container-fir-left-card-main .right-container-fir-left-card-card .right-container-fir-left-card-main-font[data-v-1cf27b2a] { + font-size: 1.0625rem; + font-weight: 350; +} +.popup-overlay .popup-overlay-content .right-container-fir-left-nav-open .right-container-fir-left-card-main .right-container-fir-left-card-card .right-container-fir-left-card-main-font-dark[data-v-1cf27b2a] { + font-size: 1.0625rem; + font-weight: 350; + color: #fff; +} +.popup-overlay .popup-overlay-content .right-container-fir-left-nav-open .right-container-fir-left-card-main .right-container-fir-left-card-card .right-container-fir-left-card-main-laba-video[data-v-1cf27b2a] { + width: 100%; + display: flex; + justify-content: center; + align-items: center; + margin-top: 0.3125rem; +} +.popup-overlay .popup-overlay-content .right-container-fir-left-nav-open .right-container-fir-left-card-main .right-container-fir-left-card-card .right-container-fir-left-card-main-laba-video .right-container-fir-left-card-main-laba[data-v-1cf27b2a] { + width: 1.40625rem; + height: 1.40625rem; + margin-right: 0.15625rem; +} +.popup-overlay .popup-overlay-content .right-container-fir-left-nav-open .right-container-fir-left-card-main .right-container-fir-left-card-card .right-container-fir-left-card-main-laba-video .right-container-fir-left-card-main-video[data-v-1cf27b2a] { + width: 1.40625rem; + height: 1.40625rem; +} +.popup-overlay .popup-overlay-content .right-container-fir-left-nav-open .right-container-fir-left-card-main .right-container-fir-left-card-card .right-container-fir-left-card-img[data-v-1cf27b2a] { + width: 11.25rem; + height: 8.4375rem; + transition: all 0.4s ease-in-out; +} +.popup-overlay .popup-overlay-content .right-container-fir-left-nav-open .right-container-fir-left-card-main .right-container-fir-left-card-main-left-up[data-v-1cf27b2a] { + height: 1.5625rem; + width: 1.5625rem; + margin-right: 0; + margin-left: 0.625rem; +} +.popup-overlay .popup-overlay-content .right-container-fir-left-nav-open .right-container-fir-left-card-hulilei[data-v-1cf27b2a] { + position: absolute; + top: 1.1875rem; + left: -0.3125rem; + width: 6.875rem; + height: 2.28125rem; + z-index: 10; +} +.popup-overlay .popup-overlay-content .right-container-fir-left-nav-open .right-container-fir-left-card-hulilei-font[data-v-1cf27b2a] { + position: absolute; + top: 1.46875rem; + left: 1.40625rem; + font-size: 1.125rem; + color: #fff; + z-index: 10; +} diff --git a/unpackage/dist/dev/app-plus/static/index/baojieleft.png b/unpackage/dist/dev/app-plus/static/index/baojieleft.png new file mode 100644 index 0000000..f3fd137 Binary files /dev/null and b/unpackage/dist/dev/app-plus/static/index/baojieleft.png differ diff --git a/unpackage/dist/dev/app-plus/static/index/baojielei.png b/unpackage/dist/dev/app-plus/static/index/baojielei.png new file mode 100644 index 0000000..93a432a Binary files /dev/null and b/unpackage/dist/dev/app-plus/static/index/baojielei.png differ diff --git a/unpackage/dist/dev/app-plus/static/index/baojieright.png b/unpackage/dist/dev/app-plus/static/index/baojieright.png new file mode 100644 index 0000000..cf8ec02 Binary files /dev/null and b/unpackage/dist/dev/app-plus/static/index/baojieright.png differ diff --git a/unpackage/dist/dev/app-plus/static/index/cardicons/mountain.png b/unpackage/dist/dev/app-plus/static/index/cardicons/mountain.png new file mode 100644 index 0000000..7daf90d Binary files /dev/null and b/unpackage/dist/dev/app-plus/static/index/cardicons/mountain.png differ diff --git a/unpackage/dist/dev/app-plus/static/index/customer.png b/unpackage/dist/dev/app-plus/static/index/customer.png new file mode 100644 index 0000000..6092aef Binary files /dev/null and b/unpackage/dist/dev/app-plus/static/index/customer.png differ diff --git a/unpackage/dist/dev/app-plus/static/index/lightbgcnew.png b/unpackage/dist/dev/app-plus/static/index/lightbgcnew.png new file mode 100644 index 0000000..3cd136c Binary files /dev/null and b/unpackage/dist/dev/app-plus/static/index/lightbgcnew.png differ diff --git a/unpackage/dist/dev/app-plus/static/index/mountain.png b/unpackage/dist/dev/app-plus/static/index/mountain.png new file mode 100644 index 0000000..7daf90d Binary files /dev/null and b/unpackage/dist/dev/app-plus/static/index/mountain.png differ diff --git a/unpackage/dist/dev/mp-weixin/app.js b/unpackage/dist/dev/mp-weixin/app.js index 3f4921e..8beb882 100644 --- a/unpackage/dist/dev/mp-weixin/app.js +++ b/unpackage/dist/dev/mp-weixin/app.js @@ -3,6 +3,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const common_vendor = require("./common/vendor.js"); if (!Math) { "./pages/index/index.js"; + "./pages/login/login.js"; } const _sfc_main = { onLaunch: function() { diff --git a/unpackage/dist/dev/mp-weixin/app.json b/unpackage/dist/dev/mp-weixin/app.json index cdc4f25..8820e33 100644 --- a/unpackage/dist/dev/mp-weixin/app.json +++ b/unpackage/dist/dev/mp-weixin/app.json @@ -1,6 +1,7 @@ { "pages": [ - "pages/index/index" + "pages/index/index", + "pages/login/login" ], "window": { "navigationBarTextStyle": "black", diff --git a/unpackage/dist/dev/mp-weixin/common/assets.js b/unpackage/dist/dev/mp-weixin/common/assets.js index de8b422..25ba912 100644 --- a/unpackage/dist/dev/mp-weixin/common/assets.js +++ b/unpackage/dist/dev/mp-weixin/common/assets.js @@ -1,4 +1,8 @@ "use strict"; const _imports_0 = "/static/index/oldman.png"; +const _imports_1 = "/static/index/customer.png"; +const _imports_2 = "/static/index/undericons/upguang.png"; exports._imports_0 = _imports_0; +exports._imports_1 = _imports_1; +exports._imports_2 = _imports_2; //# 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 7d104d6..f59e54c 100644 --- a/unpackage/dist/dev/mp-weixin/common/vendor.js +++ b/unpackage/dist/dev/mp-weixin/common/vendor.js @@ -68,8 +68,8 @@ const capitalize = cacheStringFunction((str) => { return str.charAt(0).toUpperCase() + str.slice(1); }); const toHandlerKey = cacheStringFunction((str) => { - const s = str ? `on${capitalize(str)}` : ``; - return s; + const s2 = str ? `on${capitalize(str)}` : ``; + return s2; }); const hasChanged = (value, oldValue) => !Object.is(value, oldValue); const invokeArrayFns$1 = (fns, arg) => { @@ -85,8 +85,89 @@ const def = (obj, key, value) => { }); }; const looseToNumber = (val) => { - const n = parseFloat(val); - return isNaN(n) ? val : n; + const n2 = parseFloat(val); + return isNaN(n2) ? val : n2; +}; +function normalizeStyle(value) { + if (isArray(value)) { + const res = {}; + for (let i = 0; i < value.length; i++) { + const item = value[i]; + const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item); + if (normalized) { + for (const key in normalized) { + res[key] = normalized[key]; + } + } + } + return res; + } else if (isString(value) || isObject(value)) { + return value; + } +} +const listDelimiterRE = /;(?![^(]*\))/g; +const propertyDelimiterRE = /:([^]+)/; +const styleCommentRE = /\/\*[^]*?\*\//g; +function parseStringStyle(cssText) { + const ret = {}; + cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => { + if (item) { + const tmp = item.split(propertyDelimiterRE); + tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim()); + } + }); + return ret; +} +function normalizeClass(value) { + let res = ""; + if (isString(value)) { + res = value; + } else if (isArray(value)) { + for (let i = 0; i < value.length; i++) { + const normalized = normalizeClass(value[i]); + if (normalized) { + res += normalized + " "; + } + } + } else if (isObject(value)) { + for (const name in value) { + if (value[name]) { + res += name + " "; + } + } + } + return res.trim(); +} +const toDisplayString = (val) => { + return isString(val) ? val : val == null ? "" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? JSON.stringify(val, replacer, 2) : String(val); +}; +const replacer = (_key, val) => { + if (val && val.__v_isRef) { + return replacer(_key, val.value); + } else if (isMap(val)) { + return { + [`Map(${val.size})`]: [...val.entries()].reduce( + (entries, [key, val2], i) => { + entries[stringifySymbol(key, i) + " =>"] = val2; + return entries; + }, + {} + ) + }; + } else if (isSet(val)) { + return { + [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v)) + }; + } else if (isSymbol(val)) { + return stringifySymbol(val); + } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) { + return String(val); + } + return val; +}; +const stringifySymbol = (v, i = "") => { + var _a; + return isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v; }; const LOCALE_ZH_HANS = "zh-Hans"; const LOCALE_ZH_HANT = "zh-Hant"; @@ -323,8 +404,8 @@ const E = function() { E.prototype = { _id: 1, on: function(name, callback, ctx) { - var e = this.e || (this.e = {}); - (e[name] || (e[name] = [])).push({ + var e2 = this.e || (this.e = {}); + (e2[name] || (e2[name] = [])).push({ fn: callback, ctx, _id: this._id @@ -351,8 +432,8 @@ E.prototype = { return this; }, off: function(name, event) { - var e = this.e || (this.e = {}); - var evts = e[name]; + var e2 = this.e || (this.e = {}); + var evts = e2[name]; var liveEvents = []; if (evts && event) { for (var i = evts.length - 1; i >= 0; i--) { @@ -363,7 +444,7 @@ E.prototype = { } liveEvents = evts; } - liveEvents.length ? e[name] = liveEvents : delete e[name]; + liveEvents.length ? e2[name] = liveEvents : delete e2[name]; return this; } }; @@ -2043,47 +2124,6 @@ function setCurrentRenderingInstance(instance) { instance && instance.type.__scopeId || null; return prev; } -const COMPONENTS = "components"; -function resolveComponent(name, maybeSelfReference) { - return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name; -} -function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) { - const instance = currentRenderingInstance || currentInstance; - if (instance) { - const Component2 = instance.type; - if (type === COMPONENTS) { - const selfName = getComponentName( - Component2, - false - ); - if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) { - return Component2; - } - } - const res = ( - // local registration - // check instance[type] first which is resolved for options API - resolve(instance[type] || Component2[type], name) || // global registration - resolve(instance.appContext[type], name) - ); - if (!res && maybeSelfReference) { - return Component2; - } - if (warnMissing && !res) { - const extra = type === COMPONENTS ? ` -If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``; - warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`); - } - return res; - } else { - warn$1( - `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().` - ); - } -} -function resolve(registry, name) { - return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]); -} const INITIAL_WATCHER_VALUE = {}; function watch(source, cb, options) { if (!isFunction(cb)) { @@ -4979,6 +5019,22 @@ function getCreateApp() { return my[method]; } } +function stringifyStyle(value) { + if (isString(value)) { + return value; + } + return stringify(normalizeStyle(value)); +} +function stringify(styles) { + let ret = ""; + if (!styles || isString(styles)) { + return ret; + } + for (const key in styles) { + ret += `${key.startsWith(`--`) ? key : hyphenate(key)}:${styles[key]};`; + } + return ret; +} function vOn(value, key) { const instance = getCurrentInstance(); const ctx = instance.ctx; @@ -5107,6 +5163,10 @@ function vFor(source, renderItem) { } const o = (value, key) => vOn(value, key); const f = (source, renderItem) => vFor(source, renderItem); +const s = (value) => stringifyStyle(value); +const e = (target, ...sources) => extend(target, ...sources); +const n = (value) => normalizeClass(value); +const t = (val) => toDisplayString(val); function createApp$1(rootComponent, rootProps = null) { rootComponent && (rootComponent.mpType = "app"); return createVueApp(rootComponent, rootProps).use(plugin); @@ -5177,9 +5237,9 @@ function assertType(value, type) { let valid; const expectedType = getType(type); if (isSimpleType(expectedType)) { - const t = typeof value; - valid = t === expectedType.toLowerCase(); - if (!valid && t === "object") { + const t2 = typeof value; + valid = t2 === expectedType.toLowerCase(); + if (!valid && t2 === "object") { valid = value instanceof type; } } else if (expectedType === "Object") { @@ -5235,8 +5295,8 @@ function tryCatch(fn) { return function() { try { return fn.apply(fn, arguments); - } catch (e) { - console.error(e); + } catch (e2) { + console.error(e2); } }; } @@ -5418,8 +5478,8 @@ function promisify$1(name, fn) { if (hasCallback(args)) { return wrapperReturnValue(name, invokeApi(name, fn, args, rest)); } - return wrapperReturnValue(name, handlePromise(new Promise((resolve2, reject) => { - invokeApi(name, fn, extend(args, { success: resolve2, fail: reject }), rest); + return wrapperReturnValue(name, handlePromise(new Promise((resolve, reject) => { + invokeApi(name, fn, extend(args, { success: resolve, fail: reject }), rest); }))); }; } @@ -5681,7 +5741,7 @@ const $once = defineSyncApi(API_ONCE, (name, callback) => { const $off = defineSyncApi(API_OFF, (name, callback) => { if (!isArray(name)) name = name ? [name] : []; - name.forEach((n) => eventBus.off(n, callback)); + name.forEach((n2) => eventBus.off(n2, callback)); }, OffProtocol); const $emit = defineSyncApi(API_EMIT, (name, ...args) => { eventBus.emit(name, ...args); @@ -5692,7 +5752,7 @@ let enabled; function normalizePushMessage(message) { try { return JSON.parse(message); - } catch (e) { + } catch (e2) { } return message; } @@ -5732,7 +5792,7 @@ function invokeGetPushCidCallbacks(cid2, errMsg) { getPushCidCallbacks.length = 0; } const API_GET_PUSH_CLIENT_ID = "getPushClientId"; -const getPushClientId = defineAsyncApi(API_GET_PUSH_CLIENT_ID, (_, { resolve: resolve2, reject }) => { +const getPushClientId = defineAsyncApi(API_GET_PUSH_CLIENT_ID, (_, { resolve, reject }) => { Promise.resolve().then(() => { if (typeof enabled === "undefined") { enabled = false; @@ -5741,7 +5801,7 @@ const getPushClientId = defineAsyncApi(API_GET_PUSH_CLIENT_ID, (_, { resolve: re } getPushCidCallbacks.push((cid2, errMsg) => { if (cid2) { - resolve2({ cid: cid2 }); + resolve({ cid: cid2 }); } else { reject(errMsg); } @@ -5810,9 +5870,9 @@ function promisify(name, api) { if (isFunction(options.success) || isFunction(options.fail) || isFunction(options.complete)) { return wrapperReturnValue(name, invokeApi(name, api, options, rest)); } - return wrapperReturnValue(name, handlePromise(new Promise((resolve2, reject) => { + return wrapperReturnValue(name, handlePromise(new Promise((resolve, reject) => { invokeApi(name, api, extend({}, options, { - success: resolve2, + success: resolve, fail: reject }), rest); }))); @@ -6458,8 +6518,8 @@ function formatMessage(type, args) { type, args: formatArgs(args) }; - } catch (e) { - originalConsole.error(e); + } catch (e2) { + originalConsole.error(e2); } return { type, @@ -6703,13 +6763,13 @@ function initRuntimeSocket(hosts, port, id) { } const SOCKET_TIMEOUT = 500; function tryConnectSocket(host2, port, id) { - return new Promise((resolve2, reject) => { + return new Promise((resolve, reject) => { const socket = index.connectSocket({ url: `ws://${host2}:${port}/${id}`, // 支付宝小程序 是否开启多实例 multiple: true, fail() { - resolve2(null); + resolve(null); } }); const timer = setTimeout(() => { @@ -6717,19 +6777,19 @@ function tryConnectSocket(host2, port, id) { code: 1006, reason: "connect timeout" }); - resolve2(null); + resolve(null); }, SOCKET_TIMEOUT); - socket.onOpen((e) => { + socket.onOpen((e2) => { clearTimeout(timer); - resolve2(socket); + resolve(socket); }); - socket.onClose((e) => { + socket.onClose((e2) => { clearTimeout(timer); - resolve2(null); + resolve(null); }); - socket.onError((e) => { + socket.onError((e2) => { clearTimeout(timer); - resolve2(null); + resolve(null); }); }); } @@ -6804,7 +6864,7 @@ function initOnError() { function initRuntimeSocketService() { const hosts = "192.168.2.36,127.0.0.1"; const port = "8090"; - const id = "mp-weixin_CQBm3b"; + const id = "mp-weixin_Nw1NmU"; const lazy = typeof swan !== "undefined"; let restoreError = lazy ? () => { } : initOnError(); @@ -7739,10 +7799,14 @@ const createSubpackageApp = initCreateSubpackageApp(); exports._export_sfc = _export_sfc; exports.createSSRApp = createSSRApp; exports.defineComponent = defineComponent; +exports.e = e; exports.f = f; exports.index = index; +exports.n = n; exports.o = o; +exports.onBeforeUnmount = onBeforeUnmount; exports.onMounted = onMounted; exports.ref = ref; -exports.resolveComponent = resolveComponent; +exports.s = s; +exports.t = t; //# sourceMappingURL=../../.sourcemap/mp-weixin/common/vendor.js.map diff --git a/unpackage/dist/dev/mp-weixin/pages/index/index.js b/unpackage/dist/dev/mp-weixin/pages/index/index.js index 8d479b0..a5cfd39 100644 --- a/unpackage/dist/dev/mp-weixin/pages/index/index.js +++ b/unpackage/dist/dev/mp-weixin/pages/index/index.js @@ -1,44 +1,368 @@ "use strict"; const common_vendor = require("../../common/vendor.js"); const common_assets = require("../../common/assets.js"); -if (!Array) { - const _component_font = common_vendor.resolveComponent("font"); - _component_font(); -} const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({ __name: "index", setup(__props) { + const currentTime = common_vendor.ref(""); + const fullDate = common_vendor.ref(""); + const weekDay = common_vendor.ref(""); const iconList = common_vendor.ref([ { url: "/static/index/lefticon/index.png", targetUrl: "/static/index/lefticontarget/blueindex.png" }, { url: "/static/index/lefticon/nurse.png", targetUrl: "/static/index/lefticontarget/bluenurse.png" }, { url: "/static/index/lefticon/doctor.png", targetUrl: "/static/index/lefticontarget/bluedoctor.png" }, + { url: "/static/index/lefticon/give.png", targetUrl: "/static/index/lefticontarget/givedark.png" }, { url: "/static/index/lefticon/wifi.png", targetUrl: "/static/index/lefticontarget/bluewifi.png" }, { url: "/static/index/lefticon/back.png", targetUrl: "/static/index/lefticontarget/blueback.png" } ]); + const undericonList = common_vendor.ref([ + { url: "/static/index/undericons/alarm.png", targetUrl: "/static/index/undericons/alarmdark.png" }, + { url: "/static/index/undericons/linshitime.png", targetUrl: "/static/index/undericons/linshitimedark.png" } + ]); + const huliList = common_vendor.ref([ + { url: "/static/index/hulilist/zhuandan.png", name: "转单执行" }, + { url: "/static/index/hulilist/xiezhu.png", name: "协助执行" }, + { url: "/static/index/hulilist/zhongdian.png", name: "重点追踪" } + ]); + const huliListDark = common_vendor.ref([ + { url: "/static/index/darkicon/zhuandandark.png", name: "转单执行" }, + { url: "/static/index/darkicon/xiezhudark.png", name: "协助执行" }, + { url: "/static/index/darkicon/zhongdiandark.png", name: "重点追踪" } + ]); + const mediumList = common_vendor.ref([ + { url: "/static/index/medium/yaopin.png", name: "药品信息", number: 0 }, + { url: "/static/index/medium/qingling.png", name: "请领指令", number: 60 }, + { url: "/static/index/medium/peiyao.png", name: "配药指令", number: 100 }, + { url: "/static/index/medium/xinxi.png", name: "信息反馈", number: 0 }, + { url: "/static/index/medium/xinxi.png", name: "信息反馈2", number: 0 } + ]); + const mediumListdark = common_vendor.ref([ + { url: "/static/index/darkicon/yaopindark.png", name: "药品信息", number: 55 }, + { url: "/static/index/darkicon/qinglingdark.png", name: "请领指令", number: 10 }, + { url: "/static/index/darkicon/peiyaodark.png", name: "配药指令", number: 100 }, + { url: "/static/index/darkicon/xinxidark.png", name: "信息反馈", number: 15 }, + { url: "/static/index/darkicon/xinxidark.png", name: "信息反馈2", number: 20 } + ]); + const roomBtttonList = common_vendor.ref([ + { url: "/static/index/roomicons/zhaoming.png", targetUrl: "/static/index/roomicons/zhaomingtar.png", name: "照明" }, + { url: "/static/index/roomicons/kongtiao.png", targetUrl: "/static/index/roomicons/kongtiaotar.png", name: "空调" }, + { url: "/static/index/roomicons/nuanfeng.png", targetUrl: "/static/index/roomicons/nuanfengtar.png", name: "暖风" }, + { url: "/static/index/roomicons/dianqi.png", targetUrl: "/static/index/roomicons/dianqitar.png", name: "电器" } + ]); + const roomBtttonListdark = common_vendor.ref([ + { url: "/static/index/darkicon/zhaomingdark.png", targetUrl: "/static/index/roomicons/zhaomingtar.png", name: "照明" }, + { url: "/static/index/darkicon/kontiaodark.png", targetUrl: "/static/index/roomicons/kongtiaotar.png", name: "空调" }, + { url: "/static/index/darkicon/nuanfengdark.png", targetUrl: "/static/index/roomicons/nuanfengtar.png", name: "暖风" }, + { url: "/static/index/darkicon/dianqidark.png", targetUrl: "/static/index/roomicons/dianqitar.png", name: "电器" } + ]); const menuIndex = common_vendor.ref(0); + const undermenuIndex = common_vendor.ref(0); + const darkFans = common_vendor.ref(false); + common_vendor.ref(false); + const roomTar = common_vendor.ref([]); + const firstcurrentIndex = common_vendor.ref(0); + const firstcurrentIndexup = common_vendor.ref(0); + const secondcurrentIndexup = common_vendor.ref(0); + const secondcurrentIndex = common_vendor.ref(0); + const thirdcurrentIndex = common_vendor.ref(0); const changeMenu = (index) => { menuIndex.value = index; }; + const changeMenuUnder = (index) => { + undermenuIndex.value = index; + }; + const saveItem = (index) => { + if (roomTar.value.includes(index)) { + let array = []; + roomTar.value.forEach((res) => { + if (res !== index) { + array.push(res); + } + }); + roomTar.value = array; + } else { + roomTar.value.push(index); + } + }; + const updateTime = () => { + const now = /* @__PURE__ */ new Date(); + const hours = now.getHours().toString().padStart(2, "0"); + const minutes = now.getMinutes().toString().padStart(2, "0"); + currentTime.value = `${hours}:${minutes}`; + const year = now.getFullYear(); + const month = (now.getMonth() + 1).toString().padStart(2, "0"); + const day = now.getDate().toString().padStart(2, "0"); + fullDate.value = `${year}年${month}月${day}日`; + const weekDays = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"]; + const week = weekDays[now.getDay()]; + weekDay.value = week; + }; + const onSwiperChange = (event) => { + firstcurrentIndexup.value = event.detail.current; + }; + const onSwiperChangesec = (event) => { + secondcurrentIndexup.value = event.detail.current; + }; + const gotoLogin = () => { + }; common_vendor.onMounted(() => { + updateTime(); + setInterval(updateTime, 1e3); + }); + common_vendor.onBeforeUnmount(() => { + clearInterval(updateTime); }); return (_ctx, _cache) => { - return { + return common_vendor.e({ a: common_assets._imports_0, - b: common_vendor.f(iconList.value, (item, index, i0) => { + b: common_vendor.n(darkFans.value ? `left-head-font-dark` : `left-head-font`), + c: common_vendor.o(gotoLogin), + d: common_vendor.f(iconList.value, (item, index, i0) => { return { a: index === menuIndex.value, b: index === menuIndex.value ? item.targetUrl : item.url, - c: index, - d: common_vendor.o(($event) => changeMenu(index), index) + c: common_vendor.o(($event) => changeMenu(index), index), + d: index }; }), - c: `/static/index/ray.png`, - d: `/static/index/hulilei.png`, - e: `/static/index/lefticon.png`, - f: `/static/index/daizhixing.png`, - g: `/static/index/project.png`, - h: `/static/index/laba.png` - }; + e: `/static/index/ray.png`, + f: common_vendor.n(darkFans.value ? `right-container-title-no-dark` : `right-container-title-no`), + g: common_vendor.n(darkFans.value ? `right-container-title-class-dark` : `right-container-title-class`), + h: `/static/index/undericons/man.png`, + i: common_vendor.n(darkFans.value ? `right-icons-font-dark` : `right-icons-font`), + j: darkFans.value ? `/static/index/undericons/face.png` : `/static/index/undericons/facelight.png`, + k: darkFans.value ? `/static/index/undericons/hand.png` : `/static/index/undericons/handlight.png`, + l: darkFans.value ? `/static/index/undericons/out.png` : `/static/index/undericons/outlight.png`, + m: common_vendor.o(($event) => darkFans.value = !darkFans.value), + n: !darkFans.value, + o: common_vendor.s(darkFans.value ? { + color: "black" + } : {}), + p: common_vendor.s(darkFans.value ? { + backgroundColor: "#fff" + } : {}), + q: common_vendor.o(($event) => darkFans.value = !darkFans.value), + r: darkFans.value, + s: `/static/index/hulilei.png`, + t: darkFans.value + }, darkFans.value ? { + v: `/static/index/cardbgc/uplight.png` + } : {}, { + w: common_vendor.f([1, 2, 3], (item, index, i0) => { + return { + a: index, + b: common_vendor.s(index === firstcurrentIndexup.value ? { + backgroundColor: `#01A0FE` + } : {}) + }; + }), + x: common_vendor.n(darkFans.value ? `dot-dark` : `dot`), + y: common_vendor.f([1, 2, 3], (item, index, i0) => { + return common_vendor.e({ + a: common_vendor.f([1, 2, 3], (item2, index2, i1) => { + return { + a: index2 + }; + }) + }, darkFans.value ? { + b: `/static/index/cardbgc/leftlight.png` + } : {}, { + c: index + }); + }), + z: `/static/index/daizhixing.png`, + A: `/static/index/teeth.png`, + B: darkFans.value ? `/static/index/darkicon/labadark.png` : `/static/index/laba.png`, + C: common_vendor.n(darkFans.value ? `right-container-fir-left-card-main-font-dark` : `right-container-fir-left-card-main-font`), + D: darkFans.value ? `/static/index/indexvideo.png` : `/static/index/indexvideo.png`, + E: common_vendor.n(darkFans.value ? `time-font-dark` : `time-font`), + F: common_vendor.n(darkFans.value ? `time-text-dark` : `time-text`), + G: darkFans.value ? `/static/index/darkicon/zhixingpeopledark.png` : `/static/index/cardicons/zhixing.png`, + H: common_vendor.n(darkFans.value ? `time-people-font-dark` : `time-people-font`), + I: darkFans.value ? `/static/index/medium/dopeopledark.png` : `/static/index/cardicons/zhifa.png`, + J: common_vendor.n(darkFans.value ? `time-people-font-dark` : `time-people-font`), + K: common_vendor.n(darkFans.value ? `time-button-end-dark` : `time-button-end`), + L: firstcurrentIndex.value, + M: darkFans.value, + N: firstcurrentIndexup.value, + O: common_vendor.o(onSwiperChange), + P: `/static/index/hulilist/shang.png`, + Q: !darkFans.value + }, !darkFans.value ? { + R: common_vendor.f(huliList.value, (item, index, i0) => { + return { + a: item.url, + b: common_vendor.t(item.name), + c: index + }; + }) + } : {}, { + S: darkFans.value + }, darkFans.value ? { + T: common_vendor.f(huliListDark.value, (item, index, i0) => { + return { + a: item.url, + b: common_vendor.t(item.name), + c: index + }; + }) + } : {}, { + U: `/static/index/hulilist/xia.png`, + V: common_vendor.n(darkFans.value ? `right-container-fir-left-card-dark` : `right-container-fir-left-card`), + W: common_vendor.f([1, 2, 3, 4], (item, index, i0) => { + return { + a: index + }; + }), + X: common_assets._imports_1, + Y: common_vendor.t(currentTime.value), + Z: common_vendor.n(darkFans.value ? `right-container-title-dark` : `right-container-title`), + aa: common_vendor.t(fullDate.value), + ab: common_vendor.n(darkFans.value ? `right-container-date-dark` : `right-container-date`), + ac: common_vendor.t(weekDay.value), + ad: common_vendor.n(darkFans.value ? `right-container-day-dark` : `right-container-day`), + ae: darkFans.value ? `/static/index/darkicon/wendudark.png` : `/static/index/roomicons/wendu.png`, + af: common_vendor.n(darkFans.value ? `right-container-tem-text-dark` : `right-container-tem-text`), + ag: darkFans.value ? `/static/index/roomicons/shidu.png` : `/static/index/darkicon/shidudark.png`, + ah: common_vendor.n(darkFans.value ? `right-container-tem-text-dark` : `right-container-tem-text`), + ai: !darkFans.value + }, !darkFans.value ? { + aj: common_vendor.f(roomBtttonList.value, (item, index, i0) => { + return { + a: roomTar.value.includes(index), + b: roomTar.value.includes(index) ? item.targetUrl : item.url, + c: common_vendor.o(($event) => saveItem(index), index), + d: common_vendor.t(item.name), + e: common_vendor.s(roomTar.value.includes(index) ? { + color: "#167ED7" + } : {}), + f: index + }; + }), + ak: `/static/index/cardicons/ray2.png` + } : {}, { + al: darkFans.value + }, darkFans.value ? { + am: common_vendor.f(roomBtttonListdark.value, (item, index, i0) => { + return { + a: roomTar.value.includes(index), + b: roomTar.value.includes(index) ? item.targetUrl : item.url, + c: common_vendor.o(($event) => saveItem(index), index), + d: common_vendor.t(item.name), + e: common_vendor.s(roomTar.value.includes(index) ? { + color: "#167ED7" + } : { + color: "#fff" + }), + f: index + }; + }), + an: `/static/index/cardicons/ray2.png` + } : {}, { + ao: common_vendor.n(darkFans.value ? `right-container-fir-right-dark` : `right-container-fir-right`), + ap: `/static/index/yiliao/yiliaolei.png`, + aq: common_vendor.f([1, 2, 3], (item, index, i0) => { + return { + a: index, + b: common_vendor.s(index === secondcurrentIndexup.value ? { + backgroundColor: `#01A0FE` + } : {}) + }; + }), + ar: common_vendor.n(darkFans.value ? `dot-dark` : `dot`), + as: darkFans.value + }, darkFans.value ? { + at: `/static/index/cardbgc/uplight.png` + } : {}, { + av: common_vendor.f([1, 2, 3], (item, index, i0) => { + return { + a: common_vendor.f([1, 2, 3], (item2, index2, i1) => { + return { + a: index2 + }; + }), + b: index + }; + }), + aw: common_vendor.n(darkFans.value ? `time-font-dark` : `time-font`), + ax: darkFans.value ? `/static/index/medium/doctorsaydark.png` : `/static/index/medium/doctorsay.png`, + ay: common_vendor.n(darkFans.value ? `time-people-font-dark` : `time-people-font`), + az: darkFans.value ? `/static/index/medium/howtododark.png` : `/static/index/medium/howtodo.png`, + aA: common_vendor.n(darkFans.value ? `time-people-font-dark` : `time-people-font`), + aB: darkFans.value ? `/static/index/medium/useMed.png` : `/static/index/medium/yongyao.png`, + aC: common_vendor.n(darkFans.value ? `time-people-font-dark` : `time-people-font`), + aD: darkFans.value ? `/static/index/medium/domanydark.png` : `/static/index/medium/domany.png`, + aE: common_vendor.n(darkFans.value ? `time-people-font-dark` : `time-people-font`), + aF: common_vendor.n(darkFans.value ? `time-button-end-dark` : `time-button-end`), + aG: `/static/index/yiliao/project2.png`, + aH: common_vendor.n(darkFans.value ? `right-container-photo-text-dark` : `right-container-photo-text`), + aI: secondcurrentIndex.value, + aJ: secondcurrentIndexup.value, + aK: common_vendor.o(onSwiperChangesec), + aL: darkFans.value + }, darkFans.value ? { + aM: `/static/index/cardbgc/leftlight.png` + } : {}, { + aN: `/static/index/hulilist/shang.png`, + aO: !darkFans.value + }, !darkFans.value ? { + aP: common_vendor.f(mediumList.value, (item, index, i0) => { + return { + a: item.url, + b: common_vendor.t(item.name), + c: `${item.number}%`, + d: item.number !== 0, + e: index + }; + }) + } : {}, { + aQ: darkFans.value + }, darkFans.value ? { + aR: common_vendor.f(mediumListdark.value, (item, index, i0) => { + return { + a: item.url, + b: common_vendor.t(item.name), + c: `${item.number}%`, + d: item.number !== 0, + e: index + }; + }) + } : {}, { + aS: `/static/index/hulilist/xia.png`, + aT: common_vendor.n(darkFans.value ? `right-container-left-dark` : `right-container-left`), + aU: common_vendor.n(darkFans.value ? `right-container-right-text-dark` : `right-container-right-text`), + aV: darkFans.value ? `/static/index/darkicon/diandark.png` : `/static/index/medium/whitedian.png`, + aW: common_vendor.f([1, 2, 3], (item, index, i0) => { + return { + a: index + }; + }), + aX: darkFans.value ? `/static/index/darkicon/baojieleidark.png` : `/static/index/label.png`, + aY: common_vendor.n(darkFans.value ? `right-container-right-down-card-card-font-dark` : `right-container-right-down-card-card-font`), + aZ: `/static/index/project3.png`, + ba: common_vendor.n(darkFans.value ? `right-container-right-down-card-font-dark` : `right-container-right-down-card-font`), + bb: common_vendor.n(darkFans.value ? `time-font-dark` : `time-font`), + bc: darkFans.value ? `/static/index/darkicon/zhixingrenyuanddark.png` : `/static/index/cardicons/zhifa.png`, + bd: common_vendor.n(darkFans.value ? `time-people-font-dark` : `time-people-font`), + be: darkFans.value ? `/static/index/darkicon/zhixingfangshidark.png` : `/static/index/cardicons/zhixing.png`, + bf: common_vendor.n(darkFans.value ? `time-people-font-dark` : `time-people-font`), + bg: common_vendor.n(darkFans.value ? `time-button-end-dark` : `time-button-end`), + bh: common_vendor.n(darkFans.value ? `right-container-right-down-card-dark` : `right-container-right-down-card`), + bi: thirdcurrentIndex.value, + bj: common_vendor.s(darkFans.value ? { + backgroundColor: "rgb(22, 48, 76)" + } : ""), + bk: common_vendor.f(undericonList.value, (item, index, i0) => { + return { + a: index === undermenuIndex.value, + b: index === undermenuIndex.value ? item.targetUrl : item.url, + c: index, + d: common_vendor.o(($event) => changeMenuUnder(index), index) + }; + }), + bl: common_assets._imports_2, + bm: common_vendor.n(darkFans.value ? `darkbackgroundContainer` : `backgroundContainer`) + }); }; } }); diff --git a/unpackage/dist/dev/mp-weixin/pages/index/index.json b/unpackage/dist/dev/mp-weixin/pages/index/index.json index 97d0d93..ced5b27 100644 --- a/unpackage/dist/dev/mp-weixin/pages/index/index.json +++ b/unpackage/dist/dev/mp-weixin/pages/index/index.json @@ -1,5 +1,4 @@ { "navigationStyle": "custom", - "orientation": "landscape", "usingComponents": {} } \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/index/index.wxml b/unpackage/dist/dev/mp-weixin/pages/index/index.wxml index 78835f8..8368e34 100644 --- a/unpackage/dist/dev/mp-weixin/pages/index/index.wxml +++ b/unpackage/dist/dev/mp-weixin/pages/index/index.wxml @@ -1 +1 @@ - 王金凤 N00123456 护理单元01 护理类待执行 准备洁具(口腔) 10:00 - 10:10 \ No newline at end of file + 王金凤 N00123456 护理单元01 王金福护理类待执行 准备洁具(口腔) 10:00 - 10:10 为老人提供口腔清洁器具,牙膏、牙刷及水杯,看护完成 单人执行 -- 开始服务 服务结束 {{item.b}}{{item.b}}{{Y}}{{aa}}{{ac}}23°C39%{{item.d}}{{item.d}}医疗类 10:00 - 10:10 医嘱:药品 处置:肌肉注射 用药:抗生素类 执行:周期一日执行一次 开始服务 服务结束 脑膜炎(1/2) {{item.b}}{{item.b}}服务指令 保洁类 更换纸尿裤 10:00 - 10:10 协作执行 王金福 / 李贵田 开始服务 服务结束 \ 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 cbf9b62..8163606 100644 --- a/unpackage/dist/dev/mp-weixin/pages/index/index.wxss +++ b/unpackage/dist/dev/mp-weixin/pages/index/index.wxss @@ -1,4 +1,4 @@ -.background-container.data-v-1cf27b2a { +.backgroundContainer.data-v-1cf27b2a { display: flex; position: relative; width: 100%; @@ -8,138 +8,1132 @@ background-position: center center; overflow: hidden; } +.darkbackgroundContainer.data-v-1cf27b2a { + display: flex; + position: relative; + width: 100%; + height: 100vh; + background-image: url('../../static/index/background.png'); + background-size: cover; + background-position: center center; + overflow: hidden; +} .right-container.data-v-1cf27b2a { width: 100%; height: 100vh; } -.right-container .right-container-fir.data-v-1cf27b2a { +.right-container .right-container-sec.data-v-1cf27b2a { width: 100%; + display: flex; + position: relative; +} +.right-container .right-container-sec .right-container-fir-left-carousel.data-v-1cf27b2a { + position: absolute; + right: 250rpx; + top: 12rpx; +} +.right-container .right-container-sec .right-container-fir-left-carousel .carousel.data-v-1cf27b2a { + position: relative; + width: 30rpx; + /* 轮播图的宽度 */ + height: 100rpx; + /* 轮播图的高度 */ + /* 背景色(示例) */ +} +.right-container .right-container-sec .right-container-fir-left-carousel .carousel .dots.data-v-1cf27b2a { + position: absolute; + top: 50%; + right: 10rpx; + transform: translateY(-50%); + display: flex; + flex-direction: column; + gap: 7rpx; +} +.right-container .right-container-sec .right-container-fir-left-carousel .carousel .dots .dot.data-v-1cf27b2a { + width: 10rpx; + height: 10rpx; + border-radius: 50%; + background-color: #657494; + /* 默认未激活的颜色 */ + cursor: pointer; + transition: background-color 0.3s ease; +} +.right-container .right-container-sec .right-container-fir-left-carousel .carousel .dots .dot-dark.data-v-1cf27b2a { + width: 10rpx; + height: 10rpx; + border-radius: 50%; + background-color: #fff; + /* 默认未激活的颜色 */ + cursor: pointer; + transition: background-color 0.3s ease; +} +.right-container .right-container-sec .right-container-fir-left-carousel .carousel .dots .dot.active.data-v-1cf27b2a { + background-color: #01A0FE; + /* 激活的颜色 */ +} +.right-container .right-container-sec .right-container-right-father.data-v-1cf27b2a { + margin-left: 2%; + width: 41%; + height: 630rpx; + border-radius: 35rpx; + border: 1rpx solid #fff; + background-color: rgba(200, 216, 238, 0.8); + /* 背景颜色 #f4f9ff,透明度 70% */ + position: relative; + display: flex; + flex-direction: column; + box-shadow: 0px 16rpx 32rpx rgba(0, 0, 0, 0.3); +} +.right-container .right-container-sec .right-container-right-father .uni-margin-wrap.data-v-1cf27b2a { + margin-top: 200rpx; + width: 1200rpx; +} +.right-container .right-container-sec .right-container-right-father .uni-margin-wrap .swiper.data-v-1cf27b2a { height: 900rpx; +} +.right-container .right-container-sec .right-container-right-father .uni-margin-wrap .swiper .swiper-item-flex.data-v-1cf27b2a { display: flex; } -.right-container .right-container-fir .right-container-fir-left.data-v-1cf27b2a { - width: 60%; - height: 900rpx; - border-radius: 80rpx; - /* 圆角 */ - position: relative; - /* 使用背景来模拟边框 */ - background-image: linear-gradient(45deg, #A496E8, #777CCC, #FAFDFF, #8BC5ED, #B8C5DD, #BBC8DD); - background-origin: border-box; - /* 背景从边框开始 */ - background-clip: content-box; - /* 使背景只填充在边框内,而不覆盖内容区域 */ - padding: 5rpx; - /* 留出足够的空间来呈现渐变边框 */ - /* 增加背景色确保视觉效果 */ - background-color: rgba(255, 255, 255, 0.1); - /* 内部背景色 */ - box-sizing: border-box; - /* 包括边框在内计算宽高 */ +.right-container .right-container-sec .right-container-right-father .uni-margin-wrap .swiper .swiper-item.data-v-1cf27b2a { + display: block; + height: 300rpx; + line-height: 300rpx; + text-align: center; } -.right-container .right-container-fir .right-container-fir-left .right-container-fir-left-card.data-v-1cf27b2a { - position: absolute; - top: 1%; - left: 0.5%; - width: 99%; - height: 98%; - border-radius: 80rpx; - background-color: #c3d3e9; +.right-container .right-container-sec .right-container-right-father .time-tra-next.data-v-1cf27b2a { + height: 100%; + width: 700rpx; } -.right-container .right-container-fir .right-container-fir-left .right-container-fir-left-card .right-container-fir-left-card-main.data-v-1cf27b2a { +.right-container .right-container-sec .right-container-right-father .time-tra-next .time-button-view-fin.data-v-1cf27b2a { + display: flex; + margin-top: 50rpx; + margin-left: -50rpx; +} +.right-container .right-container-sec .right-container-right-father .time-tra-next .time-button-view-fin .time-button-start.data-v-1cf27b2a { + width: 220rpx; + height: 80rpx; + border-radius: 50rpx; + background: linear-gradient(to top, #047ADB, #0EA7DD); + border-left: 2rpx solid #fff; display: flex; justify-content: center; align-items: center; + color: #fff; + font-size: 32rpx; + margin-right: 25rpx; + box-shadow: 3rpx 3rpx 10rpx rgba(0, 0, 0, 0.3); +} +.right-container .right-container-sec .right-container-right-father .time-tra-next .time-button-view-fin .time-button-end.data-v-1cf27b2a { + width: 220rpx; + height: 80rpx; + border-radius: 50rpx; + background-color: #fff; + display: flex; + justify-content: center; + align-items: center; + font-size: 32rpx; + box-shadow: 3rpx 3rpx 10rpx rgba(0, 0, 0, 0.3); +} +.right-container .right-container-sec .right-container-right-father .time-tra-next .time-button-view-fin .time-button-end-dark.data-v-1cf27b2a { + width: 220rpx; + height: 80rpx; + border-radius: 50rpx; + display: flex; + justify-content: center; + align-items: center; + font-size: 32rpx; + box-shadow: 3rpx 3rpx 10rpx rgba(0, 0, 0, 0.3); + background: linear-gradient(to top, #6B87BA, #FFFFFF); + /* 渐变从下到上 */ +} +.right-container .right-container-sec .right-container-right-father .time-tra-next .time-people.data-v-1cf27b2a { + display: flex; + margin-bottom: 20rpx; +} +.right-container .right-container-sec .right-container-right-father .time-tra-next .time-people .time-people-img.data-v-1cf27b2a { + width: 42rpx; + height: 42rpx; + margin-right: 5rpx; +} +.right-container .right-container-sec .right-container-right-father .time-tra-next .time-people .time-people-font.data-v-1cf27b2a { + color: #586787; + font-size: 30rpx; + margin-right: 90rpx; +} +.right-container .right-container-sec .right-container-right-father .time-tra-next .time-people .time-people-font-dark.data-v-1cf27b2a { + color: #CDD6EA; + font-size: 30rpx; + margin-right: 90rpx; +} +.right-container .right-container-sec .right-container-right-father .time-tra-next .time-font.data-v-1cf27b2a { + font-size: 65rpx; + margin-top: 50rpx; + margin-bottom: 10rpx; + font-weight: 700; + background: linear-gradient(to bottom, #7080A1, #263556); + -webkit-background-clip: text; + color: transparent; +} +.right-container .right-container-sec .right-container-right-father .time-tra-next .time-font-dark.data-v-1cf27b2a { + font-size: 65rpx; + margin-top: 50rpx; + margin-bottom: 10rpx; + background: linear-gradient(to bottom, #FFFFFF, #B2C8E2); + -webkit-background-clip: text; + color: transparent; + font-weight: 700; +} +.right-container .right-container-sec .right-container-right-father .time-tra-next .time-text.data-v-1cf27b2a { + margin-left: 10rpx; + color: #364464; + font-size: 70rpx; + font-weight: 700; + width: 800rpx; + margin-bottom: 50rpx; + line-height: 70rpx; + position: relative; +} +.right-container .right-container-sec .right-container-right-father .time-tra-next .time-text .time-text-img.data-v-1cf27b2a { + position: absolute; + top: 0; + left: 300rpx; + width: 80rpx; + height: 80rpx; +} +.right-container .right-container-sec .right-container-right-father .right-container-right-down-father.data-v-1cf27b2a { + margin-left: 5%; + width: 90%; + height: 560rpx; + display: flex; + justify-content: center; + align-items: center; +} +.right-container .right-container-sec .right-container-right-father .right-container-right-down-father .right-container-right-down-left.data-v-1cf27b2a { + height: 50rpx; + width: 50rpx; + margin-top: -150rpx; +} +.right-container .right-container-sec .right-container-right-father .right-container-right-down-father .right-container-right-down-card-dark.data-v-1cf27b2a { + margin-left: 5rpx; + margin-right: 5rpx; + margin-top: 60rpx; + width: 99%; + height: 430rpx; + border-radius: 40rpx; + position: relative; + display: flex; + box-shadow: 2rpx 0 0 2rpx; + background-color: #16304c; + border: 2rpx solid #fff; +} +.right-container .right-container-sec .right-container-right-father .right-container-right-down-father .right-container-right-down-card-dark .right-container-right-down-card-line.data-v-1cf27b2a { + width: 1px; + /* 线条的宽度 */ + height: 200rpx; + /* 高度占满父容器 */ + background: linear-gradient(to top, rgba(0, 0, 0, 0) 0%, #808080 50%, rgba(0, 0, 0, 0) 100%); + margin-left: 0rpx; + margin-right: 10rpx; + margin-top: 100rpx; +} +.right-container .right-container-sec .right-container-right-father .right-container-right-down-father .right-container-right-down-card-dark .right-container-right-down-card-card.data-v-1cf27b2a { + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + width: 450rpx; + position: relative; +} +.right-container .right-container-sec .right-container-right-father .right-container-right-down-father .right-container-right-down-card-dark .right-container-right-down-card-card .right-container-right-down-card-card-type.data-v-1cf27b2a { + position: absolute; + top: 0rpx; + left: -25rpx; + width: 250rpx; + height: 80rpx; +} +.right-container .right-container-sec .right-container-right-father .right-container-right-down-father .right-container-right-down-card-dark .right-container-right-down-card-card .right-container-right-down-card-card-font.data-v-1cf27b2a { + position: absolute; + top: 15rpx; + left: 65rpx; + font-size: 35rpx; + color: #414F6E; +} +.right-container .right-container-sec .right-container-right-father .right-container-right-down-father .right-container-right-down-card-dark .right-container-right-down-card-card .right-container-right-down-card-card-font-dark.data-v-1cf27b2a { + position: absolute; + top: 15rpx; + left: 65rpx; + font-size: 35rpx; + color: #fff; +} +.right-container .right-container-sec .right-container-right-father .right-container-right-down-father .right-container-right-down-card-dark .right-container-right-down-card-card .right-container-right-down-card-img.data-v-1cf27b2a { + width: 230rpx; + height: 200rpx; + margin-top: 30rpx; +} +.right-container .right-container-sec .right-container-right-father .right-container-right-down-father .right-container-right-down-card-dark .right-container-right-down-card-card .right-container-right-down-card-font.data-v-1cf27b2a { + font-size: 35rpx; + margin-top: 30rpx; +} +.right-container .right-container-sec .right-container-right-father .right-container-right-down-father .right-container-right-down-card-dark .right-container-right-down-card-card .right-container-right-down-card-font-dark.data-v-1cf27b2a { + font-size: 35rpx; + color: #fff; + margin-top: 30rpx; +} +.right-container .right-container-sec .right-container-right-father .right-container-right-down-father .right-container-right-down-card.data-v-1cf27b2a { + margin-left: 5rpx; + margin-right: 5rpx; + margin-top: 60rpx; + width: 99%; + height: 430rpx; + border-radius: 40rpx; + position: relative; + display: flex; + border: 2rpx solid black; +} +.right-container .right-container-sec .right-container-right-father .right-container-right-down-father .right-container-right-down-card .right-container-right-down-card-line.data-v-1cf27b2a { + width: 1px; + /* 线条的宽度 */ + height: 200rpx; + /* 高度占满父容器 */ + background: linear-gradient(to top, rgba(0, 0, 0, 0) 0%, #808080 50%, rgba(0, 0, 0, 0) 100%); + margin-left: 0rpx; + margin-right: 10rpx; + margin-top: 100rpx; +} +.right-container .right-container-sec .right-container-right-father .right-container-right-down-father .right-container-right-down-card .right-container-right-down-card-card.data-v-1cf27b2a { + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + width: 450rpx; + position: relative; +} +.right-container .right-container-sec .right-container-right-father .right-container-right-down-father .right-container-right-down-card .right-container-right-down-card-card .right-container-right-down-card-card-type.data-v-1cf27b2a { + position: absolute; + top: 0rpx; + left: -25rpx; + width: 250rpx; + height: 80rpx; +} +.right-container .right-container-sec .right-container-right-father .right-container-right-down-father .right-container-right-down-card .right-container-right-down-card-card .right-container-right-down-card-card-font.data-v-1cf27b2a { + position: absolute; + top: 15rpx; + left: 65rpx; + font-size: 35rpx; + color: #414F6E; +} +.right-container .right-container-sec .right-container-right-father .right-container-right-down-father .right-container-right-down-card .right-container-right-down-card-card .right-container-right-down-card-img.data-v-1cf27b2a { + width: 230rpx; + height: 200rpx; + margin-top: 30rpx; +} +.right-container .right-container-sec .right-container-right-father .right-container-right-down-father .right-container-right-down-card .right-container-right-down-card-card .right-container-right-down-card-font.data-v-1cf27b2a { + font-size: 35rpx; + margin-top: 30rpx; +} +.right-container .right-container-sec .right-container-right-father .right-container-right-down-father .right-container-right-down-card .right-container-right-down-card-card .right-container-right-down-card-font-dark.data-v-1cf27b2a { + font-size: 50rpx; + color: #fff; + margin-top: 30rpx; +} +.right-container .right-container-sec .right-container-right-father .right-container-right-down-father .right-container-right-down-right.data-v-1cf27b2a { + height: 50rpx; + width: 50rpx; + margin-top: -150rpx; +} +.right-container .right-container-sec .right-container-right-father .right-container-right-title.data-v-1cf27b2a { + width: 100%; + height: 170rpx; + position: relative; +} +.right-container .right-container-sec .right-container-right-father .right-container-right-title .right-container-right-text.data-v-1cf27b2a { + line-height: 130rpx; + font-size: 40rpx; + font-weight: 600; + margin-left: 60rpx; +} +.right-container .right-container-sec .right-container-right-father .right-container-right-title .right-container-right-text-dark.data-v-1cf27b2a { + line-height: 130rpx; + font-size: 40rpx; + font-weight: 600; + margin-left: 60rpx; + color: #fff; +} +.right-container .right-container-sec .right-container-right-father .right-container-right-title .right-container-right-img.data-v-1cf27b2a { + position: absolute; + top: 60rpx; + right: 50rpx; + width: 50rpx; + height: 15rpx; +} +.right-container .right-container-sec .right-container-left.data-v-1cf27b2a { + width: 55%; + height: 630rpx; + border-radius: 45rpx; + border: 1rpx solid #fff; + /* 背景颜色 #f4f9ff,透明度 70% */ + position: relative; + display: flex; + justify-content: center; + align-items: center; + background-color: rgba(255, 255, 255, 0.5); + /* 白色背景透明度为 10% */ + background-image: url('../../static/index/cardbgc/newbgc.png'); + background-position: 10% 60%; + overflow: hidden; + box-shadow: 0px 16rpx 32rpx rgba(0, 0, 0, 0.3); + /* 背景图片从左上角25%和30%的位置开始 */ +} +.right-container .right-container-sec .right-container-left-dark.data-v-1cf27b2a { + width: 55%; + height: 630rpx; + border-radius: 45rpx; + border: 1rpx solid #fff; + background-color: #16304c; + /* 背景颜色 #f4f9ff,透明度 70% */ + position: relative; + display: flex; + justify-content: center; + align-items: center; + overflow: hidden; +} +.right-container .right-container-sec .uni-margin-wrap.data-v-1cf27b2a { + width: 1000rpx; +} +.right-container .right-container-sec .uni-margin-wrap .swiper.data-v-1cf27b2a { + height: 700rpx; +} +.right-container .right-container-sec .uni-margin-wrap .swiper .swiper-item-flex.data-v-1cf27b2a { + display: flex; +} +.right-container .right-container-sec .uni-margin-wrap .swiper .swiper-item.data-v-1cf27b2a { + display: block; + height: 300rpx; + line-height: 300rpx; + text-align: center; +} +.right-container .right-container-sec .right-container-fir-left-card-main-right.data-v-1cf27b2a { + height: 50rpx; + width: 50rpx; + margin-right: 10rpx; + z-index: 11; +} +.right-container .right-container-sec .right-huli.data-v-1cf27b2a { + width: 250rpx; + height: 100%; + margin-top: 0rpx; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; +} +.right-container .right-container-sec .right-huli .right-huli-view.data-v-1cf27b2a { + margin-left: 10rpx; + height: 750rpx; + overflow: auto; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + box-sizing: border-box; +} +.right-container .right-container-sec .right-huli .right-huli-view .right-huli-view-dis.data-v-1cf27b2a { + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + width: 100%; + height: 150rpx; +} +.right-container .right-container-sec .right-huli .right-huli-view .right-huli-view-dis .right-huli-img.data-v-1cf27b2a { + width: 60rpx; + height: 60rpx; +} +.right-container .right-container-sec .right-huli .right-huli-view .right-huli-view-dis .right-huli-text.data-v-1cf27b2a { + width: 100%; + height: 10rpx; + font-size: 25rpx; + text-align: center; +} +.right-container .right-container-sec .right-huli .right-huli-view .right-huli-view-dis .right-huli-text-dark.data-v-1cf27b2a { + width: 100%; + height: 10rpx; + font-size: 25rpx; + text-align: center; + color: #fff; +} +.right-container .right-container-sec .right-huli .right-huli-shang.data-v-1cf27b2a { + margin-top: 40rpx; + width: 30rpx; + height: 30rpx; +} +.right-container .right-container-sec .right-huli .right-huli-xia.data-v-1cf27b2a { + margin-bottom: 40rpx; + width: 30rpx; + height: 30rpx; +} +.right-container .right-container-sec .right-container-photo.data-v-1cf27b2a { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; +} +.right-container .right-container-sec .right-container-photo .right-container-photo-img.data-v-1cf27b2a { + width: 310rpx; + height: 350rpx; + margin-bottom: 10rpx; +} +.right-container .right-container-sec .right-container-photo .right-container-photo-text.data-v-1cf27b2a { + font-size: 30rpx; + color: #324160; +} +.right-container .right-container-sec .right-container-photo .right-container-photo-text-dark.data-v-1cf27b2a { + font-size: 30rpx; + background: linear-gradient(to bottom, #FFFFFF, #B2C8E2); + -webkit-background-clip: text; + color: transparent; +} +.right-container .right-container-sec .right-container-fir-left-card-main-left.data-v-1cf27b2a { + height: 50rpx; + width: 50rpx; + margin-left: 30rpx; +} +.right-container .right-container-sec .right-container-left-type.data-v-1cf27b2a { + position: absolute; + top: 42rpx; + left: -15rpx; + width: 235rpx; + height: 73rpx; + z-index: 10; +} +.right-container .right-container-sec .right-container-left-font.data-v-1cf27b2a { + position: absolute; + top: 51rpx; + left: 50rpx; + font-size: 36rpx; + color: #fff; + z-index: 10; +} +.right-container .right-container-sec .time-tra-sec.data-v-1cf27b2a { + margin-left: 80rpx; + margin-top: 110rpx; + height: 100%; + width: 500rpx; + overflow: hidden; +} +.right-container .right-container-sec .time-tra-sec .time-people-thi.data-v-1cf27b2a { + display: flex; + margin-bottom: 15rpx; +} +.right-container .right-container-sec .time-tra-sec .time-people-thi .time-people-img.data-v-1cf27b2a { + width: 42rpx; + height: 42rpx; + margin-right: 5rpx; + margin-left: 5rpx; +} +.right-container .right-container-sec .time-tra-sec .time-people-thi .time-people-font.data-v-1cf27b2a { + color: #586787; + font-size: 30rpx; + margin-right: 20rpx; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; +} +.right-container .right-container-sec .time-tra-sec .time-people-thi .time-people-font-dark.data-v-1cf27b2a { + color: #CDD6EA; + font-size: 30rpx; + margin-right: 20rpx; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; +} +.right-container .right-container-sec .time-tra-sec .time-button-view.data-v-1cf27b2a { + display: flex; + margin-top: 30rpx; + margin-left: 0rpx; +} +.right-container .right-container-sec .time-tra-sec .time-button-view .time-button-start.data-v-1cf27b2a { + width: 230rpx; + height: 80rpx; + border-radius: 40rpx; + background: linear-gradient(to top, #0DA0B1, #04D3AF); + border-left: 2rpx solid #fff; + display: flex; + justify-content: center; + align-items: center; + color: #fff; + font-size: 32rpx; + margin-right: 25rpx; + box-shadow: 3rpx 3rpx 10rpx rgba(0, 0, 0, 0.3); +} +.right-container .right-container-sec .time-tra-sec .time-button-view .time-button-end.data-v-1cf27b2a { + width: 230rpx; + height: 80rpx; + border-radius: 40rpx; + background-color: #fff; + display: flex; + justify-content: center; + align-items: center; + font-size: 32rpx; + box-shadow: 3rpx 3rpx 10rpx rgba(0, 0, 0, 0.3); +} +.right-container .right-container-sec .time-tra-sec .time-button-view .time-button-end-dark.data-v-1cf27b2a { + width: 230rpx; + height: 80rpx; + border-radius: 40rpx; + display: flex; + justify-content: center; + align-items: center; + font-size: 32rpx; + box-shadow: 3rpx 3rpx 10rpx rgba(0, 0, 0, 0.3); + background: linear-gradient(to top, #6B87BA, #FFFFFF); +} +.right-container .right-container-sec .time-tra-sec .time-font.data-v-1cf27b2a { + font-size: 75rpx; + margin-top: 50rpx; + margin-bottom: 10rpx; + font-weight: 700; + background: linear-gradient(to bottom, #7080A1, #263556); + -webkit-background-clip: text; + color: transparent; +} +.right-container .right-container-sec .time-tra-sec .time-font-dark.data-v-1cf27b2a { + font-size: 75rpx; + margin-top: 50rpx; + margin-bottom: 10rpx; + background: linear-gradient(to bottom, #FFFFFF, #B2C8E2); + -webkit-background-clip: text; + color: transparent; + font-weight: 700; +} +.right-container .right-container-sec .time-tra-sec .time-text-img.data-v-1cf27b2a { + position: absolute; + top: 0; + left: 300rpx; + width: 80rpx; + height: 80rpx; +} +.right-container .time-people-sec.data-v-1cf27b2a { + display: flex; + margin-bottom: 10rpx; +} +.right-container .time-people-sec .time-people-img.data-v-1cf27b2a { + width: 42rpx; + height: 42rpx; + margin-right: 10rpx; + margin-left: 5rpx; +} +.right-container .time-people-sec .time-people-font.data-v-1cf27b2a { + color: #586787; + font-size: 30rpx; + margin-right: 90rpx; +} +.right-container .time-people-sec .time-people-font-dark.data-v-1cf27b2a { + color: #CDD6EA; + font-size: 30rpx; + margin-right: 90rpx; +} +.right-container .right-container-fir.data-v-1cf27b2a { + width: 100%; + height: 580rpx; + display: flex; +} +.right-container .right-container-fir .right-container-fir-left-nav.data-v-1cf27b2a { + width: 63%; + height: 548rpx; + border-radius: 45rpx; + /* 圆角 */ + position: relative; + /* 增加背景色确保视觉效果 */ + background-color: rgba(255, 255, 255, 0.1); + box-shadow: 0px 16rpx 32rpx rgba(0, 0, 0, 0.3); + /* 增强的阴影效果 */ + /* 包括边框在内计算宽高 */ +} +.right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-carousel.data-v-1cf27b2a { + position: absolute; + right: 230rpx; + margin-top: 10rpx; +} +.right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-carousel .carousel.data-v-1cf27b2a { + position: relative; + width: 150rpx; + /* 轮播图的宽度 */ + height: 100rpx; + /* 轮播图的高度 */ + /* 背景色(示例) */ +} +.right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-carousel .carousel .dots.data-v-1cf27b2a { + position: absolute; + top: 50%; + right: 10rpx; + transform: translateY(-50%); + display: flex; + flex-direction: column; + gap: 7rpx; +} +.right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-carousel .carousel .dots .dot.data-v-1cf27b2a { + width: 10rpx; + height: 10rpx; + border-radius: 50%; + background-color: #657494; + /* 默认未激活的颜色 */ + cursor: pointer; + transition: background-color 0.3s ease; +} +.right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-carousel .carousel .dots .dot-dark.data-v-1cf27b2a { + width: 10rpx; + height: 10rpx; + border-radius: 50%; + background-color: #fff; + /* 默认未激活的颜色 */ + cursor: pointer; + transition: background-color 0.3s ease; +} +.right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-carousel .carousel .dots .dot.active.data-v-1cf27b2a { + background-color: #01A0FE; + /* 激活的颜色 */ +} +.right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card.data-v-1cf27b2a { + position: absolute; + top: 0; + left: 0; width: 100%; height: 100%; - margin-top: 60rpx; + border-radius: 45rpx; + border: 1rpx solid #fff; + background-color: rgba(255, 255, 255, 0.1); + /* 白色背景透明度为 10% */ + background-image: url('../../static/index/cardbgc/newbgc.png'); + background-position: 10% 60%; + /* 背景图片从左上角25%和30%的位置开始 */ } -.right-container .right-container-fir .right-container-fir-left .right-container-fir-left-card .right-container-fir-left-card-main .time-font.data-v-1cf27b2a { - font-size: 141rpx; +.right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-dark.data-v-1cf27b2a { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + border-radius: 45rpx; + background-image: url('../../static/index/cardbgc/bgcdark.png'); + background-color: rgba(12, 25, 47, 0.1); + border: 1rpx solid #fff; + /* 底色 */ } -.right-container .right-container-fir .right-container-fir-left .right-container-fir-left-card .right-container-fir-left-card-main .right-container-fir-left-card-card.data-v-1cf27b2a { +.right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main.data-v-1cf27b2a { + display: flex; + justify-content: center; + align-items: center; + width: 1350rpx; + height: 100%; +} +.right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .split-line-white-right-left.data-v-1cf27b2a { + width: 2rpx; + /* 线条的宽度 */ + height: 800rpx; + /* 高度占满父容器 */ + background: linear-gradient(to top, rgba(0, 0, 0, 0) 0%, #fff 50%, rgba(0, 0, 0, 0) 100%); + margin-right: 50rpx; + position: relative; +} +.right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .split-line-white-right-left .split-line-white-img.data-v-1cf27b2a { + position: absolute; + top: 0rpx; + left: -300rpx; + height: 800rpx; + width: 300rpx; + z-index: -1; +} +.right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .uni-margin-wrap-fir.data-v-1cf27b2a { + width: 100%; +} +.right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .uni-margin-wrap-fir .swiper.data-v-1cf27b2a { + height: 470rpx; +} +.right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .uni-margin-wrap-fir .swiper .swiper-item-flex.data-v-1cf27b2a { + display: flex; + margin-top: 30rpx; + z-index: 10; +} +.right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .uni-margin-wrap-fir .swiper .swiper-item.data-v-1cf27b2a { + display: block; + height: 200rpx; + line-height: 300rpx; + text-align: center; +} +.right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .right-container-fir-left-card-main-right.data-v-1cf27b2a { + height: 50rpx; + width: 50rpx; + margin-right: 25rpx; + z-index: 1; +} +.right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .time-tra-fir.data-v-1cf27b2a { + margin-top: 40rpx; + margin-left: 30rpx; +} +.right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .time-tra-fir .time-people-two.data-v-1cf27b2a { + display: flex; +} +.right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .time-tra-fir .time-button-view.data-v-1cf27b2a { + display: flex; + margin-top: 10rpx; + margin-left: 0rpx; +} +.right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .time-tra-fir .time-button-view .time-button-start.data-v-1cf27b2a { + width: 230rpx; + height: 80rpx; + border-radius: 40rpx; + background: linear-gradient(to top, #047ADB, #0EA7DD); + border-left: 2rpx solid #fff; + display: flex; + justify-content: center; + align-items: center; + color: #fff; + font-size: 32rpx; + margin-right: 25rpx; + box-shadow: 3rpx 3rpx 10rpx rgba(0, 0, 0, 0.3); +} +.right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .time-tra-fir .time-button-view .time-button-end.data-v-1cf27b2a { + width: 230rpx; + height: 80rpx; + border-radius: 40rpx; + background-color: #fff; + display: flex; + justify-content: center; + align-items: center; + font-size: 32rpx; + box-shadow: 3rpx 3rpx 10rpx rgba(0, 0, 0, 0.3); +} +.right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .time-tra-fir .time-button-view .time-button-end-dark.data-v-1cf27b2a { + width: 230rpx; + height: 80rpx; + border-radius: 40rpx; + display: flex; + justify-content: center; + align-items: center; + font-size: 32rpx; + box-shadow: 3rpx 3rpx 10rpx rgba(0, 0, 0, 0.3); + background: linear-gradient(to top, #6B87BA, #FFFFFF); + /* 渐变从下到上 */ +} +.right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .time-tra-fir .time-people-fir.data-v-1cf27b2a { + display: flex; + margin-right: 20rpx; +} +.right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .time-tra-fir .time-people-fir .time-people-img.data-v-1cf27b2a { + width: 42rpx; + height: 42rpx; + margin-right: 10rpx; + margin-left: 5rpx; +} +.right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .time-tra-fir .time-people-fir .time-people-font.data-v-1cf27b2a { + color: #586787; + font-size: 30rpx; +} +.right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .time-tra-fir .time-people-fir .time-people-font-dark.data-v-1cf27b2a { + color: #CDD6EA; + font-size: 30rpx; +} +.right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .time-tra-fir .time-font.data-v-1cf27b2a { + font-size: 70rpx; + margin-bottom: 30rpx; + background: linear-gradient(to top, #334160, #687898); + -webkit-background-clip: text; + color: transparent; + font-weight: 700; +} +.right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .time-tra-fir .time-font-dark.data-v-1cf27b2a { + font-size: 70rpx; + margin-bottom: 30rpx; + background: linear-gradient(to right, #EBF4FF, #ADC4E0); + -webkit-background-clip: text; + color: transparent; + font-weight: 700; +} +.right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .time-tra-fir .time-text.data-v-1cf27b2a { + margin-left: 10rpx; + color: #586787; + font-size: 35rpx; + width: 530rpx; + margin-bottom: 40rpx; + line-height: 40rpx; +} +.right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .time-tra-fir .time-text-dark.data-v-1cf27b2a { + margin-left: 10rpx; + color: #CDD6EA; + font-size: 35rpx; + width: 530rpx; + margin-bottom: 40rpx; + line-height: 40rpx; +} +.right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .right-container-fir-left-card-card.data-v-1cf27b2a { display: flex; justify-content: center; align-items: center; flex-direction: column; position: relative; + margin-left: 50rpx; } -.right-container .right-container-fir .right-container-fir-left .right-container-fir-left-card .right-container-fir-left-card-main .right-container-fir-left-card-card .right-container-fir-left-card-zhixing.data-v-1cf27b2a { - position: absolute; - top: -5rpx; - left: 550rpx; -} -.right-container .right-container-fir .right-container-fir-left .right-container-fir-left-card .right-container-fir-left-card-main .right-container-fir-left-card-card .right-container-fir-left-card-zhixing-font.data-v-1cf27b2a { +.right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .right-container-fir-left-card-card .right-container-fir-left-card-zhixing.data-v-1cf27b2a { position: absolute; top: 10rpx; - left: 45rpx; - width: 200rpx; - font-size: 37rpx; + left: 870rpx; +} +.right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .right-container-fir-left-card-card .right-container-fir-left-card-zhixing-font.data-v-1cf27b2a { + position: absolute; + top: 5rpx; + left: 25rpx; + width: 150rpx; + font-size: 25rpx; color: #fff; z-index: 10; } -.right-container .right-container-fir .right-container-fir-left .right-container-fir-left-card .right-container-fir-left-card-main .right-container-fir-left-card-card .right-container-fir-left-card-zhixing-img.data-v-1cf27b2a { - width: 189rpx; - height: 77rpx; +.right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .right-container-fir-left-card-card .right-container-fir-left-card-zhixing-img.data-v-1cf27b2a { + width: 120rpx; + height: 50rpx; z-index: 9; } -.right-container .right-container-fir .right-container-fir-left .right-container-fir-left-card .right-container-fir-left-card-main .right-container-fir-left-card-card .right-container-fir-left-card-main-font.data-v-1cf27b2a { - font-size: 66rpx; - font-weight: 200; +.right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .right-container-fir-left-card-card .right-container-fir-left-card-main-font.data-v-1cf27b2a { + font-size: 34rpx; + font-weight: 350; } -.right-container .right-container-fir .right-container-fir-left .right-container-fir-left-card .right-container-fir-left-card-main .right-container-fir-left-card-card .right-container-fir-left-card-main-laba.data-v-1cf27b2a { - width: 100rpx; - height: 100rpx; - position: absolute; - top: 540rpx; - left: 0rpx; -} -.right-container .right-container-fir .right-container-fir-left .right-container-fir-left-card .right-container-fir-left-card-main .right-container-fir-left-card-card .right-container-fir-left-card-img.data-v-1cf27b2a { - width: 738rpx; - height: 546rpx; -} -.right-container .right-container-fir .right-container-fir-left .right-container-fir-left-card .right-container-fir-left-card-main .right-container-fir-left-card-main-left.data-v-1cf27b2a { - height: 200rpx; - width: 100rpx; - margin-right: 30rpx; -} -.right-container .right-container-fir .right-container-fir-left .right-container-fir-left-card .right-container-fir-left-card-hulilei.data-v-1cf27b2a { - position: absolute; - top: 80rpx; - left: -15rpx; - width: 315rpx; - height: 104rpx; -} -.right-container .right-container-fir .right-container-fir-left .right-container-fir-left-card .right-container-fir-left-card-hulilei-font.data-v-1cf27b2a { - position: absolute; - top: 90rpx; - left: 55rpx; - font-size: 50rpx; +.right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .right-container-fir-left-card-card .right-container-fir-left-card-main-font-dark.data-v-1cf27b2a { + font-size: 34rpx; + font-weight: 350; color: #fff; } +.right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .right-container-fir-left-card-card .right-container-fir-left-card-main-laba-video.data-v-1cf27b2a { + width: 100%; + display: flex; + justify-content: center; + align-items: center; + margin-top: 10rpx; +} +.right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .right-container-fir-left-card-card .right-container-fir-left-card-main-laba-video .right-container-fir-left-card-main-laba.data-v-1cf27b2a { + width: 45rpx; + height: 45rpx; + margin-right: 5rpx; +} +.right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .right-container-fir-left-card-card .right-container-fir-left-card-main-laba-video .right-container-fir-left-card-main-video.data-v-1cf27b2a { + width: 45rpx; + height: 45rpx; +} +.right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .right-container-fir-left-card-card .right-container-fir-left-card-img.data-v-1cf27b2a { + width: 360rpx; + height: 270rpx; +} +.right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-main .right-container-fir-left-card-main-left-up.data-v-1cf27b2a { + height: 50rpx; + width: 50rpx; + margin-right: 0rpx; + margin-left: 20rpx; +} +.right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-hulilei.data-v-1cf27b2a { + position: absolute; + top: 42rpx; + left: -10rpx; + width: 220rpx; + height: 73rpx; + z-index: 10; +} +.right-container .right-container-fir .right-container-fir-left-nav .right-container-fir-left-card-hulilei-font.data-v-1cf27b2a { + position: absolute; + top: 51rpx; + left: 45rpx; + font-size: 36rpx; + color: #fff; + z-index: 10; +} .right-container .right-container-fir .right-container-fir-right.data-v-1cf27b2a { - margin-top: 6rpx; margin-left: 2%; - margin-right: 3%; - width: 35%; - height: 900rpx; - border-radius: 80rpx; + margin-right: 2%; + width: 700rpx; + height: 548rpx; + border-radius: 40rpx; border: 1rpx solid #fff; + background: url(../../static/index/rightbgi.png); + background-size: cover; + box-shadow: 0px 16rpx 32rpx rgba(0, 0, 0, 0.3); } -.right-container .right-container-title.data-v-1cf27b2a { - margin-top: 127rpx; - margin-bottom: 73rpx; +.right-container .right-container-fir .right-container-fir-right-dark.data-v-1cf27b2a { + margin-left: 2%; + margin-right: 2%; + width: 700rpx; + height: 548rpx; + border-radius: 40rpx; + border: 1rpx solid #fff; + background-color: #16304c; } -.right-container .right-container-title .right-container-title-no.data-v-1cf27b2a { - font-size: 58rpx; +.right-container .right-container-fir .right-container-card.data-v-1cf27b2a { + margin-top: 10rpx; + margin-left: 40rpx; + position: relative; } -.right-container .right-container-title .right-container-title-class.data-v-1cf27b2a { - font-size: 58rpx; +.right-container .right-container-fir .right-container-card .right-container-card-right.data-v-1cf27b2a { + position: absolute; + right: 0; + top: 0; + width: 120rpx; + height: 350rpx; + display: flex; + align-items: center; + justify-content: center; + flex-direction: column; + margin-top: 20rpx; + margin-right: 20rpx; +} +.right-container .right-container-fir .right-container-card .right-container-card-right .right-container-card-right-img.data-v-1cf27b2a { + width: 70rpx; + height: 70rpx; + margin-top: 10rpx; +} +.right-container .right-container-fir .right-container-card .right-container-button.data-v-1cf27b2a { + display: flex; + margin-left: -20rpx; + margin-top: 23rpx; +} +.right-container .right-container-fir .right-container-card .right-container-button .right-container-button-any.data-v-1cf27b2a { + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + width: 150rpx; + position: relative; +} +.right-container .right-container-fir .right-container-card .right-container-button .right-container-button-any .right-container-button-ray.data-v-1cf27b2a { + position: absolute; + top: -25rpx; + left: 0rpx; + width: 158rpx; + height: 150rpx; +} +.right-container .right-container-fir .right-container-card .right-container-button .right-container-button-any .right-container-button-text.data-v-1cf27b2a { + font-size: 25rpx; + color: #313D56; +} +.right-container .right-container-fir .right-container-card .right-container-button .right-container-button-img.data-v-1cf27b2a { + width: 80rpx; + height: 80rpx; +} +.right-container .right-container-fir .right-container-card .right-container-fenge.data-v-1cf27b2a { + width: 100%; + height: 2rpx; + /* 可根据需求调整容器的高度 */ + background: linear-gradient(to right, #ffffff 50%, /* 白色中心 */ rgba(255, 255, 255, 0) 80%); + /* 渐变至透明 */ +} +.right-container .right-container-fir .right-container-card .right-container-tem.data-v-1cf27b2a { + display: flex; + margin-top: 30rpx; + margin-bottom: 20rpx; +} +.right-container .right-container-fir .right-container-card .right-container-tem .right-container-tem-text.data-v-1cf27b2a { + font-size: 50rpx; + margin-right: 70rpx; +} +.right-container .right-container-fir .right-container-card .right-container-tem .right-container-tem-text-dark.data-v-1cf27b2a { + font-size: 50rpx; + margin-right: 70rpx; + color: #6B87BA; +} +.right-container .right-container-fir .right-container-card .right-container-tem .right-container-tem-img.data-v-1cf27b2a { + width: 65rpx; + height: 65rpx; +} +.right-container .right-container-fir .right-container-card .right-container-title.data-v-1cf27b2a { + font-size: 120rpx; + font-weight: 500; + background: linear-gradient(to bottom, #7080A1, #263556); + -webkit-background-clip: text; + color: transparent; + margin: 0; +} +.right-container .right-container-fir .right-container-card .right-container-title-dark.data-v-1cf27b2a { + font-size: 120rpx; + display: block; + margin: 0; + font-weight: 500; + background: linear-gradient(to bottom, #FFFFFF, #B2C8E2); + -webkit-background-clip: text; + color: transparent; +} +.right-container .right-container-fir .right-container-card .right-container-date.data-v-1cf27b2a { + font-size: 35rpx; + display: block; + margin: 0; + margin-left: 18rpx; + margin-bottom: 15rpx; +} +.right-container .right-container-fir .right-container-card .right-container-date-dark.data-v-1cf27b2a { + font-size: 35rpx; + color: #7080A1; + display: block; + margin: 0; + margin-left: 18rpx; + margin-bottom: 15rpx; + background: linear-gradient(to bottom, #FFFFFF, #B2C8E2); + -webkit-background-clip: text; + color: transparent; +} +.right-container .right-container-fir .right-container-card .right-container-day.data-v-1cf27b2a { + font-size: 35rpx; + font-weight: 600; + margin-left: 18rpx; +} +.right-container .right-container-fir .right-container-card .right-container-day-dark.data-v-1cf27b2a { + font-size: 35rpx; + font-weight: 600; + margin-left: 18rpx; + background: linear-gradient(to bottom, #FFFFFF, #B2C8E2); + -webkit-background-clip: text; + color: transparent; +} +.right-container .right-container-title-nav.data-v-1cf27b2a { + margin-top: 75rpx; + margin-bottom: 20rpx; + margin-left: 20rpx; +} +.right-container .right-container-title-nav .right-container-title-no.data-v-1cf27b2a { + font-size: 35rpx; +} +.right-container .right-container-title-nav .right-container-title-no-dark.data-v-1cf27b2a { + font-size: 35rpx; + background: linear-gradient(to bottom, #FFFFFF, #B2C8E2); + -webkit-background-clip: text; + color: transparent; +} +.right-container .right-container-title-nav .right-container-title-class.data-v-1cf27b2a { + font-size: 35rpx; font-weight: 800; margin-left: 20rpx; } +.right-container .right-container-title-nav .right-container-title-class-dark.data-v-1cf27b2a { + font-size: 35rpx; + font-weight: 800; + margin-left: 20rpx; + background: linear-gradient(to bottom, #FFFFFF, #B2C8E2); + -webkit-background-clip: text; + color: transparent; +} +.right-container .right-container-title-nav .right-container-title-class-anhei-button.data-v-1cf27b2a { + float: right; + display: flex; + justify-content: center; + align-items: center; + border-radius: 30rpx; + margin-right: 30rpx; + width: 200rpx; + height: 50rpx; + background-color: black; + border: 2rpx solid; +} +.right-container .right-container-title-nav .right-container-title-class-anhei-button .right-container-title-class-anhei.data-v-1cf27b2a { + font-size: 20rpx; + font-weight: 800; + color: white; +} .left-container.data-v-1cf27b2a { - width: 562rpx; + width: 260rpx; height: 100%; } .left-container .blue-circle-pos.data-v-1cf27b2a { @@ -147,12 +1141,12 @@ } .left-container .blue-circle-pos .blue-circle.data-v-1cf27b2a { position: absolute; - top: -100rpx; - left: -200rpx; + top: -50rpx; + left: -68rpx; } .left-container .blue-circle-pos .blue-circle .blue-circle-size.data-v-1cf27b2a { - width: 350rpx; - height: 600rpx; + width: 170rpx; + height: 250rpx; } .left-container .left-head.data-v-1cf27b2a { display: flex; @@ -161,13 +1155,20 @@ flex-direction: column; } .left-container .left-head .left-head-img.data-v-1cf27b2a { - width: 266rpx; - height: 266rpx; - margin-top: 126rpx; + width: 150rpx; + height: 150rpx; + margin-top: 60rpx; } .left-container .left-head .left-head-font.data-v-1cf27b2a { font-weight: 700; - font-size: 73rpx; + font-size: 40rpx; +} +.left-container .left-head .left-head-font-dark.data-v-1cf27b2a { + font-weight: 700; + font-size: 40rpx; + background: linear-gradient(to right, #EBF4FF, #ADC4E0); + -webkit-background-clip: text; + color: transparent; } .left-container .left-img-container.data-v-1cf27b2a { display: flex; @@ -176,18 +1177,199 @@ flex-direction: column; } .left-container .left-img-container .left-img.data-v-1cf27b2a { - width: 180rpx; - height: 180rpx; - margin-top: 150rpx; + width: 93rpx; + height: 93rpx; + margin: 50rpx 0; + z-index: 100; } .split-line.data-v-1cf27b2a { - width: 1px; + margin-left: 20rpx; + margin-top: 120rpx; + width: 2rpx; /* 线条的宽度 */ - height: 300rpx; + height: 150rpx; /* 高度占满父容器 */ - background: linear-gradient(to top, rgba(0, 0, 0, 0) 0%, gray 50%, rgba(0, 0, 0, 0) 100%); - margin-left: 30rpx; + background: linear-gradient(to top, rgba(0, 0, 0, 0) 0%, #92a7c5 50%, rgba(0, 0, 0, 0) 100%); /* 上面到下面的渐变效果: - 从透明到黑色,再从黑色到透明 - 渐变的范围:50%处为渐变的中心,顶部和底部是透明的 */ } +.split-line-white-sec.data-v-1cf27b2a { + width: 2rpx; + /* 线条的宽度 */ + height: 800rpx; + /* 高度占满父容器 */ + background: linear-gradient(to top, rgba(0, 0, 0, 0) 0%, #fff 50%, rgba(0, 0, 0, 0) 100%); + position: relative; +} +.split-line-white-sec .split-line-white-img.data-v-1cf27b2a { + position: absolute; + top: 0rpx; + left: -300rpx; + height: 800rpx; + width: 300rpx; + pointer-events: none; +} +.card-upfaguang.data-v-1cf27b2a { + position: absolute; + top: 600rpx; + left: 150rpx; + height: 600rpx; + width: 500rpx; +} +.card-upfaguang-down.data-v-1cf27b2a { + position: absolute; + top: 620rpx; + left: 860rpx; + height: 600rpx; + width: 500rpx; +} +.right-huli-sec.data-v-1cf27b2a { + width: 200rpx; + height: 100%; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; +} +.right-huli-sec .right-huli-view.data-v-1cf27b2a { + width: 100%; + overflow: auto; + display: flex; + justify-content: center; + align-items: flex-start; + /* 垂直方向对齐方式可以调整 */ + flex-direction: column; + margin-left: -80rpx; +} +.right-huli-sec .right-huli-view .right-huli-view-dis.data-v-1cf27b2a { + height: 150rpx; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + width: 100%; +} +.right-huli-sec .right-huli-view .right-huli-view-dis .right-huli-img.data-v-1cf27b2a { + width: 70rpx; + height: 70rpx; +} +.right-huli-sec .right-huli-view .right-huli-view-dis .right-huli-text.data-v-1cf27b2a { + width: 100%; + height: 15rpx; + text-align: center; + font-size: 25rpx; + margin-top: 10rpx; +} +.right-huli-sec .right-huli-view .right-huli-view-dis .right-huli-text-dark.data-v-1cf27b2a { + width: 100%; + height: 15rpx; + text-align: center; + font-size: 25rpx; + color: #fff; + margin-top: 10rpx; +} +.right-huli-sec .right-huli-shang.data-v-1cf27b2a { + width: 30rpx; + height: 20rpx; + margin-left: -73rpx; +} +.right-huli-sec .right-huli-xia.data-v-1cf27b2a { + width: 30rpx; + height: 20rpx; + margin-left: -73rpx; +} +.right-container-fir-left-card-flex.data-v-1cf27b2a { + display: flex; + justify-content: center; + align-items: center; + width: 100%; + height: 100%; + margin-left: 20rpx; +} +.right-container-fir-left-card-flex-sec.data-v-1cf27b2a { + display: flex; + justify-content: center; + align-items: center; + width: 100%; + height: 100%; +} +.savehundred.data-v-1cf27b2a { + width: 100%; + height: 100%; +} +.mt.data-v-1cf27b2a { + margin-top: 50rpx; +} +.progress-bar-container.data-v-1cf27b2a { + margin-top: 30rpx; + width: 60%; + height: 20rpx; + background-color: #AAB9D6; + border-radius: 15px; + overflow: hidden; +} +.progress-bar.data-v-1cf27b2a { + height: 100%; + /* 这里可以更改进度百分比 */ + background: linear-gradient(to top, #047ADB, #0EA7DD); + border-radius: 15px 0 0 15px; + transition: width 0.3s ease; +} +.under-father.data-v-1cf27b2a { + position: fixed; + bottom: 0; + display: flex; + align-items: center; + width: 100%; + height: 150rpx; +} +.under-father .under-father-view.data-v-1cf27b2a { + margin-left: 10rpx; + margin-right: 150rpx; + position: relative; +} +.under-father .under-father-view .under-father-light.data-v-1cf27b2a { + position: absolute; + bottom: -20rpx; + left: -100rpx; + width: 300rpx; + height: 200rpx; +} +.under-father .under-father-view .under-father-img.data-v-1cf27b2a { + width: 100rpx; + height: 100rpx; +} +.right-icons.data-v-1cf27b2a { + display: flex; + align-items: center; + float: right; + height: 70rpx; + margin-right: 40rpx; +} +.right-icons .right-icons-font.data-v-1cf27b2a { + margin-left: 10rpx; + margin-right: 10rpx; + font-size: 35rpx; + margin-top: -12rpx; +} +.right-icons .right-icons-font-dark.data-v-1cf27b2a { + color: #fff; + margin-left: 10rpx; + margin-right: 10rpx; + font-size: 35rpx; + margin-top: -12rpx; +} +.right-icons .right-icons-img.data-v-1cf27b2a { + width: 80rpx; + height: 80rpx; + margin-left: 10rpx; + margin-right: 10rpx; + margin-top: -40rpx; +} +.right-icons .right-icons-img-icon.data-v-1cf27b2a { + width: 60rpx; + height: 80rpx; + margin-top: 10rpx; + margin-left: 8rpx; +} diff --git a/unpackage/dist/dev/mp-weixin/pages/login/login.js b/unpackage/dist/dev/mp-weixin/pages/login/login.js new file mode 100644 index 0000000..d04db4d --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/login/login.js @@ -0,0 +1,46 @@ +"use strict"; +const common_vendor = require("../../common/vendor.js"); +const _sfc_main = { + data() { + return { + startX: 0, + startY: 0, + isDragging: false + }; + }, + methods: { + // 手指触摸开始 + onTouchStart(e) { + this.startX = e.touches[0].clientX; + this.startY = e.touches[0].clientY; + this.isDragging = false; + }, + // 手指滑动 + onTouchMove(e) { + const moveX = e.touches[0].clientX - this.startX; + const moveY = e.touches[0].clientY - this.startY; + if (Math.abs(moveX) > Math.abs(moveY)) { + this.isDragging = true; + } else { + this.isDragging = true; + } + if (this.isDragging) { + e.preventDefault(); + } + }, + // 手指抬起 + onTouchEnd() { + this.isDragging = false; + } + } +}; +function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { + return { + a: common_vendor.o((...args) => $options.onTouchStart && $options.onTouchStart(...args)), + b: common_vendor.o((...args) => $options.onTouchMove && $options.onTouchMove(...args)), + c: common_vendor.o((...args) => $options.onTouchEnd && $options.onTouchEnd(...args)) + }; +} +const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-e4e4508d"]]); +wx.createPage(MiniProgramPage); +//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/login/login.js.map diff --git a/unpackage/dist/dev/mp-weixin/pages/login/login.json b/unpackage/dist/dev/mp-weixin/pages/login/login.json new file mode 100644 index 0000000..ced5b27 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/login/login.json @@ -0,0 +1,4 @@ +{ + "navigationStyle": "custom", + "usingComponents": {} +} \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/login/login.wxml b/unpackage/dist/dev/mp-weixin/pages/login/login.wxml new file mode 100644 index 0000000..0071d50 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/login/login.wxml @@ -0,0 +1 @@ + 1 2 3 \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/pages/login/login.wxss b/unpackage/dist/dev/mp-weixin/pages/login/login.wxss new file mode 100644 index 0000000..a1a06c5 --- /dev/null +++ b/unpackage/dist/dev/mp-weixin/pages/login/login.wxss @@ -0,0 +1,10 @@ + +.container.data-v-e4e4508d { + position: relative; + width: 100%; + height: 300px; +} +.swiper.data-v-e4e4508d { + width: 100%; + height: 100%; +} diff --git a/unpackage/dist/dev/mp-weixin/project.config.json b/unpackage/dist/dev/mp-weixin/project.config.json index 94c2cf4..8acd7d4 100644 --- a/unpackage/dist/dev/mp-weixin/project.config.json +++ b/unpackage/dist/dev/mp-weixin/project.config.json @@ -1,8 +1,7 @@ { "description": "项目配置文件。", "packOptions": { - "ignore": [], - "include": [] + "ignore": [] }, "setting": { "urlCheck": false, @@ -10,20 +9,28 @@ "postcss": false, "minified": false, "newFeature": true, - "bigPackageSizeSupport": true, - "babelSetting": { - "ignore": [], - "disablePlugins": [], - "outputPath": "" - } + "bigPackageSizeSupport": true }, "compileType": "miniprogram", - "libVersion": "3.7.2", + "libVersion": "", "appid": "touristappid", "projectname": "hil", - "condition": {}, - "editorSetting": { - "tabIndent": "insertSpaces", - "tabSize": 2 + "condition": { + "search": { + "current": -1, + "list": [] + }, + "conversation": { + "current": -1, + "list": [] + }, + "game": { + "current": -1, + "list": [] + }, + "miniprogram": { + "current": -1, + "list": [] + } } } \ No newline at end of file diff --git a/unpackage/dist/dev/mp-weixin/static/index/arrow.png b/unpackage/dist/dev/mp-weixin/static/index/arrow.png new file mode 100644 index 0000000..174beb5 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/arrow.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/arrow2.png b/unpackage/dist/dev/mp-weixin/static/index/arrow2.png new file mode 100644 index 0000000..eb425a2 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/arrow2.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/background.png b/unpackage/dist/dev/mp-weixin/static/index/background.png new file mode 100644 index 0000000..5077d39 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/background.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/cardbgc/backdrop3.png b/unpackage/dist/dev/mp-weixin/static/index/cardbgc/backdrop3.png new file mode 100644 index 0000000..1ad9820 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/cardbgc/backdrop3.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/cardbgc/bgcdark.png b/unpackage/dist/dev/mp-weixin/static/index/cardbgc/bgcdark.png new file mode 100644 index 0000000..840deac Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/cardbgc/bgcdark.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/cardbgc/fircardbgc.png b/unpackage/dist/dev/mp-weixin/static/index/cardbgc/fircardbgc.png new file mode 100644 index 0000000..934d22d Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/cardbgc/fircardbgc.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/cardbgc/leftlight.png b/unpackage/dist/dev/mp-weixin/static/index/cardbgc/leftlight.png new file mode 100644 index 0000000..29bb9bd Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/cardbgc/leftlight.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/cardbgc/newbgc.png b/unpackage/dist/dev/mp-weixin/static/index/cardbgc/newbgc.png new file mode 100644 index 0000000..07b401b Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/cardbgc/newbgc.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/cardbgc/uplight.png b/unpackage/dist/dev/mp-weixin/static/index/cardbgc/uplight.png new file mode 100644 index 0000000..f63d25a Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/cardbgc/uplight.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/cardicons/ray2.png b/unpackage/dist/dev/mp-weixin/static/index/cardicons/ray2.png new file mode 100644 index 0000000..b5e89e7 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/cardicons/ray2.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/cardicons/rightjiaotou.png b/unpackage/dist/dev/mp-weixin/static/index/cardicons/rightjiaotou.png new file mode 100644 index 0000000..bd3bc6e Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/cardicons/rightjiaotou.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/cardicons/zhifa.png b/unpackage/dist/dev/mp-weixin/static/index/cardicons/zhifa.png new file mode 100644 index 0000000..7ce34ba Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/cardicons/zhifa.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/cardicons/zhixing.png b/unpackage/dist/dev/mp-weixin/static/index/cardicons/zhixing.png new file mode 100644 index 0000000..6bd2d3a Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/cardicons/zhixing.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/cardicons/zhixingrel.png b/unpackage/dist/dev/mp-weixin/static/index/cardicons/zhixingrel.png new file mode 100644 index 0000000..4d9de23 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/cardicons/zhixingrel.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/customer.png b/unpackage/dist/dev/mp-weixin/static/index/customer.png new file mode 100644 index 0000000..6092aef Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/customer.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/darkicon/baojieleidark.png b/unpackage/dist/dev/mp-weixin/static/index/darkicon/baojieleidark.png new file mode 100644 index 0000000..bec111e Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/darkicon/baojieleidark.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/darkicon/diandark.png b/unpackage/dist/dev/mp-weixin/static/index/darkicon/diandark.png new file mode 100644 index 0000000..762456d Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/darkicon/diandark.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/darkicon/dianqidark.png b/unpackage/dist/dev/mp-weixin/static/index/darkicon/dianqidark.png new file mode 100644 index 0000000..0657fc1 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/darkicon/dianqidark.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/darkicon/hushidark.png b/unpackage/dist/dev/mp-weixin/static/index/darkicon/hushidark.png new file mode 100644 index 0000000..91cf95f Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/darkicon/hushidark.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/darkicon/kontiaodark.png b/unpackage/dist/dev/mp-weixin/static/index/darkicon/kontiaodark.png new file mode 100644 index 0000000..118f8db Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/darkicon/kontiaodark.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/darkicon/labadark.png b/unpackage/dist/dev/mp-weixin/static/index/darkicon/labadark.png new file mode 100644 index 0000000..4b22210 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/darkicon/labadark.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/darkicon/linshidark.png b/unpackage/dist/dev/mp-weixin/static/index/darkicon/linshidark.png new file mode 100644 index 0000000..e40469b Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/darkicon/linshidark.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/darkicon/nuanfengdark.png b/unpackage/dist/dev/mp-weixin/static/index/darkicon/nuanfengdark.png new file mode 100644 index 0000000..1b0f740 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/darkicon/nuanfengdark.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/darkicon/peiyaodark.png b/unpackage/dist/dev/mp-weixin/static/index/darkicon/peiyaodark.png new file mode 100644 index 0000000..07b2409 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/darkicon/peiyaodark.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/darkicon/qinglingdark.png b/unpackage/dist/dev/mp-weixin/static/index/darkicon/qinglingdark.png new file mode 100644 index 0000000..da4f8ea Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/darkicon/qinglingdark.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/darkicon/shidudark.png b/unpackage/dist/dev/mp-weixin/static/index/darkicon/shidudark.png new file mode 100644 index 0000000..1801d8b Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/darkicon/shidudark.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/darkicon/time.png b/unpackage/dist/dev/mp-weixin/static/index/darkicon/time.png new file mode 100644 index 0000000..f8144ce Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/darkicon/time.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/darkicon/wendudark.png b/unpackage/dist/dev/mp-weixin/static/index/darkicon/wendudark.png new file mode 100644 index 0000000..938f036 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/darkicon/wendudark.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/darkicon/xiezhudark.png b/unpackage/dist/dev/mp-weixin/static/index/darkicon/xiezhudark.png new file mode 100644 index 0000000..d4bc71a Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/darkicon/xiezhudark.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/darkicon/xinxidark.png b/unpackage/dist/dev/mp-weixin/static/index/darkicon/xinxidark.png new file mode 100644 index 0000000..293f037 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/darkicon/xinxidark.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/darkicon/yaopindark.png b/unpackage/dist/dev/mp-weixin/static/index/darkicon/yaopindark.png new file mode 100644 index 0000000..5fe4958 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/darkicon/yaopindark.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/darkicon/yishengdark.png b/unpackage/dist/dev/mp-weixin/static/index/darkicon/yishengdark.png new file mode 100644 index 0000000..db2eb0d Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/darkicon/yishengdark.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/darkicon/yizhudark.png b/unpackage/dist/dev/mp-weixin/static/index/darkicon/yizhudark.png new file mode 100644 index 0000000..f4e8ce8 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/darkicon/yizhudark.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/darkicon/zhaomingdark.png b/unpackage/dist/dev/mp-weixin/static/index/darkicon/zhaomingdark.png new file mode 100644 index 0000000..a277303 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/darkicon/zhaomingdark.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/darkicon/zhixingfangshidark.png b/unpackage/dist/dev/mp-weixin/static/index/darkicon/zhixingfangshidark.png new file mode 100644 index 0000000..4d9de23 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/darkicon/zhixingfangshidark.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/darkicon/zhixingpeopledark.png b/unpackage/dist/dev/mp-weixin/static/index/darkicon/zhixingpeopledark.png new file mode 100644 index 0000000..88b060e Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/darkicon/zhixingpeopledark.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/darkicon/zhixingrenyuanddark.png b/unpackage/dist/dev/mp-weixin/static/index/darkicon/zhixingrenyuanddark.png new file mode 100644 index 0000000..f2d564d Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/darkicon/zhixingrenyuanddark.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/darkicon/zhongdiandark.png b/unpackage/dist/dev/mp-weixin/static/index/darkicon/zhongdiandark.png new file mode 100644 index 0000000..ffb8f9a Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/darkicon/zhongdiandark.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/darkicon/zhuandandark.png b/unpackage/dist/dev/mp-weixin/static/index/darkicon/zhuandandark.png new file mode 100644 index 0000000..0697973 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/darkicon/zhuandandark.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/hulilist/genzong.png b/unpackage/dist/dev/mp-weixin/static/index/hulilist/genzong.png new file mode 100644 index 0000000..d2b0383 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/hulilist/genzong.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/hulilist/shang.png b/unpackage/dist/dev/mp-weixin/static/index/hulilist/shang.png new file mode 100644 index 0000000..55ee8b1 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/hulilist/shang.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/hulilist/xia.png b/unpackage/dist/dev/mp-weixin/static/index/hulilist/xia.png new file mode 100644 index 0000000..83f08d3 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/hulilist/xia.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/hulilist/xiezhu.png b/unpackage/dist/dev/mp-weixin/static/index/hulilist/xiezhu.png new file mode 100644 index 0000000..5982a87 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/hulilist/xiezhu.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/hulilist/zhongdian.png b/unpackage/dist/dev/mp-weixin/static/index/hulilist/zhongdian.png new file mode 100644 index 0000000..e28b037 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/hulilist/zhongdian.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/hulilist/zhuandan.png b/unpackage/dist/dev/mp-weixin/static/index/hulilist/zhuandan.png new file mode 100644 index 0000000..0fc7c19 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/hulilist/zhuandan.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/indexvideo.png b/unpackage/dist/dev/mp-weixin/static/index/indexvideo.png new file mode 100644 index 0000000..b9eadf9 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/indexvideo.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/label.png b/unpackage/dist/dev/mp-weixin/static/index/label.png new file mode 100644 index 0000000..bc3b3c3 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/label.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/lefticon/give.png b/unpackage/dist/dev/mp-weixin/static/index/lefticon/give.png new file mode 100644 index 0000000..4c65bba Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/lefticon/give.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/lefticontarget/givedark.png b/unpackage/dist/dev/mp-weixin/static/index/lefticontarget/givedark.png new file mode 100644 index 0000000..c99dbc9 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/lefticontarget/givedark.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/medium/dian.png b/unpackage/dist/dev/mp-weixin/static/index/medium/dian.png new file mode 100644 index 0000000..762456d Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/medium/dian.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/medium/doctordark.png b/unpackage/dist/dev/mp-weixin/static/index/medium/doctordark.png new file mode 100644 index 0000000..c41d6e4 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/medium/doctordark.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/medium/doctorlight.png b/unpackage/dist/dev/mp-weixin/static/index/medium/doctorlight.png new file mode 100644 index 0000000..492f5d9 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/medium/doctorlight.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/medium/doctorsay.png b/unpackage/dist/dev/mp-weixin/static/index/medium/doctorsay.png new file mode 100644 index 0000000..2a1aec0 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/medium/doctorsay.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/medium/doctorsaydark.png b/unpackage/dist/dev/mp-weixin/static/index/medium/doctorsaydark.png new file mode 100644 index 0000000..c012c30 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/medium/doctorsaydark.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/medium/doctorsaystartdark.png b/unpackage/dist/dev/mp-weixin/static/index/medium/doctorsaystartdark.png new file mode 100644 index 0000000..3d6392d Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/medium/doctorsaystartdark.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/medium/doctorwdark.png b/unpackage/dist/dev/mp-weixin/static/index/medium/doctorwdark.png new file mode 100644 index 0000000..45c2383 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/medium/doctorwdark.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/medium/domany.png b/unpackage/dist/dev/mp-weixin/static/index/medium/domany.png new file mode 100644 index 0000000..6f2c375 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/medium/domany.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/medium/domanydark.png b/unpackage/dist/dev/mp-weixin/static/index/medium/domanydark.png new file mode 100644 index 0000000..8a3e06a Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/medium/domanydark.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/medium/dopeopledark.png b/unpackage/dist/dev/mp-weixin/static/index/medium/dopeopledark.png new file mode 100644 index 0000000..1d54e69 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/medium/dopeopledark.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/medium/dotypedark.png b/unpackage/dist/dev/mp-weixin/static/index/medium/dotypedark.png new file mode 100644 index 0000000..88b060e Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/medium/dotypedark.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/medium/howtodo.png b/unpackage/dist/dev/mp-weixin/static/index/medium/howtodo.png new file mode 100644 index 0000000..0ff29a3 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/medium/howtodo.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/medium/howtododark.png b/unpackage/dist/dev/mp-weixin/static/index/medium/howtododark.png new file mode 100644 index 0000000..f9d64a6 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/medium/howtododark.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/medium/linshidoctorsaydark.png b/unpackage/dist/dev/mp-weixin/static/index/medium/linshidoctorsaydark.png new file mode 100644 index 0000000..dec5490 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/medium/linshidoctorsaydark.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/medium/nursedark.png b/unpackage/dist/dev/mp-weixin/static/index/medium/nursedark.png new file mode 100644 index 0000000..b0085f8 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/medium/nursedark.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/medium/peiyao.png b/unpackage/dist/dev/mp-weixin/static/index/medium/peiyao.png new file mode 100644 index 0000000..21c97a6 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/medium/peiyao.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/medium/qingling.png b/unpackage/dist/dev/mp-weixin/static/index/medium/qingling.png new file mode 100644 index 0000000..a8cb99f Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/medium/qingling.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/medium/useMed.png b/unpackage/dist/dev/mp-weixin/static/index/medium/useMed.png new file mode 100644 index 0000000..5aa1bd0 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/medium/useMed.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/medium/whitedian.png b/unpackage/dist/dev/mp-weixin/static/index/medium/whitedian.png new file mode 100644 index 0000000..19ef043 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/medium/whitedian.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/medium/xinxi.png b/unpackage/dist/dev/mp-weixin/static/index/medium/xinxi.png new file mode 100644 index 0000000..1fde7fe Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/medium/xinxi.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/medium/yaopin.png b/unpackage/dist/dev/mp-weixin/static/index/medium/yaopin.png new file mode 100644 index 0000000..2d7099b Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/medium/yaopin.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/medium/yongyao.png b/unpackage/dist/dev/mp-weixin/static/index/medium/yongyao.png new file mode 100644 index 0000000..e7cc3f8 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/medium/yongyao.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/project3.png b/unpackage/dist/dev/mp-weixin/static/index/project3.png new file mode 100644 index 0000000..6deec5e Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/project3.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/rightbgi.png b/unpackage/dist/dev/mp-weixin/static/index/rightbgi.png new file mode 100644 index 0000000..8ad288d Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/rightbgi.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/roomicons/dianqi.png b/unpackage/dist/dev/mp-weixin/static/index/roomicons/dianqi.png new file mode 100644 index 0000000..cbc8965 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/roomicons/dianqi.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/roomicons/dianqitar.png b/unpackage/dist/dev/mp-weixin/static/index/roomicons/dianqitar.png new file mode 100644 index 0000000..c2406cd Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/roomicons/dianqitar.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/roomicons/kongtiao.png b/unpackage/dist/dev/mp-weixin/static/index/roomicons/kongtiao.png new file mode 100644 index 0000000..87f167c Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/roomicons/kongtiao.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/roomicons/kongtiaotar.png b/unpackage/dist/dev/mp-weixin/static/index/roomicons/kongtiaotar.png new file mode 100644 index 0000000..9be522d Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/roomicons/kongtiaotar.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/roomicons/nuanfeng.png b/unpackage/dist/dev/mp-weixin/static/index/roomicons/nuanfeng.png new file mode 100644 index 0000000..506436a Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/roomicons/nuanfeng.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/roomicons/nuanfengtar.png b/unpackage/dist/dev/mp-weixin/static/index/roomicons/nuanfengtar.png new file mode 100644 index 0000000..d1421b0 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/roomicons/nuanfengtar.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/roomicons/shidu.png b/unpackage/dist/dev/mp-weixin/static/index/roomicons/shidu.png new file mode 100644 index 0000000..1801d8b Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/roomicons/shidu.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/roomicons/wendu.png b/unpackage/dist/dev/mp-weixin/static/index/roomicons/wendu.png new file mode 100644 index 0000000..6f59dc8 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/roomicons/wendu.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/roomicons/zhaoming.png b/unpackage/dist/dev/mp-weixin/static/index/roomicons/zhaoming.png new file mode 100644 index 0000000..1bfb8c3 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/roomicons/zhaoming.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/roomicons/zhaomingtar.png b/unpackage/dist/dev/mp-weixin/static/index/roomicons/zhaomingtar.png new file mode 100644 index 0000000..f1c637a Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/roomicons/zhaomingtar.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/teeth.png b/unpackage/dist/dev/mp-weixin/static/index/teeth.png new file mode 100644 index 0000000..eaa17f8 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/teeth.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/undericons/alarm.png b/unpackage/dist/dev/mp-weixin/static/index/undericons/alarm.png new file mode 100644 index 0000000..f58661b Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/undericons/alarm.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/undericons/alarmdark.png b/unpackage/dist/dev/mp-weixin/static/index/undericons/alarmdark.png new file mode 100644 index 0000000..f005c7b Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/undericons/alarmdark.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/undericons/face.png b/unpackage/dist/dev/mp-weixin/static/index/undericons/face.png new file mode 100644 index 0000000..5aa67f6 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/undericons/face.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/undericons/facelight.png b/unpackage/dist/dev/mp-weixin/static/index/undericons/facelight.png new file mode 100644 index 0000000..74be720 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/undericons/facelight.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/undericons/hand.png b/unpackage/dist/dev/mp-weixin/static/index/undericons/hand.png new file mode 100644 index 0000000..b2171ab Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/undericons/hand.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/undericons/handlight.png b/unpackage/dist/dev/mp-weixin/static/index/undericons/handlight.png new file mode 100644 index 0000000..0d5405d Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/undericons/handlight.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/undericons/linshitime.png b/unpackage/dist/dev/mp-weixin/static/index/undericons/linshitime.png new file mode 100644 index 0000000..a26b34f Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/undericons/linshitime.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/undericons/linshitimedark.png b/unpackage/dist/dev/mp-weixin/static/index/undericons/linshitimedark.png new file mode 100644 index 0000000..f10b2a2 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/undericons/linshitimedark.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/undericons/man.png b/unpackage/dist/dev/mp-weixin/static/index/undericons/man.png new file mode 100644 index 0000000..1c19726 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/undericons/man.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/undericons/out.png b/unpackage/dist/dev/mp-weixin/static/index/undericons/out.png new file mode 100644 index 0000000..bbfc103 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/undericons/out.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/undericons/outlight.png b/unpackage/dist/dev/mp-weixin/static/index/undericons/outlight.png new file mode 100644 index 0000000..b876206 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/undericons/outlight.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/undericons/upguang.png b/unpackage/dist/dev/mp-weixin/static/index/undericons/upguang.png new file mode 100644 index 0000000..85c9c11 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/undericons/upguang.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/yiliao/doctorW.png b/unpackage/dist/dev/mp-weixin/static/index/yiliao/doctorW.png new file mode 100644 index 0000000..bae8d1b Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/yiliao/doctorW.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/yiliao/nurseW.png b/unpackage/dist/dev/mp-weixin/static/index/yiliao/nurseW.png new file mode 100644 index 0000000..87445d9 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/yiliao/nurseW.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/yiliao/project.png b/unpackage/dist/dev/mp-weixin/static/index/yiliao/project.png new file mode 100644 index 0000000..05f68e5 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/yiliao/project.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/yiliao/project2.png b/unpackage/dist/dev/mp-weixin/static/index/yiliao/project2.png new file mode 100644 index 0000000..9623d43 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/yiliao/project2.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/yiliao/project4.png b/unpackage/dist/dev/mp-weixin/static/index/yiliao/project4.png new file mode 100644 index 0000000..7a8b8b7 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/yiliao/project4.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/yiliao/yiliaolei.png b/unpackage/dist/dev/mp-weixin/static/index/yiliao/yiliaolei.png new file mode 100644 index 0000000..4db6924 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/yiliao/yiliaolei.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/yiliao/yizhu.png b/unpackage/dist/dev/mp-weixin/static/index/yiliao/yizhu.png new file mode 100644 index 0000000..ccdb2b5 Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/yiliao/yizhu.png differ diff --git a/unpackage/dist/dev/mp-weixin/static/index/yiliao/yizhudown.png b/unpackage/dist/dev/mp-weixin/static/index/yiliao/yizhudown.png new file mode 100644 index 0000000..71c70cf Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/yiliao/yizhudown.png differ