Browse Source

YT-1928:补给品发料标签部分功能

intex_online20250220
songguoqiang 2 weeks ago
parent
commit
1f98b0cb6d
  1. 9
      src/api/wms/supplyLabel/index.ts
  2. 166
      src/views/wms/basicDataManage/labelManage/supplyLabel/index.vue
  3. 100
      src/views/wms/basicDataManage/labelManage/supplyLabel/supplyLabel.data.ts

9
src/api/wms/supplyLabel/index.ts

@ -46,4 +46,13 @@ export const exportSupplyLabel = async (params) => {
// 下载用户导入模板
export const importTemplate = () => {
return request.download({ url: '/wms/supply-label/get-import-template' })
}
// 启用
export const enableOption = async (id: number) => {
return await request.enable({ url: `/wms/supply-label/enable?id=` + id })
}
// 禁用
export const disableOption = async (id: number) => {
return await request.disable({ url: `/wms/supply-label/disable?id=` + id })
}

166
src/views/wms/basicDataManage/labelManage/supplyLabel/index.vue

@ -17,6 +17,7 @@
<!-- 列表 -->
<ContentWrap>
<Table
ref="tableRef" :selection="true"
:columns="tableColumns"
:data="tableObject.tableList"
:loading="tableObject.loading"
@ -26,14 +27,15 @@
v-model:pageSize="tableObject.pageSize"
v-model:currentPage="tableObject.currentPage"
v-model:sort="tableObject.sort"
@getSelectionRows="getSelectionRows"
>
<template #code="{row}">
<el-button type="primary" link @click="openDetail(row, '代码', row.code)">
<span>{{ row.code }}</span>
<template #itemCode="{row}">
<el-button type="primary" link @click="openDetail(row, '代码', row.itemCode)">
<span>{{ row.itemCode }}</span>
</el-button>
</template>
<template #action="{ row }">
<ButtonBase :Butttondata="butttondata" @button-base-click="buttonTableClick($event,row)" />
<ButtonBaseMore :Butttondata="butttondata(row)" @button-base-click="buttonTableClick($event,row)" />
</template>
</Table>
</ContentWrap>
@ -65,6 +67,10 @@ import * as defaultButtons from '@/utils/disposition/defaultButtons'
import TableHead from '@/components/TableHead/src/TableHead.vue'
import ImportForm from '@/components/ImportForm/src/ImportForm.vue'
import Detail from '@/components/Detail/src/Detail.vue'
import * as PackageApi from '@/api/wms/package'
import * as LocationApi from '@/api/wms/location'
import { getJmreportBaseUrl } from '@/utils/systemParam'
import { getAccessToken } from '@/utils/auth'
defineOptions({ name: 'SupplyLabel' })
@ -78,11 +84,29 @@ const tableColumns = ref(SupplyLabel.allSchemas.tableColumns)
//
const searchTableSuccess = (formField, searchField, val, formRef) => {
// nextTick(() => {
// const setV = {}
// setV[formField] = val[0][searchField]
// formRef.setValues(setV)
// })
nextTick(() => {
const setV = {}
setV[formField] = val[0][searchField]
formRef.setValues(setV)
})
console.log('searchTableSuccess',formField, searchField, val)
const setV = {}
if (formField == 'itemCode') {
setV['itemCode'] = val[0]['code']
setV['uom'] = val[0]['uom']
setV['itemGroup'] = val[0]['itemGroup']
setV['backNumber'] = val[0]['backNumber']
} else if (formField == 'locationCode') {
//
setV['locationCode'] = val[0]['code']
}else {
setV[formField] = val[0][searchField]
}
formRef.setValues(setV)
})
}
//
@ -102,6 +126,7 @@ const HeadButttondata = [
defaultButtons.defaultAddBtn({hasPermi:'wms:supplyLabel:create'}), //
defaultButtons.defaultImportBtn({hasPermi:'wms:supplyLabel:import'}), //
defaultButtons.defaultExportBtn({hasPermi:'wms:supplyLabel:export'}), //
defaultButtons.mainLisSelectiontPointBtn(null), //
defaultButtons.defaultFreshBtn(null), //
defaultButtons.defaultFilterBtn(null), //
defaultButtons.defaultSetBtn(null), //
@ -126,29 +151,84 @@ const buttonBaseClick = (val, item) => {
} else if (val == 'refresh') { //
getList()
} else if (val == 'filtrate') { //
} else { //
} else if (val=='selection_point'){//
handleSelectionPoint()
}else { //
console.log('其他按钮', item)
}
}
const isShowMainButton = (row, val) => {
if (val.indexOf(row.available) > -1) {
return false
} else {
return true
}
}
// -
const butttondata = [
const butttondata = (row) => {
return[
defaultButtons.mainListEditBtn({hasPermi:'wms:supplyLabel:update'}), //
defaultButtons.mainListEnableBtn({hide: isShowMainButton(row, ['FALSE']),hasPermi: 'wms:supplyLabel:enable'}), //
defaultButtons.mainListDisableBtn({hide: isShowMainButton(row, ['TRUE']),hasPermi: 'wms:supplyLabel:disable'}), //
defaultButtons.mainListDeleteBtn({hasPermi:'wms:supplyLabel:delete'}), //
]
defaultButtons.mainListPointBtn(null), //
]
}
const BASE_URL = getJmreportBaseUrl()
const src = ref(BASE_URL + '/jmreport/view/924811818898698240?token=' + getAccessToken())
const srcPoint = ref(BASE_URL + '/jmreport/view/940818992169918464?token=' + getAccessToken())
// -
const buttonTableClick = async (val, row) => {
if (val == 'edit') { //
openForm('update', row)
} else if (val == 'delete') { //
handleDelete(row.id)
}else if (val == 'enable') {//
handleEnable(row.id)
} else if (val == 'disable') {//
handleDisable(row.id)
} else if (val == 'point') { //
handlePoint(row)
}
}
/** 添加/修改操作 */
const basicFormRef = ref()
const openForm = (type: string, row?: any) => {
const openForm = async(type: string, row?: any) => {
if (type == 'update') {
// tableform
SupplyLabel.allSchemas.formSchema.map(itemColumns => {
if(itemColumns.field == 'itemCode') {
itemColumns.componentProps.isSearchList = false
itemColumns.componentProps.disabled = true
}
if(itemColumns.field == 'productionLineCode') {
itemColumns.componentProps.isSearchList = false
itemColumns.componentProps.disabled = true
}
})
} else {
// tableform
SupplyLabel.allSchemas.formSchema.map(itemColumns => {
if(itemColumns.field == 'itemCode') {
itemColumns.componentProps.isSearchList = true
itemColumns.componentProps.disabled = false
}
})
}
let param = {
'areaType':'BS',
'available': 'TRUE',
'pageSize': 20,
'pageNo': 1,
'by': 'ASC',
}
const data = await LocationApi.getLocationPage(param)
let locationCode = data[0]?.code;
console.log('row',row);
row.locationCode = locationCode;
basicFormRef.value.open(type, row)
}
@ -235,6 +315,66 @@ const searchFormClick = (searchData) => {
getList() //
}
const handleEnable = async (id: number) => {
try {
await SupplyLabelApi.enableOption(id)
message.success(t('common.updateSuccess'))
//
await getList()
} catch {}
}
const handleDisable = async (id: number) => {
try {
await SupplyLabelApi.disableOption(id)
message.success(t('common.updateSuccess'))
//
await getList()
} catch {}
}
const handlePoint = async (row) => {
let rows = [row.id]; // row.id
await PackageApi.batchPrintingLable(rows.join(',')).then(res => {
window.open(srcPoint.value + '&relateNumber=' + res);
message.success('创建标签成功');
}).catch(err => {
message.error('创建标签失败');
});
}
//
const handleSelectionPoint = async ()=>{
let rows:any = []
selectionRows.value.forEach(item=>{
rows = [...rows,...item.selectionRows.map(item1=>item1.id)]
})
console.log('批量打印',rows.join(','))
await PackageApi.batchPrintingLable(rows.join(',')).then(res => {
console.log(res)
window.open(srcPoint.value+'&relateNumber='+res)
message.success('创建标签成功')
}).catch(err => {
console.log(err)
message.error('创建标签失败')
})
}
const selectionRows = ref<any>([])
const tableRef = ref()
const getSelectionRows = (currentPage,currentPageSelectionRows) => {
console.log("getSelectionRows",currentPage,currentPageSelectionRows)
const currentRows = selectionRows.value.find(item=>item.currentPage==currentPage)
if(currentRows){
currentRows.selectionRows = currentPageSelectionRows
}else{
selectionRows.value.push({
currentPage,
selectionRows:currentPageSelectionRows
})
}
}
/** 初始化 **/
onMounted(async () => {
getList()

100
src/views/wms/basicDataManage/labelManage/supplyLabel/supplyLabel.data.ts

@ -82,26 +82,6 @@ export const SupplyLabel = useCrudSchemas(reactive<CrudSchema[]>([
}
}
},
{
label: '计量单位', // 发料申请 与当前物料计量单位做匹配 : 原PACK_UNIT 修改:UOM
field: 'uom',
dictType: DICT_TYPE.UOM,
dictClass: 'string',
isTable: true,
sort: 'custom',
table: {
width: 150
},
tableForm: {
disabled: true,
type: 'Select'
},
form: {
componentProps: {
disabled: true
}
}
},
{
label: '货架号',
field: 'itemGroup',
@ -114,10 +94,11 @@ export const SupplyLabel = useCrudSchemas(reactive<CrudSchema[]>([
disabled: true
}
},
hiddenSearchHigh:true,
},
{
label: '库位',
field: 'location',
label: '所在库位',
field: 'locationCode',
sort: 'custom',
table: {
width: 150
@ -146,6 +127,26 @@ export const SupplyLabel = useCrudSchemas(reactive<CrudSchema[]>([
},
isSearch: true
},
{
label: '计量单位', // 发料申请 与当前物料计量单位做匹配 : 原PACK_UNIT 修改:UOM
field: 'uom',
dictType: DICT_TYPE.UOM,
dictClass: 'string',
isTable: true,
sort: 'custom',
table: {
width: 150
},
tableForm: {
disabled: true,
type: 'Select'
},
form: {
componentProps: {
disabled: true
}
}
},
// {
// label: '是否可用',
// field: 'available',
@ -169,6 +170,38 @@ export const SupplyLabel = useCrudSchemas(reactive<CrudSchema[]>([
// width: 110
// }
// },
{
label: '是否可用',
field: 'available',
sort: 'custom',
isSearch:true,
isForm: false,
dictType: DICT_TYPE.TRUE_FALSE,
dictClass: 'string', // 默认都是字符串类型其他暂不考虑
search: {
value: 'TRUE',
},
form: {
component: 'Switch',
value: 'TRUE',
componentProps: {
inactiveValue: 'FALSE',
activeValue: 'TRUE'
}
},
table: {
width: 110
}
},
{
label: '创建者',
field: 'creator',
table: {
width: 130
},
isForm: false,
isTable: true
},
{
label: '创建时间',
field: 'createTime',
@ -191,13 +224,14 @@ export const SupplyLabel = useCrudSchemas(reactive<CrudSchema[]>([
}
},
{
label: '创建者',
field: 'creator',
table: {
width: 130
},
label: '最后更新者',
field: 'updater',
isDetail: true,
isForm: false,
isTable: true
isTable: true,
table: {
width: 150
}
},
{
label: '最后更新时间',
@ -223,16 +257,6 @@ export const SupplyLabel = useCrudSchemas(reactive<CrudSchema[]>([
}
}
},
{
label: '最后更新者',
field: 'updater',
isDetail: true,
isForm: false,
isTable: true,
table: {
width: 150
}
},
{
label: '操作',
field: 'action',

Loading…
Cancel
Save