diff --git a/pages/mall/admin/cms/article/list.uvue b/pages/mall/admin/cms/article/list.uvue index 501da528..0e4f3d6e 100644 --- a/pages/mall/admin/cms/article/list.uvue +++ b/pages/mall/admin/cms/article/list.uvue @@ -32,6 +32,7 @@ ID 文章图片 文章名称 + 文章分类 关联商品 浏览量 时间 @@ -45,6 +46,7 @@ 🖼️ {{ item.name }} + {{ item.categoryName }} {{ item.linkedProduct }} {{ item.views }} {{ item.time }} @@ -112,11 +114,20 @@ *文章分类: - - + + {{ formCategory || '请选择' }} + + + {{ cat }} + + @@ -131,7 +142,7 @@ *图文封面: - + + @@ -153,18 +164,14 @@ *文章内容: - HTML - H - B - T↕ - F - I - U - S - 🖼️ - 🎬 + B + I + U + 🖼️ + + + - @@ -223,38 +230,83 @@ import { ref } from 'vue' const filterCategory = ref('全部') const filterKeyword = ref('') const articleList = ref([ - { id: '240', name: '赋能消费 | 卷狗优选迈向文化消费新时代', linkedProduct: '', views: '3349', time: '2025-04-01 16:34' }, - { id: '237', name: '把重要的日子放在桌面', linkedProduct: '2024新款吹风机...', views: '260', time: '2025-04-01 16:32' } + { id: '240', name: '赋能消费 | 卷狗优选迈向文化消费新时代', categoryName:'消费文化', linkedProduct: '', views: '3349', time: '2025-04-01 16:34' }, + { id: '237', name: '把重要的日子放在桌面', categoryName:'品牌资讯', linkedProduct: '2024新款吹风机...', views: '260', time: '2025-04-01 16:32' } ]) +const categoryList = ref(['购物心得', '消费文化', '品牌资讯', '全部']) // Mock data mirroring categories +const dropdownVisible = ref(false) + const showDrawer = ref(false) const isClosing = ref(false) const formTitle = ref('') const formAuthor = ref('') const formCategory = ref('') const formIntro = ref('') +const formContent = ref('') const formBanner = ref(false) const formHot = ref(false) +const toggleDropdown = () => { + dropdownVisible.value = !dropdownVisible.value +} + +const selectCategory = (cat: string) => { + formCategory.value = cat + dropdownVisible.value = false +} + const handleAdd = () => { +let editorCtx: any = null +const onEditorReady = () => { + // @ts-ignore + uni.createSelectorQuery().select('#editor').context((res) => { + editorCtx = res.context + }).exec() +} + +const formatText = (name: string) => { + if (editorCtx) { + editorCtx.format(name) + } +} + +const insertImage = () => { + uni.chooseImage({ + count: 1, + success: (res) => { + if (editorCtx) { + editorCtx.insertImage({ + src: res.tempFilePaths[0], + alt: '图像' + }) + } + } + }) +} + formTitle.value = '' formAuthor.value = '' formCategory.value = '' formIntro.value = '' + formContent.value = '' formBanner.value = false formHot.value = false isClosing.value = false + dropdownVisible.value = false showDrawer.value = true } const handleEdit = (item: any) => { formTitle.value = item.name formAuthor.value = '管理员' - formCategory.value = '全部' + formCategory.value = item.categoryName formIntro.value = '这是一段文章简介...' + formContent.value = '

这是一段富文本内容...

' formBanner.value = false formHot.value = true isClosing.value = false + dropdownVisible.value = false showDrawer.value = true } @@ -265,7 +317,38 @@ const closeDrawer = () => { isClosing.value = false }, 300) } -const handleConfirm = () => { closeDrawer() } +const handleUploadCover = () => { + uni.chooseImage({ + count: 1, + success: (res) => { + // 在实际应用中这里应该上传到服务器 + // 这里简单模拟展示 + uni.showToast({ title: '上传成功', icon: 'success' }) + // formCover.value = res.tempFilePaths[0] + } + }) +} + +const handleConfirm = () => { + if (formTitle.value.trim() == '') { + uni.showToast({ title: '请输入标题', icon: 'none' }) + return + } + + // 模拟保存逻辑 + const newId = String(241 + articleList.value.length) + articleList.value.unshift({ + id: newId, + name: formTitle.value, + categoryName: formCategory.value || '未分类', + linkedProduct: '', + views: '0', + time: '2026-02-26 12:00' + }) + + uni.showToast({ title: '发布成功', icon: 'success' }) + closeDrawer() +} const handleQuery = () => { console.log('Querying...') } @@ -296,6 +379,7 @@ const handleQuery = () => { console.log('Querying...') } .col-id { width: 80px; justify-content: center; } .col-img { width: 100px; } .col-name { flex: 2; } +.col-cat { width: 120px; } .col-link { flex: 2; } .col-v { width: 100px; justify-content: center; } .col-time { width: 180px; justify-content: center; } @@ -339,6 +423,7 @@ const handleQuery = () => { console.log('Querying...') } .label-txt { font-size: 14px; color: #606266; } .input-box { flex: 1; position: relative; } +.z-20 { z-index: 20; } .input-base { width: 100%; height: 38px; border: 1px solid #dcdee2; border-radius: 4px; padding: 0 45px 0 12px; font-size: 14px; } .textarea-base { width: 100%; height: 100px; border: 1px solid #dcdee2; border-radius: 4px; padding: 10px 12px; font-size: 14px; } .input-count { position: absolute; bottom: 8px; right: 12px; font-size: 12px; color: #999; } @@ -351,9 +436,10 @@ const handleQuery = () => { console.log('Querying...') } .editor-section { display: flex; flex-direction: column; } .rich-editor-mock { border: 1px solid #dcdee2; border-radius: 4px; min-height: 400px; display: flex; flex-direction: column; } .editor-toolbar { height: 44px; background-color: #fafafa; border-bottom: 1px solid #dcdee2; display: flex; flex-direction: row; align-items: center; padding: 0 15px; gap: 20px; flex-wrap: wrap; } -.tool-ic { font-size: 14px; color: #515a6e; cursor: pointer; } -.tool-ic-img { font-size: 18px; cursor: pointer; } -.editor-content { flex: 1; background-color: #fff; } +.tool-ic { font-size: 16px; color: #515a6e; cursor: pointer; padding: 5px 10px; border: 1px solid #eee; border-radius: 4px; } +.tool-ic:active { background-color: #f0f0f0; } +.editor-content-container { flex: 1; background-color: #fff; padding: 15px; } +.editor-instance { width: 100%; height: 350px; font-size: 14px; } .settings-section { display: flex; flex-direction: column; } .form-item { display: flex; flex-direction: row; align-items: center; } @@ -365,6 +451,35 @@ const handleQuery = () => { console.log('Querying...') } .radio-in { width: 8px; height: 8px; background-color: #2d8cf0; border-radius: 50%; } .radio-la { font-size: 14px; color: #606266; } + +.dropdown-list { + position: absolute; + top: 40px; + left: 0; + width: 100%; + background-color: #fff; + border: 1px solid #dcdee2; + border-radius: 4px; + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + z-index: 100; + max-height: 200px; + overflow-y: auto; +} +.dropdown-item { + padding: 10px 15px; + cursor: pointer; + border-bottom: 1px solid #f0f0f0; +} +.dropdown-item:last-child { + border-bottom: none; +} +.dropdown-item:hover { + background-color: #f5f7fa; +} +.dropdown-txt { + font-size: 14px; + color: #606266; +} .submit-container { display: flex; justify-content: flex-start; padding-left: 135px; padding-bottom: 50px; } .btn-submit { width: 120px; height: 40px; background-color: #2d8cf0; border-radius: 4px; display: flex; align-items: center; justify-content: center; cursor: pointer; } .submit-txt { color: #fff; font-size: 14px; } diff --git a/pages/mall/admin/cms/category/list.uvue b/pages/mall/admin/cms/category/list.uvue index cab2ca39..396e25b2 100644 --- a/pages/mall/admin/cms/category/list.uvue +++ b/pages/mall/admin/cms/category/list.uvue @@ -73,11 +73,20 @@ 上级分类: - - - 顶级分类 - - + + + {{ formParentCategory }} + + + + + {{ cat }} + + @@ -98,8 +107,9 @@ 分类图片: - - 🖼️ + + 🖼️ + 已上传 @@ -151,23 +161,48 @@ const formName = ref('') const formDesc = ref('') const formSort = ref(0) const formStatus = ref(true) +const formParentCategory = ref('顶级分类') +const formImage = ref('') + +const parentCategoryList = ref(['顶级分类', '购物心得', '消费文化', '品牌资讯']) +const parentDropdownVisible = ref(false) + +const toggleParentDropdown = () => { + parentDropdownVisible.value = !parentDropdownVisible.value +} + +const selectParentCategory = (val: string) => { + formParentCategory.value = val + parentDropdownVisible.value = false +} + +const handleUpload = () => { + formImage.value = 'uploaded' + uni.showToast({ title: '模拟上传图片', icon: 'none' }) +} const handleAdd = () => { formName.value = '' formDesc.value = '' formSort.value = 0 formStatus.value = true + formParentCategory.value = '顶级分类' + formImage.value = '' isClosing.value = false + parentDropdownVisible.value = false showDrawer.value = true } const handleEdit = (item: any) => { formName.value = item.name // 模拟填充其他字段 - formDesc.value = '' + formDesc.value = '分类简介...' formSort.value = 0 formStatus.value = item.status + formParentCategory.value = '顶级分类' + formImage.value = 'exists' isClosing.value = false + parentDropdownVisible.value = false showDrawer.value = true } @@ -182,7 +217,23 @@ const closeDrawer = () => { isClosing.value = false }, 300) } -const handleConfirm = () => { closeDrawer() } +const handleConfirm = () => { + if (formName.value.trim() == '') { + uni.showToast({ title: '请输入分类名称', icon: 'none' }) + return + } + + // 模拟保存逻辑 + const newId = String(182 + categoryList.value.length) + categoryList.value.unshift({ + id: newId, + name: formName.value, + status: formStatus.value + }) + + uni.showToast({ title: '添加成功', icon: 'success' }) + closeDrawer() +} const handleQuery = () => { console.log('Querying...') } @@ -238,6 +289,35 @@ const handleQuery = () => { console.log('Querying...') } .label-txt { font-size: 14px; color: #606266; text-align: right; } .input-box { flex: 1; } .input-base { width: 100%; height: 38px; border: 1px solid #dcdee2; border-radius: 4px; padding: 0 12px; font-size: 14px; } + +.dropdown-list { + position: absolute; + top: 40px; + left: 0; + width: 100%; + background-color: #fff; + border: 1px solid #dcdee2; + border-radius: 4px; + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); + z-index: 100; + max-height: 200px; + overflow-y: auto; +} +.dropdown-item { + padding: 10px 15px; + cursor: pointer; + border-bottom: 1px solid #f0f0f0; +} +.dropdown-item:last-child { + border-bottom: none; +} +.dropdown-item:hover { + background-color: #f5f7fa; +} +.dropdown-txt { + font-size: 14px; + color: #606266; +} .textarea-mini { width: 100%; height: 80px; border: 1px solid #dcdee2; border-radius: 4px; padding: 10px 12px; font-size: 14px; } .upload-btn { diff --git a/pages/mall/admin/错误信息.txt b/pages/mall/admin/错误信息.txt index 823095d8..2e303a13 100644 --- a/pages/mall/admin/错误信息.txt +++ b/pages/mall/admin/错误信息.txt @@ -1,5 +1,12 @@ -AdminLayout.uvue:271 [Vue warn]: Unhandled error during execution of async component loader - at +list.uvue?t=1772068177429&import:1010 [Vue warn]: Property "insertImage" was accessed during render but is not defined on instance. + at +at +at +at +at +at +at +at at at at @@ -15,11 +22,138 @@ at at at at -AdminLayout.uvue:271 TypeError: Failed to fetch dynamically imported module: http://localhost:5173/pages/mall/admin/marketing/checkin/config.uvue?import -adminComponentMap.uts:106 - GET http://localhost:5173/pages/mall/admin/marketing/checkin/reward.uvue?import net::ERR_CACHE_READ_FAILURE 304 (Not Modified) -AdminLayout.uvue:271 [Vue warn]: Unhandled error during execution of async component loader - at +warnHandler @ uni-h5.es.js:19975 +callWithErrorHandling @ vue.runtime.esm.js:1381 +warn$1 @ vue.runtime.esm.js:1207 +get @ vue.runtime.esm.js:4455 +(anonymous) @ list.uvue?t=1772068177429&import:1010 +renderFnWithContext @ vue.runtime.esm.js:2033 +renderSlot @ vue.runtime.esm.js:4254 +(anonymous) @ uni-h5.es.js:18666 +renderComponentRoot @ vue.runtime.esm.js:2092 +componentUpdateFn @ vue.runtime.esm.js:7365 +run @ vue.runtime.esm.js:153 +instance.update @ vue.runtime.esm.js:7497 +setupRenderEffect @ vue.runtime.esm.js:7507 +mountComponent @ vue.runtime.esm.js:7274 +processComponent @ vue.runtime.esm.js:7228 +patch @ vue.runtime.esm.js:6694 +mountChildren @ vue.runtime.esm.js:6942 +processFragment @ vue.runtime.esm.js:7158 +patch @ vue.runtime.esm.js:6668 +mountChildren @ vue.runtime.esm.js:6942 +mountElement @ vue.runtime.esm.js:6849 +processElement @ vue.runtime.esm.js:6814 +patch @ vue.runtime.esm.js:6682 +componentUpdateFn @ vue.runtime.esm.js:7372 +run @ vue.runtime.esm.js:153 +instance.update @ vue.runtime.esm.js:7497 +setupRenderEffect @ vue.runtime.esm.js:7507 +mountComponent @ vue.runtime.esm.js:7274 +processComponent @ vue.runtime.esm.js:7228 +patch @ vue.runtime.esm.js:6694 +mountChildren @ vue.runtime.esm.js:6942 +processFragment @ vue.runtime.esm.js:7158 +patch @ vue.runtime.esm.js:6668 +mountChildren @ vue.runtime.esm.js:6942 +mountElement @ vue.runtime.esm.js:6849 +processElement @ vue.runtime.esm.js:6814 +patch @ vue.runtime.esm.js:6682 +componentUpdateFn @ vue.runtime.esm.js:7372 +run @ vue.runtime.esm.js:153 +instance.update @ vue.runtime.esm.js:7497 +setupRenderEffect @ vue.runtime.esm.js:7507 +mountComponent @ vue.runtime.esm.js:7274 +processComponent @ vue.runtime.esm.js:7228 +patch @ vue.runtime.esm.js:6694 +mountChildren @ vue.runtime.esm.js:6942 +processFragment @ vue.runtime.esm.js:7158 +patch @ vue.runtime.esm.js:6668 +mountChildren @ vue.runtime.esm.js:6942 +mountElement @ vue.runtime.esm.js:6849 +processElement @ vue.runtime.esm.js:6814 +patch @ vue.runtime.esm.js:6682 +mountChildren @ vue.runtime.esm.js:6942 +mountElement @ vue.runtime.esm.js:6849 +processElement @ vue.runtime.esm.js:6814 +patch @ vue.runtime.esm.js:6682 +mountChildren @ vue.runtime.esm.js:6942 +mountElement @ vue.runtime.esm.js:6849 +processElement @ vue.runtime.esm.js:6814 +patch @ vue.runtime.esm.js:6682 +mountChildren @ vue.runtime.esm.js:6942 +mountElement @ vue.runtime.esm.js:6849 +processElement @ vue.runtime.esm.js:6814 +patch @ vue.runtime.esm.js:6682 +componentUpdateFn @ vue.runtime.esm.js:7372 +run @ vue.runtime.esm.js:153 +instance.update @ vue.runtime.esm.js:7497 +setupRenderEffect @ vue.runtime.esm.js:7507 +mountComponent @ vue.runtime.esm.js:7274 +processComponent @ vue.runtime.esm.js:7228 +patch @ vue.runtime.esm.js:6694 +mountChildren @ vue.runtime.esm.js:6942 +processFragment @ vue.runtime.esm.js:7158 +patch @ vue.runtime.esm.js:6668 +mountChildren @ vue.runtime.esm.js:6942 +mountElement @ vue.runtime.esm.js:6849 +processElement @ vue.runtime.esm.js:6814 +patch @ vue.runtime.esm.js:6682 +componentUpdateFn @ vue.runtime.esm.js:7372 +run @ vue.runtime.esm.js:153 +instance.update @ vue.runtime.esm.js:7497 +setupRenderEffect @ vue.runtime.esm.js:7507 +mountComponent @ vue.runtime.esm.js:7274 +processComponent @ vue.runtime.esm.js:7228 +patch @ vue.runtime.esm.js:6694 +mountChildren @ vue.runtime.esm.js:6942 +processFragment @ vue.runtime.esm.js:7158 +patch @ vue.runtime.esm.js:6668 +mountChildren @ vue.runtime.esm.js:6942 +mountElement @ vue.runtime.esm.js:6849 +processElement @ vue.runtime.esm.js:6814 +patch @ vue.runtime.esm.js:6682 +componentUpdateFn @ vue.runtime.esm.js:7372 +run @ vue.runtime.esm.js:153 +instance.update @ vue.runtime.esm.js:7497 +setupRenderEffect @ vue.runtime.esm.js:7507 +mountComponent @ vue.runtime.esm.js:7274 +processComponent @ vue.runtime.esm.js:7228 +patch @ vue.runtime.esm.js:6694 +patchBlockChildren @ vue.runtime.esm.js:7084 +processFragment @ vue.runtime.esm.js:7176 +patch @ vue.runtime.esm.js:6668 +patchKeyedChildren @ vue.runtime.esm.js:7650 +patchChildren @ vue.runtime.esm.js:7564 +patchElement @ vue.runtime.esm.js:6989 +processElement @ vue.runtime.esm.js:6825 +patch @ vue.runtime.esm.js:6682 +componentUpdateFn @ vue.runtime.esm.js:7453 +run @ vue.runtime.esm.js:153 +instance.update @ vue.runtime.esm.js:7497 +callWithErrorHandling @ vue.runtime.esm.js:1381 +flushJobs @ vue.runtime.esm.js:1585 +Promise.then +queueFlush @ vue.runtime.esm.js:1494 +queueJob @ vue.runtime.esm.js:1488 +(anonymous) @ vue.runtime.esm.js:7491 +resetScheduling @ vue.runtime.esm.js:236 +triggerEffects @ vue.runtime.esm.js:280 +triggerRefValue @ vue.runtime.esm.js:1033 +set value @ vue.runtime.esm.js:1078 +handleAdd @ list.uvue:297 +callWithErrorHandling @ vue.runtime.esm.js:1381 +callWithAsyncErrorHandling @ vue.runtime.esm.js:1388 +invoker @ vue.runtime.esm.js:10253 +list.uvue?t=1772068177429&import:1028 [Vue warn]: Property "onEditorReady" was accessed during render but is not defined on instance. + at +at +at +at +at +at +at +at at at at @@ -35,11 +169,139 @@ at at at at -AdminLayout.uvue:271 TypeError: Failed to fetch dynamically imported module: http://localhost:5173/pages/mall/admin/marketing/checkin/reward.uvue?import -adminComponentMap.uts:109 - GET http://localhost:5173/pages/mall/admin/marketing/newcomer/index.uvue?import net::ERR_CACHE_READ_FAILURE 304 (Not Modified) -AdminLayout.uvue:271 [Vue warn]: Unhandled error during execution of async component loader - at +warnHandler @ uni-h5.es.js:19975 +callWithErrorHandling @ vue.runtime.esm.js:1381 +warn$1 @ vue.runtime.esm.js:1207 +get @ vue.runtime.esm.js:4455 +(anonymous) @ list.uvue?t=1772068177429&import:1028 +renderFnWithContext @ vue.runtime.esm.js:2033 +renderSlot @ vue.runtime.esm.js:4254 +(anonymous) @ uni-h5.es.js:18666 +renderComponentRoot @ vue.runtime.esm.js:2092 +componentUpdateFn @ vue.runtime.esm.js:7365 +run @ vue.runtime.esm.js:153 +instance.update @ vue.runtime.esm.js:7497 +setupRenderEffect @ vue.runtime.esm.js:7507 +mountComponent @ vue.runtime.esm.js:7274 +processComponent @ vue.runtime.esm.js:7228 +patch @ vue.runtime.esm.js:6694 +mountChildren @ vue.runtime.esm.js:6942 +processFragment @ vue.runtime.esm.js:7158 +patch @ vue.runtime.esm.js:6668 +mountChildren @ vue.runtime.esm.js:6942 +mountElement @ vue.runtime.esm.js:6849 +processElement @ vue.runtime.esm.js:6814 +patch @ vue.runtime.esm.js:6682 +componentUpdateFn @ vue.runtime.esm.js:7372 +run @ vue.runtime.esm.js:153 +instance.update @ vue.runtime.esm.js:7497 +setupRenderEffect @ vue.runtime.esm.js:7507 +mountComponent @ vue.runtime.esm.js:7274 +processComponent @ vue.runtime.esm.js:7228 +patch @ vue.runtime.esm.js:6694 +mountChildren @ vue.runtime.esm.js:6942 +processFragment @ vue.runtime.esm.js:7158 +patch @ vue.runtime.esm.js:6668 +mountChildren @ vue.runtime.esm.js:6942 +mountElement @ vue.runtime.esm.js:6849 +processElement @ vue.runtime.esm.js:6814 +patch @ vue.runtime.esm.js:6682 +componentUpdateFn @ vue.runtime.esm.js:7372 +run @ vue.runtime.esm.js:153 +instance.update @ vue.runtime.esm.js:7497 +setupRenderEffect @ vue.runtime.esm.js:7507 +mountComponent @ vue.runtime.esm.js:7274 +processComponent @ vue.runtime.esm.js:7228 +patch @ vue.runtime.esm.js:6694 +mountChildren @ vue.runtime.esm.js:6942 +processFragment @ vue.runtime.esm.js:7158 +patch @ vue.runtime.esm.js:6668 +mountChildren @ vue.runtime.esm.js:6942 +mountElement @ vue.runtime.esm.js:6849 +processElement @ vue.runtime.esm.js:6814 +patch @ vue.runtime.esm.js:6682 +mountChildren @ vue.runtime.esm.js:6942 +mountElement @ vue.runtime.esm.js:6849 +processElement @ vue.runtime.esm.js:6814 +patch @ vue.runtime.esm.js:6682 +mountChildren @ vue.runtime.esm.js:6942 +mountElement @ vue.runtime.esm.js:6849 +processElement @ vue.runtime.esm.js:6814 +patch @ vue.runtime.esm.js:6682 +mountChildren @ vue.runtime.esm.js:6942 +mountElement @ vue.runtime.esm.js:6849 +processElement @ vue.runtime.esm.js:6814 +patch @ vue.runtime.esm.js:6682 +componentUpdateFn @ vue.runtime.esm.js:7372 +run @ vue.runtime.esm.js:153 +instance.update @ vue.runtime.esm.js:7497 +setupRenderEffect @ vue.runtime.esm.js:7507 +mountComponent @ vue.runtime.esm.js:7274 +processComponent @ vue.runtime.esm.js:7228 +patch @ vue.runtime.esm.js:6694 +mountChildren @ vue.runtime.esm.js:6942 +processFragment @ vue.runtime.esm.js:7158 +patch @ vue.runtime.esm.js:6668 +mountChildren @ vue.runtime.esm.js:6942 +mountElement @ vue.runtime.esm.js:6849 +processElement @ vue.runtime.esm.js:6814 +patch @ vue.runtime.esm.js:6682 +componentUpdateFn @ vue.runtime.esm.js:7372 +run @ vue.runtime.esm.js:153 +instance.update @ vue.runtime.esm.js:7497 +setupRenderEffect @ vue.runtime.esm.js:7507 +mountComponent @ vue.runtime.esm.js:7274 +processComponent @ vue.runtime.esm.js:7228 +patch @ vue.runtime.esm.js:6694 +mountChildren @ vue.runtime.esm.js:6942 +processFragment @ vue.runtime.esm.js:7158 +patch @ vue.runtime.esm.js:6668 +mountChildren @ vue.runtime.esm.js:6942 +mountElement @ vue.runtime.esm.js:6849 +processElement @ vue.runtime.esm.js:6814 +patch @ vue.runtime.esm.js:6682 +componentUpdateFn @ vue.runtime.esm.js:7372 +run @ vue.runtime.esm.js:153 +instance.update @ vue.runtime.esm.js:7497 +setupRenderEffect @ vue.runtime.esm.js:7507 +mountComponent @ vue.runtime.esm.js:7274 +processComponent @ vue.runtime.esm.js:7228 +patch @ vue.runtime.esm.js:6694 +patchBlockChildren @ vue.runtime.esm.js:7084 +processFragment @ vue.runtime.esm.js:7176 +patch @ vue.runtime.esm.js:6668 +patchKeyedChildren @ vue.runtime.esm.js:7650 +patchChildren @ vue.runtime.esm.js:7564 +patchElement @ vue.runtime.esm.js:6989 +processElement @ vue.runtime.esm.js:6825 +patch @ vue.runtime.esm.js:6682 +componentUpdateFn @ vue.runtime.esm.js:7453 +run @ vue.runtime.esm.js:153 +instance.update @ vue.runtime.esm.js:7497 +callWithErrorHandling @ vue.runtime.esm.js:1381 +flushJobs @ vue.runtime.esm.js:1585 +Promise.then +queueFlush @ vue.runtime.esm.js:1494 +queueJob @ vue.runtime.esm.js:1488 +(anonymous) @ vue.runtime.esm.js:7491 +resetScheduling @ vue.runtime.esm.js:236 +triggerEffects @ vue.runtime.esm.js:280 +triggerRefValue @ vue.runtime.esm.js:1033 +set value @ vue.runtime.esm.js:1078 +handleAdd @ list.uvue:297 +callWithErrorHandling @ vue.runtime.esm.js:1381 +callWithAsyncErrorHandling @ vue.runtime.esm.js:1388 +invoker @ vue.runtime.esm.js:10253 +uni-h5.es.js:19975 [Vue warn]: Unhandled error during execution of native event handler + at +at +at +at +at +at +at +at +at at at at @@ -55,6 +317,296 @@ at at at at -AdminLayout.uvue:271 TypeError: Failed to fetch dynamically imported module: http://localhost:5173/pages/mall/admin/marketing/newcomer/index.uvue?import - - +warnHandler @ uni-h5.es.js:19975 +callWithErrorHandling @ vue.runtime.esm.js:1381 +warn$1 @ vue.runtime.esm.js:1207 +logError @ vue.runtime.esm.js:1438 +errorHandler @ uni-h5.es.js:19600 +callWithErrorHandling @ vue.runtime.esm.js:1381 +handleError @ vue.runtime.esm.js:1421 +callWithErrorHandling @ vue.runtime.esm.js:1383 +callWithAsyncErrorHandling @ vue.runtime.esm.js:1388 +invoker @ vue.runtime.esm.js:10253 +vue.runtime.esm.js:1443 TypeError: _ctx.formatText is not a function + at _createVNode.onClick._cache.._cache. (list.uvue?t=1772068177429&import:980:85) + at callWithErrorHandling (vue.runtime.esm.js:1381:19) + at callWithAsyncErrorHandling (vue.runtime.esm.js:1388:17) + at UniTextElement.invoker (vue.runtime.esm.js:10253:5) +logError @ vue.runtime.esm.js:1443 +errorHandler @ uni-h5.es.js:19600 +callWithErrorHandling @ vue.runtime.esm.js:1381 +handleError @ vue.runtime.esm.js:1421 +callWithErrorHandling @ vue.runtime.esm.js:1383 +callWithAsyncErrorHandling @ vue.runtime.esm.js:1388 +invoker @ vue.runtime.esm.js:10253 +uni-h5.es.js:19975 [Vue warn]: Unhandled error during execution of native event handler + at +at +at +at +at +at +at +at +at +at +at +at +at +at +at +at +at +at +at +at +at +at +at +at +warnHandler @ uni-h5.es.js:19975 +callWithErrorHandling @ vue.runtime.esm.js:1381 +warn$1 @ vue.runtime.esm.js:1207 +logError @ vue.runtime.esm.js:1438 +errorHandler @ uni-h5.es.js:19600 +callWithErrorHandling @ vue.runtime.esm.js:1381 +handleError @ vue.runtime.esm.js:1421 +callWithErrorHandling @ vue.runtime.esm.js:1383 +callWithAsyncErrorHandling @ vue.runtime.esm.js:1388 +invoker @ vue.runtime.esm.js:10253 +vue.runtime.esm.js:1443 TypeError: _ctx.formatText is not a function + at _createVNode.onClick._cache.._cache. (list.uvue?t=1772068177429&import:990:85) + at callWithErrorHandling (vue.runtime.esm.js:1381:19) + at callWithAsyncErrorHandling (vue.runtime.esm.js:1388:17) + at UniTextElement.invoker (vue.runtime.esm.js:10253:5) +logError @ vue.runtime.esm.js:1443 +errorHandler @ uni-h5.es.js:19600 +callWithErrorHandling @ vue.runtime.esm.js:1381 +handleError @ vue.runtime.esm.js:1421 +callWithErrorHandling @ vue.runtime.esm.js:1383 +callWithAsyncErrorHandling @ vue.runtime.esm.js:1388 +invoker @ vue.runtime.esm.js:10253 +uni-h5.es.js:19975 [Vue warn]: Unhandled error during execution of native event handler + at +at +at +at +at +at +at +at +at +at +at +at +at +at +at +at +at +at +at +at +at +at +at +at +warnHandler @ uni-h5.es.js:19975 +callWithErrorHandling @ vue.runtime.esm.js:1381 +warn$1 @ vue.runtime.esm.js:1207 +logError @ vue.runtime.esm.js:1438 +errorHandler @ uni-h5.es.js:19600 +callWithErrorHandling @ vue.runtime.esm.js:1381 +handleError @ vue.runtime.esm.js:1421 +callWithErrorHandling @ vue.runtime.esm.js:1383 +callWithAsyncErrorHandling @ vue.runtime.esm.js:1388 +invoker @ vue.runtime.esm.js:10253 +vue.runtime.esm.js:1443 TypeError: _ctx.formatText is not a function + at _createVNode.onClick._cache.._cache. (list.uvue?t=1772068177429&import:1000:85) + at callWithErrorHandling (vue.runtime.esm.js:1381:19) + at callWithAsyncErrorHandling (vue.runtime.esm.js:1388:17) + at UniTextElement.invoker (vue.runtime.esm.js:10253:5) +logError @ vue.runtime.esm.js:1443 +errorHandler @ uni-h5.es.js:19600 +callWithErrorHandling @ vue.runtime.esm.js:1381 +handleError @ vue.runtime.esm.js:1421 +callWithErrorHandling @ vue.runtime.esm.js:1383 +callWithAsyncErrorHandling @ vue.runtime.esm.js:1388 +invoker @ vue.runtime.esm.js:10253 +list.uvue?t=1772068177429&import:1010 [Vue warn]: Property "insertImage" was accessed during render but is not defined on instance. + at +at +at +at +at +at +at +at +at +at +at +at +at +at +at +at +at +at +at +at +at +at +at +warnHandler @ uni-h5.es.js:19975 +callWithErrorHandling @ vue.runtime.esm.js:1381 +warn$1 @ vue.runtime.esm.js:1207 +get @ vue.runtime.esm.js:4455 +(anonymous) @ list.uvue?t=1772068177429&import:1010 +renderFnWithContext @ vue.runtime.esm.js:2033 +renderSlot @ vue.runtime.esm.js:4254 +(anonymous) @ uni-h5.es.js:18666 +renderComponentRoot @ vue.runtime.esm.js:2092 +componentUpdateFn @ vue.runtime.esm.js:7444 +run @ vue.runtime.esm.js:153 +instance.update @ vue.runtime.esm.js:7497 +updateComponent @ vue.runtime.esm.js:7305 +processComponent @ vue.runtime.esm.js:7239 +patch @ vue.runtime.esm.js:6694 +patchKeyedChildren @ vue.runtime.esm.js:7650 +patchChildren @ vue.runtime.esm.js:7564 +processFragment @ vue.runtime.esm.js:7202 +patch @ vue.runtime.esm.js:6668 +patchKeyedChildren @ vue.runtime.esm.js:7650 +patchChildren @ vue.runtime.esm.js:7564 +patchElement @ vue.runtime.esm.js:6989 +processElement @ vue.runtime.esm.js:6825 +patch @ vue.runtime.esm.js:6682 +componentUpdateFn @ vue.runtime.esm.js:7453 +run @ vue.runtime.esm.js:153 +instance.update @ vue.runtime.esm.js:7497 +updateComponent @ vue.runtime.esm.js:7305 +processComponent @ vue.runtime.esm.js:7239 +patch @ vue.runtime.esm.js:6694 +patchKeyedChildren @ vue.runtime.esm.js:7650 +patchChildren @ vue.runtime.esm.js:7564 +processFragment @ vue.runtime.esm.js:7202 +patch @ vue.runtime.esm.js:6668 +patchKeyedChildren @ vue.runtime.esm.js:7650 +patchChildren @ vue.runtime.esm.js:7564 +patchElement @ vue.runtime.esm.js:6989 +processElement @ vue.runtime.esm.js:6825 +patch @ vue.runtime.esm.js:6682 +componentUpdateFn @ vue.runtime.esm.js:7453 +run @ vue.runtime.esm.js:153 +instance.update @ vue.runtime.esm.js:7497 +updateComponent @ vue.runtime.esm.js:7305 +processComponent @ vue.runtime.esm.js:7239 +patch @ vue.runtime.esm.js:6694 +patchKeyedChildren @ vue.runtime.esm.js:7650 +patchChildren @ vue.runtime.esm.js:7564 +processFragment @ vue.runtime.esm.js:7202 +patch @ vue.runtime.esm.js:6668 +patchKeyedChildren @ vue.runtime.esm.js:7650 +patchChildren @ vue.runtime.esm.js:7564 +patchElement @ vue.runtime.esm.js:6989 +processElement @ vue.runtime.esm.js:6825 +patch @ vue.runtime.esm.js:6682 +patchKeyedChildren @ vue.runtime.esm.js:7650 +patchChildren @ vue.runtime.esm.js:7564 +patchElement @ vue.runtime.esm.js:6989 +processElement @ vue.runtime.esm.js:6825 +patch @ vue.runtime.esm.js:6682 +patchKeyedChildren @ vue.runtime.esm.js:7650 +patchChildren @ vue.runtime.esm.js:7564 +patchElement @ vue.runtime.esm.js:6989 +processElement @ vue.runtime.esm.js:6825 +patch @ vue.runtime.esm.js:6682 +patchKeyedChildren @ vue.runtime.esm.js:7650 +patchChildren @ vue.runtime.esm.js:7564 +patchElement @ vue.runtime.esm.js:6989 +processElement @ vue.runtime.esm.js:6825 +patch @ vue.runtime.esm.js:6682 +componentUpdateFn @ vue.runtime.esm.js:7453 +run @ vue.runtime.esm.js:153 +instance.update @ vue.runtime.esm.js:7497 +updateComponent @ vue.runtime.esm.js:7305 +processComponent @ vue.runtime.esm.js:7239 +patch @ vue.runtime.esm.js:6694 +patchKeyedChildren @ vue.runtime.esm.js:7650 +patchChildren @ vue.runtime.esm.js:7564 +processFragment @ vue.runtime.esm.js:7202 +patch @ vue.runtime.esm.js:6668 +patchKeyedChildren @ vue.runtime.esm.js:7650 +patchChildren @ vue.runtime.esm.js:7564 +patchElement @ vue.runtime.esm.js:6989 +processElement @ vue.runtime.esm.js:6825 +patch @ vue.runtime.esm.js:6682 +componentUpdateFn @ vue.runtime.esm.js:7453 +run @ vue.runtime.esm.js:153 +instance.update @ vue.runtime.esm.js:7497 +updateComponent @ vue.runtime.esm.js:7305 +processComponent @ vue.runtime.esm.js:7239 +patch @ vue.runtime.esm.js:6694 +patchBlockChildren @ vue.runtime.esm.js:7084 +processFragment @ vue.runtime.esm.js:7176 +patch @ vue.runtime.esm.js:6668 +patchKeyedChildren @ vue.runtime.esm.js:7650 +patchChildren @ vue.runtime.esm.js:7564 +patchElement @ vue.runtime.esm.js:6989 +processElement @ vue.runtime.esm.js:6825 +patch @ vue.runtime.esm.js:6682 +componentUpdateFn @ vue.runtime.esm.js:7453 +run @ vue.runtime.esm.js:153 +instance.update @ vue.runtime.esm.js:7497 +updateComponent @ vue.runtime.esm.js:7305 +processComponent @ vue.runtime.esm.js:7239 +patch @ vue.runtime.esm.js:6694 +patchBlockChildren @ vue.runtime.esm.js:7084 +processFragment @ vue.runtime.esm.js:7176 +patch @ vue.runtime.esm.js:6668 +patchKeyedChildren @ vue.runtime.esm.js:7650 +patchChildren @ vue.runtime.esm.js:7564 +patchElement @ vue.runtime.esm.js:6989 +processElement @ vue.runtime.esm.js:6825 +patch @ vue.runtime.esm.js:6682 +componentUpdateFn @ vue.runtime.esm.js:7453 +run @ vue.runtime.esm.js:153 +instance.update @ vue.runtime.esm.js:7497 +callWithErrorHandling @ vue.runtime.esm.js:1381 +flushJobs @ vue.runtime.esm.js:1585 +Promise.then +queueFlush @ vue.runtime.esm.js:1494 +queueJob @ vue.runtime.esm.js:1488 +(anonymous) @ vue.runtime.esm.js:7491 +resetScheduling @ vue.runtime.esm.js:236 +triggerEffects @ vue.runtime.esm.js:280 +triggerRefValue @ vue.runtime.esm.js:1033 +set value @ vue.runtime.esm.js:1078 +closeDrawer @ list.uvue:314 +callWithErrorHandling @ vue.runtime.esm.js:1381 +callWithAsyncErrorHandling @ vue.runtime.esm.js:1388 +invoker @ vue.runtime.esm.js:10253 +list.uvue?t=1772068177429&import:1028 [Vue warn]: Property "onEditorReady" was accessed during render but is not defined on instance. + at +at +at +at +at +at +at +at +at +at +at +at +at +at +at +at +at +at +at +at +at +at +at \ No newline at end of file