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

vue3输入单号和张数,自动生成连号的单号

需求: 输入连号事件,需要在表格中输入物流单号,物流号码,生成的数量,名称,点击确定自动生成固定数量的连号物流单号

1.页面布局

<div><el-button type="primary" size="default" @click="handleDialog">输入连号</el-button></div><br/><br/><el-table:data="tableData"style="width: 80vw; margin-bottom: 20px"border><el-table-column prop="code" label="快递代码" width="200"></el-table-column><el-table-column prop="no" label="快递单号"></el-table-column><el-table-column prop="name" label="名称"></el-table-column><!-- <el-table-column prop="optes" label="操作"></el-table-column> --></el-table>

弹出层代码:

<el-dialog v-model="showDialog"><el-table:data="tableDataDialog"style="width: 80vw; margin-bottom: 20px"border><el-table-column prop="code" label="快递代码" width="200"><template #default="{row}"><el-input v-model="row.code" maxlength="10"></el-input></template></el-table-column><el-table-column prop="no" label="快递单号"><template #default="{row}"><el-input v-model="row.no" maxlength="8"></el-input></template></el-table-column><el-table-column prop="name" label="名称"><template #default="{row}"><el-input v-model="row.name"></el-input></template></el-table-column><el-table-column prop="num" label="张数"><template #default="{row}"><el-input v-model="row.num" minlength="1"></el-input></template></el-table-column></el-table><el-button type="info" size="default" @click="save">确定</el-button></el-dialog>

定义变量:

const tableData = reactive([])//生成之后的table表格
const tableDataDialog = ref([])//弹出层的表格
const showDialog = ref(false)//控制弹出层显隐

点击输入连号自动先插入一条空数据,用于输入相应地内容

const handleDialog = ()=>{showDialog.value = truelet obj = {code: '',no: '',name: '',num: ''}tableDataDialog.value.push(obj)
}

点击保存时,将弹出层输入的单号,号码,和数量进行数据组装,然后放入到tableData中,关闭弹出层

const save = ()=>{let length = tableDataDialog.value.lengthlet size = new Set(tableDataDialog.value.map(item=>item.code)).sizeif(size !== length){ElMessage('物流号码不能重复')return}let obj = {}let len = tableDataDialog.value[0].code.toString().lengthtableData.value = []tableDataDialog.value.forEach((item)=>{for(var i=0;i<item.num;i++){obj = {code: item.code,no: item.no,name: item.name}item.no++item.no = item.no.toString()for(var j=0;j<len;j++){let noLen = item.no.toString().lengthif(noLen < len){item.no = '0' + item.no//如果输入的为带00xx前缀的号码,自动生成要做补0操作,不然会把0自动去掉noLen++}}tableData.push(obj)showDialog.value = false}})
}

相关文章:

  • 初阶数据结构之---栈和队列(C语言)
  • 【04】C语言括号匹配问题
  • WebServer -- 注册登录
  • Spring Cloud Gateway-系统保护Sentinel集成
  • 什么是区块链粉尘攻击?
  • 【Spring连载】使用Spring Data访问 MongoDB----对象映射之属性转换器
  • 如何打印 springboot 框架中 接收请求的日志
  • 爬虫的一些小技巧总结
  • C++:模版初阶 | STL简介
  • 【Mybatis】快速入门 基本使用 第一期
  • 【JS】解构赋值注意点,解构赋值报错
  • 【微信小程序开发】常用方法封装工具类utils.js
  • Dynamo幕墙探究系列(三)——LunchBox
  • 剑指offer刷题记录Day2 07.数组中重复的数字 ---> 11.旋转数组的最小数字
  • Linux环境安装jira
  • 【Leetcode】104. 二叉树的最大深度
  • 【附node操作实例】redis简明入门系列—字符串类型
  • 10个最佳ES6特性 ES7与ES8的特性
  • angular组件开发
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • java8-模拟hadoop
  • JavaScript 基本功--面试宝典
  • leetcode讲解--894. All Possible Full Binary Trees
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • node和express搭建代理服务器(源码)
  • Python利用正则抓取网页内容保存到本地
  • Python中eval与exec的使用及区别
  • windows下mongoDB的环境配置
  • 编写符合Python风格的对象
  • 从tcpdump抓包看TCP/IP协议
  • 什么软件可以剪辑音乐?
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • #考研#计算机文化知识1(局域网及网络互联)
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • $.ajax,axios,fetch三种ajax请求的区别
  • (11)MSP430F5529 定时器B
  • (二)Linux——Linux常用指令
  • (分布式缓存)Redis持久化
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (附源码)ssm高校志愿者服务系统 毕业设计 011648
  • (规划)24届春招和25届暑假实习路线准备规划
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • (状压dp)uva 10817 Headmaster's Headache
  • .NET LINQ 通常分 Syntax Query 和Syntax Method
  • .net mvc 获取url中controller和action
  • .NET/ASP.NETMVC 深入剖析 Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(二)...
  • .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换
  • .net专家(高海东的专栏)
  • /usr/local/nginx/logs/nginx.pid failed (2: No such file or directory)
  • @Async注解的坑,小心
  • @test注解_Spring 自定义注解你了解过吗?
  • @开发者,一文搞懂什么是 C# 计时器!