初始上传
19
addon/diy_default1/component/controller/TextExtend.php
Executable file
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
namespace addon\diy_default1\component\controller;
|
||||
|
||||
use app\component\controller\BaseDiyView;
|
||||
|
||||
/**
|
||||
* 文本·组件
|
||||
*/
|
||||
class TextExtend extends BaseDiyView
|
||||
{
|
||||
/**
|
||||
* 后台编辑界面
|
||||
*/
|
||||
public function design()
|
||||
{
|
||||
return $this->fetch("text_extend/design.html");
|
||||
}
|
||||
}
|
||||
3
addon/diy_default1/component/view/text_extend/css/design.css
Executable file
@@ -0,0 +1,3 @@
|
||||
@CHARSET "UTF-8";
|
||||
/*标题组件*/
|
||||
.component-title-extend h2{color: #0cc361;}
|
||||
40
addon/diy_default1/component/view/text_extend/design.html
Executable file
@@ -0,0 +1,40 @@
|
||||
<nc-component :data="data[index]" class="component-title-extend">
|
||||
<!-- 预览 -->
|
||||
<template slot="preview">
|
||||
<div class="preview-box" :style="{ backgroundColor: nc.componentBgColor,
|
||||
borderTopLeftRadius: (nc.componentAngle == 'round' ? nc.topAroundRadius + 'px' : 0),
|
||||
borderTopRightRadius: (nc.componentAngle == 'round' ? nc.topAroundRadius + 'px' : 0),
|
||||
borderBottomLeftRadius: (nc.componentAngle == 'round' ? nc.bottomAroundRadius + 'px' : 0),
|
||||
borderBottomRightRadius: (nc.componentAngle == 'round' ? nc.bottomAroundRadius + 'px' : 0) }">
|
||||
<h2>我是扩展标题组件</h2>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<!-- 内容编辑 -->
|
||||
<template slot="edit-content">
|
||||
<template v-if="nc.lazyLoad">
|
||||
<div class="template-edit-title">
|
||||
<h3>风格设置</h3>
|
||||
<text-extend-style></text-extend-style>
|
||||
</div>
|
||||
</template>
|
||||
</template>
|
||||
|
||||
<!-- 样式编辑 -->
|
||||
<template slot="edit-style">
|
||||
<template v-if="nc.lazyLoad">
|
||||
<div class="template-edit-title">
|
||||
<h3>标题样式</h3>
|
||||
</div>
|
||||
</template>
|
||||
</template>
|
||||
|
||||
<!-- 资源 -->
|
||||
<template slot="resource">
|
||||
<js>
|
||||
</js>
|
||||
<css src="{$resource_path}/css/design.css"></css>
|
||||
<js src="{$resource_path}/js/design.js"></js>
|
||||
</template>
|
||||
|
||||
</nc-component>
|
||||
25
addon/diy_default1/component/view/text_extend/js/design.js
Executable file
@@ -0,0 +1,25 @@
|
||||
var styleExtendHtml = '<div style="display:none;"></div>';
|
||||
|
||||
Vue.component("text-extend-style", {
|
||||
template: styleExtendHtml,
|
||||
data: function () {
|
||||
return {
|
||||
data: this.$parent.data,
|
||||
list: {},
|
||||
}
|
||||
},
|
||||
created: function () {
|
||||
if (!this.$parent.data.verify) this.$parent.data.verify = [];
|
||||
this.$parent.data.verify.push(this.verify);//加载验证方法
|
||||
|
||||
this.$parent.data.ignore = ['elementAngle', 'elementBgColor']; //加载忽略内容 -- 其他设置中的属性设置
|
||||
this.$parent.data.ignoreLoad = true; // 等待忽略数组赋值后加载
|
||||
|
||||
},
|
||||
methods: {
|
||||
verify: function (index) {
|
||||
var res = {code: true, message: ""};
|
||||
return res;
|
||||
},
|
||||
}
|
||||
});
|
||||
2072
addon/diy_default1/config/diy_view.php
Executable file
13
addon/diy_default1/config/event.php
Executable file
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
// 事件定义文件
|
||||
return [
|
||||
'bind' => [
|
||||
|
||||
],
|
||||
|
||||
'listen' => [
|
||||
],
|
||||
|
||||
'subscribe' => [
|
||||
],
|
||||
];
|
||||
21
addon/diy_default1/config/info.php
Executable file
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
|
||||
* =========================================================
|
||||
*/
|
||||
return [
|
||||
'name' => 'diy_default1',
|
||||
'title' => '官方模板一',
|
||||
'description' => '官方默认模板(一)',
|
||||
'type' => 'system', //插件类型 system :系统插件(自动安装), business:业务插件 promotion:营销插件 tool:工具插件
|
||||
'status' => 1,
|
||||
'author' => '',
|
||||
'version' => '5.5.3',
|
||||
'version_no' => '553250709001',
|
||||
'content' => '',
|
||||
];
|
||||
6
addon/diy_default1/config/menu_shop.php
Executable file
@@ -0,0 +1,6 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | 平台端菜单设置
|
||||
// +----------------------------------------------------------------------
|
||||
return [
|
||||
];
|
||||
27
addon/diy_default1/event/Install.php
Executable file
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
|
||||
namespace addon\diy_default1\event;
|
||||
|
||||
/**
|
||||
* 应用安装
|
||||
*/
|
||||
class Install
|
||||
{
|
||||
/**
|
||||
* 执行安装
|
||||
*/
|
||||
public function handle()
|
||||
{
|
||||
return success();
|
||||
}
|
||||
}
|
||||
26
addon/diy_default1/event/UnInstall.php
Executable file
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
|
||||
namespace addon\diy_default1\event;
|
||||
|
||||
/**
|
||||
* 应用卸载
|
||||
*/
|
||||
class UnInstall
|
||||
{
|
||||
/**
|
||||
* 执行卸载
|
||||
*/
|
||||
public function handle()
|
||||
{
|
||||
return success();
|
||||
}
|
||||
}
|
||||
BIN
addon/diy_default1/icon.png
Executable file
|
After Width: | Height: | Size: 1.2 KiB |
24
addon/diy_default1/shop/view/public/css/comp_iconfont.css
Executable file
@@ -0,0 +1,24 @@
|
||||
@font-face {
|
||||
font-family: "icon-comp-diy-default";
|
||||
src: url('https://cdn3.codesign.qq.com/icons/qwKrMZexEB0k1md/latest/iconfont.eot?t=b4bdbe9750ee7eeab00a620fe569540e'); /* IE9 */
|
||||
src: url('https://cdn3.codesign.qq.com/icons/qwKrMZexEB0k1md/latest/iconfont.eot?t=b4bdbe9750ee7eeab00a620fe569540e#iefix') format('embedded-opentype'), /* IE6-IE8 */
|
||||
url('https://cdn3.codesign.qq.com/icons/qwKrMZexEB0k1md/latest/iconfont.woff?t=b4bdbe9750ee7eeab00a620fe569540e') format('woff2'),
|
||||
url('https://cdn3.codesign.qq.com/icons/qwKrMZexEB0k1md/latest/iconfont.woff?t=b4bdbe9750ee7eeab00a620fe569540e') format('woff'), /* chrome、firefox */
|
||||
url('https://cdn3.codesign.qq.com/icons/qwKrMZexEB0k1md/latest/iconfont.ttf?t=b4bdbe9750ee7eeab00a620fe569540e') format('truetype'), /* chrome、firefox、opera、Safari, Android, iOS 4.2+*/
|
||||
url('https://cdn3.codesign.qq.com/icons/qwKrMZexEB0k1md/latest/iconfont.svg?t=b4bdbe9750ee7eeab00a620fe569540e#icon-comp-diy-default') format('svg'); /* iOS 4.1- */
|
||||
}
|
||||
|
||||
.icon-comp-diy-default {
|
||||
font-family: "icon-comp-diy-default" !important;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
.icon-kuozhanxinxi:before {
|
||||
content: "\e001";
|
||||
}
|
||||
.icon-wenben:before {
|
||||
content: "\e002";
|
||||
}
|
||||
69
addon/diy_default1/shop/view/public/css/diy_iconfont.css
Executable file
@@ -0,0 +1,69 @@
|
||||
@font-face {
|
||||
font-family: "icondiy-my-template";
|
||||
src: url('https://cdn3.codesign.qq.com/icons/r2nL6jg1z80pJXV/latest/iconfont.eot?t=20d1e70f3aeb7dcbee56c813164786bc'); /* IE9 */
|
||||
src: url('https://cdn3.codesign.qq.com/icons/r2nL6jg1z80pJXV/latest/iconfont.eot?t=20d1e70f3aeb7dcbee56c813164786bc#iefix') format('embedded-opentype'), /* IE6-IE8 */
|
||||
url('https://cdn3.codesign.qq.com/icons/r2nL6jg1z80pJXV/latest/iconfont.woff?t=20d1e70f3aeb7dcbee56c813164786bc') format('woff2'),
|
||||
url('https://cdn3.codesign.qq.com/icons/r2nL6jg1z80pJXV/latest/iconfont.woff?t=20d1e70f3aeb7dcbee56c813164786bc') format('woff'), /* chrome、firefox */
|
||||
url('https://cdn3.codesign.qq.com/icons/r2nL6jg1z80pJXV/latest/iconfont.ttf?t=20d1e70f3aeb7dcbee56c813164786bc') format('truetype'), /* chrome、firefox、opera、Safari, Android, iOS 4.2+*/
|
||||
url('https://cdn3.codesign.qq.com/icons/r2nL6jg1z80pJXV/latest/iconfont.svg?t=20d1e70f3aeb7dcbee56c813164786bc#icondiy-my-template') format('svg'); /* iOS 4.1- */
|
||||
}
|
||||
|
||||
.icondiy-my-template {
|
||||
font-family: "icondiy-my-template" !important;
|
||||
font-size: 16px;
|
||||
font-style: normal;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
.icon-furniture-taideng:before {
|
||||
content: "\e001";
|
||||
}
|
||||
.icon-furniture-deng:before {
|
||||
content: "\e002";
|
||||
}
|
||||
.icon-furniture-szt:before {
|
||||
content: "\e003";
|
||||
}
|
||||
.icon-furniture-safa:before {
|
||||
content: "\e004";
|
||||
}
|
||||
.icon-furniture-bed:before {
|
||||
content: "\e005";
|
||||
}
|
||||
.icon-furniture-yaoyi:before {
|
||||
content: "\e006";
|
||||
}
|
||||
.icon-furniture-guizi:before {
|
||||
content: "\e007";
|
||||
}
|
||||
.icon-furniture-lunyi:before {
|
||||
content: "\e008";
|
||||
}
|
||||
.icon-furniture-fj:before {
|
||||
content: "\e009";
|
||||
}
|
||||
.icon-furniture-xicaichi:before {
|
||||
content: "\e00a";
|
||||
}
|
||||
.icon-building-glou:before {
|
||||
content: "\e00b";
|
||||
}
|
||||
.icon-building-gaolou:before {
|
||||
content: "\e00c";
|
||||
}
|
||||
.icon-building-glt:before {
|
||||
content: "\e00d";
|
||||
}
|
||||
.icon-animal-hippo:before {
|
||||
content: "\e00e";
|
||||
}
|
||||
.icon-animal-pig:before {
|
||||
content: "\e00f";
|
||||
}
|
||||
.icon-animal-dolphin:before {
|
||||
content: "\e010";
|
||||
}
|
||||
.icon-animal-duck:before {
|
||||
content: "\e011";
|
||||
}
|
||||
BIN
addon/diy_default1/shop/view/public/img/banner.png
Executable file
|
After Width: | Height: | Size: 290 KiB |
BIN
addon/diy_default1/shop/view/public/img/bg.png
Executable file
|
After Width: | Height: | Size: 597 KiB |
BIN
addon/diy_default1/shop/view/public/img/cover.png
Executable file
|
After Width: | Height: | Size: 137 KiB |
BIN
addon/diy_default1/shop/view/public/img/gg.png
Executable file
|
After Width: | Height: | Size: 277 KiB |
BIN
addon/diy_default1/shop/view/public/img/mf_left.png
Executable file
|
After Width: | Height: | Size: 178 KiB |
BIN
addon/diy_default1/shop/view/public/img/mf_right1.png
Executable file
|
After Width: | Height: | Size: 93 KiB |
BIN
addon/diy_default1/shop/view/public/img/mf_right2.png
Executable file
|
After Width: | Height: | Size: 74 KiB |
BIN
addon/diy_default1/shop/view/public/img/nav_bargain.png
Executable file
|
After Width: | Height: | Size: 39 KiB |
BIN
addon/diy_default1/shop/view/public/img/nav_coupon.png
Executable file
|
After Width: | Height: | Size: 36 KiB |
BIN
addon/diy_default1/shop/view/public/img/nav_groupbuy.png
Executable file
|
After Width: | Height: | Size: 31 KiB |
BIN
addon/diy_default1/shop/view/public/img/nav_help.png
Executable file
|
After Width: | Height: | Size: 35 KiB |
BIN
addon/diy_default1/shop/view/public/img/nav_live.png
Executable file
|
After Width: | Height: | Size: 33 KiB |
BIN
addon/diy_default1/shop/view/public/img/nav_notice.png
Executable file
|
After Width: | Height: | Size: 29 KiB |
BIN
addon/diy_default1/shop/view/public/img/nav_pintuan.png
Executable file
|
After Width: | Height: | Size: 32 KiB |
BIN
addon/diy_default1/shop/view/public/img/nav_point.png
Executable file
|
After Width: | Height: | Size: 37 KiB |
BIN
addon/diy_default1/shop/view/public/img/nav_seckill.png
Executable file
|
After Width: | Height: | Size: 30 KiB |
BIN
addon/diy_default1/shop/view/public/img/nav_topic.png
Executable file
|
After Width: | Height: | Size: 33 KiB |
BIN
addon/diy_default1/shop/view/public/img/preview.png
Executable file
|
After Width: | Height: | Size: 410 KiB |
26
addon/diy_default1/uniapp/components/diy-components/diy-text-extend.vue
Executable file
@@ -0,0 +1,26 @@
|
||||
<template>
|
||||
<view>
|
||||
<text style="font-weight: bold;font-size: 20px;color: #0cc361;">我是扩展标题组件</text>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
// 扩展标题组件
|
||||
export default {
|
||||
name: 'diy-text-extend',
|
||||
props: {
|
||||
value: {
|
||||
type: Object
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {};
|
||||
},
|
||||
computed: {},
|
||||
created() {
|
||||
},
|
||||
methods: {}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style></style>
|
||||
148
addon/diy_default1/uniapp/components/my-music/index.vue
Executable file
@@ -0,0 +1,148 @@
|
||||
<template>
|
||||
<view class="main" id="bgMusic">
|
||||
<view class="icon" :class="{ ran: status }" @click="musicChange">
|
||||
<image :src="$util.img('upload/uniapp/audio-icon-new.png')" mode="widthFix" :style="icon_style"></image>
|
||||
</view>
|
||||
<view class="musicPlay" @touchstart.stop="playTo" v-if="musicPlay"></view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
sizi: {
|
||||
default: '0.4',
|
||||
type: [Number, String]
|
||||
},
|
||||
autoplay: {
|
||||
default: true,
|
||||
type: Boolean
|
||||
},
|
||||
musicSrc: {
|
||||
default: '',
|
||||
type: String
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
icon_style: {},
|
||||
audioMusic: {},
|
||||
status: false,
|
||||
|
||||
musicPlay: true
|
||||
};
|
||||
},
|
||||
beforeDestroy() {
|
||||
this.pauseTo();
|
||||
},
|
||||
watch: {
|
||||
'$route.path'(newVal, oldVal) {
|
||||
if (newVal != '/promotion/pintuanfission/detail') {
|
||||
this.pauseTo();
|
||||
}
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.icon_style = {
|
||||
width: this.sizi + 'rem'
|
||||
// height: this.sizi + 'rem'
|
||||
};
|
||||
this.$nextTick().then(res => {
|
||||
const audioMusic = uni.createInnerAudioContext();
|
||||
audioMusic.loop = true;
|
||||
audioMusic.onPlay(() => {
|
||||
this.status = true;
|
||||
this.musicPlay = false;
|
||||
});
|
||||
audioMusic.onPause(() => {
|
||||
this.status = false;
|
||||
});
|
||||
audioMusic.onError(err => {
|
||||
this.musicPlay = false;
|
||||
});
|
||||
|
||||
audioMusic.src = this.musicSrc;
|
||||
if (this.autoplay) audioMusic.autoplay = true;
|
||||
this.audioMusic = audioMusic;
|
||||
if (!this.autoplay) return;
|
||||
setTimeout(() => {
|
||||
if (typeof WeixinJSBridge == 'undefined') {
|
||||
this.playTo();
|
||||
} else {
|
||||
WeixinJSBridge.invoke('getNetworkType', {}, e => {
|
||||
this.playTo();
|
||||
});
|
||||
}
|
||||
}, 500);
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
playTo() {
|
||||
this.audioMusic.play();
|
||||
},
|
||||
pauseTo() {
|
||||
this.audioMusic.pause();
|
||||
},
|
||||
musicChange() {
|
||||
const status = this.status;
|
||||
if (status) {
|
||||
this.audioMusic.pause();
|
||||
} else {
|
||||
this.audioMusic.play();
|
||||
}
|
||||
}
|
||||
},
|
||||
destroyed() {}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.icon {
|
||||
position: fixed;
|
||||
top: 0.6rem;
|
||||
right: 0.2rem;
|
||||
z-index: 999;
|
||||
image {
|
||||
width: 0.4rem;
|
||||
height: 0.4rem;
|
||||
}
|
||||
}
|
||||
|
||||
.ran {
|
||||
image {
|
||||
animation: turn 1s linear infinite;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes turn {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
}
|
||||
|
||||
25% {
|
||||
-webkit-transform: rotate(90deg);
|
||||
}
|
||||
|
||||
50% {
|
||||
-webkit-transform: rotate(180deg);
|
||||
}
|
||||
|
||||
75% {
|
||||
-webkit-transform: rotate(270deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
-webkit-transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
.musicPlay {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
left: 0;
|
||||
background-color: rgba($color: #000000, $alpha: 0);
|
||||
z-index: 9999;
|
||||
}
|
||||
</style>
|
||||
BIN
addon/diy_default1/uniapp/components/my-music/music.png
Executable file
|
After Width: | Height: | Size: 6.3 KiB |
16
addon/diy_default1/uniapp/pages/goods/my_cart.vue
Executable file
@@ -0,0 +1,16 @@
|
||||
<template>
|
||||
<page-meta :page-style="themeColor"></page-meta>
|
||||
<view>
|
||||
<text>我的购物车</text>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
components: {
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
</style>
|
||||
9
addon/diy_default1/uniapp/pages_promotion/index/index.vue
Executable file
@@ -0,0 +1,9 @@
|
||||
<template>
|
||||
<page-meta :page-style="themeColor"></page-meta>
|
||||
<view>
|
||||
<text>这是我的营销活动 index</text>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
</script>
|
||||