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

建设机械网站哪家好网站与建设实训报告

建设机械网站哪家好,网站与建设实训报告,做网站用什么源码最好,深圳网页设计公司用uniapp3.0的写法组合式api,setup形式封装一个图片上传公用组件,要求 1、使用uni-file-picker选择文件 2、uni.uploadFile上传图片 3、要能支持上传接口动态化 4、支持删除如片列表中已上传项 5、可以预览已上传列表图片 6、支持动态化限制图片格…

用uniapp3.0的写法组合式api,setup形式封装一个图片上传公用组件,要求

1、使用uni-file-picker选择文件

2、uni.uploadFile上传图片

3、要能支持上传接口动态化

4、支持删除如片列表中已上传项

5、可以预览已上传列表图片

6、支持动态化限制图片格式,图片大小,

7、上传成功后走公用组件返回图片列表list,

具体的封装代码,和在页面使用该组件的例子

组件ImageUploader.vue

<template><view class="image-uploader"><view class="header"><text>图片上传</text><text>{{ uploadedFiles.length }}/{{ maxCount }}</text></view><uni-file-picker multiple :limit="maxCount" :disable="uploadedFiles.length >= maxCount" @select="onFileChange":ext-class="filePickerClass" :file-extname="allowedFormats" @delete="removeImage"><view class="upload-btn"><uni-icons type="camera-filled" color="#007aff" size="40"></uni-icons></view></uni-file-picker></view>
</template><script setup>let base = import.meta.env.VITE_APP_BASE_APIlet token = uni.getStorageSync(ACCESS_TOKEN)const props = defineProps({maxCount: {type: Number,default: 1},uploadUrl: {type: String,default: '/ap/files/upload555'//自己的上传地址},allowedFormats: {type: Array,default: () => ['jpg', 'jpeg', 'png', 'gif']},maxSize: {type: Number,default: 5 * 1024 * 1024 // 5MB},value: {type: Array,default: () => {return [];},},})const emit = defineEmits(['update:list'])const uploadedFiles = computed({get: () => {return props.value;},set: (val) => {emit('update:value', val);},});const onFileChange = async (files) => {console.log('files', files)// const files = event.detail.tempFilesconst filelist = files.tempFiles; // 获取选中的文件for (const file of filelist) {if (!props.allowedFormats.includes(file.name.split('.').pop().toLowerCase())) {uni.showToast({title: '不支持的文件格式',icon: 'none'})continue}if (file.size > props.maxSize) {uni.showToast({title: '文件大小超出限制',icon: 'none'})continue}console.log('hsjhj')uni.uploadFile({url: base + props.uploadUrl,filePath: file.path,name: 'file', // 这里根据API的要求来定义header: {// 'Content-Type': 'multipart/form-data', // 设置上传文件的 Content-Type'Authorization': `Bearer ${token}`, // 自定义头部信息,比如 Authorization'Tenant-Id': 1,'CLIENT-TOC': 'Y'},success: (uploadFileRes) => {console.log('upload success:', uploadFileRes);let data = JSON.parse(uploadFileRes.data)console.log('upload success: data', data);if (data && data.code == 0) {uploadedFiles.value.push({url: data.data.url})console.log('uploadedFiles.value', uploadedFiles.value.length);emit('update:list', uploadedFiles.value)} else {tip.error('上传失败')}},fail: (error) => {console.error('upload fail:', error);tip.error('上传失败')// 处理上传失败的逻辑}});}}const previewImage = (url) => {uni.previewImage({urls: uploadedFiles.value.map(file => file.url),current: url})}const removeImage = (file) => {console.log('hhj', file)uploadedFiles.value.splice(file.index, 1)emit('update:list', uploadedFiles.value)}const filePickerClass = {'file-picker': true,'disabled': uploadedFiles.value.length >= props.maxCount}
</script><style scoped>.image-uploader {padding: 16px;background-color: #fff;border-radius: 8px;box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);}.header {display: flex;justify-content: space-between;margin-bottom: 8px;}.upload-btn {display: flex;align-items: center;justify-content: center;width: 80px;height: 80px;border: 2px dashed #ddd;border-radius: 8px;color: #bbb;}
</style>

页面使用,预留了上传成功后的回调方法,可不传,也可以直接v-model绑定
 

      <imageUploader :max-count="4" @update:list="updateImageList" v-model:value="imageList"/>const imageList = ref([])const updateImageList = (list) => {console.log('imageList444',imageList)// imageList.value = list ,//可以赋值也可以做其他操作}

http://www.yayakq.cn/news/319607/

相关文章:

  • 个人域名怎么做社交网站深圳网站建设10强
  • 公司域名更改 网站怎么做提示国外网站谷歌seo推广
  • 泸州百度做网站联系安康网站设计
  • 成都网站建设v门店销售管理系统
  • 智库建设网站方案网站主题旁边的图标怎么做的
  • 广州黄埔做网站hexo文章转WordPress
  • 网站建设接单技巧跨境电商怎么做视频教程
  • 泉州网站建设公司首选公司哪家好应用商城app开发
  • 沂南建设局网站深圳装修公司报价
  • 厦门微网站制作公司logo设计注意事项
  • 百度地图网站开发闵行网页设计公司
  • 制作网站公司宜兴宜兴建设局网站
  • 辽宁建设厅证件查询网站做图标去什么网站找
  • 网站优化北京如何联系?做文具的网站
  • 衡阳北京网站建设网站开发开票内容写什么
  • 网站关键词怎么做效果好担保公司网站建设汇报
  • WordPress文章消失徐州关键词优化平台
  • 为什么建设文化馆网站网站开发支付功能
  • 做个门户网站多少钱合肥 网站运营
  • 临沂网站制作wordpress壁纸
  • 网站竞价如何做个人网页设计特点
  • shopify建站流程清苑区建设网站找那家公司
  • 东莞网站建设怎么做网站做不做账
  • 网站跟自媒体建设你认为什么是网络营销
  • 网站建设流程笔记上海今天最新新闻10条
  • 在那个网站做推广实用网站制作公司网站设计公司
  • 网站正在备案女孩短期技能培训班
  • 做网站时如何将前端连接到后台网站建设市区
  • 公司网站 设计方案厦门网站建设方案
  • 做废铁在哪个网站推广金昌北京网站建设