├── .github └── workflows │ └── deploy.yml ├── .gitignore ├── LICENSE ├── README.md ├── main.yml ├── package-lock.json ├── package.json ├── packages ├── mall-cook-document │ ├── .vuepress │ │ ├── config.js │ │ ├── public │ │ │ ├── avatar.png │ │ │ ├── bg.svg │ │ │ ├── classify.png │ │ │ ├── favicon.ico │ │ │ ├── goods-type.gif │ │ │ ├── goods.gif │ │ │ ├── iframeConfig.jpg │ │ │ ├── iframeH5.jpg │ │ │ ├── iframePath.jpg │ │ │ ├── logo.jpg │ │ │ ├── model-shop.gif │ │ │ ├── mofang.gif │ │ │ ├── official.png │ │ │ ├── propsSchema.png │ │ │ ├── real-time.gif │ │ │ ├── save.gif │ │ │ ├── start.png │ │ │ ├── swiper.gif │ │ │ └── titleProps.png │ │ └── styles │ │ │ └── palette.styl │ ├── README.md │ ├── docs │ │ ├── README.md │ │ ├── group │ │ │ └── join.md │ │ ├── product │ │ │ ├── background.md │ │ │ ├── insights.md │ │ │ └── quickLook.md │ │ └── quickLearning │ │ │ ├── changePath.md │ │ │ ├── environment.md │ │ │ ├── install.md │ │ │ └── localLaunch.md │ ├── package.json │ ├── script │ │ └── deploy-gh.sh │ └── yarn.lock ├── mall-cook-platform-electron │ ├── .gitignore │ ├── README.md │ ├── index.html │ ├── package-lock.json │ ├── package.json │ ├── public │ │ ├── favicon.ico │ │ └── icon.ico │ ├── src │ │ ├── App.vue │ │ ├── main.js │ │ ├── main │ │ │ ├── config.js │ │ │ ├── main.js │ │ │ ├── menu │ │ │ │ └── index.js │ │ │ ├── shortcut │ │ │ │ └── index.js │ │ │ ├── tray │ │ │ │ ├── icon.ico │ │ │ │ └── index.js │ │ │ └── untils │ │ │ │ └── localFile.js │ │ ├── preload │ │ │ └── index.js │ │ └── render │ │ │ ├── api │ │ │ ├── goods.js │ │ │ ├── index.js │ │ │ ├── project.js │ │ │ └── user.js │ │ │ ├── assets │ │ │ └── image │ │ │ │ ├── ghost.jpg │ │ │ │ ├── logo.jpeg │ │ │ │ ├── pc-list-one-add.jpg │ │ │ │ ├── pc-list-one-cart.jpg │ │ │ │ ├── pc-list-two-add.jpg │ │ │ │ ├── pc-list-two-cart.jpg │ │ │ │ ├── pc-template-category-advert.jpg │ │ │ │ └── pc-template-category-base.jpg │ │ │ ├── components │ │ │ ├── Control │ │ │ │ ├── ControlConfig.vue │ │ │ │ ├── ControlPanel.vue │ │ │ │ ├── ControlWidgetShape.vue │ │ │ │ ├── ControlWidgets.vue │ │ │ │ └── index.vue │ │ │ ├── CreateDialog │ │ │ │ └── index.vue │ │ │ ├── IconSelect │ │ │ │ └── index.vue │ │ │ ├── ModeSelect │ │ │ │ ├── ModeSelectItem.vue │ │ │ │ └── index.vue │ │ │ ├── ModeSwitch │ │ │ │ └── index.vue │ │ │ ├── ModelsList │ │ │ │ └── index.vue │ │ │ ├── NavBar │ │ │ │ └── index.vue │ │ │ ├── PageConfig │ │ │ │ └── index.vue │ │ │ ├── QrDialog │ │ │ │ └── index.vue │ │ │ ├── SaveDialog │ │ │ │ ├── HomeCover.vue │ │ │ │ └── index.vue │ │ │ ├── SearchBar │ │ │ │ └── index.vue │ │ │ ├── SideBar │ │ │ │ └── index.vue │ │ │ ├── TopBar │ │ │ │ ├── RealTimeView.vue │ │ │ │ └── index.vue │ │ │ ├── WidgetList │ │ │ │ └── index.vue │ │ │ └── global │ │ │ │ ├── ConfigCtn.vue │ │ │ │ ├── ConfigItem.vue │ │ │ │ ├── ConfigWrap.vue │ │ │ │ ├── GitControl.vue │ │ │ │ ├── JumpSelect │ │ │ │ ├── JumpDialog.vue │ │ │ │ └── index.vue │ │ │ │ └── PhoneCtn │ │ │ │ ├── index.vue │ │ │ │ └── phone-head.png │ │ │ ├── config │ │ │ ├── global.js │ │ │ ├── mall.js │ │ │ ├── project.js │ │ │ └── schema-template.js │ │ │ ├── custom-schema-template-set │ │ │ ├── components │ │ │ │ ├── SchemaContent.vue │ │ │ │ ├── SchemaContentItem.vue │ │ │ │ ├── SchemaContentShape.vue │ │ │ │ └── SchemaExport.vue │ │ │ ├── config-template │ │ │ │ ├── SchemaArrayConfig.vue │ │ │ │ ├── SchemaCapCubeConfig.vue │ │ │ │ ├── SchemaColorConfig.vue │ │ │ │ ├── SchemaComponent.vue │ │ │ │ ├── SchemaContainerConfig.vue │ │ │ │ ├── SchemaGoodsConfig.vue │ │ │ │ ├── SchemaJumpConfig.vue │ │ │ │ ├── SchemaNumberConfig.vue │ │ │ │ ├── SchemaSelectConfig.vue │ │ │ │ ├── SchemaStringConfig.vue │ │ │ │ ├── SchemaSwitchConfig.vue │ │ │ │ ├── SchemaTimeConfig.vue │ │ │ │ ├── SchemaUploadConfig.vue │ │ │ │ └── icon.js │ │ │ └── index.vue │ │ │ ├── custom-schema-template │ │ │ ├── components │ │ │ │ ├── SchemaArray │ │ │ │ │ ├── index.vue │ │ │ │ │ └── initializing.js │ │ │ │ ├── SchemaCapCube │ │ │ │ │ ├── CapCubeLayout.vue │ │ │ │ │ ├── config.js │ │ │ │ │ ├── index.vue │ │ │ │ │ └── initializing.js │ │ │ │ ├── SchemaColor │ │ │ │ │ ├── ConfigColorPicker.vue │ │ │ │ │ ├── index.vue │ │ │ │ │ └── initializing.js │ │ │ │ ├── SchemaGoods │ │ │ │ │ ├── GoodsConfigChoose.vue │ │ │ │ │ ├── GoodsConfigList.vue │ │ │ │ │ ├── index.vue │ │ │ │ │ ├── index1.vue │ │ │ │ │ └── initializing.js │ │ │ │ ├── SchemaJump │ │ │ │ │ ├── JumpDialog.vue │ │ │ │ │ ├── index.vue │ │ │ │ │ └── initializing.js │ │ │ │ ├── SchemaNumber │ │ │ │ │ ├── index.vue │ │ │ │ │ └── initializing.js │ │ │ │ ├── SchemaObject │ │ │ │ │ ├── index.vue │ │ │ │ │ └── initializing.js │ │ │ │ ├── SchemaSelect │ │ │ │ │ ├── SelectItem.vue │ │ │ │ │ ├── index.vue │ │ │ │ │ └── initializing.js │ │ │ │ ├── SchemaString │ │ │ │ │ ├── index.vue │ │ │ │ │ └── initializing.js │ │ │ │ ├── SchemaSwitch │ │ │ │ │ ├── index.vue │ │ │ │ │ └── initializing.js │ │ │ │ ├── SchemaTime │ │ │ │ │ ├── index.vue │ │ │ │ │ └── initializing.js │ │ │ │ └── SchemaUpload │ │ │ │ │ ├── index.vue │ │ │ │ │ └── initializing.js │ │ │ └── index.vue │ │ │ ├── faim │ │ │ ├── FormDialog │ │ │ │ └── globalConfig.js │ │ │ ├── ImageUpload │ │ │ │ ├── globalConfig.js │ │ │ │ └── index.scss │ │ │ ├── RichText │ │ │ │ ├── globalConfig.js │ │ │ │ ├── index.scss │ │ │ │ ├── langs │ │ │ │ │ └── zh-Hans.js │ │ │ │ └── plugins │ │ │ │ │ ├── InsertFile.vue │ │ │ │ │ └── InsertWord.js │ │ │ └── upload.js │ │ │ ├── mixin │ │ │ ├── componentConfigMixin.js │ │ │ └── schemaMixin.js │ │ │ ├── pages │ │ │ ├── login.vue │ │ │ ├── mall │ │ │ │ ├── goods │ │ │ │ │ ├── goods-manager │ │ │ │ │ │ ├── edit.vue │ │ │ │ │ │ └── index.vue │ │ │ │ │ ├── group-manager │ │ │ │ │ │ ├── edit.vue │ │ │ │ │ │ ├── groupGoods.vue │ │ │ │ │ │ └── index.vue │ │ │ │ │ └── index.vue │ │ │ │ ├── index.vue │ │ │ │ ├── model-manage.vue │ │ │ │ ├── page-build.vue │ │ │ │ ├── pages-manage.vue │ │ │ │ └── store │ │ │ │ │ ├── category-tpl.vue │ │ │ │ │ ├── index.vue │ │ │ │ │ ├── list-tpl.vue │ │ │ │ │ ├── navigation-tpl.vue │ │ │ │ │ └── search-tpl.vue │ │ │ ├── managet.vue │ │ │ └── schema.vue │ │ │ ├── router │ │ │ └── index.js │ │ │ ├── scss │ │ │ ├── base.scss │ │ │ ├── element.scss │ │ │ ├── element │ │ │ │ ├── alert.css │ │ │ │ ├── aside.css │ │ │ │ ├── autocomplete.css │ │ │ │ ├── avatar.css │ │ │ │ ├── backtop.css │ │ │ │ ├── badge.css │ │ │ │ ├── base.css │ │ │ │ ├── breadcrumb-item.css │ │ │ │ ├── breadcrumb.css │ │ │ │ ├── button-group.css │ │ │ │ ├── button.css │ │ │ │ ├── calendar.css │ │ │ │ ├── card.css │ │ │ │ ├── carousel-item.css │ │ │ │ ├── carousel.css │ │ │ │ ├── cascader-panel.css │ │ │ │ ├── cascader.css │ │ │ │ ├── checkbox-button.css │ │ │ │ ├── checkbox-group.css │ │ │ │ ├── checkbox.css │ │ │ │ ├── col.css │ │ │ │ ├── collapse-item.css │ │ │ │ ├── collapse.css │ │ │ │ ├── color-picker.css │ │ │ │ ├── container.css │ │ │ │ ├── date-picker.css │ │ │ │ ├── dialog.css │ │ │ │ ├── display.css │ │ │ │ ├── divider.css │ │ │ │ ├── drawer.css │ │ │ │ ├── dropdown-item.css │ │ │ │ ├── dropdown-menu.css │ │ │ │ ├── dropdown.css │ │ │ │ ├── fonts │ │ │ │ │ ├── element-icons.ttf │ │ │ │ │ └── element-icons.woff │ │ │ │ ├── footer.css │ │ │ │ ├── form-item.css │ │ │ │ ├── form.css │ │ │ │ ├── header.css │ │ │ │ ├── icon.css │ │ │ │ ├── image.css │ │ │ │ ├── index.css │ │ │ │ ├── infinite-scroll.css │ │ │ │ ├── infiniteScroll.css │ │ │ │ ├── input-number.css │ │ │ │ ├── input.css │ │ │ │ ├── link.css │ │ │ │ ├── loading.css │ │ │ │ ├── main.css │ │ │ │ ├── menu-item-group.css │ │ │ │ ├── menu-item.css │ │ │ │ ├── menu.css │ │ │ │ ├── message-box.css │ │ │ │ ├── message.css │ │ │ │ ├── notification.css │ │ │ │ ├── option-group.css │ │ │ │ ├── option.css │ │ │ │ ├── page-header.css │ │ │ │ ├── pagination.css │ │ │ │ ├── popconfirm.css │ │ │ │ ├── popover.css │ │ │ │ ├── popper.css │ │ │ │ ├── progress.css │ │ │ │ ├── radio-button.css │ │ │ │ ├── radio-group.css │ │ │ │ ├── radio.css │ │ │ │ ├── rate.css │ │ │ │ ├── reset.css │ │ │ │ ├── row.css │ │ │ │ ├── scrollbar.css │ │ │ │ ├── select-dropdown.css │ │ │ │ ├── select.css │ │ │ │ ├── slider.css │ │ │ │ ├── spinner.css │ │ │ │ ├── step.css │ │ │ │ ├── steps.css │ │ │ │ ├── submenu.css │ │ │ │ ├── switch.css │ │ │ │ ├── tab-pane.css │ │ │ │ ├── table-column.css │ │ │ │ ├── table.css │ │ │ │ ├── tabs.css │ │ │ │ ├── tag.css │ │ │ │ ├── time-picker.css │ │ │ │ ├── time-select.css │ │ │ │ ├── timeline-item.css │ │ │ │ ├── timeline.css │ │ │ │ ├── tooltip.css │ │ │ │ ├── transfer.css │ │ │ │ ├── tree.css │ │ │ │ └── upload.css │ │ │ ├── iconfont.css │ │ │ ├── index.scss │ │ │ ├── mixin.scss │ │ │ ├── pc.scss │ │ │ ├── reset.scss │ │ │ ├── variable.scss │ │ │ └── yzIcon │ │ │ │ ├── a.woff │ │ │ │ ├── b.ttf │ │ │ │ ├── c.woff2 │ │ │ │ └── icon.css │ │ │ ├── store │ │ │ ├── index.js │ │ │ ├── project.js │ │ │ └── user.js │ │ │ ├── utils │ │ │ ├── adapter.js │ │ │ ├── auth.js │ │ │ ├── filters.js │ │ │ ├── globalMethods.js │ │ │ ├── globalRegister.js │ │ │ ├── jump.js │ │ │ ├── request.js │ │ │ ├── schemaRegister.js │ │ │ └── style.js │ │ │ └── widgets │ │ │ ├── McCapCube │ │ │ ├── McCapCube.vue │ │ │ └── component.json │ │ │ ├── McCountdown │ │ │ ├── McCountdown.vue │ │ │ └── component.json │ │ │ ├── McEmpty │ │ │ ├── McEmpty.vue │ │ │ └── component.json │ │ │ ├── McGoods │ │ │ ├── GoodsItem.vue │ │ │ ├── GoodsList.vue │ │ │ ├── GoodsTabs.vue │ │ │ ├── McGoods.vue │ │ │ └── component.json │ │ │ ├── McImg │ │ │ ├── McImg.vue │ │ │ └── component.json │ │ │ ├── McNotice │ │ │ ├── McNotice.vue │ │ │ ├── component.json │ │ │ └── uni-notice-bar.vue │ │ │ ├── McSearch │ │ │ ├── McSearch.vue │ │ │ └── component.json │ │ │ ├── McSwiper │ │ │ ├── McSwiper.vue │ │ │ ├── baseSwiper.vue │ │ │ └── component.json │ │ │ ├── McTab │ │ │ ├── McTab.vue │ │ │ └── component.json │ │ │ └── McTitle │ │ │ ├── McTitle.vue │ │ │ └── component.json │ ├── tsconfig.json │ ├── tsconfig.node.json │ ├── types │ │ ├── axios.d.ts │ │ ├── global │ │ │ └── global.d.ts │ │ ├── shims-vue.d.ts │ │ └── vite-env.d.ts │ └── vite.config.ts ├── mall-cook-platform │ ├── LICENSE │ ├── babel.config.js │ ├── ftpUp.js │ ├── package-lock.json │ ├── package.json │ ├── public │ │ ├── favicon.ico │ │ └── index.html │ ├── src │ │ ├── App.vue │ │ ├── api │ │ │ ├── goods.js │ │ │ ├── project.js │ │ │ └── user.js │ │ ├── assets │ │ │ └── image │ │ │ │ ├── ghost.jpg │ │ │ │ ├── logo.jpeg │ │ │ │ ├── pc-list-one-add.jpg │ │ │ │ ├── pc-list-one-cart.jpg │ │ │ │ ├── pc-list-two-add.jpg │ │ │ │ ├── pc-list-two-cart.jpg │ │ │ │ ├── pc-template-category-advert.jpg │ │ │ │ └── pc-template-category-base.jpg │ │ ├── components │ │ │ ├── Control │ │ │ │ ├── ControlConfig.vue │ │ │ │ ├── ControlPanel.vue │ │ │ │ ├── ControlWidgetShape.vue │ │ │ │ ├── ControlWidgets.vue │ │ │ │ └── index.vue │ │ │ ├── CreateDialog │ │ │ │ └── index.vue │ │ │ ├── IconSelect │ │ │ │ └── index.vue │ │ │ ├── ModeSelect │ │ │ │ ├── ModeSelectItem.vue │ │ │ │ └── index.vue │ │ │ ├── ModeSwitch │ │ │ │ └── index.vue │ │ │ ├── ModelsList │ │ │ │ └── index.vue │ │ │ ├── NavBar │ │ │ │ └── index.vue │ │ │ ├── PageConfig │ │ │ │ └── index.vue │ │ │ ├── QrDialog │ │ │ │ └── index.vue │ │ │ ├── SaveDialog │ │ │ │ ├── HomeCover.vue │ │ │ │ └── index.vue │ │ │ ├── SearchBar │ │ │ │ └── index.vue │ │ │ ├── SideBar │ │ │ │ └── index.vue │ │ │ ├── TopBar │ │ │ │ ├── RealTimeView.vue │ │ │ │ └── index.vue │ │ │ ├── WidgetList │ │ │ │ └── index.vue │ │ │ └── global │ │ │ │ ├── ConfigCtn.vue │ │ │ │ ├── ConfigItem.vue │ │ │ │ ├── ConfigWrap.vue │ │ │ │ ├── GitControl.vue │ │ │ │ ├── JumpSelect │ │ │ │ ├── JumpDialog.vue │ │ │ │ └── index.vue │ │ │ │ └── PhoneCtn │ │ │ │ ├── index.vue │ │ │ │ └── phone-head.png │ │ ├── config │ │ │ ├── global.js │ │ │ ├── mall.js │ │ │ ├── project.js │ │ │ └── schema-template.js │ │ ├── custom-schema-template-set │ │ │ ├── components │ │ │ │ ├── SchemaContent.vue │ │ │ │ ├── SchemaContentItem.vue │ │ │ │ ├── SchemaContentShape.vue │ │ │ │ └── SchemaExport.vue │ │ │ ├── config-template │ │ │ │ ├── SchemaArrayConfig.vue │ │ │ │ ├── SchemaCapCubeConfig.vue │ │ │ │ ├── SchemaColorConfig.vue │ │ │ │ ├── SchemaComponent.vue │ │ │ │ ├── SchemaContainerConfig.vue │ │ │ │ ├── SchemaGoodsConfig.vue │ │ │ │ ├── SchemaJumpConfig.vue │ │ │ │ ├── SchemaNumberConfig.vue │ │ │ │ ├── SchemaSelectConfig.vue │ │ │ │ ├── SchemaStringConfig.vue │ │ │ │ ├── SchemaSwitchConfig.vue │ │ │ │ ├── SchemaTimeConfig.vue │ │ │ │ ├── SchemaUploadConfig.vue │ │ │ │ └── icon.js │ │ │ └── index.vue │ │ ├── custom-schema-template │ │ │ ├── components │ │ │ │ ├── SchemaArray │ │ │ │ │ ├── index.vue │ │ │ │ │ └── initializing.js │ │ │ │ ├── SchemaCapCube │ │ │ │ │ ├── CapCubeLayout.vue │ │ │ │ │ ├── config.js │ │ │ │ │ ├── index.vue │ │ │ │ │ └── initializing.js │ │ │ │ ├── SchemaColor │ │ │ │ │ ├── ConfigColorPicker.vue │ │ │ │ │ ├── index.vue │ │ │ │ │ └── initializing.js │ │ │ │ ├── SchemaGoods │ │ │ │ │ ├── GoodsConfigChoose.vue │ │ │ │ │ ├── GoodsConfigList.vue │ │ │ │ │ ├── index.vue │ │ │ │ │ ├── index1.vue │ │ │ │ │ └── initializing.js │ │ │ │ ├── SchemaJump │ │ │ │ │ ├── JumpDialog.vue │ │ │ │ │ ├── index.vue │ │ │ │ │ └── initializing.js │ │ │ │ ├── SchemaNumber │ │ │ │ │ ├── index.vue │ │ │ │ │ └── initializing.js │ │ │ │ ├── SchemaObject │ │ │ │ │ ├── index.vue │ │ │ │ │ └── initializing.js │ │ │ │ ├── SchemaSelect │ │ │ │ │ ├── SelectItem.vue │ │ │ │ │ ├── index.vue │ │ │ │ │ └── initializing.js │ │ │ │ ├── SchemaString │ │ │ │ │ ├── index.vue │ │ │ │ │ └── initializing.js │ │ │ │ ├── SchemaSwitch │ │ │ │ │ ├── index.vue │ │ │ │ │ └── initializing.js │ │ │ │ ├── SchemaTime │ │ │ │ │ ├── index.vue │ │ │ │ │ └── initializing.js │ │ │ │ └── SchemaUpload │ │ │ │ │ ├── index.vue │ │ │ │ │ └── initializing.js │ │ │ └── index.vue │ │ ├── faim │ │ │ ├── FormDialog │ │ │ │ └── globalConfig.js │ │ │ ├── ImageUpload │ │ │ │ ├── globalConfig.js │ │ │ │ └── index.scss │ │ │ ├── RichText │ │ │ │ ├── globalConfig.js │ │ │ │ ├── index.scss │ │ │ │ ├── langs │ │ │ │ │ └── zh-Hans.js │ │ │ │ └── plugins │ │ │ │ │ ├── InsertFile.vue │ │ │ │ │ └── InsertWord.js │ │ │ └── upload.js │ │ ├── main.js │ │ ├── mixin │ │ │ ├── componentConfigMixin.js │ │ │ └── schemaMixin.js │ │ ├── pages │ │ │ ├── login.vue │ │ │ ├── mall │ │ │ │ ├── goods │ │ │ │ │ ├── goods-manager │ │ │ │ │ │ ├── edit.vue │ │ │ │ │ │ └── index.vue │ │ │ │ │ ├── group-manager │ │ │ │ │ │ ├── edit.vue │ │ │ │ │ │ ├── groupGoods.vue │ │ │ │ │ │ └── index.vue │ │ │ │ │ └── index.vue │ │ │ │ ├── index.vue │ │ │ │ ├── model-manage.vue │ │ │ │ ├── page-build.vue │ │ │ │ ├── pages-manage.vue │ │ │ │ └── store │ │ │ │ │ ├── category-tpl.vue │ │ │ │ │ ├── index.vue │ │ │ │ │ ├── list-tpl.vue │ │ │ │ │ ├── navigation-tpl.vue │ │ │ │ │ └── search-tpl.vue │ │ │ ├── managet.vue │ │ │ └── schema.vue │ │ ├── router │ │ │ └── index.js │ │ ├── scss │ │ │ ├── base.scss │ │ │ ├── element-#82AAF1 │ │ │ │ ├── alert.css │ │ │ │ ├── aside.css │ │ │ │ ├── autocomplete.css │ │ │ │ ├── avatar.css │ │ │ │ ├── backtop.css │ │ │ │ ├── badge.css │ │ │ │ ├── base.css │ │ │ │ ├── breadcrumb-item.css │ │ │ │ ├── breadcrumb.css │ │ │ │ ├── button-group.css │ │ │ │ ├── button.css │ │ │ │ ├── calendar.css │ │ │ │ ├── card.css │ │ │ │ ├── carousel-item.css │ │ │ │ ├── carousel.css │ │ │ │ ├── cascader-panel.css │ │ │ │ ├── cascader.css │ │ │ │ ├── checkbox-button.css │ │ │ │ ├── checkbox-group.css │ │ │ │ ├── checkbox.css │ │ │ │ ├── col.css │ │ │ │ ├── collapse-item.css │ │ │ │ ├── collapse.css │ │ │ │ ├── color-picker.css │ │ │ │ ├── container.css │ │ │ │ ├── date-picker.css │ │ │ │ ├── dialog.css │ │ │ │ ├── display.css │ │ │ │ ├── divider.css │ │ │ │ ├── drawer.css │ │ │ │ ├── dropdown-item.css │ │ │ │ ├── dropdown-menu.css │ │ │ │ ├── dropdown.css │ │ │ │ ├── fonts │ │ │ │ │ ├── element-icons.ttf │ │ │ │ │ └── element-icons.woff │ │ │ │ ├── footer.css │ │ │ │ ├── form-item.css │ │ │ │ ├── form.css │ │ │ │ ├── header.css │ │ │ │ ├── icon.css │ │ │ │ ├── image.css │ │ │ │ ├── index.css │ │ │ │ ├── infinite-scroll.css │ │ │ │ ├── infiniteScroll.css │ │ │ │ ├── input-number.css │ │ │ │ ├── input.css │ │ │ │ ├── link.css │ │ │ │ ├── loading.css │ │ │ │ ├── main.css │ │ │ │ ├── menu-item-group.css │ │ │ │ ├── menu-item.css │ │ │ │ ├── menu.css │ │ │ │ ├── message-box.css │ │ │ │ ├── message.css │ │ │ │ ├── notification.css │ │ │ │ ├── option-group.css │ │ │ │ ├── option.css │ │ │ │ ├── page-header.css │ │ │ │ ├── pagination.css │ │ │ │ ├── popconfirm.css │ │ │ │ ├── popover.css │ │ │ │ ├── popper.css │ │ │ │ ├── progress.css │ │ │ │ ├── radio-button.css │ │ │ │ ├── radio-group.css │ │ │ │ ├── radio.css │ │ │ │ ├── rate.css │ │ │ │ ├── reset.css │ │ │ │ ├── row.css │ │ │ │ ├── scrollbar.css │ │ │ │ ├── select-dropdown.css │ │ │ │ ├── select.css │ │ │ │ ├── slider.css │ │ │ │ ├── spinner.css │ │ │ │ ├── step.css │ │ │ │ ├── steps.css │ │ │ │ ├── submenu.css │ │ │ │ ├── switch.css │ │ │ │ ├── tab-pane.css │ │ │ │ ├── table-column.css │ │ │ │ ├── table.css │ │ │ │ ├── tabs.css │ │ │ │ ├── tag.css │ │ │ │ ├── time-picker.css │ │ │ │ ├── time-select.css │ │ │ │ ├── timeline-item.css │ │ │ │ ├── timeline.css │ │ │ │ ├── tooltip.css │ │ │ │ ├── transfer.css │ │ │ │ ├── tree.css │ │ │ │ └── upload.css │ │ │ ├── element.scss │ │ │ ├── index.scss │ │ │ ├── mixin.scss │ │ │ ├── pc.scss │ │ │ ├── reset.scss │ │ │ ├── variable.scss │ │ │ └── yzIcon │ │ │ │ ├── a.woff │ │ │ │ ├── b.ttf │ │ │ │ ├── c.woff2 │ │ │ │ └── icon.css │ │ ├── store │ │ │ ├── index.js │ │ │ ├── project.js │ │ │ └── user.js │ │ └── utils │ │ │ ├── adapter.js │ │ │ ├── auth.js │ │ │ ├── filters.js │ │ │ ├── globalMethods.js │ │ │ ├── globalRegister.js │ │ │ ├── jump.js │ │ │ ├── request.js │ │ │ ├── schemaRegister.js │ │ │ └── style.js │ ├── vue.config.js │ └── yarn.lock └── mall-cook-template │ ├── README.md │ ├── babel.config.js │ ├── package.json │ ├── postcss.config.js │ ├── public │ └── index.html │ ├── src │ ├── App.vue │ ├── api │ │ └── index.js │ ├── common │ │ ├── customType.js │ │ └── myMenu.js │ ├── components │ │ ├── car-list.vue │ │ ├── custom-capsule.vue │ │ ├── custom-tab-bar.vue │ │ ├── custom-top-bar.vue │ │ ├── full-loading.vue │ │ ├── global │ │ │ ├── global-page.vue │ │ │ └── global-tab-page.vue │ │ ├── goods-list.vue │ │ ├── page-blili.vue │ │ ├── page-git.vue │ │ ├── page-juejin.vue │ │ ├── render-widget.vue │ │ ├── review-page.vue │ │ ├── submit-bar.vue │ │ ├── tabbar-page │ │ │ ├── car-page.vue │ │ │ ├── category-page.vue │ │ │ ├── custom-page.vue │ │ │ ├── index.vue │ │ │ └── my-page.vue │ │ ├── waiting-cmp │ │ │ ├── index.vue │ │ │ └── waiting.jpg │ │ └── widget-shape.vue │ ├── main.js │ ├── manifest.json │ ├── pages.json │ ├── pages │ │ ├── build │ │ │ └── build.vue │ │ └── index │ │ │ ├── custom │ │ │ └── custom.vue │ │ │ ├── goods │ │ │ ├── detail.vue │ │ │ ├── list.vue │ │ │ └── search.vue │ │ │ ├── tabbar │ │ │ ├── home.vue │ │ │ ├── tab-frist.vue │ │ │ ├── tab-second.vue │ │ │ └── tab-third.vue │ │ │ └── user │ │ │ └── login.vue │ ├── scss │ │ ├── base.scss │ │ ├── element.scss │ │ ├── imgpond.scss │ │ ├── index.scss │ │ ├── mixin.scss │ │ ├── pc.scss │ │ ├── reset.scss │ │ └── variable.scss │ ├── static │ │ ├── checked.png │ │ ├── font │ │ │ └── iconfont.css │ │ ├── goods-lazy-load.png │ │ ├── h5-icon-car.png │ │ ├── icon │ │ │ ├── close_white.png │ │ │ ├── del.png │ │ │ ├── hot.png │ │ │ ├── search.png │ │ │ ├── title_left.png │ │ │ └── title_right.png │ │ ├── logo.png │ │ ├── unchecked.png │ │ └── user │ │ │ ├── daifukuan.png │ │ │ ├── daipingjia.png │ │ │ ├── daishouhuo.png │ │ │ ├── hongbao.png │ │ │ ├── kefu.png │ │ │ ├── liulanjilu.png │ │ │ ├── qianbao.png │ │ │ ├── shoucang.png │ │ │ ├── shouhou.png │ │ │ ├── update.png │ │ │ ├── xianxiamendian.png │ │ │ ├── xieyiguize.png │ │ │ ├── yonghufankui.png │ │ │ ├── youhuiquan.png │ │ │ └── zizhizhengzhao.png │ ├── store │ │ ├── index.js │ │ ├── order.js │ │ ├── project.js │ │ └── user.js │ ├── uni.scss │ ├── utils │ │ ├── filters.js │ │ ├── globalJump.js │ │ ├── parseQueryString.js │ │ ├── registerBaseStyle.js │ │ ├── request.js │ │ └── vuedraggable.umd.min.js │ └── widgets │ │ ├── McCapCube │ │ ├── McCapCube.vue │ │ └── component.json │ │ ├── McCountdown │ │ ├── McCountdown.vue │ │ └── component.json │ │ ├── McEmpty │ │ ├── McEmpty.vue │ │ └── component.json │ │ ├── McGoods │ │ ├── GoodsItem.vue │ │ ├── GoodsList.vue │ │ ├── GoodsTabs.vue │ │ ├── McGoods.vue │ │ └── component.json │ │ ├── McImg │ │ ├── McImg.vue │ │ └── component.json │ │ ├── McNotice │ │ ├── McNotice.vue │ │ ├── component.json │ │ └── uni-notice-bar.vue │ │ ├── McSearch │ │ ├── McSearch.vue │ │ └── component.json │ │ ├── McSwiper │ │ ├── McSwiper.vue │ │ ├── baseSwiper.vue │ │ └── component.json │ │ ├── McTab │ │ ├── McTab.vue │ │ └── component.json │ │ └── McTitle │ │ ├── McTitle.vue │ │ └── component.json │ └── yarn.lock ├── scripts ├── build.js ├── dev.js └── install.js ├── static ├── MallCook-Build.gif ├── MallCook-Cube.gif ├── MallCook-Goods.gif ├── MallCook-Model.gif ├── MallCook-Schema.gif ├── MallCook-Start.png ├── donate.jpg ├── kuaitu.png ├── logo.jpg ├── official.png └── yunda.png └── yarn.lock /.github/workflows/deploy.yml: -------------------------------------------------------------------------------- 1 | name: Build app deploy 2 | on: 3 | #监听push操作 4 | push: 5 | branches: 6 | # master分支,你也可以改成其他分支 7 | - master 8 | jobs: 9 | build: 10 | 11 | runs-on: ubuntu-latest 12 | 13 | steps: 14 | - uses: actions/checkout@v1 15 | - name: Install Node.js 16 | uses: actions/setup-node@v1 17 | with: 18 | node-version: '12.16.2' 19 | - name: Install npm dependencies 20 | run: npm install 21 | - name: Run build task 22 | run: npm run build 23 | - name: Deploy to Server 24 | uses: easingthemes/ssh-deploy@main 25 | env: 26 | SSH_PRIVATE_KEY: ${{ secrets.SERVER_SSH_KEY }} 27 | ARGS: '-rltgoDzvO --delete' 28 | SOURCE: dist # 这是要复制到阿里云静态服务器的文件夹名称 29 | REMOTE_HOST: '110.42.184.128' # 你的阿里云公网地址 30 | REMOTE_USER: root # 阿里云登录后默认为 root 用户,并且所在文件夹为 root 31 | TARGET: /mall-cook # 打包后的 dist 文件夹将放在 /root/node-server 32 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | dist 4 | build_electron 5 | 6 | # local env files 7 | .env.local 8 | .env.*.local 9 | *.env.* 10 | .env.development 11 | 12 | # Log files 13 | npm-debug.log* 14 | yarn-debug.log* 15 | yarn-error.log* 16 | pnpm-debug.log* 17 | 18 | # Editor directories and files 19 | .idea 20 | .vscode 21 | *.suo 22 | *.ntvs* 23 | *.njsproj 24 | *.sln 25 | *.sw? 26 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 雨尽阑珊 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /main.yml: -------------------------------------------------------------------------------- 1 | name: Build app deploy 2 | on: 3 | #监听push操作 4 | push: 5 | branches: 6 | # master分支,你也可以改成其他分支 7 | - master 8 | jobs: 9 | build: 10 | 11 | runs-on: ubuntu-latest 12 | 13 | steps: 14 | - uses: actions/checkout@v1 15 | - name: Install Node.js 16 | uses: actions/setup-node@v1 17 | with: 18 | node-version: '12.16.2' 19 | - name: Install npm dependencies 20 | run: npm install 21 | - name: Run build task 22 | run: npm run build 23 | - name: Deploy to Server 24 | uses: easingthemes/ssh-deploy@main 25 | env: 26 | SSH_PRIVATE_KEY: ${{ secrets.SERVER_SSH_KEY }} 27 | ARGS: '-rltgoDzvO --delete' 28 | SOURCE: ./dist # 这是要复制到阿里云静态服务器的文件夹名称 29 | REMOTE_HOST: '118.190.217.8' # 你的阿里云公网地址 30 | REMOTE_USER: root # 阿里云登录后默认为 root 用户,并且所在文件夹为 root 31 | TARGET: /mall-cook # 打包后的 dist 文件夹将放在 /root/node-server 32 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "mall-cook", 3 | "version": "1.0.0", 4 | "scripts": { 5 | "bootstrap": "yarn && node scripts/install.js", 6 | "dev": "node scripts/dev.js", 7 | "build": "node scripts/build.js" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+https://github.com/wangyuan389/mall-cook.git" 12 | }, 13 | "author": "", 14 | "license": "ISC", 15 | "bugs": { 16 | "url": "https://github.com/wangyuan389/mall-cook/issues" 17 | }, 18 | "homepage": "https://github.com/wangyuan389/mall-cook#readme", 19 | "dependencies": { 20 | "child_process": "^1.0.2", 21 | "cross-env": "^7.0.3", 22 | "execa": "4.0.2", 23 | "fs": "^0.0.1-security", 24 | "inquirer": "^8.2.0", 25 | "ora": "^4.1.1", 26 | "path": "^0.12.7" 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /packages/mall-cook-document/.vuepress/public/avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-document/.vuepress/public/avatar.png -------------------------------------------------------------------------------- /packages/mall-cook-document/.vuepress/public/classify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-document/.vuepress/public/classify.png -------------------------------------------------------------------------------- /packages/mall-cook-document/.vuepress/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-document/.vuepress/public/favicon.ico -------------------------------------------------------------------------------- /packages/mall-cook-document/.vuepress/public/goods-type.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-document/.vuepress/public/goods-type.gif -------------------------------------------------------------------------------- /packages/mall-cook-document/.vuepress/public/goods.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-document/.vuepress/public/goods.gif -------------------------------------------------------------------------------- /packages/mall-cook-document/.vuepress/public/iframeConfig.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-document/.vuepress/public/iframeConfig.jpg -------------------------------------------------------------------------------- /packages/mall-cook-document/.vuepress/public/iframeH5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-document/.vuepress/public/iframeH5.jpg -------------------------------------------------------------------------------- /packages/mall-cook-document/.vuepress/public/iframePath.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-document/.vuepress/public/iframePath.jpg -------------------------------------------------------------------------------- /packages/mall-cook-document/.vuepress/public/logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-document/.vuepress/public/logo.jpg -------------------------------------------------------------------------------- /packages/mall-cook-document/.vuepress/public/model-shop.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-document/.vuepress/public/model-shop.gif -------------------------------------------------------------------------------- /packages/mall-cook-document/.vuepress/public/mofang.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-document/.vuepress/public/mofang.gif -------------------------------------------------------------------------------- /packages/mall-cook-document/.vuepress/public/official.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-document/.vuepress/public/official.png -------------------------------------------------------------------------------- /packages/mall-cook-document/.vuepress/public/propsSchema.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-document/.vuepress/public/propsSchema.png -------------------------------------------------------------------------------- /packages/mall-cook-document/.vuepress/public/real-time.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-document/.vuepress/public/real-time.gif -------------------------------------------------------------------------------- /packages/mall-cook-document/.vuepress/public/save.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-document/.vuepress/public/save.gif -------------------------------------------------------------------------------- /packages/mall-cook-document/.vuepress/public/start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-document/.vuepress/public/start.png -------------------------------------------------------------------------------- /packages/mall-cook-document/.vuepress/public/swiper.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-document/.vuepress/public/swiper.gif -------------------------------------------------------------------------------- /packages/mall-cook-document/.vuepress/public/titleProps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-document/.vuepress/public/titleProps.png -------------------------------------------------------------------------------- /packages/mall-cook-document/.vuepress/styles/palette.styl: -------------------------------------------------------------------------------- 1 | // 默认值 2 | $accentColor = #616ae5 // 主题颜色 3 | $textColor = #2c3e50 // 文本颜色 4 | $borderColor = #eaecef // 边框线颜色 5 | $codeBgColor = #282c34 // 代码块背景色 6 | $backgroundColor = #ffffff // 悬浮块背景色 -------------------------------------------------------------------------------- /packages/mall-cook-document/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | home: true 3 | heroText: Mall-Cook 4 | tagline: SaaS商城可视化搭建平台 5 | heroImage: /bg.svg 6 | heroImageStyle: { 7 | maxWidth: '350px', 8 | width: '100%', 9 | display: block, 10 | margin: '9rem auto 2rem', 11 | background: '#fff', 12 | borderRadius: '1rem', 13 | } 14 | isShowTitleInHome: false 15 | actionText: 教程 16 | actionLink: /docs/product/background 17 | features: 18 | - title: 操作简单 19 | details: 拖拽构建自定义页面,保存即可预览商城 20 | - title: 多端构建 21 | details: 支持生成H5或小程序端商城应用 22 | - title: 标准化架构 23 | details: 物料接入配置流水线,方便后期物料库迭代 24 | --- -------------------------------------------------------------------------------- /packages/mall-cook-document/docs/README.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: theme-reco 3 | date: 2020-05-29 4 | --- 5 | 6 | This is theme-reco. -------------------------------------------------------------------------------- /packages/mall-cook-document/docs/group/join.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 加入交流群 3 | date: 2022-04-08 4 | --- 5 | 6 | 可扫码加入我们的微信交流群,一起进行低代码的探讨交流 7 | 8 | 9 | -------------------------------------------------------------------------------- /packages/mall-cook-document/docs/product/background.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 研发背景 3 | date: 2022-04-08 4 | --- 5 | 6 | ## 视频介绍 7 | 8 | 9 | 10 | ## 我有一个小梦想 11 | 12 |

13 | up是贵州人,南京工作两年后就回到了贵阳,一个互联网相对落后的西南小城。 14 |

15 |

16 | 小地方嘛,没有大厂、没有高薪。这地方天花板就那么高,溢出的能力换不来对应的收获,这么努力能有什么用?后来我进了本地一家国企,渐渐学会接受安稳同时也渐渐颓废。 17 |

18 |

19 | 不过在20年底,我掘金上偶然间看到政采云堂主与洛尘,进行前端基建和鲁班的分享。那仿佛是黑夜中的一束光,让我看到了我世界的另一面。可以像文章上一样做点有意义的事,开启的我基建计划,适用于中小团队的基建工程搭建。 20 |

21 |

22 | 基建的第一步,就是开发一个类似与政采云鲁班一样的可视化搭建平台,它支持可视化页面搭建、生成多端应用、标准物料流水线、适用于运营、产品使用,我把它命名为Mall-Cook。 23 |

24 |

25 | 项目从21年6月份开始,12月开源上线。历经4次重构与后期无数次的迭代至今,已成长为逐渐成熟的平台。项目上线4月以来收获了超过 2100+star、累计1500+用户。 26 |

27 |

28 | 谢谢大家的支持,项目会一直维护与迭代下去,也欢迎大家感兴趣的一起加入Mall-Cook的维护。 29 |

30 |

31 | 接下来我也计划进行类似宜搭、微搭这类自由度更高的低代码平台的探索开发。继续实现我基建的小梦想。 32 |

33 | -------------------------------------------------------------------------------- /packages/mall-cook-document/docs/product/quickLook.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 平台速览 3 | date: 2022-04-08 4 | --- 5 | 6 | ## 功能介绍 7 | 8 | - 可视化推拽面板,流式布局 9 | - 可生成 H5、小程序多端商城应用 10 | - Schema 生成器,可视化生成属性控制面板 11 | - 多页面搭建 12 | - 实时预览 13 | - 自定义底部 tab 菜单 14 | - 提供模板商城,可快速复用 15 | - 商品管理 (现为模拟商品,可修改接口管理真实商品) 16 | 17 | ## 操作速览 18 | 19 | ### 魔方物料 20 | 21 | 22 | 23 | ### 轮播物料 24 | 25 | 26 | 27 | ### 商品物料 28 | 29 | 30 | 31 | ### 保存商城 32 | 33 | 34 | 35 | ### 实时预览 36 | 37 | 38 | 39 | ### 商品分类管理 40 | 41 | 42 | 43 | ### 模板市场 44 | 45 | 46 | -------------------------------------------------------------------------------- /packages/mall-cook-document/docs/quickLearning/changePath.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 修改配置路径 3 | date: 2022-04-08 4 | --- 5 | 6 | ## iframe嵌套页面 7 | 8 |

下图所示,搭建平台的构建页面为iframe嵌套的H5项目。

9 |

如需本地开发,需把H5项目需改为本地运行地址

10 | 11 | ![alt 属性文本](/iframeH5.jpg) 12 | 13 | ## 修改地址 14 | 15 | 启动本地 H5 16 | 17 | ```bash 18 | cd packages/mall-cook-template 19 | 20 | npm run dev 21 | ``` 22 | 23 | 24 | 25 | 修改为本地 H5 地址(注意地址末尾/#/结尾) 26 | 27 | 28 | -------------------------------------------------------------------------------- /packages/mall-cook-document/docs/quickLearning/environment.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 环境准备 3 | date: 2022-04-08 4 | --- 5 | 6 | node 版本建议 12 或 14 7 | 8 | ```bash 9 | $ node-v 10 | v14.19.1 11 | ``` -------------------------------------------------------------------------------- /packages/mall-cook-document/docs/quickLearning/install.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 安装依赖 3 | date: 2022-04-08 4 | --- 5 | 6 | ```bash 7 | yarn bootstrap 8 | ``` 9 | 10 | 如果失败,建议单独进入子目录执行`yarn`安装。 11 | -------------------------------------------------------------------------------- /packages/mall-cook-document/docs/quickLearning/localLaunch.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 本地运行 3 | date: 2022-04-08 4 | --- 5 | 6 | ```bash 7 | npm run dev 8 | ``` 9 | 10 |

选择需要运行的项目

11 | 对应项目运行前必须安装依赖 12 | 13 | 14 | ![alt 属性文本](/start.png 'xxxx') 15 | -------------------------------------------------------------------------------- /packages/mall-cook-document/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "", 3 | "version": "1.0.0", 4 | "author": "reco_luan", 5 | "scripts": { 6 | "dev": "vuepress dev . --open --host \"localhost\"", 7 | "build": "vuepress build ." 8 | }, 9 | "devDependencies": { 10 | "vuepress": "1.8.2", 11 | "vuepress-theme-reco": "1.6.10" 12 | }, 13 | "description": "" 14 | } -------------------------------------------------------------------------------- /packages/mall-cook-document/script/deploy-gh.sh: -------------------------------------------------------------------------------- 1 | # 确保脚本抛出遇到的错误 2 | set -e 3 | 4 | # 生成静态文件 5 | npm run docs:build 6 | 7 | # 进入生成的文件夹 8 | cd docs/.vuepress/dist 9 | 10 | # 如果是发布到自定义域名 11 | # echo 'www.example.com' > CNAME 12 | 13 | git init 14 | git add -A 15 | git commit -m 'deploy' 16 | 17 | # 如果发布到 https://.github.io 18 | # git push -f git@github.com:/.github.io.git master 19 | 20 | # 如果发布到 https://.github.io/ 21 | # git push -f git@github.com:/.git master:gh-pages 22 | 23 | # 把上面的 换成你自己的 Github 用户名, 换成仓库名,比如我这里就是: 24 | git push -f git@github.com:wtyqer/blog.git master:gh-pages 25 | 26 | cd - -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist_electron 13 | dist-ssr 14 | *.local 15 | 16 | # Editor directories and files 17 | .vscode/* 18 | !.vscode/extensions.json 19 | .idea 20 | .DS_Store 21 | *.suo 22 | *.ntvs* 23 | *.njsproj 24 | *.sln 25 | *.sw? 26 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/README.md: -------------------------------------------------------------------------------- 1 | 9 | ## Mall-Cook-Electron 10 | 11 | ## 运行问题 12 | + 若无法正常安装electron或者运行报electron的错误,尝试更换源安装electron 13 | 14 | ```bash 15 | # 本地跑网页 16 | npm run dev 17 | # 本地服务 electron 18 | npm run serve 19 | 20 | # 打包 21 | npm run electron:build 22 | ``` -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform-electron/public/favicon.ico -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/public/icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform-electron/public/icon.ico -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/App.vue: -------------------------------------------------------------------------------- 1 | 8 | 13 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/main/config.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Descripttion: 3 | * @version: 4 | * @Author: June 5 | * @Date: 2023-03-07 18:15:42 6 | * @LastEditors: June 7 | * @LastEditTime: 2023-03-08 23:56:00 8 | */ 9 | // @ts-ignore 10 | const ACHEME = "file"; 11 | const path=require('path') 12 | // const LOAD_URL = `${ACHEME}://${ __dirname}/index.html`; 13 | const LOAD_URL=`file://${path.join(__dirname, '../../dist/index.html')}` 14 | module.exports={ 15 | ACHEME, 16 | LOAD_URL 17 | } 18 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/main/shortcut/index.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Descripttion: 3 | * @version: 4 | * @Author: June 5 | * @Date: 2023-03-07 18:15:42 6 | * @LastEditors: June 7 | * @LastEditTime: 2023-03-08 23:25:14 8 | */ 9 | const {app, globalShortcut } = require('electron') 10 | 11 | const initShortCut= (win) =>{ 12 | globalShortcut.register('CommandOrControl+f12', () => { 13 | win.openDevTools() 14 | }) 15 | // globalShortcut.register('CommandOrControl+X', () => { 16 | // console.log('CommandOrControl+X is pressed') 17 | // }) 18 | // globalShortcut.register('g', () => { 19 | // console.log('g') 20 | // if(global.mainWindow){ 21 | // global.mainWindow.webContents.send('on-shortcut-event','g') 22 | // } 23 | // 24 | // }) 25 | } 26 | const unInstallShortCut=()=>{ 27 | // 注销快捷键 28 | globalShortcut.unregister('CommandOrControl+f12') 29 | globalShortcut.unregister('CommandOrControl+X') 30 | globalShortcut.unregister('g') 31 | // 注销所有快捷键 32 | globalShortcut.unregisterAll() 33 | } 34 | module.exports={ 35 | initShortCut, 36 | unInstallShortCut 37 | } 38 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/main/tray/icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform-electron/src/main/tray/icon.ico -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/preload/index.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Descripttion: 3 | * @version: 4 | * @Author: June 5 | * @Date: 2023-05-04 12:40:32 6 | * @LastEditors: June 7 | * @LastEditTime: 2023-05-04 12:42:04 8 | */ 9 | const { ipcRenderer, contextBridge } = require ('electron'); 10 | 11 | ipcRenderer.on('show', (e) => { 12 | const root = document.querySelector('#app'); 13 | root.style.animation = 'show 0.3s linear forwards'; 14 | }) 15 | 16 | ipcRenderer.on('hide', (e, s) => { 17 | const root = document.querySelector('#app'); 18 | root.style.animation = `hide ${s}s linear forwards`; 19 | }) -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/api/goods.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: 商品管理api 3 | * @Autor: WangYuan 4 | * @Date: 2021-09-22 15:51:56 5 | * @LastEditors: June 6 | * @LastEditTime: 2023-03-08 17:10:52 7 | */ 8 | import request from '@render/utils/request' 9 | 10 | /** 11 | * 查询商品列表 12 | */ 13 | export const getGoodsList = async (data) => request({ url: "goods/getByList", method: "POST", data }) 14 | 15 | /** 16 | * 根据id查询商品详情 17 | */ 18 | export const getGoodsById = async (data) => request({ url: "goods/getById", method: "POST", data }) 19 | 20 | /** 21 | * 根据id列表查询商品列表 22 | */ 23 | export const getGoodsByIds = async (data) => request({ url: "goods/getByIds", method: "POST", data }) 24 | 25 | /** 26 | * 新增商品 27 | */ 28 | export const addGoods = async (data) => request({ url: "goods/add", method: "POST", data }) 29 | 30 | /** 31 | * 编辑商品 32 | */ 33 | export const editGoods = async (data) => request({ url: "goods/edit", method: "POST", data }) 34 | 35 | /** 36 | * 复制商品 37 | */ 38 | export const copyGoods = async (data) => request({ url: "goods/copy", method: "POST", data }) -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/api/index.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: What's this for 3 | * @Autor: WangYuan 4 | * @Date: 2022-01-24 09:24:11 5 | * @LastEditors: June 6 | * @LastEditTime: 2023-03-08 17:28:10 7 | */ 8 | 9 | import request from '@render/utils/request' 10 | 11 | /** 12 | * 查询项目详情 13 | */ 14 | export const getProjectDetail = data => { 15 | return request('/project/getById', data) 16 | } 17 | 18 | /** 19 | * 查询商品详情 20 | */ 21 | export const getGoodsDetail = data => { 22 | return request('/goods/getById', data) 23 | } 24 | 25 | /** 26 | * 查询商品列表 27 | */ 28 | export const getGoodsList = data => { 29 | return request('/goods/getByList', data) 30 | } 31 | 32 | /** 33 | * 根据ids查询商品列表 34 | */ 35 | export const getGoodsListByIds = data => { 36 | return request('/goods/getByIds', data) 37 | } 38 | 39 | 40 | /** 41 | * 封面上传 42 | */ 43 | export const uploadCover = data => { 44 | return request('/upload', data) 45 | } 46 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/api/user.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: 用户api 3 | * @Autor: WangYuan 4 | * @Date: 2021-09-22 16:22:01 5 | * @LastEditors: June 6 | * @LastEditTime: 2023-03-08 17:10:34 7 | */ 8 | 9 | import request from '@render/utils/request' 10 | 11 | /** 12 | * 登录 13 | */ 14 | export const login = async (data) => request({ url: "/login", method: "POST", data }) 15 | 16 | /** 17 | * 注册 18 | */ 19 | export const register = async (data) => request({ url: "/register", method: "POST", data }) -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/assets/image/ghost.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform-electron/src/render/assets/image/ghost.jpg -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/assets/image/logo.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform-electron/src/render/assets/image/logo.jpeg -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/assets/image/pc-list-one-add.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform-electron/src/render/assets/image/pc-list-one-add.jpg -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/assets/image/pc-list-one-cart.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform-electron/src/render/assets/image/pc-list-one-cart.jpg -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/assets/image/pc-list-two-add.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform-electron/src/render/assets/image/pc-list-two-add.jpg -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/assets/image/pc-list-two-cart.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform-electron/src/render/assets/image/pc-list-two-cart.jpg -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/assets/image/pc-template-category-advert.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform-electron/src/render/assets/image/pc-template-category-advert.jpg -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/assets/image/pc-template-category-base.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform-electron/src/render/assets/image/pc-template-category-base.jpg -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/components/Control/ControlConfig.vue: -------------------------------------------------------------------------------- 1 | 8 | 26 | 27 | 47 | 48 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/components/Control/index.vue: -------------------------------------------------------------------------------- 1 | 8 | 17 | 18 | 52 | 53 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/components/PageConfig/index.vue: -------------------------------------------------------------------------------- 1 | 8 | 15 | 16 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/components/global/ConfigItem.vue: -------------------------------------------------------------------------------- 1 | 8 | 16 | 17 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/components/global/GitControl.vue: -------------------------------------------------------------------------------- 1 | 8 | 14 | 15 | 27 | 28 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/components/global/PhoneCtn/phone-head.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform-electron/src/render/components/global/PhoneCtn/phone-head.png -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/config/global.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: What's this for 3 | * @Autor: WangYuan 4 | * @Date: 2022-02-11 10:08:57 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2022-11-02 09:10:53 7 | */ 8 | export default { 9 | baseApi: 'http://110.41.150.71:3000/', // 后端接口地址 10 | viewUrl: 'http://110.41.150.71:9000/#/' // iframe嵌套的H5地址,本地开发可改为本地启动的H5地址 11 | // baseApi: 'http://www.sunmao-design.top/mall-cook/api/', // 后端接口地址 12 | // viewUrl: 'http://139.196.223.93:4001/#/', // iframe嵌套的H5地址,本地开发可改为本地启动的H5地址 13 | } 14 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/config/mall.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: 商城配置数据 3 | * @Autor: WangYuan 4 | * @Date: 2021-09-28 15:05:58 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2022-11-02 09:44:23 7 | */ 8 | 9 | export const mallTypeList = [ 10 | { 11 | type: 'mall', 12 | logo: 'http://110.41.150.71:8090/img/1667353444841.png', 13 | title: '微商城', 14 | subTitle: ' E-commence' 15 | }, 16 | { 17 | type: 'model', 18 | logo: 'http://110.41.150.71:8090/img/1667353421573.png', 19 | title: '商城模板', 20 | subTitle: ' E-commenceModel' 21 | }, 22 | ] 23 | 24 | export const mallIndustryList = [ 25 | { label: '日用百货', value: 'department' }, 26 | { label: '服饰饰品', value: 'clothes' }, 27 | { label: '休闲零食', value: 'snacks' }, 28 | { label: '数码家电', value: 'digital' }, 29 | { label: '教育培训', value: 'education' }, 30 | { label: '酒店旅游', value: 'hotel' }, 31 | { label: '其他', value: 'other' }, 32 | ] -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/config/schema-template.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: template 类型组件对应 3 | * @Autor: WangYuan 4 | * @Date: 2021-10-18 11:47:02 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2021-10-18 20:50:11 7 | */ 8 | export default { 9 | number: "SchemaNumber", 10 | string: "SchemaString", 11 | select: "SchemaSelect", 12 | switch: "SchemaSwitch", 13 | color: "SchemaColor", 14 | upload: "SchemaUpload", 15 | jump: "SchemaJump", 16 | time: "SchemaTime", 17 | cube: "SchemaCapCube", 18 | goods: "SchemaGoods", 19 | object: 'SchemaObject', 20 | array: 'SchemaArray' 21 | } -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/custom-schema-template-set/config-template/SchemaCapCubeConfig.vue: -------------------------------------------------------------------------------- 1 | 8 | 30 | 31 | 38 | 39 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/custom-schema-template-set/config-template/SchemaColorConfig.vue: -------------------------------------------------------------------------------- 1 | 8 | 33 | 34 | 41 | 42 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/custom-schema-template-set/config-template/SchemaContainerConfig.vue: -------------------------------------------------------------------------------- 1 | 8 | 30 | 31 | 38 | 39 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/custom-schema-template-set/config-template/SchemaGoodsConfig.vue: -------------------------------------------------------------------------------- 1 | 8 | 30 | 31 | 38 | 39 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/custom-schema-template-set/config-template/SchemaJumpConfig.vue: -------------------------------------------------------------------------------- 1 | 8 | 30 | 31 | 38 | 39 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/custom-schema-template-set/config-template/SchemaUploadConfig.vue: -------------------------------------------------------------------------------- 1 | 8 | 36 | 37 | 44 | 45 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/custom-schema-template-set/config-template/icon.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: What's this for 3 | * @Autor: WangYuan 4 | * @Date: 2021-10-25 19:59:48 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2021-10-25 20:17:06 7 | */ 8 | export default [ 9 | 'icon-sousuo', 10 | 'icon-shangpin-meau', 11 | 'icon-cart', 12 | 'icon-message', 13 | 'icon-sort', 14 | 'icon-my', 15 | 'icon-daojishi', 16 | 'icon-biaotizujian', 17 | 'icon-gonggao', 18 | 'icon-line', 19 | 'icon-image', 20 | 'icon-swiper', 21 | 'icon-daohang', 22 | 'icon-lajitong', 23 | 'icon-zujian', 24 | 'icon-shoupiao', 25 | 'icon-vip', 26 | 'icon-map', 27 | 'icon-attachent', 28 | 'icon-hot1' 29 | ] 30 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/custom-schema-template/components/SchemaArray/initializing.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: What's this for 3 | * @Autor: WangYuan 4 | * @Date: 2021-10-12 15:38:29 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2021-11-12 17:16:21 7 | */ 8 | export default { 9 | label: '数组', 10 | type: 'array', 11 | property: '', 12 | value: [], 13 | child: [], 14 | options: { 15 | note: '', 16 | limit: 10 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/custom-schema-template/components/SchemaCapCube/initializing.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: What's this for 3 | * @Autor: WangYuan 4 | * @Date: 2021-10-12 15:38:29 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2021-11-12 17:16:16 7 | */ 8 | export default { 9 | label: '魔方配置', 10 | type: 'cube', 11 | property: '', 12 | value: { 13 | model: 'custom', 14 | row: 3, 15 | list: [], 16 | } 17 | } -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/custom-schema-template/components/SchemaColor/index.vue: -------------------------------------------------------------------------------- 1 | 8 | 23 | 24 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/custom-schema-template/components/SchemaColor/initializing.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: What's this for 3 | * @Autor: WangYuan 4 | * @Date: 2021-10-12 15:38:29 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2021-11-12 17:16:09 7 | */ 8 | export default { 9 | label: '颜色选择器', 10 | type: 'color', 11 | property: '', 12 | value: '' 13 | } 14 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/custom-schema-template/components/SchemaGoods/initializing.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: What's this for 3 | * @Autor: WangYuan 4 | * @Date: 2021-10-12 15:38:29 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2021-11-12 17:16:05 7 | */ 8 | export default { 9 | label: '商品列表', 10 | type: 'goods', 11 | property: '', 12 | value: [] 13 | } 14 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/custom-schema-template/components/SchemaJump/initializing.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: What's this for 3 | * @Autor: WangYuan 4 | * @Date: 2021-10-12 15:38:29 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2022-03-21 09:45:30 7 | */ 8 | export default { 9 | label: '页面跳转', 10 | type: 'jump', 11 | property: '', 12 | value: {} 13 | } 14 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/custom-schema-template/components/SchemaNumber/index.vue: -------------------------------------------------------------------------------- 1 | 8 | 18 | 19 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/custom-schema-template/components/SchemaNumber/initializing.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: What's this for 3 | * @Autor: WangYuan 4 | * @Date: 2021-10-12 15:38:29 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2021-11-12 17:15:55 7 | */ 8 | export default { 9 | label: '数字', 10 | type: 'number', 11 | property: '', 12 | value: 0, 13 | options: { 14 | min: 0, 15 | max: 50 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/custom-schema-template/components/SchemaObject/initializing.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: What's this for 3 | * @Autor: WangYuan 4 | * @Date: 2021-10-12 15:38:29 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2021-11-12 17:15:51 7 | */ 8 | export default { 9 | label: '对象', 10 | type: 'object', 11 | property: '', 12 | child: [], 13 | fields: { 14 | value: '' 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/custom-schema-template/components/SchemaSelect/initializing.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: What's this for 3 | * @Autor: WangYuan 4 | * @Date: 2021-10-12 15:38:29 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2021-11-12 17:15:45 7 | */ 8 | export default { 9 | label: '单选框', 10 | type: 'select', 11 | property: '', 12 | value: '', 13 | data: [] 14 | } 15 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/custom-schema-template/components/SchemaString/index.vue: -------------------------------------------------------------------------------- 1 | 8 | 18 | 19 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/custom-schema-template/components/SchemaString/initializing.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: What's this for 3 | * @Autor: WangYuan 4 | * @Date: 2021-10-12 15:38:29 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2021-11-12 17:15:26 7 | */ 8 | export default { 9 | label: '输入框', 10 | type: 'string', 11 | property: '', 12 | value: '', 13 | options: { 14 | placeholder: "请输入", 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/custom-schema-template/components/SchemaSwitch/initializing.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: What's this for 3 | * @Autor: WangYuan 4 | * @Date: 2021-10-12 15:38:29 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2021-11-12 17:15:31 7 | */ 8 | export default { 9 | label: '是否', 10 | type: 'switch', 11 | property: '', 12 | value: false, 13 | options: { 14 | trueLabel: "显示", 15 | falseLabel: "隐藏", 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/custom-schema-template/components/SchemaTime/index.vue: -------------------------------------------------------------------------------- 1 | 8 | 21 | 22 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/custom-schema-template/components/SchemaTime/initializing.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: What's this for 3 | * @Autor: WangYuan 4 | * @Date: 2021-10-12 15:38:29 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2021-11-12 17:15:35 7 | */ 8 | export default { 9 | label: '时间', 10 | type: 'time', 11 | property: '', 12 | value: '' 13 | } 14 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/custom-schema-template/components/SchemaUpload/index.vue: -------------------------------------------------------------------------------- 1 | 8 | 17 | 18 | 27 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/custom-schema-template/components/SchemaUpload/initializing.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: What's this for 3 | * @Autor: WangYuan 4 | * @Date: 2021-10-12 15:38:29 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2021-11-12 17:15:40 7 | */ 8 | export default { 9 | label: '图片上传', 10 | type: 'upload', 11 | property: '', 12 | value: '' 13 | } 14 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/faim/FormDialog/globalConfig.js: -------------------------------------------------------------------------------- 1 | import FaimLocale from "faim/dist/locale/zh-cn.mjs"; 2 | 3 | export default { 4 | locale: FaimLocale.FaFormDialog, 5 | } 6 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/faim/ImageUpload/globalConfig.js: -------------------------------------------------------------------------------- 1 | import FaimLocale from "faim/dist/locale/zh-cn.mjs"; 2 | import upload from '../upload' 3 | import './index.scss' 4 | 5 | export default { 6 | // 图片上传组件全局配置 7 | locale: FaimLocale.FaImageUpload, 8 | // accept: '.jpg,.jpeg,.png', // 允许上传的图片格式 9 | // maxCount: 1, // 全局默认图片数量不超过1张,具体使用时如有不同可用局部配置覆盖掉 10 | // maxSize: 512 * 1024, // 单位为字节 11 | // 上传到服务器 12 | upload, 13 | } 14 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/faim/ImageUpload/index.scss: -------------------------------------------------------------------------------- 1 | // 自定义图片上传组件样式 2 | 3 | .el-upload-list { 4 | &>.el-upload-list__item { 5 | width: 50px !important; 6 | height: 50px !important; 7 | 8 | .el-upload-list__item-status-label { 9 | width: 34px; 10 | height: 18px; 11 | 12 | &>i { 13 | margin-top: 0; 14 | } 15 | } 16 | 17 | .el-upload-list__item-actions { 18 | line-height: 50px; 19 | font-size: 16px; 20 | 21 | &>span+span { 22 | margin-left: 4px; 23 | } 24 | } 25 | } 26 | } 27 | 28 | .el-upload { 29 | width: 50px !important; 30 | height: 50px !important; 31 | line-height: 50px; 32 | 33 | &>.el-upload-dragger { 34 | width: 50px !important; 35 | height: 50px !important; 36 | } 37 | 38 | .el-icon, 39 | .el-icon-plus { 40 | font-size: initial !important; 41 | } 42 | 43 | .el-upload__text { 44 | display: none; 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/faim/RichText/index.scss: -------------------------------------------------------------------------------- 1 | // 与 Element 保持一致 2 | .tox-tinymce { 3 | border-radius: 4px !important; 4 | } 5 | 6 | // 超越 el-dialog 层级,但菜单的隐藏触发方式不是失焦而是外部点击,所以在菜单没有隐藏时打开的嵌套 el-dialog 会被菜单遮挡 7 | .tox-tinymce-aux.tox-silver-sink { 8 | z-index: 3000; 9 | } 10 | 11 | // 富文本内容样式 12 | .mce-content-body { 13 | line-height: 1.8; 14 | overflow: auto; 15 | 16 | p { 17 | margin-block-end: 0; 18 | margin-block-start: 0; 19 | } 20 | 21 | img { 22 | max-width: 100%; 23 | height: auto !important; 24 | vertical-align: middle; 25 | } 26 | } 27 | 28 | div:where(.swal2-container) div:where(.swal2-popup) { 29 | font-size: 16px; 30 | } 31 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/faim/upload.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import global from '@/config/global' 3 | 4 | export default async (file) => new Promise((resolve, reject) => { 5 | Vue.prototype.$POST.upload(global.baseApi + 'upload', ({ 6 | file, 7 | }), { 8 | baseURL: '', 9 | timeout: 20000, 10 | }).then(res => { 11 | resolve(res.data) 12 | }).catch(e => { 13 | reject(e) 14 | }) 15 | }) 16 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/mixin/componentConfigMixin.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: What's this for 3 | * @Autor: WangYuan 4 | * @Date: 2021-09-26 20:49:31 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2022-01-18 16:16:32 7 | */ 8 | /* 9 | * @Description: 组件配置混入 10 | * @Autor: WangYuan 11 | * @Date: 2021-06-04 16:31:11 12 | * @LastEditors: WangYuan 13 | * @LastEditTime: 2021-09-18 10:51:49 14 | */ 15 | 16 | import ModeSelect from "@/components/ModeSelect"; 17 | import ModeSelectItem from "@/components/ModeSelect/ModeSelectItem"; 18 | 19 | export default { 20 | components: { 21 | ModeSelect, 22 | ModeSelectItem, 23 | }, 24 | props: { 25 | attr: { 26 | type: Object, 27 | default: () => { } 28 | }, 29 | style: { 30 | type: Object, 31 | default: () => { } 32 | }, 33 | value: { 34 | type: Object, 35 | default: () => { } 36 | }, 37 | }, 38 | } -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/mixin/schemaMixin.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: What's this for 3 | * @Autor: WangYuan 4 | * @Date: 2021-09-24 10:19:13 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2022-01-28 11:50:21 7 | */ 8 | export default { 9 | props: { 10 | id:{}, 11 | value: {}, 12 | label: { 13 | type: String, 14 | }, 15 | options: { 16 | type: Object, 17 | default: () => {} 18 | } 19 | }, 20 | 21 | data() { 22 | return { 23 | mValue: undefined, 24 | defaultOptions: {} // 如有默认options配置,则在调用组件重新定义此变量 25 | }; 26 | }, 27 | 28 | computed: { 29 | mOptions() { 30 | return { ...this.defaultOptions, ...this.options } 31 | } 32 | }, 33 | 34 | watch: { 35 | value: { 36 | immediate: true, 37 | deep:true, 38 | handler(newVal,oldVal) { 39 | this.mValue = this.value; 40 | }, 41 | }, 42 | mValue: { 43 | handler() { 44 | this.$emit("input", this.mValue); 45 | this.$emit("change", this.mValue); 46 | }, 47 | }, 48 | }, 49 | } -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/pages/mall/goods/index.vue: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/pages/mall/page-build.vue: -------------------------------------------------------------------------------- 1 | 8 | 13 | 14 | 23 | 29 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/pages/mall/store/index.vue: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/pages/schema.vue: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | 21 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/scss/element/aside.css: -------------------------------------------------------------------------------- 1 | .el-aside{overflow:auto;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0} -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/scss/element/avatar.css: -------------------------------------------------------------------------------- 1 | .el-avatar{display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;overflow:hidden;color:#fff;background:#C0C4CC;width:40px;height:40px;line-height:40px;font-size:14px}.el-avatar>img{display:block;height:100%;vertical-align:middle}.el-avatar--circle{border-radius:50%}.el-avatar--square{border-radius:4px}.el-avatar--icon{font-size:18px}.el-avatar--large{width:40px;height:40px;line-height:40px}.el-avatar--medium{width:36px;height:36px;line-height:36px}.el-avatar--small{width:28px;height:28px;line-height:28px} -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/scss/element/backtop.css: -------------------------------------------------------------------------------- 1 | .el-backtop{position:fixed;background-color:#FFF;width:40px;height:40px;border-radius:50%;color:#82AAF1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-size:20px;-webkit-box-shadow:0 0 6px rgba(0,0,0,.12);box-shadow:0 0 6px rgba(0,0,0,.12);cursor:pointer;z-index:5}.el-backtop:hover{background-color:#F2F6FC} -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/scss/element/badge.css: -------------------------------------------------------------------------------- 1 | .el-badge{position:relative;vertical-align:middle;display:inline-block}.el-badge__content{background-color:#F56C6C;border-radius:10px;color:#FFF;display:inline-block;font-size:12px;height:18px;line-height:18px;padding:0 6px;text-align:center;white-space:nowrap;border:1px solid #FFF}.el-badge__content.is-fixed{position:absolute;top:0;right:10px;-webkit-transform:translateY(-50%) translateX(100%);transform:translateY(-50%) translateX(100%)}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{height:8px;width:8px;padding:0;right:0;border-radius:50%}.el-badge__content--primary{background-color:#82AAF1}.el-badge__content--success{background-color:#67C23A}.el-badge__content--warning{background-color:#E6A23C}.el-badge__content--info{background-color:#909399}.el-badge__content--danger{background-color:#F56C6C} -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/scss/element/breadcrumb-item.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform-electron/src/render/scss/element/breadcrumb-item.css -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/scss/element/breadcrumb.css: -------------------------------------------------------------------------------- 1 | .el-breadcrumb{font-size:14px;line-height:1}.el-breadcrumb::after,.el-breadcrumb::before{display:table;content:""}.el-breadcrumb::after{clear:both}.el-breadcrumb__separator{margin:0 9px;font-weight:700;color:#C0C4CC}.el-breadcrumb__separator[class*=icon]{margin:0 6px;font-weight:400}.el-breadcrumb__item{float:left}.el-breadcrumb__inner{color:#606266}.el-breadcrumb__inner a,.el-breadcrumb__inner.is-link{font-weight:700;text-decoration:none;-webkit-transition:color .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.355,1);color:#303133}.el-breadcrumb__inner a:hover,.el-breadcrumb__inner.is-link:hover{color:#82AAF1;cursor:pointer}.el-breadcrumb__item:last-child .el-breadcrumb__inner,.el-breadcrumb__item:last-child .el-breadcrumb__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover,.el-breadcrumb__item:last-child .el-breadcrumb__inner:hover{font-weight:400;color:#606266;cursor:text}.el-breadcrumb__item:last-child .el-breadcrumb__separator{display:none} -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/scss/element/button-group.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform-electron/src/render/scss/element/button-group.css -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/scss/element/card.css: -------------------------------------------------------------------------------- 1 | .el-card{border-radius:4px;border:1px solid #EBEEF5;background-color:#FFF;overflow:hidden;color:#303133;-webkit-transition:.3s;transition:.3s}.el-card.is-always-shadow,.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-card__header{padding:18px 20px;border-bottom:1px solid #EBEEF5;-webkit-box-sizing:border-box;box-sizing:border-box}.el-card__body{padding:20px} -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/scss/element/carousel-item.css: -------------------------------------------------------------------------------- 1 | .el-carousel__item,.el-carousel__mask{position:absolute;height:100%;top:0;left:0}.el-carousel__item{width:100%;display:inline-block;overflow:hidden;z-index:0}.el-carousel__item.is-active{z-index:2}.el-carousel__item.is-animating{-webkit-transition:-webkit-transform .4s ease-in-out;transition:-webkit-transform .4s ease-in-out;transition:transform .4s ease-in-out;transition:transform .4s ease-in-out,-webkit-transform .4s ease-in-out}.el-carousel__item--card{width:50%;-webkit-transition:-webkit-transform .4s ease-in-out;transition:-webkit-transform .4s ease-in-out;transition:transform .4s ease-in-out;transition:transform .4s ease-in-out,-webkit-transform .4s ease-in-out}.el-carousel__item--card.is-in-stage{cursor:pointer;z-index:1}.el-carousel__item--card.is-in-stage.is-hover .el-carousel__mask,.el-carousel__item--card.is-in-stage:hover .el-carousel__mask{opacity:.12}.el-carousel__item--card.is-active{z-index:2}.el-carousel__mask{width:100%;background-color:#FFF;opacity:.24;-webkit-transition:.2s;transition:.2s} -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/scss/element/checkbox-button.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform-electron/src/render/scss/element/checkbox-button.css -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/scss/element/checkbox-group.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform-electron/src/render/scss/element/checkbox-group.css -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/scss/element/collapse-item.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform-electron/src/render/scss/element/collapse-item.css -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/scss/element/container.css: -------------------------------------------------------------------------------- 1 | .el-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-flex:1;-ms-flex:1;flex:1;-ms-flex-preferred-size:auto;flex-basis:auto;-webkit-box-sizing:border-box;box-sizing:border-box;min-width:0}.el-container.is-vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column} -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/scss/element/display.css: -------------------------------------------------------------------------------- 1 | @media only screen and (max-width:767px){.hidden-xs-only{display:none!important}}@media only screen and (min-width:768px){.hidden-sm-and-up{display:none!important}}@media only screen and (min-width:768px) and (max-width:991px){.hidden-sm-only{display:none!important}}@media only screen and (max-width:991px){.hidden-sm-and-down{display:none!important}}@media only screen and (min-width:992px){.hidden-md-and-up{display:none!important}}@media only screen and (min-width:992px) and (max-width:1199px){.hidden-md-only{display:none!important}}@media only screen and (max-width:1199px){.hidden-md-and-down{display:none!important}}@media only screen and (min-width:1200px){.hidden-lg-and-up{display:none!important}}@media only screen and (min-width:1200px) and (max-width:1919px){.hidden-lg-only{display:none!important}}@media only screen and (max-width:1919px){.hidden-lg-and-down{display:none!important}}@media only screen and (min-width:1920px){.hidden-xl-only{display:none!important}} -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/scss/element/divider.css: -------------------------------------------------------------------------------- 1 | .el-divider{background-color:#DCDFE6;position:relative}.el-divider--horizontal{display:block;height:1px;width:100%;margin:24px 0}.el-divider--vertical{display:inline-block;width:1px;height:1em;margin:0 8px;vertical-align:middle;position:relative}.el-divider__text{position:absolute;background-color:#FFF;padding:0 20px;font-weight:500;color:#303133;font-size:14px}.el-divider__text.is-left{left:20px;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.el-divider__text.is-center{left:50%;-webkit-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%)}.el-divider__text.is-right{right:20px;-webkit-transform:translateY(-50%);transform:translateY(-50%)} -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/scss/element/dropdown-item.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform-electron/src/render/scss/element/dropdown-item.css -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/scss/element/dropdown-menu.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform-electron/src/render/scss/element/dropdown-menu.css -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/scss/element/fonts/element-icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform-electron/src/render/scss/element/fonts/element-icons.ttf -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/scss/element/fonts/element-icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform-electron/src/render/scss/element/fonts/element-icons.woff -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/scss/element/footer.css: -------------------------------------------------------------------------------- 1 | .el-footer{padding:0 20px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0} -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/scss/element/form-item.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform-electron/src/render/scss/element/form-item.css -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/scss/element/header.css: -------------------------------------------------------------------------------- 1 | .el-header{padding:0 20px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0} -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/scss/element/infinite-scroll.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform-electron/src/render/scss/element/infinite-scroll.css -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/scss/element/infiniteScroll.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform-electron/src/render/scss/element/infiniteScroll.css -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/scss/element/main.css: -------------------------------------------------------------------------------- 1 | .el-main{display:block;-webkit-box-flex:1;-ms-flex:1;flex:1;-ms-flex-preferred-size:auto;flex-basis:auto;overflow:auto;-webkit-box-sizing:border-box;box-sizing:border-box;padding:20px} -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/scss/element/menu-item-group.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform-electron/src/render/scss/element/menu-item-group.css -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/scss/element/menu-item.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform-electron/src/render/scss/element/menu-item.css -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/scss/element/option-group.css: -------------------------------------------------------------------------------- 1 | .el-select-group{margin:0;padding:0}.el-select-group__wrap{position:relative;list-style:none;margin:0;padding:0}.el-select-group__wrap:not(:last-of-type){padding-bottom:24px}.el-select-group__wrap:not(:last-of-type)::after{content:'';position:absolute;display:block;left:20px;right:20px;bottom:12px;height:1px;background:#E4E7ED}.el-select-group__title{padding-left:20px;font-size:12px;color:#909399;line-height:30px}.el-select-group .el-select-dropdown__item{padding-left:20px} -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/scss/element/option.css: -------------------------------------------------------------------------------- 1 | .el-select-dropdown__item{font-size:14px;padding:0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#606266;height:34px;line-height:34px;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer}.el-select-dropdown__item.is-disabled{color:#C0C4CC;cursor:not-allowed}.el-select-dropdown__item.is-disabled:hover{background-color:#FFF}.el-select-dropdown__item.hover,.el-select-dropdown__item:hover{background-color:#F5F7FA}.el-select-dropdown__item.selected{color:#82AAF1;font-weight:700} -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/scss/element/page-header.css: -------------------------------------------------------------------------------- 1 | .el-page-header{display:-webkit-box;display:-ms-flexbox;display:flex;line-height:24px}.el-page-header__left{display:-webkit-box;display:-ms-flexbox;display:flex;cursor:pointer;margin-right:40px;position:relative}.el-page-header__left::after{content:"";position:absolute;width:1px;height:16px;right:-20px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);background-color:#DCDFE6}.el-page-header__left .el-icon-back{font-size:18px;margin-right:6px;-ms-flex-item-align:center;align-self:center}.el-page-header__title{font-size:14px;font-weight:500}.el-page-header__content{font-size:18px;color:#303133} -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/scss/element/popconfirm.css: -------------------------------------------------------------------------------- 1 | .el-popconfirm__main{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-popconfirm__icon{margin-right:5px}.el-popconfirm__action{text-align:right;margin:0} -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/scss/element/radio-group.css: -------------------------------------------------------------------------------- 1 | .el-radio-group{display:inline-block;line-height:1;vertical-align:middle;font-size:0} -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/scss/element/rate.css: -------------------------------------------------------------------------------- 1 | .el-rate__icon,.el-rate__item{position:relative;display:inline-block}.el-rate{height:20px;line-height:1}.el-rate:active,.el-rate:focus{outline-width:0}.el-rate__item{font-size:0;vertical-align:middle}.el-rate__icon{font-size:18px;margin-right:6px;color:#C0C4CC;-webkit-transition:.3s;transition:.3s}.el-rate__decimal,.el-rate__icon .path2{position:absolute;top:0;left:0}.el-rate__icon.hover{-webkit-transform:scale(1.15);transform:scale(1.15)}.el-rate__decimal{display:inline-block;overflow:hidden}.el-rate__text{font-size:14px;vertical-align:middle} -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/scss/element/reset.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8";body{font-family:"Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif;font-weight:400;font-size:14px;color:#000;-webkit-font-smoothing:antialiased}a{color:#82AAF1;text-decoration:none}a:focus,a:hover{color:rgb(155, 187, 244)}a:active{color:rgb(117, 153, 217)}h1,h2,h3,h4,h5,h6{color:#606266;font-weight:inherit}h1:first-child,h2:first-child,h3:first-child,h4:first-child,h5:first-child,h6:first-child,p:first-child{margin-top:0}h1:last-child,h2:last-child,h3:last-child,h4:last-child,h5:last-child,h6:last-child,p:last-child{margin-bottom:0}h1{font-size:20px}h2{font-size:18px}h3{font-size:16px}h4,h5,h6,p{font-size:inherit}p{line-height:1.8}sub,sup{font-size:13px}small{font-size:12px}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee} -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/scss/element/row.css: -------------------------------------------------------------------------------- 1 | .el-row{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box}.el-row::after,.el-row::before{display:table;content:""}.el-row::after{clear:both}.el-row--flex{display:-webkit-box;display:-ms-flexbox;display:flex}.el-row--flex:after,.el-row--flex:before{display:none}.el-row--flex.is-justify-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-row--flex.is-justify-end{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.el-row--flex.is-justify-space-between{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.el-row--flex.is-justify-space-around{-ms-flex-pack:distribute;justify-content:space-around}.el-row--flex.is-align-middle{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-row--flex.is-align-bottom{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end} -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/scss/element/scrollbar.css: -------------------------------------------------------------------------------- 1 | .el-scrollbar{overflow:hidden;position:relative}.el-scrollbar:active>.el-scrollbar__bar,.el-scrollbar:focus>.el-scrollbar__bar,.el-scrollbar:hover>.el-scrollbar__bar{opacity:1;-webkit-transition:opacity 340ms ease-out;transition:opacity 340ms ease-out}.el-scrollbar__wrap{overflow:scroll;height:100%}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{width:0;height:0}.el-scrollbar__thumb{position:relative;display:block;width:0;height:0;cursor:pointer;border-radius:inherit;background-color:rgba(144,147,153,.3);-webkit-transition:.3s background-color;transition:.3s background-color}.el-scrollbar__thumb:hover{background-color:rgba(144,147,153,.5)}.el-scrollbar__bar{position:absolute;right:2px;bottom:2px;z-index:1;border-radius:4px;opacity:0;-webkit-transition:opacity 120ms ease-out;transition:opacity 120ms ease-out}.el-scrollbar__bar.is-vertical{width:6px;top:2px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%} -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/scss/element/spinner.css: -------------------------------------------------------------------------------- 1 | .el-time-spinner{width:100%;white-space:nowrap}.el-spinner{display:inline-block;vertical-align:middle}.el-spinner-inner{-webkit-animation:rotate 2s linear infinite;animation:rotate 2s linear infinite;width:50px;height:50px}.el-spinner-inner .path{stroke:#ececec;stroke-linecap:round;-webkit-animation:dash 1.5s ease-in-out infinite;animation:dash 1.5s ease-in-out infinite}@-webkit-keyframes rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}100%{stroke-dasharray:90,150;stroke-dashoffset:-124}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}100%{stroke-dasharray:90,150;stroke-dashoffset:-124}} -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/scss/element/steps.css: -------------------------------------------------------------------------------- 1 | .el-steps{display:-webkit-box;display:-ms-flexbox;display:flex}.el-steps--simple{padding:13px 8%;border-radius:4px;background:#F5F7FA}.el-steps--horizontal{white-space:nowrap}.el-steps--vertical{height:100%;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column;flex-flow:column} -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/scss/element/submenu.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform-electron/src/render/scss/element/submenu.css -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/scss/element/tab-pane.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform-electron/src/render/scss/element/tab-pane.css -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/scss/element/timeline.css: -------------------------------------------------------------------------------- 1 | .el-timeline{margin:0;font-size:14px;list-style:none}.el-timeline .el-timeline-item:last-child .el-timeline-item__tail{display:none} -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/scss/index.scss: -------------------------------------------------------------------------------- 1 | /* 2 | 样式入口 3 | */ 4 | 5 | @import "./base.scss"; //基础布局样式 6 | @import "./reset.scss"; 7 | @import "./element.scss"; 8 | @import "./pc.scss"; 9 | @import "./yzIcon/icon.css"; 10 | 11 | @import url('./iconfont.css'); 12 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/scss/mixin.scss: -------------------------------------------------------------------------------- 1 | // 文本溢出样式,clamp到多少行溢出时显示缩略字符 2 | @mixin text-clamp($clamp: 1) { 3 | text-overflow: ellipsis; 4 | white-space: normal; 5 | word-break: break-all; 6 | display: -webkit-box; 7 | -webkit-box-orient: vertical; 8 | -webkit-line-clamp: $clamp; 9 | overflow: hidden; 10 | line-height: normal; 11 | } 12 | 13 | // 边框 14 | @mixin border-bottom($color: $ui-color-border) { 15 | position: relative; 16 | &::after{ 17 | content: ''; 18 | position: absolute; 19 | bottom: 0; 20 | left: 0; 21 | right: 0; 22 | height: 1px; 23 | background-color: $color; 24 | transform: scaleY(0.5); 25 | transform-origin: center; 26 | } 27 | } 28 | @mixin border-top($color: $ui-color-border) { 29 | position: relative; 30 | &::before{ 31 | content: ''; 32 | position: absolute; 33 | top: 0; 34 | left: 0; 35 | right: 0; 36 | height: 1px; 37 | background-color: $color; 38 | transform: scaleY(0.5); 39 | transform-origin: center; 40 | } 41 | } -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/scss/variable.scss: -------------------------------------------------------------------------------- 1 | // 主题色 2 | $ui-color-black: #000; 3 | $color-grey: #969799; 4 | $color-red: #ee0a24; 5 | $color-black: #000; 6 | $color-theme: #155bd4; 7 | 8 | $font-mini: 12px; 9 | $font-middle: 14px; 10 | $font-large: 16px; 11 | 12 | $h5-color-theme: #c7655a; 13 | $h5-color-bg: #f8f8f8; 14 | 15 | .grey { 16 | color: $color-grey; 17 | } 18 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/scss/yzIcon/a.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform-electron/src/render/scss/yzIcon/a.woff -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/scss/yzIcon/b.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform-electron/src/render/scss/yzIcon/b.ttf -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/scss/yzIcon/c.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform-electron/src/render/scss/yzIcon/c.woff2 -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/store/index.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: What's this for 3 | * @Autor: WangYuan 4 | * @Date: 2021-05-19 09:49:33 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2021-09-01 20:18:11 7 | */ 8 | import Vue from 'vue' 9 | import Vuex from 'vuex' 10 | import project from './project' 11 | import user from './user' 12 | 13 | Vue.use(Vuex) 14 | 15 | export default new Vuex.Store({ 16 | state: { 17 | ...project.state, 18 | ...user.state, 19 | }, 20 | getters: { 21 | ...project.getters, 22 | ...user.getters, 23 | }, 24 | mutations: { 25 | ...project.mutations, 26 | ...user.mutations, 27 | }, 28 | actions: { 29 | }, 30 | modules: { 31 | } 32 | }) 33 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/store/user.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: 用户数据管理 3 | * @Autor: WangYuan 4 | * @Date: 2021-05-19 09:49:33 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2021-12-15 17:13:13 7 | */ 8 | import { 9 | setAuthToken, 10 | getAuthToken, 11 | setAuthUserInfo, 12 | getAuthUserInfo 13 | } from '@render/utils/auth' 14 | 15 | export default { 16 | state: { 17 | token: getAuthToken(), 18 | userInfo: getAuthUserInfo() 19 | }, 20 | getters: { 21 | token: state => state.token, 22 | userInfo: state => state.userInfo 23 | }, 24 | mutations: { 25 | setToken (state, token) { 26 | state.token = token 27 | setAuthToken(token) 28 | }, 29 | setUserInfo (state, userInfo) { 30 | state.userInfo = userInfo 31 | setAuthUserInfo(userInfo) 32 | }, 33 | logout (state) { 34 | state.token = null 35 | state.userInfo = null 36 | sessionStorage.clear() 37 | localStorage.clear() 38 | } 39 | }, 40 | actions: {}, 41 | modules: {} 42 | } 43 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/utils/filters.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: 全局过滤器 3 | * @Autor: WangYuan 4 | * @Date: 2021-09-15 19:48:43 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2021-09-16 11:47:12 7 | */ 8 | import Vue from 'vue' 9 | 10 | const filters = { 11 | // 价格显示 分 -> 元 (带两位小数) 12 | moneyDec(target) { 13 | return (target / 100).toFixed(2) 14 | }, 15 | 16 | // 价格显示 分 -> 元 17 | money(target) { 18 | return target / 100 19 | } 20 | } 21 | 22 | Object.keys(filters).forEach(key => { 23 | Vue.filter(key, filters[key]) 24 | }) -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/utils/jump.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: 平台通用跳转 (包括项目内,H5,小程序) 3 | * @Autor: WangYuan 4 | * @Date: 2021-07-07 11:02:11 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2021-08-31 20:41:23 7 | */ 8 | 9 | import Vue from 'vue' 10 | 11 | export default function jump(data) { 12 | console.log(data); 13 | 14 | 15 | let { type, id } = data 16 | console.log(type); 17 | console.log(type); 18 | 19 | 20 | 21 | // 跳转自定义页面 22 | if (type == 'custom') { 23 | if (!id) { 24 | console.warn('自定义页面跳转未传递id'); 25 | return 26 | } 27 | 28 | this.$router.push({ name: 'custom', query: { pageId: id } }) 29 | } 30 | 31 | // 跳转微页面 32 | if (type == 'fixed') { 33 | if (!id) { 34 | console.warn('微页面跳转未传递id'); 35 | return 36 | } 37 | this.$router.push({ name: data.id }) 38 | } 39 | 40 | // 跳转商品详情 41 | if (type == 'goods') { 42 | this.$router.push({ name: 'goods-detail', query: { id } }) 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/utils/request.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: What's this for 3 | * @Autor: WangYuan 4 | * @Date: 2021-03-24 16:07:46 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2022-02-11 10:14:08 7 | */ 8 | import Vue from 'vue' 9 | import axios from 'axios' 10 | import store from '@render/store' 11 | import global from '@render/config/global' 12 | 13 | // create an axios instance 14 | const request = axios.create({ 15 | baseURL: global.baseApi, // url = base url + request url 16 | withCredentials: true, // send cookies when cross-domain requests 17 | timeout: 15000 // request timeout 18 | }) 19 | 20 | // request interceptor 21 | request.interceptors.request.use(config => { 22 | if (store.getters.token) { 23 | config.headers['Authorization'] = store.getters.token 24 | } 25 | 26 | return config 27 | }) 28 | 29 | // response interceptor 30 | request.interceptors.response.use(response => { 31 | const token = response.headers['right-token'] 32 | token && store.commit('setToken', token) 33 | 34 | return response.data 35 | }) 36 | 37 | export default request 38 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/widgets/McCapCube/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "魔方", 3 | "icon": "icon-mofang", 4 | "fields": { 5 | "cube": { 6 | "label": "魔方数据", 7 | "type": "cube", 8 | "value": { 9 | "model": "custom", 10 | "row": 3, 11 | "list": [] 12 | } 13 | }, 14 | "styles": { 15 | "label": "魔方样式", 16 | "type": "object", 17 | "child": { 18 | "pagePadding": { 19 | "label": "页面边距", 20 | "type": "number", 21 | "value": 0 22 | }, 23 | "cmpRadius": { 24 | "label": "组件圆角", 25 | "type": "number", 26 | "value": 0 27 | }, 28 | "imgMargin": { 29 | "label": "单项间距", 30 | "type": "number", 31 | "value": 0 32 | }, 33 | "imgRadius": { 34 | "label": "单项圆角", 35 | "type": "number", 36 | "value": 0 37 | }, 38 | "cmpBackground": { 39 | "label": "容器背景", 40 | "type": "color", 41 | "value": "" 42 | } 43 | } 44 | } 45 | } 46 | } -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/widgets/McEmpty/McEmpty.vue: -------------------------------------------------------------------------------- 1 | 8 | 22 | 23 | 43 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/widgets/McImg/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "图片", 3 | "icon": "icon-image", 4 | "fields":{ 5 | "imageValue": { 6 | "label": "图片内容", 7 | "type": "object", 8 | "child": { 9 | "imagePath": { 10 | "label": "图片上传", 11 | "type": "upload", 12 | "value": "" 13 | }, 14 | "jumpPath": { 15 | "label": "页面跳转", 16 | "type": "jump", 17 | "value": {} 18 | } 19 | } 20 | }, 21 | "imageStyle": { 22 | "label": "图片样式", 23 | "type": "object", 24 | "child": { 25 | "pagePadding": { 26 | "label": "页面边距", 27 | "type": "number", 28 | "value": 0 29 | }, 30 | "cmpRadius": { 31 | "label": "图片圆角", 32 | "type": "number", 33 | "value": 0 34 | }, 35 | "cmpUpperPadding": { 36 | "label": "上边距", 37 | "type": "number", 38 | "value": 0 39 | }, 40 | "cmpLowerPadding": { 41 | "label": "下边距", 42 | "type": "number", 43 | "value": 0 44 | } 45 | } 46 | } 47 | } 48 | } -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/widgets/McNotice/McNotice.vue: -------------------------------------------------------------------------------- 1 | 8 | 19 | 20 | 45 | 46 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/src/render/widgets/McNotice/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "公告", 3 | "icon": "icon-gonggao", 4 | "fields":{ 5 | "noticeContent": { 6 | "label": "公告内容", 7 | "type": "object", 8 | "child": { 9 | "text": { 10 | "label": "公告文本", 11 | "type": "string", 12 | "value": "自恨罗衣掩诗句,举头空羡榜中名" 13 | }, 14 | "icon": { 15 | "label": "公告图标", 16 | "type": "upload", 17 | "value": "" 18 | } 19 | } 20 | }, 21 | "noticeStyles": { 22 | "label": "公告样式", 23 | "type": "object", 24 | "child": { 25 | "pagePadding": { 26 | "label": "页面边距", 27 | "type": "number", 28 | "value": 0 29 | }, 30 | "fontColor": { 31 | "label": "文本颜色", 32 | "type": "color", 33 | "value": "rgba(183, 93, 93, 0.75)" 34 | }, 35 | "cmpBackground": { 36 | "label": "背景色", 37 | "type": "color", 38 | "value": "" 39 | } 40 | } 41 | } 42 | } 43 | } -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "useDefineForClassFields": true, 5 | "module": "ESNext", 6 | "moduleResolution": "Node", 7 | "strict": true, 8 | "jsx": "preserve", 9 | "baseUrl": ".", 10 | "paths": { 11 | "@/*": ["src/*"] 12 | }, 13 | "resolveJsonModule": true, 14 | "isolatedModules": true, 15 | "esModuleInterop": true, 16 | "lib": ["ESNext", "DOM"], 17 | "skipLibCheck": true, 18 | "noEmit": true 19 | }, 20 | "include": ["src/**/*.ts", "types/**/*.d.ts", "types/global/global.d.ts"], 21 | "references": [{ "path": "./tsconfig.node.json" }] 22 | } 23 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "module": "ESNext", 5 | "moduleResolution": "Node", 6 | "allowSyntheticDefaultImports": true 7 | }, 8 | "include": ["vite.config.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/types/axios.d.ts: -------------------------------------------------------------------------------- 1 | import * as axios from 'axios'; 2 | 3 | declare module 'axios' { 4 | interface AxiosInstance { 5 | (config: AxiosRequestConfig): Promise; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/types/global/global.d.ts: -------------------------------------------------------------------------------- 1 | export {} 2 | declare global { 3 | interface Window { 4 | electronAPI?: any;//全局变量名 5 | } 6 | interface AxiosConfig { 7 | params?: any 8 | data?: any 9 | url?: string 10 | method?: AxiosMethod 11 | headersType?: string 12 | responseType?: AxiosResponseType 13 | } 14 | 15 | interface IResponse { 16 | code: string 17 | data: T extends any ? T : T & any 18 | } 19 | type AxiosHeaders = 20 | | 'application/json' 21 | | 'application/x-www-form-urlencoded' 22 | | 'multipart/form-data' 23 | } 24 | declare const window: any; 25 | 26 | 27 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/types/shims-vue.d.ts: -------------------------------------------------------------------------------- 1 | declare module '*.vue' { 2 | import { DefineComponent } from 'vue'; 3 | // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types 4 | const component: DefineComponent<{}, {}, any>; 5 | export default component; 6 | } 7 | -------------------------------------------------------------------------------- /packages/mall-cook-platform-electron/types/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * @Descripttion: 3 | * @version: 4 | * @Author: June 5 | * @Date: 2023-03-07 18:15:18 6 | * @LastEditors: June 7 | * @LastEditTime: 2023-03-08 21:25:26 8 | */ 9 | /// -------------------------------------------------------------------------------- /packages/mall-cook-platform/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 雨尽阑珊 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /packages/mall-cook-platform/babel.config.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: What's this for 3 | * @Autor: WangYuan 4 | * @Date: 2021-07-19 09:28:37 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2021-07-20 10:15:56 7 | */ 8 | module.exports = { 9 | presets: [ 10 | '@vue/cli-plugin-babel/preset' 11 | ], 12 | plugins: [ 13 | "@babel/plugin-proposal-optional-chaining", 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /packages/mall-cook-platform/ftpUp.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: 文件上传 3 | * @Autor: WangYuan 4 | * @Date: 2021-07-05 14:20:22 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2022-02-11 10:24:26 7 | */ 8 | 9 | const sftpUploader = require('sftp-uploader') 10 | const path = require('path') 11 | 12 | function resolve (dir) { 13 | return path.join(__dirname, dir) 14 | } 15 | 16 | const sftp = new sftpUploader({ 17 | dir: path.join(__dirname, 'dist/'), 18 | host: process.env.VUE_APP_HOSE, 19 | url: process.env.VUE_APP_URL, 20 | port: process.env.VUE_APP_PROT, 21 | username: process.env.VUE_APP_USERNAME, 22 | password: process.env.VUE_APP_PASSWORD, 23 | previewPath: 'http://110.42.184.128:8000/#/' 24 | }) 25 | 26 | // 仅支持手动上传 27 | sftp.put() 28 | -------------------------------------------------------------------------------- /packages/mall-cook-platform/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform/public/favicon.ico -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/App.vue: -------------------------------------------------------------------------------- 1 | 8 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/api/goods.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: 商品管理api 3 | * @Autor: WangYuan 4 | * @Date: 2021-09-22 15:51:56 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2021-09-22 16:55:04 7 | */ 8 | import request from '@/utils/request' 9 | 10 | /** 11 | * 查询商品列表 12 | */ 13 | export const getGoodsList = async (data) => request({ url: "goods/getByList", method: "POST", data }) 14 | 15 | /** 16 | * 根据id查询商品详情 17 | */ 18 | export const getGoodsById = async (data) => request({ url: "goods/getById", method: "POST", data }) 19 | 20 | /** 21 | * 根据id列表查询商品列表 22 | */ 23 | export const getGoodsByIds = async (data) => request({ url: "goods/getByIds", method: "POST", data }) 24 | 25 | /** 26 | * 新增商品 27 | */ 28 | export const addGoods = async (data) => request({ url: "goods/add", method: "POST", data }) 29 | 30 | /** 31 | * 编辑商品 32 | */ 33 | export const editGoods = async (data) => request({ url: "goods/edit", method: "POST", data }) 34 | 35 | /** 36 | * 复制商品 37 | */ 38 | export const copyGoods = async (data) => request({ url: "goods/copy", method: "POST", data }) -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/api/user.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: 用户api 3 | * @Autor: WangYuan 4 | * @Date: 2021-09-22 16:22:01 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2021-09-22 16:27:10 7 | */ 8 | 9 | import request from '@/utils/request' 10 | 11 | /** 12 | * 登录 13 | */ 14 | export const login = async (data) => request({ url: "/login", method: "POST", data }) 15 | 16 | /** 17 | * 注册 18 | */ 19 | export const register = async (data) => request({ url: "/register", method: "POST", data }) -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/assets/image/ghost.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform/src/assets/image/ghost.jpg -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/assets/image/logo.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform/src/assets/image/logo.jpeg -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/assets/image/pc-list-one-add.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform/src/assets/image/pc-list-one-add.jpg -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/assets/image/pc-list-one-cart.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform/src/assets/image/pc-list-one-cart.jpg -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/assets/image/pc-list-two-add.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform/src/assets/image/pc-list-two-add.jpg -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/assets/image/pc-list-two-cart.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform/src/assets/image/pc-list-two-cart.jpg -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/assets/image/pc-template-category-advert.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform/src/assets/image/pc-template-category-advert.jpg -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/assets/image/pc-template-category-base.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform/src/assets/image/pc-template-category-base.jpg -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/components/Control/ControlConfig.vue: -------------------------------------------------------------------------------- 1 | 8 | 26 | 27 | 47 | 48 | -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/components/Control/index.vue: -------------------------------------------------------------------------------- 1 | 8 | 17 | 18 | 52 | 53 | -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/components/PageConfig/index.vue: -------------------------------------------------------------------------------- 1 | 8 | 15 | 16 | -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/components/global/ConfigCtn.vue: -------------------------------------------------------------------------------- 1 | 8 | 19 | 20 | 27 | 28 | -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/components/global/ConfigItem.vue: -------------------------------------------------------------------------------- 1 | 8 | 16 | 17 | -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/components/global/GitControl.vue: -------------------------------------------------------------------------------- 1 | 8 | 14 | 15 | 27 | 28 | -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/components/global/PhoneCtn/phone-head.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform/src/components/global/PhoneCtn/phone-head.png -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/config/global.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: What's this for 3 | * @Autor: WangYuan 4 | * @Date: 2022-02-11 10:08:57 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2022-11-02 09:10:53 7 | */ 8 | export default { 9 | baseApi: '/mall-cook/api/', // 后端接口地址 10 | viewUrl: 'http://139.196.223.93:4001/#/' // iframe嵌套的H5地址,本地开发可改为本地启动的H5地址 11 | // baseApi: 'http://www.sunmao-design.top/mall-cook/api/', // 后端接口地址 12 | // viewUrl: 'http://139.196.223.93:4001/#/', // iframe嵌套的H5地址,本地开发可改为本地启动的H5地址 13 | } 14 | -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/config/mall.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: 商城配置数据 3 | * @Autor: WangYuan 4 | * @Date: 2021-09-28 15:05:58 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2022-11-02 09:44:23 7 | */ 8 | 9 | export const mallTypeList = [ 10 | { 11 | type: 'mall', 12 | logo: 'http://110.41.150.71:8090/img/1667353444841.png', 13 | title: '微商城', 14 | subTitle: ' E-commence' 15 | }, 16 | { 17 | type: 'model', 18 | logo: 'http://110.41.150.71:8090/img/1667353421573.png', 19 | title: '商城模板', 20 | subTitle: ' E-commenceModel' 21 | }, 22 | ] 23 | 24 | export const mallIndustryList = [ 25 | { label: '日用百货', value: 'department' }, 26 | { label: '服饰饰品', value: 'clothes' }, 27 | { label: '休闲零食', value: 'snacks' }, 28 | { label: '数码家电', value: 'digital' }, 29 | { label: '教育培训', value: 'education' }, 30 | { label: '酒店旅游', value: 'hotel' }, 31 | { label: '其他', value: 'other' }, 32 | ] -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/config/schema-template.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: template 类型组件对应 3 | * @Autor: WangYuan 4 | * @Date: 2021-10-18 11:47:02 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2021-10-18 20:50:11 7 | */ 8 | export default { 9 | number: "SchemaNumber", 10 | string: "SchemaString", 11 | select: "SchemaSelect", 12 | switch: "SchemaSwitch", 13 | color: "SchemaColor", 14 | upload: "SchemaUpload", 15 | jump: "SchemaJump", 16 | time: "SchemaTime", 17 | cube: "SchemaCapCube", 18 | goods: "SchemaGoods", 19 | object: 'SchemaObject', 20 | array: 'SchemaArray' 21 | } -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/custom-schema-template-set/config-template/SchemaCapCubeConfig.vue: -------------------------------------------------------------------------------- 1 | 8 | 30 | 31 | 38 | 39 | -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/custom-schema-template-set/config-template/SchemaColorConfig.vue: -------------------------------------------------------------------------------- 1 | 8 | 33 | 34 | 41 | 42 | -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/custom-schema-template-set/config-template/SchemaContainerConfig.vue: -------------------------------------------------------------------------------- 1 | 8 | 30 | 31 | 38 | 39 | -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/custom-schema-template-set/config-template/SchemaGoodsConfig.vue: -------------------------------------------------------------------------------- 1 | 8 | 30 | 31 | 38 | 39 | -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/custom-schema-template-set/config-template/SchemaJumpConfig.vue: -------------------------------------------------------------------------------- 1 | 8 | 30 | 31 | 38 | 39 | -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/custom-schema-template-set/config-template/SchemaUploadConfig.vue: -------------------------------------------------------------------------------- 1 | 8 | 36 | 37 | 44 | 45 | -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/custom-schema-template-set/config-template/icon.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: What's this for 3 | * @Autor: WangYuan 4 | * @Date: 2021-10-25 19:59:48 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2021-10-25 20:17:06 7 | */ 8 | export default [ 9 | 'icon-sousuo', 10 | 'icon-shangpin-meau', 11 | 'icon-cart', 12 | 'icon-message', 13 | 'icon-sort', 14 | 'icon-my', 15 | 'icon-daojishi', 16 | 'icon-biaotizujian', 17 | 'icon-gonggao', 18 | 'icon-line', 19 | 'icon-image', 20 | 'icon-swiper', 21 | 'icon-daohang', 22 | 'icon-lajitong', 23 | 'icon-zujian', 24 | 'icon-shoupiao', 25 | 'icon-vip', 26 | 'icon-map', 27 | 'icon-attachent', 28 | 'icon-hot1' 29 | ] 30 | -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/custom-schema-template/components/SchemaArray/initializing.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: What's this for 3 | * @Autor: WangYuan 4 | * @Date: 2021-10-12 15:38:29 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2021-11-12 17:16:21 7 | */ 8 | export default { 9 | label: '数组', 10 | type: 'array', 11 | property: '', 12 | value: [], 13 | child: [], 14 | options: { 15 | note: '', 16 | limit: 10 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/custom-schema-template/components/SchemaCapCube/initializing.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: What's this for 3 | * @Autor: WangYuan 4 | * @Date: 2021-10-12 15:38:29 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2021-11-12 17:16:16 7 | */ 8 | export default { 9 | label: '魔方配置', 10 | type: 'cube', 11 | property: '', 12 | value: { 13 | model: 'custom', 14 | row: 3, 15 | list: [], 16 | } 17 | } -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/custom-schema-template/components/SchemaColor/index.vue: -------------------------------------------------------------------------------- 1 | 8 | 23 | 24 | -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/custom-schema-template/components/SchemaColor/initializing.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: What's this for 3 | * @Autor: WangYuan 4 | * @Date: 2021-10-12 15:38:29 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2021-11-12 17:16:09 7 | */ 8 | export default { 9 | label: '颜色选择器', 10 | type: 'color', 11 | property: '', 12 | value: '' 13 | } 14 | -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/custom-schema-template/components/SchemaGoods/initializing.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: What's this for 3 | * @Autor: WangYuan 4 | * @Date: 2021-10-12 15:38:29 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2021-11-12 17:16:05 7 | */ 8 | export default { 9 | label: '商品列表', 10 | type: 'goods', 11 | property: '', 12 | value: [] 13 | } 14 | -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/custom-schema-template/components/SchemaJump/initializing.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: What's this for 3 | * @Autor: WangYuan 4 | * @Date: 2021-10-12 15:38:29 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2022-03-21 09:45:30 7 | */ 8 | export default { 9 | label: '页面跳转', 10 | type: 'jump', 11 | property: '', 12 | value: {} 13 | } 14 | -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/custom-schema-template/components/SchemaNumber/index.vue: -------------------------------------------------------------------------------- 1 | 8 | 18 | 19 | -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/custom-schema-template/components/SchemaNumber/initializing.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: What's this for 3 | * @Autor: WangYuan 4 | * @Date: 2021-10-12 15:38:29 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2021-11-12 17:15:55 7 | */ 8 | export default { 9 | label: '数字', 10 | type: 'number', 11 | property: '', 12 | value: 0, 13 | options: { 14 | min: 0, 15 | max: 50 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/custom-schema-template/components/SchemaObject/initializing.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: What's this for 3 | * @Autor: WangYuan 4 | * @Date: 2021-10-12 15:38:29 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2021-11-12 17:15:51 7 | */ 8 | export default { 9 | label: '对象', 10 | type: 'object', 11 | property: '', 12 | child: [], 13 | fields: { 14 | value: '' 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/custom-schema-template/components/SchemaSelect/initializing.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: What's this for 3 | * @Autor: WangYuan 4 | * @Date: 2021-10-12 15:38:29 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2021-11-12 17:15:45 7 | */ 8 | export default { 9 | label: '单选框', 10 | type: 'select', 11 | property: '', 12 | value: '', 13 | data: [] 14 | } 15 | -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/custom-schema-template/components/SchemaString/index.vue: -------------------------------------------------------------------------------- 1 | 8 | 18 | 19 | -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/custom-schema-template/components/SchemaString/initializing.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: What's this for 3 | * @Autor: WangYuan 4 | * @Date: 2021-10-12 15:38:29 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2021-11-12 17:15:26 7 | */ 8 | export default { 9 | label: '输入框', 10 | type: 'string', 11 | property: '', 12 | value: '', 13 | options: { 14 | placeholder: "请输入", 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/custom-schema-template/components/SchemaSwitch/initializing.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: What's this for 3 | * @Autor: WangYuan 4 | * @Date: 2021-10-12 15:38:29 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2021-11-12 17:15:31 7 | */ 8 | export default { 9 | label: '是否', 10 | type: 'switch', 11 | property: '', 12 | value: false, 13 | options: { 14 | trueLabel: "显示", 15 | falseLabel: "隐藏", 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/custom-schema-template/components/SchemaTime/index.vue: -------------------------------------------------------------------------------- 1 | 8 | 21 | 22 | -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/custom-schema-template/components/SchemaTime/initializing.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: What's this for 3 | * @Autor: WangYuan 4 | * @Date: 2021-10-12 15:38:29 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2021-11-12 17:15:35 7 | */ 8 | export default { 9 | label: '时间', 10 | type: 'time', 11 | property: '', 12 | value: '' 13 | } 14 | -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/custom-schema-template/components/SchemaUpload/index.vue: -------------------------------------------------------------------------------- 1 | 8 | 17 | 18 | 27 | -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/custom-schema-template/components/SchemaUpload/initializing.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: What's this for 3 | * @Autor: WangYuan 4 | * @Date: 2021-10-12 15:38:29 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2021-11-12 17:15:40 7 | */ 8 | export default { 9 | label: '图片上传', 10 | type: 'upload', 11 | property: '', 12 | value: '' 13 | } 14 | -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/faim/FormDialog/globalConfig.js: -------------------------------------------------------------------------------- 1 | import FaimLocale from "faim/dist/locale/zh-cn.mjs"; 2 | 3 | export default { 4 | locale: FaimLocale.FaFormDialog, 5 | } 6 | -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/faim/ImageUpload/globalConfig.js: -------------------------------------------------------------------------------- 1 | import FaimLocale from "faim/dist/locale/zh-cn.mjs"; 2 | import upload from '../upload' 3 | import './index.scss' 4 | 5 | export default { 6 | // 图片上传组件全局配置 7 | locale: FaimLocale.FaImageUpload, 8 | // accept: '.jpg,.jpeg,.png', // 允许上传的图片格式 9 | // maxCount: 1, // 全局默认图片数量不超过1张,具体使用时如有不同可用局部配置覆盖掉 10 | // maxSize: 512 * 1024, // 单位为字节 11 | // 上传到服务器 12 | upload, 13 | } 14 | -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/faim/ImageUpload/index.scss: -------------------------------------------------------------------------------- 1 | // 自定义图片上传组件样式 2 | 3 | .el-upload-list { 4 | &>.el-upload-list__item { 5 | width: 50px !important; 6 | height: 50px !important; 7 | 8 | .el-upload-list__item-status-label { 9 | width: 34px; 10 | height: 18px; 11 | 12 | &>i { 13 | margin-top: 0; 14 | } 15 | } 16 | 17 | .el-upload-list__item-actions { 18 | line-height: 50px; 19 | font-size: 16px; 20 | 21 | &>span+span { 22 | margin-left: 4px; 23 | } 24 | } 25 | } 26 | } 27 | 28 | .el-upload { 29 | width: 50px !important; 30 | height: 50px !important; 31 | line-height: 50px; 32 | 33 | &>.el-upload-dragger { 34 | width: 50px !important; 35 | height: 50px !important; 36 | } 37 | 38 | .el-icon, 39 | .el-icon-plus { 40 | font-size: initial !important; 41 | } 42 | 43 | .el-upload__text { 44 | display: none; 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/faim/RichText/index.scss: -------------------------------------------------------------------------------- 1 | // 与 Element 保持一致 2 | .tox-tinymce { 3 | border-radius: 4px !important; 4 | } 5 | 6 | // 超越 el-dialog 层级,但菜单的隐藏触发方式不是失焦而是外部点击,所以在菜单没有隐藏时打开的嵌套 el-dialog 会被菜单遮挡 7 | .tox-tinymce-aux.tox-silver-sink { 8 | z-index: 3000; 9 | } 10 | 11 | // 富文本内容样式 12 | .mce-content-body { 13 | line-height: 1.8; 14 | overflow: auto; 15 | 16 | p { 17 | margin-block-end: 0; 18 | margin-block-start: 0; 19 | } 20 | 21 | img { 22 | max-width: 100%; 23 | height: auto !important; 24 | vertical-align: middle; 25 | } 26 | } 27 | 28 | div:where(.swal2-container) div:where(.swal2-popup) { 29 | font-size: 16px; 30 | } 31 | -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/faim/upload.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import global from '@/config/global' 3 | 4 | export default async (file) => new Promise((resolve, reject) => { 5 | Vue.prototype.$POST.upload(global.baseApi + 'upload', ({ 6 | file, 7 | }), { 8 | baseURL: '', 9 | timeout: 20000, 10 | }).then(res => { 11 | resolve(res.data) 12 | }).catch(e => { 13 | reject(e) 14 | }) 15 | }) 16 | -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/mixin/componentConfigMixin.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: What's this for 3 | * @Autor: WangYuan 4 | * @Date: 2021-09-26 20:49:31 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2022-01-18 16:16:32 7 | */ 8 | /* 9 | * @Description: 组件配置混入 10 | * @Autor: WangYuan 11 | * @Date: 2021-06-04 16:31:11 12 | * @LastEditors: WangYuan 13 | * @LastEditTime: 2021-09-18 10:51:49 14 | */ 15 | 16 | import ModeSelect from "@/components/ModeSelect"; 17 | import ModeSelectItem from "@/components/ModeSelect/ModeSelectItem"; 18 | 19 | export default { 20 | components: { 21 | ModeSelect, 22 | ModeSelectItem, 23 | }, 24 | props: { 25 | attr: { 26 | type: Object, 27 | default: () => { } 28 | }, 29 | style: { 30 | type: Object, 31 | default: () => { } 32 | }, 33 | value: { 34 | type: Object, 35 | default: () => { } 36 | }, 37 | }, 38 | } -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/mixin/schemaMixin.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: What's this for 3 | * @Autor: WangYuan 4 | * @Date: 2021-09-24 10:19:13 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2022-01-28 11:50:21 7 | */ 8 | export default { 9 | props: { 10 | id:{}, 11 | value: {}, 12 | label: { 13 | type: String, 14 | }, 15 | options: { 16 | type: Object, 17 | default: () => {} 18 | } 19 | }, 20 | 21 | data() { 22 | return { 23 | mValue: undefined, 24 | defaultOptions: {} // 如有默认options配置,则在调用组件重新定义此变量 25 | }; 26 | }, 27 | 28 | computed: { 29 | mOptions() { 30 | return { ...this.defaultOptions, ...this.options } 31 | } 32 | }, 33 | 34 | watch: { 35 | value: { 36 | immediate: true, 37 | deep:true, 38 | handler(newVal,oldVal) { 39 | this.mValue = this.value; 40 | }, 41 | }, 42 | mValue: { 43 | handler() { 44 | this.$emit("input", this.mValue); 45 | this.$emit("change", this.mValue); 46 | }, 47 | }, 48 | }, 49 | } -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/pages/mall/goods/index.vue: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/pages/mall/page-build.vue: -------------------------------------------------------------------------------- 1 | 8 | 13 | 14 | 23 | 29 | -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/pages/mall/store/index.vue: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/pages/schema.vue: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | 21 | -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/scss/element-#82AAF1/aside.css: -------------------------------------------------------------------------------- 1 | .el-aside{overflow:auto;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0} -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/scss/element-#82AAF1/avatar.css: -------------------------------------------------------------------------------- 1 | .el-avatar{display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;overflow:hidden;color:#fff;background:#C0C4CC;width:40px;height:40px;line-height:40px;font-size:14px}.el-avatar>img{display:block;height:100%;vertical-align:middle}.el-avatar--circle{border-radius:50%}.el-avatar--square{border-radius:4px}.el-avatar--icon{font-size:18px}.el-avatar--large{width:40px;height:40px;line-height:40px}.el-avatar--medium{width:36px;height:36px;line-height:36px}.el-avatar--small{width:28px;height:28px;line-height:28px} -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/scss/element-#82AAF1/backtop.css: -------------------------------------------------------------------------------- 1 | .el-backtop{position:fixed;background-color:#FFF;width:40px;height:40px;border-radius:50%;color:#82AAF1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-size:20px;-webkit-box-shadow:0 0 6px rgba(0,0,0,.12);box-shadow:0 0 6px rgba(0,0,0,.12);cursor:pointer;z-index:5}.el-backtop:hover{background-color:#F2F6FC} -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/scss/element-#82AAF1/badge.css: -------------------------------------------------------------------------------- 1 | .el-badge{position:relative;vertical-align:middle;display:inline-block}.el-badge__content{background-color:#F56C6C;border-radius:10px;color:#FFF;display:inline-block;font-size:12px;height:18px;line-height:18px;padding:0 6px;text-align:center;white-space:nowrap;border:1px solid #FFF}.el-badge__content.is-fixed{position:absolute;top:0;right:10px;-webkit-transform:translateY(-50%) translateX(100%);transform:translateY(-50%) translateX(100%)}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{height:8px;width:8px;padding:0;right:0;border-radius:50%}.el-badge__content--primary{background-color:#82AAF1}.el-badge__content--success{background-color:#67C23A}.el-badge__content--warning{background-color:#E6A23C}.el-badge__content--info{background-color:#909399}.el-badge__content--danger{background-color:#F56C6C} -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/scss/element-#82AAF1/breadcrumb-item.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform/src/scss/element-#82AAF1/breadcrumb-item.css -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/scss/element-#82AAF1/breadcrumb.css: -------------------------------------------------------------------------------- 1 | .el-breadcrumb{font-size:14px;line-height:1}.el-breadcrumb::after,.el-breadcrumb::before{display:table;content:""}.el-breadcrumb::after{clear:both}.el-breadcrumb__separator{margin:0 9px;font-weight:700;color:#C0C4CC}.el-breadcrumb__separator[class*=icon]{margin:0 6px;font-weight:400}.el-breadcrumb__item{float:left}.el-breadcrumb__inner{color:#606266}.el-breadcrumb__inner a,.el-breadcrumb__inner.is-link{font-weight:700;text-decoration:none;-webkit-transition:color .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.355,1);color:#303133}.el-breadcrumb__inner a:hover,.el-breadcrumb__inner.is-link:hover{color:#82AAF1;cursor:pointer}.el-breadcrumb__item:last-child .el-breadcrumb__inner,.el-breadcrumb__item:last-child .el-breadcrumb__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover,.el-breadcrumb__item:last-child .el-breadcrumb__inner:hover{font-weight:400;color:#606266;cursor:text}.el-breadcrumb__item:last-child .el-breadcrumb__separator{display:none} -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/scss/element-#82AAF1/button-group.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform/src/scss/element-#82AAF1/button-group.css -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/scss/element-#82AAF1/card.css: -------------------------------------------------------------------------------- 1 | .el-card{border-radius:4px;border:1px solid #EBEEF5;background-color:#FFF;overflow:hidden;color:#303133;-webkit-transition:.3s;transition:.3s}.el-card.is-always-shadow,.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-card__header{padding:18px 20px;border-bottom:1px solid #EBEEF5;-webkit-box-sizing:border-box;box-sizing:border-box}.el-card__body{padding:20px} -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/scss/element-#82AAF1/carousel-item.css: -------------------------------------------------------------------------------- 1 | .el-carousel__item,.el-carousel__mask{position:absolute;height:100%;top:0;left:0}.el-carousel__item{width:100%;display:inline-block;overflow:hidden;z-index:0}.el-carousel__item.is-active{z-index:2}.el-carousel__item.is-animating{-webkit-transition:-webkit-transform .4s ease-in-out;transition:-webkit-transform .4s ease-in-out;transition:transform .4s ease-in-out;transition:transform .4s ease-in-out,-webkit-transform .4s ease-in-out}.el-carousel__item--card{width:50%;-webkit-transition:-webkit-transform .4s ease-in-out;transition:-webkit-transform .4s ease-in-out;transition:transform .4s ease-in-out;transition:transform .4s ease-in-out,-webkit-transform .4s ease-in-out}.el-carousel__item--card.is-in-stage{cursor:pointer;z-index:1}.el-carousel__item--card.is-in-stage.is-hover .el-carousel__mask,.el-carousel__item--card.is-in-stage:hover .el-carousel__mask{opacity:.12}.el-carousel__item--card.is-active{z-index:2}.el-carousel__mask{width:100%;background-color:#FFF;opacity:.24;-webkit-transition:.2s;transition:.2s} -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/scss/element-#82AAF1/checkbox-button.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform/src/scss/element-#82AAF1/checkbox-button.css -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/scss/element-#82AAF1/checkbox-group.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform/src/scss/element-#82AAF1/checkbox-group.css -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/scss/element-#82AAF1/collapse-item.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform/src/scss/element-#82AAF1/collapse-item.css -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/scss/element-#82AAF1/container.css: -------------------------------------------------------------------------------- 1 | .el-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-flex:1;-ms-flex:1;flex:1;-ms-flex-preferred-size:auto;flex-basis:auto;-webkit-box-sizing:border-box;box-sizing:border-box;min-width:0}.el-container.is-vertical{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column} -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/scss/element-#82AAF1/display.css: -------------------------------------------------------------------------------- 1 | @media only screen and (max-width:767px){.hidden-xs-only{display:none!important}}@media only screen and (min-width:768px){.hidden-sm-and-up{display:none!important}}@media only screen and (min-width:768px) and (max-width:991px){.hidden-sm-only{display:none!important}}@media only screen and (max-width:991px){.hidden-sm-and-down{display:none!important}}@media only screen and (min-width:992px){.hidden-md-and-up{display:none!important}}@media only screen and (min-width:992px) and (max-width:1199px){.hidden-md-only{display:none!important}}@media only screen and (max-width:1199px){.hidden-md-and-down{display:none!important}}@media only screen and (min-width:1200px){.hidden-lg-and-up{display:none!important}}@media only screen and (min-width:1200px) and (max-width:1919px){.hidden-lg-only{display:none!important}}@media only screen and (max-width:1919px){.hidden-lg-and-down{display:none!important}}@media only screen and (min-width:1920px){.hidden-xl-only{display:none!important}} -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/scss/element-#82AAF1/divider.css: -------------------------------------------------------------------------------- 1 | .el-divider{background-color:#DCDFE6;position:relative}.el-divider--horizontal{display:block;height:1px;width:100%;margin:24px 0}.el-divider--vertical{display:inline-block;width:1px;height:1em;margin:0 8px;vertical-align:middle;position:relative}.el-divider__text{position:absolute;background-color:#FFF;padding:0 20px;font-weight:500;color:#303133;font-size:14px}.el-divider__text.is-left{left:20px;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.el-divider__text.is-center{left:50%;-webkit-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%)}.el-divider__text.is-right{right:20px;-webkit-transform:translateY(-50%);transform:translateY(-50%)} -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/scss/element-#82AAF1/dropdown-item.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform/src/scss/element-#82AAF1/dropdown-item.css -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/scss/element-#82AAF1/dropdown-menu.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform/src/scss/element-#82AAF1/dropdown-menu.css -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/scss/element-#82AAF1/fonts/element-icons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform/src/scss/element-#82AAF1/fonts/element-icons.ttf -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/scss/element-#82AAF1/fonts/element-icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform/src/scss/element-#82AAF1/fonts/element-icons.woff -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/scss/element-#82AAF1/footer.css: -------------------------------------------------------------------------------- 1 | .el-footer{padding:0 20px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0} -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/scss/element-#82AAF1/form-item.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform/src/scss/element-#82AAF1/form-item.css -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/scss/element-#82AAF1/header.css: -------------------------------------------------------------------------------- 1 | .el-header{padding:0 20px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0} -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/scss/element-#82AAF1/infinite-scroll.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform/src/scss/element-#82AAF1/infinite-scroll.css -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/scss/element-#82AAF1/infiniteScroll.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform/src/scss/element-#82AAF1/infiniteScroll.css -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/scss/element-#82AAF1/main.css: -------------------------------------------------------------------------------- 1 | .el-main{display:block;-webkit-box-flex:1;-ms-flex:1;flex:1;-ms-flex-preferred-size:auto;flex-basis:auto;overflow:auto;-webkit-box-sizing:border-box;box-sizing:border-box;padding:20px} -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/scss/element-#82AAF1/menu-item-group.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform/src/scss/element-#82AAF1/menu-item-group.css -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/scss/element-#82AAF1/menu-item.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform/src/scss/element-#82AAF1/menu-item.css -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/scss/element-#82AAF1/option-group.css: -------------------------------------------------------------------------------- 1 | .el-select-group{margin:0;padding:0}.el-select-group__wrap{position:relative;list-style:none;margin:0;padding:0}.el-select-group__wrap:not(:last-of-type){padding-bottom:24px}.el-select-group__wrap:not(:last-of-type)::after{content:'';position:absolute;display:block;left:20px;right:20px;bottom:12px;height:1px;background:#E4E7ED}.el-select-group__title{padding-left:20px;font-size:12px;color:#909399;line-height:30px}.el-select-group .el-select-dropdown__item{padding-left:20px} -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/scss/element-#82AAF1/option.css: -------------------------------------------------------------------------------- 1 | .el-select-dropdown__item{font-size:14px;padding:0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#606266;height:34px;line-height:34px;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer}.el-select-dropdown__item.is-disabled{color:#C0C4CC;cursor:not-allowed}.el-select-dropdown__item.is-disabled:hover{background-color:#FFF}.el-select-dropdown__item.hover,.el-select-dropdown__item:hover{background-color:#F5F7FA}.el-select-dropdown__item.selected{color:#82AAF1;font-weight:700} -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/scss/element-#82AAF1/page-header.css: -------------------------------------------------------------------------------- 1 | .el-page-header{display:-webkit-box;display:-ms-flexbox;display:flex;line-height:24px}.el-page-header__left{display:-webkit-box;display:-ms-flexbox;display:flex;cursor:pointer;margin-right:40px;position:relative}.el-page-header__left::after{content:"";position:absolute;width:1px;height:16px;right:-20px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);background-color:#DCDFE6}.el-page-header__left .el-icon-back{font-size:18px;margin-right:6px;-ms-flex-item-align:center;align-self:center}.el-page-header__title{font-size:14px;font-weight:500}.el-page-header__content{font-size:18px;color:#303133} -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/scss/element-#82AAF1/popconfirm.css: -------------------------------------------------------------------------------- 1 | .el-popconfirm__main{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-popconfirm__icon{margin-right:5px}.el-popconfirm__action{text-align:right;margin:0} -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/scss/element-#82AAF1/radio-group.css: -------------------------------------------------------------------------------- 1 | .el-radio-group{display:inline-block;line-height:1;vertical-align:middle;font-size:0} -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/scss/element-#82AAF1/rate.css: -------------------------------------------------------------------------------- 1 | .el-rate__icon,.el-rate__item{position:relative;display:inline-block}.el-rate{height:20px;line-height:1}.el-rate:active,.el-rate:focus{outline-width:0}.el-rate__item{font-size:0;vertical-align:middle}.el-rate__icon{font-size:18px;margin-right:6px;color:#C0C4CC;-webkit-transition:.3s;transition:.3s}.el-rate__decimal,.el-rate__icon .path2{position:absolute;top:0;left:0}.el-rate__icon.hover{-webkit-transform:scale(1.15);transform:scale(1.15)}.el-rate__decimal{display:inline-block;overflow:hidden}.el-rate__text{font-size:14px;vertical-align:middle} -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/scss/element-#82AAF1/reset.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8";body{font-family:"Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif;font-weight:400;font-size:14px;color:#000;-webkit-font-smoothing:antialiased}a{color:#82AAF1;text-decoration:none}a:focus,a:hover{color:rgb(155, 187, 244)}a:active{color:rgb(117, 153, 217)}h1,h2,h3,h4,h5,h6{color:#606266;font-weight:inherit}h1:first-child,h2:first-child,h3:first-child,h4:first-child,h5:first-child,h6:first-child,p:first-child{margin-top:0}h1:last-child,h2:last-child,h3:last-child,h4:last-child,h5:last-child,h6:last-child,p:last-child{margin-bottom:0}h1{font-size:20px}h2{font-size:18px}h3{font-size:16px}h4,h5,h6,p{font-size:inherit}p{line-height:1.8}sub,sup{font-size:13px}small{font-size:12px}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee} -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/scss/element-#82AAF1/row.css: -------------------------------------------------------------------------------- 1 | .el-row{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box}.el-row::after,.el-row::before{display:table;content:""}.el-row::after{clear:both}.el-row--flex{display:-webkit-box;display:-ms-flexbox;display:flex}.el-row--flex:after,.el-row--flex:before{display:none}.el-row--flex.is-justify-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-row--flex.is-justify-end{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.el-row--flex.is-justify-space-between{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.el-row--flex.is-justify-space-around{-ms-flex-pack:distribute;justify-content:space-around}.el-row--flex.is-align-middle{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-row--flex.is-align-bottom{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end} -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/scss/element-#82AAF1/scrollbar.css: -------------------------------------------------------------------------------- 1 | .el-scrollbar{overflow:hidden;position:relative}.el-scrollbar:active>.el-scrollbar__bar,.el-scrollbar:focus>.el-scrollbar__bar,.el-scrollbar:hover>.el-scrollbar__bar{opacity:1;-webkit-transition:opacity 340ms ease-out;transition:opacity 340ms ease-out}.el-scrollbar__wrap{overflow:scroll;height:100%}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{width:0;height:0}.el-scrollbar__thumb{position:relative;display:block;width:0;height:0;cursor:pointer;border-radius:inherit;background-color:rgba(144,147,153,.3);-webkit-transition:.3s background-color;transition:.3s background-color}.el-scrollbar__thumb:hover{background-color:rgba(144,147,153,.5)}.el-scrollbar__bar{position:absolute;right:2px;bottom:2px;z-index:1;border-radius:4px;opacity:0;-webkit-transition:opacity 120ms ease-out;transition:opacity 120ms ease-out}.el-scrollbar__bar.is-vertical{width:6px;top:2px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%} -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/scss/element-#82AAF1/spinner.css: -------------------------------------------------------------------------------- 1 | .el-time-spinner{width:100%;white-space:nowrap}.el-spinner{display:inline-block;vertical-align:middle}.el-spinner-inner{-webkit-animation:rotate 2s linear infinite;animation:rotate 2s linear infinite;width:50px;height:50px}.el-spinner-inner .path{stroke:#ececec;stroke-linecap:round;-webkit-animation:dash 1.5s ease-in-out infinite;animation:dash 1.5s ease-in-out infinite}@-webkit-keyframes rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}100%{stroke-dasharray:90,150;stroke-dashoffset:-124}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}100%{stroke-dasharray:90,150;stroke-dashoffset:-124}} -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/scss/element-#82AAF1/steps.css: -------------------------------------------------------------------------------- 1 | .el-steps{display:-webkit-box;display:-ms-flexbox;display:flex}.el-steps--simple{padding:13px 8%;border-radius:4px;background:#F5F7FA}.el-steps--horizontal{white-space:nowrap}.el-steps--vertical{height:100%;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column;flex-flow:column} -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/scss/element-#82AAF1/submenu.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform/src/scss/element-#82AAF1/submenu.css -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/scss/element-#82AAF1/tab-pane.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform/src/scss/element-#82AAF1/tab-pane.css -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/scss/element-#82AAF1/timeline.css: -------------------------------------------------------------------------------- 1 | .el-timeline{margin:0;font-size:14px;list-style:none}.el-timeline .el-timeline-item:last-child .el-timeline-item__tail{display:none} -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/scss/index.scss: -------------------------------------------------------------------------------- 1 | /* 2 | 样式入口 3 | */ 4 | 5 | @import "base.scss"; //基础布局样式 6 | @import "reset.scss"; 7 | @import "element.scss"; 8 | @import "pc.scss"; 9 | @import "./yzIcon/icon.css"; 10 | -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/scss/mixin.scss: -------------------------------------------------------------------------------- 1 | // 文本溢出样式,clamp到多少行溢出时显示缩略字符 2 | @mixin text-clamp($clamp: 1) { 3 | text-overflow: ellipsis; 4 | white-space: normal; 5 | word-break: break-all; 6 | display: -webkit-box; 7 | -webkit-box-orient: vertical; 8 | -webkit-line-clamp: $clamp; 9 | overflow: hidden; 10 | line-height: normal; 11 | } 12 | 13 | // 边框 14 | @mixin border-bottom($color: $ui-color-border) { 15 | position: relative; 16 | &::after{ 17 | content: ''; 18 | position: absolute; 19 | bottom: 0; 20 | left: 0; 21 | right: 0; 22 | height: 1px; 23 | background-color: $color; 24 | transform: scaleY(0.5); 25 | transform-origin: center; 26 | } 27 | } 28 | @mixin border-top($color: $ui-color-border) { 29 | position: relative; 30 | &::before{ 31 | content: ''; 32 | position: absolute; 33 | top: 0; 34 | left: 0; 35 | right: 0; 36 | height: 1px; 37 | background-color: $color; 38 | transform: scaleY(0.5); 39 | transform-origin: center; 40 | } 41 | } -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/scss/variable.scss: -------------------------------------------------------------------------------- 1 | // 主题色 2 | $ui-color-black: #000; 3 | $color-grey: #969799; 4 | $color-red: #ee0a24; 5 | $color-black: #000; 6 | $color-theme: #155bd4; 7 | 8 | $font-mini: 12px; 9 | $font-middle: 14px; 10 | $font-large: 16px; 11 | 12 | $h5-color-theme: #c7655a; 13 | $h5-color-bg: #f8f8f8; 14 | 15 | .grey { 16 | color: $color-grey; 17 | } 18 | -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/scss/yzIcon/a.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform/src/scss/yzIcon/a.woff -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/scss/yzIcon/b.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform/src/scss/yzIcon/b.ttf -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/scss/yzIcon/c.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-platform/src/scss/yzIcon/c.woff2 -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/store/index.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: What's this for 3 | * @Autor: WangYuan 4 | * @Date: 2021-05-19 09:49:33 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2021-09-01 20:18:11 7 | */ 8 | import Vue from 'vue' 9 | import Vuex from 'vuex' 10 | import project from './project' 11 | import user from './user' 12 | 13 | Vue.use(Vuex) 14 | 15 | export default new Vuex.Store({ 16 | state: { 17 | ...project.state, 18 | ...user.state, 19 | }, 20 | getters: { 21 | ...project.getters, 22 | ...user.getters, 23 | }, 24 | mutations: { 25 | ...project.mutations, 26 | ...user.mutations, 27 | }, 28 | actions: { 29 | }, 30 | modules: { 31 | } 32 | }) 33 | -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/store/user.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: 用户数据管理 3 | * @Autor: WangYuan 4 | * @Date: 2021-05-19 09:49:33 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2021-12-15 17:13:13 7 | */ 8 | import { 9 | setAuthToken, 10 | getAuthToken, 11 | setAuthUserInfo, 12 | getAuthUserInfo 13 | } from '@/utils/auth' 14 | 15 | export default { 16 | state: { 17 | token: getAuthToken(), 18 | userInfo: getAuthUserInfo() 19 | }, 20 | getters: { 21 | token: state => state.token, 22 | userInfo: state => state.userInfo 23 | }, 24 | mutations: { 25 | setToken (state, token) { 26 | state.token = token 27 | setAuthToken(token) 28 | }, 29 | setUserInfo (state, userInfo) { 30 | state.userInfo = userInfo 31 | setAuthUserInfo(userInfo) 32 | }, 33 | logout (state) { 34 | state.token = null 35 | state.userInfo = null 36 | sessionStorage.clear() 37 | localStorage.clear() 38 | } 39 | }, 40 | actions: {}, 41 | modules: {} 42 | } 43 | -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/utils/filters.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: 全局过滤器 3 | * @Autor: WangYuan 4 | * @Date: 2021-09-15 19:48:43 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2021-09-16 11:47:12 7 | */ 8 | import Vue from 'vue' 9 | 10 | const filters = { 11 | // 价格显示 分 -> 元 (带两位小数) 12 | moneyDec(target) { 13 | return (target / 100).toFixed(2) 14 | }, 15 | 16 | // 价格显示 分 -> 元 17 | money(target) { 18 | return target / 100 19 | } 20 | } 21 | 22 | Object.keys(filters).forEach(key => { 23 | Vue.filter(key, filters[key]) 24 | }) -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/utils/jump.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: 平台通用跳转 (包括项目内,H5,小程序) 3 | * @Autor: WangYuan 4 | * @Date: 2021-07-07 11:02:11 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2021-08-31 20:41:23 7 | */ 8 | 9 | import Vue from 'vue' 10 | 11 | export default function jump(data) { 12 | console.log(data); 13 | 14 | 15 | let { type, id } = data 16 | console.log(type); 17 | console.log(type); 18 | 19 | 20 | 21 | // 跳转自定义页面 22 | if (type == 'custom') { 23 | if (!id) { 24 | console.warn('自定义页面跳转未传递id'); 25 | return 26 | } 27 | 28 | this.$router.push({ name: 'custom', query: { pageId: id } }) 29 | } 30 | 31 | // 跳转微页面 32 | if (type == 'fixed') { 33 | if (!id) { 34 | console.warn('微页面跳转未传递id'); 35 | return 36 | } 37 | this.$router.push({ name: data.id }) 38 | } 39 | 40 | // 跳转商品详情 41 | if (type == 'goods') { 42 | this.$router.push({ name: 'goods-detail', query: { id } }) 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /packages/mall-cook-platform/src/utils/request.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: What's this for 3 | * @Autor: WangYuan 4 | * @Date: 2021-03-24 16:07:46 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2022-02-11 10:14:08 7 | */ 8 | import Vue from 'vue' 9 | import axios from 'axios' 10 | import store from '@/store' 11 | import global from '@/config/global' 12 | 13 | // create an axios instance 14 | const request = axios.create({ 15 | baseURL: global.baseApi, // url = base url + request url 16 | withCredentials: true, // send cookies when cross-domain requests 17 | timeout: 15000 // request timeout 18 | }) 19 | 20 | // request interceptor 21 | request.interceptors.request.use(config => { 22 | if (store.getters.token) { 23 | config.headers['Authorization'] = store.getters.token 24 | } 25 | 26 | return config 27 | }) 28 | 29 | // response interceptor 30 | request.interceptors.response.use(response => { 31 | const token = response.headers['right-token'] 32 | token && store.commit('setToken', token) 33 | 34 | return response.data 35 | }) 36 | 37 | export default request 38 | -------------------------------------------------------------------------------- /packages/mall-cook-template/README.md: -------------------------------------------------------------------------------- 1 | # uni-app-test 2 | 3 | ## Project setup 4 | ``` 5 | npm install 6 | ``` 7 | 8 | ### Compiles and hot-reloads for development 9 | ``` 10 | npm run serve 11 | ``` 12 | 13 | ### Compiles and minifies for production 14 | ``` 15 | npm run build 16 | ``` 17 | 18 | ### Customize configuration 19 | See [Configuration Reference](https://cli.vuejs.org/config/). 20 | -------------------------------------------------------------------------------- /packages/mall-cook-template/postcss.config.js: -------------------------------------------------------------------------------- 1 | const path = require('path') 2 | module.exports = { 3 | parser: require('postcss-comment'), 4 | plugins: [ 5 | require('postcss-import')({ 6 | resolve (id, basedir, importOptions) { 7 | if (id.startsWith('~@/')) { 8 | return path.resolve(process.env.UNI_INPUT_DIR, id.substr(3)) 9 | } else if (id.startsWith('@/')) { 10 | return path.resolve(process.env.UNI_INPUT_DIR, id.substr(2)) 11 | } else if (id.startsWith('/') && !id.startsWith('//')) { 12 | return path.resolve(process.env.UNI_INPUT_DIR, id.substr(1)) 13 | } 14 | return id 15 | } 16 | }), 17 | require('autoprefixer')({ 18 | remove: process.env.UNI_PLATFORM !== 'h5' 19 | }), 20 | require('@dcloudio/vue-cli-plugin-uni/packages/postcss') 21 | ] 22 | } 23 | -------------------------------------------------------------------------------- /packages/mall-cook-template/src/App.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 35 | 36 | 39 | -------------------------------------------------------------------------------- /packages/mall-cook-template/src/api/index.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: What's this for 3 | * @Autor: WangYuan 4 | * @Date: 2022-01-24 09:24:11 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2022-02-10 10:33:20 7 | */ 8 | 9 | import request from '@/utils/request' 10 | 11 | /** 12 | * 查询项目详情 13 | */ 14 | export const getProjectDetail = data => { 15 | return request('/project/getById', data) 16 | } 17 | 18 | /** 19 | * 查询商品详情 20 | */ 21 | export const getGoodsDetail = data => { 22 | return request('/goods/getById', data) 23 | } 24 | 25 | /** 26 | * 查询商品列表 27 | */ 28 | export const getGoodsList = data => { 29 | return request('/goods/getByList', data) 30 | } 31 | 32 | /** 33 | * 根据ids查询商品列表 34 | */ 35 | export const getGoodsListByIds = data => { 36 | return request('/goods/getByIds', data) 37 | } 38 | 39 | 40 | /** 41 | * 封面上传 42 | */ 43 | export const uploadCover = data => { 44 | return request('/upload', data) 45 | } 46 | -------------------------------------------------------------------------------- /packages/mall-cook-template/src/common/customType.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: What's this for 3 | * @Autor: WangYuan 4 | * @Date: 2022-03-22 09:35:29 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2022-03-22 09:35:29 7 | */ 8 | export default ['customFrist', 'customSecond'] 9 | -------------------------------------------------------------------------------- /packages/mall-cook-template/src/components/global/global-tab-page.vue: -------------------------------------------------------------------------------- 1 | 8 | 16 | 17 | 33 | 34 | -------------------------------------------------------------------------------- /packages/mall-cook-template/src/components/page-blili.vue: -------------------------------------------------------------------------------- 1 | 8 | 20 | 21 | 24 | 25 | -------------------------------------------------------------------------------- /packages/mall-cook-template/src/components/page-git.vue: -------------------------------------------------------------------------------- 1 | 8 | 17 | 18 | 21 | 22 | -------------------------------------------------------------------------------- /packages/mall-cook-template/src/components/page-juejin.vue: -------------------------------------------------------------------------------- 1 | 8 | 21 | 22 | 25 | 26 | -------------------------------------------------------------------------------- /packages/mall-cook-template/src/components/review-page.vue: -------------------------------------------------------------------------------- 1 | 8 | 13 | 14 | 22 | 23 | -------------------------------------------------------------------------------- /packages/mall-cook-template/src/components/waiting-cmp/index.vue: -------------------------------------------------------------------------------- 1 | 8 | 13 | 14 | 19 | 20 | -------------------------------------------------------------------------------- /packages/mall-cook-template/src/components/waiting-cmp/waiting.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-template/src/components/waiting-cmp/waiting.jpg -------------------------------------------------------------------------------- /packages/mall-cook-template/src/components/widget-shape.vue: -------------------------------------------------------------------------------- 1 | 8 | 17 | 18 | 24 | 25 | -------------------------------------------------------------------------------- /packages/mall-cook-template/src/main.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: What's this for 3 | * @Autor: WangYuan 4 | * @Date: 2022-01-08 11:04:13 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2022-03-22 14:55:02 7 | */ 8 | import Vue from 'vue' 9 | import App from './App' 10 | import store from './store' 11 | 12 | // 注册全局样式 13 | import '@/scss/index.scss' 14 | // 注册公用渲染方法 15 | import '@/utils/registerBaseStyle.js' 16 | // 注册全局过滤器 17 | import '@/utils/filters.js' 18 | 19 | import jump from '@/utils/globalJump' 20 | Vue.prototype.$jump = jump 21 | Vue.prototype.$toast = (title, cb) => { 22 | if(!title) throw new Error('title不能为空'); 23 | return uni.showToast({ 24 | title, 25 | icon: 'none', 26 | success: () => { 27 | cb && 'function' === typeof cb && cb(); 28 | } 29 | }) 30 | } 31 | 32 | // uview组件库 33 | import uView from 'uview-ui' 34 | Vue.use(uView) 35 | uni.$u.config.unit = 'rpx' 36 | 37 | Vue.config.productionTip = false 38 | 39 | App.mpType = 'app' 40 | 41 | const app = new Vue({ 42 | store, 43 | ...App 44 | }) 45 | app.$mount() 46 | -------------------------------------------------------------------------------- /packages/mall-cook-template/src/pages/index/tabbar/tab-frist.vue: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | 21 | 22 | -------------------------------------------------------------------------------- /packages/mall-cook-template/src/pages/index/tabbar/tab-second.vue: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | 21 | -------------------------------------------------------------------------------- /packages/mall-cook-template/src/pages/index/tabbar/tab-third.vue: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | 21 | 22 | -------------------------------------------------------------------------------- /packages/mall-cook-template/src/scss/imgpond.scss: -------------------------------------------------------------------------------- 1 | // 上传组件样式重置 2 | .el-upload--picture-card { 3 | width: 60px !important; 4 | height: 60px !important; 5 | 6 | .el-icon-plus { 7 | position: absolute; 8 | top: 20px; 9 | left: 20px; 10 | font-size: 18px; 11 | } 12 | } 13 | 14 | .el-upload-list__item { 15 | width: 60px !important; 16 | height: 60px !important; 17 | } 18 | 19 | .el-upload-list__item-status-label, 20 | .el-upload__text { 21 | display: none !important; 22 | } 23 | 24 | .el-upload-list__item-preview { 25 | font-size: 17px; 26 | } 27 | 28 | .el-icon-delete { 29 | font-size: 17px; 30 | } 31 | -------------------------------------------------------------------------------- /packages/mall-cook-template/src/scss/index.scss: -------------------------------------------------------------------------------- 1 | /* 2 | 样式入口 3 | */ 4 | 5 | @import "base.scss"; //基础布局样式 6 | @import "reset.scss"; 7 | @import "element.scss"; 8 | @import "pc.scss"; 9 | @import "imgpond.scss"; 10 | 11 | -------------------------------------------------------------------------------- /packages/mall-cook-template/src/scss/mixin.scss: -------------------------------------------------------------------------------- 1 | // 文本溢出样式,clamp到多少行溢出时显示缩略字符 2 | @mixin text-clamp($clamp: 1) { 3 | text-overflow: ellipsis; 4 | white-space: normal; 5 | word-break: break-all; 6 | display: -webkit-box; 7 | -webkit-box-orient: vertical; 8 | -webkit-line-clamp: $clamp; 9 | overflow: hidden; 10 | line-height: normal; 11 | } 12 | 13 | // 边框 14 | @mixin border-bottom($color: $ui-color-border) { 15 | position: relative; 16 | &::after{ 17 | content: ''; 18 | position: absolute; 19 | bottom: 0; 20 | left: 0; 21 | right: 0; 22 | height: 1px; 23 | background-color: $color; 24 | transform: scaleY(0.5); 25 | transform-origin: center; 26 | } 27 | } 28 | @mixin border-top($color: $ui-color-border) { 29 | position: relative; 30 | &::before{ 31 | content: ''; 32 | position: absolute; 33 | top: 0; 34 | left: 0; 35 | right: 0; 36 | height: 1px; 37 | background-color: $color; 38 | transform: scaleY(0.5); 39 | transform-origin: center; 40 | } 41 | } -------------------------------------------------------------------------------- /packages/mall-cook-template/src/scss/variable.scss: -------------------------------------------------------------------------------- 1 | // 主题色 2 | $ui-color-black: #000; 3 | $color-grey: #969799; 4 | $color-red: #ee0a24; 5 | $color-black: #000; 6 | $color-theme: #155bd4; 7 | 8 | $font-mini: 12px; 9 | $font-middle: 14px; 10 | $font-large: 16px; 11 | 12 | $h5-color-theme: #c7655a; 13 | $h5-color-bg: #f8f8f8; 14 | 15 | .grey { 16 | color: $color-grey; 17 | } 18 | -------------------------------------------------------------------------------- /packages/mall-cook-template/src/static/checked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-template/src/static/checked.png -------------------------------------------------------------------------------- /packages/mall-cook-template/src/static/goods-lazy-load.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-template/src/static/goods-lazy-load.png -------------------------------------------------------------------------------- /packages/mall-cook-template/src/static/h5-icon-car.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-template/src/static/h5-icon-car.png -------------------------------------------------------------------------------- /packages/mall-cook-template/src/static/icon/close_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-template/src/static/icon/close_white.png -------------------------------------------------------------------------------- /packages/mall-cook-template/src/static/icon/del.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-template/src/static/icon/del.png -------------------------------------------------------------------------------- /packages/mall-cook-template/src/static/icon/hot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-template/src/static/icon/hot.png -------------------------------------------------------------------------------- /packages/mall-cook-template/src/static/icon/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-template/src/static/icon/search.png -------------------------------------------------------------------------------- /packages/mall-cook-template/src/static/icon/title_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-template/src/static/icon/title_left.png -------------------------------------------------------------------------------- /packages/mall-cook-template/src/static/icon/title_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-template/src/static/icon/title_right.png -------------------------------------------------------------------------------- /packages/mall-cook-template/src/static/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-template/src/static/logo.png -------------------------------------------------------------------------------- /packages/mall-cook-template/src/static/unchecked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-template/src/static/unchecked.png -------------------------------------------------------------------------------- /packages/mall-cook-template/src/static/user/daifukuan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-template/src/static/user/daifukuan.png -------------------------------------------------------------------------------- /packages/mall-cook-template/src/static/user/daipingjia.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-template/src/static/user/daipingjia.png -------------------------------------------------------------------------------- /packages/mall-cook-template/src/static/user/daishouhuo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-template/src/static/user/daishouhuo.png -------------------------------------------------------------------------------- /packages/mall-cook-template/src/static/user/hongbao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-template/src/static/user/hongbao.png -------------------------------------------------------------------------------- /packages/mall-cook-template/src/static/user/kefu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-template/src/static/user/kefu.png -------------------------------------------------------------------------------- /packages/mall-cook-template/src/static/user/liulanjilu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-template/src/static/user/liulanjilu.png -------------------------------------------------------------------------------- /packages/mall-cook-template/src/static/user/qianbao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-template/src/static/user/qianbao.png -------------------------------------------------------------------------------- /packages/mall-cook-template/src/static/user/shoucang.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-template/src/static/user/shoucang.png -------------------------------------------------------------------------------- /packages/mall-cook-template/src/static/user/shouhou.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-template/src/static/user/shouhou.png -------------------------------------------------------------------------------- /packages/mall-cook-template/src/static/user/update.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-template/src/static/user/update.png -------------------------------------------------------------------------------- /packages/mall-cook-template/src/static/user/xianxiamendian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-template/src/static/user/xianxiamendian.png -------------------------------------------------------------------------------- /packages/mall-cook-template/src/static/user/xieyiguize.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-template/src/static/user/xieyiguize.png -------------------------------------------------------------------------------- /packages/mall-cook-template/src/static/user/yonghufankui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-template/src/static/user/yonghufankui.png -------------------------------------------------------------------------------- /packages/mall-cook-template/src/static/user/youhuiquan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-template/src/static/user/youhuiquan.png -------------------------------------------------------------------------------- /packages/mall-cook-template/src/static/user/zizhizhengzhao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/packages/mall-cook-template/src/static/user/zizhizhengzhao.png -------------------------------------------------------------------------------- /packages/mall-cook-template/src/store/index.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: What's this for 3 | * @Autor: WangYuan 4 | * @Date: 2021-05-19 09:49:33 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2022-02-07 09:59:04 7 | */ 8 | import Vue from 'vue' 9 | import Vuex from 'vuex' 10 | import project from './project' 11 | import user from './user' 12 | import order from './order' 13 | 14 | Vue.use(Vuex) 15 | 16 | export default new Vuex.Store({ 17 | modules: { 18 | project, 19 | user, 20 | order 21 | } 22 | }) 23 | -------------------------------------------------------------------------------- /packages/mall-cook-template/src/store/user.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: What's this for 3 | * @Autor: WangYuan 4 | * @Date: 2022-02-07 09:50:30 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2022-02-07 10:18:35 7 | */ 8 | export default { 9 | state: { 10 | token: '', // 模拟真实登录 11 | }, 12 | getters: { 13 | token: state => state.token, 14 | isLogin: state => state.token 15 | }, 16 | mutations: { 17 | // 设置token 18 | setToken (state, token) { 19 | state.token = token 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /packages/mall-cook-template/src/utils/filters.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: 全局过滤器 3 | * @Autor: WangYuan 4 | * @Date: 2021-09-15 19:48:43 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2021-09-16 11:47:12 7 | */ 8 | import Vue from 'vue' 9 | 10 | const filters = { 11 | // 价格显示 分 -> 元 (带两位小数) 12 | moneyDec(target) { 13 | return (target / 100).toFixed(2) 14 | }, 15 | 16 | // 价格显示 分 -> 元 17 | money(target) { 18 | return target / 100 19 | } 20 | } 21 | 22 | Object.keys(filters).forEach(key => { 23 | Vue.filter(key, filters[key]) 24 | }) -------------------------------------------------------------------------------- /packages/mall-cook-template/src/utils/request.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: 全局请求封装 3 | * @Autor: WangYuan 4 | * @Date: 2022-01-24 09:29:01 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2022-11-01 18:35:35 7 | */ 8 | const baseUrl = 'http://139.196.223.93/mall-cook/api' 9 | // const baseUrl = 'https://www.lanshan-h5.cn' 10 | 11 | const request = (url, data, method = 'POST') => { 12 | console.log('执行'); 13 | return new Promise((resolve, reject) => { 14 | uni 15 | .request({ 16 | url: baseUrl + url, 17 | data, 18 | method: method 19 | // header: { 20 | // token: token 21 | // } 22 | }) 23 | .then(response => { 24 | let [error, res] = response; 25 | console.log('成功.') 26 | console.log(res) 27 | 28 | resolve(res.data) 29 | }) 30 | .catch(err => { 31 | reject(err) 32 | }) 33 | }) 34 | } 35 | 36 | export default request 37 | -------------------------------------------------------------------------------- /packages/mall-cook-template/src/widgets/McCapCube/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "魔方", 3 | "icon": "icon-mofang", 4 | "fields": { 5 | "cube": { 6 | "label": "魔方数据", 7 | "type": "cube", 8 | "value": { 9 | "model": "custom", 10 | "row": 3, 11 | "list": [] 12 | } 13 | }, 14 | "styles": { 15 | "label": "魔方样式", 16 | "type": "object", 17 | "child": { 18 | "pagePadding": { 19 | "label": "页面边距", 20 | "type": "number", 21 | "value": 0 22 | }, 23 | "cmpRadius": { 24 | "label": "组件圆角", 25 | "type": "number", 26 | "value": 0 27 | }, 28 | "imgMargin": { 29 | "label": "单项间距", 30 | "type": "number", 31 | "value": 0 32 | }, 33 | "imgRadius": { 34 | "label": "单项圆角", 35 | "type": "number", 36 | "value": 0 37 | }, 38 | "cmpBackground": { 39 | "label": "容器背景", 40 | "type": "color", 41 | "value": "" 42 | } 43 | } 44 | } 45 | } 46 | } -------------------------------------------------------------------------------- /packages/mall-cook-template/src/widgets/McEmpty/McEmpty.vue: -------------------------------------------------------------------------------- 1 | 8 | 22 | 23 | 43 | -------------------------------------------------------------------------------- /packages/mall-cook-template/src/widgets/McImg/McImg.vue: -------------------------------------------------------------------------------- 1 | 8 | 19 | 20 | 51 | 52 | 57 | -------------------------------------------------------------------------------- /packages/mall-cook-template/src/widgets/McImg/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "图片", 3 | "icon": "icon-image", 4 | "fields":{ 5 | "imageValue": { 6 | "label": "图片内容", 7 | "type": "object", 8 | "child": { 9 | "imagePath": { 10 | "label": "图片上传", 11 | "type": "upload", 12 | "value": "" 13 | }, 14 | "jumpPath": { 15 | "label": "页面跳转", 16 | "type": "jump", 17 | "value": {} 18 | } 19 | } 20 | }, 21 | "imageStyle": { 22 | "label": "图片样式", 23 | "type": "object", 24 | "child": { 25 | "pagePadding": { 26 | "label": "页面边距", 27 | "type": "number", 28 | "value": 0 29 | }, 30 | "cmpRadius": { 31 | "label": "图片圆角", 32 | "type": "number", 33 | "value": 0 34 | }, 35 | "cmpUpperPadding": { 36 | "label": "上边距", 37 | "type": "number", 38 | "value": 0 39 | }, 40 | "cmpLowerPadding": { 41 | "label": "下边距", 42 | "type": "number", 43 | "value": 0 44 | } 45 | } 46 | } 47 | } 48 | } -------------------------------------------------------------------------------- /packages/mall-cook-template/src/widgets/McNotice/McNotice.vue: -------------------------------------------------------------------------------- 1 | 8 | 19 | 20 | 45 | 46 | -------------------------------------------------------------------------------- /packages/mall-cook-template/src/widgets/McNotice/component.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "公告", 3 | "icon": "icon-gonggao", 4 | "fields":{ 5 | "noticeContent": { 6 | "label": "公告内容", 7 | "type": "object", 8 | "child": { 9 | "text": { 10 | "label": "公告文本", 11 | "type": "string", 12 | "value": "自恨罗衣掩诗句,举头空羡榜中名" 13 | }, 14 | "icon": { 15 | "label": "公告图标", 16 | "type": "upload", 17 | "value": "" 18 | } 19 | } 20 | }, 21 | "noticeStyles": { 22 | "label": "公告样式", 23 | "type": "object", 24 | "child": { 25 | "pagePadding": { 26 | "label": "页面边距", 27 | "type": "number", 28 | "value": 0 29 | }, 30 | "fontColor": { 31 | "label": "文本颜色", 32 | "type": "color", 33 | "value": "rgba(183, 93, 93, 0.75)" 34 | }, 35 | "cmpBackground": { 36 | "label": "背景色", 37 | "type": "color", 38 | "value": "" 39 | } 40 | } 41 | } 42 | } 43 | } -------------------------------------------------------------------------------- /scripts/build.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @Description: What's this for 3 | * @Autor: WangYuan 4 | * @Date: 2022-02-11 16:18:06 5 | * @LastEditors: WangYuan 6 | * @LastEditTime: 2022-08-11 14:28:23 7 | */ 8 | const execa = require('execa') 9 | const ora = require('ora') 10 | const { resolve } = require('path') 11 | 12 | const CWD = process.cwd() 13 | let PKG_MALL_COOK_PLATFORM = resolve(CWD, './packages/mall-cook-platform') 14 | let PKG_MALL_COOK_TEMPLATE = resolve(CWD, './packages/mall-cook-template') 15 | 16 | const buildPlatform = () => 17 | execa('yarn', ['build'], { cwd: PKG_MALL_COOK_PLATFORM }) 18 | const buildTemplate = () => 19 | execa('yarn', ['build'], { cwd: PKG_MALL_COOK_TEMPLATE }) 20 | 21 | async function runTask (taskName, task) { 22 | const s = ora().start(`${taskName}平台 开始打包 `) 23 | try { 24 | await task() 25 | s.succeed(`${taskName}平台 打包完成!`) 26 | } catch (e) { 27 | s.fail(`${taskName}平台 打包失败!`) 28 | console.error(`失败原因:${e.toString()}`) 29 | } 30 | } 31 | 32 | ;(async () => { 33 | await runTask('mall-cook-platform', buildPlatform) 34 | await runTask('mall-cook-template', buildTemplate) 35 | })() 36 | -------------------------------------------------------------------------------- /static/MallCook-Build.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/static/MallCook-Build.gif -------------------------------------------------------------------------------- /static/MallCook-Cube.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/static/MallCook-Cube.gif -------------------------------------------------------------------------------- /static/MallCook-Goods.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/static/MallCook-Goods.gif -------------------------------------------------------------------------------- /static/MallCook-Model.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/static/MallCook-Model.gif -------------------------------------------------------------------------------- /static/MallCook-Schema.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/static/MallCook-Schema.gif -------------------------------------------------------------------------------- /static/MallCook-Start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/static/MallCook-Start.png -------------------------------------------------------------------------------- /static/donate.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/static/donate.jpg -------------------------------------------------------------------------------- /static/kuaitu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/static/kuaitu.png -------------------------------------------------------------------------------- /static/logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/static/logo.jpg -------------------------------------------------------------------------------- /static/official.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/static/official.png -------------------------------------------------------------------------------- /static/yunda.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangyuan389/mall-cook/3e0b653e248ee23e1eeafa5dd5a81323b26fbb62/static/yunda.png --------------------------------------------------------------------------------