< template >
< div class = "app-container" >
< div class = "app-container-search main-bgcolor main-radius" >
< h1 class = "" > 生成记录 < / h1 >
< br / >
<!-- 搜索工作栏 -- >
< Bound
ref = "searchForm"
: searchFormParam = "{ queryParams, dataSource }"
: showSearch . sync = "showSearch"
@ handleQuery = "handleQuery"
@ resetQuery = "resetQuery"
> < / Bound >
< / div >
<!-- 操作工具栏 -- >
<!-- 列表 -- >
< div class = "app-container-list main-bgcolor main-radius shopping" >
< div class = "shopping-top" >
< div class = "shopping-title" > 生成记录列表 < / div >
< el -button class = "shopping-add-btn" type = "primary" plain @click ="handleOpenAddBatch"
v - hasPermi = "['identity:scan-record:createBatch']" > 批量新增扫码记录 < / e l - b u t t o n >
< / div >
< el -table v-loading ="loading" :data ="list" >
< el -table -column label = "序号" align = "center" type = "index" width = "80" >
< template v-slot ="{ $index }" >
< span > { { ( $index + 1 ) + ( queryParams . pageNo - 1 ) * queryParams . pageSize } } < / span >
< / template >
< / e l - t a b l e - c o l u m n >
< el -table -column label = "记录编号" align = "center" prop = "generateRecordId" width = "280" >
< template slot -scope = " { row } " >
< el -tooltip class = "item" effect = "dark" :content ="row.generateRecordId" placement = "top" >
< div class = "flex-acenter" >
< span class = "more-width-20" > { { row . generateRecordId } } < / span >
< el -button type = "text" icon = "el-icon-copy-document" @click.stop ="copyContent(row.generateRecordId)" > < / e l - b u t t o n >
< / div >
< / e l - t o o l t i p >
< / template >
< / e l - t a b l e - c o l u m n >
< el -table -column label = "商户名称" align = "center" prop = "belongBusinessName" width = "150" >
< template slot -scope = " { row } " >
< div class = "table-column" >
< span class = "more-width-20" > { { row . belongBusinessName } } < / span >
< el -button type = "text" icon = "el-icon-copy-document" @click.stop ="copyContent(row.belongBusinessName)" > < / e l - b u t t o n >
< / div >
< / template >
< / e l - t a b l e - c o l u m n >
< el -table -column label = "商品名称" align = "center" prop = "goodsName" min -width = " 160 " / >
< el -table -column label = "采收批次" align = "center" prop = "batchId" min -width = " 250 " / >
<!-- 生成时间就是创建时间 对应数据库字段名 -- >
< el -table -column label = "生成时间" align = "center" prop = "createTime" width = "180" >
< template slot -scope = " { row } " >
< span > { { parseTime ( row . createTime ) } } < / span >
< / template >
< / e l - t a b l e - c o l u m n >
< el -table -column label = "码类型" align = "center" prop = "codeType" width = "100" >
< template slot -scope = " scope " >
< span > { { codeText ( scope . row . codeType ) } } < / span >
< / template >
< / e l - t a b l e - c o l u m n >
< el -table -column label = "字符长度" align = "center" prop = "charLength" width = "100" / >
< el -table -column label = "字符类型" align = "center" prop = "charType" width = "100" >
< template slot -scope = " scope " >
< span > { { charText ( scope . row . charType ) } } < / span >
< / template >
< / e l - t a b l e - c o l u m n >
< el -table -column label = "数量" align = "center" prop = "codeNum" width = "100" / >
< el -table -column label = "操作" align = "center" fixed = "right" class -name = " small -padding fixed -width " width = "150" >
< template v-slot ="scope" >
< el -button size = "mini" type = "text"
v - hasPermi = "['identity:code:export']" @ click = "downloadText(scope.row)" > 下载文字码包 < / e l - b u t t o n >
< el -button size = "mini" type = "text"
v - hasPermi = "['identity:code:export']" @ click = "downloadThirdText(scope.row)" > 下载第三方标签文字码包 < / e l - b u t t o n >
< el -button size = "mini" type = "text"
v - hasPermi = "['basic:goods-info:update']" @ click = "downloadImage(scope.row)" > 下载图片文字码包 < / e l - b u t t o n >
< el -button size = "mini" type = "text"
v - hasPermi = "['basic:goods-info:update']" @ click = "downloadNoTextImage(scope.row)" > 下载纯图片码包 < / e l - b u t t o n >
< el -button size = "mini" type = "text" @click ="handleDelete(scope.row)"
v - hasPermi = "['identity:generate-record:delete']" > 删除码包 < / e l - b u t t o n >
< / template >
< / e l - t a b l e - c o l u m n >
< div slot = "empty" >
< EmptyBound / >
< / div >
< / e l - t a b l e >
<!-- 分页组件 -- >
< pagination v -show = " total > 0 " :total=" total " :page.sync=" queryParams . pageNo " :limit.sync=" queryParams . pageSize "
@ pagination = "getList" / >
< / div >
<!-- 对话框 ( 添加 / 修改 ) -- >
< el -dialog title = "批量新增扫码记录" :visible.sync ="open" width = "500px" v -dialogDrag append -to -body >
< el -form ref = "form" :model ="form" :rules ="rules" label -width = " 80px " >
< el -form -item label = "采收批次" prop = "batchIdList" >
< el -select v-model ="form.batchIdList" placeholder="请选择批次" multiple filterable style="width: 100%;" >
< el -option v -for = " item in batchList " :key ="item" :label ="item" :value ="item" / >
< / e l - s e l e c t >
< / e l - f o r m - i t e m >
< el -form -item label = "扫码时间" prop = "scanTime" >
< el -date -picker type = "datetime" placeholder = "请选择扫码时间" v-model ="form.scanTime" style="width: 100%;" > < / el -date -picker >
< / e l - f o r m - i t e m >
< el -form -item label = "手机信息" prop = "mobileSystemInfo" >
< el -input v -model = " form.mobileSystemInfo " type = "textarea" rows = "5" placeholder = "请输入手机信息" / >
< / e l - f o r m - i t e m >
< el -form -item label = "扫码IP" prop = "scanIp" >
< el -input v -model = " form.scanIp " placeholder = "请输入扫码IP" / >
< / e l - f o r m - i t e m >
< el -form -item label = "扫码区域" prop = "scanArea" >
< el -input v -model = " form.scanArea " placeholder = "请输入扫码区域" / >
< / e l - f o r m - i t e m >
< el -form -item label = "扫码地址" prop = "scanLocation" >
< el -input v -model = " form.scanLocation " placeholder = "请输入扫码地址" / >
< / e l - f o r m - i t e m >
< / e l - f o r m >
< div slot = "footer" class = "dialog-footer" >
< el -button type = "primary" @click ="submitForm" :loading ="submitLoading" > 确 定 < / e l - b u t t o n >
< el -button @click ="cancel" > 取 消 < / el -button >
< / div >
< / e l - d i a l o g >
< / div >
< / template >
< script >
import Bound from '@/components/Customer/SearchForm'
import EmptyBound from '@/components/EmptyTable'
import { deleteGenerateRecord , getGenerateRecordPage } from "@/api/identity/generateRecord" ;
import {
getAllBatchCode ,
} from "@/api/production/harvestBatch" ;
import { createCode , exportExcel , exportThirdExcel } from '@/api/identity/code' ;
import { createScanRecordBatch } from "@/api/identity/scanRecord" ;
export default {
name : "GenerateRecord" ,
components : {
EmptyBound ,
Bound ,
} ,
data ( ) {
return {
// 遮罩层
loading : true ,
// 导出遮罩层
exportLoading : false ,
// 显示搜索条件
showSearch : true ,
// 总条数
total : 0 ,
// 标识码生成记录列表
list : [ ] ,
// 弹出层标题
title : "" ,
// 是否显示弹出层
open : false ,
batchList : [ ] ,
// 查询参数
queryParams : {
pageNo : 1 ,
pageSize : 10 ,
belongBusinessName : null ,
batchId : null ,
} ,
dataSource : [
{
key : 'belongBusinessName' , //所属商户
itemType : 'input' ,
label : '商户名称' ,
placeholder : '请输入' ,
onEnterKeyUp : this . handleQuery ,
} ,
{
key : 'batchId' , //采收批次
itemType : 'input' ,
label : '采收批次' ,
placeholder : '请输入采收批次' ,
onEnterKeyUp : this . handleQuery ,
}
] ,
submitLoading : false ,
// 表单参数
form : {
mobileSystemInfo : ` {"type":"h5","userAgent":"Mozilla/5.0 (iPhone; CPU iPhone OS 18_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.1 Mobile/15E148 Safari/604.1","model":"iPhone","brand":"iPhone","platform":"iOS","system":"iOS 18.1"} ` ,
} ,
// 表单校验
rules : {
batchIdList : [
{ required : true , message : "请选择采收批次" , trigger : "blur" } ,
] ,
scanTime : [
{ required : true , message : "请选择扫码时间" , trigger : "blur" } ,
] ,
mobileSystemInfo : [
{ required : true , message : "请输入手机信息" , trigger : "blur" } ,
] ,
scanIp : [
{ required : true , message : "请输入扫码IP" , trigger : "blur" } ,
] ,
scanArea : [
{ required : true , message : "请输入扫码区域" , trigger : "blur" } ,
] ,
scanLocation : [
{ required : true , message : "请输入扫码地址" , trigger : "blur" } ,
] ,
}
} ;
} ,
mounted ( ) {
this . getList ( ) ;
} ,
methods : {
stateText ( state ) {
switch ( state ) {
case 0 :
return '生成中'
case 1 :
return '已生成文字码,未生成图片码'
case 2 :
return '文字及图片码均生成'
}
} ,
codeText ( codeType ) {
switch ( codeType ) {
case 0 :
return '普通码'
case 1 :
return '明暗码'
}
} ,
charText ( charType ) {
switch ( charType ) {
case 0 :
return '纯数字'
case 1 :
return '纯字母'
case 2 :
return '混合类型'
}
} ,
// 下载文字码包
downloadText ( row ) {
exportExcel ( {
generateRecordId : row . generateRecordId ,
} ) . then ( ( res ) => {
this . $download . excel ( res , '文字码包.xls' ) ;
} ) ;
} ,
downloadThirdText ( row ) {
exportThirdExcel ( {
generateRecordId : row . generateRecordId ,
} ) . then ( ( res ) => {
this . $download . excel ( res , '第三方标签文字码包.xls' ) ;
} ) ;
} ,
// 下载图片码包
async downloadImage ( row ) {
let url = row . fileUrl ;
window . open ( url , '_self' ) ;
} ,
async downloadNoTextImage ( row ) {
if ( row . imageFileUrl ) {
window . open ( row . imageFileUrl , '_self' ) ;
} else {
this . $modal . msgError ( "未生成纯图片码包, 请重新生成" ) ;
}
} ,
/** 查询列表 */
getList ( ) {
const { query : { businessName } } = this . $route ;
if ( businessName ) {
this . queryParams . belongBusinessName = businessName ;
}
this . loading = true ;
// 执行查询
getGenerateRecordPage ( this . queryParams ) . then ( response => {
this . list = response . data . list ;
this . total = response . data . total ;
this . loading = false ;
} ) ;
} ,
/** 搜索按钮操作 */
handleQuery ( ) {
this . queryParams . pageNo = 1 ;
this . getList ( ) ;
} ,
/** 重置按钮操作 */
resetQuery ( ) {
this . resetForm ( "queryForm" , "searchForm" ) ;
this . handleQuery ( ) ;
} ,
/** 删除按钮操作 */
handleDelete ( row ) {
const id = row . id ;
this . $modal . confirm ( '是否确认删除标识码生成记录编号为"' + row . generateRecordId + '"的数据项?' ) . then ( function ( ) {
return deleteGenerateRecord ( id ) ;
} ) . then ( ( ) => {
this . getList ( ) ;
this . $modal . msgSuccess ( "删除成功" ) ;
} ) . catch ( ( ) => { } ) ;
} ,
// 存入码仓
async saveCodeWarehouse ( row ) {
let form = {
... row ,
status : row . state ,
}
let res = await createCode ( form ) ;
console . log ( '存入结果' , res ) ;
} ,
handleOpenAddBatch ( ) {
this . open = true ;
getAllBatchCode ( ) . then ( ( { data } ) => {
this . batchList = data ;
} ) ;
} ,
/** 取消按钮 */
cancel ( ) {
this . open = false ;
this . reset ( ) ;
} ,
/** 表单重置 */
reset ( ) {
this . form = {
batchIdList : undefined ,
scanTime : undefined ,
mobileSystemInfo : ` {"type":"h5","userAgent":"Mozilla/5.0 (iPhone; CPU iPhone OS 18_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.1 Mobile/15E148 Safari/604.1","model":"iPhone","brand":"iPhone","platform":"iOS","system":"iOS 18.1"} ` ,
scanIp : undefined ,
scanArea : undefined ,
scanLocation : undefined ,
} ;
this . resetForm ( "form" ) ;
} ,
submitForm ( ) {
this . $refs [ "form" ] . validate ( ( valid ) => {
if ( valid ) {
this . submitLoading = true ;
// this.form.batchIdList = this.form.batchIdList.join(',');
// this.form.createTime = this.form.scanTime;
createScanRecordBatch ( this . form ) . then ( ( ) => {
this . cancel ( ) ;
this . getList ( ) ;
this . $message . success ( "新增成功" ) ;
} ) . finally ( ( ) => {
this . submitLoading = false ;
} ) ;
} else {
return false ;
}
} ) ;
}
}
} ;
< / script >
< style lang = "scss" >
. table - column {
display : flex ;
align - items : center ;
justify - content : center ;
. dian {
width : 5 px ;
height : 5 px ;
border - radius : 100 % ;
background - color : rgb ( 217 , 217 , 217 ) ;
display : inline - block ;
}
. dian - active {
background - color : rgb ( 82 , 196 , 26 ) ;
}
. column - content {
display : inline - block ;
padding - left : 6 px ;
}
}
< / style >