feat: 订单卡片组件封装
This commit is contained in:
1 parent
deef75509e
commit
7bea43f450
24 files changed
+294
-100
No files matched your search
@@ -1 +1 @@
|
||||
{"version":3,"file":"assets.js","sources":["static/quick/quick_icon_bg.png","static/logo.png","static/input_voice_icon.png","static/input_send_icon.png","static/hello_xiaomu_icon@2x.png","static/hello_logo_icon@2x.png","static/top_bg_icon.png","static/drawer_icon.png","static/wave_icon.png","static/test/mk_img_1.png","components/ServiceTipsWord/images/icon_refresh.png"],"sourcesContent":["export default \"__VITE_ASSET__ff753b35__\"","export default \"__VITE_ASSET__46719607__\"","export default \"__VITE_ASSET__76f969d6__\"","export default \"__VITE_ASSET__e6bd7a29__\"","export default \"__VITE_ASSET__2eba501c__\"","export default \"__VITE_ASSET__51733f19__\"","export default \"__VITE_ASSET__ead16fdc__\"","export default \"__VITE_ASSET__a9576f2b__\"","export default \"__VITE_ASSET__d889f8a8__\"","export default \"__VITE_ASSET__c4efe7df__\"","export default \"__VITE_ASSET__14f000bd__\""],"names":[],"mappings":";AAAA,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,aAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,aAAA;ACAf,MAAe,aAAA;;;;;;;;;;;;"}
|
||||
{"version":3,"file":"assets.js","sources":["static/quick/quick_icon_bg.png","static/logo.png","static/input_voice_icon.png","static/input_send_icon.png","static/hello_xiaomu_icon@2x.png","static/hello_logo_icon@2x.png","static/top_bg_icon.png","static/drawer_icon.png","static/wave_icon.png","static/test/mk_img_1.png","components/OrderCardItem/images/icon_order.png"],"sourcesContent":["export default \"__VITE_ASSET__ff753b35__\"","export default \"__VITE_ASSET__46719607__\"","export default \"__VITE_ASSET__76f969d6__\"","export default \"__VITE_ASSET__e6bd7a29__\"","export default \"__VITE_ASSET__2eba501c__\"","export default \"__VITE_ASSET__51733f19__\"","export default \"__VITE_ASSET__ead16fdc__\"","export default \"__VITE_ASSET__a9576f2b__\"","export default \"__VITE_ASSET__d889f8a8__\"","export default \"__VITE_ASSET__c4efe7df__\"","export default \"__VITE_ASSET__911ae60f__\""],"names":[],"mappings":";AAAA,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,aAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,eAAA;ACAf,MAAe,aAAA;ACAf,MAAe,aAAA;;;;;;;;;;;;"}
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"file":"vendor.js","sources":["E:/Program Files/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/shared/dist/shared.esm-bundler.js","E:/Program Files/HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-i18n/dist/uni-i18n.es.js","E:/Program Files/HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-shared/dist/uni-shared.es.js","E:/Program Files/HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-mp-vue/dist/vue.runtime.esm.js","E:/Program Files/HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-mp-weixin/dist/uni.api.esm.js","E:/Program Files/HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-console/dist/mp.esm.js","E:/Program Files/HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-mp-weixin/dist/uni.mp.esm.js","E:/Program Files/HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-app/dist/uni-app.es.js"],"sourcesContent":["/**\n* @vue/shared v3.4.21\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nfunction makeMap(str, expectsLowerCase) {\n const set = new Set(str.split(\",\"));\n return expectsLowerCase ? (val) => set.has(val.toLowerCase()) : (val) => set.has(val);\n}\n\nconst EMPTY_OBJ = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze({}) : {};\nconst EMPTY_ARR = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze([]) : [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n};\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction((str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n});\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](arg);\n }\n};\nconst def = (obj, key, value) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(naLine truncated
|
||||
{"version":3,"file":"vendor.js","sources":["E:/Program Files/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/shared/dist/shared.esm-bundler.js","E:/Program Files/HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-i18n/dist/uni-i18n.es.js","E:/Program Files/HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-shared/dist/uni-shared.es.js","E:/Program Files/HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-mp-vue/dist/vue.runtime.esm.js","E:/Program Files/HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-mp-weixin/dist/uni.api.esm.js","E:/Program Files/HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-console/dist/mp.esm.js","E:/Program Files/HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-mp-weixin/dist/uni.mp.esm.js","E:/Program Files/HBuilderX/plugins/uniapp-cli-vite/node_modules/@dcloudio/uni-app/dist/uni-app.es.js"],"sourcesContent":["/**\n* @vue/shared v3.4.21\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nfunction makeMap(str, expectsLowerCase) {\n const set = new Set(str.split(\",\"));\n return expectsLowerCase ? (val) => set.has(val.toLowerCase()) : (val) => set.has(val);\n}\n\nconst EMPTY_OBJ = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze({}) : {};\nconst EMPTY_ARR = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze([]) : [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n};\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction((str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n});\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](arg);\n }\n};\nconst def = (obj, key, value) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(naLine truncated
|
||||
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.js","sources":["components/OrderCardItem/index.vue","E:/Program Files/HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDovWUdDaGF0Q1MvY29tcG9uZW50cy9PcmRlckNhcmRJdGVtL2luZGV4LnZ1ZQ"],"sourcesContent":["<template>\r\n <view class=\"service-order-item\">\r\n <view class=\"order-header\">\r\n <image class=\"order-icon\" src=\"./images/icon_order.png\"></image>\r\n <text class=\"order-title\">温泉早鸟票</text>\r\n <text :class=\"['order-status', `status-${orderStatus}`]\">{{\r\n orderStatusText\r\n }}</text>\r\n </view>\r\n <view class=\"order-details\">\r\n <view class=\"detail-item\">\r\n <text class=\"detail-label\">订单编号:</text>\r\n <text class=\"detail-value\">{{ orderId }}</text>\r\n </view>\r\n <view class=\"detail-item\">\r\n <text class=\"detail-label\">游客人数:</text>\r\n <text class=\"detail-value\">{{ touristCount }}人</text>\r\n </view>\r\n </view>\r\n </view>\r\n</template>\r\n\r\n<script setup>\r\nimport { ref, computed } from \"vue\";\r\n\r\n// Sample data\r\nconst orderId = ref(\"7378400483776544\");\r\nconst touristCount = ref(7);\r\nconst orderStatus = ref(\"pending\"); // Options: 'canceled', 'pending', 'refundProcessing', 'refunded', 'completed'\r\n\r\n// Computed property for order status text\r\nconst orderStatusText = computed(() => {\r\n switch (orderStatus.value) {\r\n case \"canceled\":\r\n return \"已取消\";\r\n case \"pending\":\r\n return \"待确认\";\r\n case \"refundProcessing\":\r\n return \"退款中\";\r\n case \"refunded\":\r\n return \"已退款\";\r\n case \"completed\":\r\n return \"已完成\";\r\n default:\r\n return \"\";\r\n }\r\n});\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n@import \"./styles/index.scss\";\r\n</style>\r\n","import Component from 'D:/YGChatCS/components/OrderCardItem/index.vue'\nwx.createComponent(Component)"],"names":["ref","computed"],"mappings":";;;;;;AA0BA,UAAM,UAAUA,cAAAA,IAAI,kBAAkB;AACtC,UAAM,eAAeA,cAAAA,IAAI,CAAC;AAC1B,UAAM,cAAcA,cAAAA,IAAI,SAAS;AAGjC,UAAM,kBAAkBC,cAAQ,SAAC,MAAM;AACrC,cAAQ,YAAY,OAAK;AAAA,QACvB,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,QACT;AACE,iBAAO;AAAA,MACV;AAAA,IACH,CAAC;;;;;;;;;;;;;AC7CD,GAAG,gBAAgB,SAAS;"}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.js","sources":["components/ServiceOrderItem/index.vue","E:/Program Files/HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDovWUdDaGF0Q1MvY29tcG9uZW50cy9TZXJ2aWNlT3JkZXJJdGVtL2luZGV4LnZ1ZQ"],"sourcesContent":["<template>\r\n <view class=\"service-order-item\">\r\n <view class=\"order-header\">\r\n <image class=\"order-icon\" src=\"./images/icon_order.png\"></image>\r\n <text class=\"order-title\">温泉早鸟票</text>\r\n <text :class=\"['order-status', `status-${orderStatus}`]\">{{\r\n orderStatusText\r\n }}</text>\r\n </view>\r\n <view class=\"order-details\">\r\n <view class=\"detail-item\">\r\n <text class=\"detail-label\">订单编号:</text>\r\n <text class=\"detail-value\">{{ orderId }}</text>\r\n </view>\r\n <view class=\"detail-item\">\r\n <text class=\"detail-label\">游客人数:</text>\r\n <text class=\"detail-value\">{{ touristCount }}人</text>\r\n </view>\r\n </view>\r\n </view>\r\n</template>\r\n\r\n<script setup>\r\nimport { ref, computed } from \"vue\";\r\n\r\n// Sample data\r\nconst orderId = ref(\"7378400483776544\");\r\nconst touristCount = ref(7);\r\nconst orderStatus = ref(\"pending\"); // Options: 'canceled', 'pending', 'refundProcessing', 'refunded', 'completed'\r\n\r\n// Computed property for order status text\r\nconst orderStatusText = computed(() => {\r\n switch (orderStatus.value) {\r\n case \"canceled\":\r\n return \"已取消\";\r\n case \"pending\":\r\n return \"待确认\";\r\n case \"refundProcessing\":\r\n return \"退款中\";\r\n case \"refunded\":\r\n return \"已退款\";\r\n case \"completed\":\r\n return \"已完成\";\r\n default:\r\n return \"\";\r\n }\r\n});\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n@import \"./styles/index.scss\";\r\n</style>\r\n","import Component from 'D:/YGChatCS/components/ServiceOrderItem/index.vue'\nwx.createComponent(Component)"],"names":["ref","computed"],"mappings":";;;;;;AA0BA,UAAM,UAAUA,cAAAA,IAAI,kBAAkB;AACtC,UAAM,eAAeA,cAAAA,IAAI,CAAC;AAC1B,UAAM,cAAcA,cAAAA,IAAI,SAAS;AAGjC,UAAM,kBAAkBC,cAAQ,SAAC,MAAM;AACrC,cAAQ,YAAY,OAAK;AAAA,QACvB,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,QACT;AACE,iBAAO;AAAA,MACV;AAAA,IACH,CAAC;;;;;;;;;;;;;AC7CD,GAAG,gBAAgB,SAAS;"}
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"file":"ChatMainList.js","sources":["pages/chat/ChatMainList.vue","E:/Program Files/HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDovWUdDaGF0Q1MvcGFnZXMvY2hhdC9DaGF0TWFpbkxpc3QudnVl"],"sourcesContent":["<template>\n <view class=\"chat-container\" @touchend=\"handleTouchEnd\">\n <!-- 顶部的背景 -->\n <chat-top-bg-img class=\"chat-container-bg\"></chat-top-bg-img>\n\n <!-- 顶部自定义导航栏 -->\n <view\n class=\"nav-bar-container\"\n :style=\"{\n paddingTop: statusBarHeight + 'px',\n backgroundColor: navBgColor,\n }\"\n >\n <chat-top-nav-bar @openDrawer=\"openDrawer\"></chat-top-nav-bar>\n </view>\n\n <view class=\"chat-container-msg-list\">\n <!-- logo栏 -->\n <chat-top-banner class=\"chat-container-top-bannar\"></chat-top-banner>\n\n <!-- 消息列表(可滚动区域) -->\n <scroll-view\n scroll-y\n :scroll-into-view=\"lastMsgId\"\n :scroll-with-animation=\"true\"\n class=\"area-msg-list\"\n >\n <view style=\"padding: 6px 12px\">\n <OneFeelMK001></OneFeelMK001>\n </view>\n <view style=\"padding: 6px 12px\">\n <OneFeelMK001></OneFeelMK001>\n </view>\n <view style=\"padding: 6px 12px\">\n <OneFeelMK001></OneFeelMK001>\n </view>\n\n <ServiceTipsWord />\n\n <view\n class=\"area-msg-list-content\"\n v-for=\"item in chatMsgList\"\n :key=\"item.msgId\"\n :id=\"item.msgId\"\n >\n <template v-if=\"item.msgType === MessageRole.AI\">\n <ChatCardAI class=\"message-item message-item-ai\" :text=\"item.msg\">\n <image\n v-if=\"\n item.msgContent && item.msgContent.type === MessageType.IMAGE\n \"\n src=\"/static/logo.png\"\n style=\"width: 100px; height: 100px\"\n ></image>\n <OneFeelMK001></OneFeelMK001>\n </ChatCardAI>\n </template>\n\n <template v-else-if=\"item.msgType === MessageRole.ME\">\n <ChatCardMine\n class=\"message-item message-item-mine\"\n :text=\"item.msg\"\n >\n </ChatCardMine>\n </template>\n <template v-else>\n <text class=\"message-item message-item-other\">{{ item.msg }}</text>\n </template>\n </view>\n\n <!-- 底部锚点(用于滚动到底部) -->\n <view :id=\"lastMsgId\"></view>\n </scroll-view>\n\n <!-- 输入框区域 -->\n <view class=\"footer-area\">\n <ChatMoreTips @replySent=\"handleReply\"></ChatMoreTips>\n <ChatQuickAccess @replySent=\"handleReply\"></ChatQuickAccess>\n\n <view class=\"area-input\">\n <!-- 发送语音 -->\n <view class=\"input-container-voice\">\n <image src=\"/static/input_voice_icon.png\"></image>\n </view>\n <!-- 输入框 -->\n <textarea\n class=\"textarea\"\n type=\"text\"\n placeholder=\"快速订票,呼叫服务\"\n cursor-spacing=\"65\"\n confirm-type=\"done\"\n v-model=\"inputMessage\"\n @confirm=\"sendMessage\"\n @touchend=\"handleNoHideKeyboard\"\n :confirm-hold=\"true\"\n auto-height\n :show-confirm-bar=\"false\"\n :hold-keyboard=\"holdKeyboard\"\n maxlength=\"300\"\n />\n <view class=\"input-container-send\" @click=\"sendMessage\">\n <image src=\"/static/input_send_icon.png\"></image>\n </view>\n </view>\n </view>\n </view>\n </view>\n</template>\n\n<script setup lang=\"ts\">\nimport { onMounted, getCurrentInstance, nextTick } from \"vue\";\nimport { ref, watch } from \"vue\";\nimport { defineEmits } from \"vue\";\nimport { onLoad } from \"@dcloudio/uni-app\";\nimport ChatTopBanner from \"./ChatTopBanner.vue\";\nimport ChatTopBgImg from \"./ChatTopBgImg.vue\";\nimport ChatTopNavBar from \"./ChatTopNavBar.vue\";\nimport ChatCardAI from \"./ChatCardAI.vue\";\nimport ChatCardMine from \"./ChatCardMine.vue\";\nimport ChatQuickAccess from \"./ChatQuickAccess.vue\";\nimport ChatMoreTips from \"./ChatMoreTips.vue\";\nimport { MessageRole, ChatModel, MessageType } from \"../../model/ChatModel\";\nimport OneFeelMK001 from \"../module/OneFeelMK001.vue\";\nimport ServiceTipsWord from \"@/components/ServiceTipsWord/index.vue\";\n\nconst instance = getCurrentInstance(); // 获取当前组件实例\n\n// 导航栏相关\nconst statusBarHeight = ref(20);\nconst navBgColor = ref(\"rgba(66, 173, 249, 0)\");\nconst navOpacity = ref(0);\n\nconst timer = ref(null);\nconst holdKeyboard = ref(false); // focus时,点击页面的时候不收起键盘\nconst holdKeyboardFlag = ref(true); // 是否在键盘弹出,点击界面时关闭键盘\n\nconst cLine truncated
|
||||
{"version":3,"file":"ChatMainList.js","sources":["pages/chat/ChatMainList.vue","E:/Program Files/HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDovWUdDaGF0Q1MvcGFnZXMvY2hhdC9DaGF0TWFpbkxpc3QudnVl"],"sourcesContent":["<template>\n <view class=\"chat-container\" @touchend=\"handleTouchEnd\">\n <!-- 顶部的背景 -->\n <chat-top-bg-img class=\"chat-container-bg\"></chat-top-bg-img>\n\n <!-- 顶部自定义导航栏 -->\n <view\n class=\"nav-bar-container\"\n :style=\"{\n paddingTop: statusBarHeight + 'px',\n backgroundColor: navBgColor,\n }\"\n >\n <chat-top-nav-bar @openDrawer=\"openDrawer\"></chat-top-nav-bar>\n </view>\n\n <view class=\"chat-container-msg-list\">\n <!-- logo栏 -->\n <chat-top-banner class=\"chat-container-top-bannar\"></chat-top-banner>\n\n <!-- 消息列表(可滚动区域) -->\n <scroll-view\n scroll-y\n :scroll-into-view=\"lastMsgId\"\n :scroll-with-animation=\"true\"\n class=\"area-msg-list\"\n >\n <view style=\"padding: 6px 12px\">\n <OneFeelMK001></OneFeelMK001>\n </view>\n <view style=\"padding: 6px 12px\">\n <OneFeelMK001></OneFeelMK001>\n </view>\n <view style=\"padding: 6px 12px\">\n <OneFeelMK001></OneFeelMK001>\n </view>\n\n <OrderCardItem />\n\n <view\n class=\"area-msg-list-content\"\n v-for=\"item in chatMsgList\"\n :key=\"item.msgId\"\n :id=\"item.msgId\"\n >\n <template v-if=\"item.msgType === MessageRole.AI\">\n <ChatCardAI class=\"message-item message-item-ai\" :text=\"item.msg\">\n <image\n v-if=\"\n item.msgContent && item.msgContent.type === MessageType.IMAGE\n \"\n src=\"/static/logo.png\"\n style=\"width: 100px; height: 100px\"\n ></image>\n <OneFeelMK001></OneFeelMK001>\n </ChatCardAI>\n </template>\n\n <template v-else-if=\"item.msgType === MessageRole.ME\">\n <ChatCardMine\n class=\"message-item message-item-mine\"\n :text=\"item.msg\"\n >\n </ChatCardMine>\n </template>\n <template v-else>\n <text class=\"message-item message-item-other\">{{ item.msg }}</text>\n </template>\n </view>\n\n <!-- 底部锚点(用于滚动到底部) -->\n <view :id=\"lastMsgId\"></view>\n </scroll-view>\n\n <!-- 输入框区域 -->\n <view class=\"footer-area\">\n <ChatMoreTips @replySent=\"handleReply\"></ChatMoreTips>\n <ChatQuickAccess @replySent=\"handleReply\"></ChatQuickAccess>\n\n <view class=\"area-input\">\n <!-- 发送语音 -->\n <view class=\"input-container-voice\">\n <image src=\"/static/input_voice_icon.png\"></image>\n </view>\n <!-- 输入框 -->\n <textarea\n class=\"textarea\"\n type=\"text\"\n placeholder=\"快速订票,呼叫服务\"\n cursor-spacing=\"65\"\n confirm-type=\"done\"\n v-model=\"inputMessage\"\n @confirm=\"sendMessage\"\n @touchend=\"handleNoHideKeyboard\"\n :confirm-hold=\"true\"\n auto-height\n :show-confirm-bar=\"false\"\n :hold-keyboard=\"holdKeyboard\"\n maxlength=\"300\"\n />\n <view class=\"input-container-send\" @click=\"sendMessage\">\n <image src=\"/static/input_send_icon.png\"></image>\n </view>\n </view>\n </view>\n </view>\n </view>\n</template>\n\n<script setup lang=\"ts\">\nimport { onMounted, getCurrentInstance, nextTick } from \"vue\";\nimport { ref, watch } from \"vue\";\nimport { defineEmits } from \"vue\";\nimport { onLoad } from \"@dcloudio/uni-app\";\nimport ChatTopBanner from \"./ChatTopBanner.vue\";\nimport ChatTopBgImg from \"./ChatTopBgImg.vue\";\nimport ChatTopNavBar from \"./ChatTopNavBar.vue\";\nimport ChatCardAI from \"./ChatCardAI.vue\";\nimport ChatCardMine from \"./ChatCardMine.vue\";\nimport ChatQuickAccess from \"./ChatQuickAccess.vue\";\nimport ChatMoreTips from \"./ChatMoreTips.vue\";\nimport { MessageRole, ChatModel, MessageType } from \"../../model/ChatModel\";\nimport OneFeelMK001 from \"../module/OneFeelMK001.vue\";\nimport OrderCardItem from \"@/components/OrderCardItem/index.vue\";\n\nconst instance = getCurrentInstance(); // 获取当前组件实例\n\n// 导航栏相关\nconst statusBarHeight = ref(20);\nconst navBgColor = ref(\"rgba(66, 173, 249, 0)\");\nconst navOpacity = ref(0);\n\nconst timer = ref(null);\nconst holdKeyboard = ref(false); // focus时,点击页面的时候不收起键盘\nconst holdKeyboardFlag = ref(true); // 是否在键盘弹出,点击界面时关闭键盘\n\nconst chatMsgLine truncated
|
||||
Reference in new issue
Block a user