npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

element-easy-print

v2.2.3

Published

vue3.0 的通用设计器,基于element-Plus

Downloads

41

Readme

更新记录 2025-7-09

  1. 添加富文本
  2. 添加网页嵌套(不支持跨域)

更新记录 2025-6-12

  1. 添加列表
  2. 多页面设计功能
  3. 支持浏览器打印 驱动打印

更新记录 2025-4-27

  1. 修复表格插入问题

安装

npm install element-easy-print --save

技术交流群

技术交流群 QQ 953344438

文档

演示地址

案例

仅供演示具体去文档地址

import {
      EasyPrint,
    PreviewPrint
} from 'element-easy-print'
import elementEasyPrint from 'element-easy-print'
import 'element-easy-print/dist/style.css'
app.use(elementEasyPrint);
<template>
  <div class="commonBoxmp">
    <EasyPrint
      v-model="previewDrawer"
      :options="option"
      :dataSource="datasource"
      @handlePreview="handlePreview"
      @handleSave="handleSave"
    >
    </EasyPrint>
    <PreviewPrint
      renderType="render"
      v-model="previewDrawer"
      :options="{
        ...previewData,
      }"
    />
  </div>
</template>

<script setup lang="ts">
import { ref, reactive, onMounted } from "vue";
const previewDrawer = ref(false);
const previewData = ref();

const handleSave = (val: boolean, data: any) => {
  console.log("data :>> ", val);
};
const handlePreview = (val: boolean, data: any) => {
  previewDrawer.value = val;
  console.log("data :>> ", data);
  previewData.value = data;
};
const datasource = [
  {
    module_name: "客户",
    module_field: "customer",
    module_content: [
      {
        field: "editor_1732505813",
        name: "编辑器",
        field_data_id: 1,
      },
      {
        field: "checkbox_1700212268",
        name: "多选框组",
        field_data_id: 1,
      },
      {
        field: "selectcheckbox_1692251151",
        name: "公司大小",
        field_data_id: 1,
      },
      {
        field: "cascader_1692251051",
        name: "级联选择器",
        field_data_id: 1,
      },
      {
        field: "select_1692251046",
        name: "公司规模",
        field_data_id: 1,
      },
      {
        field: "email",
        name: "邮箱地址",
        field_data_id: 1,
      },
      {
        field: "description",
        name: "备注",
        field_data_id: 1,
      },
      {
        field: "address",
        name: "地址",
        field_data_id: 1,
      },
      {
        field: "industry",
        name: "营业额",
        field_data_id: 1,
      },
      {
        field: "origin",
        name: "客户来源",
        field_data_id: 1,
      },
      {
        field: "grade",
        name: "等级",
        field_data_id: 1,
      },
      {
        field: "customer_status",
        name: "跟进状态",
        field_data_id: 1,
      },
      {
        field: "website",
        name: "地址",
        field_data_id: 1,
      },
      {
        field: "mobile",
        name: "客户电话",
        field_data_id: 1,
      },
      {
        field: "name",
        name: "客户名称",
        field_data_id: 1,
      },
      {
        field: "number",
        name: "客户编号",
        field_data_id: 1,
      },
      {
        field: "creation_method",
        name: "创建方式",
        field_data_id: 1,
      },
      {
        field: "visible_user_ids",
        name: "团队成员",
        field_data_id: 1,
      },
      {
        field: "last_contact_time",
        name: "最近跟进时间",
        field_data_id: 1,
      },
      {
        field: "lock_flag",
        name: "锁定状态",
        field_data_id: 1,
      },
      {
        field: "address_location",
        name: "经纬度坐标",
        field_data_id: 1,
      },
      {
        field: "next_contact_time",
        name: "下次联系时间",
        field_data_id: 1,
      },
      {
        field: "contacts",
        name: "首要联系人",
        field_data_id: 1,
      },
      {
        field: "deal_state",
        name: "客户成交状态",
        field_data_id: 1,
      },
      {
        field: "last_pool_time",
        name: "最近回收时间",
        field_data_id: 1,
      },
      {
        field: "recycle_days",
        name: "距离回收天数",
        field_data_id: 1,
      },
      {
        field: "owner_user_id",
        name: "负责人",
        field_data_id: 1,
      },
      {
        field: "owner_dep_id",
        name: "负责人部门",
        field_data_id: 1,
      },
      {
        field: "creator_user_id",
        name: "创建人",
        field_data_id: 1,
      },
      {
        field: "create_time",
        name: "创建时间",
        field_data_id: 1,
      },
      {
        field: "update_time",
        name: "更新时间",
        field_data_id: 1,
      },
    ],
  },
  {
    module_name: "联系人",
    module_field: "contact",
    module_content: [
      {
        field: "input_1646201281",
        name: "身份证号",
        field_data_id: 2,
      },
      {
        field: "customer_id",
        name: "相关客户",
        field_data_id: 2,
      },
      {
        field: "description",
        name: "备注",
        field_data_id: 2,
      },
      {
        field: "address",
        name: "地址",
        field_data_id: 2,
      },
      {
        field: "qq",
        name: "QQ",
        field_data_id: 2,
      },
      {
        field: "wechat",
        name: "微信",
        field_data_id: 2,
      },
      {
        field: "birthday",
        name: "出生日期",
        field_data_id: 2,
      },
      {
        field: "sex",
        name: "尊称",
        field_data_id: 2,
      },
      {
        field: "email",
        name: "电子邮件",
        field_data_id: 2,
      },
      {
        field: "phone",
        name: "座机",
        field_data_id: 2,
      },
      {
        field: "mobile",
        name: "手机",
        field_data_id: 2,
      },
      {
        field: "post",
        name: "职务",
        field_data_id: 2,
      },
      {
        field: "name",
        name: "姓名",
        field_data_id: 2,
      },
      {
        field: "visible_user_ids",
        name: "团队成员",
        field_data_id: 2,
      },
      {
        field: "owner_user_id",
        name: "负责人",
        field_data_id: 2,
      },
      {
        field: "owner_dep_id",
        name: "负责人部门",
        field_data_id: 2,
      },
      {
        field: "creator_user_id",
        name: "创建人",
        field_data_id: 2,
      },
      {
        field: "create_time",
        name: "创建时间",
        field_data_id: 2,
      },
      {
        field: "update_time",
        name: "更新时间",
        field_data_id: 2,
      },
    ],
  },
  {
    module_name: "商机",
    module_field: "opportunity",
    module_content: [
      {
        field: "cascader_1691116992",
        name: "级联选择器",
        field_data_id: 3,
      },
      {
        field: "checkbox_1691024297",
        name: "多选框组",
        field_data_id: 3,
      },
      {
        field: "selectcheckbox_1691024212",
        name: "下拉多选框",
        field_data_id: 3,
      },
      {
        field: "address_1687674528",
        name: "地址",
        field_data_id: 3,
      },
      {
        field: "storerole_c_id",
        name: "店员管理",
        field_data_id: 3,
      },
      {
        field: "img_1608865197",
        name: "图片",
        field_data_id: 3,
      },
      {
        field: "description",
        name: "备注",
        field_data_id: 3,
      },
      {
        field: "level",
        name: "商机级别",
        field_data_id: 3,
      },
      {
        field: "source",
        name: "商机来源",
        field_data_id: 3,
      },
      {
        field: "group_id",
        name: "商机流程组",
        field_data_id: 3,
      },
      {
        field: "price",
        name: "商机金额(元)",
        field_data_id: 3,
      },
      {
        field: "expected_date",
        name: "预计成交日期",
        field_data_id: 3,
      },
      {
        field: "name",
        name: "商机名称",
        field_data_id: 3,
      },
      {
        field: "customer_id",
        name: "客户",
        field_data_id: 3,
      },
      {
        field: "number",
        name: "商机编号",
        field_data_id: 3,
      },
      {
        field: "process_id",
        name: "商机流程",
        field_data_id: 3,
      },
      {
        field: "visible_user_ids",
        name: "团队成员",
        field_data_id: 3,
      },
      {
        field: "state",
        name: "结束状态",
        field_data_id: 3,
      },
      {
        field: "state_reason",
        name: "结束理由",
        field_data_id: 3,
      },
      {
        field: "state_remark",
        name: "结束备注",
        field_data_id: 3,
      },
      {
        field: "next_contact_time",
        name: "下次联系时间",
        field_data_id: 3,
      },
      {
        field: "owner_user_id",
        name: "负责人",
        field_data_id: 3,
      },
      {
        field: "owner_dep_id",
        name: "负责人部门",
        field_data_id: 3,
      },
      {
        field: "creator_user_id",
        name: "创建人",
        field_data_id: 3,
      },
      {
        field: "create_time",
        name: "创建时间",
        field_data_id: 3,
      },
      {
        field: "update_time",
        name: "更新时间",
        field_data_id: 3,
      },
    ],
  },
  {
    module_name: "合同",
    module_field: "contract",
    module_content: [
      {
        field: "file_1742364830",
        name: "合同附件",
        field_data_id: 5,
      },
      {
        field: "address_1687679485",
        name: "地址",
        field_data_id: 5,
      },
      {
        field: "quotation_id",
        name: "报价单",
        field_data_id: 5,
      },
      {
        field: "product_price",
        name: "产品总金额(元)",
        field_data_id: 5,
      },
      {
        field: "contact_email",
        name: "联系人邮箱",
        field_data_id: 5,
      },
      {
        field: "contact_mobile",
        name: "联系人手机",
        field_data_id: 5,
      },
      {
        field: "contact_id",
        name: "联系人",
        field_data_id: 5,
      },
      {
        field: "renew",
        name: "合同类型",
        field_data_id: 5,
      },
      {
        field: "end_time",
        name: "合同到期时间",
        field_data_id: 5,
      },
      {
        field: "start_time",
        name: "合同生效时间",
        field_data_id: 5,
      },
      {
        field: "signing_time",
        name: "签约时间",
        field_data_id: 5,
      },
      {
        field: "price",
        name: "合同金额(元)",
        field_data_id: 5,
      },
      {
        field: "opportunity_id",
        name: "来源商机",
        field_data_id: 5,
      },
      {
        field: "customer_id",
        name: "来源客户",
        field_data_id: 5,
      },
      {
        field: "name",
        name: "合同名称",
        field_data_id: 5,
      },
      {
        field: "number",
        name: "合同编号",
        field_data_id: 5,
      },
      {
        field: "contract_money_dx",
        name: "合同金额(大写)",
        field_data_id: 5,
      },
      {
        field: "payment_money",
        name: "已回/剩余(元)",
        field_data_id: 5,
      },
      {
        field: "payment_status",
        name: "回款状态",
        field_data_id: 5,
      },
      {
        field: "renew_id",
        name: "续约合同",
        field_data_id: 5,
      },
      {
        field: "discount",
        name: "总折扣(%)",
        field_data_id: 5,
      },
      {
        field: "state",
        name: "合同状态",
        field_data_id: 5,
      },
      {
        field: "approval_state",
        name: "审核状态",
        field_data_id: 5,
      },
      {
        field: "void_time",
        name: "作废时间",
        field_data_id: 5,
      },
      {
        field: "void_reason",
        name: "作废原因",
        field_data_id: 5,
      },
      {
        field: "channel_id",
        name: "渠道商",
        field_data_id: 5,
      },
      {
        field: "channel_user_id",
        name: "渠道负责人",
        field_data_id: 5,
      },
      {
        field: "out_status",
        name: "出库状态",
        field_data_id: 5,
      },
      {
        field: "owner_user_id",
        name: "负责人",
        field_data_id: 5,
      },
      {
        field: "owner_dep_id",
        name: "负责人部门",
        field_data_id: 5,
      },
      {
        field: "creator_user_id",
        name: "创建人",
        field_data_id: 5,
      },
      {
        field: "create_time",
        name: "创建时间",
        field_data_id: 5,
      },
      {
        field: "update_time",
        name: "更新时间",
        field_data_id: 5,
      },
    ],
  },
];
const option = {
  width: 80,
  height: 80,
  data: [
    {
      id: "5fd93fe2-0953-4f91-82db-b77643ef5ac8",
      renderList: [
        {
          componentName: "textContainer",
          attrsJson: [
            {
              label: "字段",
              type: "FORMITEM",
              prop: "prop",
              defaultValue: "KevinCharlesTaylor",
              componentName: "InputOrSelectData",
              attrs: {
                placeholder: "请输入",
              },
              rules: [
                {
                  required: true,
                  message: "不能为空",
                  trigger: "change",
                },
              ],
            },
            {
              label: "宽",
              type: "STYLE",
              prop: "w",
              defaultValue: 80,
              componentName: "ElInputNumber",
              attrs: {
                placeholder: "请输入",
                controlsPosition: "right",
                min: 0,
              },
              rules: [
                {
                  required: true,
                  message: "不能为空",
                  trigger: "change",
                },
              ],
            },
            {
              label: "高",
              type: "STYLE",
              prop: "h",
              defaultValue: 20,
              componentName: "ElInputNumber",
              attrs: {
                placeholder: "请输入",
                controlsPosition: "right",
                min: 0,
              },
              rules: [
                {
                  required: true,
                  message: "不能为空",
                  trigger: "change",
                },
              ],
            },
            {
              label: "x轴",
              type: "STYLE",
              prop: "x",
              defaultValue: 222,
              componentName: "ElInputNumber",
              attrs: {
                placeholder: "请输入",
                controlsPosition: "right",
                min: 0,
              },
              rules: [
                {
                  required: true,
                  message: "不能为空",
                  trigger: "change",
                },
              ],
            },
            {
              label: "y轴",
              type: "STYLE",
              prop: "y",
              defaultValue: 269,
              componentName: "ElInputNumber",
              attrs: {
                placeholder: "请输入",
                controlsPosition: "right",
                min: 0,
              },
              rules: [
                {
                  required: true,
                  message: "不能为空",
                  trigger: "change",
                },
              ],
            },
            {
              type: "COMPONENT",
              label: "默认值",
              prop: "defaultValue",
              defaultValue: "请输入文字",
              componentName: "ElInput",
              attrs: {
                placeholder: "请输入",
              },
              rules: [
                {
                  required: false,
                  message: "",
                  trigger: "change",
                },
              ],
            },
            {
              type: "STYLE",
              label: "文本颜色",
              prop: "color",
              defaultValue: "#000",
              componentName: "ElColorPicker",
              attrs: {},
            },
            {
              label: "对齐方式",
              prop: "textAlign",
              type: "STYLE",
              defaultValue: "left",
              componentName: "ElSelect",
              attrs: {
                placeholder: "请选择类型",
                clearable: true,
              },
              rules: [
                {
                  required: true,
                  message: "类型不能为空",
                  trigger: "change",
                },
              ],
              children: [
                {
                  componentName: "ElOption",
                  value: "center",
                  label: "居中",
                },
                {
                  componentName: "ElOption",
                  value: "left",
                  label: "左对齐",
                },
                {
                  componentName: "ElOption",
                  value: "right",
                  label: "右对齐",
                },
              ],
            },
            {
              label: "字体类型",
              prop: "fontFamily",
              type: "STYLE",
              defaultValue: "雅黑",
              componentName: "ElSelect",
              attrs: {
                placeholder: "请选择类型",
                clearable: true,
              },
              rules: [
                {
                  required: true,
                  message: "类型不能为空",
                  trigger: "change",
                },
              ],
              children: [
                {
                  componentName: "ElOption",
                  value: "宋体",
                  label: "宋体",
                },
                {
                  componentName: "ElOption",
                  label: "雅黑",
                  value: "雅黑",
                },
                {
                  componentName: "ElOption",
                  label: "Arial",
                  value: "Arial",
                },
              ],
            },
            {
              label: "字体大小",
              type: "STYLE",
              prop: "fontSize",
              defaultValue: 12,
              componentName: "ElInputNumber",
              attrs: {
                placeholder: "请输入",
                controlsPosition: "right",
                min: 0,
              },
              rules: [
                {
                  required: true,
                  message: "不能为空",
                  trigger: "change",
                },
              ],
            },
          ],
          title: "文本",
          prop: "KevinCharlesTaylor",
          attrs: {
            defaultValue: "请输入文字",
          },
          type: "COMPONENT",
          styles: {
            resizable: true,
            active: false,
            x: 222,
            y: 269,
            draggable: true,
            w: 80,
            h: 20,
            color: "#000",
            textAlign: "left",
            fontFamily: "雅黑",
            fontSize: 12,
          },
          id: "31eb4350-c49e-4469-a500-0ad13386f7d0",
          pageIndex: 0,
        },
        {
          componentName: "TwoCodeContainer",
          attrsJson: [
            {
              label: "字段",
              type: "FORMITEM",
              prop: "prop",
              defaultValue: "MariaJamesJones",
              componentName: "InputOrSelectData",
              attrs: {
                placeholder: "请输入",
              },
              rules: [
                {
                  required: true,
                  message: "不能为空",
                  trigger: "change",
                },
              ],
            },
            {
              label: "宽",
              type: "STYLE",
              prop: "w",
              defaultValue: 80,
              componentName: "ElInputNumber",
              attrs: {
                placeholder: "请输入",
                controlsPosition: "right",
                min: 0,
              },
              rules: [
                {
                  required: true,
                  message: "不能为空",
                  trigger: "change",
                },
              ],
            },
            {
              label: "高",
              type: "STYLE",
              prop: "h",
              defaultValue: 80,
              componentName: "ElInputNumber",
              attrs: {
                placeholder: "请输入",
                controlsPosition: "right",
                min: 0,
              },
              rules: [
                {
                  required: true,
                  message: "不能为空",
                  trigger: "change",
                },
              ],
            },
            {
              label: "x轴",
              type: "STYLE",
              prop: "x",
              defaultValue: 222,
              componentName: "ElInputNumber",
              attrs: {
                placeholder: "请输入",
                controlsPosition: "right",
                min: 0,
              },
              rules: [
                {
                  required: true,
                  message: "不能为空",
                  trigger: "change",
                },
              ],
            },
            {
              label: "y轴",
              type: "STYLE",
              prop: "y",
              defaultValue: 9,
              componentName: "ElInputNumber",
              attrs: {
                placeholder: "请输入",
                controlsPosition: "right",
                min: 0,
              },
              rules: [
                {
                  required: true,
                  message: "不能为空",
                  trigger: "change",
                },
              ],
            },
            {
              type: "COMPONENT",
              label: "尺寸大小",
              prop: "size",
              defaultValue: 100,
              componentName: "ElInputNumber",
              attrs: {
                placeholder: "请输入",
              },
              rules: [
                {
                  required: false,
                  message: "",
                  trigger: "change",
                },
              ],
            },
            {
              type: "COMPONENT",
              label: "icon",
              prop: "logoSrc",
              defaultValue: null,
              componentName: "uploadImg",
              attrs: {
                placeholder: "请输入",
              },
              rules: [
                {
                  required: false,
                  message: "",
                  trigger: "change",
                },
              ],
            },
            {
              type: "COMPONENT",
              label: "icon网络地址",
              prop: "logoSrc",
              defaultValue: null,
              componentName: "ElInput",
              attrs: {
                placeholder: "请输入",
              },
              rules: [
                {
                  required: false,
                  message: "",
                  trigger: " change",
                },
              ],
            },
            {
              type: "COMPONENT",
              label: "编码内容",
              prop: "defaultValue",
              defaultValue:
                "https://qz.io/assets/img/clients/pakaneo.63268af2.webp",
              componentName: "ElInput",
              attrs: {
                placeholder: "请输入",
              },
              rules: [
                {
                  required: false,
                  message: "",
                  trigger: "change",
                },
              ],
            },
            {
              type: "COMPONENT",
              label: "背景色",
              prop: "backgroundColor",
              defaultValue: "#FFF",
              componentName: "ElColorPicker",
              attrs: {},
            },
            {
              type: "COMPONENT",
              label: "容错级别 0-3",
              prop: "correctLevel",
              defaultValue: 1,
              componentName: "ElInputNumber",
              attrs: {
                placeholder: "请输入",
                min: 0,
                max: 3,
              },
              rules: [
                {
                  required: false,
                  message: "",
                  trigger: "change",
                },
              ],
            },
          ],
          title: "二维码",
          attrs: {
            size: 100,
            defaultValue:
              "https://qz.io/assets/img/clients/pakaneo.63268af2.webp",
            backgroundColor: "#FFF",
            correctLevel: 1,
          },
          prop: "MariaJamesJones",
          styles: {
            x: 222,
            y: 9,
            resizable: true,
            draggable: true,
            w: 80,
            h: 80,
            active: true,
          },
          id: "f24cf0c9-4245-4c0d-89d4-3ee3a7f61fcc",
          pageIndex: 0,
        },
      ],
    },
    {
      id: "07318886-ab4d-47e9-b721-b9857f680b51",
      renderList: [
        {
          title: "条形码",
          prop: "ElizabethRobertDavis",
          componentName: "BarCodeContainer",
          attrsJson: [
            {
              label: "字段",
              type: "FORMITEM",
              prop: "prop",
              defaultValue: "ElizabethRobertDavis",
              componentName: "InputOrSelectData",
              attrs: {
                placeholder: "请输入",
              },
              rules: [
                {
                  required: true,
                  message: "不能为空",
                  trigger: "change",
                },
              ],
            },
            {
              label: "宽",
              type: "STYLE",
              prop: "w",
              defaultValue: 200,
              componentName: "ElInputNumber",
              attrs: {
                placeholder: "请输入",
                controlsPosition: "right",
                min: 0,
              },
              rules: [
                {
                  required: true,
                  message: "不能为空",
                  trigger: "change",
                },
              ],
            },
            {
              label: "高",
              type: "STYLE",
              prop: "h",
              defaultValue: 60,
              componentName: "ElInputNumber",
              attrs: {
                placeholder: "请输入",
                controlsPosition: "right",
                min: 0,
              },
              rules: [
                {
                  required: true,
                  message: "不能为空",
                  trigger: "change",
                },
              ],
            },
            {
              label: "x轴",
              type: "STYLE",
              prop: "x",
              defaultValue: 102,
              componentName: "ElInputNumber",
              attrs: {
                placeholder: "请输入",
                controlsPosition: "right",
                min: 0,
              },
              rules: [
                {
                  required: true,
                  message: "不能为空",
                  trigger: "change",
                },
              ],
            },
            {
              label: "y轴",
              type: "STYLE",
              prop: "y",
              defaultValue: 536,
              componentName: "ElInputNumber",
              attrs: {
                placeholder: "请输入",
                controlsPosition: "right",
                min: 0,
              },
              rules: [
                {
                  required: true,
                  message: "不能为空",
                  trigger: "change",
                },
              ],
            },
            {
              type: "COMPONENT",
              label: "条形码格式",
              prop: "format",
              defaultValue: null,
              componentName: "ElInput",
              attrs: {
                placeholder: "请输入",
              },
              rules: [
                {
                  required: false,
                  message: "",
                  trigger: "change",
                },
              ],
            },
            {
              type: "COMPONENT",
              label: "编码内容",
              prop: "defaultValue",
              defaultValue: "123456789",
              componentName: "ElInput",
              attrs: {
                placeholder: "请输入",
              },
              rules: [
                {
                  required: false,
                  message: "",
                  trigger: "change",
                },
              ],
            },
            {
              type: "COMPONENT",
              label: "线颜色",
              prop: "lineColor",
              defaultValue: "#000",
              componentName: "ElColorPicker",
              attrs: {},
            },
            {
              label: "是否显示值",
              prop: "displayValue",
              type: "COMPONENT",
              defaultValue: true,
              componentName: "ElSwitch",
              attrs: {},
            },
            {
              label: "条形码宽度",
              type: "COMPONENT",
              prop: "width",
              defaultValue: 2,
              componentName: "ElInputNumber",
              attrs: {
                placeholder: "请输入",
                controlsPosition: "right",
                min: 0,
              },
              rules: [
                {
                  required: true,
                  message: "不能为空",
                  trigger: "change",
                },
              ],
            },
            {
              label: "条形码高度",
              type: "COMPONENT",
              prop: "height",
              defaultValue: 30,
              componentName: "ElInputNumber",
              attrs: {
                placeholder: "请输入",
                controlsPosition: "right",
                min: 0,
              },
              rules: [
                {
                  required: true,
                  message: "不能为空",
                  trigger: "change",
                },
              ],
            },
            {
              label: "外边距",
              type: "COMPONENT",
              prop: "margin",
              defaultValue: 10,
              componentName: "ElInputNumber",
              attrs: {
                placeholder: "请输入",
                controlsPosition: "right",
                min: 0,
              },
              rules: [
                {
                  required: true,
                  message: "不能为空",
                  trigger: "change",
                },
              ],
            },
            {
              label: "字体大小",
              type: "COMPONENT",
              prop: "fontSize",
              defaultValue: 12,
              componentName: "ElInputNumber",
              attrs: {
                placeholder: "请输入",
                controlsPosition: "right",
                min: 0,
              },
              rules: [
                {
                  required: true,
                  message: "不能为空",
                  trigger: "change",
                },
              ],
            },
          ],
          attrs: {
            defaultValue: "123456789",
            lineColor: "#000",
            displayValue: true,
            width: 2,
            height: 30,
            margin: 10,
            fontSize: 12,
          },
          styles: {
            x: 102,
            y: 536,
            resizable: false,
            draggable: true,
            w: 200,
            h: 60,
            active: false,
          },
          id: "f81ba0d4-a131-4f77-bbf7-884b36fdb116",
          pageIndex: 1,
        },
      ],
    },
  ],
  qzOption: {
    size: {
      width: 80,
      height: 80,
    },
    units: "mm",
  },
  page: 2,
  dataSource: "Parameter",
  model: [
    {
      KevinCharlesTaylor: "1111 ",
      MariaJamesJones: "https://qz.io/assets/img/clients/pakaneo.63268af2.webp",
      ElizabethRobertDavis: "123456789",
    },
    {
      KevinCharlesTaylor: "请输入文字",
      MariaJamesJones: "https://qz.io/assets/img/clients/pakaneo.63268af2.webp",
      ElizabethRobertDavis: "123456789",
    },
  ],
};
</script>

<style>
.h100 {
  height: 100%;
  width: 100%;
}
</style>

"vue3-sketch-ruler": "^2.0.9"

Sketch尺子

提示

如果无法安装请切换npm官方镜像 npm config set registry https://registry.npmjs.org/ 同步yarn 淘宝镜像需要时间 如果是历史版本就没问题

  1. 提示esBuild.exe 建议重启项目就没问题了 或者删除原来的node_modules