图片管理组建

news2025/1/22 13:09:23

在这里插入图片描述

<template>
  <div style="height: 100%;">
    <!-- 加载中 -->
    <div class="demo-spin-cols" :style="loading">
      <Icon type="ios-loading" size=18 class="demo-spin-icon-load"></Icon>
      <div>加载中</div>
    </div>
    <div class="dade_top">
        <el-input class="dade_inputSearch" placeholder="请输入名称" v-model="name"clearable></el-input>
        <el-button type="primary" @click='change(1)'>搜索</el-button>
        <el-button type="primary" @click='imgsc(1)'>选择图片</el-button>
    </div>
    <imgList ref="pop" :imgs="imgs"></imgList>
  </div>
</template>

<script>
  import url from '../../../assets/urlImg.js';
  export default {
    data() {
      return {
        
      }
    },
    components: {
      "imgList": () => import('../comm/imgList.vue')
    },
    created(){
    
    },
    mounted(){
      this.url = url;
      this.urlimg = url+"/admin/Common/img";
      console.log(this.url);
      this.change(1);
    },
    methods: {
      // 子组件调用
      imgs(e){
        console.log(e)
      },
      imgsc(){
        this.$refs.pop.imgsel();
      }
    },
  }
</script>
<style scoped>
  .el-input--suffix .el-input__inner {
      padding-right: 30px;
      width: 300px !important;
  }
  .el-input {
      position: relative !important;
      font-size: 14px !important;
      display: inline-block !important;
      width: 300px !important;
  }
</style>

组件

<template>
  <div style="height: 100%;">
      <Modal
          v-model="modal1"
          title="图片管理"
          :loading='loadings'
          width='1000'
          @on-ok="shopAdd">
          <div class="modals" style="display: flex;width: 100%;">
            <div style="width: 180px;">
              <el-row :gutter="24">
                <el-col :span="24">
                  <el-card shadow="hover" :body-style="{ padding: '0px' }">
                    <div style="height: 68vh;overflow: auto;width: 178px;">
                      <div v-for="it in [0,1,2,3,4]" :key="it">
                        <div v-if="id == it" @click="djimg(it)" class="dadeimg" style="line-height: 30px;cursor: pointer;padding: 5px;background-color: #eaefff;">
                          333
                          <el-popover placement="top-start" width="328" trigger="click">
                             <div>
                               <el-input size="small" v-model="input" placeholder="组名称"></el-input>
                               <div style="margin-top: 10px;margin-left: 170px;">
                                 <el-button size="small" slot="reference">修改</el-button>
                                 <el-button size="small" slot="reference">删除</el-button>
                               </div>
                             </div>
                             <el-button style="position: absolute;right: 20px;color: #9c9c9c;" type="text" size="small" slot="reference"><i class="el-icon-more"></i></el-button>
                           </el-popover>
                        </div>
                        <div v-else @click="djimg(it)" class="dadeimg" style="line-height: 30px;cursor: pointer;padding: 5px;">
                          333
                        </div>
                      </div>
                    </div>
                  </el-card>
                   <el-popover placement="top-start" width="328" trigger="click">
                      <div>
                        <el-input size="small" v-model="input" placeholder="组名称"></el-input>
                        <div style="margin-top: 10px;margin-left: 243px;">
                          <el-button size="small" slot="reference">新增</el-button>
                        </div>
                      </div>
                      <el-button slot="reference" style="width: 180px;margin-top: 3px;">新建分组</el-button>
                    </el-popover>
                </el-col>
              </el-row>
            </div>
            <div >
              <div style="display: flex;">
                <el-input class="dade_inputSearch" size="small" placeholder="图片名称" v-model="name"clearable></el-input>
                <el-button type="primary" style="margin-left: 2px;" size="small" @click='change(1)'>搜索</el-button>
              </div>
              <div>
                <el-row :gutter="24">
                  <el-col :span="24">
                    <el-card :body-style="{ 'padding-top': '2px' }" shadow="never"  style="position: absolute;margin-top: 5px;width: 788px;height: 68.8vh;overflow: auto;">

                      <el-row :gutter="12">
                        <el-col :span="8" v-for="is in [1,1,1,1,1,1,1,1,1]">
                          <el-card shadow="hover" :body-style="{ padding: '5px' }" style="height: 215px;margin-top: 5px;">
                            <img style="width: 100%;height: 150px;" src="https://img04.sogoucdn.com/app/a/201025/d2ba80ac9f0a568e8052d5de7cb788ec"/>
                            <div>未命名</div>
                            <el-checkbox v-model="checked"></el-checkbox>
                            <el-popover placement="top-start" width="328" trigger="click">
                               <div>
                                 <el-input size="small" v-model="input" placeholder="图片名称"></el-input>
                                 <el-select style="margin-top: 10px;" size="small" v-model="value" placeholder="分组">
                                     <el-option
                                       v-for="item in options"
                                       :key="item.value"
                                       :label="item.label"
                                       :value="item.value">
                                     </el-option>
                                   </el-select>
                                 <div style="margin-top: 10px;margin-left: 243px;">
                                   <el-button size="small" slot="reference">保存</el-button>
                                 </div>
                               </div>
                               <el-button size="mini" slot="reference" style="width: 120px;margin-top: 3px;margin-left: 5px;">编制图片</el-button>
                             </el-popover>
                             <span style="cursor: pointer;margin-left: 50px;color: red;font-size: 15px;"><i class="el-icon-delete"></i></span>
                          </el-card>
                        </el-col>
                      </el-row>
                      <div class="dade_bottom" style="margin-top: 10px;">
                        <Page :total="total" :page-size='pageSize' show-total show-elevator @on-change="change"/>
                      </div>
                    </el-card>
                  </el-col>
                </el-row>

              </div>
            </div>
            <div style="display: flex;width: 100%;justify-content: right;">
              <el-upload
                :action="urlimg"
                :show-file-list="false"
                :on-preview="handlePictureCardPreview"
                :before-upload="beforeAvatarUpload"
                :on-remove="handleRemove"
                :on-exceed="handleExceed"
                :on-success="success">
                <el-button size="small" type="primary">点击上传</el-button>
              </el-upload>
            </div>
          </div>
      </Modal>
  </div>
</template>

<script>
  import url from '../../../assets/urlImg.js';
  export default {
    props:['imgs'],
    data() {
      return {
        url:'',
        checked:'',
        tableData: [],
        modal1: false,
        loadings:false,
        total:0,
        pageSize:6,
        id:"0"
      }
    },
    created(){

    },
    mounted(){
      this.url = url;
      this.urlimg = url+"/admin/Common/img";
      console.log(this.url);
      this.change(1);
    },
    methods: {
      djimg(id){
        this.id = id;
      },
      shopAdd(){

      },
      imgsel(){
        this.modal1 = true;
      },
      //删除图片
      handleRemove(file, fileList) {
        console.log(fileList);
        // this.fileList = fileList;
      },
      handleExceed(files, fileList) {

      },
      beforeAvatarUpload(file){
        const isLt2M = file.size / 1024 / 1024 < 2;
        if(isLt2M == false){
          this.$message.warning('头像不能大于2m')
          return false;
        }
      },
      handlePictureCardPreview(file) {
        // this.dialogImageUrl = file.url;
        // this.dialogVisible = true;
      },
      success(response, file, fileList){
        console.log(fileList[0]['response'][0]);
        // this.fileList = fileList;
        this.fileList = [];
      },
      //分页搜索
      change(page){
        // this.loading = '';
        this.modal1 = false;
        this.$myhttp.get('admin/Img/index?page='+page+'&name='+this.name,{
        'Content-Type': 'application/json'
        }).then(backdata=>{
           this.loading = 'display:none';
           let data = backdata.data;
           var _this = this;
           this.tableData = data.data;
           this.total = data.data.count;
        });
      },
    },
  }
</script>
<style scoped>
  .el-input--suffix .el-input__inner {
      padding-right: 30px;
      width: 300px !important;
  }
  .el-input {
      position: relative !important;
      font-size: 14px !important;
      display: inline-block !important;
      width: 300px !important;
  }
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1978340.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Kubernetes】Deployment 的状态

Deployment 的状态 Deployment 控制器在整个生命周期中存在 3 3 3 种状态&#xff1a; 已完成&#xff08;Complete&#xff09;进行中&#xff08;Progressing&#xff09;失败&#xff08;Failed&#xff09; 通过观察 Deployment 的当前特征&#xff0c;可以判断 Deploym…

『 Linux 』线程安全的单例模式,自旋锁与读写锁

文章目录 单例模式懒汉模式与饿汉模式 自旋锁读写锁 单例模式 单例模式是一种创建型设计模式,其主要目的是确保一个类只有一个实例,并提供一个全局访问点来访问该实例; 这在需要严格控制如何及合适访问某个唯一资源型下有一定作用; 单利模式的主要特点为如下: 私有构造函数 单…

使用Dockerfile构建一个包含NVIDIA的PyTorch和Detectron2的镜像

查看Dockerfile 以下是详细的解释&#xff1a; # 使用更具体的标记来固定基础镜像版本&#xff0c;确保环境一致性 FROM nvcr.io/nvidia/pytorch:23.01-py3# 设置工作目录和环境变量 WORKDIR /root ENV DETECTRON2_PATH /root/detectron2# 复制并安装 Detectron2 COPY detect…

YOLOv10模型训练、验证、推理

前言 yolov10关于模型的各种参数其实都写到了一起&#xff08;包括训练、验证和推理的参数&#xff09;&#xff0c;在./ultralytics/cfg/default.yaml中&#xff0c;通过使用这些指令我们可以实现各种所需的操作。 代码地址&#xff1a;https://github.com/THU-MIG/yolov10 …

【Material-UI 组件】Autocomplete 中的 Grouped 功能详解

文章目录 一、组件概述1.1 Grouped 功能介绍1.2 适用场景 二、基础用法2.1 实现 Grouped 功能代码拆解 三、高级配置3.1 自定义组渲染3.2 常见配置 四、最佳实践4.1 数据排序4.2 组标题优化4.3 性能优化4.4 可访问性 五、总结 Grouped 功能使得 Autocomplete 组件能够按特定维度…

Linux系统驱动(三)ioctl函数

文章目录 一、ioctl函数&#xff08;一&#xff09;函数格式&#xff08;二&#xff09;ioctl命令码的组成1. 命令码的组成2. 自己封装命令码2. 内核提供了封装命令码的宏 &#xff08;三&#xff09;使用示例1. 驱动2. 应用 一、ioctl函数 Linux内核开发者想要将数据的读写和…

c++ 21 指针

*像一把钥匙 通过钥匙去找内存空间 间接修改内存空间的值 不停的给指针赋值 等于不停的更改指针的指向 指针也是一种数据类型 指针做函数参数怎么看都不可以 指针也是一个数据类型 是指它指向空间的数据类习惯 作业 野指针 向null空间地址copy数据 不断改变指针指向 …

JVM的组成 -- 字节码文件

类加载器(ClassLoader)&#xff1a;将字节码文件加载到内存中运行时数据区(JVM管理的内存)&#xff1a;负责管理JVM使用的内存&#xff0c;比如创建对象和销毁对象执行引擎&#xff1a;即时编译器、解释器、垃圾回收器。负责本地接口的调用本地接口&#xff1a;native方法&…

高等数学 第八讲 积分学计算_不定积分_定积分_反常积分的计算

高等数学 第八讲 积分学计算 文章目录 高等数学 第八讲 积分学计算1.不定积分的计算1.1 基本积分公式1.2 不定积分的计算方法1.2.1 凑微分法1.2.2 换元法1.2.3 分布积分法1.2.4 有理函数的积分计算(待更新)1.2.5 不定积分的一些计算结论总结 2.定积分的计算2.1 牛顿莱布尼茨公式…

大数据Flink(一百零八):阿里云与开源的功能优势对比

文章目录 阿里云与开源的功能优势对比 阿里云与开源的功能优势对比 下面通过表格介绍阿里云实时计算Flink全托管产品的功能点和价值&#xff0c;以及和开源Flink的对比优势。 类型 功能 描述 价值 性能与成本 资源利用率提升 可以根据业务负载进行弹性扩缩容。 更好的…

手摸手教你前端和后端是如何实现导出 Excel 的?

前言 大家好呀&#xff0c;我是雪荷。在上篇文章&#xff08;EasyExcel 初使用—— Java 实现多种写入 Excel 功能-CSDN博客&#xff09;中给大家介绍了 Java 是如何写入 Excel 的&#xff0c;那么这篇算是对上篇文章的拓展&#xff0c;主要介绍前端和后端分别是如何导出数据至…

一篇了解: MyBatis-Plus 操作数据库的使用

目录 一、MyBatis-Plus介绍 二、基础使用 2.1 准备工作 2.2 编码 2.3 CRUD单元测试 三、MyBatis-Plus复杂操作 3.1 打印日志 3.2 常见注解 3.2.1 TableName 3.2.2 TableField 3.2.3 TableId 3.3 条件构造器 3.3.1 QueryWrapper 3.3.2 UpdateWrapper 3.3.3 Lamb…

网络空间安全专业怎么样,可通过哪些途径自学?

网络空间安全主要研究网络空间的组成、形态、安全、管理等&#xff0c;进行网络空间相关的软硬件开发、系统设计与分析、网络空间安全规划管理等。例如&#xff0c;网络犯罪的预防&#xff0c;国家网络安全的维护&#xff0c;杀毒软件等安全产品的研发&#xff0c;网络世界的监…

计算机常识与NOIP历史-CSP初赛知识点整理

真题练习 [2021-CSP-J-第2题] 以下奖项与计算机领域最相关的是&#xff08; &#xff09;。 A.奥斯卡奖 B.图灵奖 C.诺贝尔奖 D.普利策奖 [2017-NOIP-第7题] 中国计算机学会于( )年创办全国青少年计算机程序设计竞赛。 A. 1983 B. 1984 C. 1985 D. 1986 [2018-NOIP-第5题…

Professional Scrum Master (PSM) 官方认证培训班:掌握Scrum,提升项目管理能力

在快速变化的商业环境中&#xff0c;高效的项目管理和团队协作是企业成功的关键。作为一种广泛认可的敏捷框架&#xff0c;Scrum已成为推动项目成功和提高团队效率的重要工具。为了帮助专业人士掌握Scrum方法和实践&#xff0c;Scrum.org推出了Professional Scrum Master (PSM)…

C++ 初探:不要‘下次一定’,立即开始你的C++之旅

C初识 文章目录 C hello worldnamespace&#xff0c;命名空间命名空间的使用域作用限定符展开命名空间指定展开命名空间成员 C的域 C的输入和输出缺省参数函数重载引用&#xff08;reference&#xff09;引用概念引用的特性引用的使用const引用 inlinenullptr C hello world #…

学习C语言遇到的问题

前言 这是博主在班训班培训期间学习C基础过程中遇到的一些问题&#xff0c;我把遇到的问题以及这些问题的解答链接统一放在这篇文章了。这只是博主遇到的一些问题&#xff0c;可能不会适用于全部人&#xff0c;希望大家把这篇文章当做查漏补缺的内容吧。 问题一:把字符串赋给…

三十种未授权访问漏洞复现 合集( 三)

未授权访问漏洞介绍 未授权访问可以理解为需要安全配置或权限认证的地址、授权页面存在缺陷&#xff0c;导致其他用户可以直接访问&#xff0c;从而引发重要权限可被操作、数据库、网站目录等敏感信息泄露。---->目录遍历 目前主要存在未授权访问漏洞的有:NFS服务&a…

CnosDB 元数据集群 – 分布式时序数据库的大脑

CnosDB 是一个分布式时序数据库系统&#xff0c;其中元数据集群是核心组件之一&#xff0c;负责管理整个集群的元数据信息。 1. 概述 CnosDB 是一个分布式时序数据库系统&#xff0c;其中元数据集群是核心组件之一&#xff0c;负责管理整个集群的元数据信息。元数据包括数据库…

用Ollama 和 Open WebUI本地部署Llama 3.1 8B

说明&#xff1a; 本人运行环境windows11 N卡6G显存。部署Llama3.1 8B 简介 Ollama是一个开源的大型语言模型服务工具&#xff0c;它允许用户在自己的硬件环境中轻松部署和使用大规模预训练模型。Ollama 的主要功能是在Docker容器内部署和管理大型语言模型&#xff08;LLM&…