Commit ac04536f by huahua

优化页面

parent e12f7f84
## 使用注意
- 引入该组件,用v-if控制组件,组件create会触发喷发特效函数,然后可以传入一些位置参数,具体参考组件内的props属性,每个属性都备注了
-
## 示例代码
```
<template>
<view>
<fireworks v-if="isReady" />
</view>
</template>
<script>
import fireworks from '@/components/fireworks/index.vue'
export default {
data() {
return {
isReady: false
}
},
components: {
fireworks
},
onReady() {
this.$nextTick(() => {//后面记得销毁哈,不使用时设置为false
setTimeout(() => {
this.isReady = true;
}, 50)
})
},
}
</script>
```
\ No newline at end of file
<template>
<canvas class="fire-canvas" :style="{width: width + 'px', height: height + 'px', 'z-index': zIndex}"
:canvas-id="canvasId" @error="canvasIdErrorCallback"></canvas>
</template>
<script>
/*
浏览器的最高刷新赔率(最后一个表示1秒刷新60次)
*/
const minBrowserRefreshTime = window && (window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame) || function(t) {
setTimeout(t, 1e3 / 60)
}
const systenInfo = uni.getSystemInfoSync();
let fireCanvasBox = null;
export default {
props: {
/*
礼花数量(最好小于500,太多会卡顿)
*/
particleCount: {
type: [Number, String],
default: 80
},
/*取值 0-360
喷发角度示意图(简单说就是喷射方向)
礼花(90)
礼花(180) 礼花0
礼花(270)
*/
angle: {
type: [Number, String],
default: 90
},
/*
爆炸范围
*/
spread: {
type: [Number, String],
default: 100
},
/*
喷发的初始速度
*/
startVelocity: {
type: [Number, String],
default: 45
},
/*
喷发的衰退时间,超出canvas会被清除,跟startVelocity配合使用
*/
decay: {
type: [Number, String],
default: 0.9
},
/*
刷新几次消失(其实是透明度为0),这个跟间隔的刷新频率有关
*/
ticks: {
type: [Number, String],
default: 150
},
/*
礼花层级
*/
zIndex: {
type: [Number, String],
default: 1
},
/*
所有要随机的礼花颜色预选值
*/
colors: {
type: Array,
default: () => ["#5BC0EB", "#2176AE", "#FDE74C", "#9BC53D", "#E55934", "#FA7921", "#FF4242"]
},
canvasId: {
type: String,
default: 'fireCanvas'
},
/*
canvas宽度(单位px)
*/
width: {
type: [Number, String],
default: () => {
return systenInfo.windowWidth
}
},
/*
canvas高度(单位px)
*/
height: {
type: [Number, String],
default: () => {
return systenInfo.windowHeight
}
},
/*
中心点-x
*/
x: {
type: [Number, String],
default: () => {
return systenInfo.windowWidth / 2
}
},
/*
中心点-y
*/
y: {
type: [Number, String],
default: () => {
return systenInfo.windowHeight * 0.4
}
}
},
data() {
return {
/*
手机分辨率
*/
pixelRatio: systenInfo.pixelRatio
}
},
onShow(){
console.log('onShow');
this.initCanvas();
}, created() {
console.log('created');
this.initCanvas();
},
methods: {
open(){
},
/*
转16进制(颜色用)
*/
parseInt16(t) {
return parseInt(t, 16);
},
canvasIdErrorCallback(e) {
console.error(e.detail.errMsg)
},
initCanvas() {
fireCanvasBox = null;
fireCanvasBox = uni.createCanvasContext(this.canvasId, this);
fireCanvasBox.fillRect(0, 0, this.width * this.pixelRatio, this.height * this.pixelRatio);
fireCanvasBox.scale(this.pixelRatio,this.pixelRatio);
fireCanvasBox.save();
this.fireworksDraw();
},
fireworksDraw() {
let ribbon = [] ,//彩带容器
particleCount = this.particleCount, n = null, r = null, a = null,i = null;
for (; particleCount--;){
n = {
x: this.x,
y: this.y,
angle: this.angle,
spread: this.spread,
startVelocity: this.startVelocity,
color: this.colors[particleCount % this.colors.length],
ticks: this.ticks,
decay: this.decay
},
i = 0,
r = n.angle * (Math.PI / 180),
a = n.spread * (Math.PI / 180);
ribbon.push({//菜单位置初始化
x: n.x,
y: n.y,
depth: .5 * Math.random() + .6,
wobble: 10 * Math.random(),
velocity: .5 * n.startVelocity + Math.random() * n.startVelocity,
angle2D: -r + (.5 * a - Math.random() * a),
tiltAngle: Math.random() * Math.PI,
color: (i = (n.color + "").replace(/[^0-9a-f]/gi, ""), i.length < 6 && (i = i[0] + i[0] + i[1] + i[1] + i[2] + i[2]), {//生成随机颜色
r: this.parseInt16(i.substring(0, 2)),
g: this.parseInt16(i.substring(2, 4)),
b: this.parseInt16(i.substring(4, 6))
}),
tick: 0,
totalTicks: n.ticks,
decay: n.decay,
random: Math.random() + 5,
tiltSin: 0,
tiltCos: 0,
wobbleX: 0,
wobbleY: 0
})
}
minBrowserRefreshTime(function drawRibbon() {
if(!fireCanvasBox) return ;
fireCanvasBox.draw(),
fireCanvasBox.restore(),
ribbon = ribbon.filter((e) => {
e.x += Math.cos(e.angle2D) * e.velocity,
e.y += Math.sin(e.angle2D) * e.velocity + 5 * e.depth,
e.wobble += .1,
e.velocity *= e.decay,
e.tiltAngle += .02 * Math.random() + .12,
e.tiltSin = Math.sin(e.tiltAngle),
e.tiltCos = Math.cos(e.tiltAngle),
e.random = Math.random() + 4,
e.wobbleX = e.x + 10 * Math.cos(e.wobble) * e.depth,
e.wobbleY = e.y + 10 * Math.sin(e.wobble) * e.depth;
// 开始画图
fireCanvasBox.fillStyle="rgba(" + e.color.r + ", " + e.color.g + ", " + e.color.b + ", " + (1 - (e.tick++) / e.totalTicks) + ")",
fireCanvasBox.beginPath(),
fireCanvasBox.moveTo(Math.floor(e.x),Math.floor(e.y)),
fireCanvasBox.lineTo(Math.floor(e.wobbleX),Math.floor(e.y + e.random * e.tiltSin)),
fireCanvasBox.lineTo(Math.floor(e.wobbleX + e.random * e.tiltCos),Math.floor(e.wobbleY + e.random * e.tiltSin)),
fireCanvasBox.lineTo(Math.floor(e.x + e.random * e.tiltCos),Math.floor(e.wobbleY)),
fireCanvasBox.closePath(),
fireCanvasBox.fill();
return e.tick < e.totalTicks
})
ribbon.length ? minBrowserRefreshTime(drawRibbon): fireCanvasBox = null;//轮询调用或者释放掉
}
)
}
},
}
</script>
<style>
.fire-canvas{
position: fixed;
top: 0px;
left: 0px;
pointer-events: none;
z-index: 99999999;
}
</style>
......@@ -10,7 +10,7 @@
<!-- 加载中图 -->
<view v-else-if="!loading_complete" class="loading">
<image v-if="loadingIngImg == 'two-balls'" class="loading_img" :src="require('./loading_two_balls.gif')" mode="aspectFit"></image>
<view v-if="loadingIngImg == 'oblique-light'" class="loading_oblique_light"></view>
<view v-if="loadingIngImg == 'looming'" class="loading_looming"></view>
</view>
......@@ -49,10 +49,11 @@
default: false,
},
//可选: 加载失败图片:可以本地url、网络url、base64 (与src一致)
// 可选: 加载失败图片:可以本地url、网络url、base64 (与src一致)
loadingErrorImg: {
type: String,
default: require('./loading_error.png'),
},
// 可选: 加载中的图片
......
This source diff could not be displayed because it is too large. You can view the blob instead.
/* eslint-disable */
var provinceData = [{
"label": "北京市",
"value": "11"
},
{
"label": "天津市",
"value": "12"
},
{
"label": "河北省",
"value": "13"
},
{
"label": "山西省",
"value": "14"
},
{
"label": "内蒙古自治区",
"value": "15"
},
{
"label": "辽宁省",
"value": "21"
},
{
"label": "吉林省",
"value": "22"
},
{
"label": "黑龙江省",
"value": "23"
},
{
"label": "上海市",
"value": "31"
},
{
"label": "江苏省",
"value": "32"
},
{
"label": "浙江省",
"value": "33"
},
{
"label": "安徽省",
"value": "34"
},
{
"label": "福建省",
"value": "35"
},
{
"label": "江西省",
"value": "36"
},
{
"label": "山东省",
"value": "37"
},
{
"label": "河南省",
"value": "41"
},
{
"label": "湖北省",
"value": "42"
},
{
"label": "湖南省",
"value": "43"
},
{
"label": "广东省",
"value": "44"
},
{
"label": "广西壮族自治区",
"value": "45"
},
{
"label": "海南省",
"value": "46"
},
{
"label": "重庆市",
"value": "50"
},
{
"label": "四川省",
"value": "51"
},
{
"label": "贵州省",
"value": "52"
},
{
"label": "云南省",
"value": "53"
},
{
"label": "西藏自治区",
"value": "54"
},
{
"label": "陕西省",
"value": "61"
},
{
"label": "甘肃省",
"value": "62"
},
{
"label": "青海省",
"value": "63"
},
{
"label": "宁夏回族自治区",
"value": "64"
},
{
"label": "新疆维吾尔自治区",
"value": "65"
},
{
"label": "台湾",
"value": "66"
},
{
"label": "香港",
"value": "67"
},
{
"label": "澳门",
"value": "68"
}
]
export default provinceData;
<template>
<div class="mpvue-picker">
<div :class="{'pickerMask':showPicker}" @click="maskClick" catchtouchmove="true"></div>
<div class="mpvue-picker-content " :class="{'mpvue-picker-view-show':showPicker}">
<div class="mpvue-picker__hd" catchtouchmove="true">
<div class="mpvue-picker__action" @click="pickerCancel">取消</div>
<div class="mpvue-picker__action" :style="{color:themeColor}" @click="pickerConfirm">确定</div>
</div>
<picker-view indicator-style="height: 40px;" class="mpvue-picker-view" :value="pickerValue" @change="pickerChange">
<block>
<picker-view-column>
<div class="picker-item" v-for="(item,index) in provinceDataList" :key="index">{{item.label}}</div>
</picker-view-column>
<picker-view-column>
<div class="picker-item" v-for="(item,index) in cityDataList" :key="index">{{item.label}}</div>
</picker-view-column>
<picker-view-column>
<div class="picker-item" v-for="(item,index) in areaDataList" :key="index">{{item.label}}</div>
</picker-view-column>
</block>
</picker-view>
</div>
</div>
</template>
<script>
import provinceData from './city-data/province.js';
import cityData from './city-data/city.js';
import areaData from './city-data/area.js';
export default {
data() {
return {
pickerValue: [0, 0, 0],
provinceDataList: [],
cityDataList: [],
areaDataList: [],
/*是否显示控件 */
showPicker: false,
};
},
created() {
this.init()
},
props: {
/* 默认值 */
pickerValueDefault: {
type: Array,
default(){
return [0, 0, 0]
}
},
/* 主题色 */
themeColor: String
},
watch:{
pickerValueDefault(){
this.init();
}
},
methods: {
init() {
this.handPickValueDefault(); // 对 pickerValueDefault 做兼容处理
this.provinceDataList = provinceData;
this.cityDataList = cityData[this.pickerValueDefault[0]];
this.areaDataList = areaData[this.pickerValueDefault[0]][this.pickerValueDefault[1]];
this.pickerValue = this.pickerValueDefault;
},
show() {
setTimeout(() => {
this.showPicker = true;
}, 0);
},
maskClick() {
this.pickerCancel();
},
pickerCancel() {
this.showPicker = false;
this._$emit('onCancel');
},
pickerConfirm(e) {
this.showPicker = false;
this._$emit('onConfirm');
},
showPickerView() {
this.showPicker = true;
},
handPickValueDefault() {
if (this.pickerValueDefault !== [0, 0, 0]) {
if (this.pickerValueDefault[0] > provinceData.length - 1) {
this.pickerValueDefault[0] = provinceData.length - 1;
}
if (this.pickerValueDefault[1] > cityData[this.pickerValueDefault[0]].length - 1) {
this.pickerValueDefault[1] = cityData[this.pickerValueDefault[0]].length - 1;
}
if (this.pickerValueDefault[2] > areaData[this.pickerValueDefault[0]][this.pickerValueDefault[1]].length - 1) {
this.pickerValueDefault[2] = areaData[this.pickerValueDefault[0]][this.pickerValueDefault[1]].length - 1;
}
}
},
pickerChange(e) {
let changePickerValue = e.mp.detail.value;
if (this.pickerValue[0] !== changePickerValue[0]) {
// 第一级发生滚动
this.cityDataList = cityData[changePickerValue[0]];
this.areaDataList = areaData[changePickerValue[0]][0];
changePickerValue[1] = 0;
changePickerValue[2] = 0;
} else if (this.pickerValue[1] !== changePickerValue[1]) {
// 第二级滚动
this.areaDataList =
areaData[changePickerValue[0]][changePickerValue[1]];
changePickerValue[2] = 0;
}
this.pickerValue = changePickerValue;
this._$emit('onChange');
},
_$emit(emitName) {
let pickObj = {
label: this._getLabel(),
value: this.pickerValue,
cityCode: this._getCityCode()
};
this.$emit(emitName, pickObj);
},
_getLabel() {
let pcikerLabel =
this.provinceDataList[this.pickerValue[0]].label +
'-' +
this.cityDataList[this.pickerValue[1]].label +
'-' +
this.areaDataList[this.pickerValue[2]].label;
return pcikerLabel;
},
_getCityCode() {
return this.areaDataList[this.pickerValue[2]].value;
}
}
};
</script>
<style>
.pickerMask {
position: fixed;
z-index: 1000;
top: 0;
right: 0;
left: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.6);
}
.mpvue-picker-content {
position: fixed;
bottom: 0;
left: 0;
width: 100%;
transition: all 0.3s ease;
transform: translateY(100%);
z-index: 3000;
}
.mpvue-picker-view-show {
transform: translateY(0);
}
.mpvue-picker__hd {
display: flex;
padding: 9px 15px;
background-color: #fff;
position: relative;
text-align: center;
font-size: 17px;
}
.mpvue-picker__hd:after {
content: ' ';
position: absolute;
left: 0;
bottom: 0;
right: 0;
height: 1px;
border-bottom: 1px solid #e5e5e5;
color: #e5e5e5;
transform-origin: 0 100%;
transform: scaleY(0.5);
}
.mpvue-picker__action {
display: block;
flex: 1;
color: #1aad19;
}
.mpvue-picker__action:first-child {
text-align: left;
color: #888;
}
.mpvue-picker__action:last-child {
text-align: right;
}
.picker-item {
text-align: center;
line-height: 40px;
text-overflow: ellipsis;
white-space: nowrap;
font-size: 16px;
}
.mpvue-picker-view {
position: relative;
bottom: 0;
left: 0;
width: 100%;
height: 238px;
background-color: rgba(255, 255, 255, 1);
}
</style>
......@@ -28,13 +28,13 @@
"navigationStyle": "custom" //禁用uni-app默认的头部导航
}
},
{
{
"path": "pages/index/index_order",
"style": {
"navigationBarTitleText": "",
"navigationStyle": "custom" //禁用uni-app默认的头部导航
}
}
}
],
"globalStyle": {
"navigationBarTextStyle": "#ffffff",
......
<template>
<!-- 相框 -->
<view class="content" style="width: 100%; height: 100%; position: relative;">
<refresh @interrupt="interrupt" @pushToInterrupt="pushToInterrupt" @finished="finished" @scrolltolower="g" :scrollHeight="windowHeight">
<template slot="top">
<view style="color: #FFFFFF;position: absolute; top: 0;width: 100%; text-align: center;"
:style="'height:' + 40 + 'px; line-height:' + 40 + 'px;'">{{tip}}</view>
</template>
<template slot="content">
<view style="width:100%; margin: auto; height:calc(90% - 160upx); overflow: hidden;">
<view style="float: left; width: calc(100% / 3); margin: 40upx 0 0;" v-for="(item, index) in datalist" :key="index" @click="Worksdetail(item)">
<view style="width: 148.5upx; height: 204.6upx;margin: auto; position: relative;">
<view v-if="item.name == '清除'">
<image style="width: 148.5upx; height: 148.5upx;margin: auto;"
src="../../../static/icon/diy_icon_remove_normal.png" mode=""></image>
</view>
<view v-else :style="{'mask-image':' url(' + item.image + '?x-oss-process=image/resize,lfit,w_112)','-webkit-mask-image':' url(' + item.image + '?x-oss-process=image/resize,lfit,w_112)',}"
style="width: 100%; height: 100%; overflow: hidden; mask-size: 80%; -webkit-mask-size: 80%;mask-repeat:no-repeat;-webkit-mask-repeat: no-repeat;">
<image style="width: 148.5upx; height: 204.6upx; margin: auto;" :src="item.compose_image + '?x-oss-process=image/resize,lfit,w_112'"
mode="aspectFill"></image>
</view>
<!-- <view v-if="Number(item.sales_price) > 0" style="min-width: 39upx; position: absolute; top: 0; right: 0;
background: #EF5354; border-radius: 8upx 0upx 11upx 8upx; text-align: center; padding: 2upx 8upx;
font-size: 18upx; font-weight: bold; color: #FFFFFF;">{{item.sales_price}}</view> -->
</view>
</view>
<view class="align-center" style="position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);"
v-if="datalist.length == 0">
<span class="iconfont icon-wushuju" style="font-size: 100upx; text-align: center; color: #B2B2B2;"></span>
<view style="color: #B2B2B2; text-align: center; line-height: 50upx;font-size: 24upx;">啊嘞,还是一片荒漠</view>
</view>
</view>
</template>
<template slot="bottom">
<view>
没有更多数据了
</view>
</template>
</refresh>
</view>
</template>
<script>
import homeservice from '@/service/homeservice.js';
import refresh from '@/components/xing-refresh/xing-refresh.vue';
export default {
props: {
windowHeight: {
type: Number,
default: 563
}
},
components: {
refresh
},
data() {
return {
queryPage: {
s: 'Material.getShapeList',
page: 1,
per_page: 50,
shape_category_id: null, //分类
goods_category_id:null,//星形接口列表增加,产品分类参数
total: 0,
machine_id: null, //设备id
},
datalist: [], //作品、贴图列表
Material_category:[] ,//贴图分类
currentId: 0,/* 控制被选中 */
currentIndex:null,/* 控制位置 */
tip: ''
};
},
mounted() {
// this.getShapeList()
},
/**
* 组件的公有方法列表
*/
methods: {
Worksdetail(item){
console.log(item)
this.$emit('Worksdetail',item)
},
g(e){
uni.showLoading({
title: '正在加载中...'
})
homeservice.WorksList(this.queryPage).then(result => {
this.datalist = this.datalist.concat(result.data)
this.queryPage.page += 1;
if (Math.ceil(result.total / result.per_page) <= this.queryPage.page) {
return setTimeout(() => {
uni.showToast({title: '没有更多数据了!',icon: 'none'});
}, 500);
}
uni.hideLoading();
}).catch(err => {
uni.showToast({title: err.msg,icon: 'none'})
uni.hideLoading();
});
},
interrupt(e) {
this.tip = '刷新中'
//模拟发送请求
setTimeout(e, 500);
this.tip = '刷新成功';
this.queryPage.page = 1
this.getShapeList()
},
pushToInterrupt() {
this.tip = '释放刷新';
},
finished() {
this.tip = '下拉刷新';
},
open(queryPage) {
this.queryPage = {
page:queryPage.page,
per_page:queryPage.per_page,
s:queryPage.s,
shape_category_id:queryPage.shape_category_id,
goods_category_id:queryPage.goods_category_id,
machine_id: queryPage.machine_id, //设备id
}
this.getShapeList()
},
// 模板形状列表
getShapeList(){
console.log(this.windowHeight)
this.datalist = []
uni.showLoading({title: '正在加载中...'})
homeservice.WorksList(this.queryPage).then(result => {
this.datalist = result.data
// this.datalist.unshift(
// {
// compose_image: "../../static/icon/diy_icon_remove_normal.png",
// id: null,
// image: "",
// name: "清除",
// sales_price: null,
// shape_category_id: null,
// }
// )
this.queryPage.page += 1;
uni.hideLoading();
this.tip = '';
}).catch(err => {
uni.showToast({title: err.msg,icon: 'none'})
uni.hideLoading();
});
}
}
}
</script>
<style lang="scss">
</style>
<template>
<view>
<view style="width:630upx; margin:auto; display: flex; flex-direction: column;">
<view style="width:100%; min-height: 741upx; background: #282932; border-radius: 10upx; position: relative;">
<view @click="cancel()" style="position: absolute; top: 0upx; right: 0upx;">
<image src="../../static/mine/icon_guanbi.png" mode=""
style="height: 23upx; width: 23upx; padding: 21upx 33upx;"></image>
</view>
<!-- 品牌 -->
<view v-if="sizelist.length == 0">
<view style="margin:46upx auto 52upx;font-size: 36upx; color: #FFFFFF; text-align: center;">
请选择定制手机壳品牌
</view>
<!-- 无数据 -->
<view v-if="catrgoryList.length == null" style="text-align: center; color: #BEBEBE;">该设备没有库存</view>
<scroll-view scroll-y scroll-with-animation style="box-sizing: border-box;white-space: nowrap;
width: 288upx; margin:30upx auto; height: 600upx; overflow: hidden;">
<view v-for="(item,index) in catrgoryList" :key="index" @click="brandclick(item)"
:class="[brandtext == item.title ? 'brandactive':'' ]"
style="margin-bottom: 10upx; display: flex;align-items: center;
background: #373743;border-radius: 10upx;height: 90upx; line-height: 90upx; justify-content: center; overflow: hidden;">
<view style="width: 45%;">
<image :src="item.icon" mode="aspectFit" style="width: 30%; height: 60upx; margin-right: 26upx; float: right;"></image>
</view>
<view style="width: 55%;">
<view style="text-align: left; color: #FFFFFF; font-size: 28upx;" >{{item.title}} </view>
</view>
</view>
</scroll-view>
</view>
<!-- 机型 -->
<view v-if="sizelist.length > 0">
<view style="margin:46upx auto 52upx;font-size: 36upx; color: #FFFFFF; text-align: center;">
请选择手机壳型号
</view>
<scroll-view scroll-y scroll-with-animation style="box-sizing: border-box;white-space: nowrap;
width: calc(100% - 60upx); margin:30upx auto; height: 500upx; overflow: hidden;">
<view v-for="(item,index) in sizelist" :key="index" style="float: left; margin-bottom: 20upx;">
<view class="model" :class="[modeltext == item.title ? 'modelactive':'' ]" @click="modelclick(item)">{{item.title}} </view>
</view>
</scroll-view>
<view style="width:100%; display: flex; height: 100upx; align-items: center;border-radius:0 0 10upx 10upx; position: relative;z-index: 3; margin-bottom: 20upx;">
<view @click.stop="cancel_center()" style="width:50%;">
<view class="canbutton">返回</view>
</view>
<view @click.stop="changeChannel()" style="width:50%;">
<view class="experiencebutton" style="margin: auto;">
确定
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
import homeservice from '@/service/homeservice.js';
export default {
props: {
// sn: {
// type: Number
// }
},
components: {
},
data() {
return {
queryPage: {
s: 'Material.list',
},
long: null,
catrgoryList:null,
sizelist: [],
brandtext:null,
modeltext:null,
goods_id:null,
dict_id:null,
machine_id:null,
key:null,//1直营配送站 2 万能通用版 3色彩自助站
goods_id_e:null,
sn:null
};
},
mounted() {
},
/**
* 组件的公有方法列表
*/
methods: {
cancel(){
this.$emit('brandscenterclose')
},
open(options) {
this.catrgoryList = this.$base.productfind
//console.log(options)
if (options.machine_id != 'null') {
this.machine_id = options.machine_id;
this.key = options.key;
this.goods_id = options.goods_id;
this.sn = options.sn;
}
// 查询手机壳品牌
this.Customize_now()
},
brandclick(e){
this.brandtext = e.title
this.sizelist = e.sub
},
modelclick(e){
this.modeltext = e.title
this.goods_id = e.id
this.dict_id = e.dict_id
this.goods_id_e = e
},
// 手机壳品牌
Customize_now(){
homeservice.queryList({
s: 'product.find',
machine_id:this.machine_id,
key:this.key
}).then(result => {
this.catrgoryList = result[0].brand;
this.$base.productfind = result[0].brand
console.log(result)
}).catch(err => {
uni.showToast({title: err.msg,icon: 'none'});
});
this.sizelist = []
this.brandtext = null
this.modeltext = null
this.goods_id = null
this.dict_id = null
},
cancel_center(){
this.modeltext = null
this.goods_id = null
this.dict_id = null
this.sizelist = []
},
changeChannel(){
// 释放锁定库存
// homeservice.queryList({
// // s: 'Order.lockAttrStock',
// s: 'Order.newLockAttrStock',
// machine_id:this.machine_id, //设备id
// goods_id:null, //产品
// dict_id:null,//产品属性id
// old_sn:null,
// onlyClear:1
// }).then(result => {
// }).catch(err => {
// uni.showToast({title: err.msg || err.data,icon: 'none'});
// });
var loading = false
if (loading) return;
if (this.goods_id == null) {
uni.showToast({title: '请选择手机壳型号!',icon: 'none'});
return false;
}
loading = true
if (loading) {
// 有设备判断设备是否正常
if(this.machine_id != undefined && this.machine_id != null && this.machine_id != ''){
if(this.key == 2){
this.$emit('goodsbrands',{
sn:this.sn,
goods_id_e:this.goods_id_e
})
}else{
// 锁定库存
homeservice.queryList({
//s: 'Order.lockAttrStock',
s: 'Order.newLockAttrStock',
machine_id:this.machine_id, //设备id
goods_id:this.goods_id, //产品
dict_id:this.dict_id,//产品属性id
old_sn:this.sn
}).then(result => {
this.$base.lockInventory = result //锁库存储存信息
//console.log(result.sn)
this.sn = result.sn
uni.setStorage({
key: 'setgood',
data: {
sn:this.sn,
brandtext:this.brandtext,
modeltext: this.modeltext,
goods_id: this.goods_id
},
success: function () {
console.log('success');
}
});
this.$emit('goodsbrands',{
sn:this.sn,
goods_id_e:this.goods_id_e
})
}).catch(err => {
uni.showToast({title: err.msg || err.data,icon: 'none'});
});
}
}else{
this.$emit('goodsbrands',{
sn:this.sn,
goods_id_e:this.goods_id_e
})
}
}
}
},
onShow(options) {
},
}
</script>
<style lang="scss">
.experiencebutton{
width: 230upx; height: 70upx; line-height: 70upx; text-align: center; color: #FFFFFF;
margin:40upx auto 0; border-radius: 35upx; background: linear-gradient(to right,#834DC4,#1983D7);
font-size: 26upx;
}
.canbutton{
color: #FFFFFF;
font-size: 26upx;
width: 218upx;
height: 58upx;
line-height: 58upx;
border: 1px transparent solid;
border-radius: 30px;
position: relative;
margin: auto;
background: #292933;
text-align: center;
}
.canbutton:after{
content:'';
position: absolute;
top: -3px; bottom: -3px;
left: -3px; right: -3px;
background: linear-gradient(to right,#834DC4,#1983D7);
border-radius: 30px;
content: '';
z-index: -1;
}
// 品牌
.brandactive{
background: #141319 !important;
color: #FFFFFF !important;
}
// 型号
.model{
padding: 0upx 20upx;
height: 60upx;
line-height: 60upx;
background: #141319;
text-align: center;
color: #FFFFFF;
border-radius: 30upx;
margin-right: 20upx;
font-size: 28upx;
}
.modelactive{
color: #1A7DCD;
}
</style>
<template>
<view>
<view style="position: fixed;width: 100%" :style="{bottom: inputBottom+'px'}">
<view v-if="show && text != 'typeface'"
style="width: 100%; height: 95upx; display: flex; flex-direction: row; ">
......@@ -46,7 +45,7 @@
<text style="font-size: 20upx;">
<text style="font-size: 32upx;"
:style="{'color': data.itemList[data.cidx].font_dict_id == item.id ? '#F56364 !important' : '#ffffff'}">
色彩公园
{{replaceText(item.title)}}
</text>
<text v-if="item.remark != ''">
{{item.long == true ? '' : '(点击加载)'}}
......@@ -765,6 +764,15 @@
*/
methods: {
//替换文字
replaceText(textStr){
if(textStr.includes("-Regular")){
textStr = textStr.replace("-Regular","")
}
return textStr;
},
//过滤字符串
filterTextInput(textStr) {
let content = textStr.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5\.\,\?\<\>\。\,\-\—\=\;\@\!\!\+\$\%\*\(\)\#\&\*]/g, '');
......
<template>
<view>
<view style="width:630upx; margin:auto; display: flex; flex-direction: column;">
<view style="width:100%; min-height: 741upx; background: #282932; border-radius: 10upx; position: relative;">
<view @click="cancel()" style="position: absolute; top: 0upx; right: 0upx;">
<image src="../../static/mine/icon_guanbi.png" mode=""
style="height: 23upx; width: 23upx; padding: 21upx 33upx;"></image>
</view>
<!-- 品牌 -->
<view v-if="sizelist.length == 0">
<view style="margin:46upx auto 52upx;font-size: 36upx; color: #FFFFFF; text-align: center;">
请选择定制手机壳品牌
</view>
<!-- 无数据 -->
<view v-if="catrgoryList.length == null" style="text-align: center; color: #BEBEBE;">该设备没有库存</view>
<scroll-view scroll-y scroll-with-animation style="box-sizing: border-box;white-space: nowrap;
width: 288upx; margin:30upx auto; height: 600upx; overflow: hidden;">
<view v-for="(item,index) in catrgoryList" :key="index" @click="brandclick(item)"
:class="[brandtext == item.title ? 'brandactive':'' ]"
style="margin-bottom: 10upx; display: flex;align-items: center;
background: #373743;border-radius: 10upx;height: 90upx; line-height: 90upx; justify-content: center; overflow: hidden;">
<view style="width: 45%;">
<image :src="item.icon" mode="aspectFit" style="width: 30%; height: 60upx; margin-right: 26upx; float: right;"></image>
</view>
<view style="width: 55%;">
<view style="text-align: left; color: #FFFFFF; font-size: 28upx;" >{{item.title}} </view>
</view>
</view>
</scroll-view>
</view>
<!-- 机型 -->
<!-- <view v-if="sizelist.length > 0">
<view style="margin:46upx auto 52upx;font-size: 36upx; color: #FFFFFF; text-align: center;">
请选择手机壳型号
</view>
<scroll-view scroll-y scroll-with-animation style="box-sizing: border-box;white-space: nowrap;
width: calc(100% - 60upx); margin:30upx auto; height: 500upx; overflow: hidden;">
<view v-for="(item,index) in sizelist" :key="index" style="float: left; margin-bottom: 20upx;">
<view class="model" :class="[modeltext == item.title ? 'modelactive':'' ]" @click="modelclick(item)">{{item.title}} </view>
</view>
</scroll-view>
<view style="width:100%; display: flex; height: 100upx; align-items: center;border-radius:0 0 10upx 10upx; position: relative;z-index: 3; margin-bottom: 20upx;">
<view @click.stop="cancel_center()" style="width:50%;">
<view class="canbutton">返回</view>
</view>
<view @click.stop="changeChannel()" style="width:50%;">
<view class="experiencebutton" style="margin: auto;">
确定
</view>
</view>
</view>
</view> -->
</view>
</view>
</view>
</template>
<script>
import homeservice from '@/service/homeservice.js';
export default {
props: {
},
components: {
},
data() {
return {
queryPage: {
s: 'Material.list',
},
long: null,
catrgoryList:null,
sizelist: [],
brandtext:null,
modeltext:null,
goods_id:null,
dict_id:null,
key:null,//1直营配送站 2 万能通用版 3色彩自助站
machine_id:null,
goods_id_e:null,
};
},
mounted() {
},
/**
* 组件的公有方法列表
*/
methods: {
cancel(){
this.$emit('brandscenterclose')
},
open(options) {
this.catrgoryList = this.$base.productfind
console.log(options)
if (options.machine_id != 'null') {
this.machine_id = options.machine_id;
this.goods_id = options.goods_id;
this.Customize_now()// 随机壁纸
}
},
brandclick(e){
this.brandtext = e.title
this.sizelist = e.sub
},
//随机壁纸
Customize_now(){
homeservice.queryList({
s: 'Material.randomMaterial',
machine_id:this.machine_id,
goods_id:this.goods_id
}).then(result => {
}).catch(err => {
uni.showToast({title: err.msg,icon: 'none'});
});
//查询颜色列表
homeservice.queryList({
s: 'Material.colorList',
page:1,
per_page:20,
}).then(result => {
console.log(result)
}).catch(err => {
uni.showToast({title: err.msg,icon: 'none'});
});
//查询分类
homeservice.queryList({
s: 'Material.category',
machine_id:this.machine_id,
key:0
}).then(result => {
console.log(result)
}).catch(err => {
uni.showToast({title: err.msg,icon: 'none'});
});
//查询分类下系列
homeservice.queryList({
s: 'Material.seriesList',
category_id:33,
}).then(result => {
console.log(result)
}).catch(err => {
uni.showToast({title: err.msg,icon: 'none'});
});
//查询分类下面列表
homeservice.queryList({
s: 'Material.list',
machine_id:this.machine_id,//设备id
material_category_id:0, //一级分类
material_series_id:0,//二级分类
is_new:1,//最新
is_hot:1,//热门
is_recommend:1,//推荐
is_under:0, //贴图是否为背景图
partner_id:14,
goods_id:24, //商品id
page:1,//分页
per_page:20,//分页
}).then(result => {
console.log(result)
}).catch(err => {
uni.showToast({title: err.msg,icon: 'none'});
});
}
},
onShow(options) {
},
}
</script>
<style lang="scss">
.experiencebutton{
width: 230upx; height: 70upx; line-height: 70upx; text-align: center; color: #FFFFFF;
margin:40upx auto 0; border-radius: 35upx; background: linear-gradient(to right,#834DC4,#1983D7);
font-size: 26upx;
}
.canbutton{
color: #FFFFFF;
font-size: 26upx;
width: 218upx;
height: 58upx;
line-height: 58upx;
border: 1px transparent solid;
border-radius: 30px;
position: relative;
margin: auto;
background: #292933;
text-align: center;
}
.canbutton:after{
content:'';
position: absolute;
top: -3px; bottom: -3px;
left: -3px; right: -3px;
background: linear-gradient(to right,#834DC4,#1983D7);
border-radius: 30px;
content: '';
z-index: -1;
}
//品牌
.brandactive{
background: #141319 !important;
color: #FFFFFF !important;
}
//型号
.model{
padding: 0upx 20upx;
height: 60upx;
line-height: 60upx;
background: #141319;
text-align: center;
color: #FFFFFF;
border-radius: 30upx;
margin-right: 20upx;
font-size: 28upx;
}
.modelactive{
color: #1A7DCD;
}
</style>
......@@ -382,7 +382,6 @@
import kpsImageCutter from "@/components/ksp-image-cutter/ksp-image-cutter.vue"; // 截取图片
import ProgressBar from '@/components/Progress-Bar/Progress-Bar.vue'; // 上传图片进度条
import scrollList from './components/scrollView.vue'; // 贴图
import shapeScrollView from './components/shapeScrollView.vue'; // 相框
import textsettings from './components/textsettings.vue'; // 文本弹框
import uniPopup from './common/uni-popup/uni-popup.vue';
import myhead from './head/head.vue'; // 页眉
......@@ -3196,10 +3195,7 @@
this.queryPage.shape_category_id = item.id
this.currentId = index;
this.currentIndex = Math.max(0, index - 1);
this.$nextTick(() => {
this.$refs['shapeScrollView'].open(this
.queryPage)
})
} else if (this.e_active == 23) { //壁纸
this.currentId_wallpaper = index;
this.currentIndex_wallpaper = Math.max(0, index - 1);
......@@ -3393,27 +3389,7 @@
bg_text_color: this.bg_text_color
})
})
} else if (e == 22) { //形状
this.queryPage.goods_id = this.data.goods_id
this.brands = this.Works_category
this.currentId = this.currentId_Works;
this.currentIndex = this.currentIndex_Works;
this.queryPage.s = 'Material.getShapeList'
this.queryPage.material_category_id = null
this.queryPage.works_category_id = null
this.queryPage.shape_category_id = null
this.queryPage.is_hot = null
this.queryPage.is_new = null
this.queryPage.shape_category_id = this.Works_category[0]
.id
if (this.Works_category_id) {
this.queryPage.shape_category_id = this
.Works_category_id
}
this.$nextTick(() => {
this.$refs['shapeScrollView'].open(this
.queryPage)
})
} else if (e == 23) { //壁纸
this.Adlists = this.diy_backList
//this.queryPage.goods_id = null
......
<template>
<view class="content" style="width: 100%; height: 100%; position: relative;">
<view class="content" style="width: 100%; height: 100%; position: relative; margin-top: 100upx;">
<refresh @interrupt="interrupt" @pushToInterrupt="pushToInterrupt" @finished="finished" @scrolltolower="g" :scrollHeight="windowHeight">
<template slot="top">
<view style="color: #FFFFFF;position: absolute; top: 0;width: 100%; text-align: center;"
......
......@@ -41,7 +41,7 @@
<text style="font-size: 20upx;" >
<text style="font-size: 32upx;"
:style="{'color': data.itemList[data.cidx].font_dict_id == item.id ? '#F56364 !important' : '#ffffff'}">
色彩公园
{{replaceText(item.title)}}
</text>
<!-- <text v-if="item.remark != ''">
{{item.long ? '' : '(下载该字体)'}}
......@@ -753,6 +753,14 @@
*/
methods: {
//替换文字
replaceText(textStr){
if(textStr.includes("-Regular")){
textStr = textStr.replace("-Regular","")
}
return textStr;
},
//过滤字符串
filterTextInput(textStr) {
......
......@@ -33,28 +33,47 @@
mode="aspectFit"></image>
</view>
<view style="width: 100% ; margin-top: -40upx;">
<view v-if="designer.status.value == 1">
<view style="text-align: left; font-size: 29upx; color: #F29F3D ; line-height: 80upx;font-weight: 600;">
打印中
</view>
</view>
<view v-else>
<view style="text-align: left; font-size: 30upx; color: #333; line-height: 80upx;font-weight: 600; margin-top: 20upx;">
排队中
{{designer.id || ''}}
</view>
</view>
<view style="font-size: 29upx; color: #333333; margin-top: 20upx; font-weight: 600;">
{{ designer.customize_size_id == 0 ? designer.goods_name || '' : ''}}
{{designer.goods_specs || ''}}
</view>
</view>
<view style="width: 90%;font-size: 28upx; margin-top: 70upx; font-weight: 550; text-align: right; font-size: 36upx; color: #333; margin-right: 30upx;">
{{designer.id || ''}}
<view v-if="designer.status.value == 1" style="width: 90%;font-size: 28upx; margin-top: 20upx;
font-size: 36upx; margin-right: 30upx;">
<view style="width: 136upx; height: 60upx;background: #F29F3D;opacity: 0.86;border-radius: 30px; float: right; ">
<view style="text-align: center; font-size: 26upx; color: #FFFFFF; line-height: 60upx;"> 打印中
</view>
</view>
</view>
<view v-else style="width: 90%;font-size: 28upx; margin-top: 20upx; text-align: right; font-size: 26upx; color: #F29F3D; margin-right: 30upx;">
排队中
</view>
</view>
</view>
</view>
<!-- <view v-if="designer.status.value == 1">
<view style="text-align: left; font-size: 29upx; color: #F29F3D ; line-height: 80upx;font-weight: 600;">
打印中
</view>
</view>
<view v-else>
<view style="text-align: left; font-size: 30upx; color: #333; line-height: 80upx;font-weight: 600; margin-top: 20upx;">
排队中
</view>
</view>
<view style="width: 90%;font-size: 28upx; margin-top: 70upx; font-weight: 550; text-align: right; font-size: 36upx; color: #333; margin-right: 30upx;">
{{designer.id || ''}}
</view> -->
<!-- 提示 -->
<view v-if="sighstate && designer != null">
<view
......@@ -79,11 +98,11 @@
<view v-if="designer.user_id == userId " @click="toOrderDetail(designer)" style="width: 135upx; height: 50upx;background: #F29F3D ;
border-radius: 40upx;
color: #FFFFFF;
margin:10upx auto;
margin:20upx auto;
text-align: center;
padding:auto;
padding-top: 20upx;
margin-top: 15upx;">查看详情</view>
margin-top: 25upx;">查看详情</view>
</view>
</view>
</view>
......
static/delete-active.png

450 Bytes | W: | H:

static/delete-active.png

342 Bytes | W: | H:

static/delete-active.png
static/delete-active.png
static/delete-active.png
static/delete-active.png
  • 2-up
  • Swipe
  • Onion skin
static/delete.png

411 Bytes | W: | H:

static/delete.png

281 Bytes | W: | H:

static/delete.png
static/delete.png
static/delete.png
static/delete.png
  • 2-up
  • Swipe
  • Onion skin
static/diy_icon_middle_default.png

2.52 KB | W: | H:

static/diy_icon_middle_default.png

829 Bytes | W: | H:

static/diy_icon_middle_default.png
static/diy_icon_middle_default.png
static/diy_icon_middle_default.png
static/diy_icon_middle_default.png
  • 2-up
  • Swipe
  • Onion skin
static/diy_icon_replace_default.png

2.51 KB | W: | H:

static/diy_icon_replace_default.png

855 Bytes | W: | H:

static/diy_icon_replace_default.png
static/diy_icon_replace_default.png
static/diy_icon_replace_default.png
static/diy_icon_replace_default.png
  • 2-up
  • Swipe
  • Onion skin
static/icon_back_enabled.png

3.79 KB | W: | H:

static/icon_back_enabled.png

1.6 KB | W: | H:

static/icon_back_enabled.png
static/icon_back_enabled.png
static/icon_back_enabled.png
static/icon_back_enabled.png
  • 2-up
  • Swipe
  • Onion skin
static/icon_banner_dot.png

290 Bytes | W: | H:

static/icon_banner_dot.png

182 Bytes | W: | H:

static/icon_banner_dot.png
static/icon_banner_dot.png
static/icon_banner_dot.png
static/icon_banner_dot.png
  • 2-up
  • Swipe
  • Onion skin
static/icon_banner_select_dot.png

314 Bytes | W: | H:

static/icon_banner_select_dot.png

226 Bytes | W: | H:

static/icon_banner_select_dot.png
static/icon_banner_select_dot.png
static/icon_banner_select_dot.png
static/icon_banner_select_dot.png
  • 2-up
  • Swipe
  • Onion skin
static/icon_close.png

7.64 KB | W: | H:

static/icon_close.png

2.3 KB | W: | H:

static/icon_close.png
static/icon_close.png
static/icon_close.png
static/icon_close.png
  • 2-up
  • Swipe
  • Onion skin
static/icon_diy.png

10 KB | W: | H:

static/icon_diy.png

9.9 KB | W: | H:

static/icon_diy.png
static/icon_diy.png
static/icon_diy.png
static/icon_diy.png
  • 2-up
  • Swipe
  • Onion skin
static/icon_diy_ai.png

205 Bytes | W: | H:

static/icon_diy_ai.png

758 Bytes | W: | H:

static/icon_diy_ai.png
static/icon_diy_ai.png
static/icon_diy_ai.png
static/icon_diy_ai.png
  • 2-up
  • Swipe
  • Onion skin
static/icon_diy_enhance_style.png

10.9 KB | W: | H:

static/icon_diy_enhance_style.png

8.7 KB | W: | H:

static/icon_diy_enhance_style.png
static/icon_diy_enhance_style.png
static/icon_diy_enhance_style.png
static/icon_diy_enhance_style.png
  • 2-up
  • Swipe
  • Onion skin
static/icon_diy_matting_style.png

11.4 KB | W: | H:

static/icon_diy_matting_style.png

7.48 KB | W: | H:

static/icon_diy_matting_style.png
static/icon_diy_matting_style.png
static/icon_diy_matting_style.png
static/icon_diy_matting_style.png
  • 2-up
  • Swipe
  • Onion skin
static/icon_diy_no_print.png

3.67 KB | W: | H:

static/icon_diy_no_print.png

1.87 KB | W: | H:

static/icon_diy_no_print.png
static/icon_diy_no_print.png
static/icon_diy_no_print.png
static/icon_diy_no_print.png
  • 2-up
  • Swipe
  • Onion skin
static/icon_diy_no_select.png

3.54 KB | W: | H:

static/icon_diy_no_select.png

1.84 KB | W: | H:

static/icon_diy_no_select.png
static/icon_diy_no_select.png
static/icon_diy_no_select.png
static/icon_diy_no_select.png
  • 2-up
  • Swipe
  • Onion skin
static/icon_diy_print.png

1.17 KB | W: | H:

static/icon_diy_print.png

1.04 KB | W: | H:

static/icon_diy_print.png
static/icon_diy_print.png
static/icon_diy_print.png
static/icon_diy_print.png
  • 2-up
  • Swipe
  • Onion skin
static/icon_guanbi.png

1.39 KB | W: | H:

static/icon_guanbi.png

409 Bytes | W: | H:

static/icon_guanbi.png
static/icon_guanbi.png
static/icon_guanbi.png
static/icon_guanbi.png
  • 2-up
  • Swipe
  • Onion skin
static/icon_guaqi.png

16.8 KB | W: | H:

static/icon_guaqi.png

5.13 KB | W: | H:

static/icon_guaqi.png
static/icon_guaqi.png
static/icon_guaqi.png
static/icon_guaqi.png
  • 2-up
  • Swipe
  • Onion skin
static/icon_home_good_back.png

12.2 KB | W: | H:

static/icon_home_good_back.png

2.67 KB | W: | H:

static/icon_home_good_back.png
static/icon_home_good_back.png
static/icon_home_good_back.png
static/icon_home_good_back.png
  • 2-up
  • Swipe
  • Onion skin
static/icon_line_frame.png

975 Bytes | W: | H:

static/icon_line_frame.png

212 Bytes | W: | H:

static/icon_line_frame.png
static/icon_line_frame.png
static/icon_line_frame.png
static/icon_line_frame.png
  • 2-up
  • Swipe
  • Onion skin
static/icon_make_diy_back_color.png

2.47 KB | W: | H:

static/icon_make_diy_back_color.png

975 Bytes | W: | H:

static/icon_make_diy_back_color.png
static/icon_make_diy_back_color.png
static/icon_make_diy_back_color.png
static/icon_make_diy_back_color.png
  • 2-up
  • Swipe
  • Onion skin
static/icon_make_diy_radio.png

1.27 KB | W: | H:

static/icon_make_diy_radio.png

279 Bytes | W: | H:

static/icon_make_diy_radio.png
static/icon_make_diy_radio.png
static/icon_make_diy_radio.png
static/icon_make_diy_radio.png
  • 2-up
  • Swipe
  • Onion skin
static/icon_nextstep.png

3.73 KB | W: | H:

static/icon_nextstep.png

2.06 KB | W: | H:

static/icon_nextstep.png
static/icon_nextstep.png
static/icon_nextstep.png
static/icon_nextstep.png
  • 2-up
  • Swipe
  • Onion skin
static/icon_saoyisao.png

756 Bytes | W: | H:

static/icon_saoyisao.png

366 Bytes | W: | H:

static/icon_saoyisao.png
static/icon_saoyisao.png
static/icon_saoyisao.png
static/icon_saoyisao.png
  • 2-up
  • Swipe
  • Onion skin
static/icon_tuya.png

2.45 KB | W: | H:

static/icon_tuya.png

910 Bytes | W: | H:

static/icon_tuya.png
static/icon_tuya.png
static/icon_tuya.png
static/icon_tuya.png
  • 2-up
  • Swipe
  • Onion skin
static/icon_update_xy_image.png

793 Bytes | W: | H:

static/icon_update_xy_image.png

529 Bytes | W: | H:

static/icon_update_xy_image.png
static/icon_update_xy_image.png
static/icon_update_xy_image.png
static/icon_update_xy_image.png
  • 2-up
  • Swipe
  • Onion skin
static/icon_wechat.png

953 Bytes | W: | H:

static/icon_wechat.png

562 Bytes | W: | H:

static/icon_wechat.png
static/icon_wechat.png
static/icon_wechat.png
static/icon_wechat.png
  • 2-up
  • Swipe
  • Onion skin
static/icon_work_change_shap.png

6.56 KB | W: | H:

static/icon_work_change_shap.png

2.47 KB | W: | H:

static/icon_work_change_shap.png
static/icon_work_change_shap.png
static/icon_work_change_shap.png
static/icon_work_change_shap.png
  • 2-up
  • Swipe
  • Onion skin
......@@ -4,7 +4,7 @@
url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'),
url('iconfont.woff?t=1604382534615') format('woff'),
url('iconfont.ttf?t=1604382534615') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */
url('iconfont.svg?t=1604382534615#iconfont') format('svg'); /* iOS 4.1- */
/*url('iconfont.svg?t=1604382534615#iconfont') format('svg'); /* iOS 4.1- */
}
.iconfont {
......
static/image/icon_left_center_image.png

737 Bytes | W: | H:

static/image/icon_left_center_image.png

364 Bytes | W: | H:

static/image/icon_left_center_image.png
static/image/icon_left_center_image.png
static/image/icon_left_center_image.png
static/image/icon_left_center_image.png
  • 2-up
  • Swipe
  • Onion skin
static/image/icon_left_right_alignment.png

1.72 KB | W: | H:

static/image/icon_left_right_alignment.png

784 Bytes | W: | H:

static/image/icon_left_right_alignment.png
static/image/icon_left_right_alignment.png
static/image/icon_left_right_alignment.png
static/image/icon_left_right_alignment.png
  • 2-up
  • Swipe
  • Onion skin
static/image/icon_new_default.png

2.09 KB | W: | H:

static/image/icon_new_default.png

1.08 KB | W: | H:

static/image/icon_new_default.png
static/image/icon_new_default.png
static/image/icon_new_default.png
static/image/icon_new_default.png
  • 2-up
  • Swipe
  • Onion skin
static/image/icon_new_pressed.png

2.26 KB | W: | H:

static/image/icon_new_pressed.png

757 Bytes | W: | H:

static/image/icon_new_pressed.png
static/image/icon_new_pressed.png
static/image/icon_new_pressed.png
static/image/icon_new_pressed.png
  • 2-up
  • Swipe
  • Onion skin
static/image/icon_right_center_image.png

729 Bytes | W: | H:

static/image/icon_right_center_image.png

381 Bytes | W: | H:

static/image/icon_right_center_image.png
static/image/icon_right_center_image.png
static/image/icon_right_center_image.png
static/image/icon_right_center_image.png
  • 2-up
  • Swipe
  • Onion skin
static/image/icon_top_left_image.png

594 Bytes | W: | H:

static/image/icon_top_left_image.png

350 Bytes | W: | H:

static/image/icon_top_left_image.png
static/image/icon_top_left_image.png
static/image/icon_top_left_image.png
static/image/icon_top_left_image.png
  • 2-up
  • Swipe
  • Onion skin
static/image/icon_top_right_image.png

636 Bytes | W: | H:

static/image/icon_top_right_image.png

352 Bytes | W: | H:

static/image/icon_top_right_image.png
static/image/icon_top_right_image.png
static/image/icon_top_right_image.png
static/image/icon_top_right_image.png
  • 2-up
  • Swipe
  • Onion skin
static/image/my-o.png

12.6 KB | W: | H:

static/image/my-o.png

3.79 KB | W: | H:

static/image/my-o.png
static/image/my-o.png
static/image/my-o.png
static/image/my-o.png
  • 2-up
  • Swipe
  • Onion skin
static/image/my.png

9.79 KB | W: | H:

static/image/my.png

4.84 KB | W: | H:

static/image/my.png
static/image/my.png
static/image/my.png
static/image/my.png
  • 2-up
  • Swipe
  • Onion skin
static/image/remind_picture.png

40.9 KB | W: | H:

static/image/remind_picture.png

9.77 KB | W: | H:

static/image/remind_picture.png
static/image/remind_picture.png
static/image/remind_picture.png
static/image/remind_picture.png
  • 2-up
  • Swipe
  • Onion skin
static/item_good_frame.png

3.21 KB | W: | H:

static/item_good_frame.png

1.68 KB | W: | H:

static/item_good_frame.png
static/item_good_frame.png
static/item_good_frame.png
static/item_good_frame.png
  • 2-up
  • Swipe
  • Onion skin
static/liebiao.png

34.9 KB | W: | H:

static/liebiao.png

9.2 KB | W: | H:

static/liebiao.png
static/liebiao.png
static/liebiao.png
static/liebiao.png
  • 2-up
  • Swipe
  • Onion skin
static/logo.jpg

14.8 KB | W: | H:

static/logo.jpg

4.46 KB | W: | H:

static/logo.jpg
static/logo.jpg
static/logo.jpg
static/logo.jpg
  • 2-up
  • Swipe
  • Onion skin
static/phone.png

970 Bytes | W: | H:

static/phone.png

663 Bytes | W: | H:

static/phone.png
static/phone.png
static/phone.png
static/phone.png
  • 2-up
  • Swipe
  • Onion skin
static/quxiao.png

3.41 KB | W: | H:

static/quxiao.png

1.84 KB | W: | H:

static/quxiao.png
static/quxiao.png
static/quxiao.png
static/quxiao.png
  • 2-up
  • Swipe
  • Onion skin
static/randomwallpaper.png

5.3 KB | W: | H:

static/randomwallpaper.png

1.57 KB | W: | H:

static/randomwallpaper.png
static/randomwallpaper.png
static/randomwallpaper.png
static/randomwallpaper.png
  • 2-up
  • Swipe
  • Onion skin
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment