拼图汇报
This commit is contained in:
@@ -15,7 +15,7 @@ const getFileInfo = (app, file) => {
|
|||||||
let {name, label} = app,
|
let {name, label} = app,
|
||||||
path = app.path.replace(/.+[\\\/]([^\\\/]+)[\\\/]([^\\\/]+)$/g, `/apps/$1/$2`)
|
path = app.path.replace(/.+[\\\/]([^\\\/]+)[\\\/]([^\\\/]+)$/g, `/apps/$1/$2`)
|
||||||
apps.list.push({
|
apps.list.push({
|
||||||
id: file.replace(/\.\/?(vue)?/g, '')?.replace(/[\\\/]/g, '_'),
|
id: file.replace(/\.\/?(vue)?/g, '').replace(/[\\\/]/g, '_'),
|
||||||
name,
|
name,
|
||||||
label,
|
label,
|
||||||
path,
|
path,
|
||||||
|
|||||||
@@ -10,6 +10,7 @@
|
|||||||
@click="changeComponent(item, index)">
|
@click="changeComponent(item, index)">
|
||||||
<image class="img" :src="item.thum" />
|
<image class="img" :src="item.thum" />
|
||||||
<image class="checked" v-if="currIndex === index" src="./images/xuanzhong.png" />
|
<image class="checked" v-if="currIndex === index" src="./images/xuanzhong.png" />
|
||||||
|
<span @click="toEdit">编辑</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="report-btn" data-html2canvas-ignore @click="save">完成</div>
|
<div class="report-btn" data-html2canvas-ignore @click="save">完成</div>
|
||||||
@@ -65,6 +66,10 @@
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
|
toEdit () {
|
||||||
|
this.$refs.reportItem.linkTo()
|
||||||
|
},
|
||||||
|
|
||||||
save () {
|
save () {
|
||||||
this.$loading()
|
this.$loading()
|
||||||
this.$refs.reportItem.screenshot() && this.$refs.reportItem.screenshot().then(canvas => {
|
this.$refs.reportItem.screenshot() && this.$refs.reportItem.screenshot().then(canvas => {
|
||||||
@@ -173,6 +178,23 @@
|
|||||||
height: 208px;
|
height: 208px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
span {
|
||||||
|
display: none;
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
z-index: 1;
|
||||||
|
width: 128px;
|
||||||
|
height: 56px;
|
||||||
|
line-height: 56px;
|
||||||
|
text-align: center;
|
||||||
|
color: #fff;
|
||||||
|
font-size: 32px;
|
||||||
|
background: rgba(0, 0, 0, 0.8);
|
||||||
|
border-radius: 8px;
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
}
|
||||||
|
|
||||||
.checked {
|
.checked {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0;
|
top: 0;
|
||||||
@@ -186,6 +208,10 @@
|
|||||||
.img {
|
.img {
|
||||||
border: 4px solid #408EF6;
|
border: 4px solid #408EF6;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
span {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,36 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="rich">
|
<div class="rich">
|
||||||
<div class="rich-item" v-for="(item, index) in richList" :key="index">
|
<div
|
||||||
<p @click="onLongpress(item, index)" v-if="item.type === 'text'">{{ item.value }}</p>
|
class="rich-item"
|
||||||
<image @click="onLongpress(item, index)" v-else mode="widthFix" :src="item.value" />
|
@click="onLongpress(item, index)"
|
||||||
|
v-for="(item, index) in richList"
|
||||||
|
:key="index"
|
||||||
|
:class="[currIndex === index ? 'active' : '']">
|
||||||
|
<p v-if="item.type === 'text'">{{ item.value }}</p>
|
||||||
|
<image v-else mode="widthFix" :src="item.value" />
|
||||||
</div>
|
</div>
|
||||||
|
<u-popup v-model="isShow" :closeable="false" border-radius="32" mode="bottom" @close="isShow = false, currIndex = -1">
|
||||||
|
<div class="rich-bottom">
|
||||||
|
<div class="top">
|
||||||
|
<h2>编辑文本</h2>
|
||||||
|
<image @click="isShow = false, currIndex = -1" src="../../images/down_boldw.png" />
|
||||||
|
</div>
|
||||||
|
<div class="btns">
|
||||||
|
<div class="btn-item" hover-class="bg-hover" @click="remove">
|
||||||
|
<image src="../../images/remove-black.png" />
|
||||||
|
<span>删除</span>
|
||||||
|
</div>
|
||||||
|
<div class="btn-item" hover-class="bg-hover" v-if="type === 'text'" @click="toEditText">
|
||||||
|
<image src="../../images/xiugai.png" />
|
||||||
|
<span>修改</span>
|
||||||
|
</div>
|
||||||
|
<div class="btn-item" hover-class="bg-hover" v-else>
|
||||||
|
<image src="../../images/jiancai.png" />
|
||||||
|
<span>剪裁</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</u-popup>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -13,37 +40,45 @@
|
|||||||
|
|
||||||
data () {
|
data () {
|
||||||
return {
|
return {
|
||||||
|
currIndex: -1,
|
||||||
|
isShow: false,
|
||||||
|
type: '',
|
||||||
|
value: '',
|
||||||
|
action: ''
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
|
toEditText () {
|
||||||
|
this.$emit('onLongpress', {
|
||||||
|
type: this.type,
|
||||||
|
value: this.value,
|
||||||
|
index: this.currIndex,
|
||||||
|
action: 'edit'
|
||||||
|
})
|
||||||
|
|
||||||
|
this.currIndex = -1
|
||||||
|
this.isShow = false
|
||||||
|
},
|
||||||
|
|
||||||
|
remove () {
|
||||||
|
this.$emit('onLongpress', {
|
||||||
|
type: this.type,
|
||||||
|
value: this.value,
|
||||||
|
index: this.currIndex,
|
||||||
|
action: 'remove'
|
||||||
|
})
|
||||||
|
|
||||||
|
this.currIndex = -1
|
||||||
|
this.isShow = false
|
||||||
|
},
|
||||||
|
|
||||||
onLongpress (item, index) {
|
onLongpress (item, index) {
|
||||||
if (item.type === 'text') {
|
this.currIndex = index
|
||||||
uni.showActionSheet({
|
this.type = item.type
|
||||||
itemList: ['编辑', '删除'],
|
this.value = item.value
|
||||||
success: res => {
|
|
||||||
this.$emit('onLongpress', {
|
this.isShow = true
|
||||||
type: item.type,
|
|
||||||
value: item.value,
|
|
||||||
index: index,
|
|
||||||
action: res.tapIndex === 0 ? 'edit' : 'remove'
|
|
||||||
})
|
|
||||||
}
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
uni.showActionSheet({
|
|
||||||
itemList: ['删除'],
|
|
||||||
success: () => {
|
|
||||||
this.$emit('onLongpress', {
|
|
||||||
type: item.type,
|
|
||||||
value: item.value,
|
|
||||||
index: index,
|
|
||||||
action: 'remove'
|
|
||||||
})
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
|
||||||
prview (url) {
|
prview (url) {
|
||||||
@@ -58,13 +93,72 @@
|
|||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.rich {
|
.rich {
|
||||||
|
* {
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rich-bottom {
|
||||||
|
.top {
|
||||||
|
display: flex;
|
||||||
|
position: relative;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
height: 96px;
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
font-size: 28px;
|
||||||
|
color: #333333;
|
||||||
|
line-height: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
image {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
right: 32px;
|
||||||
|
z-index: 1;
|
||||||
|
width: 32px;
|
||||||
|
height: 32px;
|
||||||
|
transform: translateY(-50%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.btns {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
height: 216px;
|
||||||
|
|
||||||
|
div {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
flex-direction: column;
|
||||||
|
flex: 1;
|
||||||
|
|
||||||
|
image {
|
||||||
|
width: 80px;
|
||||||
|
height: 80px;
|
||||||
|
}
|
||||||
|
|
||||||
|
span {
|
||||||
|
color: #333333;
|
||||||
|
font-size: 28px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.rich-item {
|
.rich-item {
|
||||||
margin-bottom: 20rpx;
|
margin-bottom: 20rpx;
|
||||||
|
border: 2px solid transparent;
|
||||||
|
|
||||||
&:last-child {
|
&:last-child {
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&.active {
|
||||||
|
border: 2px solid #2477F1;
|
||||||
|
}
|
||||||
|
|
||||||
p {
|
p {
|
||||||
line-height: 1.3;
|
line-height: 1.3;
|
||||||
word-break: break-all;
|
word-break: break-all;
|
||||||
|
|||||||
BIN
src/saas/AppCountryAlbum/images/down_boldw.png
Normal file
BIN
src/saas/AppCountryAlbum/images/down_boldw.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 293 B |
BIN
src/saas/AppCountryAlbum/images/jiancai.png
Normal file
BIN
src/saas/AppCountryAlbum/images/jiancai.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 243 B |
BIN
src/saas/AppCountryAlbum/images/remove-black.png
Normal file
BIN
src/saas/AppCountryAlbum/images/remove-black.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 334 B |
BIN
src/saas/AppCountryAlbum/images/xiugai.png
Normal file
BIN
src/saas/AppCountryAlbum/images/xiugai.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 572 B |
Reference in New Issue
Block a user