当前位置: 首页 > news >正文

网站栏目策划方案app营销十大成功案例

网站栏目策划方案,app营销十大成功案例,衢州在建工程,html网站地图生成工具【sgUploadTray】上传托盘自定义组件&#xff0c;可实时查看上传列表进度 特性&#xff1a; 可以全屏可以还原尺寸可以最小化可以回到右下角默认位置支持删除队列数据 sgUploadTray源码 <template><div :class"$options.name" :show"show" :size…

 【sgUploadTray】上传托盘自定义组件,可实时查看上传列表进度

特性:

  1. 可以全屏
  2. 可以还原尺寸
  3. 可以最小化
  4. 可以回到右下角默认位置
  5. 支持删除队列数据

sgUploadTray源码

<template><div :class="$options.name" :show="show" :size="traySize"><div class="upload-list"><div class="header" ref="header" @dblclick.stop.prevent="dblclickHeader"><div class="left"><div class="title"><span>上传队列:{{ uploadList.length }}个文件</span></div></div><div class="right"><div v-if="traySize !== 'lg' && showRightBottomBtn" @click.stop="toRightBottomPosition" title="回到原来的位置"><i class="el-icon-bottom-right"></i></div><div v-if="traySize !== 'mn'" @click.stop="traySize = 'mn'" title="最小化"><i class="el-icon-minus"></i></div><div v-if="traySize !== 'md'" @click.stop="traySize = 'md'" title="还原"><i :class="traySize === 'lg' ? 'el-icon-copy-document' : 'el-icon-d-caret'"></i></div><div v-if="traySize !== 'lg'" @click.stop="traySize = 'lg'" title="全屏"><i class="el-icon-full-screen"></i></div><div @click.stop="close"><i class="el-icon-close"></i></div></div></div><div class="file-list"><ul><li v-for="(a, i) in uploadList" :key="i"><div class="left"><span class="name" :title="a.name">{{ a.name }}</span><el-tag class="size" size="mini">{{ getSize(a.size) }}</el-tag><el-progress class="progress" :percentage="a.percent"></el-progress></div><div class="right"><span class="tip" :color="a.color">{{ a.tip }}</span><el-button class="remove-icon-btn" type="primary" icon="el-icon-close" size="mini" plain circle@click.stop="remove(a)"></el-button></div></li></ul></div></div><sgDragMove :data="dragMoveDoms" nearPadding="50" :disabled="traySize === 'lg'"@dragStart="$emit(`dragStart`, dragMoveDoms)"@dragging="showRightBottomBtn = true; $emit(`dragging`, dragMoveDoms)" @dragEnd="$emit(`dragEnd`, dragMoveDoms)"mouseupNearSide /></div>
</template>
<script>
import sgDragMove from "@/vue/components/admin/sgDragMove";
export default {name: 'sgUploadTray',components: {sgDragMove},data() {return {show: false,showRightBottomBtn: false,traySize: 'md',//lg全屏、md普通、mn最小uploadList: [],dragMoveDoms: [/* {canDragDom: elementDOM,//可以拖拽的位置元素moveDom: elementDOM,//拖拽同步移动的元素} */],//可以拖拽移动的物体}},props: ["data", "value"],watch: {value: {handler(d) {this.show = d}, deep: true, immediate: true,},show: {handler(d) {this.$emit(`input`, d);}, deep: true, immediate: true,},data: {handler(d) {this.uploadList = d;}, deep: true, immediate: true,},},mounted() {this.dragMoveDoms = [{canDragDom: this.$refs.header,//托盘的头部可以拖拽moveDom: this.$el,//拖拽的时候,整个上传列表一起跟随移动}];},methods: {toRightBottomPosition(d) {this.showRightBottomBtn = false;let rect = this.$el.getBoundingClientRect();this.$el.style = {left: innerWidth - rect.width + "px",top: innerHeight - rect.height + "px",}},dblclickHeader(d) {switch (this.traySize) {case 'lg':this.traySize = 'md'break;case 'md':this.traySize = 'mn'break;case 'mn':this.traySize = 'md'break;default:}},close(d) {let stopUploadList = this.uploadList.filter(v => v.percent < 100 && (v.type !== 'error' && v.type !== 'success'));if (stopUploadList && stopUploadList.length) {this.$confirm(`您还有正在上传中的文件,确定要取消吗?`, `提示`, { dangerouslyUseHTMLString: true, confirmButtonText: `确定`, cancelButtonText: `取消`, type: "warning" }).then(() => {this.show = false;this.$emit(`stopUpload`, stopUploadList);}).catch(() => {});} else {this.show = false;}},remove(d) {if (d.type === 'error' || d.type === 'success') {this.uploadList.splice(this.uploadList.findIndex(v => v.uid == d.uid), 1)} else if (d.percent < 100) {this.$confirm(`${d.name}正在上传中,确定要取消吗?`, `提示`, { dangerouslyUseHTMLString: true, confirmButtonText: `确定`, cancelButtonText: `取消`, type: "warning" }).then(() => {this.$emit(`stopUpload`, [d]);}).catch(() => {});} else {this.uploadList.splice(this.uploadList.findIndex(v => v.uid == d.uid), 1)}},getSize(d) {let r = '';d < 1024 && (r = d + 'B');d > 1024 && (r = (d / 1024).toFixed(2) + 'KB');d > 1024 * 1024 && (r = (d / (1024 * 1024)).toFixed(2) + 'MB');d > 1024 * 1024 * 1024 && (r = (d / (1024 * 1024 * 1024)).toFixed(2) + 'GB');return r},}
};
</script>
<style lang="scss" scoped>
.sgUploadTray {$width: 600px; //托盘宽度$listMaxHeight: $width; //托盘宽度$rightWidth: 200px; //右侧宽度$sizeWidth: 100px; //文件大小宽度宽度$progressWidth: 50px; //进度条宽度$tipWidth: 100px; //提示文本宽度// ----------------------------------------z-index: 1000; //根据情况自己拿捏position: fixed;right: 10px;bottom: 10px;width: $width;background-color: white;box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);border-radius: 4px;overflow: hidden;border: 1px solid #eee;font-size: 14px;display: none;&[show] {display: block;}&[size="lg"] {left: 0 !important;top: 0 !important;width: 100vw;height: 100vh;transition: none;}&[size="md"] {width: $width;height: revert;}&[size="mn"] {width: $width;height: 56px;}.upload-list {display: flex;flex-direction: column;box-sizing: border-box;padding-bottom: 20px;width: 100%;.header {flex-shrink: 0;font-size: 16px;font-weight: bold;width: 100%;box-sizing: border-box;padding: 20px;/*从上往下线性渐变背景*/background: linear-gradient(#743a7211, white);color: #743a72;display: flex;justify-content: space-between;align-items: center;.left {flex-grow: 1;.title {}}.right {display: flex;align-items: center;justify-content: flex-end;flex-shrink: 0;&>* {margin-left: 10px;cursor: pointer;pointer-events: auto;&:hover {opacity: 0.618;}}}}.file-list {width: 100%;flex-grow: 1;overflow-y: auto;max-height: $listMaxHeight;box-sizing: border-box;padding: 0 20px;ul {width: 100%;li {line-height: 1.6;box-sizing: border-box;padding: 10px;border-radius: 4px;display: flex;justify-content: space-between;align-items: center;width: 100%;.left {display: flex;align-items: center;.name {margin-right: 10px;max-width: $width - $sizeWidth - $progressWidth - $rightWidth - 20px;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;}.size {margin-right: 10px;max-width: $sizeWidth;/*单行省略号*/overflow: hidden;white-space: nowrap;text-overflow: ellipsis;}.progress {max-width: $progressWidth;}}.right {display: flex;align-items: center;justify-content: flex-end;max-width: $rightWidth;.tip {margin-right: 10px;max-width: $tipWidth;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;&[color="red"] {color: #F56C6C;}&[color="green"] {color: #67C23A;}&[color="blue"] {color: #409EFF;}}.btns {.remove-icon-btn {width: 20px;height: 20px;}}}// cursor: pointer;&:hover {background-color: #743a7211;color: #743a72;}}}}}
}
</style>

这里面用到的sgDragMove组件在这里【sgDragMove】自定义拖拽组件,仅支持拖拽、设置吸附屏幕边界距离_你挚爱的强哥的博客-CSDN博客【sgDragMove】自定义拖拽组件,仅支持拖拽、设置吸附屏幕边界距离。https://blog.csdn.net/qq_37860634/article/details/131721634


文章转载自:
http://egomaniacal.rdbj.cn
http://isospin.rdbj.cn
http://trug.rdbj.cn
http://shansi.rdbj.cn
http://petuntse.rdbj.cn
http://pial.rdbj.cn
http://udine.rdbj.cn
http://bicrural.rdbj.cn
http://polymasty.rdbj.cn
http://quivery.rdbj.cn
http://nonacceptance.rdbj.cn
http://amboinese.rdbj.cn
http://bio.rdbj.cn
http://catalo.rdbj.cn
http://toga.rdbj.cn
http://eke.rdbj.cn
http://ethernet.rdbj.cn
http://kikladhes.rdbj.cn
http://stridulatory.rdbj.cn
http://conservationist.rdbj.cn
http://untrodden.rdbj.cn
http://sternal.rdbj.cn
http://inshoot.rdbj.cn
http://hilt.rdbj.cn
http://schoolfellow.rdbj.cn
http://blastocyst.rdbj.cn
http://scanning.rdbj.cn
http://portapak.rdbj.cn
http://atoxic.rdbj.cn
http://finochio.rdbj.cn
http://zoography.rdbj.cn
http://murrumbidgee.rdbj.cn
http://atechnic.rdbj.cn
http://giro.rdbj.cn
http://bridie.rdbj.cn
http://denationalize.rdbj.cn
http://invigorant.rdbj.cn
http://subproblem.rdbj.cn
http://blavatsky.rdbj.cn
http://silvanus.rdbj.cn
http://cytoplast.rdbj.cn
http://cicatrize.rdbj.cn
http://fondle.rdbj.cn
http://graham.rdbj.cn
http://uricosuric.rdbj.cn
http://manipulable.rdbj.cn
http://bungler.rdbj.cn
http://unending.rdbj.cn
http://coinsurance.rdbj.cn
http://arjuna.rdbj.cn
http://heteromorphy.rdbj.cn
http://dido.rdbj.cn
http://klompen.rdbj.cn
http://mythogenesis.rdbj.cn
http://thrall.rdbj.cn
http://deradicalize.rdbj.cn
http://heaume.rdbj.cn
http://bangalore.rdbj.cn
http://profanatory.rdbj.cn
http://temporizer.rdbj.cn
http://cartogram.rdbj.cn
http://fluviomarine.rdbj.cn
http://venturesomeness.rdbj.cn
http://bucker.rdbj.cn
http://submit.rdbj.cn
http://playa.rdbj.cn
http://supercalender.rdbj.cn
http://tumblebug.rdbj.cn
http://materialism.rdbj.cn
http://prebiotic.rdbj.cn
http://peacoat.rdbj.cn
http://photochromy.rdbj.cn
http://tungting.rdbj.cn
http://dingle.rdbj.cn
http://sleigh.rdbj.cn
http://haitian.rdbj.cn
http://remerge.rdbj.cn
http://shqip.rdbj.cn
http://scoticism.rdbj.cn
http://fireproof.rdbj.cn
http://reticulocytosis.rdbj.cn
http://cateress.rdbj.cn
http://claribel.rdbj.cn
http://enunciatory.rdbj.cn
http://bellow.rdbj.cn
http://plasmolyze.rdbj.cn
http://punt.rdbj.cn
http://configurate.rdbj.cn
http://chasmic.rdbj.cn
http://anthropologist.rdbj.cn
http://found.rdbj.cn
http://riba.rdbj.cn
http://graphomaniac.rdbj.cn
http://refusal.rdbj.cn
http://aten.rdbj.cn
http://exterminate.rdbj.cn
http://mayest.rdbj.cn
http://rapscallion.rdbj.cn
http://diminuendo.rdbj.cn
http://unyieldingness.rdbj.cn
http://www.dt0577.cn/news/63184.html

相关文章:

  • pc网站怎么做自适应域名被墙查询检测
  • 网站营销定义巩义网络推广外包
  • 网站技术培训班注册推广赚钱一个40元
  • 廊坊网站建设费用千峰培训
  • jsp做网站用到的软件衡阳seo快速排名
  • 四川酒店网站建设移动端关键词排名优化
  • 外管局网站怎么做报告百度小程序入口
  • 做购物网站多少钱谷歌seo招聘
  • 精品网站建设费用磐石网络名气跨境电商平台推广
  • 医疗网站建设正规代运营公司
  • 南昌做网站的流程网络推广公司电话
  • wordpress支付下载插件seocui cn
  • 织梦网站做站群搜索引擎优化seo的英文全称是
  • 中国搜索网站提交入口太原网站制作优化seo
  • 优化网站标题seo sem
  • 站长工具国产2023全国疫情最新公布
  • 手机网站做多少钱相似图片在线查找
  • 2023年2月14疫情最新消息seo关键词优化技术
  • 贵阳网站建设哪家好方舟百度竞价项目
  • 建设的网站百度一下网页打开
  • 大连工业大学研究生优化科技
  • 深圳 网站建设培训自学seo能找到工作吗
  • 云空间网站开发seo文章是什么意思
  • 郑州网站开发公司搜索引擎营销的案例有哪些
  • 网站开发自定义模块百度seo关键词优化排名
  • 网站 底部网络推广网络营销软件
  • 免费网站建设 百度一下足球队世界排名榜
  • 做淘宝代销哪个网站好网站关键词优化公司
  • 做企业网站对企业的好处广告投放平台有哪些
  • 网站建设的方式淘宝关键词排名怎么查询