高度\n const pageHeader = document.querySelector('uni-page-head');\n if (pageHeader) {\n scrollTop -= pageHeader.offsetHeight;\n }\n }\n }\n if (scrollTop < 0) {\n scrollTop = 0;\n }\n const documentElement = document.documentElement;\n const { clientHeight, scrollHeight } = documentElement;\n scrollTop = Math.min(scrollTop, scrollHeight - clientHeight);\n if (duration === 0) {\n // 部分浏览器(比如微信)中 scrollTop 的值需要通过 document.body 来控制\n documentElement.scrollTop = document.body.scrollTop = scrollTop;\n return;\n }\n if (window.scrollY === scrollTop) {\n return;\n }\n const scrollTo = (duration) => {\n if (duration <= 0) {\n window.scrollTo(0, scrollTop);\n return;\n }\n const distaince = scrollTop - window.scrollY;\n requestAnimationFrame(function () {\n window.scrollTo(0, window.scrollY + (distaince / duration) * 10);\n scrollTo(duration - 10);\n });\n };\n scrollTo(duration);\n}\n\nconst encode = encodeURIComponent;\nfunction stringifyQuery(obj, encodeStr = encode) {\n const res = obj\n ? Object.keys(obj)\n .map((key) => {\n let val = obj[key];\n if (typeof val === undefined || val === null) {\n val = '';\n }\n else if (isPlainObject(val)) {\n val = JSON.stringify(val);\n }\n return encodeStr(key) + '=' + encodeStr(val);\n })\n .filter((x) => x.length > 0)\n .join('&')\n : null;\n return res ? `?${res}` : '';\n}\n/**\n * Decode text using `decodeURIComponent`. Returns the original text if it\n * fails.\n *\n * @param text - string to decode\n * @returns decoded string\n */\nfunction decode(text) {\n try {\n return decodeURIComponent('' + text);\n }\n catch (err) { }\n return '' + text;\n}\nfunction decodedQuery(query = {}) {\n const decodedQuery = {};\n Object.keys(query).forEach((name) => {\n try {\n decodedQuery[name] = decode(query[name]);\n }\n catch (e) {\n decodedQuery[name] = query[name];\n }\n });\n return decodedQuery;\n}\nconst PLUS_RE = /\\+/g; // %2B\n/**\n * https://github.com/vuejs/vue-router-next/blob/master/src/query.ts\n * @internal\n *\n * @param search - search string to parse\n * @returns a query object\n */\nfunction parseQuery(search) {\n const query = {};\n // avoid creating an object with an empty key and empty value\n // because of split('&')\n if (search === '' || search === '?')\n return query;\n const hasLeadingIM = search[0] === '?';\n const searchParams = (hasLeadingIM ? search.slice(1) : search).split('&');\n for (let i = 0; i < searchParams.length; ++i) {\n // pre decode the + into space\n const searchParam = searchParams[i].replace(PLUS_RE, ' ');\n // allow the = character\n let eqPos = searchParam.indexOf('=');\n let key = decode(eqPos < 0 ? searchParam : searchParam.slice(0, eqPos));\n let value = eqPos < 0 ? null : decode(searchParam.slice(eqPos + 1));\n if (key in query) {\n // an extra variable for ts types\n let currentValue = query[key];\n if (!isArray(currentValue)) {\n currentValue = query[key] = [currentValue];\n }\n currentValue.push(value);\n }\n else {\n query[key] = value;\n }\n }\n return query;\n}\n\nfunction parseUrl(url) {\n const [path, querystring] = url.split('?', 2);\n return {\n path,\n query: parseQuery(querystring || ''),\n };\n}\n\nfunction parseNVueDataset(attr) {\n const dataset = {};\n if (attr) {\n Object.keys(attr).forEach((key) => {\n if (key.indexOf('data-') === 0) {\n dataset[key.replace('data-', '')] = attr[key];\n }\n });\n }\n return dataset;\n}\n\nfunction plusReady(callback) {\n if (!isFunction(callback)) {\n return;\n }\n if (window.plus) {\n return callback();\n }\n document.addEventListener('plusready', callback);\n}\n\nclass DOMException extends Error {\n constructor(message) {\n super(message);\n this.name = 'DOMException';\n }\n}\n\nfunction normalizeEventType(type, options) {\n if (options) {\n if (options.capture) {\n type += 'Capture';\n }\n if (options.once) {\n type += 'Once';\n }\n if (options.passive) {\n type += 'Passive';\n }\n }\n return `on${capitalize(camelize(type))}`;\n}\nclass UniEvent {\n constructor(type, opts) {\n this.defaultPrevented = false;\n this.timeStamp = Date.now();\n this._stop = false;\n this._end = false;\n this.type = type;\n this.bubbles = !!opts.bubbles;\n this.cancelable = !!opts.cancelable;\n }\n preventDefault() {\n this.defaultPrevented = true;\n }\n stopImmediatePropagation() {\n this._end = this._stop = true;\n }\n stopPropagation() {\n this._stop = true;\n }\n}\nfunction createUniEvent(evt) {\n if (evt instanceof UniEvent) {\n return evt;\n }\n const [type] = parseEventName(evt.type);\n const uniEvent = new UniEvent(type, {\n bubbles: false,\n cancelable: false,\n });\n extend(uniEvent, evt);\n return uniEvent;\n}\nclass UniEventTarget {\n constructor() {\n this.listeners = Object.create(null);\n }\n dispatchEvent(evt) {\n const listeners = this.listeners[evt.type];\n if (!listeners) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error(formatLog('dispatchEvent', this.nodeId), evt.type, 'not found');\n }\n return false;\n }\n // 格式化事件类型\n const event = createUniEvent(evt);\n const len = listeners.length;\n for (let i = 0; i < len; i++) {\n listeners[i].call(this, event);\n if (event._end) {\n break;\n }\n }\n return event.cancelable && event.defaultPrevented;\n }\n addEventListener(type, listener, options) {\n type = normalizeEventType(type, options);\n (this.listeners[type] || (this.listeners[type] = [])).push(listener);\n }\n removeEventListener(type, callback, options) {\n type = normalizeEventType(type, options);\n const listeners = this.listeners[type];\n if (!listeners) {\n return;\n }\n const index = listeners.indexOf(callback);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n }\n}\nconst optionsModifierRE = /(?:Once|Passive|Capture)$/;\nfunction parseEventName(name) {\n let options;\n if (optionsModifierRE.test(name)) {\n options = {};\n let m;\n while ((m = name.match(optionsModifierRE))) {\n name = name.slice(0, name.length - m[0].length);\n options[m[0].toLowerCase()] = true;\n }\n }\n return [hyphenate(name.slice(2)), options];\n}\n\nconst EventModifierFlags = /*#__PURE__*/ (() => {\n return {\n stop: 1,\n prevent: 1 << 1,\n self: 1 << 2,\n };\n})();\nfunction encodeModifier(modifiers) {\n let flag = 0;\n if (modifiers.includes('stop')) {\n flag |= EventModifierFlags.stop;\n }\n if (modifiers.includes('prevent')) {\n flag |= EventModifierFlags.prevent;\n }\n if (modifiers.includes('self')) {\n flag |= EventModifierFlags.self;\n }\n return flag;\n}\n\nconst NODE_TYPE_PAGE = 0;\nconst NODE_TYPE_ELEMENT = 1;\nconst NODE_TYPE_TEXT = 3;\nconst NODE_TYPE_COMMENT = 8;\nfunction sibling(node, type) {\n const { parentNode } = node;\n if (!parentNode) {\n return null;\n }\n const { childNodes } = parentNode;\n return childNodes[childNodes.indexOf(node) + (type === 'n' ? 1 : -1)] || null;\n}\nfunction removeNode(node) {\n const { parentNode } = node;\n if (parentNode) {\n const { childNodes } = parentNode;\n const index = childNodes.indexOf(node);\n if (index > -1) {\n node.parentNode = null;\n childNodes.splice(index, 1);\n }\n }\n}\nfunction checkNodeId(node) {\n if (!node.nodeId && node.pageNode) {\n node.nodeId = node.pageNode.genId();\n }\n}\n// 为优化性能,各平台不使用proxy来实现node的操作拦截,而是直接通过pageNode定制\nclass UniNode extends UniEventTarget {\n constructor(nodeType, nodeName, container) {\n super();\n this.pageNode = null;\n this.parentNode = null;\n this._text = null;\n if (container) {\n const { pageNode } = container;\n if (pageNode) {\n this.pageNode = pageNode;\n this.nodeId = pageNode.genId();\n !pageNode.isUnmounted && pageNode.onCreate(this, nodeName);\n }\n }\n this.nodeType = nodeType;\n this.nodeName = nodeName;\n this.childNodes = [];\n }\n get firstChild() {\n return this.childNodes[0] || null;\n }\n get lastChild() {\n const { childNodes } = this;\n const length = childNodes.length;\n return length ? childNodes[length - 1] : null;\n }\n get nextSibling() {\n return sibling(this, 'n');\n }\n get nodeValue() {\n return null;\n }\n set nodeValue(_val) { }\n get textContent() {\n return this._text || '';\n }\n set textContent(text) {\n this._text = text;\n if (this.pageNode && !this.pageNode.isUnmounted) {\n this.pageNode.onTextContent(this, text);\n }\n }\n get parentElement() {\n const { parentNode } = this;\n if (parentNode && parentNode.nodeType === NODE_TYPE_ELEMENT) {\n return parentNode;\n }\n return null;\n }\n get previousSibling() {\n return sibling(this, 'p');\n }\n appendChild(newChild) {\n return this.insertBefore(newChild, null);\n }\n cloneNode(deep) {\n const cloned = extend(Object.create(Object.getPrototypeOf(this)), this);\n const { attributes } = cloned;\n if (attributes) {\n cloned.attributes = extend({}, attributes);\n }\n if (deep) {\n cloned.childNodes = cloned.childNodes.map((childNode) => childNode.cloneNode(true));\n }\n return cloned;\n }\n insertBefore(newChild, refChild) {\n // 先从现在的父节点移除(注意:不能触发onRemoveChild,否则会生成先remove该 id,再 insert)\n removeNode(newChild);\n newChild.pageNode = this.pageNode;\n newChild.parentNode = this;\n checkNodeId(newChild);\n const { childNodes } = this;\n if (refChild) {\n const index = childNodes.indexOf(refChild);\n if (index === -1) {\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.`);\n }\n childNodes.splice(index, 0, newChild);\n }\n else {\n childNodes.push(newChild);\n }\n return this.pageNode && !this.pageNode.isUnmounted\n ? this.pageNode.onInsertBefore(this, newChild, refChild)\n : newChild;\n }\n removeChild(oldChild) {\n const { childNodes } = this;\n const index = childNodes.indexOf(oldChild);\n if (index === -1) {\n throw new DOMException(`Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node.`);\n }\n oldChild.parentNode = null;\n childNodes.splice(index, 1);\n return this.pageNode && !this.pageNode.isUnmounted\n ? this.pageNode.onRemoveChild(oldChild)\n : oldChild;\n }\n}\nconst ATTR_CLASS = 'class';\nconst ATTR_STYLE = 'style';\nconst ATTR_INNER_HTML = 'innerHTML';\nconst ATTR_TEXT_CONTENT = 'textContent';\nconst ATTR_V_SHOW = '.vShow';\nconst ATTR_V_OWNER_ID = '.vOwnerId';\nconst ATTR_V_RENDERJS = '.vRenderjs';\nconst ATTR_CHANGE_PREFIX = 'change:';\nclass UniBaseNode extends UniNode {\n constructor(nodeType, nodeName, container) {\n super(nodeType, nodeName, container);\n this.attributes = Object.create(null);\n this.style = null;\n this.vShow = null;\n this._html = null;\n }\n get className() {\n return (this.attributes[ATTR_CLASS] || '');\n }\n set className(val) {\n this.setAttribute(ATTR_CLASS, val);\n }\n get innerHTML() {\n return '';\n }\n set innerHTML(html) {\n this._html = html;\n }\n addEventListener(type, listener, options) {\n super.addEventListener(type, listener, options);\n if (this.pageNode && !this.pageNode.isUnmounted) {\n if (listener.wxsEvent) {\n this.pageNode.onAddWxsEvent(this, normalizeEventType(type, options), listener.wxsEvent, encodeModifier(listener.modifiers || []));\n }\n else {\n this.pageNode.onAddEvent(this, normalizeEventType(type, options), encodeModifier(listener.modifiers || []));\n }\n }\n }\n removeEventListener(type, callback, options) {\n super.removeEventListener(type, callback, options);\n if (this.pageNode && !this.pageNode.isUnmounted) {\n this.pageNode.onRemoveEvent(this, normalizeEventType(type, options));\n }\n }\n getAttribute(qualifiedName) {\n if (qualifiedName === ATTR_STYLE) {\n return this.style;\n }\n return this.attributes[qualifiedName];\n }\n removeAttribute(qualifiedName) {\n if (qualifiedName == ATTR_STYLE) {\n this.style = null;\n }\n else {\n delete this.attributes[qualifiedName];\n }\n if (this.pageNode && !this.pageNode.isUnmounted) {\n this.pageNode.onRemoveAttribute(this, qualifiedName);\n }\n }\n setAttribute(qualifiedName, value) {\n if (qualifiedName === ATTR_STYLE) {\n this.style = value;\n }\n else {\n this.attributes[qualifiedName] = value;\n }\n if (this.pageNode && !this.pageNode.isUnmounted) {\n this.pageNode.onSetAttribute(this, qualifiedName, value);\n }\n }\n toJSON({ attr, normalize, } = {}) {\n const { attributes, style, listeners, _text } = this;\n const res = {};\n if (Object.keys(attributes).length) {\n res.a = normalize ? normalize(attributes) : attributes;\n }\n const events = Object.keys(listeners);\n if (events.length) {\n let w = undefined;\n const e = {};\n events.forEach((name) => {\n const handlers = listeners[name];\n if (handlers.length) {\n // 可能存在多个 handler 且不同 modifiers 吗?\n const { wxsEvent, modifiers } = handlers[0];\n const modifier = encodeModifier(modifiers || []);\n if (!wxsEvent) {\n e[name] = modifier;\n }\n else {\n if (!w) {\n w = {};\n }\n w[name] = [normalize ? normalize(wxsEvent) : wxsEvent, modifier];\n }\n }\n });\n res.e = normalize ? normalize(e, false) : e;\n if (w) {\n res.w = normalize ? normalize(w, false) : w;\n }\n }\n if (style !== null) {\n res.s = normalize ? normalize(style) : style;\n }\n if (!attr) {\n res.i = this.nodeId;\n res.n = this.nodeName;\n }\n if (_text !== null) {\n res.t = normalize ? normalize(_text) : _text;\n }\n return res;\n }\n}\n\nclass UniCommentNode extends UniNode {\n constructor(text, container) {\n super(NODE_TYPE_COMMENT, '#comment', container);\n this._text = (process.env.NODE_ENV !== 'production') ? text : '';\n }\n toJSON(opts = {}) {\n // 暂时不传递 text 到 view 层,没啥意义,节省点数据量\n return opts.attr\n ? {}\n : {\n i: this.nodeId,\n };\n // return opts.attr\n // ? { t: this._text as string }\n // : {\n // i: this.nodeId!,\n // t: this._text as string,\n // }\n }\n}\n\nclass UniElement extends UniBaseNode {\n constructor(nodeName, container) {\n super(NODE_TYPE_ELEMENT, nodeName.toUpperCase(), container);\n this.tagName = this.nodeName;\n }\n}\nclass UniInputElement extends UniElement {\n get value() {\n return this.getAttribute('value');\n }\n set value(val) {\n this.setAttribute('value', val);\n }\n}\nclass UniTextAreaElement extends UniInputElement {\n}\n\nclass UniTextNode extends UniBaseNode {\n constructor(text, container) {\n super(NODE_TYPE_TEXT, '#text', container);\n this._text = text;\n }\n get nodeValue() {\n return this._text || '';\n }\n set nodeValue(text) {\n this._text = text;\n if (this.pageNode && !this.pageNode.isUnmounted) {\n this.pageNode.onNodeValue(this, text);\n }\n }\n}\n\nconst forcePatchProps = {\n AD: ['data'],\n 'AD-DRAW': ['data'],\n 'LIVE-PLAYER': ['picture-in-picture-mode'],\n MAP: [\n 'markers',\n 'polyline',\n 'circles',\n 'controls',\n 'include-points',\n 'polygons',\n ],\n PICKER: ['range', 'value'],\n 'PICKER-VIEW': ['value'],\n 'RICH-TEXT': ['nodes'],\n VIDEO: ['danmu-list', 'header'],\n 'WEB-VIEW': ['webview-styles'],\n};\nconst forcePatchPropKeys = ['animation'];\n\nconst forcePatchProp = (el, key) => {\n if (forcePatchPropKeys.indexOf(key) > -1) {\n return true;\n }\n const keys = forcePatchProps[el.nodeName];\n if (keys && keys.indexOf(key) > -1) {\n return true;\n }\n return false;\n};\n\nconst ACTION_TYPE_PAGE_CREATE = 1;\nconst ACTION_TYPE_PAGE_CREATED = 2;\nconst ACTION_TYPE_CREATE = 3;\nconst ACTION_TYPE_INSERT = 4;\nconst ACTION_TYPE_REMOVE = 5;\nconst ACTION_TYPE_SET_ATTRIBUTE = 6;\nconst ACTION_TYPE_REMOVE_ATTRIBUTE = 7;\nconst ACTION_TYPE_ADD_EVENT = 8;\nconst ACTION_TYPE_REMOVE_EVENT = 9;\nconst ACTION_TYPE_SET_TEXT = 10;\nconst ACTION_TYPE_ADD_WXS_EVENT = 12;\nconst ACTION_TYPE_PAGE_SCROLL = 15;\nconst ACTION_TYPE_EVENT = 20;\n\n/**\n * 需要手动传入 timer,主要是解决 App 平台的定制 timer\n */\nfunction debounce(fn, delay, { clearTimeout, setTimeout }) {\n let timeout;\n const newFn = function () {\n clearTimeout(timeout);\n const timerFn = () => fn.apply(this, arguments);\n timeout = setTimeout(timerFn, delay);\n };\n newFn.cancel = function () {\n clearTimeout(timeout);\n };\n return newFn;\n}\n\nclass EventChannel {\n constructor(id, events) {\n this.id = id;\n this.listener = {};\n this.emitCache = [];\n if (events) {\n Object.keys(events).forEach((name) => {\n this.on(name, events[name]);\n });\n }\n }\n emit(eventName, ...args) {\n const fns = this.listener[eventName];\n if (!fns) {\n return this.emitCache.push({\n eventName,\n args,\n });\n }\n fns.forEach((opt) => {\n opt.fn.apply(opt.fn, args);\n });\n this.listener[eventName] = fns.filter((opt) => opt.type !== 'once');\n }\n on(eventName, fn) {\n this._addListener(eventName, 'on', fn);\n this._clearCache(eventName);\n }\n once(eventName, fn) {\n this._addListener(eventName, 'once', fn);\n this._clearCache(eventName);\n }\n off(eventName, fn) {\n const fns = this.listener[eventName];\n if (!fns) {\n return;\n }\n if (fn) {\n for (let i = 0; i < fns.length;) {\n if (fns[i].fn === fn) {\n fns.splice(i, 1);\n i--;\n }\n i++;\n }\n }\n else {\n delete this.listener[eventName];\n }\n }\n _clearCache(eventName) {\n for (let index = 0; index < this.emitCache.length; index++) {\n const cache = this.emitCache[index];\n const _name = eventName\n ? cache.eventName === eventName\n ? eventName\n : null\n : cache.eventName;\n if (!_name)\n continue;\n const location = this.emit.apply(this, [_name, ...cache.args]);\n if (typeof location === 'number') {\n this.emitCache.pop();\n continue;\n }\n this.emitCache.splice(index, 1);\n index--;\n }\n }\n _addListener(eventName, type, fn) {\n (this.listener[eventName] || (this.listener[eventName] = [])).push({\n fn,\n type,\n });\n }\n}\n\nconst PAGE_HOOKS = [\n ON_INIT,\n ON_LOAD,\n ON_SHOW,\n ON_HIDE,\n ON_UNLOAD,\n ON_BACK_PRESS,\n ON_PAGE_SCROLL,\n ON_TAB_ITEM_TAP,\n ON_REACH_BOTTOM,\n ON_PULL_DOWN_REFRESH,\n ON_SHARE_TIMELINE,\n ON_SHARE_APP_MESSAGE,\n ON_SHARE_CHAT,\n ON_ADD_TO_FAVORITES,\n ON_SAVE_EXIT_STATE,\n ON_NAVIGATION_BAR_BUTTON_TAP,\n ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED,\n ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED,\n ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED,\n ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED,\n];\nfunction isRootImmediateHook(name) {\n const PAGE_SYNC_HOOKS = [ON_LOAD, ON_SHOW];\n return PAGE_SYNC_HOOKS.indexOf(name) > -1;\n}\n// isRootImmediateHookX deprecated\nfunction isRootHook(name) {\n return PAGE_HOOKS.indexOf(name) > -1;\n}\nconst UniLifecycleHooks = [\n ON_SHOW,\n ON_HIDE,\n ON_LAUNCH,\n ON_ERROR,\n ON_THEME_CHANGE,\n ON_PAGE_NOT_FOUND,\n ON_UNHANDLE_REJECTION,\n ON_EXIT,\n ON_INIT,\n ON_LOAD,\n ON_READY,\n ON_UNLOAD,\n ON_RESIZE,\n ON_BACK_PRESS,\n ON_PAGE_SCROLL,\n ON_TAB_ITEM_TAP,\n ON_REACH_BOTTOM,\n ON_PULL_DOWN_REFRESH,\n ON_SHARE_TIMELINE,\n ON_ADD_TO_FAVORITES,\n ON_SHARE_APP_MESSAGE,\n ON_SHARE_CHAT,\n ON_SAVE_EXIT_STATE,\n ON_NAVIGATION_BAR_BUTTON_TAP,\n ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED,\n ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED,\n ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED,\n ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED,\n];\nconst MINI_PROGRAM_PAGE_RUNTIME_HOOKS = /*#__PURE__*/ (() => {\n return {\n onPageScroll: 1,\n onShareAppMessage: 1 << 1,\n onShareTimeline: 1 << 2,\n };\n})();\nfunction isUniLifecycleHook(name, value, checkType = true) {\n // 检查类型\n if (checkType && !isFunction(value)) {\n return false;\n }\n if (UniLifecycleHooks.indexOf(name) > -1) {\n // 已预定义\n return true;\n }\n else if (name.indexOf('on') === 0) {\n // 以 on 开头\n return true;\n }\n return false;\n}\n\nlet vueApp;\nconst createVueAppHooks = [];\n/**\n * 提供 createApp 的回调事件,方便三方插件接收 App 对象,处理挂靠全局 mixin 之类的逻辑\n */\nfunction onCreateVueApp(hook) {\n // TODO 每个 nvue 页面都会触发\n if (vueApp) {\n return hook(vueApp);\n }\n createVueAppHooks.push(hook);\n}\nfunction invokeCreateVueAppHook(app) {\n vueApp = app;\n createVueAppHooks.forEach((hook) => hook(app));\n}\nconst invokeCreateErrorHandler = once((app, createErrorHandler) => {\n // 不再判断开发者是否监听了onError,直接返回 createErrorHandler,内部 errorHandler 会调用开发者自定义的 errorHandler,以及判断开发者是否监听了onError\n return createErrorHandler(app);\n});\n\nconst E = function () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n};\nE.prototype = {\n _id: 1,\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx,\n _id: this._id,\n });\n return this._id++;\n },\n once: function (name, callback, ctx) {\n var self = this;\n function listener() {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n }\n listener._ = callback;\n return this.on(name, listener, ctx);\n },\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n return this;\n },\n off: function (name, event) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n if (evts && event) {\n for (var i = evts.length - 1; i >= 0; i--) {\n if (evts[i].fn === event ||\n evts[i].fn._ === event ||\n evts[i]._id === event) {\n evts.splice(i, 1);\n break;\n }\n }\n liveEvents = evts;\n }\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n liveEvents.length ? (e[name] = liveEvents) : delete e[name];\n return this;\n },\n};\nvar E$1 = E;\n\nconst borderStyles = {\n black: 'rgba(0,0,0,0.4)',\n white: 'rgba(255,255,255,0.4)',\n};\nfunction normalizeTabBarStyles(borderStyle) {\n if (borderStyle && borderStyle in borderStyles) {\n return borderStyles[borderStyle];\n }\n return borderStyle;\n}\nfunction normalizeTitleColor(titleColor) {\n return titleColor === 'black' ? '#000000' : '#ffffff';\n}\nfunction resolveStringStyleItem(modeStyle, styleItem, key) {\n if (isString(styleItem) && styleItem.startsWith('@')) {\n const _key = styleItem.replace('@', '');\n let _styleItem = modeStyle[_key] || styleItem;\n switch (key) {\n case 'titleColor':\n _styleItem = normalizeTitleColor(_styleItem);\n break;\n case 'borderStyle':\n _styleItem = normalizeTabBarStyles(_styleItem);\n break;\n }\n return _styleItem;\n }\n return styleItem;\n}\nfunction normalizeStyles(pageStyle, themeConfig = {}, mode = 'light') {\n const modeStyle = themeConfig[mode];\n const styles = {};\n if (typeof modeStyle === 'undefined' || !pageStyle)\n return pageStyle;\n Object.keys(pageStyle).forEach((key) => {\n const styleItem = pageStyle[key]; // Object Array String\n const parseStyleItem = () => {\n if (isPlainObject(styleItem))\n return normalizeStyles(styleItem, themeConfig, mode);\n if (isArray(styleItem))\n return styleItem.map((item) => {\n if (isPlainObject(item))\n return normalizeStyles(item, themeConfig, mode);\n return resolveStringStyleItem(modeStyle, item);\n });\n return resolveStringStyleItem(modeStyle, styleItem, key);\n };\n styles[key] = parseStyleItem();\n });\n return styles;\n}\n\nfunction getEnvLocale() {\n const { env } = process;\n const lang = env.LC_ALL || env.LC_MESSAGES || env.LANG || env.LANGUAGE;\n return (lang && lang.replace(/[.:].*/, '')) || 'en';\n}\n\nconst isStringIntegerKey = (key) => typeof key === 'string' &&\n key !== 'NaN' &&\n key[0] !== '-' &&\n '' + parseInt(key, 10) === key;\nconst isNumberIntegerKey = (key) => typeof key === 'number' &&\n !isNaN(key) &&\n key >= 0 &&\n parseInt(key + '', 10) === key;\n/**\n * 用于替代@vue/shared的isIntegerKey,原始方法在鸿蒙arkts中会引发bug。根本原因是arkts的数组的key是数字而不是字符串。\n * 目前这个方法使用的地方都和数组有关,切记不能挪作他用。\n * @param key\n * @returns\n */\nconst isIntegerKey = (key) => isNumberIntegerKey(key) || isStringIntegerKey(key);\n\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_HARMONY_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, isAppHarmonyUVueNativeTag, isAppIOSUVueNativeTag, isAppNVueNativeTag, isAppNativeTag, isAppUVueBuiltInEasyComponent, isAppUVueNativeTag, isAppVoidTag, isBuiltInComponent, isComponentInternalInstance, isComponentTag, isH5CustomElement, isH5NativeTag, isIntegerKey, 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 };\n","import { isRootHook, getValueByDataPath, isUniLifecycleHook, ON_ERROR, UniLifecycleHooks, invokeCreateErrorHandler, dynamicSlotName } from '@dcloudio/uni-shared';\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';\nexport { EMPTY_OBJ, camelize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\n/**\n* @dcloudio/uni-mp-vue v3.4.21\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n\nfunction warn$2(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n constructor(detached = false) {\n this.detached = detached;\n /**\n * @internal\n */\n this._active = true;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this.parent = activeEffectScope;\n if (!detached && activeEffectScope) {\n this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(\n this\n ) - 1;\n }\n }\n get active() {\n return this._active;\n }\n run(fn) {\n if (this._active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n } finally {\n activeEffectScope = currentEffectScope;\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$2(`cannot run an inactive effect scope.`);\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n on() {\n activeEffectScope = this;\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n activeEffectScope = this.parent;\n }\n stop(fromParent) {\n if (this._active) {\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n }\n if (!this.detached && this.parent && !fromParent) {\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = void 0;\n this._active = false;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction recordEffectScope(effect, scope = activeEffectScope) {\n if (scope && scope.active) {\n scope.effects.push(effect);\n }\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$2(\n `onScopeDispose() is called when there is no active effect scope to be associated with.`\n );\n }\n}\n\nlet activeEffect;\nclass ReactiveEffect {\n constructor(fn, trigger, scheduler, scope) {\n this.fn = fn;\n this.trigger = trigger;\n this.scheduler = scheduler;\n this.active = true;\n this.deps = [];\n /**\n * @internal\n */\n this._dirtyLevel = 4;\n /**\n * @internal\n */\n this._trackId = 0;\n /**\n * @internal\n */\n this._runnings = 0;\n /**\n * @internal\n */\n this._shouldSchedule = false;\n /**\n * @internal\n */\n this._depsLength = 0;\n recordEffectScope(this, scope);\n }\n get dirty() {\n if (this._dirtyLevel === 2 || this._dirtyLevel === 3) {\n this._dirtyLevel = 1;\n pauseTracking();\n for (let i = 0; i < this._depsLength; i++) {\n const dep = this.deps[i];\n if (dep.computed) {\n triggerComputed(dep.computed);\n if (this._dirtyLevel >= 4) {\n break;\n }\n }\n }\n if (this._dirtyLevel === 1) {\n this._dirtyLevel = 0;\n }\n resetTracking();\n }\n return this._dirtyLevel >= 4;\n }\n set dirty(v) {\n this._dirtyLevel = v ? 4 : 0;\n }\n run() {\n this._dirtyLevel = 0;\n if (!this.active) {\n return this.fn();\n }\n let lastShouldTrack = shouldTrack;\n let lastEffect = activeEffect;\n try {\n shouldTrack = true;\n activeEffect = this;\n this._runnings++;\n preCleanupEffect(this);\n return this.fn();\n } finally {\n postCleanupEffect(this);\n this._runnings--;\n activeEffect = lastEffect;\n shouldTrack = lastShouldTrack;\n }\n }\n stop() {\n var _a;\n if (this.active) {\n preCleanupEffect(this);\n postCleanupEffect(this);\n (_a = this.onStop) == null ? void 0 : _a.call(this);\n this.active = false;\n }\n }\n}\nfunction triggerComputed(computed) {\n return computed.value;\n}\nfunction preCleanupEffect(effect2) {\n effect2._trackId++;\n effect2._depsLength = 0;\n}\nfunction postCleanupEffect(effect2) {\n if (effect2.deps.length > effect2._depsLength) {\n for (let i = effect2._depsLength; i < effect2.deps.length; i++) {\n cleanupDepEffect(effect2.deps[i], effect2);\n }\n effect2.deps.length = effect2._depsLength;\n }\n}\nfunction cleanupDepEffect(dep, effect2) {\n const trackId = dep.get(effect2);\n if (trackId !== void 0 && effect2._trackId !== trackId) {\n dep.delete(effect2);\n if (dep.size === 0) {\n dep.cleanup();\n }\n }\n}\nfunction effect(fn, options) {\n if (fn.effect instanceof ReactiveEffect) {\n fn = fn.effect.fn;\n }\n const _effect = new ReactiveEffect(fn, NOOP, () => {\n if (_effect.dirty) {\n _effect.run();\n }\n });\n if (options) {\n extend(_effect, options);\n if (options.scope)\n recordEffectScope(_effect, options.scope);\n }\n if (!options || !options.lazy) {\n _effect.run();\n }\n const runner = _effect.run.bind(_effect);\n runner.effect = _effect;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nlet pauseScheduleStack = 0;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction pauseScheduling() {\n pauseScheduleStack++;\n}\nfunction resetScheduling() {\n pauseScheduleStack--;\n while (!pauseScheduleStack && queueEffectSchedulers.length) {\n queueEffectSchedulers.shift()();\n }\n}\nfunction trackEffect(effect2, dep, debuggerEventExtraInfo) {\n var _a;\n if (dep.get(effect2) !== effect2._trackId) {\n dep.set(effect2, effect2._trackId);\n const oldDep = effect2.deps[effect2._depsLength];\n if (oldDep !== dep) {\n if (oldDep) {\n cleanupDepEffect(oldDep, effect2);\n }\n effect2.deps[effect2._depsLength++] = dep;\n } else {\n effect2._depsLength++;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n (_a = effect2.onTrack) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));\n }\n }\n}\nconst queueEffectSchedulers = [];\nfunction triggerEffects(dep, dirtyLevel, debuggerEventExtraInfo) {\n var _a;\n pauseScheduling();\n for (const effect2 of dep.keys()) {\n let tracking;\n if (effect2._dirtyLevel < dirtyLevel && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {\n effect2._shouldSchedule || (effect2._shouldSchedule = effect2._dirtyLevel === 0);\n effect2._dirtyLevel = dirtyLevel;\n }\n if (effect2._shouldSchedule && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n (_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));\n }\n effect2.trigger();\n if ((!effect2._runnings || effect2.allowRecurse) && effect2._dirtyLevel !== 2) {\n effect2._shouldSchedule = false;\n if (effect2.scheduler) {\n queueEffectSchedulers.push(effect2.scheduler);\n }\n }\n }\n }\n resetScheduling();\n}\n\nconst createDep = (cleanup, computed) => {\n const dep = /* @__PURE__ */ new Map();\n dep.cleanup = cleanup;\n dep.computed = computed;\n return dep;\n};\n\nconst targetMap = /* @__PURE__ */ new WeakMap();\nconst ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"iterate\" : \"\");\nconst MAP_KEY_ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"Map key iterate\" : \"\");\nfunction track(target, type, key) {\n if (shouldTrack && activeEffect) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = createDep(() => depsMap.delete(key)));\n }\n trackEffect(\n activeEffect,\n dep,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target,\n type,\n key\n } : void 0\n );\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n return;\n }\n let deps = [];\n if (type === \"clear\") {\n deps = [...depsMap.values()];\n } else if (key === \"length\" && isArray(target)) {\n const newLength = Number(newValue);\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || !isSymbol(key2) && key2 >= newLength) {\n deps.push(dep);\n }\n });\n } else {\n if (key !== void 0) {\n deps.push(depsMap.get(key));\n }\n switch (type) {\n case \"add\":\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isIntegerKey(key)) {\n deps.push(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n pauseScheduling();\n for (const dep of deps) {\n if (dep) {\n triggerEffects(\n dep,\n 4,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target,\n type,\n key,\n newValue,\n oldValue,\n oldTarget\n } : void 0\n );\n }\n }\n resetScheduling();\n}\nfunction getDepFromReactive(object, key) {\n var _a;\n return (_a = targetMap.get(object)) == null ? void 0 : _a.get(key);\n}\n\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nconst arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations();\nfunction createArrayInstrumentations() {\n const instrumentations = {};\n [\"includes\", \"indexOf\", \"lastIndexOf\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n const arr = toRaw(this);\n for (let i = 0, l = this.length; i < l; i++) {\n track(arr, \"get\", i + \"\");\n }\n const res = arr[key](...args);\n if (res === -1 || res === false) {\n return arr[key](...args.map(toRaw));\n } else {\n return res;\n }\n };\n });\n [\"push\", \"pop\", \"shift\", \"unshift\", \"splice\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n pauseTracking();\n pauseScheduling();\n const res = toRaw(this)[key].apply(this, args);\n resetScheduling();\n resetTracking();\n return res;\n };\n });\n return instrumentations;\n}\nfunction hasOwnProperty(key) {\n const obj = toRaw(this);\n track(obj, \"has\", key);\n return obj.hasOwnProperty(key);\n}\nclass BaseReactiveHandler {\n constructor(_isReadonly = false, _isShallow = false) {\n this._isReadonly = _isReadonly;\n this._isShallow = _isShallow;\n }\n get(target, key, receiver) {\n const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_isShallow\") {\n return isShallow2;\n } else if (key === \"__v_raw\") {\n if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype\n // this means the reciever is a user proxy of the reactive proxy\n Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {\n return target;\n }\n return;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly2) {\n if (targetIsArray && hasOwn(arrayInstrumentations, key)) {\n return Reflect.get(arrayInstrumentations, key, receiver);\n }\n if (key === \"hasOwnProperty\") {\n return hasOwnProperty;\n }\n }\n const res = Reflect.get(target, key, receiver);\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (isShallow2) {\n return res;\n }\n if (isRef(res)) {\n return targetIsArray && isIntegerKey(key) ? res : res.value;\n }\n if (isObject(res)) {\n return isReadonly2 ? readonly(res) : reactive(res);\n }\n return res;\n }\n}\nclass MutableReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(false, isShallow2);\n }\n set(target, key, value, receiver) {\n let oldValue = target[key];\n if (!this._isShallow) {\n const isOldValueReadonly = isReadonly(oldValue);\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\n if (isOldValueReadonly) {\n return false;\n } else {\n oldValue.value = value;\n return true;\n }\n }\n }\n const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key);\n const result = Reflect.set(target, key, value, receiver);\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n }\n return result;\n }\n deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n }\n has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\", key);\n }\n return result;\n }\n ownKeys(target) {\n track(\n target,\n \"iterate\",\n isArray(target) ? \"length\" : ITERATE_KEY\n );\n return Reflect.ownKeys(target);\n }\n}\nclass ReadonlyReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(true, isShallow2);\n }\n set(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$2(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n deleteProperty(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$2(\n `Delete operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n}\nconst mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();\nconst readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();\nconst shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(\n true\n);\nconst shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction get(target, key, isReadonly = false, isShallow = false) {\n target = target[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"get\", key);\n }\n track(rawTarget, \"get\", rawKey);\n }\n const { has: has2 } = getProto(rawTarget);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n if (has2.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has2.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n}\nfunction has(key, isReadonly = false) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"has\", key);\n }\n track(rawTarget, \"has\", rawKey);\n }\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n}\nfunction size(target, isReadonly = false) {\n target = target[\"__v_raw\"];\n !isReadonly && track(toRaw(target), \"iterate\", ITERATE_KEY);\n return Reflect.get(target, \"size\", target);\n}\nfunction add(value) {\n value = toRaw(value);\n const target = toRaw(this);\n const proto = getProto(target);\n const hadKey = proto.has.call(target, value);\n if (!hadKey) {\n target.add(value);\n trigger(target, \"add\", value, value);\n }\n return this;\n}\nfunction set$1(key, value) {\n value = toRaw(value);\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get2.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n return this;\n}\nfunction deleteEntry(key) {\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get2 ? get2.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n}\nfunction clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = !!(process.env.NODE_ENV !== \"production\") ? isMap(target) ? new Map(target) : new Set(target) : void 0;\n const result = target.clear();\n if (hadItems) {\n trigger(target, \"clear\", void 0, void 0, oldTarget);\n }\n return result;\n}\nfunction createForEach(isReadonly, isShallow) {\n return function forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n };\n}\nfunction createIterableMethod(method, isReadonly, isShallow) {\n return function(...args) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(\n rawTarget,\n \"iterate\",\n isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY\n );\n return {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n },\n // iterable protocol\n [Symbol.iterator]() {\n return this;\n }\n };\n };\n}\nfunction createReadonlyMethod(type) {\n return function(...args) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n warn$2(\n `${capitalize(type)} operation ${key}failed: target is readonly.`,\n toRaw(this)\n );\n }\n return type === \"delete\" ? false : type === \"clear\" ? void 0 : this;\n };\n}\nfunction createInstrumentations() {\n const mutableInstrumentations2 = {\n get(key) {\n return get(this, key);\n },\n get size() {\n return size(this);\n },\n has,\n add,\n set: set$1,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, false)\n };\n const shallowInstrumentations2 = {\n get(key) {\n return get(this, key, false, true);\n },\n get size() {\n return size(this);\n },\n has,\n add,\n set: set$1,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, true)\n };\n const readonlyInstrumentations2 = {\n get(key) {\n return get(this, key, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, false)\n };\n const shallowReadonlyInstrumentations2 = {\n get(key) {\n return get(this, key, true, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, true)\n };\n const iteratorMethods = [\n \"keys\",\n \"values\",\n \"entries\",\n Symbol.iterator\n ];\n iteratorMethods.forEach((method) => {\n mutableInstrumentations2[method] = createIterableMethod(method, false, false);\n readonlyInstrumentations2[method] = createIterableMethod(method, true, false);\n shallowInstrumentations2[method] = createIterableMethod(method, false, true);\n shallowReadonlyInstrumentations2[method] = createIterableMethod(\n method,\n true,\n true\n );\n });\n return [\n mutableInstrumentations2,\n readonlyInstrumentations2,\n shallowInstrumentations2,\n shallowReadonlyInstrumentations2\n ];\n}\nconst [\n mutableInstrumentations,\n readonlyInstrumentations,\n shallowInstrumentations,\n shallowReadonlyInstrumentations\n] = /* @__PURE__ */ createInstrumentations();\nfunction createInstrumentationGetter(isReadonly, shallow) {\n const instrumentations = shallow ? isReadonly ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly ? readonlyInstrumentations : mutableInstrumentations;\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(\n hasOwn(instrumentations, key) && key in target ? instrumentations : target,\n key,\n receiver\n );\n };\n}\nconst mutableCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has2, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has2.call(target, rawKey)) {\n const type = toRawType(target);\n warn$2(\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.`\n );\n }\n}\n\nconst reactiveMap = /* @__PURE__ */ new WeakMap();\nconst shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nconst readonlyMap = /* @__PURE__ */ new WeakMap();\nconst shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1 /* COMMON */;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2 /* COLLECTION */;\n default:\n return 0 /* INVALID */;\n }\n}\nfunction getTargetType(value) {\n return value[\"__v_skip\"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value));\n}\nfunction reactive(target) {\n if (isReadonly(target)) {\n return target;\n }\n return createReactiveObject(\n target,\n false,\n mutableHandlers,\n mutableCollectionHandlers,\n reactiveMap\n );\n}\nfunction shallowReactive(target) {\n return createReactiveObject(\n target,\n false,\n shallowReactiveHandlers,\n shallowCollectionHandlers,\n shallowReactiveMap\n );\n}\nfunction readonly(target) {\n return createReactiveObject(\n target,\n true,\n readonlyHandlers,\n readonlyCollectionHandlers,\n readonlyMap\n );\n}\nfunction shallowReadonly(target) {\n return createReactiveObject(\n target,\n true,\n shallowReadonlyHandlers,\n shallowReadonlyCollectionHandlers,\n shallowReadonlyMap\n );\n}\nfunction createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$2(`value cannot be made reactive: ${String(target)}`);\n }\n return target;\n }\n if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const targetType = getTargetType(target);\n if (targetType === 0 /* INVALID */) {\n return target;\n }\n const proxy = new Proxy(\n target,\n targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers\n );\n proxyMap.set(target, proxy);\n return proxy;\n}\nfunction isReactive(value) {\n if (isReadonly(value)) {\n return isReactive(value[\"__v_raw\"]);\n }\n return !!(value && value[\"__v_isReactive\"]);\n}\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\"]);\n}\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\"]);\n}\nfunction isProxy(value) {\n return isReactive(value) || isReadonly(value);\n}\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\"];\n return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n if (Object.isExtensible(value)) {\n def(value, \"__v_skip\", true);\n }\n return value;\n}\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\n\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`;\nclass ComputedRefImpl {\n constructor(getter, _setter, isReadonly, isSSR) {\n this.getter = getter;\n this._setter = _setter;\n this.dep = void 0;\n this.__v_isRef = true;\n this[\"__v_isReadonly\"] = false;\n this.effect = new ReactiveEffect(\n () => getter(this._value),\n () => triggerRefValue(\n this,\n this.effect._dirtyLevel === 2 ? 2 : 3\n )\n );\n this.effect.computed = this;\n this.effect.active = this._cacheable = !isSSR;\n this[\"__v_isReadonly\"] = isReadonly;\n }\n get value() {\n const self = toRaw(this);\n if ((!self._cacheable || self.effect.dirty) && hasChanged(self._value, self._value = self.effect.run())) {\n triggerRefValue(self, 4);\n }\n trackRefValue(self);\n if (self.effect._dirtyLevel >= 2) {\n if (!!(process.env.NODE_ENV !== \"production\") && this._warnRecursive) {\n warn$2(COMPUTED_SIDE_EFFECT_WARN, `\n\ngetter: `, this.getter);\n }\n triggerRefValue(self, 2);\n }\n return self._value;\n }\n set value(newValue) {\n this._setter(newValue);\n }\n // #region polyfill _dirty for backward compatibility third party code for Vue <= 3.3.x\n get _dirty() {\n return this.effect.dirty;\n }\n set _dirty(v) {\n this.effect.dirty = v;\n }\n // #endregion\n}\nfunction computed$1(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n const onlyGetter = isFunction(getterOrOptions);\n if (onlyGetter) {\n getter = getterOrOptions;\n setter = !!(process.env.NODE_ENV !== \"production\") ? () => {\n warn$2(\"Write operation failed: computed value is readonly\");\n } : NOOP;\n } else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);\n if (!!(process.env.NODE_ENV !== \"production\") && debugOptions && !isSSR) {\n cRef.effect.onTrack = debugOptions.onTrack;\n cRef.effect.onTrigger = debugOptions.onTrigger;\n }\n return cRef;\n}\n\nfunction trackRefValue(ref2) {\n var _a;\n if (shouldTrack && activeEffect) {\n ref2 = toRaw(ref2);\n trackEffect(\n activeEffect,\n (_a = ref2.dep) != null ? _a : ref2.dep = createDep(\n () => ref2.dep = void 0,\n ref2 instanceof ComputedRefImpl ? ref2 : void 0\n ),\n !!(process.env.NODE_ENV !== \"production\") ? {\n target: ref2,\n type: \"get\",\n key: \"value\"\n } : void 0\n );\n }\n}\nfunction triggerRefValue(ref2, dirtyLevel = 4, newVal) {\n ref2 = toRaw(ref2);\n const dep = ref2.dep;\n if (dep) {\n triggerEffects(\n dep,\n dirtyLevel,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target: ref2,\n type: \"set\",\n key: \"value\",\n newValue: newVal\n } : void 0\n );\n }\n}\nfunction isRef(r) {\n return !!(r && r.__v_isRef === true);\n}\nfunction ref(value) {\n return createRef(value, false);\n}\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n constructor(value, __v_isShallow) {\n this.__v_isShallow = __v_isShallow;\n this.dep = void 0;\n this.__v_isRef = true;\n this._rawValue = __v_isShallow ? value : toRaw(value);\n this._value = __v_isShallow ? value : toReactive(value);\n }\n get value() {\n trackRefValue(this);\n return this._value;\n }\n set value(newVal) {\n const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal);\n newVal = useDirectValue ? newVal : toRaw(newVal);\n if (hasChanged(newVal, this._rawValue)) {\n this._rawValue = newVal;\n this._value = useDirectValue ? newVal : toReactive(newVal);\n triggerRefValue(this, 4, newVal);\n }\n }\n}\nfunction triggerRef(ref2) {\n triggerRefValue(ref2, 4, !!(process.env.NODE_ENV !== \"production\") ? ref2.value : void 0);\n}\nfunction unref(ref2) {\n return isRef(ref2) ? ref2.value : ref2;\n}\nfunction toValue(source) {\n return isFunction(source) ? source() : unref(source);\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n } else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass CustomRefImpl {\n constructor(factory) {\n this.dep = void 0;\n this.__v_isRef = true;\n const { get, set } = factory(\n () => trackRefValue(this),\n () => triggerRefValue(this)\n );\n this._get = get;\n this._set = set;\n }\n get value() {\n return this._get();\n }\n set value(newVal) {\n this._set(newVal);\n }\n}\nfunction customRef(factory) {\n return new CustomRefImpl(factory);\n}\nfunction toRefs(object) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isProxy(object)) {\n warn$2(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = propertyToRef(object, key);\n }\n return ret;\n}\nclass ObjectRefImpl {\n constructor(_object, _key, _defaultValue) {\n this._object = _object;\n this._key = _key;\n this._defaultValue = _defaultValue;\n this.__v_isRef = true;\n }\n get value() {\n const val = this._object[this._key];\n return val === void 0 ? this._defaultValue : val;\n }\n set value(newVal) {\n this._object[this._key] = newVal;\n }\n get dep() {\n return getDepFromReactive(toRaw(this._object), this._key);\n }\n}\nclass GetterRefImpl {\n constructor(_getter) {\n this._getter = _getter;\n this.__v_isRef = true;\n this.__v_isReadonly = true;\n }\n get value() {\n return this._getter();\n }\n}\nfunction toRef(source, key, defaultValue) {\n if (isRef(source)) {\n return source;\n } else if (isFunction(source)) {\n return new GetterRefImpl(source);\n } else if (isObject(source) && arguments.length > 1) {\n return propertyToRef(source, key, defaultValue);\n } else {\n return ref(source);\n }\n}\nfunction propertyToRef(source, key, defaultValue) {\n const val = source[key];\n return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue);\n}\n\nconst stack = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nfunction warn$1(msg, ...args) {\n pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(\n appWarnHandler,\n instance,\n 11,\n [\n msg + args.map((a) => {\n var _a, _b;\n return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);\n }).join(\"\"),\n instance && instance.proxy,\n trace.map(\n ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`\n ).join(\"\\n\"),\n trace\n ]\n );\n } else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n if (trace.length && // avoid spamming console during tests\n true) {\n warnArgs.push(`\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking();\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n } else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...i === 0 ? [] : [`\n`], ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(\n vnode.component,\n vnode.type,\n isRoot\n )}`;\n const close = `>` + postfix;\n return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];\n}\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach((key) => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\nfunction formatProp(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n } else if (typeof value === \"number\" || typeof value === \"boolean\" || value == null) {\n return raw ? value : [`${key}=${value}`];\n } else if (isRef(value)) {\n value = formatProp(key, toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n } else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n } else {\n value = toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\n\nconst ErrorTypeStrings = {\n [\"sp\"]: \"serverPrefetch hook\",\n [\"bc\"]: \"beforeCreate hook\",\n [\"c\"]: \"created hook\",\n [\"bm\"]: \"beforeMount hook\",\n [\"m\"]: \"mounted hook\",\n [\"bu\"]: \"beforeUpdate hook\",\n [\"u\"]: \"updated\",\n [\"bum\"]: \"beforeUnmount hook\",\n [\"um\"]: \"unmounted hook\",\n [\"a\"]: \"activated hook\",\n [\"da\"]: \"deactivated hook\",\n [\"ec\"]: \"errorCaptured hook\",\n [\"rtc\"]: \"renderTracked hook\",\n [\"rtg\"]: \"renderTriggered hook\",\n [0]: \"setup function\",\n [1]: \"render function\",\n [2]: \"watcher getter\",\n [3]: \"watcher callback\",\n [4]: \"watcher cleanup function\",\n [5]: \"native event handler\",\n [6]: \"component event handler\",\n [7]: \"vnode hook\",\n [8]: \"directive hook\",\n [9]: \"transition hook\",\n [10]: \"app errorHandler\",\n [11]: \"app warnHandler\",\n [12]: \"ref function\",\n [13]: \"async component loader\",\n [14]: \"scheduler flush. This is likely a Vue internals bug. Please open an issue at https://github.com/vuejs/core .\"\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n try {\n return args ? fn(...args) : fn();\n } catch (err) {\n handleError(err, instance, type);\n }\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch((err) => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n if (instance) {\n let cur = instance.parent;\n const exposedInstance = instance.proxy;\n const errorInfo = !!(process.env.NODE_ENV !== \"production\") ? ErrorTypeStrings[type] || type : `https://vuejs.org/error-reference/#runtime-${type}`;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n const appErrorHandler = instance.appContext.config.errorHandler;\n if (appErrorHandler) {\n callWithErrorHandling(\n appErrorHandler,\n null,\n 10,\n [err, exposedInstance, errorInfo]\n );\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev);\n}\nfunction logError(err, type, contextVNode, throwInDev = true) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const info = ErrorTypeStrings[type] || type;\n if (contextVNode) {\n pushWarningContext(contextVNode);\n }\n warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext();\n }\n if (throwInDev) {\n console.error(err);\n } else {\n console.error(err);\n }\n } else {\n console.error(err);\n }\n}\n\nlet isFlushing = false;\nlet isFlushPending = false;\nconst queue = [];\nlet flushIndex = 0;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick$1(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\nfunction findInsertionIndex(id) {\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = start + end >>> 1;\n const middleJob = queue[middle];\n const middleJobId = getId(middleJob);\n if (middleJobId < id || middleJobId === id && middleJob.pre) {\n start = middle + 1;\n } else {\n end = middle;\n }\n }\n return start;\n}\nfunction queueJob(job) {\n if (!queue.length || !queue.includes(\n job,\n isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex\n )) {\n if (job.id == null) {\n queue.push(job);\n } else {\n queue.splice(findInsertionIndex(job.id), 0, job);\n }\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!isFlushing && !isFlushPending) {\n isFlushPending = true;\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction hasQueueJob(job) {\n return queue.indexOf(job) > -1;\n}\nfunction invalidateJob(job) {\n const i = queue.indexOf(job);\n if (i > flushIndex) {\n queue.splice(i, 1);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (!activePostFlushCbs || !activePostFlushCbs.includes(\n cb,\n cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex\n )) {\n pendingPostFlushCbs.push(cb);\n }\n } else {\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(instance, seen, i = isFlushing ? flushIndex + 1 : 0) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.pre) {\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n cb();\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)].sort(\n (a, b) => getId(a) - getId(b)\n );\n pendingPostFlushCbs.length = 0;\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) {\n continue;\n }\n activePostFlushCbs[postFlushIndex]();\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? Infinity : job.id;\nconst comparator = (a, b) => {\n const diff = getId(a) - getId(b);\n if (diff === 0) {\n if (a.pre && !b.pre)\n return -1;\n if (b.pre && !a.pre)\n return 1;\n }\n return diff;\n};\nfunction flushJobs(seen) {\n isFlushPending = false;\n isFlushing = true;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n queue.sort(comparator);\n const check = !!(process.env.NODE_ENV !== \"production\") ? (job) => checkRecursiveUpdates(seen, job) : NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && job.active !== false) {\n if (!!(process.env.NODE_ENV !== \"production\") && check(job)) {\n continue;\n }\n callWithErrorHandling(job, null, 14);\n }\n }\n } finally {\n flushIndex = 0;\n queue.length = 0;\n flushPostFlushCbs(seen);\n isFlushing = false;\n currentFlushPromise = null;\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n if (!seen.has(fn)) {\n seen.set(fn, 1);\n } else {\n const count = seen.get(fn);\n if (count > RECURSION_LIMIT) {\n const instance = fn.ownerInstance;\n const componentName = instance && getComponentName(instance.type);\n handleError(\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.`,\n null,\n 10\n );\n return true;\n } else {\n seen.set(fn, count + 1);\n }\n }\n}\n\nlet devtools;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit$1(event, ...args) {\n if (devtools) {\n devtools.emit(event, ...args);\n } else if (!devtoolsNotInstalled) {\n buffer.push({ event, args });\n }\n}\nfunction setDevtoolsHook(hook, target) {\n var _a, _b;\n devtools = hook;\n if (devtools) {\n devtools.enabled = true;\n buffer.forEach(({ event, args }) => devtools.emit(event, ...args));\n buffer = [];\n } else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== \"undefined\" && // some envs mock window but not fully\n window.HTMLElement && // also exclude jsdom\n !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes(\"jsdom\"))\n ) {\n const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];\n replay.push((newHook) => {\n setDevtoolsHook(newHook, target);\n });\n setTimeout(() => {\n if (!devtools) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n devtoolsNotInstalled = true;\n buffer = [];\n }\n }, 3e3);\n } else {\n devtoolsNotInstalled = true;\n buffer = [];\n }\n}\nfunction devtoolsInitApp(app, version) {\n emit$1(\"app:init\" /* APP_INIT */, app, version, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nconst devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:added\" /* COMPONENT_ADDED */\n);\nconst devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:removed\" /* COMPONENT_REMOVED */\n);\nconst devtoolsComponentRemoved = (component) => {\n if (devtools && typeof devtools.cleanupBuffer === \"function\" && // remove the component if it wasn't buffered\n !devtools.cleanupBuffer(component)) {\n _devtoolsComponentRemoved(component);\n }\n};\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit$1(\n hook,\n component.appContext.app,\n component.uid,\n // fixed by xxxxxx\n // 为 0 是 App,无 parent 是 Page 指向 App\n component.uid === 0 ? void 0 : component.parent ? component.parent.uid : 0,\n component\n );\n };\n}\nconst devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(\n \"perf:start\" /* PERFORMANCE_START */\n);\nconst devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(\n \"perf:end\" /* PERFORMANCE_END */\n);\nfunction createDevtoolsPerformanceHook(hook) {\n return (component, type, time) => {\n emit$1(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit$1(\n \"component:emit\" /* COMPONENT_EMIT */,\n component.appContext.app,\n component,\n event,\n params\n );\n}\n\nfunction emit(instance, event, ...rawArgs) {\n if (instance.isUnmounted)\n return;\n const props = instance.vnode.props || EMPTY_OBJ;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const {\n emitsOptions,\n propsOptions: [propsOptions]\n } = instance;\n if (emitsOptions) {\n if (!(event in emitsOptions) && true) {\n if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {\n warn$1(\n `Component emitted event \"${event}\" but it is neither declared in the emits option nor as an \"${toHandlerKey(event)}\" prop.`\n );\n }\n } else {\n const validator = emitsOptions[event];\n if (isFunction(validator)) {\n const isValid = validator(...rawArgs);\n if (!isValid) {\n warn$1(\n `Invalid event arguments: event validation failed for event \"${event}\".`\n );\n }\n }\n }\n }\n }\n let args = rawArgs;\n const isModelListener = event.startsWith(\"update:\");\n const modelArg = isModelListener && event.slice(7);\n if (modelArg && modelArg in props) {\n const modifiersKey = `${modelArg === \"modelValue\" ? \"model\" : modelArg}Modifiers`;\n const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\n if (trim) {\n args = rawArgs.map((a) => isString(a) ? a.trim() : a);\n }\n if (number) {\n args = rawArgs.map(looseToNumber);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentEmit(instance, event, args);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\n warn$1(\n `Event \"${lowerCaseEvent}\" is emitted in component ${formatComponentName(\n instance,\n instance.type\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(\n event\n )}\" instead of \"${event}\".`\n );\n }\n }\n let handlerName;\n let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249)\n props[handlerName = toHandlerKey(camelize(event))];\n if (!handler && isModelListener) {\n handler = props[handlerName = toHandlerKey(hyphenate(event))];\n }\n if (handler) {\n callWithAsyncErrorHandling(\n handler,\n instance,\n 6,\n args\n );\n }\n const onceHandler = props[handlerName + `Once`];\n if (onceHandler) {\n if (!instance.emitted) {\n instance.emitted = {};\n } else if (instance.emitted[handlerName]) {\n return;\n }\n instance.emitted[handlerName] = true;\n callWithAsyncErrorHandling(\n onceHandler,\n instance,\n 6,\n args\n );\n }\n}\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\n const cache = appContext.emitsCache;\n const cached = cache.get(comp);\n if (cached !== void 0) {\n return cached;\n }\n const raw = comp.emits;\n let normalized = {};\n let hasExtends = false;\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n const extendEmits = (raw2) => {\n const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true);\n if (normalizedFromExtend) {\n hasExtends = true;\n extend(normalized, normalizedFromExtend);\n }\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendEmits);\n }\n if (comp.extends) {\n extendEmits(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendEmits);\n }\n }\n if (!raw && !hasExtends) {\n if (isObject(comp)) {\n cache.set(comp, null);\n }\n return null;\n }\n if (isArray(raw)) {\n raw.forEach((key) => normalized[key] = null);\n } else {\n extend(normalized, raw);\n }\n if (isObject(comp)) {\n cache.set(comp, normalized);\n }\n return normalized;\n}\nfunction isEmitListener(options, key) {\n if (!options || !isOn(key)) {\n return false;\n }\n key = key.slice(2).replace(/Once$/, \"\");\n return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key);\n}\n\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = instance && instance.type.__scopeId || null;\n return prev;\n}\nconst withScopeId = (_id) => withCtx;\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\n if (!ctx)\n return fn;\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n let res;\n try {\n res = fn(...args);\n } finally {\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(ctx);\n }\n return res;\n };\n renderFnWithContext._n = true;\n renderFnWithContext._c = true;\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\n\nfunction markAttrsAccessed() {\n}\n\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = Symbol.for(\"v-ndc\");\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance = currentRenderingInstance || currentInstance;\n if (instance) {\n const Component = instance.type;\n if (type === COMPONENTS) {\n const selfName = getComponentName(\n Component,\n false\n );\n if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {\n return Component;\n }\n }\n const res = (\n // local registration\n // check instance[type] first which is resolved for options API\n resolve(instance[type] || Component[type], name) || // global registration\n resolve(instance.appContext[type], name)\n );\n if (!res && maybeSelfReference) {\n return Component;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && warnMissing && !res) {\n const extra = type === COMPONENTS ? `\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;\n warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n }\n return res;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`\n );\n }\n}\nfunction resolve(registry, name) {\n return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);\n}\n\nconst ssrContextKey = Symbol.for(\"v-scx\");\nconst useSSRContext = () => {\n {\n const ctx = inject(ssrContextKey);\n if (!ctx) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.`\n );\n }\n return ctx;\n }\n};\n\nfunction watchEffect(effect, options) {\n return doWatch(effect, null, options);\n}\nfunction watchPostEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"post\" }) : { flush: \"post\" }\n );\n}\nfunction watchSyncEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"sync\" }) : { flush: \"sync\" }\n );\n}\nconst INITIAL_WATCHER_VALUE = {};\nfunction watch(source, cb, options) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(cb)) {\n warn$1(\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.`\n );\n }\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, {\n immediate,\n deep,\n flush,\n once,\n onTrack,\n onTrigger\n} = EMPTY_OBJ) {\n if (cb && once) {\n const _cb = cb;\n cb = (...args) => {\n _cb(...args);\n unwatch();\n };\n }\n if (!!(process.env.NODE_ENV !== \"production\") && deep !== void 0 && typeof deep === \"number\") {\n warn$1(\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.`\n );\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !cb) {\n if (immediate !== void 0) {\n warn$1(\n `watch() \"immediate\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (deep !== void 0) {\n warn$1(\n `watch() \"deep\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (once !== void 0) {\n warn$1(\n `watch() \"once\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n }\n const warnInvalidSource = (s) => {\n warn$1(\n `Invalid watch source: `,\n s,\n `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`\n );\n };\n const instance = currentInstance;\n const reactiveGetter = (source2) => deep === true ? source2 : (\n // for deep: false, only traverse root-level properties\n traverse(source2, deep === false ? 1 : void 0)\n );\n let getter;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow(source);\n } else if (isReactive(source)) {\n getter = () => reactiveGetter(source);\n forceTrigger = true;\n } else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some((s) => isReactive(s) || isShallow(s));\n getter = () => source.map((s) => {\n if (isRef(s)) {\n return s.value;\n } else if (isReactive(s)) {\n return reactiveGetter(s);\n } else if (isFunction(s)) {\n return callWithErrorHandling(s, instance, 2);\n } else {\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(s);\n }\n });\n } else if (isFunction(source)) {\n if (cb) {\n getter = () => callWithErrorHandling(source, instance, 2);\n } else {\n getter = () => {\n if (cleanup) {\n cleanup();\n }\n return callWithAsyncErrorHandling(\n source,\n instance,\n 3,\n [onCleanup]\n );\n };\n }\n } else {\n getter = NOOP;\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(source);\n }\n if (cb && deep) {\n const baseGetter = getter;\n getter = () => traverse(baseGetter());\n }\n let cleanup;\n let onCleanup = (fn) => {\n cleanup = effect.onStop = () => {\n callWithErrorHandling(fn, instance, 4);\n cleanup = effect.onStop = void 0;\n };\n };\n let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;\n const job = () => {\n if (!effect.active || !effect.dirty) {\n return;\n }\n if (cb) {\n const newValue = effect.run();\n if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue)) || false) {\n if (cleanup) {\n cleanup();\n }\n callWithAsyncErrorHandling(cb, instance, 3, [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,\n onCleanup\n ]);\n oldValue = newValue;\n }\n } else {\n effect.run();\n }\n };\n job.allowRecurse = !!cb;\n let scheduler;\n if (flush === \"sync\") {\n scheduler = job;\n } else if (flush === \"post\") {\n scheduler = () => queuePostRenderEffect$1(job, instance && instance.suspense);\n } else {\n job.pre = true;\n if (instance)\n job.id = instance.uid;\n scheduler = () => queueJob(job);\n }\n const effect = new ReactiveEffect(getter, NOOP, scheduler);\n const scope = getCurrentScope();\n const unwatch = () => {\n effect.stop();\n if (scope) {\n remove(scope.effects, effect);\n }\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = onTrack;\n effect.onTrigger = onTrigger;\n }\n if (cb) {\n if (immediate) {\n job();\n } else {\n oldValue = effect.run();\n }\n } else if (flush === \"post\") {\n queuePostRenderEffect$1(\n effect.run.bind(effect),\n instance && instance.suspense\n );\n } else {\n effect.run();\n }\n return unwatch;\n}\nfunction instanceWatch(source, value, options) {\n const publicThis = this.proxy;\n const getter = isString(source) ? source.includes(\".\") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);\n let cb;\n if (isFunction(value)) {\n cb = value;\n } else {\n cb = value.handler;\n options = value;\n }\n const reset = setCurrentInstance(this);\n const res = doWatch(getter, cb.bind(publicThis), options);\n reset();\n return res;\n}\nfunction createPathGetter(ctx, path) {\n const segments = path.split(\".\");\n return () => {\n let cur = ctx;\n for (let i = 0; i < segments.length && cur; i++) {\n cur = cur[segments[i]];\n }\n return cur;\n };\n}\nfunction traverse(value, depth, currentDepth = 0, seen) {\n if (!isObject(value) || value[\"__v_skip\"]) {\n return value;\n }\n if (depth && depth > 0) {\n if (currentDepth >= depth) {\n return value;\n }\n currentDepth++;\n }\n seen = seen || /* @__PURE__ */ new Set();\n if (seen.has(value)) {\n return value;\n }\n seen.add(value);\n if (isRef(value)) {\n traverse(value.value, depth, currentDepth, seen);\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], depth, currentDepth, seen);\n }\n } else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, depth, currentDepth, seen);\n });\n } else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], depth, currentDepth, seen);\n }\n }\n return value;\n}\n\nfunction validateDirectiveName(name) {\n if (isBuiltInDirective(name)) {\n warn$1(\"Do not use built-in directive ids as custom directive id: \" + name);\n }\n}\nfunction withDirectives(vnode, directives) {\n if (currentRenderingInstance === null) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`withDirectives can only be used inside render functions.`);\n return vnode;\n }\n const instance = getExposeProxy(currentRenderingInstance) || currentRenderingInstance.proxy;\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n if (dir) {\n if (isFunction(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n traverse(value);\n }\n bindings.push({\n dir,\n instance,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n }\n return vnode;\n}\n\nfunction createAppContext() {\n return {\n app: null,\n config: {\n isNativeTag: NO,\n performance: false,\n globalProperties: {},\n optionMergeStrategies: {},\n errorHandler: void 0,\n warnHandler: void 0,\n compilerOptions: {}\n },\n mixins: [],\n components: {},\n directives: {},\n provides: /* @__PURE__ */ Object.create(null),\n optionsCache: /* @__PURE__ */ new WeakMap(),\n propsCache: /* @__PURE__ */ new WeakMap(),\n emitsCache: /* @__PURE__ */ new WeakMap()\n };\n}\nlet uid$1 = 0;\nfunction createAppAPI(render, hydrate) {\n return function createApp(rootComponent, rootProps = null) {\n if (!isFunction(rootComponent)) {\n rootComponent = extend({}, rootComponent);\n }\n if (rootProps != null && !isObject(rootProps)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`root props passed to app.mount() must be an object.`);\n rootProps = null;\n }\n const context = createAppContext();\n const installedPlugins = /* @__PURE__ */ new WeakSet();\n const app = context.app = {\n _uid: uid$1++,\n _component: rootComponent,\n _props: rootProps,\n _container: null,\n _context: context,\n _instance: null,\n version,\n get config() {\n return context.config;\n },\n set config(v) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `app.config cannot be replaced. Modify individual options instead.`\n );\n }\n },\n use(plugin, ...options) {\n if (installedPlugins.has(plugin)) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`Plugin has already been applied to target app.`);\n } else if (plugin && isFunction(plugin.install)) {\n installedPlugins.add(plugin);\n plugin.install(app, ...options);\n } else if (isFunction(plugin)) {\n installedPlugins.add(plugin);\n plugin(app, ...options);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `A plugin must either be a function or an object with an \"install\" function.`\n );\n }\n return app;\n },\n mixin(mixin) {\n if (__VUE_OPTIONS_API__) {\n if (!context.mixins.includes(mixin)) {\n context.mixins.push(mixin);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n \"Mixin has already been applied to target app\" + (mixin.name ? `: ${mixin.name}` : \"\")\n );\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Mixins are only available in builds supporting Options API\");\n }\n return app;\n },\n component(name, component) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateComponentName(name, context.config);\n }\n if (!component) {\n return context.components[name];\n }\n if (!!(process.env.NODE_ENV !== \"production\") && context.components[name]) {\n warn$1(`Component \"${name}\" has already been registered in target app.`);\n }\n context.components[name] = component;\n return app;\n },\n directive(name, directive) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateDirectiveName(name);\n }\n if (!directive) {\n return context.directives[name];\n }\n if (!!(process.env.NODE_ENV !== \"production\") && context.directives[name]) {\n warn$1(`Directive \"${name}\" has already been registered in target app.`);\n }\n context.directives[name] = directive;\n return app;\n },\n // fixed by xxxxxx\n mount() {\n },\n // fixed by xxxxxx\n unmount() {\n },\n provide(key, value) {\n if (!!(process.env.NODE_ENV !== \"production\") && key in context.provides) {\n warn$1(\n `App already provides property with key \"${String(key)}\". It will be overwritten with the new value.`\n );\n }\n context.provides[key] = value;\n return app;\n },\n runWithContext(fn) {\n const lastApp = currentApp;\n currentApp = app;\n try {\n return fn();\n } finally {\n currentApp = lastApp;\n }\n }\n };\n return app;\n };\n}\nlet currentApp = null;\n\nfunction provide(key, value) {\n if (!currentInstance) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`provide() can only be used inside setup().`);\n }\n } else {\n let provides = currentInstance.provides;\n const parentProvides = currentInstance.parent && currentInstance.parent.provides;\n if (parentProvides === provides) {\n provides = currentInstance.provides = Object.create(parentProvides);\n }\n provides[key] = value;\n if (currentInstance.type.mpType === \"app\") {\n currentInstance.appContext.app.provide(key, value);\n }\n }\n}\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\n const instance = currentInstance || currentRenderingInstance;\n if (instance || currentApp) {\n const provides = instance ? instance.parent == null ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides : currentApp._context.provides;\n if (provides && key in provides) {\n return provides[key];\n } else if (arguments.length > 1) {\n return treatDefaultAsFactory && isFunction(defaultValue) ? defaultValue.call(instance && instance.proxy) : defaultValue;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`injection \"${String(key)}\" not found.`);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`inject() can only be used inside setup() or functional components.`);\n }\n}\nfunction hasInjectionContext() {\n return !!(currentInstance || currentRenderingInstance || currentApp);\n}\n\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineComponent(options, extraOptions) {\n return isFunction(options) ? (\n // #8326: extend call and options.name access are considered side-effects\n // by Rollup, so we have to wrap it in a pure-annotated IIFE.\n /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()\n ) : options;\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\nfunction onActivated(hook, target) {\n registerKeepAliveHook(hook, \"a\", target);\n}\nfunction onDeactivated(hook, target) {\n registerKeepAliveHook(hook, \"da\", target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n const wrappedHook = hook.__wdc || (hook.__wdc = () => {\n let current = target;\n while (current) {\n if (current.isDeactivated) {\n return;\n }\n current = current.parent;\n }\n return hook();\n });\n injectHook(type, wrappedHook, target);\n if (target) {\n let current = target.parent;\n while (current && current.parent) {\n if (isKeepAlive(current.parent.vnode)) {\n injectToKeepAliveRoot(wrappedHook, type, target, current);\n }\n current = current.parent;\n }\n }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n const injected = injectHook(\n type,\n hook,\n keepAliveRoot,\n true\n /* prepend */\n );\n onUnmounted(() => {\n remove(keepAliveRoot[type], injected);\n }, target);\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n if (isRootHook(type)) {\n target = target.root;\n }\n const hooks = target[type] || (target[type] = []);\n const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\n if (target.isUnmounted) {\n return;\n }\n pauseTracking();\n const reset = setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n reset();\n resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n } else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n const apiName = toHandlerKey(\n (ErrorTypeStrings[type] || type.replace(/^on/, \"\")).replace(/ hook$/, \"\")\n );\n warn$1(\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().` + (``)\n );\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => (\n // post-create lifecycle registrations are noops during SSR (except for serverPrefetch)\n (!isInSSRComponentSetup || lifecycle === \"sp\") && injectHook(lifecycle, (...args) => hook(...args), target)\n);\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\"bu\");\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\"bum\");\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\"sp\");\nconst onRenderTriggered = createHook(\n \"rtg\"\n);\nconst onRenderTracked = createHook(\n \"rtc\"\n);\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\", hook, target);\n}\n\nfunction toHandlers(obj, preserveCaseIfNecessary) {\n const ret = {};\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(obj)) {\n warn$1(`v-on with no argument expects an object value.`);\n return ret;\n }\n for (const key in obj) {\n ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key];\n }\n return ret;\n}\n\nconst getPublicInstance = (i) => {\n if (!i)\n return null;\n if (isStatefulComponent(i))\n return getExposeProxy(i) || i.proxy;\n return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = (\n // Move PURE marker to new line to workaround compiler discarding it\n // due to type annotation\n /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {\n $: (i) => i,\n // fixed by xxxxxx vue-i18n 在 dev 模式,访问了 $el,故模拟一个假的\n // $el: i => i.vnode.el,\n $el: (i) => i.__$el || (i.__$el = {}),\n $data: (i) => i.data,\n $props: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.props) : i.props,\n $attrs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.attrs) : i.attrs,\n $slots: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.slots) : i.slots,\n $refs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.refs) : i.refs,\n $parent: (i) => getPublicInstance(i.parent),\n $root: (i) => getPublicInstance(i.root),\n $emit: (i) => i.emit,\n $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type,\n $forceUpdate: (i) => i.f || (i.f = () => {\n i.effect.dirty = true;\n queueJob(i.update);\n }),\n // $nextTick: i => i.n || (i.n = nextTick.bind(i.proxy!)),// fixed by xxxxxx\n $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP\n })\n);\nconst isReservedPrefix = (key) => key === \"_\" || key === \"$\";\nconst hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\nconst PublicInstanceProxyHandlers = {\n get({ _: instance }, key) {\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n if (!!(process.env.NODE_ENV !== \"production\") && key === \"__isVue\") {\n return true;\n }\n let normalizedProps;\n if (key[0] !== \"$\") {\n const n = accessCache[key];\n if (n !== void 0) {\n switch (n) {\n case 1 /* SETUP */:\n return setupState[key];\n case 2 /* DATA */:\n return data[key];\n case 4 /* CONTEXT */:\n return ctx[key];\n case 3 /* PROPS */:\n return props[key];\n }\n } else if (hasSetupBinding(setupState, key)) {\n accessCache[key] = 1 /* SETUP */;\n return setupState[key];\n } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2 /* DATA */;\n return data[key];\n } else if (\n // only cache other properties when instance has declared (thus stable)\n // props\n (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key)\n ) {\n accessCache[key] = 3 /* PROPS */;\n return props[key];\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) {\n accessCache[key] = 0 /* OTHER */;\n }\n }\n const publicGetter = publicPropertiesMap[key];\n let cssModule, globalProperties;\n if (publicGetter) {\n if (key === \"$attrs\") {\n track(instance, \"get\", key);\n !!(process.env.NODE_ENV !== \"production\") && markAttrsAccessed();\n } else if (!!(process.env.NODE_ENV !== \"production\") && key === \"$slots\") {\n track(instance, \"get\", key);\n }\n return publicGetter(instance);\n } else if (\n // css module (injected by vue-loader)\n (cssModule = type.__cssModules) && (cssModule = cssModule[key])\n ) {\n return cssModule;\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (\n // global properties\n globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)\n ) {\n {\n return globalProperties[key];\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading\n // to infinite warning loop\n key.indexOf(\"__v\") !== 0)) {\n if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {\n warn$1(\n `Property ${JSON.stringify(\n key\n )} must be accessed via $data because it starts with a reserved character (\"$\" or \"_\") and is not proxied on the render context.`\n );\n } else if (instance === currentRenderingInstance) {\n warn$1(\n `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`\n );\n }\n }\n },\n set({ _: instance }, key, value) {\n const { data, setupState, ctx } = instance;\n if (hasSetupBinding(setupState, key)) {\n setupState[key] = value;\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup && hasOwn(setupState, key)) {\n warn$1(`Cannot mutate \r\n\r\n","import MiniProgramPage from 'D:/officialAccount/pages/addjigou/card.vue'\nwx.createPage(MiniProgramPage)"],"names":["ref","reactive","uni","base_url"],"mappings":";;;;;;;;;;;;;;;AA0EC,UAAM,OAAOA,kBAAI,KAAK;AACtB,UAAM,UAAUA,kBAAI,EAAE;AAEtB,UAAM,YAAY,CAAC,QAAQ,QAAQ,QAAQ,IAAI;AAC/C,UAAM,YAAYC,cAAAA,SAAS,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;AAG3D,UAAM,gBAAgBD,cAAG,IAAC,EAAE;AAG5B,aAAS,aAAa;AAErBE,oBAAAA,MAAI,YAAY;AAAA,QACf,OAAO;AAAA,QACP,YAAY,CAAC,QAAQ;AAAA,QACrB,SAAS,eAAa;AACrB,wBAAc,QAAQ,UAAU,cAAc,CAAC;AAE/C,sBAAY,cAAc,KAAK;AAAA,QAC/B;AAAA,QACD,MAAM,SAAO;AACZA,wBAAAA,MAAc,MAAA,SAAA,iCAAA,SAAS,GAAG;AAAA,QAC1B;AAAA,MACJ,CAAG;AAAA,IACD;AAED,UAAM,WAAWF,kBAAI,EAAE;AACNA,kBAAAA,IAAI,EAAE;AAGvB,aAAS,YAAY,UAAU;AAC9BE,oBAAAA,MAAI,YAAa;AACjBA,oBAAAA,MAAI,WAAW;AAAA,QACd,KAAK,GAAGC,cAAQ,QAAA;AAAA;AAAA,QAChB;AAAA,QACA,MAAM;AAAA;AAAA,QACN,QAAQ;AAAA,UACP,kBAAkBD,cAAG,MAAC,eAAe,OAAO,KAAK;AAAA,QACjD;AAAA,QACD,UAAU,CAAE;AAAA,QACZ,SAAS,eAAa;AACrB,cAAI,CAAC,KAAK,MAAM,UAAU,IAAI,EAAE,SAAS;AACxCA,0BAAAA,MAAI,UAAU;AAAA,cACb,OAAO;AAAA,cACP,MAAM;AAAA,YACZ,CAAM;AACDA,0BAAAA,MAAI,YAAa;AACjB;AAAA,UACA;AACDA,wBAAA,MAAA,MAAA,OAAA,kCAAY,QAAQ,KAAK,MAAM,KAAK,MAAM,UAAU,IAAI,EAAE,OAAO,IAAI,EAAE,IAAI;AAG3E,cAAI,SAAS,KAAK,MAAM,KAAK,MAAM,UAAU,IAAI,EAAE,OAAO,IAAI,EAAE;AAChE,oBAAU,CAAC,IAAI,OAAO;AACtB,oBAAU,CAAC,IAAI,OAAO;AACtB,oBAAU,CAAC,IAAI,OAAO;AACtB,oBAAU,CAAC,IAAI,OAAO;AACtB,mBAAS,QAAQ;AACjBA,wBAAAA,MAAI,YAAa;AAAA,QAkBjB;AAAA,QACD,MAAM,SAAO;AACZA,wBAAAA,MAAI,UAAU;AAAA,YACb,OAAO;AAAA,YACP,MAAM;AAAA,UACX,CAAK;AACDA,wBAAAA,MAAI,YAAa;AAAA,QACjB;AAAA,MACJ,CAAG;AAAA,IACD;AAsBD,UAAM,WAAW,CAAC,QAAQ;AACzB,UAAI,KAAK;AACR,gBAAQ,QAAQ;AAChB,aAAK,QAAQ;AAAA,MACb;AAAA,IACD;AACD,UAAM,OAAO,MAAM;AAClBA,oBAAAA,MAAI,WAAW;AAAA,QACd,KAAK;AAAA,MACR,CAAG;AAAA,IACD;AACD,UAAM,SAAS,MAAM;AACpBA,oBAAAA,MAAI,aAAc;AAAA,IAClB;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjMF,GAAG,WAAW,eAAe;"}
\ No newline at end of file
+{"version":3,"file":"card.js","sources":["pages/addjigou/card.vue","../Hbuilder/HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvYWRkamlnb3UvY2FyZC52dWU"],"sourcesContent":["\r\n\t\r\n\t\t \r\n\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t营业执照上传 \r\n\t\t\t\t \r\n\t\t\t \r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t营业执照 \r\n\t\t\t\t\t请上传营业执照 \r\n\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\t \r\n\t\t\t\t\t \r\n\t\t\t\t \r\n\r\n\t\t\t \r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t \r\n\t\t\t\t\t\r\n\t\t\t\t\t\t确认企业信息\r\n\t\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{{item}} \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t{{textArray[index] ? textArray[index] : \"自动获取\" }} \r\n\t\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t \r\n\t\t \r\n\t\t\r\n\t\t\t注意事项: \r\n\t\t\t\r\n\t\t\t\t1. 运用企业、个体工商户、政府、事业单位、学校、组织等,账号归属企业。\r\n\t\t\t \r\n\t\t\t\r\n\t\t\t\t2.一个企业信息主体默认可认证1个账号。\r\n\t\t\t \r\n\t\t\t\r\n\t\t\t\t3.所有上传信息均会被妥善保管,不会用于其他商业用途或传输给其他第三方。\r\n\t\t\t \r\n\t\t \r\n\t\t\r\n\t\t\t\r\n\t\t\t\t上一步\r\n\t\t\t \r\n\t\t\t\r\n\t\t\t\t下一步\r\n\t\t\t \r\n\t\t \r\n\t
\r\n \r\n\r\n\r\n\r\n","import MiniProgramPage from 'D:/officialAccount/pages/addjigou/card.vue'\nwx.createPage(MiniProgramPage)"],"names":["ref","reactive","uni","base_url","changemessage"],"mappings":"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"}
\ No newline at end of file
diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/addjigou/name.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/addjigou/name.js.map
index 62f9498..412262b 100644
--- a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/addjigou/name.js.map
+++ b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/addjigou/name.js.map
@@ -1 +1 @@
-{"version":3,"file":"name.js","sources":["pages/addjigou/name.vue","../Hbuilder/HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvYWRkamlnb3UvbmFtZS52dWU"],"sourcesContent":["\r\n\t\r\n\t\t \r\n\t\t\r\n\t\t\t\r\n\t\t\t\t \r\n\t\t\t\t返回 \r\n\t\t\t \r\n\t\t\t\r\n\t\t\t\t{{ states[statesTarget] }}\r\n\t\t\t \r\n\t\t \r\n\t\t\r\n\t\t\t\r\n\t\t\t\t身份证上传 \r\n\t\t\t\t \r\n\t\t\t \r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t人像面 \r\n\t\t\t\t\t请上传身份证人像面 \r\n\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\t \r\n\t\t\t\t\t \r\n\t\t\t\t \r\n\r\n\t\t\t \r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t国徽面 \r\n\t\t\t\t\t请上传身份证国徽面 \r\n\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\t \r\n\t\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t \r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t \r\n\t\t\t\t\t\r\n\t\t\t\t\t\t确认身份证信息\r\n\t\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{{item}} \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t{{textArray[index] ? textArray[index] : \"自动获取\" }} \r\n\t\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t \r\n\t\t \r\n\t\t\r\n\t\t\t注意事项: \r\n\t\t\t\r\n\t\t\t\t同一个身份证号只能认证一个账号国徽而与正面信息应为同一身份证的信息目在有效期内,所有上传照片需清晰且未遮挡,请勿进行美化和修改,所有上传信息均会被妥善保管,不会用于其他商业用途或传输给第三方。 \r\n\t\t \r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t下一步\r\n\t\t\t \r\n\t\t \r\n\t\t\r\n\t
\r\n \r\n\r\n\r\n\r\n","import MiniProgramPage from 'D:/officialAccount/pages/addjigou/name.vue'\nwx.createPage(MiniProgramPage)"],"names":["ref","reactive","uni","base_url","onLoad"],"mappings":";;;;;;;;;;;;;;;AAqFC,UAAM,OAAOA,kBAAI,KAAK;AACtB,UAAM,UAAUA,kBAAI,EAAE;AAEtB,UAAM,YAAY,CAAC,MAAM,MAAM,SAAS,MAAM,QAAQ,MAAM,QAAQ,MAAM;AAC1E,UAAM,YAAYC,cAAAA,SAAS,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;AAC3D,UAAM,SAAS,CAAC,OAAM,SAAQ,MAAM;AAEpC,UAAM,eAAeD,kBAAI,CAAC;AAC1B,UAAM,SAAS,MAAM;AACpB,UAAG,aAAa,SAAO,GAAE;AACxB,qBAAa,QAAM;AAAA,MACtB,OAAO;AACJ,qBAAa;AAAA,MACb;AAAA,IACD;AAGD,UAAM,gBAAgBA,cAAG,IAAC,EAAE;AAG5B,aAAS,aAAa;AAarBE,oBAAAA,MAAI,YAAY;AAAA,QACf,OAAO;AAAA,QACP,YAAY,CAAC,QAAQ;AAAA,QACrB,SAAS,eAAa;AACrB,wBAAc,QAAQ,UAAU,cAAc,CAAC;AAE/C,sBAAY,cAAc,KAAK;AAAA,QAC/B;AAAA,QACD,MAAM,SAAO;AACZA,wBAAAA,MAAc,MAAA,SAAA,kCAAA,SAAS,GAAG;AAAA,QAC1B;AAAA,MACJ,CAAG;AAAA,IACD;AAED,UAAM,WAAWF,kBAAI,EAAE;AACvB,UAAM,WAAWA,kBAAI,EAAE;AAGvB,aAAS,YAAY,UAAU;AAC9BE,oBAAAA,MAAI,YAAa;AACjBA,oBAAAA,MAAI,WAAW;AAAA,QACd,KAAK,GAAGC,cAAQ,QAAA;AAAA;AAAA,QAChB;AAAA,QACA,MAAM;AAAA;AAAA,QACN,QAAQ;AAAA,UACP,kBAAkBD,cAAG,MAAC,eAAe,OAAO,KAAK;AAAA,QACjD;AAAA,QACD,UAAU,CAAE;AAAA,QACZ,SAAS,eAAa;AACrBA,6EAAY,SAAQA,oBAAI,eAAe,OAAO,CAAC;AAC/C,cAAI,CAAC,KAAK,MAAM,UAAU,IAAI,EAAE,SAAS;AACxCA,0BAAAA,MAAI,UAAU;AAAA,cACb,OAAO;AAAA,cACP,MAAM;AAAA,YACZ,CAAM;AACDA,0BAAAA,MAAI,YAAa;AACjB;AAAA,UACA;AACD,oBAAU,QAAQ;AAClB,cAAI,KAAK,MAAM,KAAK,MAAM,UAAU,IAAI,EAAE,OAAO,IAAI,EAAE,KAAK,MAAM;AACjE,gBAAI,SAAS,KAAK,MAAM,KAAK,MAAM,UAAU,IAAI,EAAE,OAAO,IAAI,EAAE,KAAK,KAAK;AAC1E,sBAAU,CAAC,IAAI,OAAO;AACtB,sBAAU,CAAC,IAAI,OAAO;AACtB,sBAAU,CAAC,IAAI,OAAO;AACtB,sBAAU,CAAC,IAAI,OAAO;AACtB,sBAAU,CAAC,IAAI,OAAO;AACtB,sBAAU,CAAC,IAAI,OAAO;AACtBA,0BAAAA,MAAI,UAAU;AAAA,cACb,OAAO;AAAA,YACb,CAAM;AACD,qBAAS,QAAQ;AACjBA,0BAAAA,MAAI,YAAa;AAAA,UACtB,OAAW;AACN,gBAAI,SAAS,KAAK,MAAM,KAAK,MAAM,UAAU,IAAI,EAAE,OAAO,IAAI,EAAE,KAAK,KAAK;AAC1E,sBAAU,CAAC,IAAI,OAAO;AACtB,sBAAU,CAAC,IAAI,OAAO;AACtBA,0BAAAA,MAAI,UAAU;AAAA,cACb,OAAO;AAAA,YACb,CAAM;AACD,qBAAS,QAAQ;AACjBA,0BAAAA,MAAI,YAAa;AAAA,UACjB;AAAA,QACD;AAAA,QACD,MAAM,SAAO;AACZA,wBAAAA,MAAI,UAAU;AAAA,YACb,OAAO;AAAA,YACP,MAAM;AAAA,UACX,CAAK;AACDA,wBAAAA,MAAI,YAAa;AAAA,QACjB;AAAA,MACJ,CAAG;AAAA,IACD;AACD,UAAM,YAAY,CAAC,aAAa;AAC/BA,oBAAAA,MAAI,WAAW;AAAA,QACd,KAAK,GAAGC,cAAQ,QAAA;AAAA;AAAA,QAChB;AAAA,QACA,MAAM;AAAA;AAAA,QACN,QAAQ;AAAA,UACP,kBAAkBD,cAAG,MAAC,eAAe,OAAO,KAAK;AAAA,QACjD;AAAA,QACD,UAAU;AAAA,UACT,KAAK;AAAA,QACL;AAAA,QACD,SAAS,eAAa;AACrBA,wBAAAA,MAAA,MAAA,OAAA,kCAAY,SAAQ,SAAS;AAAA,QAC7B;AAAA,QACD,MAAM,SAAO;AACZA,wBAAAA,MAAI,UAAU;AAAA,YACb,OAAO;AAAA,YACP,MAAM;AAAA,UACX,CAAK;AACDA,wBAAAA,MAAI,YAAa;AAAA,QACjB;AAAA,MACJ,CAAG;AAAA,IACD;AACD,UAAM,WAAW,CAAC,QAAQ;AACzB,UAAI,KAAK;AACR,gBAAQ,QAAQ;AAChB,aAAK,QAAQ;AAAA,MACb;AAAA,IACD;AACD,UAAM,OAAO,MAAM;AAClBA,oBAAAA,MAAI,WAAW;AAAA,QACd,KAAK;AAAA,MACR,CAAG;AAAA,IACD;AAkDD,UAAM,SAAS,MAAM;AACpBA,oBAAAA,MAAI,aAAc;AAAA,IAClB;AACDE,kBAAAA,OAAO,MAAM;AAAA,IAId,CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvRF,GAAG,WAAW,eAAe;"}
\ No newline at end of file
+{"version":3,"file":"name.js","sources":["pages/addjigou/name.vue","../Hbuilder/HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvYWRkamlnb3UvbmFtZS52dWU"],"sourcesContent":["\r\n\t\r\n\t\t \r\n\t\t\r\n\t\t\t\r\n\t\t\t\t \r\n\t\t\t\t返回 \r\n\t\t\t \r\n\t\t\t\r\n\t\t \r\n\t\t\r\n\t\t\t\r\n\t\t\t\t身份证上传 \r\n\t\t\t\t \r\n\t\t\t \r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t人像面 \r\n\t\t\t\t\t请上传身份证人像面 \r\n\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\t \r\n\t\t\t\t\t \r\n\t\t\t\t \r\n\r\n\t\t\t \r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t国徽面 \r\n\t\t\t\t\t请上传身份证国徽面 \r\n\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\t \r\n\t\t\t\t\t \r\n\t\t\t\t \r\n\r\n\t\t\t \r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t \r\n\t\t\t\t\t\r\n\t\t\t\t\t\t确认身份证信息\r\n\t\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{{item}} \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t{{textArray[index] ? textArray[index] : \"自动获取\" }} \r\n\t\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t \r\n\t\t \r\n\t\t\r\n\t\t\t注意事项: \r\n\t\t\t\r\n\t\t\t\t同一个身份证号只能认证一个账号国徽而与正面信息应为同一身份证的信息目在有效期内,所有上传照片需清晰且未遮挡,请勿进行美化和修改,所有上传信息均会被妥善保管,不会用于其他商业用途或传输给第三方。 \r\n\t\t \r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t下一步\r\n\t\t\t \r\n\t\t \r\n\r\n\t
\r\n \r\n\r\n\r\n\r\n","import MiniProgramPage from 'D:/officialAccount/pages/addjigou/name.vue'\nwx.createPage(MiniProgramPage)"],"names":["ref","reactive","uni","base_url","changemessage","onLoad"],"mappings":"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"}
\ No newline at end of file
diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/addjigou/where.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/addjigou/where.js.map
index cbbb062..95e030b 100644
--- a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/addjigou/where.js.map
+++ b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/addjigou/where.js.map
@@ -1 +1 @@
-{"version":3,"file":"where.js","sources":["pages/addjigou/where.vue","../Hbuilder/HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvYWRkamlnb3Uvd2hlcmUudnVl"],"sourcesContent":["\r\n\t\r\n\t\t \r\n\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t机构位置 \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t请选择机构位置 \r\n\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t机构负责人 \r\n\t\t\t\t\t\t \r\n\t\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t机构负责人电话 \r\n\t\t\t\t\t\t \r\n\t\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t楼宇牌号 \r\n\t\t\t\t\t\t \r\n\t\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t房屋性质 \r\n\t\t\t\t\t\t \r\n\t\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t建筑面积 \r\n\t\t\t\t\t\t \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t平方米\r\n\t\t\t\t\t\t \r\n\t\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t \r\n\t\t \r\n\t\r\n\t\t\r\n\t\t\t上一步\r\n\t\t \r\n\t\t\r\n\t\t\t确认并提交\r\n\t\t \r\n\t \r\n\t
\r\n \r\n\r\n\r\n\r\n","import MiniProgramPage from 'D:/officialAccount/pages/addjigou/where.vue'\nwx.createPage(MiniProgramPage)"],"names":["ref","reactive","uni"],"mappings":";;;;;;;;;;;;;;AA0EC,UAAM,OAAOA,kBAAI,KAAK;AACtB,UAAM,UAAUA,kBAAI,EAAE;AAEtB,UAAM,OAAOC,cAAAA,SAAS;AAAA,MACrB,WAAU;AAAA,MACV,gBAAe;AAAA,MACf,mBAAkB;AAAA,MAClB,iBAAgB;AAAA,MAChB,iBAAgB;AAAA,IAElB,CAAE;AAEqBD,kBAAAA,IAAI,EAAE;AAEXA,kBAAAA,IAAI,EAAE;AACNA,kBAAAA,IAAI,EAAE;AAQvB,UAAM,OAAO,MAAM;AAAA,IAIlB;AAED,UAAM,SAAS,MAAM;AACpBE,oBAAAA,MAAI,aAAc;AAAA,IAClB;AACD,UAAM,YAAY,MAAM;AACvBA,oBAAAA,MAAI,WAAW;AAAA,QACd,KAAK;AAAA,MACR,CAAG;AAAA,IACD;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7GF,GAAG,WAAW,eAAe;"}
\ No newline at end of file
+{"version":3,"file":"where.js","sources":["pages/addjigou/where.vue","../Hbuilder/HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvYWRkamlnb3Uvd2hlcmUudnVl"],"sourcesContent":["\r\n\t\r\n\t\t \r\n\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t机构位置 \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{{ jigouweizhi ? jigouweizhi : `请选择机构位置` }}\r\n\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t \r\n\r\n\t\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t机构负责人 \r\n\t\t\t\t\t\t \r\n\t\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t机构负责人电话 \r\n\t\t\t\t\t\t \r\n\t\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t楼宇牌号 \r\n\t\t\t\t\t\t \r\n\t\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t房屋性质 \r\n\t\t\t\t\t\t \r\n\t\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t建筑面积 \r\n\t\t\t\t\t\t \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t \r\n\t\t \r\n\t\t\r\n\t\t\t\r\n\t\t\t\t上一步\r\n\t\t\t \r\n\t\t\t\r\n\t\t\t\t确认并提交\r\n\t\t\t \r\n\t\t \r\n\t
\r\n \r\n\r\n\r\n\r\n","import MiniProgramPage from 'D:/officialAccount/pages/addjigou/where.vue'\nwx.createPage(MiniProgramPage)"],"names":["ref","reactive","uni","changemessage","onShow"],"mappings":";;;;;;;;;;;;;;;AAoFC,UAAM,OAAOA,kBAAI,KAAK;AACtB,UAAM,UAAUA,kBAAI,EAAE;AACtB,UAAM,cAAcA,kBAAI,EAAE;AAC1B,UAAM,OAAOC,cAAAA,SAAS;AAAA,MACrB,WAAW;AAAA,MACX,gBAAgB;AAAA,MAChB,mBAAmB;AAAA,MACnB,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,MACjB,YAAY;AAAA,MACZ,iBAAiB;AAAA,MACjB,iBAAiB;AAAA,MACjB,IAAIC,cAAG,MAAC,eAAe,YAAY,KAAK;AAAA,MACxC,KAAKA,cAAAA,MAAI,eAAe,KAAK;AAAA,IAC/B,CAAE;AAEqBF,kBAAAA,IAAI,EAAE;AAEXA,kBAAAA,IAAI,EAAE;AACNA,kBAAAA,IAAI,EAAE;AAEvB,UAAM,WAAW,CAAC,QAAQ;AACzB,UAAI,KAAK;AACR,gBAAQ,QAAQ;AAChB,aAAK,QAAQ;AAAA,MACb;AAAA,IACD;AACD,UAAM,OAAO,MAAM;AAElB,YAAM,cAAc,KAAK,aAAa,KAAK,kBAAkB,KAAK,qBAAqB,KAAK,mBAC3F,KAAK,mBAAmB,KAAK,cAAc,KAAK,mBAAmB,KAAK;AACzE,UAAI,aAAa;AAChBG,oCAAAA,cAAc,IAAI,EAAE,KAAK,SAAO;AAC/B,cAAI,IAAI,SAAS;AAChB,gBAAI,IAAI,WAAW,SAAS;AAC3BD,4BAAAA,MAAI,eAAe,cAAc,EAAE;AACnCA,4BAAAA,MAAI,SAAS;AAAA,gBACZ,KAAK;AAAA,cACZ,CAAO;AAAA,YACP,OAAY;AACNA,4BAAG,MAAC,eAAe,cAAc,IAAI,OAAO,EAAE;AAC9CA,4BAAAA,MAAI,SAAS;AAAA,gBACZ,KAAK;AAAA,cACZ,CAAO;AAAA,YACD;AAAA,UAEN,OAAW;AACNA,0BAAAA,MAAI,UAAU;AAAA,cACb,OAAO,IAAI;AAAA,cACX,MAAM;AAAA,YACZ,CAAM;AAAA,UACD;AAAA,QACL,CAAI;AAAA,MACJ,OAAS;AACNA,sBAAAA,MAAI,UAAU;AAAA,UACb,OAAO;AAAA,UACP,MAAM;AAAA,QACV,CAAI;AAAA,MACD;AAAA,IACD;AAED,UAAM,SAAS,MAAM;AACpBA,oBAAAA,MAAI,aAAc;AAAA,IAClB;AACD,UAAM,YAAY,MAAM;AACvBA,oBAAAA,MAAI,WAAW;AAAA,QACd,KAAK;AAAA,MACR,CAAG;AAAA,IACD;AACDE,kBAAAA,OAAO,MAAM;AAEZ,YAAM,OAAOF,cAAAA,MAAI,eAAe,SAAS;AACzC,UAAI,MAAM;AACTA,sBAAAA,MAAA,MAAA,OAAA,mCAAY,QAAQ,IAAI;AACxB,oBAAY,QAAQ,KAAK;AACzB,aAAK,aAAa,KAAK;AACvB,aAAK,kBAAkB,KAAK;AAC5B,aAAK,kBAAkB,KAAK;AAC5BA,sBAAG,MAAC,kBAAkB,SAAS;AAAA,MAC/B;AAAA,IACH,CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnKF,GAAG,WAAW,eAAe;"}
\ No newline at end of file
diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/login/callback.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/login/callback.js.map
index 0cc4df0..84750b8 100644
--- a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/login/callback.js.map
+++ b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/login/callback.js.map
@@ -1 +1 @@
-{"version":3,"file":"callback.js","sources":["pages/login/callback.vue","../Hbuilder/HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvbG9naW4vY2FsbGJhY2sudnVl"],"sourcesContent":["\r\n\t\r\n\t\t \r\n\t\t\r\n\t\t\t页面跳转中,请稍后...\r\n\t\t \r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t \r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n \r\n\r\n\r\n\r\n","import MiniProgramPage from 'D:/officialAccount/pages/login/callback.vue'\nwx.createPage(MiniProgramPage)"],"names":["ref","reactive","base_url","uni","onLoad"],"mappings":";;;;;;;AAyDoBA,kBAAAA,IAAI,CAAC;AAOxB,UAAM,QAAQC,cAAAA,SAAS;AAAA,MACtB,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,aAAa;AAAA,IACf,CAAE;AAOD,UAAM,YAAY,CAAC,SAAS;AAC3B,YAAM,MAAM,GAAGC,cAAQ,QAAA,gCAAgC,mBAAmB,IAAI,CAAC;AAE/E,YAAM,GAAG,EACP,KAAK,SAAO,IAAI,MAAM,EACtB,KAAK,UAAQ;AACb,cAAM,OAAO,KAAK,KAAK;AACvB,cAAM,SAAS,KAAK,KAAK;AACzB,cAAM,cAAc,KAAK;AACzBC,sBAAAA,MAAI,WAAW;AAAA,UACd,KAAK;AAAA,UACL,MAAM;AAAA,YACL,QAAQ,KAAK,KAAK;AAAA,YAClB,aAAa,KAAK;AAAA,UAClB;AAAA,QACN,CAAK;AACD,uBAAgB;AAAA,MAEpB,CAAI,EACA,MAAM,SAAO;AACbA,sBAAc,MAAA,MAAA,SAAA,kCAAA,eAAe,GAAG;AAAA,MACpC,CAAI;AAAA,IACF;AAEYH,kBAAAA,IAAI,EAAE;AACnB,UAAM,iBAAiB,MAAM;AAC5B,YAAM,MACL,GAAGE,cAAQ,QAAA,mDAAmD,mBAAmB,MAAM,MAAM,CAAC;AAC/F,YAAM,GAAG,EACP,KAAK,SAAO,IAAI,MAAM,EACtB,KAAK,UAAQ;AACbC,sBAAAA,sDAAY,UAAU,IAAI;AAC1BA,sBAAG,MAAC,eAAe,SAAS,KAAK,OAAO,KAAK;AAC7CA,sBAAG,MAAC,eAAe,aAAa,KAAK,OAAO,SAAS;AACrDA,sBAAA,MAAA,MAAA,OAAA,mCAAY,cAAa,KAAK,OAAO,KAAK;AA6C1C,YAAG,CAAC,KAAK,OAAO,KAAI;AACnBA,wBAAAA,MAAI,WAAW;AAAA,YACd,KAAK;AAAA,UACX,CAAM;AAAA,QACN,OAAS;AACJA,wBAAAA,MAAI,WAAW;AAAA,YACd,KAAK;AAAA,UACX,CAAM;AAAA,QACD;AACD,iBAAU;AAAA,MACd,CAAI;AAAA,IAEF;AACD,UAAM,aAAaH,kBAAI,CAAA,CAAE;AACzB,UAAM,WAAW,MAAM;AACtB,YAAM,MAAM,GAAGE,cAAQ,QAAA;AACvB,YAAM,GAAG,EACP,KAAK,SAAO,IAAI,MAAM,EACtB,KAAK,UAAQ;AACb,mBAAW,QAAQ,CAAC,GAAG,IAAI;AAC3BC,sBAAA,MAAA,MAAA,OAAA,mCAAY,QAAQ,WAAW,KAAK;AAAA,MACxC,CAAI;AAAA,IACF;AACmBH,kBAAAA,IAAI,CAAA,CAAE;AAoC1BI,kBAAAA,OAAO,MAAM;;AACZ,YAAM,OAAO,OAAO,SAAS;AAC7B,YAAM,eAAc,UAAK,MAAM,GAAG,EAAE,CAAC,MAAjB,mBAAoB,MAAM,KAAK;AACnD,YAAM,QAAQ,CAAA;AAEd,UAAI,aAAa;AAChB,oBAAY,MAAM,GAAG,EAAE,QAAQ,UAAQ;AACtC,gBAAM,CAAC,KAAK,KAAK,IAAI,KAAK,MAAM,GAAG;AACnC,gBAAM,GAAG,IAAI,mBAAmB,KAAK;AAAA,QACzC,CAAI;AAAA,MACD;AAEDD,oBAAY,MAAA,MAAA,OAAA,mCAAA,kBAAkB,KAAK;AAEnC,UAAI,MAAM,MAAM;AACf,kBAAU,MAAM,IAAI;AAAA,MAEpB;AAAA,IACH,CAAE;;;;;;;;;ACtOF,GAAG,WAAW,eAAe;"}
\ No newline at end of file
+{"version":3,"file":"callback.js","sources":["pages/login/callback.vue","../Hbuilder/HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvbG9naW4vY2FsbGJhY2sudnVl"],"sourcesContent":["\r\n\t\r\n\t\t \r\n\t\t\r\n\t\t\t页面跳转中,请稍后...\r\n\t\t \r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t \r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n \r\n\r\n\r\n\r\n","import MiniProgramPage from 'D:/officialAccount/pages/login/callback.vue'\nwx.createPage(MiniProgramPage)"],"names":["ref","reactive","base_url","uni","onLoad"],"mappings":";;;;;;;AAyDoBA,kBAAAA,IAAI,CAAC;AAOxB,UAAM,QAAQC,cAAAA,SAAS;AAAA,MACtB,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,aAAa;AAAA,IACf,CAAE;AAOD,UAAM,YAAY,CAAC,SAAS;AAC3B,YAAM,MAAM,GAAGC,cAAQ,QAAA,gCAAgC,mBAAmB,IAAI,CAAC;AAE/E,YAAM,GAAG,EACP,KAAK,SAAO,IAAI,MAAM,EACtB,KAAK,UAAQ;AACb,cAAM,OAAO,KAAK,KAAK;AACvB,cAAM,SAAS,KAAK,KAAK;AACzB,cAAM,cAAc,KAAK;AACzBC,sBAAAA,MAAI,WAAW;AAAA,UACd,KAAK;AAAA,UACL,MAAM;AAAA,YACL,QAAQ,KAAK,KAAK;AAAA,YAClB,aAAa,KAAK;AAAA,UAClB;AAAA,QACN,CAAK;AACD,uBAAgB;AAAA,MAEpB,CAAI,EACA,MAAM,SAAO;AACbA,sBAAc,MAAA,MAAA,SAAA,kCAAA,eAAe,GAAG;AAAA,MACpC,CAAI;AAAA,IACF;AAEYH,kBAAAA,IAAI,EAAE;AACnB,UAAM,iBAAiB,MAAM;AAC5B,YAAM,MACL,GAAGE,cAAQ,QAAA,mDAAmD,mBAAmB,MAAM,MAAM,CAAC;AAC/F,YAAM,GAAG,EACP,KAAK,SAAO,IAAI,MAAM,EACtB,KAAK,UAAQ;AACbC,sBAAAA,sDAAY,UAAU,IAAI;AAC1BA,sBAAG,MAAC,eAAe,SAAS,KAAK,OAAO,KAAK;AAC7CA,sBAAG,MAAC,eAAe,aAAa,KAAK,OAAO,SAAS;AACrDA,sBAAA,MAAA,MAAA,OAAA,mCAAY,cAAa,KAAK,OAAO,KAAK;AA6C1C,YAAG,CAAC,KAAK,OAAO,KAAI;AACnBA,wBAAAA,MAAI,WAAW;AAAA,YACd,KAAK;AAAA,UACX,CAAM;AAAA,QACN,OAAS;AACJA,wBAAAA,MAAI,WAAW;AAAA,YACd,KAAK;AAAA,UACX,CAAM;AACDA,wBAAG,MAAC,eAAe,OAAO,KAAK,OAAO,GAAG;AAAA,QACzC;AACD,iBAAU;AAAA,MACd,CAAI;AAAA,IAEF;AACD,UAAM,aAAaH,kBAAI,CAAA,CAAE;AACzB,UAAM,WAAW,MAAM;AACtB,YAAM,MAAM,GAAGE,cAAQ,QAAA;AACvB,YAAM,GAAG,EACP,KAAK,SAAO,IAAI,MAAM,EACtB,KAAK,UAAQ;AACb,mBAAW,QAAQ,CAAC,GAAG,IAAI;AAC3BC,sBAAA,MAAA,MAAA,OAAA,mCAAY,QAAQ,WAAW,KAAK;AAAA,MACxC,CAAI;AAAA,IACF;AACmBH,kBAAAA,IAAI,CAAA,CAAE;AAoC1BI,kBAAAA,OAAO,MAAM;;AACZ,YAAM,OAAO,OAAO,SAAS;AAC7B,YAAM,eAAc,UAAK,MAAM,GAAG,EAAE,CAAC,MAAjB,mBAAoB,MAAM,KAAK;AACnD,YAAM,QAAQ,CAAA;AAEd,UAAI,aAAa;AAChB,oBAAY,MAAM,GAAG,EAAE,QAAQ,UAAQ;AACtC,gBAAM,CAAC,KAAK,KAAK,IAAI,KAAK,MAAM,GAAG;AACnC,gBAAM,GAAG,IAAI,mBAAmB,KAAK;AAAA,QACzC,CAAI;AAAA,MACD;AAEDD,oBAAY,MAAA,MAAA,OAAA,mCAAA,kBAAkB,KAAK;AAEnC,UAAI,MAAM,MAAM;AACf,kBAAU,MAAM,IAAI;AAAA,MAEpB;AAAA,IACH,CAAE;;;;;;;;;ACvOF,GAAG,WAAW,eAAe;"}
\ No newline at end of file
diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/login/code.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/login/code.js.map
index a5e1dca..5c8d20d 100644
--- a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/login/code.js.map
+++ b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/login/code.js.map
@@ -1 +1 @@
-{"version":3,"file":"code.js","sources":["pages/login/code.vue","../Hbuilder/HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvbG9naW4vY29kZS52dWU"],"sourcesContent":["\r\n\t\r\n\t\t\r\n\t\t\t \r\n\t\t\t\r\n\t\t\t\t您好, \r\n\t\t\t\t欢迎使用护理单元~ \r\n\t\t\t \r\n\t\t \r\n\t\t \r\n\t\t \r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t请输入验证码\r\n\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\t验证码已发送至{{ mobile }}\r\n\t\t\t\t \r\n\t\t\t \r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t \r\n\t\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t \r\n\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t重新发送\r\n\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\t{{countdown}}S后重新发送\r\n\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\t收不到验证码\r\n\t\t\t\t \r\n\t\t\t \r\n\t\t \r\n\t\t\r\n\t\t\r\n\t\t\t \r\n\t\t \r\n\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t收不到验证码 \r\n\t\t\t\t\r\n\t\t\t\t\t手机号可正常使用: \r\n\t\t\t\t\t1 是否输错手机号 \r\n\t\t\t\t\t2 手机是否设置短信拦截/欠费/信号不好 \r\n\t\t\t\t\t3 手机内存是否满了 \r\n\t\t\t\t\t4 手机卡是否为物联卡,而非SIM卡 \r\n\t\t\t\t \r\n\t\t\t \r\n\t\t \r\n\t \r\n \r\n\r\n\r\n\r\n","import MiniProgramPage from 'D:/officialAccount/pages/login/code.vue'\nwx.createPage(MiniProgramPage)"],"names":["ref","uni","nextTick","checkPhoneCode","smsCode","onUnmounted","onLoad"],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"code.js","sources":["pages/login/code.vue","../Hbuilder/HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvbG9naW4vY29kZS52dWU"],"sourcesContent":["\r\n\t\r\n\t\t\r\n\t\t\t \r\n\t\t\t\r\n\t\t\t\t您好, \r\n\t\t\t\t欢迎使用护理单元~ \r\n\t\t\t \r\n\t\t \r\n\t\t \r\n\t\t \r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t请输入验证码\r\n\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\t验证码已发送至{{ mobile }}\r\n\t\t\t\t \r\n\t\t\t \r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t \r\n\t\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t \r\n\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t重新发送\r\n\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\t{{countdown}}S后重新发送\r\n\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\t收不到验证码\r\n\t\t\t\t \r\n\t\t\t \r\n\t\t \r\n\t\t\r\n\t\t\r\n\t\t\t \r\n\t\t \r\n\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t收不到验证码 \r\n\t\t\t\t\r\n\t\t\t\t\t手机号可正常使用: \r\n\t\t\t\t\t1 是否输错手机号 \r\n\t\t\t\t\t2 手机是否设置短信拦截/欠费/信号不好 \r\n\t\t\t\t\t3 手机内存是否满了 \r\n\t\t\t\t\t4 手机卡是否为物联卡,而非SIM卡 \r\n\t\t\t\t \r\n\t\t\t \r\n\t\t \r\n\t \r\n \r\n\r\n\r\n\r\n","import MiniProgramPage from 'D:/officialAccount/pages/login/code.vue'\nwx.createPage(MiniProgramPage)"],"names":["ref","uni","nextTick","checkPhoneCode","smsCode","onUnmounted","onLoad"],"mappings":"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"}
\ No newline at end of file
diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/login/index.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/login/index.js.map
index 2c6d40d..119de18 100644
--- a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/login/index.js.map
+++ b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/login/index.js.map
@@ -1 +1 @@
-{"version":3,"file":"index.js","sources":["pages/login/index.vue","../Hbuilder/HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvbG9naW4vaW5kZXgudnVl"],"sourcesContent":["\r\n\t\r\n\t\t\r\n\t\t\t \r\n\t\t\t\r\n\t\t\t\t您好, \r\n\t\t\t\t欢迎使用护理单元~ \r\n\t\t\t \r\n\t\t \r\n\t\t \r\n\t\t \r\n\t\t\r\n\t\t\t\r\n\t\t\t\t \r\n\t\t\t\t同意 \r\n\t\t\t\t\r\n\t\t\t\t\t《护理单元使用条款》\r\n\t\t\t\t \r\n\t\t\t\t并授权NU获取本机号码 \r\n\t\t\t \r\n\t\t\t\r\n\t\t\t\t一键登录\r\n\t\t\t \r\n\r\n\t\t \r\n\t\t\r\n\t\t\r\n\t\t\t \r\n\t\t \r\n\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t服务协议及隐私保护 \r\n\t\t\t\t\r\n\t\t\t\t\t 为了更好地保障您的合法权益,请阅读并同意以下协议 \r\n\t\t\t\t\t《护理单元使用条款》 \r\n\t\t\t\t\t,同意后将自动登录。 \r\n\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t不同意\r\n\t\t\t\t\t \r\n\t\t\t\t\t\r\n\t\t\t\t\t\t同意\r\n\t\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t \r\n\t\t \r\n\t \r\n \r\n\r\n\r\n\r\n","import MiniProgramPage from 'D:/officialAccount/pages/login/index.vue'\nwx.createPage(MiniProgramPage)"],"names":["ref","useWeChatAuth","uni"],"mappings":";;;;;;;;;;;AA6DC,UAAM,WAAWA,kBAAI,KAAK;AAC1B,UAAM,cAAcA,kBAAI,KAAK;AAC7B,UAAM;AAAA,MACL;AAAA,IACA,IAAGC,yBAAa,cAAA;AAGjB,UAAM,YAAYD,cAAG,IAAC,oBAAoB;AAE1C,aAAS,aAAa;AACrB,kBAAY,QAAQ;AAAA,IACpB;AAED,UAAM,UAAU,MAAM;AACrB,UAAI,CAAC,SAAS,OAAO;AACpB,oBAAY,QAAQ;AAAA,MACvB,OAAS;AACN;MACA;AAAA,IACH;AACC,UAAM,YAAY,MAAK;AACtBE,oBAAAA,MAAI,WAAW;AAAA,QACd,KAAK;AAAA,MACR,CAAG;AAAA,IACD;AACD,UAAM,QAAQ,MAAK;AAClBA,oBAAAA,MAAI,WAAW;AAAA,QACd,KAAK;AAAA,MACR,CAAG;AAAA,IAED;AACD,UAAM,YAAY,MAAK;AACtBA,oBAAAA,MAAI,WAAW;AAAA,QACd,KAAK;AAAA,MACR,CAAG;AAAA,IACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/FF,GAAG,WAAW,eAAe;"}
\ No newline at end of file
+{"version":3,"file":"index.js","sources":["pages/login/index.vue","../Hbuilder/HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvbG9naW4vaW5kZXgudnVl"],"sourcesContent":["\r\n\t\r\n\t\t\r\n\t\t\t \r\n\t\t\t\r\n\t\t\t\t您好, \r\n\t\t\t\t欢迎使用护理单元~ \r\n\t\t\t \r\n\t\t \r\n\t\t \r\n\t\t \r\n\t\t\r\n\t\t\t\r\n\t\t\t\t \r\n\t\t\t\t同意 \r\n\t\t\t\t\r\n\t\t\t\t\t《护理单元使用条款》\r\n\t\t\t\t \r\n\t\t\t\t并授权NU获取本机号码 \r\n\t\t\t \r\n\t\t\t\r\n\t\t\t\t一键登录\r\n\t\t\t \r\n\r\n\t\t \r\n\t\t\r\n\t\t\r\n\t\t\t \r\n\t\t \r\n\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t服务协议及隐私保护 \r\n\t\t\t\t\r\n\t\t\t\t\t 为了更好地保障您的合法权益,请阅读并同意以下协议 \r\n\t\t\t\t\t《护理单元使用条款》 \r\n\t\t\t\t\t,同意后将自动登录。 \r\n\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t不同意\r\n\t\t\t\t\t \r\n\t\t\t\t\t\r\n\t\t\t\t\t\t同意\r\n\t\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t \r\n\t\t \r\n\t \r\n \r\n\r\n\r\n\r\n","import MiniProgramPage from 'D:/officialAccount/pages/login/index.vue'\nwx.createPage(MiniProgramPage)"],"names":["ref","useWeChatAuth","uni"],"mappings":";;;;;;;;;;;AA6DC,UAAM,WAAWA,kBAAI,KAAK;AAC1B,UAAM,cAAcA,kBAAI,KAAK;AAC7B,UAAM;AAAA,MACL;AAAA,IACA,IAAGC,yBAAa,cAAA;AAGjB,UAAM,YAAYD,cAAG,IAAC,oBAAoB;AAE1C,aAAS,aAAa;AACrB,kBAAY,QAAQ;AAAA,IACpB;AAED,UAAM,UAAU,MAAM;AACrB,UAAI,CAAC,SAAS,OAAO;AACpB,oBAAY,QAAQ;AAAA,MACvB,OAAS;AACN;MACA;AAAA,IACH;AACC,UAAM,YAAY,MAAK;AACtBE,oBAAAA,MAAI,WAAW;AAAA,QACd,KAAK;AAAA,MACR,CAAG;AAAA,IACD;AACD,UAAM,QAAQ,MAAK;AAClBA,oBAAAA,MAAI,WAAW;AAAA,QACd,KAAK;AAAA,MACR,CAAG;AAAA,IAED;AACD,UAAM,YAAY,MAAK;AACtBA,oBAAAA,MAAI,WAAW;AAAA,QACd,KAAK;AAAA,MACR,CAAG;AAAA,IACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/FF,GAAG,WAAW,eAAe;"}
\ No newline at end of file
diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/login/workjoin.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/login/workjoin.js.map
index b61f797..d28f223 100644
--- a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/login/workjoin.js.map
+++ b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/login/workjoin.js.map
@@ -1 +1 @@
-{"version":3,"file":"workjoin.js","sources":["pages/login/workjoin.vue","../Hbuilder/HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvbG9naW4vd29ya2pvaW4udnVl"],"sourcesContent":["\r\n\t\r\n\r\n\t\t \r\n\t\t \r\n\t\t\r\n\t\t\t\r\n\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\t{{type=== `1` ? `机构加盟`:`员工入驻`}} \r\n\t\t\t\t\t\r\n\t\t\t\t\t\t护理院日常护理涵盖生活照料、健康监测、康复护理及心理关怀,为老人提供贴心照护。\r\n\t\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t \r\n\t\t\t\r\n\t\t\t\t \r\n\t\t\t \r\n\t\t\t\r\n\t\t\t\t \r\n\t\t\t\t{{ type===\"1\" ? `机构加盟审核列表` : `员工入驻审核列表` }} \r\n\t\t\t\t\r\n\t\t\t \r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\txx员工申请入驻xx护理机构,提交时间:2025.05.01,审核结果:{{item.success ? \"审核成功\" :\"审核失败\" }} \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t重新提交\r\n\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t查看详情\r\n\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t \r\n\r\n\t\t\t\t\t\t \r\n\t\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t \r\n\t\t \r\n\t \r\n \r\n\r\n\r\n\r\n","import MiniProgramPage from 'D:/officialAccount/pages/login/workjoin.vue'\nwx.createPage(MiniProgramPage)"],"names":["ref","onLoad","uni"],"mappings":";;;;;;AAsDC,UAAM,OAAOA,cAAG,IAAC,CAAC;AAGlBC,kBAAM,OAAC,CAAC,YAAY;AAElB,WAAK,QAAQ,QAAQ,QAAQ;AAAA,IAChC,CAAE;AACD,UAAM,YAAY;AAAA,MAAC;AAAA,QACjB,SAAS;AAAA,MACZ;AAAA,MAAK;AAAA,QACF,SAAS;AAAA,MACT;AAAA,MACD;AAAA,QACC,SAAS;AAAA,MACT;AAAA,MACD;AAAA,QACC,SAAS;AAAA,MACT;AAAA,MACD;AAAA,QACC,SAAS;AAAA,MACT;AAAA,IACD;AAED,UAAM,SAAS,MAAM;AACpBC,oBAAAA,MAAI,aAAc;AAAA,IAClB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9EF,GAAG,WAAW,eAAe;"}
\ No newline at end of file
+{"version":3,"file":"workjoin.js","sources":["pages/login/workjoin.vue","../Hbuilder/HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvbG9naW4vd29ya2pvaW4udnVl"],"sourcesContent":["\r\n\t\r\n\r\n\t\t \r\n\t\t \r\n\t\t\r\n\t\t\t\r\n\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\t{{type=== `1` ? `机构加盟`:`员工入驻`}} \r\n\t\t\t\t\t\r\n\t\t\t\t\t\t护理院日常护理涵盖生活照料、健康监测、康复护理及心理关怀,为老人提供贴心照护。\r\n\t\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t \r\n\t\t\t\r\n\t\t\t\t \r\n\t\t\t \r\n\t\t\t\r\n\t\t\t\t \r\n\t\t\t\t{{ type===\"1\" ? `机构加盟审核列表` : `员工入驻审核列表` }} \r\n\t\t\t\t\r\n\t\t\t \r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{{item.comName}}申请入驻加盟护理单元,提交时间:{{item.updateTime}},审核结果:{{item.status==1 ? \"审核中\" :item.status==2?`审核完成`:`驳回` }} \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t重新提交\r\n\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t查看详情\r\n\t\t\t\t\t\t\t\t \r\n\t\t\t\t\t\t\t \r\n\r\n\t\t\t\t\t\t \r\n\t\t\t\t\t \r\n\t\t\t\t \r\n\t\t\t \r\n\t\t \r\n\t \r\n \r\n\r\n\r\n\r\n","import MiniProgramPage from 'D:/officialAccount/pages/login/workjoin.vue'\nwx.createPage(MiniProgramPage)"],"names":["ref","onLoad","getMessageList","uni"],"mappings":";;;;;;;AAsDC,UAAM,OAAOA,cAAG,IAAC,CAAC;AAClB,UAAM,YAAYA,cAAG,IAAC,EAAE;AAExBC,kBAAM,OAAC,CAAC,YAAY;AAElB,WAAK,QAAQ,QAAQ,QAAQ;AAC7B,UAAG,CAAC,KAAK,OAAM;AAChBC,oCAAc,eAACC,cAAG,MAAC,eAAe,KAAK,CAAC,EAAE,KAAK,SAAK;AACnD,oBAAU,QAAQ,IAAI;AAAA,QACzB,CAAG;AAAA,MACC;AAAA,IAEJ,CAAE;AAGD,UAAM,SAAS,MAAM;AACpBA,oBAAAA,MAAI,aAAc;AAAA,IAClB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACtEF,GAAG,WAAW,eAAe;"}
\ No newline at end of file
diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/map/index.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/map/index.js.map
index 7ce95b6..8e43058 100644
--- a/unpackage/dist/dev/.sourcemap/mp-weixin/pages/map/index.js.map
+++ b/unpackage/dist/dev/.sourcemap/mp-weixin/pages/map/index.js.map
@@ -1 +1 @@
-{"version":3,"file":"index.js","sources":["pages/map/index.vue","../Hbuilder/HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvbWFwL2luZGV4LnZ1ZQ"],"sourcesContent":["\n\t\n\t\t\n\t\t\n\t\t\t \n\t\t\t搜索 \n\t\t \n\n\t\t\n\t\t \n\n\t\t\n\t\t\n\t\t\t\n\t\t\t\t{{ poi.name }} \n\t\t\t\t{{ poi.address }} \n\t\t\t \n\t\t \n\n\t\t\n\t\t\n\t\t\t请选择或搜索地点 \n\t\t \n\t \n \n\n\n\n\n","import MiniProgramPage from 'D:/officialAccount/pages/map/index.vue'\nwx.createPage(MiniProgramPage)"],"names":["ref","uni","onMounted"],"mappings":";;AA+BA,MAAM,aAAc;AACpB,MAAM,aAAc;;;;AAEpB,UAAM,UAAUA,cAAAA,IAAI,EAAE;AACtB,UAAM,OAAOA,cAAAA,IAAI,CAAA,CAAE;AACnB,QAAI,MAAM;AACV,QAAI,SAAS;AAEb,aAAS,QAAQ,KAAK,KAAK;AAC1B,YAAM,SAAS,IAAI,GAAG,KAAK,OAAO,KAAK,GAAG;AAC1C,YAAM,IAAI,GAAG,KAAK,IAAI,SAAS,eAAe,KAAK,GAAG;AAAA,QACrD;AAAA,QACA,MAAM;AAAA,MACR,CAAE;AACD,eAAS,IAAI,GAAG,KAAK,OAAO;AAAA,QAC3B,UAAU;AAAA,QACV;AAAA,MACF,CAAE;AAAA,IACF;AAKA,mBAAe,WAAW;AACzB,YAAM,KAAK,QAAQ,MAAM,KAAI;AAC7B,UAAI,CAAC,IAAI;AACRC,sBAAAA,MAAI,UAAU;AAAA,UACb,OAAO;AAAA,UACP,MAAM;AAAA,QACT,CAAG;AACD;AAAA,MACA;AACD,WAAK,QAAQ;AAGb,YAAM,SAAS,IAAI;AACnB,YAAM,MAAM,OAAO;AACnB,YAAM,MAAM,OAAO;AACnBA,oBAAAA,MAAA,MAAA,OAAA,6BAAY,QAAO,GAAG;AACtB,YAAM,MAAM,sDAAsD,mBAAmB,EAAE,CAAC,oBAAoB,GAAG,IAAI,GAAG;AAEtH,UAAI;AACH,cAAM,MAAM,MAAM,MAAM,GAAG;AAC3B,cAAM,OAAO,MAAM,IAAI;AACvB,YAAI,KAAK,WAAW,KAAK,KAAK,QAAQ,KAAK,KAAK,SAAS,GAAG;AAE3D,eAAK,QAAQ,KAAK,KAAK,IAAI,WAAS;AAAA,YACnC,MAAM,KAAK;AAAA,YACX,SAAS,KAAK;AAAA,YACd,KAAK,KAAK,SAAS;AAAA,YACnB,KAAK,KAAK,SAAS;AAAA,UACnB,EAAC;AAAA,QACL,OAAS;AACNA,wBAAAA,MAAI,UAAU;AAAA,YACb,OAAO;AAAA,YACP,MAAM;AAAA,UACV,CAAI;AAAA,QACD;AAAA,MACD,SAAQ,OAAO;AACfA,sBAAc,MAAA,MAAA,SAAA,6BAAA,SAAS,KAAK;AAC5BA,sBAAAA,MAAI,UAAU;AAAA,UACb,OAAO;AAAA,UACP,MAAM;AAAA,QACT,CAAG;AAAA,MACD;AAAA,IACF;AAEA,aAAS,UAAU,KAAK;AACvB,YAAM,MAAM,IAAI,GAAG,KAAK,OAAO,IAAI,KAAK,IAAI,GAAG;AAC/C,UAAI,UAAU,GAAG;AACjB,aAAO,YAAY,GAAG;AAAA,IACvB;AAEAC,kBAAAA,UAAU,MAAM;AACf,cAAQ,YAAY,UAAU;AAAA,IAC/B,CAAC;;;;;;;;;;;;;;;;;;;;;;ACzGD,GAAG,WAAW,eAAe;"}
\ No newline at end of file
+{"version":3,"file":"index.js","sources":["pages/map/index.vue","../Hbuilder/HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvbWFwL2luZGV4LnZ1ZQ"],"sourcesContent":["\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\r\n\t\t\t\t \r\n\t\t\t\t\r\n\t\t\t\t\t取消\r\n\t\t\t\t \r\n\t\t\t \r\n\t\t\t\r\n\t\t\t完成 \r\n\t\t\t\r\n\t\t\t\t请选择\r\n\t\t\t \r\n\r\n\t\t \r\n\r\n\r\n\t\t\r\n\t\t\r\n\t\t\t \r\n\t\t \r\n\t\t\r\n\t\t\t \r\n\t\t \r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t \r\n\t\t\t\t搜索地点 \r\n\t\t\t \r\n\t\t\t\r\n\t\t\t\t \r\n\t\t\t\t取消 \r\n\t\t\t \r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{{poi.name}} \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{{ poi.juli }} | {{ poi.where }}\r\n\t\t\t\t\t\t \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t✓\r\n\t\t\t\t\t\t \r\n\t\t\t\t\t \r\n\r\n\t\t\t\t\t\r\n\t\t\t\t \r\n\t\t\t \r\n\r\n\t\t \r\n\r\n\t\t\r\n\t\t\r\n\t \r\n \r\n\r\n\r\n\r\n","import MiniProgramPage from 'D:/officialAccount/pages/map/index.vue'\nwx.createPage(MiniProgramPage)"],"names":["ref","wx","uni","base_url","proxy","onMounted","onBeforeUnmount"],"mappings":"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"}
\ No newline at end of file
diff --git a/unpackage/dist/dev/mp-weixin/api/main.js b/unpackage/dist/dev/mp-weixin/api/main.js
new file mode 100644
index 0000000..a5ba6c4
--- /dev/null
+++ b/unpackage/dist/dev/mp-weixin/api/main.js
@@ -0,0 +1,11 @@
+"use strict";
+require("../common/vendor.js");
+const request_index = require("../request/index.js");
+function proxy(res) {
+ return request_index.request({
+ url: `/api/proxy/get?apiUrl=${res.apiUrl}¶ms=${res.other}`,
+ method: "get"
+ });
+}
+exports.proxy = proxy;
+//# sourceMappingURL=../../.sourcemap/mp-weixin/api/main.js.map
diff --git a/unpackage/dist/dev/mp-weixin/common/assets.js b/unpackage/dist/dev/mp-weixin/common/assets.js
index a415bc5..74addd7 100644
--- a/unpackage/dist/dev/mp-weixin/common/assets.js
+++ b/unpackage/dist/dev/mp-weixin/common/assets.js
@@ -1,14 +1,14 @@
"use strict";
-const _imports_0$7 = "/static/index/nu.png";
-const _imports_1$6 = "/static/index/bgc.png";
-const _imports_2$4 = "/static/index/old.png";
-const _imports_0$6 = "/static/index/workjoin/bgc.png";
-const _imports_1$5 = "/static/index/workjoin/ren.png";
-const _imports_2$3 = "/static/index/workjoin/x.png";
-const _imports_0$5 = "/static/index/indexgif.gif";
-const _imports_1$4 = "/static/index/button/money.png";
-const _imports_2$2 = "/static/index/button/scan.png";
-const _imports_3$1 = "/static/index/button/watch.png";
+const _imports_0$8 = "/static/index/nu.png";
+const _imports_1$7 = "/static/index/bgc.png";
+const _imports_2$5 = "/static/index/old.png";
+const _imports_0$7 = "/static/index/workjoin/bgc.png";
+const _imports_1$6 = "/static/index/workjoin/ren.png";
+const _imports_2$4 = "/static/index/workjoin/x.png";
+const _imports_0$6 = "/static/index/indexgif.gif";
+const _imports_1$5 = "/static/index/button/money.png";
+const _imports_2$3 = "/static/index/button/scan.png";
+const _imports_3$2 = "/static/index/button/watch.png";
const _imports_4 = "/static/index/button/more.png";
const _imports_5 = "/static/index/kuai.png";
const _imports_6 = "/static/index/badscan.png";
@@ -21,49 +21,57 @@ const _imports_12 = "/static/index/index/scan.png";
const _imports_13 = "/static/index/badold.png";
const _imports_14 = "/static/index/index/back.png";
const tu = "/static/index/tu.png";
-const _imports_0$4 = "/static/index/bian.png";
-const _imports_1$3 = "/static/index/photoID.png";
-const _imports_1$2 = "/static/index/yibaocard.png";
-const _imports_2$1 = "/static/index/backyibaocard.png";
-const _imports_1$1 = "/static/index/takephoto.png";
-const _imports_0$3 = "/static/index/zhinan.png";
-const _imports_1 = "/static/index/map.png";
-const _imports_2 = "/static/index/jigou/bar.png";
-const _imports_3 = "/static/index/jigou/dui.png";
-const _imports_0$2 = "/static/index/norelmap.png";
-const _imports_0$1 = "/static/index/left.png";
+const _imports_0$5 = "/static/index/bian.png";
+const _imports_1$4 = "/static/index/photoID.png";
+const _imports_1$3 = "/static/index/yibaocard.png";
+const _imports_2$2 = "/static/index/backyibaocard.png";
+const _imports_1$2 = "/static/index/takephoto.png";
+const _imports_0$4 = "/static/index/zhinan.png";
+const _imports_1$1 = "/static/index/map.png";
+const _imports_2$1 = "/static/index/jigou/bar.png";
+const _imports_3$1 = "/static/index/jigou/dui.png";
+const _imports_0$3 = "/static/index/norelmap.png";
+const _imports_0$2 = "/static/index/left.png";
+const _imports_0$1 = "/static/index/chahao.png";
+const _imports_1 = "/static/index/tuding.png";
+const _imports_2 = "/static/index/dingwei.png";
+const _imports_3 = "/static/index/fangda.png";
const _imports_0 = "/static/login/right.png";
const img0 = "/static/login/0.png";
const img1 = "/static/login/1.png";
const img2 = "/static/login/2.png";
const img3 = "/static/login/3.png";
-exports._imports_0 = _imports_0$7;
-exports._imports_0$1 = _imports_0$6;
-exports._imports_0$2 = _imports_0$5;
-exports._imports_0$3 = _imports_0$4;
-exports._imports_0$4 = _imports_0$3;
-exports._imports_0$5 = _imports_0$2;
-exports._imports_0$6 = _imports_0$1;
-exports._imports_0$7 = _imports_0;
-exports._imports_1 = _imports_1$6;
-exports._imports_1$1 = _imports_1$5;
-exports._imports_1$2 = _imports_1$4;
-exports._imports_1$3 = _imports_1$3;
-exports._imports_1$4 = _imports_1$2;
-exports._imports_1$5 = _imports_1$1;
-exports._imports_1$6 = _imports_1;
+exports._imports_0 = _imports_0$8;
+exports._imports_0$1 = _imports_0$7;
+exports._imports_0$2 = _imports_0$6;
+exports._imports_0$3 = _imports_0$5;
+exports._imports_0$4 = _imports_0$4;
+exports._imports_0$5 = _imports_0$3;
+exports._imports_0$6 = _imports_0$2;
+exports._imports_0$7 = _imports_0$1;
+exports._imports_0$8 = _imports_0;
+exports._imports_1 = _imports_1$7;
+exports._imports_1$1 = _imports_1$6;
+exports._imports_1$2 = _imports_1$5;
+exports._imports_1$3 = _imports_1$4;
+exports._imports_1$4 = _imports_1$3;
+exports._imports_1$5 = _imports_1$2;
+exports._imports_1$6 = _imports_1$1;
+exports._imports_1$7 = _imports_1;
exports._imports_10 = _imports_10;
exports._imports_11 = _imports_11;
exports._imports_12 = _imports_12;
exports._imports_13 = _imports_13;
exports._imports_14 = _imports_14;
-exports._imports_2 = _imports_2$4;
-exports._imports_2$1 = _imports_2$3;
-exports._imports_2$2 = _imports_2$2;
-exports._imports_2$3 = _imports_2$1;
-exports._imports_2$4 = _imports_2;
-exports._imports_3 = _imports_3$1;
-exports._imports_3$1 = _imports_3;
+exports._imports_2 = _imports_2$5;
+exports._imports_2$1 = _imports_2$4;
+exports._imports_2$2 = _imports_2$3;
+exports._imports_2$3 = _imports_2$2;
+exports._imports_2$4 = _imports_2$1;
+exports._imports_2$5 = _imports_2;
+exports._imports_3 = _imports_3$2;
+exports._imports_3$1 = _imports_3$1;
+exports._imports_3$2 = _imports_3;
exports._imports_4 = _imports_4;
exports._imports_5 = _imports_5;
exports._imports_6 = _imports_6;
diff --git a/unpackage/dist/dev/mp-weixin/common/vendor.js b/unpackage/dist/dev/mp-weixin/common/vendor.js
index a242186..7fbf3cb 100644
--- a/unpackage/dist/dev/mp-weixin/common/vendor.js
+++ b/unpackage/dist/dev/mp-weixin/common/vendor.js
@@ -7046,7 +7046,7 @@ function isConsoleWritable() {
function initRuntimeSocketService() {
const hosts = "192.168.2.24,127.0.0.1";
const port = "8090";
- const id = "mp-weixin_wjIgSl";
+ const id = "mp-weixin_JWAkAD";
const lazy = typeof swan !== "undefined";
let restoreError = lazy ? () => {
} : initOnError();
@@ -7995,6 +7995,7 @@ const createSubpackageApp = initCreateSubpackageApp();
const createHook = (lifecycle) => (hook, target = getCurrentInstance()) => {
!isInSSRComponentSetup && injectHook(lifecycle, hook, target);
};
+const onShow = /* @__PURE__ */ createHook(ON_SHOW);
const onLoad = /* @__PURE__ */ createHook(ON_LOAD);
exports._export_sfc = _export_sfc;
exports.computed = computed;
@@ -8009,6 +8010,7 @@ exports.o = o;
exports.onBeforeUnmount = onBeforeUnmount;
exports.onLoad = onLoad;
exports.onMounted = onMounted;
+exports.onShow = onShow;
exports.onUnmounted = onUnmounted;
exports.p = p;
exports.reactive = reactive;
diff --git a/unpackage/dist/dev/mp-weixin/compontent/public/huakuai.js b/unpackage/dist/dev/mp-weixin/compontent/public/huakuai.js
index e9c788d..03edb15 100644
--- a/unpackage/dist/dev/mp-weixin/compontent/public/huakuai.js
+++ b/unpackage/dist/dev/mp-weixin/compontent/public/huakuai.js
@@ -135,7 +135,7 @@ const _sfc_main = {
o: clipPath,
p: containerWidth.value + "rpx",
q: containerHeight.value + "rpx",
- r: common_assets._imports_0$7,
+ r: common_assets._imports_0$8,
s: common_vendor.o(onStart),
t: common_vendor.o(onStart),
v: offsetX.value + "rpx",
diff --git a/unpackage/dist/dev/mp-weixin/pages/addjigou/api/addjigou.js b/unpackage/dist/dev/mp-weixin/pages/addjigou/api/addjigou.js
new file mode 100644
index 0000000..47a205c
--- /dev/null
+++ b/unpackage/dist/dev/mp-weixin/pages/addjigou/api/addjigou.js
@@ -0,0 +1,19 @@
+"use strict";
+require("../../../common/vendor.js");
+const request_index = require("../../../request/index.js");
+function changemessage(data) {
+ return request_index.request({
+ url: `/api/orgApplyInfo/save`,
+ method: "post",
+ data
+ });
+}
+function getMessageList(tel) {
+ return request_index.request({
+ url: `/api/orgApplyInfo/queryAuditInfo?tel=${tel}`,
+ method: "get"
+ });
+}
+exports.changemessage = changemessage;
+exports.getMessageList = getMessageList;
+//# sourceMappingURL=../../../../.sourcemap/mp-weixin/pages/addjigou/api/addjigou.js.map
diff --git a/unpackage/dist/dev/mp-weixin/pages/addjigou/card.js b/unpackage/dist/dev/mp-weixin/pages/addjigou/card.js
index 4db6229..7e8aecb 100644
--- a/unpackage/dist/dev/mp-weixin/pages/addjigou/card.js
+++ b/unpackage/dist/dev/mp-weixin/pages/addjigou/card.js
@@ -2,6 +2,7 @@
const common_vendor = require("../../common/vendor.js");
const common_assets = require("../../common/assets.js");
const request_index = require("../../request/index.js");
+const pages_addjigou_api_addjigou = require("./api/addjigou.js");
if (!Array) {
const _easycom_u_modal2 = common_vendor.resolveComponent("u-modal");
_easycom_u_modal2();
@@ -16,7 +17,7 @@ const _sfc_main = {
const show = common_vendor.ref(false);
const content = common_vendor.ref("");
const nameArray = ["企业名称", "注册地址", "信用代码", "法人"];
- const textArray = common_vendor.reactive(["", "", "", "", "", "", "", ""]);
+ const textArray = common_vendor.reactive(["", "", "", ""]);
const tempImagePath = common_vendor.ref("");
function getMessage() {
common_vendor.index.chooseImage({
@@ -27,7 +28,7 @@ const _sfc_main = {
uploadImage(tempImagePath.value);
},
fail: (err) => {
- common_vendor.index.__f__("error", "at pages/addjigou/card.vue:96", "拍照失败:", err);
+ common_vendor.index.__f__("error", "at pages/addjigou/card.vue:99", "拍照失败:", err);
}
});
}
@@ -54,13 +55,14 @@ const _sfc_main = {
common_vendor.index.hideLoading();
return;
}
- common_vendor.index.__f__("log", "at pages/addjigou/card.vue:124", "营业执照", JSON.parse(JSON.parse(uploadRes.data).result.data).data);
+ common_vendor.index.__f__("log", "at pages/addjigou/card.vue:127", "营业执照", JSON.parse(JSON.parse(uploadRes.data).result.data).data);
let father = JSON.parse(JSON.parse(uploadRes.data).result.data).data;
textArray[0] = father.companyName;
textArray[1] = father.businessAddress;
textArray[2] = father.creditCode;
textArray[3] = father.legalPerson;
headImge.value = filePath;
+ savephoto(filePath);
common_vendor.index.hideLoading();
},
fail: (err) => {
@@ -72,6 +74,32 @@ const _sfc_main = {
}
});
}
+ const fontphoto = common_vendor.ref("");
+ const savephoto = (filePath) => {
+ common_vendor.index.uploadFile({
+ url: `${request_index.base_url}/sys/common/upload`,
+ // 替换为你的POST接口地址
+ filePath,
+ name: "file",
+ // 后端接收时的字段名
+ header: {
+ "X-Access-Token": common_vendor.index.getStorageSync("token") || ""
+ },
+ formData: {
+ biz: `temp`
+ },
+ success: (uploadRes) => {
+ fontphoto.value = JSON.parse(uploadRes.data).message;
+ },
+ fail: (err) => {
+ common_vendor.index.showToast({
+ title: "上传出错",
+ icon: "error"
+ });
+ common_vendor.index.hideLoading();
+ }
+ });
+ };
const openLook = (res) => {
if (res) {
content.value = res;
@@ -79,9 +107,43 @@ const _sfc_main = {
}
};
const next = () => {
- common_vendor.index.navigateTo({
- url: "/pages/addjigou/where"
+ const allNonEmpty = textArray.every((item) => {
+ return item !== "";
});
+ if (allNonEmpty) {
+ let pushMessage = {
+ id: common_vendor.index.getStorageSync("specicalid") || "",
+ tel: common_vendor.index.getStorageSync("tel"),
+ comName: textArray[0],
+ comRegisterAddress: textArray[1],
+ comCreditCode: textArray[2],
+ comLegalPerson: textArray[3],
+ comBusinessLicense: fontphoto.value
+ };
+ pages_addjigou_api_addjigou.changemessage(pushMessage).then((res) => {
+ if (res.success) {
+ if (res.message == `保存成功!`) {
+ common_vendor.index.navigateTo({
+ url: "/pages/addjigou/where"
+ });
+ } else {
+ common_vendor.index.navigateTo({
+ url: "/pages/addjigou/where"
+ });
+ }
+ } else {
+ common_vendor.index.showToast({
+ title: res.message,
+ icon: "error"
+ });
+ }
+ });
+ } else {
+ common_vendor.index.showToast({
+ title: "请完善信息",
+ icon: "error"
+ });
+ }
};
const goBack = () => {
common_vendor.index.navigateBack();
diff --git a/unpackage/dist/dev/mp-weixin/pages/addjigou/name.js b/unpackage/dist/dev/mp-weixin/pages/addjigou/name.js
index 31c1a65..3063450 100644
--- a/unpackage/dist/dev/mp-weixin/pages/addjigou/name.js
+++ b/unpackage/dist/dev/mp-weixin/pages/addjigou/name.js
@@ -2,6 +2,7 @@
const common_vendor = require("../../common/vendor.js");
const common_assets = require("../../common/assets.js");
const request_index = require("../../request/index.js");
+const pages_addjigou_api_addjigou = require("./api/addjigou.js");
if (!Array) {
const _easycom_u_modal2 = common_vendor.resolveComponent("u-modal");
_easycom_u_modal2();
@@ -17,15 +18,9 @@ const _sfc_main = {
const content = common_vendor.ref("");
const nameArray = ["姓名", "性别", "身份证号码", "民族", "出生日期", "住址", "签发机关", "有效期限"];
const textArray = common_vendor.reactive(["", "", "", "", "", "", "", ""]);
- const states = ["审核中", "审核未通过", "审核通过"];
- const statesTarget = common_vendor.ref(0);
- const shenhe = () => {
- if (statesTarget.value == 2) {
- statesTarget.value = 0;
- } else {
- statesTarget.value++;
- }
- };
+ const fontphoto = common_vendor.ref("");
+ const endphoto = common_vendor.ref("");
+ common_vendor.ref(0);
const tempImagePath = common_vendor.ref("");
function getMessage() {
common_vendor.index.chooseImage({
@@ -36,7 +31,7 @@ const _sfc_main = {
uploadImage(tempImagePath.value);
},
fail: (err) => {
- common_vendor.index.__f__("error", "at pages/addjigou/name.vue:128", "拍照失败:", err);
+ common_vendor.index.__f__("error", "at pages/addjigou/name.vue:138", "拍照失败:", err);
}
});
}
@@ -55,7 +50,7 @@ const _sfc_main = {
},
formData: {},
success: (uploadRes) => {
- common_vendor.index.__f__("log", "at pages/addjigou/name.vue:148", "token", common_vendor.index.getStorageSync("token"));
+ common_vendor.index.__f__("log", "at pages/addjigou/name.vue:175", "token", common_vendor.index.getStorageSync("token"));
if (!JSON.parse(uploadRes.data).success) {
common_vendor.index.showToast({
title: "识别失败",
@@ -64,7 +59,6 @@ const _sfc_main = {
common_vendor.index.hideLoading();
return;
}
- savephoto(filePath);
if (JSON.parse(JSON.parse(uploadRes.data).result.data).data.face) {
let father = JSON.parse(JSON.parse(uploadRes.data).result.data).data.face.data;
textArray[0] = father.name;
@@ -77,6 +71,7 @@ const _sfc_main = {
title: "识别成功"
});
headImge.value = filePath;
+ savephoto(filePath, 0);
common_vendor.index.hideLoading();
} else {
let father = JSON.parse(JSON.parse(uploadRes.data).result.data).data.back.data;
@@ -86,6 +81,7 @@ const _sfc_main = {
title: "识别成功"
});
backImge.value = filePath;
+ savephoto(filePath, 1);
common_vendor.index.hideLoading();
}
},
@@ -98,7 +94,7 @@ const _sfc_main = {
}
});
}
- const savephoto = (filePath) => {
+ const savephoto = (filePath, type) => {
common_vendor.index.uploadFile({
url: `${request_index.base_url}/sys/common/upload`,
// 替换为你的POST接口地址
@@ -112,7 +108,11 @@ const _sfc_main = {
biz: `temp`
},
success: (uploadRes) => {
- common_vendor.index.__f__("log", "at pages/addjigou/name.vue:203", "?????", uploadRes);
+ if (!type) {
+ fontphoto.value = JSON.parse(uploadRes.data).message;
+ } else {
+ endphoto.value = JSON.parse(uploadRes.data).message;
+ }
},
fail: (err) => {
common_vendor.index.showToast({
@@ -130,9 +130,52 @@ const _sfc_main = {
}
};
const next = () => {
- common_vendor.index.navigateTo({
- url: "/pages/addjigou/card"
+ const allNonEmpty = textArray.every((item) => {
+ return item !== "";
});
+ if (allNonEmpty) {
+ const range = textArray[7];
+ const [start, end] = range.split("-");
+ let pushMessage = {
+ id: common_vendor.index.getStorageSync("specicalid") || "",
+ tel: common_vendor.index.getStorageSync("tel"),
+ name: textArray[0],
+ sex: textArray[1],
+ idCard: textArray[2],
+ national: textArray[3],
+ birthDate: textArray[4],
+ idCardAddress: textArray[5],
+ issuingAuthority: textArray[6],
+ startTime: start,
+ endTime: end,
+ cardZmPath: fontphoto.value,
+ cardFmPath: endphoto.value
+ };
+ pages_addjigou_api_addjigou.changemessage(pushMessage).then((res) => {
+ if (res.success) {
+ if (res.message == `保存成功!`) {
+ common_vendor.index.navigateTo({
+ url: "/pages/addjigou/card"
+ });
+ } else {
+ common_vendor.index.setStorageSync("specicalid", res.result.id);
+ common_vendor.index.navigateTo({
+ url: "/pages/addjigou/card"
+ });
+ }
+ } else {
+ common_vendor.index.showToast({
+ title: res.message,
+ icon: "error"
+ });
+ }
+ });
+ } else {
+ common_vendor.index.showToast({
+ title: "请完善信息",
+ icon: "error"
+ });
+ }
};
const goBack = () => {
common_vendor.index.navigateBack();
@@ -148,19 +191,16 @@ const _sfc_main = {
}),
c: common_assets._imports_0$6,
d: common_vendor.o(goBack),
- e: common_vendor.t(states[statesTarget.value]),
- f: common_vendor.n(!statesTarget.value ? `rightStautes` : statesTarget.value == 1 ? `rightStautesred` : `rightStautesblue`),
- g: common_vendor.o(shenhe),
- h: common_assets._imports_0$3,
- i: headImge.value ? headImge.value : `/static/index/IDcard.png`,
- j: !headImge.value,
- k: common_assets._imports_1$5,
- l: common_vendor.o(getMessage),
- m: backImge.value ? backImge.value : `/static/index/backIDcard.png`,
- n: !backImge.value,
- o: common_assets._imports_1$5,
- p: common_vendor.o(getMessage),
- q: common_vendor.f(nameArray, (item, index, i0) => {
+ e: common_assets._imports_0$3,
+ f: headImge.value ? headImge.value : `/static/index/IDcard.png`,
+ g: !headImge.value,
+ h: common_assets._imports_1$5,
+ i: common_vendor.o(getMessage),
+ j: backImge.value ? backImge.value : `/static/index/backIDcard.png`,
+ k: !backImge.value,
+ l: common_assets._imports_1$5,
+ m: common_vendor.o(getMessage),
+ n: common_vendor.f(nameArray, (item, index, i0) => {
return {
a: common_vendor.t(item),
b: common_vendor.t(textArray[index] ? textArray[index] : "自动获取"),
@@ -168,7 +208,7 @@ const _sfc_main = {
d: common_vendor.o(($event) => openLook(textArray[index]), index)
};
}),
- r: common_vendor.o(next)
+ o: common_vendor.o(next)
};
};
}
diff --git a/unpackage/dist/dev/mp-weixin/pages/addjigou/name.wxml b/unpackage/dist/dev/mp-weixin/pages/addjigou/name.wxml
index 8b5dd5b..34b3d27 100644
--- a/unpackage/dist/dev/mp-weixin/pages/addjigou/name.wxml
+++ b/unpackage/dist/dev/mp-weixin/pages/addjigou/name.wxml
@@ -1 +1 @@
-返回 {{e}} 身份证上传 人像面 请上传身份证人像面 国徽面 请上传身份证国徽面 确认身份证信息 {{item.a}} {{item.b}} 注意事项: 同一个身份证号只能认证一个账号国徽而与正面信息应为同一身份证的信息目在有效期内,所有上传照片需清晰且未遮挡,请勿进行美化和修改,所有上传信息均会被妥善保管,不会用于其他商业用途或传输给第三方。 下一步
\ No newline at end of file
+返回 身份证上传 人像面 请上传身份证人像面 国徽面 请上传身份证国徽面 确认身份证信息 {{item.a}} {{item.b}} 注意事项: 同一个身份证号只能认证一个账号国徽而与正面信息应为同一身份证的信息目在有效期内,所有上传照片需清晰且未遮挡,请勿进行美化和修改,所有上传信息均会被妥善保管,不会用于其他商业用途或传输给第三方。 下一步
\ No newline at end of file
diff --git a/unpackage/dist/dev/mp-weixin/pages/addjigou/where.js b/unpackage/dist/dev/mp-weixin/pages/addjigou/where.js
index 325b962..6e5fbb7 100644
--- a/unpackage/dist/dev/mp-weixin/pages/addjigou/where.js
+++ b/unpackage/dist/dev/mp-weixin/pages/addjigou/where.js
@@ -1,6 +1,7 @@
"use strict";
const common_vendor = require("../../common/vendor.js");
const common_assets = require("../../common/assets.js");
+const pages_addjigou_api_addjigou = require("./api/addjigou.js");
if (!Array) {
const _easycom_u_modal2 = common_vendor.resolveComponent("u-modal");
_easycom_u_modal2();
@@ -14,17 +15,57 @@ const _sfc_main = {
setup(__props) {
const show = common_vendor.ref(false);
const content = common_vendor.ref("");
+ const jigouweizhi = common_vendor.ref("");
const form = common_vendor.reactive({
orgLeader: "",
orgLeaderPhone: "",
orgBuildingNumber: "",
orgPropertyType: "",
- orgBuildingArea: ""
+ orgBuildingArea: "",
+ orgAddress: "",
+ orgCoordinateLo: "",
+ orgCoordinateLa: "",
+ id: common_vendor.index.getStorageSync("specicalid") || "",
+ tel: common_vendor.index.getStorageSync("tel")
});
common_vendor.ref("");
common_vendor.ref("");
common_vendor.ref("");
+ const openLook = (res) => {
+ if (res) {
+ content.value = res;
+ show.value = true;
+ }
+ };
const next = () => {
+ const allNonEmpty = form.orgLeader && form.orgLeaderPhone && form.orgBuildingNumber && form.orgPropertyType && form.orgBuildingArea && form.orgAddress && form.orgCoordinateLo && form.orgCoordinateLa;
+ if (allNonEmpty) {
+ pages_addjigou_api_addjigou.changemessage(form).then((res) => {
+ if (res.success) {
+ if (res.message == `保存成功!`) {
+ common_vendor.index.setStorageSync("specicalid", "");
+ common_vendor.index.reLaunch({
+ url: `/pages/login/workjoin?type=1`
+ });
+ } else {
+ common_vendor.index.setStorageSync("specicalid", res.result.id);
+ common_vendor.index.reLaunch({
+ url: `/pages/login/workjoin?type=1`
+ });
+ }
+ } else {
+ common_vendor.index.showToast({
+ title: res.message,
+ icon: "error"
+ });
+ }
+ });
+ } else {
+ common_vendor.index.showToast({
+ title: "请完善信息",
+ icon: "error"
+ });
+ }
};
const goBack = () => {
common_vendor.index.navigateBack();
@@ -34,6 +75,17 @@ const _sfc_main = {
url: "/pages/map/index"
});
};
+ common_vendor.onShow(() => {
+ const data = common_vendor.index.getStorageSync("dingwei");
+ if (data) {
+ common_vendor.index.__f__("log", "at pages/addjigou/where.vue:158", "data", data);
+ jigouweizhi.value = data.name;
+ form.orgAddress = data.name;
+ form.orgCoordinateLo = data.lng;
+ form.orgCoordinateLa = data.lat;
+ common_vendor.index.removeStorageSync("dingwei");
+ }
+ });
return (_ctx, _cache) => {
return {
a: common_vendor.o(($event) => show.value = $event),
@@ -41,20 +93,22 @@ const _sfc_main = {
content: content.value,
modelValue: show.value
}),
- c: common_assets._imports_0$5,
- d: common_vendor.o(jumpToMap),
- e: form.orgLeader,
- f: common_vendor.o(($event) => form.orgLeader = $event.detail.value),
- g: form.orgLeaderPhone,
- h: common_vendor.o(($event) => form.orgLeaderPhone = $event.detail.value),
- i: form.orgBuildingNumber,
- j: common_vendor.o(($event) => form.orgBuildingNumber = $event.detail.value),
- k: form.orgPropertyType,
- l: common_vendor.o(($event) => form.orgPropertyType = $event.detail.value),
- m: form.orgBuildingArea,
- n: common_vendor.o(($event) => form.orgBuildingArea = $event.detail.value),
- o: common_vendor.o(goBack),
- p: common_vendor.o(next)
+ c: common_vendor.t(jigouweizhi.value ? jigouweizhi.value : `请选择机构位置`),
+ d: common_vendor.o(($event) => openLook(jigouweizhi.value)),
+ e: common_assets._imports_0$5,
+ f: common_vendor.o(jumpToMap),
+ g: form.orgLeader,
+ h: common_vendor.o(($event) => form.orgLeader = $event.detail.value),
+ i: form.orgLeaderPhone,
+ j: common_vendor.o(($event) => form.orgLeaderPhone = $event.detail.value),
+ k: form.orgBuildingNumber,
+ l: common_vendor.o(($event) => form.orgBuildingNumber = $event.detail.value),
+ m: form.orgPropertyType,
+ n: common_vendor.o(($event) => form.orgPropertyType = $event.detail.value),
+ o: form.orgBuildingArea,
+ p: common_vendor.o(($event) => form.orgBuildingArea = $event.detail.value),
+ q: common_vendor.o(goBack),
+ r: common_vendor.o(next)
};
};
}
diff --git a/unpackage/dist/dev/mp-weixin/pages/addjigou/where.wxml b/unpackage/dist/dev/mp-weixin/pages/addjigou/where.wxml
index dba35f2..77e9d75 100644
--- a/unpackage/dist/dev/mp-weixin/pages/addjigou/where.wxml
+++ b/unpackage/dist/dev/mp-weixin/pages/addjigou/where.wxml
@@ -1 +1 @@
-机构位置 请选择机构位置 机构负责人 机构负责人电话 楼宇牌号 房屋性质 建筑面积 平方米 上一步 确认并提交
\ No newline at end of file
+机构位置 {{c}} 机构负责人 机构负责人电话 楼宇牌号 房屋性质 建筑面积 上一步 确认并提交
\ No newline at end of file
diff --git a/unpackage/dist/dev/mp-weixin/pages/addjigou/where.wxss b/unpackage/dist/dev/mp-weixin/pages/addjigou/where.wxss
index 850eb73..3ac0d63 100644
--- a/unpackage/dist/dev/mp-weixin/pages/addjigou/where.wxss
+++ b/unpackage/dist/dev/mp-weixin/pages/addjigou/where.wxss
@@ -146,14 +146,22 @@
font-size: 35rpx;
}
.one-img.data-v-549d1cee {
+ position: absolute;
+ top: 50%;
+ transform: translateY(-50%);
+ right: 10rpx;
width: 60rpx;
height: 50rpx;
- margin-right: 10rpx;
- margin-left: 35rpx;
}
.pingfangmi.data-v-549d1cee {
position: absolute;
top: 50%;
right: 5rpx;
transform: translateY(-50%);
+}
+.special.data-v-549d1cee {
+ display: flex;
+ align-items: center;
+ width: 280rpx;
+ position: relative;
}
\ No newline at end of file
diff --git a/unpackage/dist/dev/mp-weixin/pages/login/callback.js b/unpackage/dist/dev/mp-weixin/pages/login/callback.js
index 0dbf2d6..b1d3743 100644
--- a/unpackage/dist/dev/mp-weixin/pages/login/callback.js
+++ b/unpackage/dist/dev/mp-weixin/pages/login/callback.js
@@ -45,6 +45,7 @@ const _sfc_main = {
common_vendor.index.redirectTo({
url: `/pages/login/threeselectone`
});
+ common_vendor.index.setStorageSync("tel", data.result.tel);
}
getjigou();
});
@@ -54,7 +55,7 @@ const _sfc_main = {
const url = `${request_index.base_url}/sys/sysDepart/queryInstitutionsList`;
fetch(url).then((res) => res.json()).then((data) => {
jigouArray.value = [...data];
- common_vendor.index.__f__("log", "at pages/login/callback.vue:175", "机构打印", jigouArray.value);
+ common_vendor.index.__f__("log", "at pages/login/callback.vue:176", "机构打印", jigouArray.value);
});
};
common_vendor.ref([]);
@@ -69,7 +70,7 @@ const _sfc_main = {
query[key] = decodeURIComponent(value);
});
}
- common_vendor.index.__f__("log", "at pages/login/callback.vue:226", "解析到的 query 参数:", query);
+ common_vendor.index.__f__("log", "at pages/login/callback.vue:227", "解析到的 query 参数:", query);
if (query.code) {
getOpenId(query.code);
}
diff --git a/unpackage/dist/dev/mp-weixin/pages/login/code.js b/unpackage/dist/dev/mp-weixin/pages/login/code.js
index e281a66..e499d52 100644
--- a/unpackage/dist/dev/mp-weixin/pages/login/code.js
+++ b/unpackage/dist/dev/mp-weixin/pages/login/code.js
@@ -92,7 +92,7 @@ const _sfc_main = {
}).then((res) => {
if (res.success) {
common_vendor.index.redirectTo({
- url: `/pages/login/threeselectone`
+ url: `/pages/login/callback`
});
} else {
common_vendor.index.showToast({
diff --git a/unpackage/dist/dev/mp-weixin/pages/login/index.js b/unpackage/dist/dev/mp-weixin/pages/login/index.js
index bf57bd3..d4a84e3 100644
--- a/unpackage/dist/dev/mp-weixin/pages/login/index.js
+++ b/unpackage/dist/dev/mp-weixin/pages/login/index.js
@@ -32,7 +32,7 @@ const _sfc_main = {
};
const ceshi = () => {
common_vendor.index.navigateTo({
- url: `/pages/addjigou/name`
+ url: "/pages/addjigou/where"
});
};
const ceshiscan = () => {
diff --git a/unpackage/dist/dev/mp-weixin/pages/login/workjoin.js b/unpackage/dist/dev/mp-weixin/pages/login/workjoin.js
index 6be0029..beec32d 100644
--- a/unpackage/dist/dev/mp-weixin/pages/login/workjoin.js
+++ b/unpackage/dist/dev/mp-weixin/pages/login/workjoin.js
@@ -1,30 +1,20 @@
"use strict";
const common_vendor = require("../../common/vendor.js");
const common_assets = require("../../common/assets.js");
+const pages_addjigou_api_addjigou = require("../addjigou/api/addjigou.js");
const _sfc_main = {
__name: "workjoin",
setup(__props) {
const type = common_vendor.ref(0);
+ const workArray = common_vendor.ref([]);
common_vendor.onLoad((options) => {
type.value = options.type || "";
- });
- const workArray = [
- {
- success: true
- },
- {
- success: true
- },
- {
- success: true
- },
- {
- success: true
- },
- {
- success: false
+ if (!type.value) {
+ pages_addjigou_api_addjigou.getMessageList(common_vendor.index.getStorageSync("tel")).then((res) => {
+ workArray.value = res.result;
+ });
}
- ];
+ });
const goback = () => {
common_vendor.index.navigateBack();
};
@@ -37,12 +27,14 @@ const _sfc_main = {
e: common_assets._imports_2$1,
f: common_vendor.o(goback),
g: common_vendor.t(type.value === "1" ? `机构加盟审核列表` : `员工入驻审核列表`),
- h: common_vendor.f(workArray, (item, index, i0) => {
+ h: common_vendor.f(workArray.value, (item, index, i0) => {
return common_vendor.e({
- a: common_vendor.t(item.success ? "审核成功" : "审核失败"),
- b: !item.success
- }, !item.success ? {} : {}, {
- c: index
+ a: common_vendor.t(item.comName),
+ b: common_vendor.t(item.updateTime),
+ c: common_vendor.t(item.status == 1 ? "审核中" : item.status == 2 ? `审核完成` : `驳回`),
+ d: item.status == 2
+ }, item.status == 2 ? {} : {}, {
+ e: index
});
}),
i: common_vendor.o(() => {
diff --git a/unpackage/dist/dev/mp-weixin/pages/login/workjoin.wxml b/unpackage/dist/dev/mp-weixin/pages/login/workjoin.wxml
index 3d179a3..1a62d5f 100644
--- a/unpackage/dist/dev/mp-weixin/pages/login/workjoin.wxml
+++ b/unpackage/dist/dev/mp-weixin/pages/login/workjoin.wxml
@@ -1 +1 @@
-{{d}} 护理院日常护理涵盖生活照料、健康监测、康复护理及心理关怀,为老人提供贴心照护。 {{g}} xx员工申请入驻xx护理机构,提交时间:2025.05.01,审核结果:{{item.a}} 重新提交 查看详情
\ No newline at end of file
+{{d}} 护理院日常护理涵盖生活照料、健康监测、康复护理及心理关怀,为老人提供贴心照护。 {{g}} {{item.a}}申请入驻加盟护理单元,提交时间:{{item.b}},审核结果:{{item.c}} 重新提交 查看详情
\ No newline at end of file
diff --git a/unpackage/dist/dev/mp-weixin/pages/map/index.js b/unpackage/dist/dev/mp-weixin/pages/map/index.js
index 27f9f1f..b96c7a6 100644
--- a/unpackage/dist/dev/mp-weixin/pages/map/index.js
+++ b/unpackage/dist/dev/mp-weixin/pages/map/index.js
@@ -1,25 +1,148 @@
"use strict";
const common_vendor = require("../../common/vendor.js");
+const common_assets = require("../../common/assets.js");
+const request_index = require("../../request/index.js");
+const api_main = require("../../api/main.js");
+if (!Array) {
+ const _component_uview = common_vendor.resolveComponent("uview");
+ _component_uview();
+}
const defaultLat = 39.9042;
const defaultLng = 116.4074;
+const DEBOUNCE_DELAY = 500;
const _sfc_main = {
__name: "index",
setup(__props) {
+ common_vendor.ref(null);
const keyword = common_vendor.ref("");
const pois = common_vendor.ref([]);
+ const openinput = common_vendor.ref(false);
let map = null;
let marker = null;
function initMap(lat, lng) {
const center = new qq.maps.LatLng(lat, lng);
map = new qq.maps.Map(document.getElementById("map"), {
center,
- zoom: 15
+ zoom: 15,
+ zoomControl: false,
+ // 隐藏放大缩小按钮
+ panControl: false,
+ // 隐藏平移控件
+ mapTypeControl: false
+ // 隐藏右上角地图切换
});
marker = new qq.maps.Marker({
position: center,
map
});
}
+ function loadWxJSSDK() {
+ return new Promise((resolve) => {
+ if (window.wx && typeof common_vendor.wx$1.config === "function") {
+ return resolve();
+ }
+ const script = document.createElement("script");
+ script.src = "https://res.wx.qq.com/open/js/jweixin-1.6.0.js";
+ script.onload = () => {
+ const checkWx = () => {
+ if (window.wx && typeof common_vendor.wx$1.config === "function") {
+ resolve();
+ } else {
+ setTimeout(checkWx, 50);
+ }
+ };
+ checkWx();
+ };
+ script.onerror = () => {
+ common_vendor.index.__f__("error", "at pages/map/index.vue:129", "加载微信 JSSDK 脚本失败");
+ resolve();
+ };
+ document.head.appendChild(script);
+ });
+ }
+ async function initLocation() {
+ await loadWxJSSDK();
+ try {
+ const res = await fetch(`${request_index.base_url}/weixin/getJsApiInfo`, {
+ method: "POST",
+ headers: {
+ "Content-Type": "application/json"
+ },
+ body: JSON.stringify({
+ url: location.href.split("#")[0]
+ })
+ });
+ const data = await res.json();
+ if (window.wx && typeof common_vendor.wx$1.config === "function") {
+ common_vendor.wx$1.config({
+ debug: false,
+ appId: "wx8fc3e4305d2fbf0b",
+ timestamp: data.timestamp,
+ nonceStr: data.nonceStr,
+ signature: data.signature,
+ jsApiList: ["getLocation", "openLocation"]
+ });
+ common_vendor.wx$1.ready(() => {
+ common_vendor.wx$1.getLocation({
+ type: "wgs84",
+ success(ret) {
+ initMap(ret.latitude, ret.longitude);
+ fujinGet(ret.latitude, ret.longitude);
+ },
+ fail(err) {
+ common_vendor.index.__f__("warn", "at pages/map/index.vue:172", "微信定位失败,使用默认位置", err);
+ common_vendor.index.showToast({
+ title: "定位失败,使用默认位置",
+ icon: "none"
+ });
+ initMap(defaultLat, defaultLng);
+ fujinGet(defaultLat, defaultLng);
+ }
+ });
+ });
+ common_vendor.wx$1.error((err) => {
+ common_vendor.index.__f__("error", "at pages/map/index.vue:185", "wx.config 验证失败:", err);
+ initMap(defaultLat, defaultLng);
+ });
+ } else {
+ common_vendor.index.__f__("warn", "at pages/map/index.vue:189", "wx.config 不可用,使用默认位置");
+ initMap(defaultLat, defaultLng);
+ }
+ } catch (err) {
+ common_vendor.index.__f__("error", "at pages/map/index.vue:193", "获取 JSSDK 签名失败:", err);
+ initMap(defaultLat, defaultLng);
+ }
+ }
+ const dingwei = () => {
+ common_vendor.wx$1.getLocation({
+ type: "wgs84",
+ success(ret) {
+ initMap(ret.latitude, ret.longitude);
+ fujinGet(ret.latitude, ret.longitude);
+ },
+ fail(err) {
+ common_vendor.index.__f__("warn", "at pages/map/index.vue:206", "微信定位失败,使用默认位置", err);
+ common_vendor.index.showToast({
+ title: err.errMsg,
+ icon: "none"
+ });
+ initMap(defaultLat, defaultLng);
+ fujinGet(defaultLat, defaultLng);
+ }
+ });
+ };
+ const jumpBack = () => {
+ common_vendor.index.navigateBack();
+ };
+ const jumpBackValue = () => {
+ const payload = {
+ name: pois.value[listTarget.value].name,
+ lat: pois.value[listTarget.value].lat,
+ lng: pois.value[listTarget.value].lng
+ };
+ common_vendor.index.setStorageSync("dingwei", payload);
+ common_vendor.index.navigateBack();
+ };
async function onSearch() {
const kw = keyword.value.trim();
if (!kw) {
@@ -33,57 +156,137 @@ const _sfc_main = {
const center = map.getCenter();
const lat = center.getLat();
const lng = center.getLng();
- common_vendor.index.__f__("log", "at pages/map/index.vue:70", "????", url);
- const url = `https://apis.map.qq.com/ws/place/v1/search?keyword=${encodeURIComponent(kw)}&boundary=nearby(${lat},${lng},1000)&key=WTPBZ-L3O3T-L6SXZ-VOPZA-FU77K-MPB2G`;
- try {
- const res = await fetch(url);
- const data = await res.json();
- if (data.status === 0 && data.data && data.data.length > 0) {
- pois.value = data.data.map((item) => ({
- name: item.title,
- address: item.address,
- lat: item.location.lat,
- lng: item.location.lng
- }));
+ let inIt = {
+ apiUrl: `https://apis.map.qq.com/ws/place/v1/search`,
+ other: `keyword=${encodeURIComponent(kw)}%26boundary=nearby(${lat},${lng},1000)%26key=LOLBZ-Z2PKW-JJ6RO-3Y7Z7-BSKWT-DLFNC`
+ };
+ api_main.proxy(inIt).then((data) => {
+ if (data.status === 0 && data.data.length) {
+ data.data.map((item) => {
+ let element = {
+ name: item.title,
+ juli: `${item._distance}km`,
+ where: item.address,
+ lat: item.location.lat,
+ lng: item.location.lng
+ };
+ pois.value.push(element);
+ });
} else {
common_vendor.index.showToast({
title: "未搜索到结果",
icon: "none"
});
}
- } catch (error) {
- common_vendor.index.__f__("error", "at pages/map/index.vue:91", "搜索失败:", error);
- common_vendor.index.showToast({
- title: "搜索失败",
- icon: "none"
- });
- }
+ });
}
- function selectPoi(poi) {
+ const fujinGet = (lat, lng) => {
+ let inIt = {
+ apiUrl: `https://apis.map.qq.com/ws/geocoder/v1`,
+ other: `location=${lat},${lng}%26key=LOLBZ-Z2PKW-JJ6RO-3Y7Z7-BSKWT-DLFNC%26get_poi=1%26radius=1000%26poi_options=page_size=10;radius=1000;policy=distance;address_format=short`
+ };
+ api_main.proxy(inIt).then((data) => {
+ if (data.status === 0) {
+ pois.value = [];
+ data.result.pois.map((item) => {
+ let element = {
+ name: item.title,
+ juli: `${item._distance}km`,
+ where: item.address,
+ lat: item.location.lat,
+ lng: item.location.lng
+ };
+ pois.value.push(element);
+ });
+ } else {
+ common_vendor.index.showToast({
+ title: "未搜索到结果",
+ icon: "none"
+ });
+ }
+ });
+ };
+ const listTarget = common_vendor.ref(0);
+ function selectPoi(poi, ids) {
+ listTarget.value = ids;
const pos = new qq.maps.LatLng(poi.lat, poi.lng);
map.setCenter(pos);
marker.setPosition(pos);
}
- common_vendor.onMounted(() => {
- initMap(defaultLat, defaultLng);
+ const onMapDragCancel = () => {
+ const center = map.getCenter();
+ const lat = center.getLat();
+ const lng = center.getLng();
+ listTarget.value = 0;
+ fujinGet(lat, lng);
+ };
+ const query = common_vendor.ref("");
+ let timerId = null;
+ function onInput(e) {
+ var _a;
+ query.value = ((_a = e.detail) == null ? void 0 : _a.value) ?? e.target.value;
+ if (timerId) {
+ clearTimeout(timerId);
+ }
+ if (/[A-Za-z]/.test(query.value)) {
+ return;
+ }
+ timerId = setTimeout(() => {
+ const val = query.value.trim();
+ if (val) {
+ onSearch();
+ }
+ }, DEBOUNCE_DELAY);
+ }
+ const close = () => {
+ openinput.value = false;
+ listTarget.value = -1;
+ if (!pois.value.length) {
+ onMapDragCancel();
+ }
+ };
+ common_vendor.onMounted(async () => {
+ await initLocation();
+ });
+ common_vendor.onBeforeUnmount(() => {
+ if (timerId) {
+ clearTimeout(timerId);
+ }
});
return (_ctx, _cache) => {
- return common_vendor.e({
- a: common_vendor.o(onSearch),
- b: keyword.value,
- c: common_vendor.o(($event) => keyword.value = $event.detail.value),
- d: common_vendor.o(onSearch),
- e: pois.value.length
- }, pois.value.length ? {
- f: common_vendor.f(pois.value, (poi, idx, i0) => {
- return {
+ return {
+ a: common_assets._imports_0$7,
+ b: common_vendor.o(jumpBack),
+ c: common_vendor.o(jumpBackValue),
+ d: listTarget.value != -1,
+ e: listTarget.value == -1,
+ f: common_assets._imports_1$7,
+ g: common_vendor.o(onMapDragCancel),
+ h: common_assets._imports_2$5,
+ i: common_vendor.o(dingwei),
+ j: common_assets._imports_3$2,
+ k: common_vendor.o(($event) => {
+ openinput.value = true;
+ pois.value = [];
+ listTarget.value = -1;
+ }),
+ l: !openinput.value,
+ m: common_vendor.o([($event) => keyword.value = $event.detail.value, onInput]),
+ n: keyword.value,
+ o: common_vendor.o(close),
+ p: openinput.value,
+ q: common_vendor.f(pois.value, (poi, idx, i0) => {
+ return common_vendor.e({
a: common_vendor.t(poi.name),
- b: common_vendor.t(poi.address),
- c: idx,
- d: common_vendor.o(($event) => selectPoi(poi), idx)
- };
+ b: common_vendor.t(poi.juli),
+ c: common_vendor.t(poi.where),
+ d: idx == listTarget.value
+ }, idx == listTarget.value ? {} : {}, {
+ e: idx,
+ f: common_vendor.o(($event) => selectPoi(poi, idx), idx)
+ });
})
- } : {});
+ };
};
}
};
diff --git a/unpackage/dist/dev/mp-weixin/pages/map/index.wxml b/unpackage/dist/dev/mp-weixin/pages/map/index.wxml
index aaf280b..a523574 100644
--- a/unpackage/dist/dev/mp-weixin/pages/map/index.wxml
+++ b/unpackage/dist/dev/mp-weixin/pages/map/index.wxml
@@ -1 +1 @@
-搜索 {{poi.a}} {{poi.b}} 请选择或搜索地点
\ No newline at end of file
+ 取消 完成 请选择 搜索地点 取消 {{poi.a}} {{poi.b}} | {{poi.c}} ✓
\ No newline at end of file
diff --git a/unpackage/dist/dev/mp-weixin/pages/map/index.wxss b/unpackage/dist/dev/mp-weixin/pages/map/index.wxss
index 215bcb7..0de7992 100644
--- a/unpackage/dist/dev/mp-weixin/pages/map/index.wxss
+++ b/unpackage/dist/dev/mp-weixin/pages/map/index.wxss
@@ -1,50 +1,211 @@
-
+/**
+ * 这里是uni-app内置的常用样式变量
+ *
+ * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
+ * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
+ *
+ */
+/**
+ * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
+ *
+ * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
+ */
+/* 颜色变量 */
+/* 行为相关颜色 */
+/* 文字基本颜色 */
+/* 背景颜色 */
+/* 边框颜色 */
+/* 尺寸变量 */
+/* 文字尺寸 */
+/* 图片尺寸 */
+/* Border Radius */
+/* 水平间距 */
+/* 垂直间距 */
+/* 透明度 */
+/* 文章场景相关 */
.container.data-v-a3704cdf {
- display: flex;
- flex-direction: column;
- height: 100vh;
+ display: flex;
+ flex-direction: column;
+ height: 100vh;
+ position: relative;
}
.search-bar.data-v-a3704cdf {
- display: flex;
- padding: 8px;
- background: #fff;
+ position: absolute;
+ top: 0;
+ left: 0;
+ display: flex;
+ width: 100%;
+ height: 120rpx;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ z-index: 3;
+ /* background: #fff; */
}
.search-bar input.data-v-a3704cdf {
- flex: 1;
- padding: 6px;
- border: 1px solid #ccc;
- border-radius: 4px;
-}
-.search-bar button.data-v-a3704cdf {
- margin-left: 8px;
- padding: 6px 12px;
- background-color: #1aad19;
- color: #fff;
- border: none;
- border-radius: 4px;
+ flex: 1;
+ padding: 6px;
+ border: 1px solid #ccc;
+ border-radius: 4px;
}
.map.data-v-a3704cdf {
- flex: 1;
+ flex: 1;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+.map .map-dian.data-v-a3704cdf {
+ width: 60rpx;
+ height: 60rpx;
+ border-radius: 50%;
+ z-index: 2;
+ margin-bottom: 65rpx;
+}
+.goback.data-v-a3704cdf {
+ position: fixed;
+ bottom: 43vh;
+ right: 40rpx;
+ width: 100rpx;
+ height: 100rpx;
+ background-color: #fff;
+ border-radius: 20rpx;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ box-shadow: 4rpx 4rpx 8rpx rgba(0, 0, 0, 0.1);
+}
+.goback .goback-imge.data-v-a3704cdf {
+ width: 55rpx;
+ height: 55rpx;
}
.result-list.data-v-a3704cdf {
- max-height: 200px;
- overflow-y: auto;
- background: #fff;
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ height: 40vh;
+ width: 94%;
+ margin-left: 3%;
+ border-top-right-radius: 35rpx;
+ border-top-left-radius: 35rpx;
+ background: #fff;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
}
.poi-item.data-v-a3704cdf {
- padding: 8px;
- border-bottom: 1px solid #eee;
+ margin-top: 30rpx;
+ height: calc(40vh - 110rpx);
+ width: 100%;
+ overflow-y: auto;
}
.poi-name.data-v-a3704cdf {
- font-weight: bold;
+ font-weight: bold;
}
.poi-address.data-v-a3704cdf {
- font-size: 12px;
- color: #666;
+ font-size: 12px;
+ color: #666;
}
.info.data-v-a3704cdf {
- padding: 16px;
- background: #fff;
- text-align: center;
- color: #999;
+ padding: 16px;
+ background: #fff;
+ text-align: center;
+ color: #999;
}
+.search-bar-left.data-v-a3704cdf {
+ margin-left: 30rpx;
+ font-size: 32rpx;
+ font-weight: 600;
+ display: flex;
+ align-items: center;
+}
+.search-bar-right.data-v-a3704cdf {
+ margin-right: 30rpx;
+ width: 120rpx;
+ height: 60rpx;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ border-radius: 20rpx;
+ color: #fff;
+ background-color: #01a8ff;
+}
+.search-bar-right-bad.data-v-a3704cdf {
+ margin-right: 30rpx;
+ width: 120rpx;
+ height: 60rpx;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ border-radius: 20rpx;
+ color: #eeeeee;
+ background-color: #fff;
+}
+.sousuo-bgc.data-v-a3704cdf {
+ width: 90%;
+ background-color: #eeeeee;
+ border-radius: 15rpx;
+ height: 80rpx;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ margin-top: 30rpx;
+ color: #999999;
+}
+.sousuo-bgc .sousuo-imge.data-v-a3704cdf {
+ width: 50rpx;
+ height: 50rpx;
+ margin-right: 20rpx;
+}
+.input-father.data-v-a3704cdf {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ margin-top: 30rpx;
+}
+.input-father .input.data-v-a3704cdf {
+ margin: 0 5%;
+ padding-left: 5%;
+ width: 70%;
+ background-color: #eeeeee;
+ border-radius: 15rpx;
+ height: 75rpx;
+ color: #999999;
+}
+.input-father .input-button.data-v-a3704cdf {
+ font-size: 25rpx;
+}
+.left-imge.data-v-a3704cdf {
+ width: 30rpx;
+ height: 30rpx;
+}
+.poi-card.data-v-a3704cdf {
+ width: 100%;
+ height: 150rpx;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ padding: 0 50rpx;
+ position: relative;
+}
+.poi-card .card-title.data-v-a3704cdf {
+ font-size: 28rpx;
+ margin-bottom: 20rpx;
+}
+.poi-card .card-text.data-v-a3704cdf {
+ font-size: 25rpx;
+ color: #a7a7a7;
+ display: block;
+ width: calc(100% - 10rpx);
+ /* 视需要调整 */
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+.target.data-v-a3704cdf {
+ position: absolute;
+ top: 50%;
+ transform: translateY(-50%);
+ right: 80rpx;
+ font-size: 40rpx;
+ color: skyblue;
+}
\ No newline at end of file
diff --git a/unpackage/dist/dev/mp-weixin/static/index/chahao.png b/unpackage/dist/dev/mp-weixin/static/index/chahao.png
new file mode 100644
index 0000000..671eaf0
Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/chahao.png differ
diff --git a/unpackage/dist/dev/mp-weixin/static/index/dingwei.png b/unpackage/dist/dev/mp-weixin/static/index/dingwei.png
new file mode 100644
index 0000000..d32bcd3
Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/dingwei.png differ
diff --git a/unpackage/dist/dev/mp-weixin/static/index/fangda.png b/unpackage/dist/dev/mp-weixin/static/index/fangda.png
new file mode 100644
index 0000000..98ad68b
Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/fangda.png differ
diff --git a/unpackage/dist/dev/mp-weixin/static/index/tuding.png b/unpackage/dist/dev/mp-weixin/static/index/tuding.png
new file mode 100644
index 0000000..ad17d16
Binary files /dev/null and b/unpackage/dist/dev/mp-weixin/static/index/tuding.png differ