初始化参股
This commit is contained in:
@@ -0,0 +1 @@
|
||||
{"code":"import { defineComponent as _defineComponent } from 'vue';\nimport { o as _o, gei as _gei, sei as _sei, e as _e } from \"vue\";\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'before-after',\n props: {\n beforeImage: {},\n afterImage: {},\n showTitle: { type: Boolean }\n },\n setup(__props) {\n const props = __props;\n // 预览图片\n const previewImage = (url, type) => {\n const urls = type == 'before' ? [props.beforeImage] : [props.afterImage];\n uni.previewImage({\n current: url,\n urls: urls\n });\n };\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: _ctx.showTitle\n }, _ctx.showTitle ? {} : {}, {\n b: _ctx.beforeImage,\n c: _o($event => { return previewImage(_ctx.beforeImage, 'before'); }),\n d: _ctx.afterImage,\n e: _o($event => { return previewImage(_ctx.afterImage, 'after'); }),\n f: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/Project/Self/%E4%BC%98%E8%89%BA%E5%AE%B6%E6%B2%99%E5%8F%91%E7%BF%BB%E6%96%B0/%E4%BC%98%E8%89%BA%E5%AE%B6%E6%B2%99%E5%8F%91%E7%BF%BB%E6%96%B0/components/before-after/before-after.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/Soft/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/Soft/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":["uni.previewImage"],"map":"{\"version\":3,\"file\":\"before-after.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"before-after.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"AAAA,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,MAAM,KAAK,CAAA;AACzD,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,KAAK,CAAA;AAGhE,eAAe,aAAa,CAAA,gBAAgB,CAAC;IAC3C,MAAM,EAAE,cAAc;IACtB,KAAK,EAAE;QACL,WAAW,EAAE,EAAE;QACf,UAAU,EAAE,EAAE;QACd,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;KAC7B;IACD,KAAK,CAAC,OAAY;QAEnB,MAAM,KAAK,GAAG,OAAO,CAAA;QAErB,OAAO;QACP,MAAM,YAAY,GAAG,CAAC,GAAY,EAAE,IAAa;YAChD,MAAM,IAAI,GAAG,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;YACxE,GAAG,CAAC,YAAY,CAAC;gBAChB,OAAO,EAAE,GAAG;gBACZ,IAAI,EAAE,IAAI;aACV,CAAC,CAAA;QACH,CAAC,CAAA;QAEF,OAAO,CAAC,IAAI,EAAE,MAAM;YAAO,QAAQ,CAAA;YACjC,MAAM,YAAY,GAAG,EAAE,CAAC;gBACxB,CAAC,EAAE,IAAI,CAAC,SAAS;aAClB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC3B,CAAC,EAAE,IAAI,CAAC,WAAW;gBACnB,CAAC,EAAE,EAAE,CAAC,MAAM,MAAI,OAAA,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAxC,CAAwC,CAAC;gBACzD,CAAC,EAAE,IAAI,CAAC,UAAU;gBAClB,CAAC,EAAE,EAAE,CAAC,MAAM,MAAI,OAAA,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,EAAtC,CAAsC,CAAC;gBACvD,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC;aAChC,CAAC,CAAA;YACA,OAAO,YAAY,CAAA;QACrB,CAAC,CAAA;IACD,CAAC;CAEA,CAAC,CAAA\"}"}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"code":"import {} from \"vue\";\nexport default defineComponent({\n onLaunch() {\n uni.__f__('log', 'at App.uvue:7', 'App Launch');\n },\n onShow() {\n uni.__f__('log', 'at App.uvue:10', 'App Show');\n },\n onHide() {\n uni.__f__('log', 'at App.uvue:13', 'App Hide');\n },\n onExit() {\n uni.__f__('log', 'at App.uvue:34', 'App Exit');\n },\n});\n//# sourceMappingURL=D:/Project/Self/%E4%BC%98%E8%89%BA%E5%AE%B6%E6%B2%99%E5%8F%91%E7%BF%BB%E6%96%B0/%E4%BC%98%E8%89%BA%E5%AE%B6%E6%B2%99%E5%8F%91%E7%BF%BB%E6%96%B0/App.uvue?vue&type=script&lang.uts.js.map","references":[],"uniExtApis":["uni.__f__"],"map":"{\"version\":3,\"file\":\"App.uvue?vue&type=script&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"App.uvue?vue&type=script&lang.uts\"],\"names\":[],\"mappings\":\";AAIC,+BAAe;IACd,QAAQ;QACP,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,eAAe,EAAC,YAAY,CAAC,CAAA;IAC9C,CAAC;IACD,MAAM;QACL,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,gBAAgB,EAAC,UAAU,CAAC,CAAA;IAC7C,CAAC;IACD,MAAM;QACL,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,gBAAgB,EAAC,UAAU,CAAC,CAAA;IAC7C,CAAC;IAmBD,MAAM;QACL,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,gBAAgB,EAAC,UAAU,CAAC,CAAA;IAC7C,CAAC;CACD,EAAA\"}"}
|
||||
@@ -0,0 +1 @@
|
||||
{"code":"import { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, o as _o, gei as _gei, sei as _sei } from \"vue\";\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'service-card',\n props: {\n id: {},\n name: {},\n icon: {}\n },\n emits: [\"click\"],\n setup(__props, _a) {\n var __emit = _a.emit;\n const props = __props;\n const emit = __emit;\n const handleClick = () => {\n emit('click', props.id);\n };\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = {\n a: _ctx.icon,\n b: _t(_ctx.name),\n c: _sei(_gei(_ctx, ''), 'view'),\n d: _o(handleClick)\n };\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/Project/Self/%E4%BC%98%E8%89%BA%E5%AE%B6%E6%B2%99%E5%8F%91%E7%BF%BB%E6%96%B0/%E4%BC%98%E8%89%BA%E5%AE%B6%E6%B2%99%E5%8F%91%E7%BF%BB%E6%96%B0/components/service-card/service-card.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/Soft/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/Soft/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":[],"map":"{\"version\":3,\"file\":\"service-card.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"service-card.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"AAAA,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,MAAM,KAAK,CAAA;AACzD,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,EAAE,GAAG,IAAI,IAAI,EAAE,MAAM,KAAK,CAAA;AAGrG,eAAe,aAAa,CAAA,gBAAgB,CAAC;IAC3C,MAAM,EAAE,cAAc;IACtB,KAAK,EAAE;QACL,EAAE,EAAE,EAAE;QACN,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,EAAE;KACT;IACD,KAAK,EAAE,CAAC,OAAO,CAAC;IAChB,KAAK,CAAC,OAAY,EAAE,EAAgB;YAAR,MAAM,UAAA;QAEnC,MAAM,KAAK,GAAG,OAAO,CAAA;QAErB,MAAM,IAAI,GAAG,MAAM,CAAA;QAEnB,MAAM,WAAW,GAAG;YACnB,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,CAAA;QACxB,CAAC,CAAA;QAEF,OAAO,CAAC,IAAI,EAAE,MAAM;YAAO,QAAQ,CAAA;YACjC,MAAM,YAAY,GAAG;gBACrB,CAAC,EAAE,IAAI,CAAC,IAAI;gBACZ,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;gBAChB,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC;gBAC/B,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC;aACnB,CAAA;YACC,OAAO,YAAY,CAAA;QACrB,CAAC,CAAA;IACD,CAAC;CAEA,CAAC,CAAA\"}"}
|
||||
@@ -0,0 +1 @@
|
||||
{"code":"import { defineComponent as _defineComponent } from 'vue';\nimport { unref as _unref, o as _o, toDisplayString as _toDisplayString, t as _t, e as _e } from \"vue\";\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'nav-bar',\n props: {\n title: {},\n showBack: { type: Boolean },\n titleColor: {},\n bgColor: {}\n },\n setup(__props) {\n const props = __props;\n // 状态栏高度\n const statusBarHeight = ref(20);\n // 导航栏高度\n const navBarHeight = ref(44);\n onMounted(() => {\n const sysInfo = uni.getSystemInfoSync();\n statusBarHeight.value = sysInfo.statusBarHeight;\n const menuButtonInfo = uni.getMenuButtonBoundingClientRect();\n navBarHeight.value = (menuButtonInfo.top - sysInfo.statusBarHeight) * 2 + menuButtonInfo.height;\n });\n const handleBack = () => {\n uni.navigateBack(new UTSJSONObject({\n fail: () => {\n uni.switchTab({\n url: '/pages/index/index'\n });\n }\n }));\n };\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: _ctx.showBack\n }, _ctx.showBack ? {\n b: _o(handleBack)\n } : {}, {\n c: _t(_ctx.title),\n d: _ctx.titleColor,\n e: _unref(navBarHeight) + 'px',\n f: _unref(statusBarHeight) + 'px',\n g: _unref(statusBarHeight) + _unref(navBarHeight) + 'px'\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/Project/Self/%E4%BC%98%E8%89%BA%E5%AE%B6%E6%B2%99%E5%8F%91%E7%BF%BB%E6%96%B0/%E4%BC%98%E8%89%BA%E5%AE%B6%E6%B2%99%E5%8F%91%E7%BF%BB%E6%96%B0/components/nav-bar/nav-bar.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/Soft/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/Soft/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":["uni.getSystemInfoSync","uni.getMenuButtonBoundingClientRect","uni.switchTab","uni.navigateBack"],"map":"{\"version\":3,\"file\":\"nav-bar.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"nav-bar.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"AAAA,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,MAAM,KAAK,CAAA;AACzD,OAAO,EAAE,KAAK,IAAI,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,eAAe,IAAI,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,KAAK,CAAA;AAGrG,eAAe,aAAa,CAAA,gBAAgB,CAAC;IAC3C,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE;QACL,KAAK,EAAE,EAAE;QACT,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;QAC3B,UAAU,EAAE,EAAE;QACd,OAAO,EAAE,EAAE;KACZ;IACD,KAAK,CAAC,OAAY;QAEnB,MAAM,KAAK,GAAG,OAAO,CAAA;QAErB,QAAQ;QACR,MAAM,eAAe,GAAG,GAAG,CAAC,EAAE,CAAC,CAAA;QAC/B,QAAQ;QACR,MAAM,YAAY,GAAG,GAAG,CAAC,EAAE,CAAC,CAAA;QAE5B,SAAS,CAAC;YACT,MAAM,OAAO,GAAG,GAAG,CAAC,iBAAiB,EAAE,CAAA;YACvC,eAAe,CAAC,KAAK,GAAG,OAAO,CAAC,eAAe,CAAA;YAE/C,MAAM,cAAc,GAAG,GAAG,CAAC,+BAA+B,EAAE,CAAA;YAC5D,YAAY,CAAC,KAAK,GAAG,CAAC,cAAc,CAAC,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,MAAM,CAAA;QAEhG,CAAC,CAAC,CAAA;QAEF,MAAM,UAAU,GAAG;YAClB,GAAG,CAAC,YAAY,mBAAC;gBAChB,IAAI,EAAE;oBACL,GAAG,CAAC,SAAS,CAAC;wBACb,GAAG,EAAE,oBAAoB;qBACzB,CAAC,CAAA;gBACH,CAAC;aACD,EAAC,CAAA;QACH,CAAC,CAAA;QAEF,OAAO,CAAC,IAAI,EAAE,MAAM;YAAO,QAAQ,CAAA;YACjC,MAAM,YAAY,GAAG,EAAE,CAAC;gBACxB,CAAC,EAAE,IAAI,CAAC,QAAQ;aACjB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACjB,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC;aAClB,CAAC,CAAC,CAAC,EAAE,EAAE;gBACN,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;gBACjB,CAAC,EAAE,IAAI,CAAC,UAAU;gBAClB,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,GAAG,IAAI;gBAC9B,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC,GAAG,IAAI;gBACjC,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,IAAI;aACzD,CAAC,CAAA;YACA,OAAO,YAAY,CAAA;QACrB,CAAC,CAAA;IACD,CAAC;CAEA,CAAC,CAAA\"}"}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"code":"import { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, o as _o, gei as _gei, sei as _sei } from \"vue\";\nclass CaseItem extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n title: { type: String, optional: false },\n category: { type: String, optional: false },\n categoryName: { type: String, optional: false },\n coverImage: { type: String, optional: false },\n material: { type: String, optional: false },\n duration: { type: String, optional: false },\n price: { type: String, optional: false },\n views: { type: Number, optional: false },\n likes: { type: Number, optional: false }\n };\n },\n name: \"CaseItem\"\n };\n }\n constructor(options, metadata = CaseItem.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.title = this.__props__.title;\n this.category = this.__props__.category;\n this.categoryName = this.__props__.categoryName;\n this.coverImage = this.__props__.coverImage;\n this.material = this.__props__.material;\n this.duration = this.__props__.duration;\n this.price = this.__props__.price;\n this.views = this.__props__.views;\n this.likes = this.__props__.likes;\n delete this.__props__;\n }\n}\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'case-card',\n props: {\n caseData: {}\n },\n emits: [\"click\"],\n setup(__props, _a) {\n var __emit = _a.emit;\n // 定义Props类型\n const props = __props;\n const emit = __emit;\n const handleClick = () => {\n emit('click', props.caseData.id);\n };\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = {\n a: _ctx.caseData.coverImage,\n b: _t(_ctx.caseData.categoryName),\n c: _t(_ctx.caseData.title),\n d: _t(_ctx.caseData.material),\n e: _t(_ctx.caseData.duration),\n f: _t(_ctx.caseData.price),\n g: _t(_ctx.caseData.views),\n h: _t(_ctx.caseData.likes),\n i: _sei(_gei(_ctx, ''), 'view'),\n j: _o(handleClick)\n };\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/Project/Self/%E4%BC%98%E8%89%BA%E5%AE%B6%E6%B2%99%E5%8F%91%E7%BF%BB%E6%96%B0/%E4%BC%98%E8%89%BA%E5%AE%B6%E6%B2%99%E5%8F%91%E7%BF%BB%E6%96%B0/components/case-card/case-card.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/Soft/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/Soft/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":[],"map":"{\"version\":3,\"file\":\"case-card.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"case-card.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"AAAA,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,MAAM,KAAK,CAAA;AACzD,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,EAAE,GAAG,IAAI,IAAI,EAAE,MAAM,KAAK,CAAA;MAEhG,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcb,eAAe,aAAa,CAAA,gBAAgB,CAAC;IAC3C,MAAM,EAAE,WAAW;IACnB,KAAK,EAAE;QACL,QAAQ,EAAE,EAAE;KACb;IACD,KAAK,EAAE,CAAC,OAAO,CAAC;IAChB,KAAK,CAAC,OAAY,EAAE,EAAgB;YAAR,MAAM,UAAA;QAEnC,YAAY;QACZ,MAAM,KAAK,GAAG,OAAO,CAAA;QAErB,MAAM,IAAI,GAAG,MAAM,CAAA;QAEnB,MAAM,WAAW,GAAG;YACnB,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QACjC,CAAC,CAAA;QAEF,OAAO,CAAC,IAAI,EAAE,MAAM;YAAO,QAAQ,CAAA;YACjC,MAAM,YAAY,GAAG;gBACrB,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU;gBAC3B,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;gBACjC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAC1B,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAC7B,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAC7B,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAC1B,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAC1B,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAC1B,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC;gBAC/B,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC;aACnB,CAAA;YACC,OAAO,YAAY,CAAA;QACrB,CAAC,CAAA;IACD,CAAC;CAEA,CAAC,CAAA\"}"}
|
||||
@@ -0,0 +1 @@
|
||||
{"code":"import { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, o as _o, gei as _gei, sei as _sei, e as _e } from \"vue\";\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'section-header',\n props: {\n title: {},\n showMore: { type: Boolean }\n },\n emits: [\"more\"],\n setup(__props, _a) {\n var __emit = _a.emit;\n const props = __props;\n const emit = __emit;\n const handleMore = () => {\n emit('more');\n };\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: _t(_ctx.title),\n b: _ctx.showMore\n }, _ctx.showMore ? {\n c: _o(handleMore)\n } : {}, {\n d: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/Project/Self/%E4%BC%98%E8%89%BA%E5%AE%B6%E6%B2%99%E5%8F%91%E7%BF%BB%E6%96%B0/%E4%BC%98%E8%89%BA%E5%AE%B6%E6%B2%99%E5%8F%91%E7%BF%BB%E6%96%B0/components/section-header/section-header.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/Soft/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/Soft/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":[],"map":"{\"version\":3,\"file\":\"section-header.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"section-header.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"AAAA,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,MAAM,KAAK,CAAA;AACzD,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,KAAK,CAAA;AAG9G,eAAe,aAAa,CAAA,gBAAgB,CAAC;IAC3C,MAAM,EAAE,gBAAgB;IACxB,KAAK,EAAE;QACL,KAAK,EAAE,EAAE;QACT,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;KAC5B;IACD,KAAK,EAAE,CAAC,MAAM,CAAC;IACf,KAAK,CAAC,OAAY,EAAE,EAAgB;YAAR,MAAM,UAAA;QAEnC,MAAM,KAAK,GAAG,OAAO,CAAA;QAErB,MAAM,IAAI,GAAG,MAAM,CAAA;QAEnB,MAAM,UAAU,GAAG;YAClB,IAAI,CAAC,MAAM,CAAC,CAAA;QACb,CAAC,CAAA;QAEF,OAAO,CAAC,IAAI,EAAE,MAAM;YAAO,QAAQ,CAAA;YACjC,MAAM,YAAY,GAAG,EAAE,CAAC;gBACxB,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;gBACjB,CAAC,EAAE,IAAI,CAAC,QAAQ;aACjB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACjB,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC;aAClB,CAAC,CAAC,CAAC,EAAE,EAAE;gBACN,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC;aAChC,CAAC,CAAA;YACA,OAAO,YAAY,CAAA;QACrB,CAAC,CAAA;IACD,CAAC;CAEA,CAAC,CAAA\"}"}
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"code":"import { get, post } from \"../utils/request\";\n/**\n * 获取轮播图\n */\nexport const getBanners = () => {\n return get('/banners');\n};\n/**\n * 获取案例列表\n */\nexport const getCaseList = (params) => {\n return get('/cases', params);\n};\n/**\n * 获取案例详情\n */\nexport const getCaseDetail = (id) => {\n return get(`/cases/${id}`);\n};\n/**\n * 获取热门案例\n */\nexport const getHotCases = () => {\n return get('/cases/hot');\n};\n/**\n * 获取服务流程\n */\nexport const getServiceProcess = () => {\n return get('/service/process');\n};\n/**\n * 获取公司信息\n */\nexport const getCompanyInfo = () => {\n return get('/company/info');\n};\n/**\n * 提交预约\n */\nexport const submitBooking = (data) => {\n return post('/booking', data);\n};\n/**\n * 获取用户信息\n */\nexport const getUserInfo = () => {\n return get('/user/info');\n};\n/**\n * 获取用户收藏列表\n */\nexport const getFavorites = () => {\n return get('/user/favorites');\n};\n/**\n * 添加收藏\n */\nexport const addFavorite = (caseId) => {\n return post('/user/favorites', new UTSJSONObject({ caseId: caseId }));\n};\n/**\n * 取消收藏\n */\nexport const removeFavorite = (caseId) => {\n return post('/user/favorites/remove', new UTSJSONObject({ caseId: caseId }));\n};\n/**\n * 获取预约记录\n */\nexport const getBookingList = () => {\n return get('/user/bookings');\n};\n//# sourceMappingURL=D:/Project/Self/%E4%BC%98%E8%89%BA%E5%AE%B6%E6%B2%99%E5%8F%91%E7%BF%BB%E6%96%B0/%E4%BC%98%E8%89%BA%E5%AE%B6%E6%B2%99%E5%8F%91%E7%BF%BB%E6%96%B0/api/index.uts.js.map","references":[],"uniExtApis":[],"map":"{\"version\":3,\"file\":\"index.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"index.uts\"],\"names\":[],\"mappings\":\"OAGO,EAAE,GAAG,EAAE,IAAI,EAAE;AAEpB;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACzB,OAAO,GAAG,CAAC,UAAU,CAAC,CAAA;AACvB,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,MAAsB;IACjD,OAAO,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;AAC7B,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAAW;IACxC,OAAO,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;AAC3B,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IAC1B,OAAO,GAAG,CAAC,YAAY,CAAC,CAAA;AACzB,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAChC,OAAO,GAAG,CAAC,kBAAkB,CAAC,CAAA;AAC/B,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC7B,OAAO,GAAG,CAAC,eAAe,CAAC,CAAA;AAC5B,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAoB;IACjD,OAAO,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;AAC9B,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IAC1B,OAAO,GAAG,CAAC,YAAY,CAAC,CAAA;AACzB,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC3B,OAAO,GAAG,CAAC,iBAAiB,CAAC,CAAA;AAC9B,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,MAAe;IAC1C,OAAO,IAAI,CAAC,iBAAiB,oBAAE,EAAE,MAAM,EAAE,MAAM,EAAmB,EAAC,CAAA;AACpE,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAe;IAC7C,OAAO,IAAI,CAAC,wBAAwB,oBAAE,EAAE,MAAM,EAAE,MAAM,EAAmB,EAAC,CAAA;AAC3E,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC7B,OAAO,GAAG,CAAC,gBAAgB,CAAC,CAAA;AAC7B,CAAC,CAAA\"}"}
|
||||
@@ -0,0 +1 @@
|
||||
{"code":"import { defineComponent as _defineComponent } from 'vue';\nimport { o as _o, gei as _gei, sei as _sei, e as _e } from \"vue\";\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'before-after',\n props: {\n beforeImage: {},\n afterImage: {},\n showTitle: { type: Boolean }\n },\n setup(__props) {\n const props = __props;\n // 预览图片\n const previewImage = (url, type) => {\n const urls = type == 'before' ? [props.beforeImage] : [props.afterImage];\n uni.previewImage({\n current: url,\n urls: urls\n });\n };\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: _ctx.showTitle\n }, _ctx.showTitle ? {} : {}, {\n b: _ctx.beforeImage,\n c: _o($event => { return previewImage(_ctx.beforeImage, 'before'); }),\n d: _ctx.afterImage,\n e: _o($event => { return previewImage(_ctx.afterImage, 'after'); }),\n f: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/Project/Self/%E4%BC%98%E8%89%BA%E5%AE%B6%E6%B2%99%E5%8F%91%E7%BF%BB%E6%96%B0/%E4%BC%98%E8%89%BA%E5%AE%B6%E6%B2%99%E5%8F%91%E7%BF%BB%E6%96%B0/components/before-after/before-after.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/Soft/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/Soft/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":["uni.previewImage"],"map":"{\"version\":3,\"file\":\"before-after.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"before-after.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"AAAA,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,MAAM,KAAK,CAAA;AACzD,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,KAAK,CAAA;AAGhE,eAAe,aAAa,CAAA,gBAAgB,CAAC;IAC3C,MAAM,EAAE,cAAc;IACtB,KAAK,EAAE;QACL,WAAW,EAAE,EAAE;QACf,UAAU,EAAE,EAAE;QACd,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;KAC7B;IACD,KAAK,CAAC,OAAY;QAEnB,MAAM,KAAK,GAAG,OAAO,CAAA;QAErB,OAAO;QACP,MAAM,YAAY,GAAG,CAAC,GAAY,EAAE,IAAa;YAChD,MAAM,IAAI,GAAG,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;YACxE,GAAG,CAAC,YAAY,CAAC;gBAChB,OAAO,EAAE,GAAG;gBACZ,IAAI,EAAE,IAAI;aACV,CAAC,CAAA;QACH,CAAC,CAAA;QAEF,OAAO,CAAC,IAAI,EAAE,MAAM;YAAO,QAAQ,CAAA;YACjC,MAAM,YAAY,GAAG,EAAE,CAAC;gBACxB,CAAC,EAAE,IAAI,CAAC,SAAS;aAClB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC3B,CAAC,EAAE,IAAI,CAAC,WAAW;gBACnB,CAAC,EAAE,EAAE,CAAC,MAAM,MAAI,OAAA,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAxC,CAAwC,CAAC;gBACzD,CAAC,EAAE,IAAI,CAAC,UAAU;gBAClB,CAAC,EAAE,EAAE,CAAC,MAAM,MAAI,OAAA,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,EAAtC,CAAsC,CAAC;gBACvD,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC;aAChC,CAAC,CAAA;YACA,OAAO,YAAY,CAAA;QACrB,CAAC,CAAA;IACD,CAAC;CAEA,CAAC,CAAA\"}"}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"code":"/**\n * 项目配置文件\n */\n// 环境配置\nexport const ENV = new UTSJSONObject({\n // 开发环境\n development: new UTSJSONObject({\n baseUrl: 'http://localhost:3000/api',\n imageBaseUrl: 'http://localhost:3000'\n }),\n // 生产环境\n production: new UTSJSONObject({\n baseUrl: 'https://api.youyijia.com/api',\n imageBaseUrl: 'https://api.youyijia.com'\n })\n}\n// 当前环境 - 切换为 'production' 上线\n);\n// 当前环境 - 切换为 'production' 上线\nexport const currentEnv = 'development';\n// 获取当前环境配置\nexport const getEnvConfig = () => {\n if (currentEnv == 'production') {\n return new UTSJSONObject({\n baseUrl: ENV.production.baseUrl,\n imageBaseUrl: ENV.production.imageBaseUrl\n });\n }\n return new UTSJSONObject({\n baseUrl: ENV.development.baseUrl,\n imageBaseUrl: ENV.development.imageBaseUrl\n });\n};\n// 是否使用Mock数据\nexport const useMock = true;\n// 分页配置\nexport const PAGE_SIZE = 10;\n// 图片上传配置\nexport const UPLOAD_CONFIG = new UTSJSONObject({\n maxSize: 5 * 1024 * 1024,\n maxCount: 9,\n accept: ['image/jpeg', 'image/png', 'image/gif']\n}\n// 缓存Key\n);\n// 缓存Key\nexport const STORAGE_KEYS = new UTSJSONObject({\n TOKEN: 'user_token',\n USER_INFO: 'user_info',\n FAVORITES: 'user_favorites',\n SEARCH_HISTORY: 'search_history'\n}\n// 沙发分类\n);\n// 沙发分类\nexport const SOFA_CATEGORIES = [\n new UTSJSONObject({ id: 'all', name: '全部' }),\n new UTSJSONObject({ id: 'leather', name: '皮沙发' }),\n new UTSJSONObject({ id: 'fabric', name: '布艺沙发' }),\n new UTSJSONObject({ id: 'functional', name: '功能沙发' }),\n new UTSJSONObject({ id: 'antique', name: '古典沙发' }),\n new UTSJSONObject({ id: 'office', name: '办公沙发' })\n];\n// 翻新服务类型\nexport const SERVICE_TYPES = [\n new UTSJSONObject({ id: 'repair', name: '局部修复', icon: '/static/icons/repair.png' }),\n new UTSJSONObject({ id: 'recolor', name: '改色翻新', icon: '/static/icons/recolor.png' }),\n new UTSJSONObject({ id: 'refurbish', name: '整体翻新', icon: '/static/icons/refurbish.png' }),\n new UTSJSONObject({ id: 'custom', name: '定制换皮', icon: '/static/icons/custom.png' })\n];\n//# sourceMappingURL=D:/Project/Self/%E4%BC%98%E8%89%BA%E5%AE%B6%E6%B2%99%E5%8F%91%E7%BF%BB%E6%96%B0/%E4%BC%98%E8%89%BA%E5%AE%B6%E6%B2%99%E5%8F%91%E7%BF%BB%E6%96%B0/utils/config.uts.js.map","references":[],"uniExtApis":[],"map":"{\"version\":3,\"file\":\"config.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"config.uts\"],\"names\":[],\"mappings\":\"AAAA;;GAEG;AAEH,OAAO;AACP,MAAM,CAAC,MAAM,GAAG,qBAAG;IAClB,OAAO;IACP,WAAW,oBAAE;QACZ,OAAO,EAAE,2BAA2B;QACpC,YAAY,EAAE,uBAAuB;KACrC,CAAA;IACD,OAAO;IACP,UAAU,oBAAE;QACX,OAAO,EAAE,8BAA8B;QACvC,YAAY,EAAE,0BAA0B;KACxC,CAAA;CACD;AAED,6BAA6B;CAF5B,CAAA;AAED,6BAA6B;AAC7B,MAAM,CAAC,MAAM,UAAU,GAAG,aAAa,CAAA;AAEvC,WAAW;AACX,MAAM,CAAC,MAAM,YAAY,GAAG;IAC3B,IAAI,UAAU,IAAI,YAAY,EAAE;QAC/B,yBAAO;YACN,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC,OAAO;YAC/B,YAAY,EAAE,GAAG,CAAC,UAAU,CAAC,YAAY;SACxB,EAAA;KAClB;IACD,yBAAO;QACN,OAAO,EAAE,GAAG,CAAC,WAAW,CAAC,OAAO;QAChC,YAAY,EAAE,GAAG,CAAC,WAAW,CAAC,YAAY;KACzB,EAAA;AACnB,CAAC,CAAA;AAED,aAAa;AACb,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,CAAA;AAE3B,OAAO;AACP,MAAM,CAAC,MAAM,SAAS,GAAG,EAAE,CAAA;AAE3B,SAAS;AACT,MAAM,CAAC,MAAM,aAAa,qBAAG;IAC5B,OAAO,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI;IACxB,QAAQ,EAAE,CAAC;IACX,MAAM,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,WAAW,CAAC;CAChD;AAED,QAAQ;CAFP,CAAA;AAED,QAAQ;AACR,MAAM,CAAC,MAAM,YAAY,qBAAG;IAC3B,KAAK,EAAE,YAAY;IACnB,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,gBAAgB;IAC3B,cAAc,EAAE,gBAAgB;CAChC;AAED,OAAO;CAFN,CAAA;AAED,OAAO;AACP,MAAM,CAAC,MAAM,eAAe,GAAG;sBAC9B,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE;sBACzB,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE;sBAC9B,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE;sBAC9B,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE;sBAClC,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE;sBAC/B,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE;CAC9B,CAAA;AAED,SAAS;AACT,MAAM,CAAC,MAAM,aAAa,GAAG;sBAC5B,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,0BAA0B,EAAE;sBAChE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,2BAA2B,EAAE;sBAClE,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,6BAA6B,EAAE;sBACtE,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,0BAA0B,EAAE;CAChE,CAAA\"}"}
|
||||
@@ -0,0 +1 @@
|
||||
{"code":"import { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, o as _o, gei as _gei, sei as _sei } from \"vue\";\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'service-card',\n props: {\n id: {},\n name: {},\n icon: {}\n },\n emits: [\"click\"],\n setup(__props, _a) {\n var __emit = _a.emit;\n const props = __props;\n const emit = __emit;\n const handleClick = () => {\n emit('click', props.id);\n };\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = {\n a: _ctx.icon,\n b: _t(_ctx.name),\n c: _sei(_gei(_ctx, ''), 'view'),\n d: _o(handleClick)\n };\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/Project/Self/%E4%BC%98%E8%89%BA%E5%AE%B6%E6%B2%99%E5%8F%91%E7%BF%BB%E6%96%B0/%E4%BC%98%E8%89%BA%E5%AE%B6%E6%B2%99%E5%8F%91%E7%BF%BB%E6%96%B0/components/service-card/service-card.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/Soft/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/Soft/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":[],"map":"{\"version\":3,\"file\":\"service-card.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"service-card.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"AAAA,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,MAAM,KAAK,CAAA;AACzD,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,EAAE,GAAG,IAAI,IAAI,EAAE,MAAM,KAAK,CAAA;AAGrG,eAAe,aAAa,CAAA,gBAAgB,CAAC;IAC3C,MAAM,EAAE,cAAc;IACtB,KAAK,EAAE;QACL,EAAE,EAAE,EAAE;QACN,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,EAAE;KACT;IACD,KAAK,EAAE,CAAC,OAAO,CAAC;IAChB,KAAK,CAAC,OAAY,EAAE,EAAgB;YAAR,MAAM,UAAA;QAEnC,MAAM,KAAK,GAAG,OAAO,CAAA;QAErB,MAAM,IAAI,GAAG,MAAM,CAAA;QAEnB,MAAM,WAAW,GAAG;YACnB,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,CAAA;QACxB,CAAC,CAAA;QAEF,OAAO,CAAC,IAAI,EAAE,MAAM;YAAO,QAAQ,CAAA;YACjC,MAAM,YAAY,GAAG;gBACrB,CAAC,EAAE,IAAI,CAAC,IAAI;gBACZ,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;gBAChB,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC;gBAC/B,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC;aACnB,CAAA;YACC,OAAO,YAAY,CAAA;QACrB,CAAC,CAAA;IACD,CAAC;CAEA,CAAC,CAAA\"}"}
|
||||
@@ -0,0 +1 @@
|
||||
{"code":"import {} from \"vue\";\nexport default defineComponent({\n onLaunch() {\n uni.__f__('log', 'at App.uvue:7', 'App Launch');\n },\n onShow() {\n uni.__f__('log', 'at App.uvue:10', 'App Show');\n },\n onHide() {\n uni.__f__('log', 'at App.uvue:13', 'App Hide');\n },\n onExit() {\n uni.__f__('log', 'at App.uvue:34', 'App Exit');\n },\n});\n//# sourceMappingURL=D:/Project/Self/%E4%BC%98%E8%89%BA%E5%AE%B6%E6%B2%99%E5%8F%91%E7%BF%BB%E6%96%B0/%E4%BC%98%E8%89%BA%E5%AE%B6%E6%B2%99%E5%8F%91%E7%BF%BB%E6%96%B0/App.uvue?vue&type=script&lang.uts.js.map","references":[],"uniExtApis":["uni.__f__"],"map":"{\"version\":3,\"file\":\"App.uvue?vue&type=script&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"App.uvue?vue&type=script&lang.uts\"],\"names\":[],\"mappings\":\";AAIC,+BAAe;IACd,QAAQ;QACP,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,eAAe,EAAC,YAAY,CAAC,CAAA;IAC9C,CAAC;IACD,MAAM;QACL,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,gBAAgB,EAAC,UAAU,CAAC,CAAA;IAC7C,CAAC;IACD,MAAM;QACL,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,gBAAgB,EAAC,UAAU,CAAC,CAAA;IAC7C,CAAC;IAmBD,MAAM;QACL,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,gBAAgB,EAAC,UAAU,CAAC,CAAA;IAC7C,CAAC;CACD,EAAA\"}"}
|
||||
@@ -0,0 +1 @@
|
||||
{"code":"import { defineComponent as _defineComponent } from 'vue';\nimport { unref as _unref, o as _o, toDisplayString as _toDisplayString, t as _t, e as _e } from \"vue\";\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'nav-bar',\n props: {\n title: {},\n showBack: { type: Boolean },\n titleColor: {},\n bgColor: {}\n },\n setup(__props) {\n const props = __props;\n // 状态栏高度\n const statusBarHeight = ref(20);\n // 导航栏高度\n const navBarHeight = ref(44);\n onMounted(() => {\n const sysInfo = uni.getSystemInfoSync();\n statusBarHeight.value = sysInfo.statusBarHeight;\n const menuButtonInfo = uni.getMenuButtonBoundingClientRect();\n navBarHeight.value = (menuButtonInfo.top - sysInfo.statusBarHeight) * 2 + menuButtonInfo.height;\n });\n const handleBack = () => {\n uni.navigateBack(new UTSJSONObject({\n fail: () => {\n uni.switchTab({\n url: '/pages/index/index'\n });\n }\n }));\n };\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: _ctx.showBack\n }, _ctx.showBack ? {\n b: _o(handleBack)\n } : {}, {\n c: _t(_ctx.title),\n d: _ctx.titleColor,\n e: _unref(navBarHeight) + 'px',\n f: _unref(statusBarHeight) + 'px',\n g: _unref(statusBarHeight) + _unref(navBarHeight) + 'px'\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/Project/Self/%E4%BC%98%E8%89%BA%E5%AE%B6%E6%B2%99%E5%8F%91%E7%BF%BB%E6%96%B0/%E4%BC%98%E8%89%BA%E5%AE%B6%E6%B2%99%E5%8F%91%E7%BF%BB%E6%96%B0/components/nav-bar/nav-bar.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/Soft/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/Soft/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":["uni.getSystemInfoSync","uni.getMenuButtonBoundingClientRect","uni.switchTab","uni.navigateBack"],"map":"{\"version\":3,\"file\":\"nav-bar.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"nav-bar.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"AAAA,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,MAAM,KAAK,CAAA;AACzD,OAAO,EAAE,KAAK,IAAI,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,eAAe,IAAI,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,KAAK,CAAA;AAGrG,eAAe,aAAa,CAAA,gBAAgB,CAAC;IAC3C,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE;QACL,KAAK,EAAE,EAAE;QACT,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;QAC3B,UAAU,EAAE,EAAE;QACd,OAAO,EAAE,EAAE;KACZ;IACD,KAAK,CAAC,OAAY;QAEnB,MAAM,KAAK,GAAG,OAAO,CAAA;QAErB,QAAQ;QACR,MAAM,eAAe,GAAG,GAAG,CAAC,EAAE,CAAC,CAAA;QAC/B,QAAQ;QACR,MAAM,YAAY,GAAG,GAAG,CAAC,EAAE,CAAC,CAAA;QAE5B,SAAS,CAAC;YACT,MAAM,OAAO,GAAG,GAAG,CAAC,iBAAiB,EAAE,CAAA;YACvC,eAAe,CAAC,KAAK,GAAG,OAAO,CAAC,eAAe,CAAA;YAE/C,MAAM,cAAc,GAAG,GAAG,CAAC,+BAA+B,EAAE,CAAA;YAC5D,YAAY,CAAC,KAAK,GAAG,CAAC,cAAc,CAAC,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,MAAM,CAAA;QAEhG,CAAC,CAAC,CAAA;QAEF,MAAM,UAAU,GAAG;YAClB,GAAG,CAAC,YAAY,mBAAC;gBAChB,IAAI,EAAE;oBACL,GAAG,CAAC,SAAS,CAAC;wBACb,GAAG,EAAE,oBAAoB;qBACzB,CAAC,CAAA;gBACH,CAAC;aACD,EAAC,CAAA;QACH,CAAC,CAAA;QAEF,OAAO,CAAC,IAAI,EAAE,MAAM;YAAO,QAAQ,CAAA;YACjC,MAAM,YAAY,GAAG,EAAE,CAAC;gBACxB,CAAC,EAAE,IAAI,CAAC,QAAQ;aACjB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACjB,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC;aAClB,CAAC,CAAC,CAAC,EAAE,EAAE;gBACN,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;gBACjB,CAAC,EAAE,IAAI,CAAC,UAAU;gBAClB,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,GAAG,IAAI;gBAC9B,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC,GAAG,IAAI;gBACjC,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,IAAI;aACzD,CAAC,CAAA;YACA,OAAO,YAAY,CAAA;QACrB,CAAC,CAAA;IACD,CAAC;CAEA,CAAC,CAAA\"}"}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"code":"import { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, o as _o, gei as _gei, sei as _sei } from \"vue\";\nclass CaseItem extends UTS.UTSType {\n static get$UTSMetadata$() {\n return {\n kind: 2,\n get fields() {\n return {\n id: { type: String, optional: false },\n title: { type: String, optional: false },\n category: { type: String, optional: false },\n categoryName: { type: String, optional: false },\n coverImage: { type: String, optional: false },\n material: { type: String, optional: false },\n duration: { type: String, optional: false },\n price: { type: String, optional: false },\n views: { type: Number, optional: false },\n likes: { type: Number, optional: false }\n };\n },\n name: \"CaseItem\"\n };\n }\n constructor(options, metadata = CaseItem.get$UTSMetadata$(), isJSONParse = false) {\n super();\n this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);\n this.id = this.__props__.id;\n this.title = this.__props__.title;\n this.category = this.__props__.category;\n this.categoryName = this.__props__.categoryName;\n this.coverImage = this.__props__.coverImage;\n this.material = this.__props__.material;\n this.duration = this.__props__.duration;\n this.price = this.__props__.price;\n this.views = this.__props__.views;\n this.likes = this.__props__.likes;\n delete this.__props__;\n }\n}\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'case-card',\n props: {\n caseData: {}\n },\n emits: [\"click\"],\n setup(__props, _a) {\n var __emit = _a.emit;\n // 定义Props类型\n const props = __props;\n const emit = __emit;\n const handleClick = () => {\n emit('click', props.caseData.id);\n };\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = {\n a: _ctx.caseData.coverImage,\n b: _t(_ctx.caseData.categoryName),\n c: _t(_ctx.caseData.title),\n d: _t(_ctx.caseData.material),\n e: _t(_ctx.caseData.duration),\n f: _t(_ctx.caseData.price),\n g: _t(_ctx.caseData.views),\n h: _t(_ctx.caseData.likes),\n i: _sei(_gei(_ctx, ''), 'view'),\n j: _o(handleClick)\n };\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/Project/Self/%E4%BC%98%E8%89%BA%E5%AE%B6%E6%B2%99%E5%8F%91%E7%BF%BB%E6%96%B0/%E4%BC%98%E8%89%BA%E5%AE%B6%E6%B2%99%E5%8F%91%E7%BF%BB%E6%96%B0/components/case-card/case-card.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/Soft/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/Soft/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":[],"map":"{\"version\":3,\"file\":\"case-card.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"case-card.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"AAAA,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,MAAM,KAAK,CAAA;AACzD,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,EAAE,GAAG,IAAI,IAAI,EAAE,MAAM,KAAK,CAAA;MAEhG,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcb,eAAe,aAAa,CAAA,gBAAgB,CAAC;IAC3C,MAAM,EAAE,WAAW;IACnB,KAAK,EAAE;QACL,QAAQ,EAAE,EAAE;KACb;IACD,KAAK,EAAE,CAAC,OAAO,CAAC;IAChB,KAAK,CAAC,OAAY,EAAE,EAAgB;YAAR,MAAM,UAAA;QAEnC,YAAY;QACZ,MAAM,KAAK,GAAG,OAAO,CAAA;QAErB,MAAM,IAAI,GAAG,MAAM,CAAA;QAEnB,MAAM,WAAW,GAAG;YACnB,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QACjC,CAAC,CAAA;QAEF,OAAO,CAAC,IAAI,EAAE,MAAM;YAAO,QAAQ,CAAA;YACjC,MAAM,YAAY,GAAG;gBACrB,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU;gBAC3B,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;gBACjC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAC1B,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAC7B,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAC7B,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAC1B,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAC1B,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAC1B,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC;gBAC/B,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC;aACnB,CAAA;YACC,OAAO,YAAY,CAAA;QACrB,CAAC,CAAA;IACD,CAAC;CAEA,CAAC,CAAA\"}"}
|
||||
@@ -0,0 +1 @@
|
||||
{"code":"import '\u0000plugin-vue:export-helper';\nimport 'uni-mp-runtime';\nimport './pages-json-js';\nimport App from './App.uvue';\nimport { createSSRApp } from 'vue';\nexport function createApp() {\n const app = createSSRApp(App);\n return {\n app\n };\n}\n;\ncreateApp().app.mount(\"#app\");\n//# sourceMappingURL=D:/Project/Self/%E4%BC%98%E8%89%BA%E5%AE%B6%E6%B2%99%E5%8F%91%E7%BF%BB%E6%96%B0/%E4%BC%98%E8%89%BA%E5%AE%B6%E6%B2%99%E5%8F%91%E7%BF%BB%E6%96%B0/main.uts.js.map","references":["D:/Project/Self/优艺家沙发翻新/优艺家沙发翻新/App.uvue.ts","D:/Soft/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":[],"map":"{\"version\":3,\"file\":\"main.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"main.uts\"],\"names\":[],\"mappings\":\"AAAA,OAAO,2BAA2B,CAAC;AAAA,OAAO,gBAAgB,CAAC;AAAA,OAAO,iBAAiB,CAAC;AAAA,OAAO,GAAG,MAAM,YAAY,CAAA;AAEhH,OAAO,EAAE,YAAY,EAAE,MAAM,KAAK,CAAA;AAClC,MAAM,UAAU,SAAS;IACxB,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;IAC7B,OAAO;QACN,GAAG;KACH,CAAA;AACF,CAAC;AAAA,CAAC;AACF,SAAS,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC\"}"}
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"code":"import { defineComponent as _defineComponent } from 'vue';\nimport { toDisplayString as _toDisplayString, t as _t, o as _o, gei as _gei, sei as _sei, e as _e } from \"vue\";\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'section-header',\n props: {\n title: {},\n showMore: { type: Boolean }\n },\n emits: [\"more\"],\n setup(__props, _a) {\n var __emit = _a.emit;\n const props = __props;\n const emit = __emit;\n const handleMore = () => {\n emit('more');\n };\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = _e({\n a: _t(_ctx.title),\n b: _ctx.showMore\n }, _ctx.showMore ? {\n c: _o(handleMore)\n } : {}, {\n d: _sei(_gei(_ctx, ''), 'view')\n });\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/Project/Self/%E4%BC%98%E8%89%BA%E5%AE%B6%E6%B2%99%E5%8F%91%E7%BF%BB%E6%96%B0/%E4%BC%98%E8%89%BA%E5%AE%B6%E6%B2%99%E5%8F%91%E7%BF%BB%E6%96%B0/components/section-header/section-header.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/Soft/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/Soft/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":[],"map":"{\"version\":3,\"file\":\"section-header.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"section-header.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"AAAA,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,MAAM,KAAK,CAAA;AACzD,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,KAAK,CAAA;AAG9G,eAAe,aAAa,CAAA,gBAAgB,CAAC;IAC3C,MAAM,EAAE,gBAAgB;IACxB,KAAK,EAAE;QACL,KAAK,EAAE,EAAE;QACT,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;KAC5B;IACD,KAAK,EAAE,CAAC,MAAM,CAAC;IACf,KAAK,CAAC,OAAY,EAAE,EAAgB;YAAR,MAAM,UAAA;QAEnC,MAAM,KAAK,GAAG,OAAO,CAAA;QAErB,MAAM,IAAI,GAAG,MAAM,CAAA;QAEnB,MAAM,UAAU,GAAG;YAClB,IAAI,CAAC,MAAM,CAAC,CAAA;QACb,CAAC,CAAA;QAEF,OAAO,CAAC,IAAI,EAAE,MAAM;YAAO,QAAQ,CAAA;YACjC,MAAM,YAAY,GAAG,EAAE,CAAC;gBACxB,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;gBACjB,CAAC,EAAE,IAAI,CAAC,QAAQ;aACjB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACjB,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC;aAClB,CAAC,CAAC,CAAC,EAAE,EAAE;gBACN,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC;aAChC,CAAC,CAAA;YACA,OAAO,YAAY,CAAA;QACrB,CAAC,CAAA;IACD,CAAC;CAEA,CAAC,CAAA\"}"}
|
||||
File diff suppressed because one or more lines are too long
1
前端/unpackage/dist/dev/.sourcemap/mp-weixin/api/index.js.map
vendored
Normal file
1
前端/unpackage/dist/dev/.sourcemap/mp-weixin/api/index.js.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.js","sources":["api/index.uts"],"sourcesContent":["/**\r\n * API接口统一管理\r\n */\r\nimport { get, post } from '../utils/request.uts'\r\n\r\n/**\r\n * 获取轮播图 (临时从配置获取,后续可从后端获取)\r\n */\r\nexport const getBanners = () => {\r\n\t// 由于后端暂时没有轮播图API,先返回固定数据\r\n\treturn Promise.resolve({\r\n\t\tcode: 0,\r\n\t\tmessage: 'success',\r\n\t\tdata: [\r\n\t\t\t{\r\n\t\t\t\tid: '1',\r\n\t\t\t\timage: '/static/mock/banner1.svg',\r\n\t\t\t\ttitle: '专业沙发翻新服务',\r\n\t\t\t\tlink: '/pages/service/index'\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: '2',\r\n\t\t\t\timage: '/static/mock/banner2.svg', \r\n\t\t\t\ttitle: '十年品质保证',\r\n\t\t\t\tlink: '/pages/about/index'\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tid: '3',\r\n\t\t\t\timage: '/static/mock/banner3.svg',\r\n\t\t\t\ttitle: '免费上门评估', \r\n\t\t\t\tlink: '/pages/booking/index'\r\n\t\t\t}\r\n\t\t]\r\n\t})\r\n}\r\n\r\n/**\r\n * 获取案例列表\r\n */\r\nexport const getCaseList = (params ?: UTSJSONObject) => {\r\n\t// 后端使用page和limit参数,需要转换\r\n\tconst queryParams = params ? {\r\n\t\tpage: params['page'] || 1,\r\n\t\tlimit: params['pageSize'] || params['limit'] || 10,\r\n\t\tserviceType: params['category'], // 后端使用serviceType\r\n\t\tstatus: 'published' // 只获取已发布的案例\r\n\t} : {}\r\n\treturn get('/cases', queryParams as UTSJSONObject)\r\n}\r\n\r\n/**\r\n * 获取案例详情\r\n */\r\nexport const getCaseDetail = (id : string) => {\r\n\treturn get(`/cases/${id}`)\r\n}\r\n\r\n/**\r\n * 获取热门案例 (临时使用前4条案例)\r\n */\r\nexport const getHotCases = () => {\r\n\treturn get('/cases', { limit: 4, status: 'published' } as UTSJSONObject)\r\n}\r\n\r\n/**\r\n * 获取服务流程 (使用服务列表替代)\r\n */\r\nexport const getServiceProcess = () => {\r\n\treturn get('/services')\r\n}\r\n\r\n/**\r\n * 获取有效服务列表\r\n */\r\nexport const getActiveServices = () => {\r\n\treturn get('/services/active')\r\n}\r\n\r\n/**\r\n * 获取公司信息\r\n */\r\nexport const getCompanyInfo = () => {\r\n\treturn get('/company/info')\r\n}\r\n\r\n/**\r\n * 提交预约\r\n */\r\nexport const submitBooking = (data : UTSJSONObject) => {\r\n\treturn post('/booking', data)\r\n}\r\n\r\n/**\r\n * 获取用户信息\r\n */\r\nexport const getUserInfo = () => {\r\n\treturn get('/user/info')\r\n}\r\n\r\n/**\r\n * 获取用户收藏列表\r\n */\r\nexport const getFavorites = () => {\r\n\treturn get('/user/favorites')\r\n}\r\n\r\n/**\r\n * 添加收藏\r\n */\r\nexport const addFavorite = (caseId : string) => {\r\n\treturn post('/user/favorites', { caseId: caseId } as UTSJSONObject)\r\n}\r\n\r\n/**\r\n * 取消收藏\r\n */\r\nexport const removeFavorite = (caseId : string) => {\r\n\treturn post('/user/favorites/remove', { caseId: caseId } as UTSJSONObject)\r\n}\r\n\r\n/**\r\n * 获取预约记录\r\n */\r\nexport const getBookingList = () => {\r\n\treturn get('/user/bookings')\r\n}\r\n"],"names":["get","post"],"mappings":";;AAQa,MAAA,aAAa,MAAA;AAEzB,SAAO,QAAQ,QAAQ,IAAA,cAAA;AAAA,IACtB,MAAM;AAAA,IACN,SAAS;AAAA,IACT,MAAM;AAAA,MACL,IAAA,cAAA;AAAA,QACC,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAM;AAAA,MACN,CAAA;AAAA,MACD,IAAA,cAAA;AAAA,QACC,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAM;AAAA,MACN,CAAA;AAAA,MACD,IAAA,cAAA;AAAA,QACC,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,OAAO;AAAA,QACP,MAAM;AAAA,MACN,CAAA;AAAA,IACD;AAAA,EACD,CAAA,CAAA;AACF;AAKO,MAAM,cAAc,CAAC,SAAuB,SAAA;AAElD,QAAM,cAAc,SAAS,IAAA,cAAA;AAAA,IAC5B,MAAM,OAAO,MAAM,KAAK;AAAA,IACxB,OAAO,OAAO,UAAU,KAAK,OAAO,OAAO,KAAK;AAAA,IAChD,aAAa,OAAO,UAAU;AAAA,IAC9B,QAAQ;AAAA;AAAA,EACR,CAAA,IAAE,IAAA,cAAC,CAAA,CAAE;AACN,SAAOA,cAAG,IAAC,UAAU,WAA4B;AAClD;AAKO,MAAM,gBAAgB,CAAC,OAAW;AACxC,SAAOA,cAAG,IAAC,UAAU,EAAE,EAAE;AAC1B;AAKa,MAAA,cAAc,MAAA;AAC1B,SAAOA,cAAG,IAAC,UAAQ,IAAA,cAAE,EAAE,OAAO,GAAG,QAAQ,YAA8B,CAAA;AACxE;AAKa,MAAA,oBAAoB,MAAA;AAChC,SAAOA,cAAAA,IAAI,WAAW;AACvB;AAYa,MAAA,iBAAiB,MAAA;AAC7B,SAAOA,cAAAA,IAAI,eAAe;AAC3B;AAKO,MAAM,gBAAgB,CAAC,SAAoB;AACjD,SAAOC,cAAI,KAAC,YAAY,IAAI;AAC7B;;;;;;;;"}
|
||||
1
前端/unpackage/dist/dev/.sourcemap/mp-weixin/app.js.map
vendored
Normal file
1
前端/unpackage/dist/dev/.sourcemap/mp-weixin/app.js.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"app.js","sources":["App.uvue","main.uts"],"sourcesContent":["<script lang=\"uts\">\r\n\r\n\r\n\r\n\texport default {\r\n\t\tonLaunch() {\r\n\t\t\tuni.__f__('log','at App.uvue:7','App Launch')\r\n\t\t},\r\n\t\tonShow() {\r\n\t\t\tuni.__f__('log','at App.uvue:10','App Show')\r\n\t\t},\r\n\t\tonHide() {\r\n\t\t\tuni.__f__('log','at App.uvue:13','App Hide')\r\n\t\t},\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\t\tonExit() {\r\n\t\t\tuni.__f__('log','at App.uvue:34','App Exit')\r\n\t\t},\r\n\t}\r\n</script>\r\n\r\n<style>\r\n\t/*每个页面公共css */\r\n\t.uni-row {\r\n\t\tflex-direction: row;\r\n\t}\r\n\r\n\t.uni-column {\r\n\t\tflex-direction: column;\r\n\t}\r\n</style>","import App from './App.uvue'\r\n\r\nimport { createSSRApp } from 'vue'\r\nexport function createApp() {\r\n\tconst app = createSSRApp(App)\r\n\treturn {\r\n\t\tapp\r\n\t}\r\n}"],"names":["defineComponent","uni","createSSRApp","App"],"mappings":";;;;;;;;;;;;AAIC,MAAA,YAAeA,8BAAA;AAAA,EACd,WAAQ;AACPC,kBAAAA,MAAI,MAAM,OAAM,iBAAgB,YAAY;AAAA,EAC5C;AAAA,EACD,SAAM;AACLA,kBAAAA,MAAI,MAAM,OAAM,kBAAiB,UAAU;AAAA,EAC3C;AAAA,EACD,SAAM;AACLA,kBAAAA,MAAI,MAAM,OAAM,kBAAiB,UAAU;AAAA,EAC3C;AAAA,EAmBD,SAAM;AACLA,kBAAAA,MAAI,MAAM,OAAM,kBAAiB,UAAU;AAAA,EAC3C;CACF;SChCe,YAAS;AACxB,QAAM,MAAMC,2BAAaC,SAAG;AAC5B,SAAO;AAAA,IACN;AAAA;AAEF;AACA,YAAY,IAAI,MAAM,MAAM;;"}
|
||||
1
前端/unpackage/dist/dev/.sourcemap/mp-weixin/common/assets.js.map
vendored
Normal file
1
前端/unpackage/dist/dev/.sourcemap/mp-weixin/common/assets.js.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"assets.js","sources":["static/logo.png"],"sourcesContent":["export default \"__VITE_ASSET__46719607__\""],"names":[],"mappings":";AAAA,MAAe,aAAA;;"}
|
||||
1
前端/unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map
vendored
Normal file
1
前端/unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1
前端/unpackage/dist/dev/.sourcemap/mp-weixin/components/before-after/before-after.js.map
vendored
Normal file
1
前端/unpackage/dist/dev/.sourcemap/mp-weixin/components/before-after/before-after.js.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"before-after.js","sources":["components/before-after/before-after.uvue","../../../../Soft/HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDovUHJvamVjdC9TZWxmL-S8mOiJuuWutuaymeWPkee_u-aWsC_kvJjoibrlrrbmspnlj5Hnv7vmlrAvY29tcG9uZW50cy9iZWZvcmUtYWZ0ZXIvYmVmb3JlLWFmdGVyLnV2dWU"],"sourcesContent":["<template>\r\n\t<view class=\"before-after\">\r\n\t\t<view class=\"ba-title\" v-if=\"showTitle\">\r\n\t\t\t<text class=\"ba-title-text\">翻新前后对比</text>\r\n\t\t</view>\r\n\t\t\r\n\t\t<view class=\"ba-container\">\r\n\t\t\t<!-- 翻新前 -->\r\n\t\t\t<view class=\"ba-item\" @click=\"previewImage(beforeImage, 'before')\">\r\n\t\t\t\t<view class=\"ba-label before-label\">\r\n\t\t\t\t\t<text class=\"ba-label-text\">翻新前</text>\r\n\t\t\t\t</view>\r\n\t\t\t\t<image \r\n\t\t\t\t\tclass=\"ba-image\" \r\n\t\t\t\t\t:src=\"beforeImage\" \r\n\t\t\t\t\tmode=\"aspectFill\"\r\n\t\t\t\t></image>\r\n\t\t\t</view>\r\n\t\t\t\r\n\t\t\t<!-- 箭头 -->\r\n\t\t\t<view class=\"ba-arrow\">\r\n\t\t\t\t<text class=\"ba-arrow-text\">→</text>\r\n\t\t\t</view>\r\n\t\t\t\r\n\t\t\t<!-- 翻新后 -->\r\n\t\t\t<view class=\"ba-item\" @click=\"previewImage(afterImage, 'after')\">\r\n\t\t\t\t<view class=\"ba-label after-label\">\r\n\t\t\t\t\t<text class=\"ba-label-text\">翻新后</text>\r\n\t\t\t\t</view>\r\n\t\t\t\t<image \r\n\t\t\t\t\tclass=\"ba-image\" \r\n\t\t\t\t\t:src=\"afterImage\" \r\n\t\t\t\t\tmode=\"aspectFill\"\r\n\t\t\t\t></image>\r\n\t\t\t</view>\r\n\t\t</view>\r\n\t</view>\r\n</template>\r\n\r\n<script setup lang=\"uts\">\r\n\tconst props = defineProps<{\r\n\t\tbeforeImage : string\r\n\t\tafterImage : string\r\n\t\tshowTitle ?: boolean\r\n\t}>()\r\n\t\r\n\t// 预览图片\r\n\tconst previewImage = (url : string, type : string) => {\r\n\t\tconst urls = type == 'before' ? [props.beforeImage] : [props.afterImage]\r\n\t\tuni.previewImage({\r\n\t\t\tcurrent: url,\r\n\t\t\turls: urls\r\n\t\t})\r\n\t}\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n\t.before-after {\r\n\t\tbackground-color: #ffffff;\r\n\t\tborder-radius: 16rpx;\r\n\t\tpadding: 24rpx;\r\n\t\tmargin-bottom: 24rpx;\r\n\t}\r\n\t\r\n\t.ba-title {\r\n\t\tmargin-bottom: 24rpx;\r\n\t}\r\n\t\r\n\t.ba-title-text {\r\n\t\tfont-size: 32rpx;\r\n\t\tfont-weight: 600;\r\n\t\tcolor: #333333;\r\n\t}\r\n\t\r\n\t.ba-container {\r\n\t\tflex-direction: row;\r\n\t\talign-items: center;\r\n\t\tjustify-content: space-between;\r\n\t}\r\n\t\r\n\t.ba-item {\r\n\t\tflex: 1;\r\n\t\tposition: relative;\r\n\t\tborder-radius: 12rpx;\r\n\t\toverflow: hidden;\r\n\t}\r\n\t\r\n\t.ba-image {\r\n\t\twidth: 100%;\r\n\t\theight: 280rpx;\r\n\t\tborder-radius: 12rpx;\r\n\t}\r\n\t\r\n\t.ba-label {\r\n\t\tposition: absolute;\r\n\t\tbottom: 16rpx;\r\n\t\tleft: 16rpx;\r\n\t\tpadding: 8rpx 16rpx;\r\n\t\tborder-radius: 8rpx;\r\n\t\tz-index: 1;\r\n\t}\r\n\t\r\n\t.before-label {\r\n\t\tbackground-color: rgba(144, 147, 153, 0.9);\r\n\t}\r\n\t\r\n\t.after-label {\r\n\t\tbackground-color: rgba(212, 165, 116, 0.9);\r\n\t}\r\n\t\r\n\t.ba-label-text {\r\n\t\tfont-size: 22rpx;\r\n\t\tcolor: #ffffff;\r\n\t}\r\n\t\r\n\t.ba-arrow {\r\n\t\tpadding: 0 16rpx;\r\n\t}\r\n\t\r\n\t.ba-arrow-text {\r\n\t\tfont-size: 40rpx;\r\n\t\tcolor: #D4A574;\r\n\t\tfont-weight: bold;\r\n\t}\r\n</style>\r\n","import Component from 'D:/Project/Self/优艺家沙发翻新/优艺家沙发翻新/components/before-after/before-after.uvue'\nwx.createComponent(Component)"],"names":["uni","Component"],"mappings":";;;;;;;;;;AAwCC,UAAM,QAAQ;AAOd,UAAM,eAAe,CAAC,KAAc,SAAa;AAChD,YAAM,OAAO,QAAQ,WAAW,CAAC,MAAM,WAAW,IAAI,CAAC,MAAM,UAAU;AACvEA,oBAAAA,MAAI,aAAa;AAAA,QAChB,SAAS;AAAA,QACT;AAAA,MACA,CAAA;AAAA,IACF;;;;;;;;;;;;;;;;;;;;ACpDD,GAAG,gBAAgBC,SAAS;"}
|
||||
1
前端/unpackage/dist/dev/.sourcemap/mp-weixin/components/case-card/case-card.js.map
vendored
Normal file
1
前端/unpackage/dist/dev/.sourcemap/mp-weixin/components/case-card/case-card.js.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"case-card.js","sources":["components/case-card/case-card.uvue","../../../../Soft/HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDovUHJvamVjdC9TZWxmL-S8mOiJuuWutuaymeWPkee_u-aWsC_kvJjoibrlrrbmspnlj5Hnv7vmlrAvY29tcG9uZW50cy9jYXNlLWNhcmQvY2FzZS1jYXJkLnV2dWU"],"sourcesContent":["<template>\r\n\t<view class=\"case-card\" @click=\"handleClick\">\r\n\t\t<!-- 封面图 -->\r\n\t\t<view class=\"card-image-wrapper\">\r\n\t\t\t<image \r\n\t\t\t\tclass=\"card-image\" \r\n\t\t\t\t:src=\"caseData.coverImage\" \r\n\t\t\t\tmode=\"aspectFill\"\r\n\t\t\t></image>\r\n\t\t\t<view class=\"card-category\">{{ caseData.categoryName }}</view>\r\n\t\t</view>\r\n\t\t\r\n\t\t<!-- 内容区域 -->\r\n\t\t<view class=\"card-content\">\r\n\t\t\t<text class=\"card-title\">{{ caseData.title }}</text>\r\n\t\t\t<view class=\"card-info\">\r\n\t\t\t\t<view class=\"info-item\">\r\n\t\t\t\t\t<text class=\"info-label\">材质:</text>\r\n\t\t\t\t\t<text class=\"info-value\">{{ caseData.material }}</text>\r\n\t\t\t\t</view>\r\n\t\t\t\t<view class=\"info-item\">\r\n\t\t\t\t\t<text class=\"info-label\">工期:</text>\r\n\t\t\t\t\t<text class=\"info-value\">{{ caseData.duration }}</text>\r\n\t\t\t\t</view>\r\n\t\t\t</view>\r\n\t\t\t<view class=\"card-footer\">\r\n\t\t\t\t<text class=\"card-price\">{{ caseData.price }}</text>\r\n\t\t\t\t<view class=\"card-stats\">\r\n\t\t\t\t\t<text class=\"stat-item\">👁 {{ caseData.views }}</text>\r\n\t\t\t\t\t<text class=\"stat-item\">❤ {{ caseData.likes }}</text>\r\n\t\t\t\t</view>\r\n\t\t\t</view>\r\n\t\t</view>\r\n\t</view>\r\n</template>\r\n\r\n<script setup lang=\"uts\">\r\n\t// 定义Props类型\r\n\ttype CaseItem = {\r\n\t\tid : string\r\n\t\ttitle : string\r\n\t\tcategory : string\r\n\t\tcategoryName : string\r\n\t\tcoverImage : string\r\n\t\tmaterial : string\r\n\t\tduration : string\r\n\t\tprice : string\r\n\t\tviews : number\r\n\t\tlikes : number\r\n\t}\r\n\t\r\n\tconst props = defineProps<{\r\n\t\tcaseData : CaseItem\r\n\t}>()\r\n\t\r\n\tconst emit = defineEmits<{\r\n\t\t(e : 'click', id : string) : void\r\n\t}>()\r\n\t\r\n\tconst handleClick = () => {\r\n\t\temit('click', props.caseData.id)\r\n\t}\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n\t.case-card {\r\n\t\tbackground-color: #ffffff;\r\n\t\tborder-radius: 16rpx;\r\n\t\toverflow: hidden;\r\n\t\tbox-shadow: 0 4rpx 16rpx rgba(0, 0, 0, 0.08);\r\n\t\tmargin-bottom: 24rpx;\r\n\t}\r\n\t\r\n\t.card-image-wrapper {\r\n\t\tposition: relative;\r\n\t\twidth: 100%;\r\n\t\theight: 360rpx;\r\n\t}\r\n\t\r\n\t.card-image {\r\n\t\twidth: 100%;\r\n\t\theight: 100%;\r\n\t}\r\n\t\r\n\t.card-category {\r\n\t\tposition: absolute;\r\n\t\ttop: 16rpx;\r\n\t\tleft: 16rpx;\r\n\t\tbackground-color: rgba(212, 165, 116, 0.9);\r\n\t\tcolor: #ffffff;\r\n\t\tfont-size: 22rpx;\r\n\t\tpadding: 8rpx 16rpx;\r\n\t\tborder-radius: 8rpx;\r\n\t}\r\n\t\r\n\t.card-content {\r\n\t\tpadding: 24rpx;\r\n\t}\r\n\t\r\n\t.card-title {\r\n\t\tfont-size: 32rpx;\r\n\t\tfont-weight: 600;\r\n\t\tcolor: #333333;\r\n\t\tmargin-bottom: 16rpx;\r\n\t\tlines: 1;\r\n\t\ttext-overflow: ellipsis;\r\n\t}\r\n\t\r\n\t.card-info {\r\n\t\tmargin-bottom: 16rpx;\r\n\t}\r\n\t\r\n\t.info-item {\r\n\t\tflex-direction: row;\r\n\t\tmargin-bottom: 8rpx;\r\n\t}\r\n\t\r\n\t.info-label {\r\n\t\tfont-size: 26rpx;\r\n\t\tcolor: #909399;\r\n\t}\r\n\t\r\n\t.info-value {\r\n\t\tfont-size: 26rpx;\r\n\t\tcolor: #606266;\r\n\t}\r\n\t\r\n\t.card-footer {\r\n\t\tflex-direction: row;\r\n\t\tjustify-content: space-between;\r\n\t\talign-items: center;\r\n\t\tmargin-top: 16rpx;\r\n\t\tpadding-top: 16rpx;\r\n\t\tborder-top-width: 1rpx;\r\n\t\tborder-top-style: solid;\r\n\t\tborder-top-color: #EBEEF5;\r\n\t}\r\n\t\r\n\t.card-price {\r\n\t\tfont-size: 36rpx;\r\n\t\tfont-weight: 600;\r\n\t\tcolor: #D4A574;\r\n\t}\r\n\t\r\n\t.card-stats {\r\n\t\tflex-direction: row;\r\n\t}\r\n\t\r\n\t.stat-item {\r\n\t\tfont-size: 24rpx;\r\n\t\tcolor: #909399;\r\n\t\tmargin-left: 24rpx;\r\n\t}\r\n</style>\r\n","import Component from 'D:/Project/Self/优艺家沙发翻新/优艺家沙发翻新/components/case-card/case-card.uvue'\nwx.createComponent(Component)"],"names":["Component"],"mappings":";;MAsCM,iBAAQ,IAAA,QAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAab,UAAM,QAAQ;AAId,UAAM,OAAO;AAIb,UAAM,cAAc,MAAA;AACnB,WAAK,SAAS,MAAM,SAAS,EAAE;AAAA,IAChC;;;;;;;;;;;;;;;;;;;AC5DD,GAAG,gBAAgBA,SAAS;"}
|
||||
1
前端/unpackage/dist/dev/.sourcemap/mp-weixin/components/nav-bar/nav-bar.js.map
vendored
Normal file
1
前端/unpackage/dist/dev/.sourcemap/mp-weixin/components/nav-bar/nav-bar.js.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"nav-bar.js","sources":["components/nav-bar/nav-bar.uvue","../../../../Soft/HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDovUHJvamVjdC9TZWxmL-S8mOiJuuWutuaymeWPkee_u-aWsC_kvJjoibrlrrbmspnlj5Hnv7vmlrAvY29tcG9uZW50cy9uYXYtYmFyL25hdi1iYXIudXZ1ZQ"],"sourcesContent":["<template>\r\n\t<view class=\"nav-bar\" :style=\"{ paddingTop: statusBarHeight + 'px' }\">\r\n\t\t<view class=\"nav-content\" :style=\"{ height: navBarHeight + 'px' }\">\r\n\t\t\t<!-- 左侧返回按钮 -->\r\n\t\t\t<view class=\"nav-left\" v-if=\"showBack\" @click=\"handleBack\">\r\n\t\t\t\t<text class=\"nav-back-icon\">←</text>\r\n\t\t\t</view>\r\n\t\t\t<view class=\"nav-left\" v-else></view>\r\n\t\t\t\r\n\t\t\t<!-- 标题 -->\r\n\t\t\t<view class=\"nav-center\">\r\n\t\t\t\t<text class=\"nav-title\" :style=\"{ color: titleColor }\">{{ title }}</text>\r\n\t\t\t</view>\r\n\t\t\t\r\n\t\t\t<!-- 右侧插槽 -->\r\n\t\t\t<view class=\"nav-right\">\r\n\t\t\t\t<slot name=\"right\"></slot>\r\n\t\t\t</view>\r\n\t\t</view>\r\n\t</view>\r\n\t\r\n\t<!-- 占位高度 -->\r\n\t<view :style=\"{ height: (statusBarHeight + navBarHeight) + 'px' }\"></view>\r\n</template>\r\n\r\n<script setup lang=\"uts\">\r\n\tconst props = defineProps<{\r\n\t\ttitle ?: string\r\n\t\tshowBack ?: boolean\r\n\t\ttitleColor ?: string\r\n\t\tbgColor ?: string\r\n\t}>()\r\n\t\r\n\t// 状态栏高度\r\n\tconst statusBarHeight = ref(20)\r\n\t// 导航栏高度\r\n\tconst navBarHeight = ref(44)\r\n\t\r\n\tonMounted(() => {\r\n\t\tconst sysInfo = uni.getSystemInfoSync()\r\n\t\tstatusBarHeight.value = sysInfo.statusBarHeight\r\n\r\n\t\tconst menuButtonInfo = uni.getMenuButtonBoundingClientRect()\r\n\t\tnavBarHeight.value = (menuButtonInfo.top - sysInfo.statusBarHeight) * 2 + menuButtonInfo.height\r\n\r\n\t})\r\n\t\r\n\tconst handleBack = () => {\r\n\t\tuni.navigateBack({\r\n\t\t\tfail: () => {\r\n\t\t\t\tuni.switchTab({\r\n\t\t\t\t\turl: '/pages/index/index'\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n\t.nav-bar {\r\n\t\tposition: fixed;\r\n\t\ttop: 0;\r\n\t\tleft: 0;\r\n\t\tright: 0;\r\n\t\tbackground-color: #ffffff;\r\n\t\tz-index: 999;\r\n\t}\r\n\t\r\n\t.nav-content {\r\n\t\tflex-direction: row;\r\n\t\talign-items: center;\r\n\t\tjustify-content: space-between;\r\n\t\tpadding: 0 24rpx;\r\n\t}\r\n\t\r\n\t.nav-left {\r\n\t\twidth: 80rpx;\r\n\t\tflex-direction: row;\r\n\t\talign-items: center;\r\n\t}\r\n\t\r\n\t.nav-back-icon {\r\n\t\tfont-size: 40rpx;\r\n\t\tcolor: #333333;\r\n\t}\r\n\t\r\n\t.nav-center {\r\n\t\tflex: 1;\r\n\t\talign-items: center;\r\n\t\tjustify-content: center;\r\n\t}\r\n\t\r\n\t.nav-title {\r\n\t\tfont-size: 34rpx;\r\n\t\tfont-weight: 600;\r\n\t\tcolor: #333333;\r\n\t}\r\n\t\r\n\t.nav-right {\r\n\t\twidth: 80rpx;\r\n\t\tflex-direction: row;\r\n\t\talign-items: center;\r\n\t\tjustify-content: flex-end;\r\n\t}\r\n</style>\r\n","import Component from 'D:/Project/Self/优艺家沙发翻新/优艺家沙发翻新/components/nav-bar/nav-bar.uvue'\nwx.createComponent(Component)"],"names":["ref","onMounted","uni","Component"],"mappings":";;;;;;;;;;;AAkCC,UAAM,kBAAkBA,kBAAI,EAAE;AAE9B,UAAM,eAAeA,kBAAI,EAAE;AAE3BC,kBAAAA,UAAU,MAAA;AACT,YAAM,UAAUC,oBAAI;AACpB,sBAAgB,QAAQ,QAAQ;AAEhC,YAAM,iBAAiBA,oBAAI;AAC3B,mBAAa,SAAS,eAAe,MAAM,QAAQ,mBAAmB,IAAI,eAAe;AAAA,IAE1F,CAAC;AAED,UAAM,aAAa,MAAA;AAClBA,0BAAI,aAAa,IAAA,cAAA;AAAA,QAChB,MAAM,MAAA;AACLA,wBAAAA,MAAI,UAAU;AAAA,YACb,KAAK;AAAA,UACL,CAAA;AAAA,QACF;AAAA,MACA,CAAA,CAAA;AAAA,IACF;;;;;;;;;;;;;;;;;;ACtDD,GAAG,gBAAgBC,SAAS;"}
|
||||
1
前端/unpackage/dist/dev/.sourcemap/mp-weixin/components/section-header/section-header.js.map
vendored
Normal file
1
前端/unpackage/dist/dev/.sourcemap/mp-weixin/components/section-header/section-header.js.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"section-header.js","sources":["components/section-header/section-header.uvue","../../../../Soft/HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDovUHJvamVjdC9TZWxmL-S8mOiJuuWutuaymeWPkee_u-aWsC_kvJjoibrlrrbmspnlj5Hnv7vmlrAvY29tcG9uZW50cy9zZWN0aW9uLWhlYWRlci9zZWN0aW9uLWhlYWRlci51dnVl"],"sourcesContent":["<template>\r\n\t<view class=\"section-header\">\r\n\t\t<view class=\"section-left\">\r\n\t\t\t<view class=\"section-line\"></view>\r\n\t\t\t<text class=\"section-title\">{{ title }}</text>\r\n\t\t</view>\r\n\t\t<view class=\"section-right\" v-if=\"showMore\" @click=\"handleMore\">\r\n\t\t\t<text class=\"section-more\">查看更多</text>\r\n\t\t\t<text class=\"section-arrow\">›</text>\r\n\t\t</view>\r\n\t</view>\r\n</template>\r\n\r\n<script setup lang=\"uts\">\r\n\tconst props = defineProps<{\r\n\t\ttitle : string\r\n\t\tshowMore ?: boolean\r\n\t}>()\r\n\t\r\n\tconst emit = defineEmits<{\r\n\t\t(e : 'more') : void\r\n\t}>()\r\n\t\r\n\tconst handleMore = () => {\r\n\t\temit('more')\r\n\t}\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n\t.section-header {\r\n\t\tflex-direction: row;\r\n\t\talign-items: center;\r\n\t\tjustify-content: space-between;\r\n\t\tpadding: 32rpx 0 24rpx 0;\r\n\t}\r\n\t\r\n\t.section-left {\r\n\t\tflex-direction: row;\r\n\t\talign-items: center;\r\n\t}\r\n\t\r\n\t.section-line {\r\n\t\twidth: 8rpx;\r\n\t\theight: 36rpx;\r\n\t\tbackground-color: #D4A574;\r\n\t\tborder-radius: 4rpx;\r\n\t\tmargin-right: 16rpx;\r\n\t}\r\n\t\r\n\t.section-title {\r\n\t\tfont-size: 34rpx;\r\n\t\tfont-weight: 600;\r\n\t\tcolor: #333333;\r\n\t}\r\n\t\r\n\t.section-right {\r\n\t\tflex-direction: row;\r\n\t\talign-items: center;\r\n\t}\r\n\t\r\n\t.section-more {\r\n\t\tfont-size: 26rpx;\r\n\t\tcolor: #909399;\r\n\t}\r\n\t\r\n\t.section-arrow {\r\n\t\tfont-size: 32rpx;\r\n\t\tcolor: #909399;\r\n\t\tmargin-left: 8rpx;\r\n\t}\r\n</style>\r\n","import Component from 'D:/Project/Self/优艺家沙发翻新/优艺家沙发翻新/components/section-header/section-header.uvue'\nwx.createComponent(Component)"],"names":["Component"],"mappings":";;;;;;;;;;;AAmBC,UAAM,OAAO;AAIb,UAAM,aAAa,MAAA;AAClB,WAAK,MAAM;AAAA,IACZ;;;;;;;;;;;;;;;ACxBD,GAAG,gBAAgBA,SAAS;"}
|
||||
1
前端/unpackage/dist/dev/.sourcemap/mp-weixin/components/service-card/service-card.js.map
vendored
Normal file
1
前端/unpackage/dist/dev/.sourcemap/mp-weixin/components/service-card/service-card.js.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"service-card.js","sources":["components/service-card/service-card.uvue","../../../../Soft/HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDovUHJvamVjdC9TZWxmL-S8mOiJuuWutuaymeWPkee_u-aWsC_kvJjoibrlrrbmspnlj5Hnv7vmlrAvY29tcG9uZW50cy9zZXJ2aWNlLWNhcmQvc2VydmljZS1jYXJkLnV2dWU"],"sourcesContent":["<template>\r\n\t<view class=\"service-card\" @click=\"handleClick\">\r\n\t\t<view class=\"service-icon-wrapper\">\r\n\t\t\t<image class=\"service-icon\" :src=\"icon\" mode=\"aspectFit\"></image>\r\n\t\t</view>\r\n\t\t<text class=\"service-name\">{{ name }}</text>\r\n\t</view>\r\n</template>\r\n\r\n<script setup lang=\"uts\">\r\n\tconst props = defineProps<{\r\n\t\tid : string\r\n\t\tname : string\r\n\t\ticon : string\r\n\t}>()\r\n\t\r\n\tconst emit = defineEmits<{\r\n\t\t(e : 'click', id : string) : void\r\n\t}>()\r\n\t\r\n\tconst handleClick = () => {\r\n\t\temit('click', props.id)\r\n\t}\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n\t.service-card {\r\n\t\talign-items: center;\r\n\t\tjustify-content: center;\r\n\t\tpadding: 24rpx 16rpx;\r\n\t\tbackground-color: #ffffff;\r\n\t\tborder-radius: 16rpx;\r\n\t\twidth: 160rpx;\r\n\t}\r\n\t\r\n\t.service-icon-wrapper {\r\n\t\twidth: 80rpx;\r\n\t\theight: 80rpx;\r\n\t\tbackground-color: #FDF6EE;\r\n\t\tborder-radius: 50%;\r\n\t\talign-items: center;\r\n\t\tjustify-content: center;\r\n\t\tmargin-bottom: 16rpx;\r\n\t}\r\n\t\r\n\t.service-icon {\r\n\t\twidth: 48rpx;\r\n\t\theight: 48rpx;\r\n\t}\r\n\t\r\n\t.service-name {\r\n\t\tfont-size: 26rpx;\r\n\t\tcolor: #333333;\r\n\t\ttext-align: center;\r\n\t}\r\n</style>\r\n","import Component from 'D:/Project/Self/优艺家沙发翻新/优艺家沙发翻新/components/service-card/service-card.uvue'\nwx.createComponent(Component)"],"names":["Component"],"mappings":";;;;;;;;;;;;AAUC,UAAM,QAAQ;AAMd,UAAM,OAAO;AAIb,UAAM,cAAc,MAAA;AACnB,WAAK,SAAS,MAAM,EAAE;AAAA,IACvB;;;;;;;;;;;;;ACrBD,GAAG,gBAAgBA,SAAS;"}
|
||||
1
前端/unpackage/dist/dev/.sourcemap/mp-weixin/pages/about/index.js.map
vendored
Normal file
1
前端/unpackage/dist/dev/.sourcemap/mp-weixin/pages/about/index.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1
前端/unpackage/dist/dev/.sourcemap/mp-weixin/pages/booking/index.js.map
vendored
Normal file
1
前端/unpackage/dist/dev/.sourcemap/mp-weixin/pages/booking/index.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1
前端/unpackage/dist/dev/.sourcemap/mp-weixin/pages/cases/detail.js.map
vendored
Normal file
1
前端/unpackage/dist/dev/.sourcemap/mp-weixin/pages/cases/detail.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1
前端/unpackage/dist/dev/.sourcemap/mp-weixin/pages/cases/list.js.map
vendored
Normal file
1
前端/unpackage/dist/dev/.sourcemap/mp-weixin/pages/cases/list.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1
前端/unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map
vendored
Normal file
1
前端/unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1
前端/unpackage/dist/dev/.sourcemap/mp-weixin/pages/service/index.js.map
vendored
Normal file
1
前端/unpackage/dist/dev/.sourcemap/mp-weixin/pages/service/index.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1
前端/unpackage/dist/dev/.sourcemap/mp-weixin/pages/user/index.js.map
vendored
Normal file
1
前端/unpackage/dist/dev/.sourcemap/mp-weixin/pages/user/index.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1
前端/unpackage/dist/dev/.sourcemap/mp-weixin/utils/config.js.map
vendored
Normal file
1
前端/unpackage/dist/dev/.sourcemap/mp-weixin/utils/config.js.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"config.js","sources":["utils/config.uts"],"sourcesContent":["/**\r\n * 项目配置文件\r\n */\r\n\r\n// 环境配置\r\nexport const ENV = {\r\n\t// 开发环境\r\n\tdevelopment: {\r\n\t\tbaseUrl: 'http://localhost:3000/api',\r\n\t\timageBaseUrl: 'http://localhost:3000'\r\n\t},\r\n\t// 生产环境\r\n\tproduction: {\r\n\t\tbaseUrl: 'https://api.youyijia.com/api',\r\n\t\timageBaseUrl: 'https://api.youyijia.com'\r\n\t}\r\n}\r\n\r\n// 当前环境 - 切换为 'production' 上线\r\nexport const currentEnv = 'development'\r\n\r\n// 获取当前环境配置\r\nexport const getEnvConfig = () : UTSJSONObject => {\r\n\tif (currentEnv == 'production') {\r\n\t\treturn {\r\n\t\t\tbaseUrl: ENV.production.baseUrl,\r\n\t\t\timageBaseUrl: ENV.production.imageBaseUrl\r\n\t\t} as UTSJSONObject\r\n\t}\r\n\treturn {\r\n\t\tbaseUrl: ENV.development.baseUrl,\r\n\t\timageBaseUrl: ENV.development.imageBaseUrl\r\n\t} as UTSJSONObject\r\n}\r\n\r\n// 是否使用Mock数据 - 已关闭,对接真实后端\r\nexport const useMock = false\r\n\r\n// 分页配置\r\nexport const PAGE_SIZE = 10\r\n\r\n// 图片上传配置\r\nexport const UPLOAD_CONFIG = {\r\n\tmaxSize: 5 * 1024 * 1024, // 5MB\r\n\tmaxCount: 9,\r\n\taccept: ['image/jpeg', 'image/png', 'image/gif']\r\n}\r\n\r\n// 缓存Key\r\nexport const STORAGE_KEYS = {\r\n\tTOKEN: 'user_token',\r\n\tUSER_INFO: 'user_info',\r\n\tFAVORITES: 'user_favorites',\r\n\tSEARCH_HISTORY: 'search_history'\r\n}\r\n\r\n// 沙发分类\r\nexport const SOFA_CATEGORIES = [\r\n\t{ id: 'all', name: '全部' },\r\n\t{ id: 'leather', name: '皮沙发' },\r\n\t{ id: 'fabric', name: '布艺沙发' },\r\n\t{ id: 'functional', name: '功能沙发' },\r\n\t{ id: 'antique', name: '古典沙发' },\r\n\t{ id: 'office', name: '办公沙发' }\r\n]\r\n\r\n// 翻新服务类型\r\nexport const SERVICE_TYPES = [\r\n\t{ id: 'repair', name: '局部修复', icon: '/static/icons/repair.png' },\r\n\t{ id: 'recolor', name: '改色翻新', icon: '/static/icons/recolor.png' },\r\n\t{ id: 'refurbish', name: '整体翻新', icon: '/static/icons/refurbish.png' },\r\n\t{ id: 'custom', name: '定制换皮', icon: '/static/icons/custom.png' }\r\n]\r\n"],"names":[],"mappings":";AAKO,MAAM,MAAM,IAAA;AAAA,EAAA;AAAA;AAAA,IAElB,aAAa,IAAA,cAAA;AAAA,MACZ,SAAS;AAAA,MACT,cAAc;AAAA,KACd;AAAA;AAAA,IAED,YAAY,IAAA,cAAA;AAAA,MACX,SAAS;AAAA,MACT,cAAc;AAAA,KACd;AAAA,EACD;AAAA;;AAMY,MAAA,eAAe,MAAA;AAO3B,SAAO,IAAA,cAAA;AAAA,IACN,SAAS,IAAI,YAAY;AAAA,IACzB,cAAc,IAAI,YAAY;AAAA,GACb;AACnB;AAMO,MAAM,YAAY;AAGI,IAAA;AAAA,EAAA;AAAA,IAC5B,SAAS,IAAI,OAAO;AAAA,IACpB,UAAU;AAAA,IACV,QAAQ,CAAC,cAAc,aAAa,WAAW;AAAA,EAC/C;AAAA;;AAGY,MAAA,eAAe,IAAA;AAAA,EAAA;AAAA,IAC3B,OAAO;AAAA,IACP,WAAW;AAAA,IACX,WAAW;AAAA,IACX,gBAAgB;AAAA,EAChB;AAAA;;AAGY,MAAA,kBAAkB;AAAA,EAC9B,IAAA,cAAA,EAAE,IAAI,OAAO,MAAM,KAAI,CAAE;AAAA,EACzB,IAAA,cAAA,EAAE,IAAI,WAAW,MAAM,MAAK,CAAE;AAAA,EAC9B,IAAA,cAAA,EAAE,IAAI,UAAU,MAAM,OAAM,CAAE;AAAA,EAC9B,IAAA,cAAA,EAAE,IAAI,cAAc,MAAM,OAAM,CAAE;AAAA,EAClC,IAAA,cAAA,EAAE,IAAI,WAAW,MAAM,OAAM,CAAE;AAAA,EAC/B,IAAA,cAAA,EAAE,IAAI,UAAU,MAAM,OAAM,CAAE;;AAIlB,MAAA,gBAAgB;AAAA,oBAC5B,EAAE,IAAI,UAAU,MAAM,QAAQ,MAAM,4BAA4B;AAAA,oBAChE,EAAE,IAAI,WAAW,MAAM,QAAQ,MAAM,6BAA6B;AAAA,oBAClE,EAAE,IAAI,aAAa,MAAM,QAAQ,MAAM,+BAA+B;AAAA,oBACtE,EAAE,IAAI,UAAU,MAAM,QAAQ,MAAM,4BAA4B;;;;;;;"}
|
||||
1
前端/unpackage/dist/dev/.sourcemap/mp-weixin/utils/mock.js.map
vendored
Normal file
1
前端/unpackage/dist/dev/.sourcemap/mp-weixin/utils/mock.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1
前端/unpackage/dist/dev/.sourcemap/mp-weixin/utils/request.js.map
vendored
Normal file
1
前端/unpackage/dist/dev/.sourcemap/mp-weixin/utils/request.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
61
前端/unpackage/dist/dev/mp-weixin/api/index.js
vendored
Normal file
61
前端/unpackage/dist/dev/mp-weixin/api/index.js
vendored
Normal file
@@ -0,0 +1,61 @@
|
||||
"use strict";
|
||||
const utils_request = require("../utils/request.js");
|
||||
const getBanners = () => {
|
||||
return Promise.resolve(new UTSJSONObject({
|
||||
code: 0,
|
||||
message: "success",
|
||||
data: [
|
||||
new UTSJSONObject({
|
||||
id: "1",
|
||||
image: "/static/mock/banner1.svg",
|
||||
title: "专业沙发翻新服务",
|
||||
link: "/pages/service/index"
|
||||
}),
|
||||
new UTSJSONObject({
|
||||
id: "2",
|
||||
image: "/static/mock/banner2.svg",
|
||||
title: "十年品质保证",
|
||||
link: "/pages/about/index"
|
||||
}),
|
||||
new UTSJSONObject({
|
||||
id: "3",
|
||||
image: "/static/mock/banner3.svg",
|
||||
title: "免费上门评估",
|
||||
link: "/pages/booking/index"
|
||||
})
|
||||
]
|
||||
}));
|
||||
};
|
||||
const getCaseList = (params = null) => {
|
||||
const queryParams = params ? new UTSJSONObject({
|
||||
page: params["page"] || 1,
|
||||
limit: params["pageSize"] || params["limit"] || 10,
|
||||
serviceType: params["category"],
|
||||
status: "published"
|
||||
// 只获取已发布的案例
|
||||
}) : new UTSJSONObject({});
|
||||
return utils_request.get("/cases", queryParams);
|
||||
};
|
||||
const getCaseDetail = (id) => {
|
||||
return utils_request.get(`/cases/${id}`);
|
||||
};
|
||||
const getHotCases = () => {
|
||||
return utils_request.get("/cases", new UTSJSONObject({ limit: 4, status: "published" }));
|
||||
};
|
||||
const getServiceProcess = () => {
|
||||
return utils_request.get("/services");
|
||||
};
|
||||
const getCompanyInfo = () => {
|
||||
return utils_request.get("/company/info");
|
||||
};
|
||||
const submitBooking = (data) => {
|
||||
return utils_request.post("/booking", data);
|
||||
};
|
||||
exports.getBanners = getBanners;
|
||||
exports.getCaseDetail = getCaseDetail;
|
||||
exports.getCaseList = getCaseList;
|
||||
exports.getCompanyInfo = getCompanyInfo;
|
||||
exports.getHotCases = getHotCases;
|
||||
exports.getServiceProcess = getServiceProcess;
|
||||
exports.submitBooking = submitBooking;
|
||||
//# sourceMappingURL=../../.sourcemap/mp-weixin/api/index.js.map
|
||||
35
前端/unpackage/dist/dev/mp-weixin/app.js
vendored
Normal file
35
前端/unpackage/dist/dev/mp-weixin/app.js
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
||||
const common_vendor = require("./common/vendor.js");
|
||||
if (!Math) {
|
||||
"./pages/index/index.js";
|
||||
"./pages/cases/list.js";
|
||||
"./pages/cases/detail.js";
|
||||
"./pages/service/index.js";
|
||||
"./pages/about/index.js";
|
||||
"./pages/booking/index.js";
|
||||
"./pages/user/index.js";
|
||||
}
|
||||
const _sfc_main = common_vendor.defineComponent({
|
||||
onLaunch() {
|
||||
common_vendor.index.__f__("log", "at App.uvue:7", "App Launch");
|
||||
},
|
||||
onShow() {
|
||||
common_vendor.index.__f__("log", "at App.uvue:10", "App Show");
|
||||
},
|
||||
onHide() {
|
||||
common_vendor.index.__f__("log", "at App.uvue:13", "App Hide");
|
||||
},
|
||||
onExit() {
|
||||
common_vendor.index.__f__("log", "at App.uvue:34", "App Exit");
|
||||
}
|
||||
});
|
||||
function createApp() {
|
||||
const app = common_vendor.createSSRApp(_sfc_main);
|
||||
return {
|
||||
app
|
||||
};
|
||||
}
|
||||
createApp().app.mount("#app");
|
||||
exports.createApp = createApp;
|
||||
//# sourceMappingURL=../.sourcemap/mp-weixin/app.js.map
|
||||
50
前端/unpackage/dist/dev/mp-weixin/app.json
vendored
Normal file
50
前端/unpackage/dist/dev/mp-weixin/app.json
vendored
Normal file
@@ -0,0 +1,50 @@
|
||||
{
|
||||
"pages": [
|
||||
"pages/index/index",
|
||||
"pages/cases/list",
|
||||
"pages/cases/detail",
|
||||
"pages/service/index",
|
||||
"pages/about/index",
|
||||
"pages/booking/index",
|
||||
"pages/user/index"
|
||||
],
|
||||
"window": {
|
||||
"navigationBarTextStyle": "black",
|
||||
"navigationBarTitleText": "优艺家沙发翻新",
|
||||
"navigationBarBackgroundColor": "#ffffff",
|
||||
"backgroundColor": "#f5f5f5"
|
||||
},
|
||||
"tabBar": {
|
||||
"color": "#999999",
|
||||
"selectedColor": "#D4A574",
|
||||
"borderStyle": "black",
|
||||
"backgroundColor": "#ffffff",
|
||||
"list": [
|
||||
{
|
||||
"pagePath": "pages/index/index",
|
||||
"iconPath": "static/icons/home.png",
|
||||
"selectedIconPath": "static/icons/home-active.png",
|
||||
"text": "首页"
|
||||
},
|
||||
{
|
||||
"pagePath": "pages/cases/list",
|
||||
"iconPath": "static/icons/cases.png",
|
||||
"selectedIconPath": "static/icons/cases-active.png",
|
||||
"text": "案例"
|
||||
},
|
||||
{
|
||||
"pagePath": "pages/service/index",
|
||||
"iconPath": "static/icons/service.png",
|
||||
"selectedIconPath": "static/icons/service-active.png",
|
||||
"text": "服务"
|
||||
},
|
||||
{
|
||||
"pagePath": "pages/user/index",
|
||||
"iconPath": "static/icons/user.png",
|
||||
"selectedIconPath": "static/icons/user-active.png",
|
||||
"text": "我的"
|
||||
}
|
||||
]
|
||||
},
|
||||
"usingComponents": {}
|
||||
}
|
||||
9
前端/unpackage/dist/dev/mp-weixin/app.wxss
vendored
Normal file
9
前端/unpackage/dist/dev/mp-weixin/app.wxss
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
|
||||
/*每个页面公共css */
|
||||
.uni-row {
|
||||
flex-direction: row;
|
||||
}
|
||||
.uni-column {
|
||||
flex-direction: column;
|
||||
}
|
||||
page{--status-bar-height:25px;--top-window-height:0px;--window-top:0px;--window-bottom:0px;--window-left:0px;--window-right:0px;--window-magin:0px;--uni-safe-area-inset-top:0px;--uni-safe-area-inset-left:0px;--uni-safe-area-inset-right:0px;--uni-safe-area-inset-bottom:0px;}[data-c-h="true"]{display: none !important;}
|
||||
95
前端/unpackage/dist/dev/mp-weixin/common/uniView.wxs
vendored
Normal file
95
前端/unpackage/dist/dev/mp-weixin/common/uniView.wxs
vendored
Normal file
@@ -0,0 +1,95 @@
|
||||
|
||||
module.exports = {
|
||||
sS: function (newValue, oldValue, _ownerInstance, instance) {
|
||||
if (newValue) {
|
||||
instance.setStyle(newValue)
|
||||
}
|
||||
},
|
||||
sA: function (newValue, oldValue, _ownerInstance, instance) {
|
||||
if (newValue) {
|
||||
handleStartAnimation(newValue, _ownerInstance, instance)
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
function handleStartAnimation(newValue, _ownerInstance, instance) {
|
||||
var info = {}
|
||||
info = JSON.parse(newValue)
|
||||
var element = _ownerInstance.selectComponent('#' + info.id)
|
||||
|
||||
// playState leftTimes
|
||||
var state = element.getState()
|
||||
state.playState = info.playState
|
||||
|
||||
var startTime = null
|
||||
|
||||
state.leftTimes = info.options.iterations || 1
|
||||
var currentStep = 0
|
||||
|
||||
var duration =
|
||||
info.options.direction === 'alternate'
|
||||
? info.options.duration * 2
|
||||
: info.options.duration
|
||||
|
||||
function interpolateKeyframe(keyframes, usedTime) {
|
||||
var index = 0
|
||||
for (var i = 0; i < keyframes.length; i++) {
|
||||
if (keyframes[i]._startTime + keyframes[i]._duration >= usedTime) {
|
||||
index = i
|
||||
break
|
||||
}
|
||||
}
|
||||
var currentFrame = keyframes[index]
|
||||
return {
|
||||
style: currentFrame,
|
||||
index: index,
|
||||
}
|
||||
}
|
||||
|
||||
function step() {
|
||||
var isCancelled = state.playState === 'cancel'
|
||||
var currentTime = Date.now()
|
||||
if (startTime === null) {
|
||||
startTime = currentTime
|
||||
}
|
||||
var elapsedTime = currentTime - startTime
|
||||
|
||||
if (isCancelled) {
|
||||
var lastFrame = info.keyframes[info.keyframes.length - 1]
|
||||
lastFrame.transition = 'none'
|
||||
element.setStyle(lastFrame)
|
||||
element.removeClass('__ct' + currentStep)
|
||||
return
|
||||
}
|
||||
|
||||
var res = interpolateKeyframe(info.keyframes, elapsedTime)
|
||||
|
||||
// currentStep removeClass
|
||||
if (!element.hasClass('__ct' + res.index) && elapsedTime < duration) {
|
||||
element.setStyle(res.style).addClass('__ct' + res.index)
|
||||
}
|
||||
if (currentStep !== res.index) {
|
||||
element.removeClass('__ct' + currentStep)
|
||||
currentStep = res.index
|
||||
}
|
||||
|
||||
if (elapsedTime <= duration) {
|
||||
instance.requestAnimationFrame(step)
|
||||
} else {
|
||||
// done
|
||||
// element.callMethod('animationEnd')
|
||||
if (state.leftTimes > 1) {
|
||||
state.leftTimes--
|
||||
startTime = null
|
||||
instance.requestAnimationFrame(step)
|
||||
return
|
||||
} else if (state.leftTimes === -1) {
|
||||
// handle infinite
|
||||
startTime = null
|
||||
instance.requestAnimationFrame(step)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
instance.requestAnimationFrame(step)
|
||||
}
|
||||
9563
前端/unpackage/dist/dev/mp-weixin/common/vendor.js
vendored
Normal file
9563
前端/unpackage/dist/dev/mp-weixin/common/vendor.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
39
前端/unpackage/dist/dev/mp-weixin/components/before-after/before-after.js
vendored
Normal file
39
前端/unpackage/dist/dev/mp-weixin/components/before-after/before-after.js
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
"use strict";
|
||||
const common_vendor = require("../../common/vendor.js");
|
||||
const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({
|
||||
__name: "before-after",
|
||||
props: {
|
||||
beforeImage: {},
|
||||
afterImage: {},
|
||||
showTitle: { type: Boolean }
|
||||
},
|
||||
setup(__props) {
|
||||
const props = __props;
|
||||
const previewImage = (url, type) => {
|
||||
const urls = type == "before" ? [props.beforeImage] : [props.afterImage];
|
||||
common_vendor.index.previewImage({
|
||||
current: url,
|
||||
urls
|
||||
});
|
||||
};
|
||||
return (_ctx, _cache) => {
|
||||
"raw js";
|
||||
const __returned__ = common_vendor.e({
|
||||
a: _ctx.showTitle
|
||||
}, _ctx.showTitle ? {} : {}, {
|
||||
b: _ctx.beforeImage,
|
||||
c: common_vendor.o(($event) => {
|
||||
return previewImage(_ctx.beforeImage, "before");
|
||||
}),
|
||||
d: _ctx.afterImage,
|
||||
e: common_vendor.o(($event) => {
|
||||
return previewImage(_ctx.afterImage, "after");
|
||||
}),
|
||||
f: common_vendor.sei(common_vendor.gei(_ctx, ""), "view")
|
||||
});
|
||||
return __returned__;
|
||||
};
|
||||
}
|
||||
});
|
||||
wx.createComponent(_sfc_main);
|
||||
//# sourceMappingURL=../../../.sourcemap/mp-weixin/components/before-after/before-after.js.map
|
||||
4
前端/unpackage/dist/dev/mp-weixin/components/before-after/before-after.json
vendored
Normal file
4
前端/unpackage/dist/dev/mp-weixin/components/before-after/before-after.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"component": true,
|
||||
"usingComponents": {}
|
||||
}
|
||||
1
前端/unpackage/dist/dev/mp-weixin/components/before-after/before-after.wxml
vendored
Normal file
1
前端/unpackage/dist/dev/mp-weixin/components/before-after/before-after.wxml
vendored
Normal file
@@ -0,0 +1 @@
|
||||
<view id="{{f}}" change:eS="{{uV.sS}}" eS="{{$eS[f]}}" change:eA="{{uV.sA}}" eA="{{$eA[f]}}" class="{{['before-after', virtualHostClass]}}" style="{{virtualHostStyle}}" hidden="{{virtualHostHidden || false}}"><view wx:if="{{a}}" class="ba-title"><text class="ba-title-text">翻新前后对比</text></view><view class="ba-container"><view class="ba-item" bindtap="{{c}}"><view class="ba-label before-label"><text class="ba-label-text">翻新前</text></view><image class="ba-image" src="{{b}}" mode="aspectFill"></image></view><view class="ba-arrow"><text class="ba-arrow-text">→</text></view><view class="ba-item" bindtap="{{e}}"><view class="ba-label after-label"><text class="ba-label-text">翻新后</text></view><image class="ba-image" src="{{d}}" mode="aspectFill"></image></view></view></view><wxs src="/common/uniView.wxs" module="uV"/>
|
||||
81
前端/unpackage/dist/dev/mp-weixin/components/before-after/before-after.wxss
vendored
Normal file
81
前端/unpackage/dist/dev/mp-weixin/components/before-after/before-after.wxss
vendored
Normal file
@@ -0,0 +1,81 @@
|
||||
:host{display:flex;flex-direction:column}
|
||||
/**
|
||||
* 优艺家沙发翻新 - 全局样式变量
|
||||
*/
|
||||
/* ========== 项目主题色 ========== */
|
||||
/* 辅助色 */
|
||||
/* 文字颜色 */
|
||||
/* 背景色 */
|
||||
/* 边框颜色 */
|
||||
/* 间距 */
|
||||
/* 圆角 */
|
||||
/* 阴影 */
|
||||
/* ========== uni-app 内置变量 ========== */
|
||||
/* 行为相关颜色 */
|
||||
/* 文字基本颜色 */
|
||||
/* 背景颜色 */
|
||||
/* 边框颜色 */
|
||||
/* 尺寸变量 */
|
||||
/* 文字尺寸 */
|
||||
/* 图片尺寸 */
|
||||
/* Border Radius */
|
||||
/* 水平间距 */
|
||||
/* 垂直间距 */
|
||||
/* 透明度 */
|
||||
/* 文章场景相关 */
|
||||
.before-after {
|
||||
background-color: #ffffff;
|
||||
border-radius: 16rpx;
|
||||
padding: 24rpx;
|
||||
margin-bottom: 24rpx;
|
||||
}
|
||||
.ba-title {
|
||||
margin-bottom: 24rpx;
|
||||
}
|
||||
.ba-title-text {
|
||||
font-size: 32rpx;
|
||||
font-weight: 600;
|
||||
color: #333333;
|
||||
}
|
||||
.ba-container {
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.ba-item {
|
||||
flex: 1;
|
||||
position: relative;
|
||||
border-radius: 12rpx;
|
||||
overflow: hidden;
|
||||
}
|
||||
.ba-image {
|
||||
width: 100%;
|
||||
height: 280rpx;
|
||||
border-radius: 12rpx;
|
||||
}
|
||||
.ba-label {
|
||||
position: absolute;
|
||||
bottom: 16rpx;
|
||||
left: 16rpx;
|
||||
padding: 8rpx 16rpx;
|
||||
border-radius: 8rpx;
|
||||
z-index: 1;
|
||||
}
|
||||
.before-label {
|
||||
background-color: rgba(144, 147, 153, 0.9);
|
||||
}
|
||||
.after-label {
|
||||
background-color: rgba(212, 165, 116, 0.9);
|
||||
}
|
||||
.ba-label-text {
|
||||
font-size: 22rpx;
|
||||
color: #ffffff;
|
||||
}
|
||||
.ba-arrow {
|
||||
padding: 0 16rpx;
|
||||
}
|
||||
.ba-arrow-text {
|
||||
font-size: 40rpx;
|
||||
color: #D4A574;
|
||||
font-weight: bold;
|
||||
}
|
||||
72
前端/unpackage/dist/dev/mp-weixin/components/case-card/case-card.js
vendored
Normal file
72
前端/unpackage/dist/dev/mp-weixin/components/case-card/case-card.js
vendored
Normal file
@@ -0,0 +1,72 @@
|
||||
"use strict";
|
||||
const common_vendor = require("../../common/vendor.js");
|
||||
class CaseItem extends UTS.UTSType {
|
||||
static get$UTSMetadata$() {
|
||||
return {
|
||||
kind: 2,
|
||||
get fields() {
|
||||
return {
|
||||
id: { type: String, optional: false },
|
||||
title: { type: String, optional: false },
|
||||
category: { type: String, optional: false },
|
||||
categoryName: { type: String, optional: false },
|
||||
coverImage: { type: String, optional: false },
|
||||
material: { type: String, optional: false },
|
||||
duration: { type: String, optional: false },
|
||||
price: { type: String, optional: false },
|
||||
views: { type: Number, optional: false },
|
||||
likes: { type: Number, optional: false }
|
||||
};
|
||||
},
|
||||
name: "CaseItem"
|
||||
};
|
||||
}
|
||||
constructor(options, metadata = CaseItem.get$UTSMetadata$(), isJSONParse = false) {
|
||||
super();
|
||||
this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);
|
||||
this.id = this.__props__.id;
|
||||
this.title = this.__props__.title;
|
||||
this.category = this.__props__.category;
|
||||
this.categoryName = this.__props__.categoryName;
|
||||
this.coverImage = this.__props__.coverImage;
|
||||
this.material = this.__props__.material;
|
||||
this.duration = this.__props__.duration;
|
||||
this.price = this.__props__.price;
|
||||
this.views = this.__props__.views;
|
||||
this.likes = this.__props__.likes;
|
||||
delete this.__props__;
|
||||
}
|
||||
}
|
||||
const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({
|
||||
__name: "case-card",
|
||||
props: {
|
||||
caseData: {}
|
||||
},
|
||||
emits: ["click"],
|
||||
setup(__props, _a) {
|
||||
var __emit = _a.emit;
|
||||
const props = __props;
|
||||
const emit = __emit;
|
||||
const handleClick = () => {
|
||||
emit("click", props.caseData.id);
|
||||
};
|
||||
return (_ctx, _cache) => {
|
||||
"raw js";
|
||||
const __returned__ = {
|
||||
a: _ctx.caseData.coverImage,
|
||||
b: common_vendor.t(_ctx.caseData.categoryName),
|
||||
c: common_vendor.t(_ctx.caseData.title),
|
||||
d: common_vendor.t(_ctx.caseData.material),
|
||||
e: common_vendor.t(_ctx.caseData.duration),
|
||||
f: common_vendor.t(_ctx.caseData.price),
|
||||
g: common_vendor.t(_ctx.caseData.views),
|
||||
h: common_vendor.t(_ctx.caseData.likes),
|
||||
i: common_vendor.sei(common_vendor.gei(_ctx, ""), "view"),
|
||||
j: common_vendor.o(handleClick)
|
||||
};
|
||||
return __returned__;
|
||||
};
|
||||
}
|
||||
});
|
||||
wx.createComponent(_sfc_main);
|
||||
//# sourceMappingURL=../../../.sourcemap/mp-weixin/components/case-card/case-card.js.map
|
||||
4
前端/unpackage/dist/dev/mp-weixin/components/case-card/case-card.json
vendored
Normal file
4
前端/unpackage/dist/dev/mp-weixin/components/case-card/case-card.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"component": true,
|
||||
"usingComponents": {}
|
||||
}
|
||||
1
前端/unpackage/dist/dev/mp-weixin/components/case-card/case-card.wxml
vendored
Normal file
1
前端/unpackage/dist/dev/mp-weixin/components/case-card/case-card.wxml
vendored
Normal file
@@ -0,0 +1 @@
|
||||
<view bindtap="{{j}}" id="{{i}}" change:eS="{{uV.sS}}" eS="{{$eS[i]}}" change:eA="{{uV.sA}}" eA="{{$eA[i]}}" class="{{['case-card', virtualHostClass]}}" style="{{virtualHostStyle}}" hidden="{{virtualHostHidden || false}}"><view class="card-image-wrapper"><image class="card-image" src="{{a}}" mode="aspectFill"></image><view class="card-category">{{b}}</view></view><view class="card-content"><text class="card-title">{{c}}</text><view class="card-info"><view class="info-item"><text class="info-label">材质:</text><text class="info-value">{{d}}</text></view><view class="info-item"><text class="info-label">工期:</text><text class="info-value">{{e}}</text></view></view><view class="card-footer"><text class="card-price">{{f}}</text><view class="card-stats"><text class="stat-item">👁 {{g}}</text><text class="stat-item">❤ {{h}}</text></view></view></view></view><wxs src="/common/uniView.wxs" module="uV"/>
|
||||
100
前端/unpackage/dist/dev/mp-weixin/components/case-card/case-card.wxss
vendored
Normal file
100
前端/unpackage/dist/dev/mp-weixin/components/case-card/case-card.wxss
vendored
Normal file
@@ -0,0 +1,100 @@
|
||||
:host{display:flex;flex-direction:column}
|
||||
/**
|
||||
* 优艺家沙发翻新 - 全局样式变量
|
||||
*/
|
||||
/* ========== 项目主题色 ========== */
|
||||
/* 辅助色 */
|
||||
/* 文字颜色 */
|
||||
/* 背景色 */
|
||||
/* 边框颜色 */
|
||||
/* 间距 */
|
||||
/* 圆角 */
|
||||
/* 阴影 */
|
||||
/* ========== uni-app 内置变量 ========== */
|
||||
/* 行为相关颜色 */
|
||||
/* 文字基本颜色 */
|
||||
/* 背景颜色 */
|
||||
/* 边框颜色 */
|
||||
/* 尺寸变量 */
|
||||
/* 文字尺寸 */
|
||||
/* 图片尺寸 */
|
||||
/* Border Radius */
|
||||
/* 水平间距 */
|
||||
/* 垂直间距 */
|
||||
/* 透明度 */
|
||||
/* 文章场景相关 */
|
||||
.case-card {
|
||||
background-color: #ffffff;
|
||||
border-radius: 16rpx;
|
||||
overflow: hidden;
|
||||
box-shadow: 0 4rpx 16rpx rgba(0, 0, 0, 0.08);
|
||||
margin-bottom: 24rpx;
|
||||
}
|
||||
.card-image-wrapper {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
height: 360rpx;
|
||||
}
|
||||
.card-image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
.card-category {
|
||||
position: absolute;
|
||||
top: 16rpx;
|
||||
left: 16rpx;
|
||||
background-color: rgba(212, 165, 116, 0.9);
|
||||
color: #ffffff;
|
||||
font-size: 22rpx;
|
||||
padding: 8rpx 16rpx;
|
||||
border-radius: 8rpx;
|
||||
}
|
||||
.card-content {
|
||||
padding: 24rpx;
|
||||
}
|
||||
.card-title {
|
||||
font-size: 32rpx;
|
||||
font-weight: 600;
|
||||
color: #333333;
|
||||
margin-bottom: 16rpx;
|
||||
lines: 1;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
.card-info {
|
||||
margin-bottom: 16rpx;
|
||||
}
|
||||
.info-item {
|
||||
flex-direction: row;
|
||||
margin-bottom: 8rpx;
|
||||
}
|
||||
.info-label {
|
||||
font-size: 26rpx;
|
||||
color: #909399;
|
||||
}
|
||||
.info-value {
|
||||
font-size: 26rpx;
|
||||
color: #606266;
|
||||
}
|
||||
.card-footer {
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-top: 16rpx;
|
||||
padding-top: 16rpx;
|
||||
border-top-width: 1rpx;
|
||||
border-top-style: solid;
|
||||
border-top-color: #EBEEF5;
|
||||
}
|
||||
.card-price {
|
||||
font-size: 36rpx;
|
||||
font-weight: 600;
|
||||
color: #D4A574;
|
||||
}
|
||||
.card-stats {
|
||||
flex-direction: row;
|
||||
}
|
||||
.stat-item {
|
||||
font-size: 24rpx;
|
||||
color: #909399;
|
||||
margin-left: 24rpx;
|
||||
}
|
||||
47
前端/unpackage/dist/dev/mp-weixin/components/nav-bar/nav-bar.js
vendored
Normal file
47
前端/unpackage/dist/dev/mp-weixin/components/nav-bar/nav-bar.js
vendored
Normal file
@@ -0,0 +1,47 @@
|
||||
"use strict";
|
||||
const common_vendor = require("../../common/vendor.js");
|
||||
const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({
|
||||
__name: "nav-bar",
|
||||
props: {
|
||||
title: {},
|
||||
showBack: { type: Boolean },
|
||||
titleColor: {},
|
||||
bgColor: {}
|
||||
},
|
||||
setup(__props) {
|
||||
const statusBarHeight = common_vendor.ref(20);
|
||||
const navBarHeight = common_vendor.ref(44);
|
||||
common_vendor.onMounted(() => {
|
||||
const sysInfo = common_vendor.index.getSystemInfoSync();
|
||||
statusBarHeight.value = sysInfo.statusBarHeight;
|
||||
const menuButtonInfo = common_vendor.index.getMenuButtonBoundingClientRect();
|
||||
navBarHeight.value = (menuButtonInfo.top - sysInfo.statusBarHeight) * 2 + menuButtonInfo.height;
|
||||
});
|
||||
const handleBack = () => {
|
||||
common_vendor.index.navigateBack(new UTSJSONObject({
|
||||
fail: () => {
|
||||
common_vendor.index.switchTab({
|
||||
url: "/pages/index/index"
|
||||
});
|
||||
}
|
||||
}));
|
||||
};
|
||||
return (_ctx, _cache) => {
|
||||
"raw js";
|
||||
const __returned__ = common_vendor.e({
|
||||
a: _ctx.showBack
|
||||
}, _ctx.showBack ? {
|
||||
b: common_vendor.o(handleBack)
|
||||
} : {}, {
|
||||
c: common_vendor.t(_ctx.title),
|
||||
d: _ctx.titleColor,
|
||||
e: common_vendor.unref(navBarHeight) + "px",
|
||||
f: common_vendor.unref(statusBarHeight) + "px",
|
||||
g: common_vendor.unref(statusBarHeight) + common_vendor.unref(navBarHeight) + "px"
|
||||
});
|
||||
return __returned__;
|
||||
};
|
||||
}
|
||||
});
|
||||
wx.createComponent(_sfc_main);
|
||||
//# sourceMappingURL=../../../.sourcemap/mp-weixin/components/nav-bar/nav-bar.js.map
|
||||
4
前端/unpackage/dist/dev/mp-weixin/components/nav-bar/nav-bar.json
vendored
Normal file
4
前端/unpackage/dist/dev/mp-weixin/components/nav-bar/nav-bar.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"component": true,
|
||||
"usingComponents": {}
|
||||
}
|
||||
1
前端/unpackage/dist/dev/mp-weixin/components/nav-bar/nav-bar.wxml
vendored
Normal file
1
前端/unpackage/dist/dev/mp-weixin/components/nav-bar/nav-bar.wxml
vendored
Normal file
@@ -0,0 +1 @@
|
||||
<view class="nav-bar" style="{{'padding-top:' + f}}"><view class="nav-content" style="{{'height:' + e}}"><view wx:if="{{a}}" class="nav-left" bindtap="{{b}}"><text class="nav-back-icon">←</text></view><view wx:else class="nav-left"></view><view class="nav-center"><text class="nav-title" style="{{'color:' + d}}">{{c}}</text></view><view class="nav-right"><slot name="right"></slot></view></view></view><view style="{{'height:' + g}}"></view>
|
||||
64
前端/unpackage/dist/dev/mp-weixin/components/nav-bar/nav-bar.wxss
vendored
Normal file
64
前端/unpackage/dist/dev/mp-weixin/components/nav-bar/nav-bar.wxss
vendored
Normal file
@@ -0,0 +1,64 @@
|
||||
:host{display:flex;flex-direction:column}
|
||||
/**
|
||||
* 优艺家沙发翻新 - 全局样式变量
|
||||
*/
|
||||
/* ========== 项目主题色 ========== */
|
||||
/* 辅助色 */
|
||||
/* 文字颜色 */
|
||||
/* 背景色 */
|
||||
/* 边框颜色 */
|
||||
/* 间距 */
|
||||
/* 圆角 */
|
||||
/* 阴影 */
|
||||
/* ========== uni-app 内置变量 ========== */
|
||||
/* 行为相关颜色 */
|
||||
/* 文字基本颜色 */
|
||||
/* 背景颜色 */
|
||||
/* 边框颜色 */
|
||||
/* 尺寸变量 */
|
||||
/* 文字尺寸 */
|
||||
/* 图片尺寸 */
|
||||
/* Border Radius */
|
||||
/* 水平间距 */
|
||||
/* 垂直间距 */
|
||||
/* 透明度 */
|
||||
/* 文章场景相关 */
|
||||
.nav-bar {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
background-color: #ffffff;
|
||||
z-index: 999;
|
||||
}
|
||||
.nav-content {
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 0 24rpx;
|
||||
}
|
||||
.nav-left {
|
||||
width: 80rpx;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
}
|
||||
.nav-back-icon {
|
||||
font-size: 40rpx;
|
||||
color: #333333;
|
||||
}
|
||||
.nav-center {
|
||||
flex: 1;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
.nav-title {
|
||||
font-size: 34rpx;
|
||||
font-weight: 600;
|
||||
color: #333333;
|
||||
}
|
||||
.nav-right {
|
||||
width: 80rpx;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
31
前端/unpackage/dist/dev/mp-weixin/components/section-header/section-header.js
vendored
Normal file
31
前端/unpackage/dist/dev/mp-weixin/components/section-header/section-header.js
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
"use strict";
|
||||
const common_vendor = require("../../common/vendor.js");
|
||||
const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({
|
||||
__name: "section-header",
|
||||
props: {
|
||||
title: {},
|
||||
showMore: { type: Boolean }
|
||||
},
|
||||
emits: ["more"],
|
||||
setup(__props, _a) {
|
||||
var __emit = _a.emit;
|
||||
const emit = __emit;
|
||||
const handleMore = () => {
|
||||
emit("more");
|
||||
};
|
||||
return (_ctx, _cache) => {
|
||||
"raw js";
|
||||
const __returned__ = common_vendor.e({
|
||||
a: common_vendor.t(_ctx.title),
|
||||
b: _ctx.showMore
|
||||
}, _ctx.showMore ? {
|
||||
c: common_vendor.o(handleMore)
|
||||
} : {}, {
|
||||
d: common_vendor.sei(common_vendor.gei(_ctx, ""), "view")
|
||||
});
|
||||
return __returned__;
|
||||
};
|
||||
}
|
||||
});
|
||||
wx.createComponent(_sfc_main);
|
||||
//# sourceMappingURL=../../../.sourcemap/mp-weixin/components/section-header/section-header.js.map
|
||||
4
前端/unpackage/dist/dev/mp-weixin/components/section-header/section-header.json
vendored
Normal file
4
前端/unpackage/dist/dev/mp-weixin/components/section-header/section-header.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"component": true,
|
||||
"usingComponents": {}
|
||||
}
|
||||
1
前端/unpackage/dist/dev/mp-weixin/components/section-header/section-header.wxml
vendored
Normal file
1
前端/unpackage/dist/dev/mp-weixin/components/section-header/section-header.wxml
vendored
Normal file
@@ -0,0 +1 @@
|
||||
<view id="{{d}}" change:eS="{{uV.sS}}" eS="{{$eS[d]}}" change:eA="{{uV.sA}}" eA="{{$eA[d]}}" class="{{['section-header', virtualHostClass]}}" style="{{virtualHostStyle}}" hidden="{{virtualHostHidden || false}}"><view class="section-left"><view class="section-line"></view><text class="section-title">{{a}}</text></view><view wx:if="{{b}}" class="section-right" bindtap="{{c}}"><text class="section-more">查看更多</text><text class="section-arrow">›</text></view></view><wxs src="/common/uniView.wxs" module="uV"/>
|
||||
60
前端/unpackage/dist/dev/mp-weixin/components/section-header/section-header.wxss
vendored
Normal file
60
前端/unpackage/dist/dev/mp-weixin/components/section-header/section-header.wxss
vendored
Normal file
@@ -0,0 +1,60 @@
|
||||
:host{display:flex;flex-direction:column}
|
||||
/**
|
||||
* 优艺家沙发翻新 - 全局样式变量
|
||||
*/
|
||||
/* ========== 项目主题色 ========== */
|
||||
/* 辅助色 */
|
||||
/* 文字颜色 */
|
||||
/* 背景色 */
|
||||
/* 边框颜色 */
|
||||
/* 间距 */
|
||||
/* 圆角 */
|
||||
/* 阴影 */
|
||||
/* ========== uni-app 内置变量 ========== */
|
||||
/* 行为相关颜色 */
|
||||
/* 文字基本颜色 */
|
||||
/* 背景颜色 */
|
||||
/* 边框颜色 */
|
||||
/* 尺寸变量 */
|
||||
/* 文字尺寸 */
|
||||
/* 图片尺寸 */
|
||||
/* Border Radius */
|
||||
/* 水平间距 */
|
||||
/* 垂直间距 */
|
||||
/* 透明度 */
|
||||
/* 文章场景相关 */
|
||||
.section-header {
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 32rpx 0 24rpx 0;
|
||||
}
|
||||
.section-left {
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
}
|
||||
.section-line {
|
||||
width: 8rpx;
|
||||
height: 36rpx;
|
||||
background-color: #D4A574;
|
||||
border-radius: 4rpx;
|
||||
margin-right: 16rpx;
|
||||
}
|
||||
.section-title {
|
||||
font-size: 34rpx;
|
||||
font-weight: 600;
|
||||
color: #333333;
|
||||
}
|
||||
.section-right {
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
}
|
||||
.section-more {
|
||||
font-size: 26rpx;
|
||||
color: #909399;
|
||||
}
|
||||
.section-arrow {
|
||||
font-size: 32rpx;
|
||||
color: #909399;
|
||||
margin-left: 8rpx;
|
||||
}
|
||||
31
前端/unpackage/dist/dev/mp-weixin/components/service-card/service-card.js
vendored
Normal file
31
前端/unpackage/dist/dev/mp-weixin/components/service-card/service-card.js
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
"use strict";
|
||||
const common_vendor = require("../../common/vendor.js");
|
||||
const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({
|
||||
__name: "service-card",
|
||||
props: {
|
||||
id: {},
|
||||
name: {},
|
||||
icon: {}
|
||||
},
|
||||
emits: ["click"],
|
||||
setup(__props, _a) {
|
||||
var __emit = _a.emit;
|
||||
const props = __props;
|
||||
const emit = __emit;
|
||||
const handleClick = () => {
|
||||
emit("click", props.id);
|
||||
};
|
||||
return (_ctx, _cache) => {
|
||||
"raw js";
|
||||
const __returned__ = {
|
||||
a: _ctx.icon,
|
||||
b: common_vendor.t(_ctx.name),
|
||||
c: common_vendor.sei(common_vendor.gei(_ctx, ""), "view"),
|
||||
d: common_vendor.o(handleClick)
|
||||
};
|
||||
return __returned__;
|
||||
};
|
||||
}
|
||||
});
|
||||
wx.createComponent(_sfc_main);
|
||||
//# sourceMappingURL=../../../.sourcemap/mp-weixin/components/service-card/service-card.js.map
|
||||
4
前端/unpackage/dist/dev/mp-weixin/components/service-card/service-card.json
vendored
Normal file
4
前端/unpackage/dist/dev/mp-weixin/components/service-card/service-card.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"component": true,
|
||||
"usingComponents": {}
|
||||
}
|
||||
1
前端/unpackage/dist/dev/mp-weixin/components/service-card/service-card.wxml
vendored
Normal file
1
前端/unpackage/dist/dev/mp-weixin/components/service-card/service-card.wxml
vendored
Normal file
@@ -0,0 +1 @@
|
||||
<view bindtap="{{d}}" id="{{c}}" change:eS="{{uV.sS}}" eS="{{$eS[c]}}" change:eA="{{uV.sA}}" eA="{{$eA[c]}}" class="{{['service-card', virtualHostClass]}}" style="{{virtualHostStyle}}" hidden="{{virtualHostHidden || false}}"><view class="service-icon-wrapper"><image class="service-icon" src="{{a}}" mode="aspectFit"></image></view><text class="service-name">{{b}}</text></view><wxs src="/common/uniView.wxs" module="uV"/>
|
||||
51
前端/unpackage/dist/dev/mp-weixin/components/service-card/service-card.wxss
vendored
Normal file
51
前端/unpackage/dist/dev/mp-weixin/components/service-card/service-card.wxss
vendored
Normal file
@@ -0,0 +1,51 @@
|
||||
:host{display:flex;flex-direction:column}
|
||||
/**
|
||||
* 优艺家沙发翻新 - 全局样式变量
|
||||
*/
|
||||
/* ========== 项目主题色 ========== */
|
||||
/* 辅助色 */
|
||||
/* 文字颜色 */
|
||||
/* 背景色 */
|
||||
/* 边框颜色 */
|
||||
/* 间距 */
|
||||
/* 圆角 */
|
||||
/* 阴影 */
|
||||
/* ========== uni-app 内置变量 ========== */
|
||||
/* 行为相关颜色 */
|
||||
/* 文字基本颜色 */
|
||||
/* 背景颜色 */
|
||||
/* 边框颜色 */
|
||||
/* 尺寸变量 */
|
||||
/* 文字尺寸 */
|
||||
/* 图片尺寸 */
|
||||
/* Border Radius */
|
||||
/* 水平间距 */
|
||||
/* 垂直间距 */
|
||||
/* 透明度 */
|
||||
/* 文章场景相关 */
|
||||
.service-card {
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 24rpx 16rpx;
|
||||
background-color: #ffffff;
|
||||
border-radius: 16rpx;
|
||||
width: 160rpx;
|
||||
}
|
||||
.service-icon-wrapper {
|
||||
width: 80rpx;
|
||||
height: 80rpx;
|
||||
background-color: #FDF6EE;
|
||||
border-radius: 50%;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-bottom: 16rpx;
|
||||
}
|
||||
.service-icon {
|
||||
width: 48rpx;
|
||||
height: 48rpx;
|
||||
}
|
||||
.service-name {
|
||||
font-size: 26rpx;
|
||||
color: #333333;
|
||||
text-align: center;
|
||||
}
|
||||
181
前端/unpackage/dist/dev/mp-weixin/pages/about/index.js
vendored
Normal file
181
前端/unpackage/dist/dev/mp-weixin/pages/about/index.js
vendored
Normal file
@@ -0,0 +1,181 @@
|
||||
"use strict";
|
||||
const common_vendor = require("../../common/vendor.js");
|
||||
const api_index = require("../../api/index.js");
|
||||
if (!Array) {
|
||||
const _easycom_section_header_1 = common_vendor.resolveComponent("section-header");
|
||||
_easycom_section_header_1();
|
||||
}
|
||||
const _easycom_section_header = () => "../../components/section-header/section-header.js";
|
||||
if (!Math) {
|
||||
_easycom_section_header();
|
||||
}
|
||||
class FeatureItem extends UTS.UTSType {
|
||||
static get$UTSMetadata$() {
|
||||
return {
|
||||
kind: 2,
|
||||
get fields() {
|
||||
return {
|
||||
title: { type: String, optional: false },
|
||||
desc: { type: String, optional: false }
|
||||
};
|
||||
},
|
||||
name: "FeatureItem"
|
||||
};
|
||||
}
|
||||
constructor(options, metadata = FeatureItem.get$UTSMetadata$(), isJSONParse = false) {
|
||||
super();
|
||||
this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);
|
||||
this.title = this.__props__.title;
|
||||
this.desc = this.__props__.desc;
|
||||
delete this.__props__;
|
||||
}
|
||||
}
|
||||
class CompanyInfo extends UTS.UTSType {
|
||||
static get$UTSMetadata$() {
|
||||
return {
|
||||
kind: 2,
|
||||
get fields() {
|
||||
return {
|
||||
name: { type: String, optional: false },
|
||||
slogan: { type: String, optional: false },
|
||||
description: { type: String, optional: false },
|
||||
phone: { type: String, optional: false },
|
||||
wechat: { type: String, optional: false },
|
||||
address: { type: String, optional: false },
|
||||
workTime: { type: String, optional: false },
|
||||
features: { type: UTS.UTSType.withGenerics(Array, [FeatureItem]), optional: false }
|
||||
};
|
||||
},
|
||||
name: "CompanyInfo"
|
||||
};
|
||||
}
|
||||
constructor(options, metadata = CompanyInfo.get$UTSMetadata$(), isJSONParse = false) {
|
||||
super();
|
||||
this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);
|
||||
this.name = this.__props__.name;
|
||||
this.slogan = this.__props__.slogan;
|
||||
this.description = this.__props__.description;
|
||||
this.phone = this.__props__.phone;
|
||||
this.wechat = this.__props__.wechat;
|
||||
this.address = this.__props__.address;
|
||||
this.workTime = this.__props__.workTime;
|
||||
this.features = this.__props__.features;
|
||||
delete this.__props__;
|
||||
}
|
||||
}
|
||||
const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({
|
||||
__name: "index",
|
||||
setup(__props) {
|
||||
const companyInfo = common_vendor.ref(new CompanyInfo({
|
||||
name: "优艺家沙发翻新",
|
||||
slogan: "让旧沙发焕发新生",
|
||||
description: "",
|
||||
phone: "400-888-8888",
|
||||
wechat: "youyijia2026",
|
||||
address: "",
|
||||
workTime: "",
|
||||
features: []
|
||||
}));
|
||||
const fetchCompanyInfo = () => {
|
||||
return common_vendor.__awaiter(this, void 0, void 0, function* () {
|
||||
try {
|
||||
const res = yield api_index.getCompanyInfo();
|
||||
const data = res.data;
|
||||
const featuresData = data["features"];
|
||||
const features = featuresData.map((item) => {
|
||||
return new FeatureItem({
|
||||
title: item["title"],
|
||||
desc: item["desc"]
|
||||
});
|
||||
});
|
||||
companyInfo.value = new CompanyInfo({
|
||||
name: data["name"],
|
||||
slogan: data["slogan"],
|
||||
description: data["description"],
|
||||
phone: data["phone"],
|
||||
wechat: data["wechat"],
|
||||
address: data["address"],
|
||||
workTime: data["workTime"],
|
||||
features
|
||||
});
|
||||
} catch (e) {
|
||||
common_vendor.index.__f__("error", "at pages/about/index.uvue:148", "获取公司信息失败", e);
|
||||
}
|
||||
});
|
||||
};
|
||||
const callPhone = () => {
|
||||
common_vendor.index.makePhoneCall({
|
||||
phoneNumber: companyInfo.value.phone,
|
||||
fail: () => {
|
||||
common_vendor.index.showToast({
|
||||
title: "拨打电话失败",
|
||||
icon: "none"
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
const copyWechat = () => {
|
||||
common_vendor.index.setClipboardData({
|
||||
data: companyInfo.value.wechat,
|
||||
success: () => {
|
||||
common_vendor.index.showToast({
|
||||
title: "微信号已复制",
|
||||
icon: "success"
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
const openLocation = () => {
|
||||
common_vendor.index.openLocation({
|
||||
latitude: 31.2,
|
||||
longitude: 121.5,
|
||||
name: companyInfo.value.name,
|
||||
address: companyInfo.value.address,
|
||||
fail: () => {
|
||||
common_vendor.index.showToast({
|
||||
title: "无法打开地图",
|
||||
icon: "none"
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
common_vendor.onLoad(() => {
|
||||
fetchCompanyInfo();
|
||||
});
|
||||
return (_ctx, _cache) => {
|
||||
"raw js";
|
||||
const __returned__ = {
|
||||
a: common_vendor.t(common_vendor.unref(companyInfo).name),
|
||||
b: common_vendor.t(common_vendor.unref(companyInfo).slogan),
|
||||
c: common_vendor.p({
|
||||
title: "公司简介"
|
||||
}),
|
||||
d: common_vendor.t(common_vendor.unref(companyInfo).description),
|
||||
e: common_vendor.p({
|
||||
title: "我们的优势"
|
||||
}),
|
||||
f: common_vendor.f(common_vendor.unref(companyInfo).features, (item, k0, i0) => {
|
||||
return {
|
||||
a: common_vendor.t(item.title),
|
||||
b: common_vendor.t(item.desc),
|
||||
c: item.title
|
||||
};
|
||||
}),
|
||||
g: common_vendor.p({
|
||||
title: "联系我们"
|
||||
}),
|
||||
h: common_vendor.t(common_vendor.unref(companyInfo).phone),
|
||||
i: common_vendor.o(callPhone),
|
||||
j: common_vendor.t(common_vendor.unref(companyInfo).wechat),
|
||||
k: common_vendor.o(copyWechat),
|
||||
l: common_vendor.t(common_vendor.unref(companyInfo).address),
|
||||
m: common_vendor.o(openLocation),
|
||||
n: common_vendor.t(common_vendor.unref(companyInfo).workTime),
|
||||
o: common_vendor.sei(common_vendor.gei(_ctx, ""), "view")
|
||||
};
|
||||
return __returned__;
|
||||
};
|
||||
}
|
||||
});
|
||||
wx.createPage(_sfc_main);
|
||||
//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/about/index.js.map
|
||||
6
前端/unpackage/dist/dev/mp-weixin/pages/about/index.json
vendored
Normal file
6
前端/unpackage/dist/dev/mp-weixin/pages/about/index.json
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"navigationBarTitleText": "关于我们",
|
||||
"usingComponents": {
|
||||
"section-header": "../../components/section-header/section-header"
|
||||
}
|
||||
}
|
||||
1
前端/unpackage/dist/dev/mp-weixin/pages/about/index.wxml
vendored
Normal file
1
前端/unpackage/dist/dev/mp-weixin/pages/about/index.wxml
vendored
Normal file
@@ -0,0 +1 @@
|
||||
<view id="{{o}}" change:eS="{{uV.sS}}" eS="{{$eS[o]}}" change:eA="{{uV.sA}}" eA="{{$eA[o]}}" class="{{['page', virtualHostClass]}}" style="{{virtualHostStyle}}" hidden="{{virtualHostHidden || false}}"><scroll-view class="page-scroll" scroll-y enable-flex="true" enhanced="true"><view class="header-section"><view class="company-logo"><text class="logo-text">优艺家</text></view><text class="company-name">{{a}}</text><text class="company-slogan">{{b}}</text></view><view class="section"><section-header u-i="00470dc0-0" bind:__l="__l" u-p="{{c||''}}"></section-header><view class="intro-card"><text class="intro-text">{{d}}</text></view></view><view class="section"><section-header u-i="00470dc0-1" bind:__l="__l" u-p="{{e||''}}"></section-header><view class="features-grid"><view wx:for="{{f}}" wx:for-item="item" wx:key="c" class="feature-item"><view class="feature-icon-bg"><text class="feature-icon">✓</text></view><text class="feature-title">{{item.a}}</text><text class="feature-desc">{{item.b}}</text></view></view></view><view class="section"><section-header u-i="00470dc0-2" bind:__l="__l" u-p="{{g||''}}"></section-header><view class="contact-card"><view class="contact-item" bindtap="{{i}}"><view class="contact-icon-bg"><text class="contact-icon">📞</text></view><view class="contact-info"><text class="contact-label">客服电话</text><text class="contact-value">{{h}}</text></view><text class="contact-arrow">›</text></view><view class="contact-item" bindtap="{{k}}"><view class="contact-icon-bg"><text class="contact-icon">💬</text></view><view class="contact-info"><text class="contact-label">微信号</text><text class="contact-value">{{j}}</text></view><text class="contact-arrow">›</text></view><view class="contact-item" bindtap="{{m}}"><view class="contact-icon-bg"><text class="contact-icon">📍</text></view><view class="contact-info"><text class="contact-label">公司地址</text><text class="contact-value">{{l}}</text></view><text class="contact-arrow">›</text></view><view class="contact-item"><view class="contact-icon-bg"><text class="contact-icon">🕐</text></view><view class="contact-info"><text class="contact-label">营业时间</text><text class="contact-value">{{n}}</text></view></view></view></view><view class="bottom-space"></view></scroll-view></view><wxs src="/common/uniView.wxs" module="uV"/>
|
||||
169
前端/unpackage/dist/dev/mp-weixin/pages/about/index.wxss
vendored
Normal file
169
前端/unpackage/dist/dev/mp-weixin/pages/about/index.wxss
vendored
Normal file
@@ -0,0 +1,169 @@
|
||||
@import "../../uvue.wxss";
|
||||
:host{display:flex;flex-direction:column}
|
||||
/**
|
||||
* 优艺家沙发翻新 - 全局样式变量
|
||||
*/
|
||||
/* ========== 项目主题色 ========== */
|
||||
/* 辅助色 */
|
||||
/* 文字颜色 */
|
||||
/* 背景色 */
|
||||
/* 边框颜色 */
|
||||
/* 间距 */
|
||||
/* 圆角 */
|
||||
/* 阴影 */
|
||||
/* ========== uni-app 内置变量 ========== */
|
||||
/* 行为相关颜色 */
|
||||
/* 文字基本颜色 */
|
||||
/* 背景颜色 */
|
||||
/* 边框颜色 */
|
||||
/* 尺寸变量 */
|
||||
/* 文字尺寸 */
|
||||
/* 图片尺寸 */
|
||||
/* Border Radius */
|
||||
/* 水平间距 */
|
||||
/* 垂直间距 */
|
||||
/* 透明度 */
|
||||
/* 文章场景相关 */
|
||||
.page {
|
||||
flex: 1;
|
||||
background-color: #f5f5f5;
|
||||
}
|
||||
.page-scroll {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
/* 头部区域 */
|
||||
.header-section {
|
||||
background: linear-gradient(135deg, #D4A574 0%, #B8895A 100%);
|
||||
padding: 60rpx 32rpx;
|
||||
align-items: center;
|
||||
}
|
||||
.company-logo {
|
||||
width: 140rpx;
|
||||
height: 140rpx;
|
||||
background-color: #ffffff;
|
||||
border-radius: 50%;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-bottom: 24rpx;
|
||||
}
|
||||
.logo-text {
|
||||
font-size: 36rpx;
|
||||
font-weight: 600;
|
||||
color: #D4A574;
|
||||
}
|
||||
.company-name {
|
||||
font-size: 40rpx;
|
||||
font-weight: 600;
|
||||
color: #ffffff;
|
||||
margin-bottom: 12rpx;
|
||||
}
|
||||
.company-slogan {
|
||||
font-size: 28rpx;
|
||||
color: rgba(255, 255, 255, 0.8);
|
||||
}
|
||||
|
||||
/* 通用section */
|
||||
.section {
|
||||
padding: 0 24rpx;
|
||||
margin-bottom: 24rpx;
|
||||
}
|
||||
|
||||
/* 公司介绍 */
|
||||
.intro-card {
|
||||
background-color: #ffffff;
|
||||
border-radius: 16rpx;
|
||||
padding: 32rpx;
|
||||
}
|
||||
.intro-text {
|
||||
font-size: 28rpx;
|
||||
color: #606266;
|
||||
line-height: 48rpx;
|
||||
}
|
||||
|
||||
/* 优势 */
|
||||
.features-grid {
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
background-color: #ffffff;
|
||||
border-radius: 16rpx;
|
||||
padding: 16rpx;
|
||||
}
|
||||
.feature-item {
|
||||
width: 50%;
|
||||
padding: 24rpx;
|
||||
align-items: center;
|
||||
}
|
||||
.feature-icon-bg {
|
||||
width: 80rpx;
|
||||
height: 80rpx;
|
||||
background-color: #D4A574;
|
||||
border-radius: 50%;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-bottom: 16rpx;
|
||||
}
|
||||
.feature-icon {
|
||||
font-size: 40rpx;
|
||||
color: #ffffff;
|
||||
}
|
||||
.feature-title {
|
||||
font-size: 30rpx;
|
||||
font-weight: 600;
|
||||
color: #333333;
|
||||
margin-bottom: 8rpx;
|
||||
}
|
||||
.feature-desc {
|
||||
font-size: 24rpx;
|
||||
color: #909399;
|
||||
}
|
||||
|
||||
/* 联系方式 */
|
||||
.contact-card {
|
||||
background-color: #ffffff;
|
||||
border-radius: 16rpx;
|
||||
}
|
||||
.contact-item {
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
padding: 32rpx;
|
||||
border-bottom-width: 1rpx;
|
||||
border-bottom-style: solid;
|
||||
border-bottom-color: #EBEEF5;
|
||||
}
|
||||
.contact-item:last-child {
|
||||
border-bottom-width: 0;
|
||||
}
|
||||
.contact-icon-bg {
|
||||
width: 72rpx;
|
||||
height: 72rpx;
|
||||
background-color: #FDF6EE;
|
||||
border-radius: 50%;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-right: 24rpx;
|
||||
}
|
||||
.contact-icon {
|
||||
font-size: 36rpx;
|
||||
}
|
||||
.contact-info {
|
||||
flex: 1;
|
||||
}
|
||||
.contact-label {
|
||||
font-size: 24rpx;
|
||||
color: #909399;
|
||||
margin-bottom: 8rpx;
|
||||
}
|
||||
.contact-value {
|
||||
font-size: 30rpx;
|
||||
color: #333333;
|
||||
}
|
||||
.contact-arrow {
|
||||
font-size: 36rpx;
|
||||
color: #909399;
|
||||
}
|
||||
|
||||
/* 底部间距 */
|
||||
.bottom-space {
|
||||
height: 60rpx;
|
||||
}
|
||||
221
前端/unpackage/dist/dev/mp-weixin/pages/booking/index.js
vendored
Normal file
221
前端/unpackage/dist/dev/mp-weixin/pages/booking/index.js
vendored
Normal file
@@ -0,0 +1,221 @@
|
||||
"use strict";
|
||||
const common_vendor = require("../../common/vendor.js");
|
||||
const api_index = require("../../api/index.js");
|
||||
const utils_config = require("../../utils/config.js");
|
||||
class FormData extends UTS.UTSType {
|
||||
static get$UTSMetadata$() {
|
||||
return {
|
||||
kind: 2,
|
||||
get fields() {
|
||||
return {
|
||||
userName: { type: String, optional: false },
|
||||
phone: { type: String, optional: false },
|
||||
address: { type: String, optional: false },
|
||||
sofaType: { type: String, optional: false },
|
||||
problem: { type: String, optional: false }
|
||||
};
|
||||
},
|
||||
name: "FormData"
|
||||
};
|
||||
}
|
||||
constructor(options, metadata = FormData.get$UTSMetadata$(), isJSONParse = false) {
|
||||
super();
|
||||
this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);
|
||||
this.userName = this.__props__.userName;
|
||||
this.phone = this.__props__.phone;
|
||||
this.address = this.__props__.address;
|
||||
this.sofaType = this.__props__.sofaType;
|
||||
this.problem = this.__props__.problem;
|
||||
delete this.__props__;
|
||||
}
|
||||
}
|
||||
class SofaType extends UTS.UTSType {
|
||||
static get$UTSMetadata$() {
|
||||
return {
|
||||
kind: 2,
|
||||
get fields() {
|
||||
return {
|
||||
id: { type: String, optional: false },
|
||||
name: { type: String, optional: false }
|
||||
};
|
||||
},
|
||||
name: "SofaType"
|
||||
};
|
||||
}
|
||||
constructor(options, metadata = SofaType.get$UTSMetadata$(), isJSONParse = false) {
|
||||
super();
|
||||
this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);
|
||||
this.id = this.__props__.id;
|
||||
this.name = this.__props__.name;
|
||||
delete this.__props__;
|
||||
}
|
||||
}
|
||||
const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({
|
||||
__name: "index",
|
||||
setup(__props) {
|
||||
const formData = common_vendor.ref(new FormData({
|
||||
userName: "",
|
||||
phone: "",
|
||||
address: "",
|
||||
sofaType: "",
|
||||
problem: ""
|
||||
}));
|
||||
const imageList = common_vendor.ref([]);
|
||||
const sofaTypes = common_vendor.ref([]);
|
||||
const submitting = common_vendor.ref(false);
|
||||
const initSofaTypes = () => {
|
||||
sofaTypes.value = utils_config.SOFA_CATEGORIES.filter((item) => {
|
||||
return item.id != "all";
|
||||
}).map((item) => {
|
||||
return new SofaType({
|
||||
id: item.id,
|
||||
name: item.name
|
||||
});
|
||||
});
|
||||
};
|
||||
const selectSofaType = (id) => {
|
||||
formData.value.sofaType = id;
|
||||
};
|
||||
const chooseImage = () => {
|
||||
common_vendor.index.chooseImage(new UTSJSONObject({
|
||||
count: 9 - imageList.value.length,
|
||||
sizeType: ["compressed"],
|
||||
sourceType: ["album", "camera"],
|
||||
success: (res) => {
|
||||
imageList.value = [...imageList.value, ...res.tempFilePaths];
|
||||
}
|
||||
}));
|
||||
};
|
||||
const deleteImage = (index) => {
|
||||
imageList.value.splice(index, 1);
|
||||
};
|
||||
const validateForm = () => {
|
||||
if (formData.value.userName.trim() == "") {
|
||||
common_vendor.index.showToast({
|
||||
title: "请输入您的姓名",
|
||||
icon: "none"
|
||||
});
|
||||
return false;
|
||||
}
|
||||
const phone = formData.value.phone.trim();
|
||||
if (phone == "") {
|
||||
common_vendor.index.showToast({
|
||||
title: "请输入联系电话",
|
||||
icon: "none"
|
||||
});
|
||||
return false;
|
||||
}
|
||||
if (phone.length != 11) {
|
||||
common_vendor.index.showToast({
|
||||
title: "请输入正确的手机号",
|
||||
icon: "none"
|
||||
});
|
||||
return false;
|
||||
}
|
||||
if (formData.value.address.trim() == "") {
|
||||
common_vendor.index.showToast({
|
||||
title: "请输入您的地址",
|
||||
icon: "none"
|
||||
});
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
};
|
||||
const handleSubmit = () => {
|
||||
return common_vendor.__awaiter(this, void 0, void 0, function* () {
|
||||
if (!validateForm())
|
||||
return Promise.resolve(null);
|
||||
if (submitting.value)
|
||||
return Promise.resolve(null);
|
||||
submitting.value = true;
|
||||
try {
|
||||
const data = new UTSJSONObject({
|
||||
userName: formData.value.userName,
|
||||
phone: formData.value.phone,
|
||||
address: formData.value.address,
|
||||
sofaType: formData.value.sofaType,
|
||||
problem: formData.value.problem,
|
||||
images: imageList.value
|
||||
});
|
||||
const res = yield api_index.submitBooking(data);
|
||||
const result = res.data;
|
||||
common_vendor.index.showModal(new UTSJSONObject({
|
||||
title: "预约成功",
|
||||
content: result["message"],
|
||||
showCancel: false,
|
||||
success: () => {
|
||||
common_vendor.index.navigateBack(new UTSJSONObject({
|
||||
fail: () => {
|
||||
common_vendor.index.switchTab({
|
||||
url: "/pages/index/index"
|
||||
});
|
||||
}
|
||||
}));
|
||||
}
|
||||
}));
|
||||
} catch (e) {
|
||||
common_vendor.index.__f__("error", "at pages/booking/index.uvue:270", "提交预约失败", e);
|
||||
common_vendor.index.showToast({
|
||||
title: "提交失败,请重试",
|
||||
icon: "none"
|
||||
});
|
||||
}
|
||||
submitting.value = false;
|
||||
});
|
||||
};
|
||||
common_vendor.onLoad(() => {
|
||||
initSofaTypes();
|
||||
});
|
||||
return (_ctx, _cache) => {
|
||||
"raw js";
|
||||
const __returned__ = common_vendor.e({
|
||||
a: common_vendor.unref(formData).userName,
|
||||
b: common_vendor.o(($event) => {
|
||||
return common_vendor.unref(formData).userName = $event.detail.value;
|
||||
}),
|
||||
c: common_vendor.unref(formData).phone,
|
||||
d: common_vendor.o(($event) => {
|
||||
return common_vendor.unref(formData).phone = $event.detail.value;
|
||||
}),
|
||||
e: common_vendor.unref(formData).address,
|
||||
f: common_vendor.o(($event) => {
|
||||
return common_vendor.unref(formData).address = $event.detail.value;
|
||||
}),
|
||||
g: common_vendor.f(common_vendor.unref(sofaTypes), (item, k0, i0) => {
|
||||
return {
|
||||
a: common_vendor.t(item.name),
|
||||
b: common_vendor.unref(formData).sofaType == item.id ? 1 : "",
|
||||
c: common_vendor.unref(formData).sofaType == item.id ? 1 : "",
|
||||
d: item.id,
|
||||
e: common_vendor.o(($event) => {
|
||||
return selectSofaType(item.id);
|
||||
}, item.id)
|
||||
};
|
||||
}),
|
||||
h: common_vendor.unref(formData).problem,
|
||||
i: common_vendor.o(($event) => {
|
||||
return common_vendor.unref(formData).problem = $event.detail.value;
|
||||
}),
|
||||
j: common_vendor.t(common_vendor.unref(formData).problem.length),
|
||||
k: common_vendor.f(common_vendor.unref(imageList), (item, index, i0) => {
|
||||
return {
|
||||
a: item,
|
||||
b: common_vendor.o(($event) => {
|
||||
return deleteImage(index);
|
||||
}, index),
|
||||
c: index
|
||||
};
|
||||
}),
|
||||
l: common_vendor.unref(imageList).length < 9
|
||||
}, common_vendor.unref(imageList).length < 9 ? {
|
||||
m: common_vendor.o(chooseImage)
|
||||
} : {}, {
|
||||
n: common_vendor.o(handleSubmit),
|
||||
o: common_vendor.sei(common_vendor.gei(_ctx, ""), "view")
|
||||
});
|
||||
return __returned__;
|
||||
};
|
||||
}
|
||||
});
|
||||
wx.createPage(_sfc_main);
|
||||
//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/booking/index.js.map
|
||||
4
前端/unpackage/dist/dev/mp-weixin/pages/booking/index.json
vendored
Normal file
4
前端/unpackage/dist/dev/mp-weixin/pages/booking/index.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"navigationBarTitleText": "预约咨询",
|
||||
"usingComponents": {}
|
||||
}
|
||||
1
前端/unpackage/dist/dev/mp-weixin/pages/booking/index.wxml
vendored
Normal file
1
前端/unpackage/dist/dev/mp-weixin/pages/booking/index.wxml
vendored
Normal file
@@ -0,0 +1 @@
|
||||
<view id="{{o}}" change:eS="{{uV.sS}}" eS="{{$eS[o]}}" change:eA="{{uV.sA}}" eA="{{$eA[o]}}" class="{{['page', virtualHostClass]}}" style="{{virtualHostStyle}}" hidden="{{virtualHostHidden || false}}"><scroll-view class="page-scroll" scroll-y enable-flex="true" enhanced="true"><view class="header-section"><text class="header-title">预约翻新服务</text><text class="header-desc">填写以下信息,我们会尽快与您联系</text></view><view class="form-section"><view class="form-item"><text class="form-label"><text class="required">*</text> 您的姓名 </text><input class="form-input" type="text" placeholder="请输入您的姓名" placeholder-class="placeholder" value="{{a}}" bindinput="{{b}}"/></view><view class="form-item"><text class="form-label"><text class="required">*</text> 联系电话 </text><input class="form-input" type="number" placeholder="请输入您的手机号" placeholder-class="placeholder" maxlength="11" value="{{c}}" bindinput="{{d}}"/></view><view class="form-item"><text class="form-label"><text class="required">*</text> 您的地址 </text><input class="form-input" type="text" placeholder="请输入详细地址" placeholder-class="placeholder" value="{{e}}" bindinput="{{f}}"/></view><view class="form-item"><text class="form-label">沙发类型</text><view class="type-grid"><view wx:for="{{g}}" wx:for-item="item" wx:key="d" class="{{['type-item', item.c && 'type-active']}}" bindtap="{{item.e}}"><text class="{{['type-text', item.b && 'type-text-active']}}">{{item.a}}</text></view></view></view><view class="form-item"><text class="form-label">问题描述</text><block wx:if="{{r0}}"><textarea class="form-textarea" placeholder="请描述沙发的问题(如:皮面开裂、褪色、塌陷等)" placeholder-class="placeholder" maxlength="500" value="{{h}}" bindinput="{{i}}"></textarea></block><text class="textarea-count">{{j}}/500</text></view><view class="form-item"><text class="form-label">上传图片(可选)</text><view class="upload-grid"><view wx:for="{{k}}" wx:for-item="item" wx:key="c" class="upload-item"><image class="upload-image" src="{{item.a}}" mode="aspectFill"></image><view class="upload-delete" bindtap="{{item.b}}"><text class="delete-icon">×</text></view></view><view wx:if="{{l}}" class="upload-add" bindtap="{{m}}"><text class="add-icon">+</text><text class="add-text">添加图片</text></view></view><text class="upload-tip">最多可上传9张图片</text></view></view><view class="bottom-space"></view></scroll-view><view class="submit-bar"><view class="submit-btn" bindtap="{{n}}"><text class="submit-text">提交预约</text></view></view></view><wxs src="/common/uniView.wxs" module="uV"/>
|
||||
206
前端/unpackage/dist/dev/mp-weixin/pages/booking/index.wxss
vendored
Normal file
206
前端/unpackage/dist/dev/mp-weixin/pages/booking/index.wxss
vendored
Normal file
@@ -0,0 +1,206 @@
|
||||
@import "../../uvue.wxss";
|
||||
:host{display:flex;flex-direction:column}
|
||||
/**
|
||||
* 优艺家沙发翻新 - 全局样式变量
|
||||
*/
|
||||
/* ========== 项目主题色 ========== */
|
||||
/* 辅助色 */
|
||||
/* 文字颜色 */
|
||||
/* 背景色 */
|
||||
/* 边框颜色 */
|
||||
/* 间距 */
|
||||
/* 圆角 */
|
||||
/* 阴影 */
|
||||
/* ========== uni-app 内置变量 ========== */
|
||||
/* 行为相关颜色 */
|
||||
/* 文字基本颜色 */
|
||||
/* 背景颜色 */
|
||||
/* 边框颜色 */
|
||||
/* 尺寸变量 */
|
||||
/* 文字尺寸 */
|
||||
/* 图片尺寸 */
|
||||
/* Border Radius */
|
||||
/* 水平间距 */
|
||||
/* 垂直间距 */
|
||||
/* 透明度 */
|
||||
/* 文章场景相关 */
|
||||
.page {
|
||||
flex: 1;
|
||||
background-color: #f5f5f5;
|
||||
}
|
||||
.page-scroll {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
/* 头部 */
|
||||
.header-section {
|
||||
background: linear-gradient(135deg, #D4A574 0%, #B8895A 100%);
|
||||
padding: 48rpx 32rpx;
|
||||
align-items: center;
|
||||
}
|
||||
.header-title {
|
||||
font-size: 40rpx;
|
||||
font-weight: 600;
|
||||
color: #ffffff;
|
||||
margin-bottom: 12rpx;
|
||||
}
|
||||
.header-desc {
|
||||
font-size: 28rpx;
|
||||
color: rgba(255, 255, 255, 0.8);
|
||||
}
|
||||
|
||||
/* 表单区域 */
|
||||
.form-section {
|
||||
background-color: #ffffff;
|
||||
margin: 24rpx;
|
||||
border-radius: 16rpx;
|
||||
padding: 32rpx;
|
||||
}
|
||||
.form-item {
|
||||
margin-bottom: 32rpx;
|
||||
}
|
||||
.form-label {
|
||||
font-size: 28rpx;
|
||||
font-weight: 600;
|
||||
color: #333333;
|
||||
margin-bottom: 16rpx;
|
||||
}
|
||||
.required {
|
||||
color: #F56C6C;
|
||||
margin-right: 4rpx;
|
||||
}
|
||||
.form-input {
|
||||
background-color: #f5f5f5;
|
||||
border-radius: 12rpx;
|
||||
padding: 24rpx;
|
||||
font-size: 28rpx;
|
||||
height: 40px;
|
||||
}
|
||||
.placeholder {
|
||||
color: #C0C4CC;
|
||||
}
|
||||
|
||||
/* 沙发类型选择 */
|
||||
.type-grid {
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
.type-item {
|
||||
padding: 16rpx 32rpx;
|
||||
background-color: #f5f5f5;
|
||||
border-radius: 8rpx;
|
||||
margin-right: 16rpx;
|
||||
margin-bottom: 16rpx;
|
||||
}
|
||||
.type-active {
|
||||
background-color: #D4A574;
|
||||
}
|
||||
.type-text {
|
||||
font-size: 26rpx;
|
||||
color: #606266;
|
||||
}
|
||||
.type-text-active {
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
/* 文本域 */
|
||||
.form-textarea {
|
||||
background-color: #f5f5f5;
|
||||
border-radius: 12rpx;
|
||||
padding: 24rpx;
|
||||
font-size: 28rpx;
|
||||
height: 200rpx;
|
||||
width: 100%;
|
||||
}
|
||||
.textarea-count {
|
||||
font-size: 24rpx;
|
||||
color: #909399;
|
||||
text-align: right;
|
||||
margin-top: 8rpx;
|
||||
}
|
||||
|
||||
/* 图片上传 */
|
||||
.upload-grid {
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
.upload-item {
|
||||
width: 200rpx;
|
||||
height: 200rpx;
|
||||
margin-right: 16rpx;
|
||||
margin-bottom: 16rpx;
|
||||
position: relative;
|
||||
}
|
||||
.upload-image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border-radius: 12rpx;
|
||||
}
|
||||
.upload-delete {
|
||||
position: absolute;
|
||||
top: -16rpx;
|
||||
right: -16rpx;
|
||||
width: 40rpx;
|
||||
height: 40rpx;
|
||||
background-color: #F56C6C;
|
||||
border-radius: 50%;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
.delete-icon {
|
||||
font-size: 28rpx;
|
||||
color: #ffffff;
|
||||
}
|
||||
.upload-add {
|
||||
width: 200rpx;
|
||||
height: 200rpx;
|
||||
background-color: #f5f5f5;
|
||||
border-radius: 12rpx;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border-width: 2rpx;
|
||||
border-style: dashed;
|
||||
border-color: #DCDFE6;
|
||||
}
|
||||
.add-icon {
|
||||
font-size: 48rpx;
|
||||
color: #909399;
|
||||
}
|
||||
.add-text {
|
||||
font-size: 24rpx;
|
||||
color: #909399;
|
||||
margin-top: 8rpx;
|
||||
}
|
||||
.upload-tip {
|
||||
font-size: 24rpx;
|
||||
color: #909399;
|
||||
margin-top: 16rpx;
|
||||
}
|
||||
|
||||
/* 底部间距 */
|
||||
.bottom-space {
|
||||
height: 160rpx;
|
||||
}
|
||||
|
||||
/* 提交按钮 */
|
||||
.submit-bar {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
background-color: #ffffff;
|
||||
padding: 24rpx 32rpx;
|
||||
padding-bottom: 48rpx;
|
||||
box-shadow: 0 -4rpx 16rpx rgba(0, 0, 0, 0.08);
|
||||
}
|
||||
.submit-btn {
|
||||
background-color: #D4A574;
|
||||
border-radius: 999rpx;
|
||||
padding: 28rpx 0;
|
||||
align-items: center;
|
||||
}
|
||||
.submit-text {
|
||||
font-size: 32rpx;
|
||||
font-weight: 600;
|
||||
color: #ffffff;
|
||||
}
|
||||
186
前端/unpackage/dist/dev/mp-weixin/pages/cases/detail.js
vendored
Normal file
186
前端/unpackage/dist/dev/mp-weixin/pages/cases/detail.js
vendored
Normal file
@@ -0,0 +1,186 @@
|
||||
"use strict";
|
||||
const common_vendor = require("../../common/vendor.js");
|
||||
const api_index = require("../../api/index.js");
|
||||
if (!Array) {
|
||||
const _easycom_before_after_1 = common_vendor.resolveComponent("before-after");
|
||||
_easycom_before_after_1();
|
||||
}
|
||||
const _easycom_before_after = () => "../../components/before-after/before-after.js";
|
||||
if (!Math) {
|
||||
_easycom_before_after();
|
||||
}
|
||||
class CaseDetail extends UTS.UTSType {
|
||||
static get$UTSMetadata$() {
|
||||
return {
|
||||
kind: 2,
|
||||
get fields() {
|
||||
return {
|
||||
id: { type: String, optional: false },
|
||||
title: { type: String, optional: false },
|
||||
category: { type: String, optional: false },
|
||||
categoryName: { type: String, optional: false },
|
||||
beforeImages: { type: UTS.UTSType.withGenerics(Array, [String]), optional: false },
|
||||
afterImages: { type: UTS.UTSType.withGenerics(Array, [String]), optional: false },
|
||||
description: { type: String, optional: false },
|
||||
material: { type: String, optional: false },
|
||||
duration: { type: String, optional: false },
|
||||
price: { type: String, optional: false },
|
||||
views: { type: Number, optional: false },
|
||||
likes: { type: Number, optional: false },
|
||||
createTime: { type: String, optional: false }
|
||||
};
|
||||
},
|
||||
name: "CaseDetail"
|
||||
};
|
||||
}
|
||||
constructor(options, metadata = CaseDetail.get$UTSMetadata$(), isJSONParse = false) {
|
||||
super();
|
||||
this.__props__ = UTS.UTSType.initProps(options, metadata, isJSONParse);
|
||||
this.id = this.__props__.id;
|
||||
this.title = this.__props__.title;
|
||||
this.category = this.__props__.category;
|
||||
this.categoryName = this.__props__.categoryName;
|
||||
this.beforeImages = this.__props__.beforeImages;
|
||||
this.afterImages = this.__props__.afterImages;
|
||||
this.description = this.__props__.description;
|
||||
this.material = this.__props__.material;
|
||||
this.duration = this.__props__.duration;
|
||||
this.price = this.__props__.price;
|
||||
this.views = this.__props__.views;
|
||||
this.likes = this.__props__.likes;
|
||||
this.createTime = this.__props__.createTime;
|
||||
delete this.__props__;
|
||||
}
|
||||
}
|
||||
const _sfc_main = /* @__PURE__ */ common_vendor.defineComponent({
|
||||
__name: "detail",
|
||||
setup(__props) {
|
||||
const caseId = common_vendor.ref("");
|
||||
const caseDetail = common_vendor.ref(new CaseDetail({
|
||||
id: "",
|
||||
title: "",
|
||||
category: "",
|
||||
categoryName: "",
|
||||
beforeImages: [],
|
||||
afterImages: [],
|
||||
description: "",
|
||||
material: "",
|
||||
duration: "",
|
||||
price: "",
|
||||
views: 0,
|
||||
likes: 0,
|
||||
createTime: ""
|
||||
}));
|
||||
const isFavorite = common_vendor.ref(false);
|
||||
const fetchCaseDetail = () => {
|
||||
return common_vendor.__awaiter(this, void 0, void 0, function* () {
|
||||
try {
|
||||
const res = yield api_index.getCaseDetail(caseId.value);
|
||||
const data = res.data;
|
||||
caseDetail.value = new CaseDetail(
|
||||
{
|
||||
id: data["id"],
|
||||
title: data["title"],
|
||||
category: data["category"],
|
||||
categoryName: data["categoryName"],
|
||||
beforeImages: data["beforeImages"],
|
||||
afterImages: data["afterImages"],
|
||||
description: data["description"],
|
||||
material: data["material"],
|
||||
duration: data["duration"],
|
||||
price: data["price"],
|
||||
views: data["views"],
|
||||
likes: data["likes"],
|
||||
createTime: data["createTime"]
|
||||
}
|
||||
// 更新标题
|
||||
);
|
||||
common_vendor.index.setNavigationBarTitle({
|
||||
title: caseDetail.value.title
|
||||
});
|
||||
} catch (e) {
|
||||
common_vendor.index.__f__("error", "at pages/cases/detail.uvue:173", "获取案例详情失败", e);
|
||||
}
|
||||
});
|
||||
};
|
||||
const previewImages = (index) => {
|
||||
common_vendor.index.previewImage({
|
||||
current: index,
|
||||
urls: caseDetail.value.afterImages
|
||||
});
|
||||
};
|
||||
const handleFavorite = () => {
|
||||
isFavorite.value = !isFavorite.value;
|
||||
common_vendor.index.showToast({
|
||||
title: isFavorite.value ? "已收藏" : "已取消收藏",
|
||||
icon: "none"
|
||||
});
|
||||
};
|
||||
const handleShare = () => {
|
||||
common_vendor.index.showToast({
|
||||
title: "分享功能开发中",
|
||||
icon: "none"
|
||||
});
|
||||
};
|
||||
const handleContact = () => {
|
||||
common_vendor.index.makePhoneCall({
|
||||
phoneNumber: "400-888-8888",
|
||||
fail: () => {
|
||||
common_vendor.index.showToast({
|
||||
title: "拨打电话失败",
|
||||
icon: "none"
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
const goToBooking = () => {
|
||||
common_vendor.index.navigateTo({
|
||||
url: "/pages/booking/index"
|
||||
});
|
||||
};
|
||||
common_vendor.onLoad((options) => {
|
||||
var _a;
|
||||
caseId.value = (_a = options["id"]) !== null && _a !== void 0 ? _a : "";
|
||||
if (caseId.value != "") {
|
||||
fetchCaseDetail();
|
||||
}
|
||||
});
|
||||
return (_ctx, _cache) => {
|
||||
"raw js";
|
||||
const __returned__ = {
|
||||
a: common_vendor.f(common_vendor.unref(caseDetail).afterImages, (item, index, i0) => {
|
||||
return {
|
||||
a: item,
|
||||
b: common_vendor.o(($event) => {
|
||||
return previewImages(index);
|
||||
}, index),
|
||||
c: index
|
||||
};
|
||||
}),
|
||||
b: common_vendor.t(common_vendor.unref(caseDetail).categoryName),
|
||||
c: common_vendor.t(common_vendor.unref(caseDetail).title),
|
||||
d: common_vendor.t(common_vendor.unref(caseDetail).price),
|
||||
e: common_vendor.t(common_vendor.unref(caseDetail).views),
|
||||
f: common_vendor.t(common_vendor.unref(caseDetail).likes),
|
||||
g: common_vendor.p({
|
||||
beforeImage: common_vendor.unref(caseDetail).beforeImages[0] || "",
|
||||
afterImage: common_vendor.unref(caseDetail).afterImages[0] || "",
|
||||
showTitle: true
|
||||
}),
|
||||
h: common_vendor.t(common_vendor.unref(caseDetail).material),
|
||||
i: common_vendor.t(common_vendor.unref(caseDetail).duration),
|
||||
j: common_vendor.t(common_vendor.unref(caseDetail).createTime),
|
||||
k: common_vendor.t(common_vendor.unref(caseDetail).description),
|
||||
l: common_vendor.t(common_vendor.unref(isFavorite) ? "❤️" : "🤍"),
|
||||
m: common_vendor.o(handleFavorite),
|
||||
n: common_vendor.o(handleShare),
|
||||
o: common_vendor.o(handleContact),
|
||||
p: common_vendor.o(goToBooking),
|
||||
q: common_vendor.sei(common_vendor.gei(_ctx, ""), "view")
|
||||
};
|
||||
return __returned__;
|
||||
};
|
||||
}
|
||||
});
|
||||
wx.createPage(_sfc_main);
|
||||
//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/cases/detail.js.map
|
||||
7
前端/unpackage/dist/dev/mp-weixin/pages/cases/detail.json
vendored
Normal file
7
前端/unpackage/dist/dev/mp-weixin/pages/cases/detail.json
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"navigationBarTitleText": "案例详情",
|
||||
"navigationBarBackgroundColor": "#ffffff",
|
||||
"usingComponents": {
|
||||
"before-after": "../../components/before-after/before-after"
|
||||
}
|
||||
}
|
||||
1
前端/unpackage/dist/dev/mp-weixin/pages/cases/detail.wxml
vendored
Normal file
1
前端/unpackage/dist/dev/mp-weixin/pages/cases/detail.wxml
vendored
Normal file
@@ -0,0 +1 @@
|
||||
<view id="{{q}}" change:eS="{{uV.sS}}" eS="{{$eS[q]}}" change:eA="{{uV.sA}}" eA="{{$eA[q]}}" class="{{['page', virtualHostClass]}}" style="{{virtualHostStyle}}" hidden="{{virtualHostHidden || false}}"><scroll-view class="page-scroll" scroll-y enable-flex="true" enhanced="true"><view class="gallery-section"><swiper class="gallery-swiper" circular indicator-dots indicator-color="rgba(255,255,255,0.5)" indicator-active-color="#ffffff"><swiper-item wx:for="{{a}}" wx:for-item="item" wx:key="c"><image class="gallery-image" src="{{item.a}}" mode="aspectFill" bindtap="{{item.b}}"></image></swiper-item></swiper><view class="gallery-tag"><text class="gallery-tag-text">{{b}}</text></view></view><view class="info-section"><text class="case-title">{{c}}</text><view class="case-meta"><text class="case-price">{{d}}</text><view class="case-stats"><text class="stat-text">👁 {{e}}</text><text class="stat-text">❤ {{f}}</text></view></view></view><view class="compare-section"><before-after u-i="eec33e1e-0" bind:__l="__l" u-p="{{g||''}}"></before-after></view><view class="detail-section"><view class="detail-header"><text class="detail-title">翻新详情</text></view><view class="detail-list"><view class="detail-item"><text class="detail-label">使用材质</text><text class="detail-value">{{h}}</text></view><view class="detail-item"><text class="detail-label">翻新工期</text><text class="detail-value">{{i}}</text></view><view class="detail-item"><text class="detail-label">完成日期</text><text class="detail-value">{{j}}</text></view></view><view class="detail-desc"><text class="desc-title">案例描述</text><text class="desc-content">{{k}}</text></view></view><view class="bottom-space"></view></scroll-view><view class="bottom-bar"><view class="bar-left"><view class="bar-btn" bindtap="{{m}}"><text class="bar-icon">{{l}}</text><text class="bar-label">收藏</text></view><view class="bar-btn" bindtap="{{n}}"><text class="bar-icon">📤</text><text class="bar-label">分享</text></view></view><view class="bar-right"><view class="contact-btn" bindtap="{{o}}"><text class="contact-text">在线咨询</text></view><view class="booking-btn" bindtap="{{p}}"><text class="booking-text">立即预约</text></view></view></view></view><wxs src="/common/uniView.wxs" module="uV"/>
|
||||
202
前端/unpackage/dist/dev/mp-weixin/pages/cases/detail.wxss
vendored
Normal file
202
前端/unpackage/dist/dev/mp-weixin/pages/cases/detail.wxss
vendored
Normal file
@@ -0,0 +1,202 @@
|
||||
@import "../../uvue.wxss";
|
||||
:host{display:flex;flex-direction:column}
|
||||
/**
|
||||
* 优艺家沙发翻新 - 全局样式变量
|
||||
*/
|
||||
/* ========== 项目主题色 ========== */
|
||||
/* 辅助色 */
|
||||
/* 文字颜色 */
|
||||
/* 背景色 */
|
||||
/* 边框颜色 */
|
||||
/* 间距 */
|
||||
/* 圆角 */
|
||||
/* 阴影 */
|
||||
/* ========== uni-app 内置变量 ========== */
|
||||
/* 行为相关颜色 */
|
||||
/* 文字基本颜色 */
|
||||
/* 背景颜色 */
|
||||
/* 边框颜色 */
|
||||
/* 尺寸变量 */
|
||||
/* 文字尺寸 */
|
||||
/* 图片尺寸 */
|
||||
/* Border Radius */
|
||||
/* 水平间距 */
|
||||
/* 垂直间距 */
|
||||
/* 透明度 */
|
||||
/* 文章场景相关 */
|
||||
.page {
|
||||
flex: 1;
|
||||
background-color: #f5f5f5;
|
||||
}
|
||||
.page-scroll {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
/* 图片画廊 */
|
||||
.gallery-section {
|
||||
position: relative;
|
||||
}
|
||||
.gallery-swiper {
|
||||
height: 500rpx;
|
||||
}
|
||||
.gallery-image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
.gallery-tag {
|
||||
position: absolute;
|
||||
top: 24rpx;
|
||||
left: 24rpx;
|
||||
background-color: rgba(212, 165, 116, 0.9);
|
||||
padding: 8rpx 20rpx;
|
||||
border-radius: 8rpx;
|
||||
}
|
||||
.gallery-tag-text {
|
||||
font-size: 24rpx;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
/* 基本信息 */
|
||||
.info-section {
|
||||
background-color: #ffffff;
|
||||
padding: 32rpx;
|
||||
margin-bottom: 24rpx;
|
||||
}
|
||||
.case-title {
|
||||
font-size: 36rpx;
|
||||
font-weight: 600;
|
||||
color: #333333;
|
||||
margin-bottom: 24rpx;
|
||||
}
|
||||
.case-meta {
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
.case-price {
|
||||
font-size: 40rpx;
|
||||
font-weight: 600;
|
||||
color: #D4A574;
|
||||
}
|
||||
.case-stats {
|
||||
flex-direction: row;
|
||||
}
|
||||
.stat-text {
|
||||
font-size: 26rpx;
|
||||
color: #909399;
|
||||
margin-left: 24rpx;
|
||||
}
|
||||
|
||||
/* 对比区域 */
|
||||
.compare-section {
|
||||
padding: 0 24rpx;
|
||||
}
|
||||
|
||||
/* 详细信息 */
|
||||
.detail-section {
|
||||
background-color: #ffffff;
|
||||
margin: 24rpx;
|
||||
border-radius: 16rpx;
|
||||
padding: 32rpx;
|
||||
}
|
||||
.detail-header {
|
||||
margin-bottom: 24rpx;
|
||||
}
|
||||
.detail-title {
|
||||
font-size: 32rpx;
|
||||
font-weight: 600;
|
||||
color: #333333;
|
||||
}
|
||||
.detail-list {
|
||||
margin-bottom: 32rpx;
|
||||
}
|
||||
.detail-item {
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
padding: 16rpx 0;
|
||||
border-bottom-width: 1rpx;
|
||||
border-bottom-style: solid;
|
||||
border-bottom-color: #EBEEF5;
|
||||
}
|
||||
.detail-label {
|
||||
font-size: 28rpx;
|
||||
color: #909399;
|
||||
}
|
||||
.detail-value {
|
||||
font-size: 28rpx;
|
||||
color: #333333;
|
||||
}
|
||||
.detail-desc {
|
||||
padding-top: 16rpx;
|
||||
}
|
||||
.desc-title {
|
||||
font-size: 28rpx;
|
||||
font-weight: 600;
|
||||
color: #333333;
|
||||
margin-bottom: 16rpx;
|
||||
}
|
||||
.desc-content {
|
||||
font-size: 28rpx;
|
||||
color: #606266;
|
||||
line-height: 48rpx;
|
||||
}
|
||||
|
||||
/* 底部间距 */
|
||||
.bottom-space {
|
||||
height: 160rpx;
|
||||
}
|
||||
|
||||
/* 底部操作栏 */
|
||||
.bottom-bar {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
background-color: #ffffff;
|
||||
padding: 16rpx 24rpx;
|
||||
padding-bottom: 32rpx;
|
||||
box-shadow: 0 -4rpx 16rpx rgba(0, 0, 0, 0.08);
|
||||
}
|
||||
.bar-left {
|
||||
flex-direction: row;
|
||||
}
|
||||
.bar-btn {
|
||||
align-items: center;
|
||||
padding: 0 24rpx;
|
||||
}
|
||||
.bar-icon {
|
||||
font-size: 40rpx;
|
||||
}
|
||||
.bar-label {
|
||||
font-size: 22rpx;
|
||||
color: #606266;
|
||||
margin-top: 4rpx;
|
||||
}
|
||||
.bar-right {
|
||||
flex-direction: row;
|
||||
flex: 1;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
.contact-btn {
|
||||
background-color: #f5f5f5;
|
||||
padding: 20rpx 40rpx;
|
||||
border-radius: 999rpx;
|
||||
margin-right: 16rpx;
|
||||
}
|
||||
.contact-text {
|
||||
font-size: 28rpx;
|
||||
color: #606266;
|
||||
}
|
||||
.booking-btn {
|
||||
background-color: #D4A574;
|
||||
padding: 20rpx 48rpx;
|
||||
border-radius: 999rpx;
|
||||
}
|
||||
.booking-text {
|
||||
font-size: 28rpx;
|
||||
font-weight: 600;
|
||||
color: #ffffff;
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user