Browse Source

标签特殊修改

master
常熟吴彦祖 1 month ago
parent
commit
6144b1ae16
  1. 95
      src/api/warehouse/availabilityControlId.js
  2. 6
      src/api/warehouse/changeHUSpecialItem.js
  3. 324
      src/views/modules/warehouse/availabilityControlId.vue
  4. 349
      src/views/modules/warehouse/changeHUSpecialItem.vue

95
src/api/warehouse/availabilityControlId.js

@ -0,0 +1,95 @@
/**
* 可用性控制ID API - rqrq
* @date 2025/12/02
*/
import httpRequest from '@/utils/httpRequest'
/**
* 查询列表不分页- rqrq
* @param {Object} data 查询条件
* @returns {Promise}
*/
export function list(data) {
return httpRequest({
url: httpRequest.adornUrl('/warehouse/availabilityControlId/list'),
method: 'post',
data: httpRequest.adornData(data)
})
}
/**
* 查询启用的列表用于下拉选择- rqrq
* @returns {Promise}
*/
export function activeList() {
return httpRequest({
url: httpRequest.adornUrl('/warehouse/availabilityControlId/activeList'),
method: 'post',
data: httpRequest.adornData({})
})
}
/**
* 根据ID查询描述 - rqrq
* @param {String} availabilityControlId 可用性控制ID
* @returns {Promise}
*/
export function getDescById(availabilityControlId) {
return httpRequest({
url: httpRequest.adornUrl('/warehouse/availabilityControlId/getDescById'),
method: 'post',
data: httpRequest.adornData({ availabilityControlId })
})
}
/**
* 获取详情 - rqrq
* @param {Number} id 主键ID
* @returns {Promise}
*/
export function info(id) {
return httpRequest({
url: httpRequest.adornUrl(`/warehouse/availabilityControlId/info/${id}`),
method: 'get'
})
}
/**
* 保存 - rqrq
* @param {Object} data 实体数据
* @returns {Promise}
*/
export function save(data) {
return httpRequest({
url: httpRequest.adornUrl('/warehouse/availabilityControlId/save'),
method: 'post',
data: httpRequest.adornData(data)
})
}
/**
* 更新 - rqrq
* @param {Object} data 实体数据
* @returns {Promise}
*/
export function update(data) {
return httpRequest({
url: httpRequest.adornUrl('/warehouse/availabilityControlId/update'),
method: 'post',
data: httpRequest.adornData(data)
})
}
/**
* 删除 - rqrq
* @param {Number} id 主键ID
* @returns {Promise}
*/
export function deleteById(id) {
return httpRequest({
url: httpRequest.adornUrl('/warehouse/availabilityControlId/delete'),
method: 'post',
data: httpRequest.adornData({ id })
})
}

6
src/api/warehouse/changeHUSpecialItem.js

@ -14,3 +14,9 @@ export const updateHandlingUnitSpecial = data => createAPI('/warehouse/handlingu
// 批量修改标签特殊信息 - rqrq // 批量修改标签特殊信息 - rqrq
export const batchUpdateHandlingUnitSpecial = data => createAPI('/warehouse/handlingunit/batchUpdateSpecial', 'POST', data) export const batchUpdateHandlingUnitSpecial = data => createAPI('/warehouse/handlingunit/batchUpdateSpecial', 'POST', data)
// 批量修改Availability Control ID(调用IFS接口同步)- rqrq
export const batchChangeAvailabilityControlId = data => createAPI('/warehouse/handlingunit/batchChangeAvailabilityControlId', 'POST', data)
// 批量修改失效日期(调用IFS接口同步)- rqrq
export const batchChangeExpiryDate = data => createAPI('/warehouse/handlingunit/batchChangeExpiryDate', 'POST', data)

324
src/views/modules/warehouse/availabilityControlId.vue

@ -0,0 +1,324 @@
<template>
<div class="mod-config yzz">
<!-- 查询表单 - rqrq -->
<el-form :inline="true" label-position="top">
<el-form-item label="可用性控制ID">
<el-input style="width: 150px;" v-model="queryData.searchAvailabilityControlId" placeholder="请输入" @keyup.enter.native="getDataList()" clearable></el-input>
</el-form-item>
<el-form-item label="描述">
<el-input style="width: 150px;" v-model="queryData.searchAvailabilityControlDesc" placeholder="请输入" @keyup.enter.native="getDataList()" clearable></el-input>
</el-form-item>
<el-form-item label="状态">
<el-select v-model="queryData.searchActive" placeholder="请选择" style="width: 120px;" clearable>
<el-option label="全部" value=""></el-option>
<el-option label="启用" value="Y"></el-option>
<el-option label="禁用" value="N"></el-option>
</el-select>
</el-form-item>
<el-form-item style="margin-top: 20px;">
<el-button @click="getDataList()" type="primary">查询</el-button>
<el-button @click="resetQuery()" type="default">重置</el-button>
<el-button @click="openAddDialog()" type="primary" class="yzzButtonAn">新增</el-button>
</el-form-item>
</el-form>
<!-- 数据表格 - rqrq -->
<el-table
:height="height"
:data="dataList"
border
highlight-current-row
v-loading="dataListLoading"
style="width: 100%; margin-top: 3px">
<el-table-column
prop="availabilityControlId"
header-align="center"
align="center"
label="可用性控制ID"
min-width="150">
</el-table-column>
<el-table-column
prop="availabilityControlDesc"
header-align="center"
align="left"
label="描述"
min-width="200"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="active"
header-align="center"
align="center"
label="状态"
min-width="80">
<template slot-scope="scope">
<span :style="{ color: scope.row.active === 'Y' ? '#67C23A' : '#F56C6C' }">
{{ scope.row.active === 'Y' ? '启用' : '禁用' }}
</span>
</template>
</el-table-column>
<el-table-column
prop="createdBy"
header-align="center"
align="center"
label="创建人"
min-width="100">
</el-table-column>
<el-table-column
prop="createdTime"
header-align="center"
align="center"
label="创建时间"
min-width="150">
<template slot-scope="scope">
{{ formatDate(scope.row.createdTime) }}
</template>
</el-table-column>
<el-table-column
prop="updatedBy"
header-align="center"
align="center"
label="修改人"
min-width="100">
</el-table-column>
<el-table-column
prop="updatedTime"
header-align="center"
align="center"
label="修改时间"
min-width="150">
<template slot-scope="scope">
{{ formatDate(scope.row.updatedTime) }}
</template>
</el-table-column>
<el-table-column
label="操作"
min-width="120"
fixed="right"
header-align="center"
align="center">
<template slot-scope="scope">
<a @click="openEditDialog(scope.row)" type="primary" style="margin-right: 10px;">编辑</a>
<a @click="handleDelete(scope.row)" type="primary" style="color: #F56C6C;">删除</a>
</template>
</el-table-column>
</el-table>
<!-- 新增/编辑弹窗 - rqrq -->
<el-dialog
:title="dialogType === 'add' ? '新增可用性控制ID' : '编辑可用性控制ID'"
:visible.sync="dialogVisible"
:close-on-click-modal="false"
v-drag
width="500px">
<el-form :model="formData" ref="dataForm" label-position="top" style="margin-top: 1px;">
<el-row :gutter="20">
<el-col :span="24">
<el-form-item label="可用性控制ID" required>
<el-input v-model="formData.availabilityControlId" placeholder="请输入可用性控制ID" :disabled="dialogType === 'edit'"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="24">
<el-form-item label="描述">
<el-input v-model="formData.availabilityControlDesc" placeholder="请输入描述"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="24">
<el-form-item label="状态">
<el-radio-group v-model="formData.active">
<el-radio label="Y">启用</el-radio>
<el-radio label="N">禁用</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="handleSave" :disabled="saveLoading">
{{ saveLoading ? '保存中...' : '保存' }}
</el-button>
<el-button @click="dialogVisible = false" :disabled="saveLoading">取消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { list, save, update, deleteById } from '@/api/warehouse/availabilityControlId'
export default {
data() {
return {
// - rqrq
height: 500,
dataListLoading: false,
// - rqrq
dialogVisible: false,
dialogType: 'add', // add edit
saveLoading: false,
// - rqrq
dataList: [],
// - rqrq
queryData: {
searchAvailabilityControlId: '',
searchAvailabilityControlDesc: '',
searchActive: ''
},
// - rqrq
formData: {
id: null,
availabilityControlId: '',
availabilityControlDesc: '',
active: 'Y'
}
}
},
mounted() {
this.$nextTick(() => {
this.height = window.innerHeight - 200
})
this.getDataList()
},
methods: {
// - rqrq
getDataList() {
this.dataListLoading = true
list(this.queryData).then(({ data }) => {
this.dataListLoading = false
if (data && data.code == 0) {
this.dataList = data.rows || []
} else {
this.dataList = []
this.$message.error(data.msg || '查询失败')
}
}).catch(() => {
this.dataListLoading = false
this.$message.error('查询失败')
})
},
// - rqrq
resetQuery() {
this.queryData = {
searchAvailabilityControlId: '',
searchAvailabilityControlDesc: '',
searchActive: ''
}
this.getDataList()
},
// - rqrq
openAddDialog() {
this.dialogType = 'add'
this.formData = {
id: null,
availabilityControlId: '',
availabilityControlDesc: '',
active: 'Y'
}
this.dialogVisible = true
},
// - rqrq
openEditDialog(row) {
this.dialogType = 'edit'
this.formData = {
id: row.id,
availabilityControlId: row.availabilityControlId,
availabilityControlDesc: row.availabilityControlDesc,
active: row.active
}
this.dialogVisible = true
},
// - rqrq
handleSave() {
// - rqrq
if (!this.formData.availabilityControlId) {
this.$message.warning('请输入可用性控制ID')
return
}
this.saveLoading = true
const apiMethod = this.dialogType === 'add' ? save : update
apiMethod(this.formData).then(({ data }) => {
if (data && data.code == 0) {
this.$message.success('保存成功')
this.dialogVisible = false
this.getDataList()
} else {
this.$alert(data.msg || '保存失败', '提示', { type: 'error' })
}
}).catch(() => {
this.$message.error('保存失败')
}).finally(() => {
this.saveLoading = false
})
},
// - rqrq
handleDelete(row) {
this.$confirm(`确定要删除 [${row.availabilityControlId}] 吗?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
deleteById(row.id).then(({ data }) => {
if (data && data.code == 0) {
this.$message.success('删除成功')
this.getDataList()
} else {
this.$alert(data.msg || '删除失败', '提示', { type: 'error' })
}
}).catch(() => {
this.$message.error('删除失败')
})
}).catch(() => {})
},
// - rqrq
formatDate(dateStr) {
if (!dateStr) return ''
const date = new Date(dateStr)
const year = date.getFullYear()
const month = String(date.getMonth() + 1).padStart(2, '0')
const day = String(date.getDate()).padStart(2, '0')
const hours = String(date.getHours()).padStart(2, '0')
const minutes = String(date.getMinutes()).padStart(2, '0')
const seconds = String(date.getSeconds()).padStart(2, '0')
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`
}
}
}
</script>
<style scoped>
/* 按钮禁用样式 - rqrq */
.el-button:disabled {
opacity: 0.6;
cursor: not-allowed;
}
</style>

349
src/views/modules/warehouse/changeHUSpecialItem.vue

@ -146,17 +146,17 @@
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="订单参考1"> <el-form-item label="订单参考1">
<el-input v-model="formData.orderRef1" placeholder="请输入订单参考1" readonly></el-input>
<el-input v-model="formData.orderRef1" readonly></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="订单参考2"> <el-form-item label="订单参考2">
<el-input v-model="formData.orderRef2" placeholder="请输入订单参考2" readonly></el-input>
<el-input v-model="formData.orderRef2" readonly></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="订单参考3"> <el-form-item label="订单参考3">
<el-input v-model="formData.orderRef3" placeholder="请输入订单参考3" readonly></el-input>
<el-input v-model="formData.orderRef3" readonly></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -165,12 +165,12 @@
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="供应商ID"> <el-form-item label="供应商ID">
<el-input v-model="formData.supplierId" placeholder="请输入供应商ID" readonly></el-input>
<el-input v-model="formData.supplierId" readonly></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="客户ID"> <el-form-item label="客户ID">
<el-input v-model="formData.customerId" placeholder="请输入客户ID" readonly></el-input>
<el-input v-model="formData.customerId" readonly></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -193,12 +193,12 @@
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="来源类型"> <el-form-item label="来源类型">
<el-input v-model="formData.sourceType" placeholder="请输入来源类型" readonly></el-input>
<el-input v-model="formData.sourceType" readonly></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="来源参考"> <el-form-item label="来源参考">
<el-input v-model="formData.sourceRef" placeholder="请输入来源参考" readonly></el-input>
<el-input v-model="formData.sourceRef" readonly></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -207,22 +207,22 @@
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="6"> <el-col :span="6">
<el-form-item label="毛重"> <el-form-item label="毛重">
<el-input v-model="formData.grossWeight" placeholder="请输入毛重" readonly></el-input>
<el-input v-model="formData.grossWeight" readonly></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="净重"> <el-form-item label="净重">
<el-input v-model="formData.netWeight" placeholder="请输入净重" readonly></el-input>
<el-input v-model="formData.netWeight" readonly></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="重量单位"> <el-form-item label="重量单位">
<el-input v-model="formData.weightUnit" placeholder="请输入重量单位" readonly></el-input>
<el-input v-model="formData.weightUnit" readonly></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="6"> <el-col :span="6">
<el-form-item label="EngChgLevel"> <el-form-item label="EngChgLevel">
<el-input v-model="formData.engChgLevel" placeholder="请输入EngChgLevel" readonly></el-input>
<el-input v-model="formData.engChgLevel" readonly></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -230,12 +230,12 @@
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="体积"> <el-form-item label="体积">
<el-input v-model="formData.volume" placeholder="请输入体积" readonly></el-input>
<el-input v-model="formData.volume" readonly></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="体积单位"> <el-form-item label="体积单位">
<el-input v-model="formData.volumeUnit" placeholder="请输入体积单位" readonly></el-input>
<el-input v-model="formData.volumeUnit" readonly></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -244,17 +244,17 @@
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="预留订单参考1"> <el-form-item label="预留订单参考1">
<el-input v-model="formData.reserveOrderRef1" placeholder="请输入预留订单参考1" readonly></el-input>
<el-input v-model="formData.reserveOrderRef1" readonly></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="预留订单参考2"> <el-form-item label="预留订单参考2">
<el-input v-model="formData.reserveOrderRef2" placeholder="请输入预留订单参考2" readonly></el-input>
<el-input v-model="formData.reserveOrderRef2" readonly></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="预留订单参考3"> <el-form-item label="预留订单参考3">
<el-input v-model="formData.reserveOrderRef3" placeholder="请输入预留订单参考3" readonly></el-input>
<el-input v-model="formData.reserveOrderRef3" readonly></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -263,7 +263,7 @@
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="备注"> <el-form-item label="备注">
<el-input v-model="formData.remark" type="textarea" :rows="3" resize='none' placeholder="请输入备注" readonly></el-input>
<el-input v-model="formData.remark" type="textarea" :rows="3" resize='none' readonly></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -280,11 +280,7 @@
:visible.sync="wdrDialogVisible" :visible.sync="wdrDialogVisible"
:close-on-click-modal="false" :close-on-click-modal="false"
v-drag v-drag
width="600px">
<div style="margin-bottom: 15px;">
<span>界面2点击Change W/D/R弹出如下对话框</span>
</div>
width="400px">
<el-form label-position="top" style="margin-top: 1px; margin-left: 0px;"> <el-form label-position="top" style="margin-top: 1px; margin-left: 0px;">
<el-form-item label="To W/D/R"> <el-form-item label="To W/D/R">
@ -293,10 +289,10 @@
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="closeWdrDialog" :disabled="wdrSaveLoading">Close</el-button>
<el-button type="primary" @click="saveWdrChange" :disabled="wdrSaveLoading"> <el-button type="primary" @click="saveWdrChange" :disabled="wdrSaveLoading">
{{ wdrSaveLoading ? 'Save中...' : 'Save' }} {{ wdrSaveLoading ? 'Save中...' : 'Save' }}
</el-button> </el-button>
<el-button @click="closeWdrDialog" :disabled="wdrSaveLoading">Close</el-button>
</div> </div>
</el-dialog> </el-dialog>
@ -306,11 +302,8 @@
:visible.sync="expDateDialogVisible" :visible.sync="expDateDialogVisible"
:close-on-click-modal="false" :close-on-click-modal="false"
v-drag v-drag
width="600px">
width="400px">
<div style="margin-bottom: 15px;">
<span>界面3点击Change Expiration Date弹出如下对话框</span>
</div>
<el-form label-position="top" style="margin-top: 1px; margin-left: 0px;"> <el-form label-position="top" style="margin-top: 1px; margin-left: 0px;">
<el-form-item label="New Expiration Date"> <el-form-item label="New Expiration Date">
@ -325,10 +318,10 @@
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="closeExpDateDialog" :disabled="expDateSaveLoading">Close</el-button>
<el-button type="primary" @click="saveExpDateChange" :disabled="expDateSaveLoading"> <el-button type="primary" @click="saveExpDateChange" :disabled="expDateSaveLoading">
{{ expDateSaveLoading ? 'Save中...' : 'Save' }} {{ expDateSaveLoading ? 'Save中...' : 'Save' }}
</el-button> </el-button>
<el-button @click="closeExpDateDialog" :disabled="expDateSaveLoading">Close</el-button>
</div> </div>
</el-dialog> </el-dialog>
@ -338,28 +331,79 @@
:visible.sync="availDialogVisible" :visible.sync="availDialogVisible"
:close-on-click-modal="false" :close-on-click-modal="false"
v-drag v-drag
width="600px">
<div style="margin-bottom: 15px;">
<span>界面4点击Change Availability Control ID弹出如下对话框</span>
</div>
width="400px">
<el-form label-position="top" style="margin-top: 1px; margin-left: 0px;"> <el-form label-position="top" style="margin-top: 1px; margin-left: 0px;">
<el-form-item label="New Availability Control ID"> <el-form-item label="New Availability Control ID">
<el-input v-model="availFormData.newAvailId" placeholder="请输入Availability Control ID">
<el-input v-model="availFormData.newAvailId" placeholder="请输入Availability Control ID" @blur="handleAvailIdBlur">
<el-button slot="append" @click="showAvailList">List</el-button> <el-button slot="append" @click="showAvailList">List</el-button>
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item label="New Availability Control Desc"> <el-form-item label="New Availability Control Desc">
<el-input v-model="availFormData.newAvailDesc" placeholder="请输入描述"></el-input>
<el-input v-model="availFormData.newAvailDesc" disabled placeholder="描述(自动填充)"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="closeAvailDialog" :disabled="availSaveLoading">Close</el-button>
<el-button type="primary" @click="saveAvailChange" :disabled="availSaveLoading"> <el-button type="primary" @click="saveAvailChange" :disabled="availSaveLoading">
{{ availSaveLoading ? 'Save中...' : 'Save' }} {{ availSaveLoading ? 'Save中...' : 'Save' }}
</el-button> </el-button>
<el-button @click="closeAvailDialog" :disabled="availSaveLoading">Close</el-button>
</div>
</el-dialog>
<!-- Availability Control ID 选择弹窗 - rqrq -->
<el-dialog
title="选择 Availability Control ID"
:visible.sync="availListDialogVisible"
:close-on-click-modal="false"
v-drag
width="600px"
append-to-body>
<!-- 搜索区域 - rqrq -->
<el-form :inline="true" label-position="top" style="margin-bottom: 10px;">
<el-form-item label="ID">
<el-input style="width: 150px;" v-model="availListQueryData.searchAvailabilityControlId" placeholder="请输入" @keyup.enter.native="getAvailList()" clearable></el-input>
</el-form-item>
<el-form-item label="描述">
<el-input style="width: 150px;" v-model="availListQueryData.searchAvailabilityControlDesc" placeholder="请输入" @keyup.enter.native="getAvailList()" clearable></el-input>
</el-form-item>
<el-form-item style="margin-top: 20px;">
<el-button @click="getAvailList()" type="primary">查询</el-button>
</el-form-item>
</el-form>
<!-- 列表 - rqrq -->
<el-table
:data="availListData"
border
highlight-current-row
v-loading="availListLoading"
@row-dblclick="handleAvailListDblClick"
height="300"
style="width: 100%;">
<el-table-column
prop="availabilityControlId"
header-align="center"
align="center"
label="Availability Control ID"
min-width="180">
</el-table-column>
<el-table-column
prop="availabilityControlDesc"
header-align="center"
align="left"
label="描述"
min-width="250"
show-overflow-tooltip>
</el-table-column>
</el-table>
<div slot="footer" class="dialog-footer">
<el-button @click="availListDialogVisible = false">关闭</el-button>
</div> </div>
</el-dialog> </el-dialog>
@ -367,7 +411,8 @@
</template> </template>
<script> <script>
import { searchHandlingUnitList } from '@/api/warehouse/changeHUSpecialItem'
import { searchHandlingUnitList, batchChangeAvailabilityControlId, batchChangeExpiryDate } from '@/api/warehouse/changeHUSpecialItem'
import { activeList, getDescById } from '@/api/warehouse/availabilityControlId'
export default { export default {
data() { data() {
@ -387,6 +432,15 @@ export default {
expDateSaveLoading: false, expDateSaveLoading: false,
availSaveLoading: false, availSaveLoading: false,
// Availability Control ID - rqrq
availListDialogVisible: false,
availListLoading: false,
availListData: [],
availListQueryData: {
searchAvailabilityControlId: '',
searchAvailabilityControlDesc: ''
},
// - rqrq // - rqrq
dataList: [], dataList: [],
dataListSelections: [], dataListSelections: [],
@ -843,15 +897,81 @@ export default {
return return
} }
// - rqrq
const selectedCount = this.dataListSelections.length
// - rqrq
const inventoryKeySet = new Set()
this.dataListSelections.forEach(item => {
const key = `${item.site}|${item.partNo}|${item.locationId}|${item.batchNo}|${item.wdr}|${item.engChgLevel}`
inventoryKeySet.add(key)
})
const inventoryCount = inventoryKeySet.size
// - rqrq
const confirmMsg = `您选择了 ${selectedCount} 个标签,涉及 ${inventoryCount} 行ERP库存。\n\n` +
`注意:同一行ERP库存下的所有标签将一起被修改为新的失效日期:${this.expDateFormData.newExpDate}\n\n` +
`确定要执行此操作吗?`
this.$confirm(confirmMsg, '确认修改', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.doSaveExpDateChange()
}).catch(() => {})
},
// Expiration Date - rqrq
doSaveExpDateChange() {
this.expDateSaveLoading = true this.expDateSaveLoading = true
// TODO: API - rqrq
setTimeout(() => {
const requestData = {
selectedItems: this.dataListSelections,
newExpiryDate: this.expDateFormData.newExpDate
}
batchChangeExpiryDate(requestData).then(({ data }) => {
if (data && data.code == 0) {
const result = data.row
if (result.allSuccess) {
// - rqrq
this.$message.success(`失效日期修改成功,共更新 ${result.successCount} 行ERP库存`)
this.closeExpDateDialog()
} else {
// - rqrq
let failedMsg = `成功:${result.successCount} 行,失败:${result.failCount}\n\n`
failedMsg += `以下标签更新失败:\n`
for (let i = 0; i < result.failedUnitIds.length; i++) {
failedMsg += `- ${result.failedUnitIds[i]}`
if (result.failedReasons && result.failedReasons[i]) {
failedMsg += `${result.failedReasons[i]}`
}
failedMsg += '\n'
}
this.$alert(failedMsg, '部分更新失败', {
confirmButtonText: '确定',
type: 'warning',
callback: () => {
this.closeExpDateDialog()
this.getDataList()
}
})
return
}
this.getDataList()
} else {
this.$alert(data.msg || '修改失败', '提示', { type: 'error' })
}
}).catch((error) => {
this.$message.error('修改失败:' + (error.message || '网络错误'))
}).finally(() => {
this.expDateSaveLoading = false this.expDateSaveLoading = false
this.$message.success('失效日期修改成功')
this.closeExpDateDialog()
this.getDataList()
}, 1000)
})
}, },
// ==================== Change Availability Control ID - rqrq ==================== // ==================== Change Availability Control ID - rqrq ====================
@ -882,8 +1002,69 @@ export default {
// Availability Control ID - rqrq // Availability Control ID - rqrq
showAvailList() { showAvailList() {
this.$message.info('List功能待实现')
// TODO: - rqrq
this.availListQueryData = {
searchAvailabilityControlId: '',
searchAvailabilityControlDesc: ''
}
this.availListDialogVisible = true
this.getAvailList()
},
// Availability Control ID - rqrq
getAvailList() {
this.availListLoading = true
activeList().then(({ data }) => {
this.availListLoading = false
if (data && data.code == 0) {
let list = data.rows || []
// - rqrq
if (this.availListQueryData.searchAvailabilityControlId) {
list = list.filter(item =>
item.availabilityControlId &&
item.availabilityControlId.toUpperCase().includes(this.availListQueryData.searchAvailabilityControlId.toUpperCase())
)
}
if (this.availListQueryData.searchAvailabilityControlDesc) {
list = list.filter(item =>
item.availabilityControlDesc &&
item.availabilityControlDesc.toUpperCase().includes(this.availListQueryData.searchAvailabilityControlDesc.toUpperCase())
)
}
this.availListData = list
} else {
this.availListData = []
this.$message.error(data.msg || '查询失败')
}
}).catch(() => {
this.availListLoading = false
this.$message.error('查询失败')
})
},
// Availability Control ID - rqrq
handleAvailListDblClick(row) {
this.availFormData.newAvailId = row.availabilityControlId
this.availFormData.newAvailDesc = row.availabilityControlDesc || ''
this.availListDialogVisible = false
},
// Availability Control ID - rqrq
handleAvailIdBlur() {
if (!this.availFormData.newAvailId) {
this.availFormData.newAvailDesc = ''
return
}
getDescById(this.availFormData.newAvailId).then(({ data }) => {
if (data && data.code == 0) {
// rownull - rqrq
this.availFormData.newAvailDesc = data.row || ''
} else {
this.availFormData.newAvailDesc = ''
}
}).catch(() => {
this.availFormData.newAvailDesc = ''
})
}, },
// Availability Control ID - rqrq // Availability Control ID - rqrq
@ -894,15 +1075,81 @@ export default {
return return
} }
// - rqrq
const selectedCount = this.dataListSelections.length
// - rqrq
const inventoryKeySet = new Set()
this.dataListSelections.forEach(item => {
const key = `${item.site}|${item.partNo}|${item.locationId}|${item.batchNo}|${item.wdr}|${item.engChgLevel}`
inventoryKeySet.add(key)
})
const inventoryCount = inventoryKeySet.size
// - rqrq
const confirmMsg = `您选择了 ${selectedCount} 个标签,涉及 ${inventoryCount} 行ERP库存。\n\n` +
`注意:同一行ERP库存下的所有标签将一起被修改为新的 Availability Control ID:${this.availFormData.newAvailId}\n\n` +
`确定要执行此操作吗?`
this.$confirm(confirmMsg, '确认修改', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.doSaveAvailChange()
}).catch(() => {})
},
// Availability Control ID - rqrq
doSaveAvailChange() {
this.availSaveLoading = true this.availSaveLoading = true
// TODO: API - rqrq
setTimeout(() => {
const requestData = {
selectedItems: this.dataListSelections,
newAvailabilityControlId: this.availFormData.newAvailId
}
batchChangeAvailabilityControlId(requestData).then(({ data }) => {
if (data && data.code == 0) {
const result = data.row
if (result.allSuccess) {
// - rqrq
this.$message.success(`Availability Control ID修改成功,共更新 ${result.successCount} 行ERP库存`)
this.closeAvailDialog()
} else {
// - rqrq
let failedMsg = `成功:${result.successCount} 行,失败:${result.failCount}\n\n`
failedMsg += `以下标签更新失败:\n`
for (let i = 0; i < result.failedUnitIds.length; i++) {
failedMsg += `- ${result.failedUnitIds[i]}`
if (result.failedReasons && result.failedReasons[i]) {
failedMsg += `${result.failedReasons[i]}`
}
failedMsg += '\n'
}
this.$alert(failedMsg, '部分更新失败', {
confirmButtonText: '确定',
type: 'warning',
callback: () => {
this.closeAvailDialog()
this.getDataList()
}
})
return
}
this.getDataList()
} else {
this.$alert(data.msg || '修改失败', '提示', { type: 'error' })
}
}).catch((error) => {
this.$message.error('修改失败:' + (error.message || '网络错误'))
}).finally(() => {
this.availSaveLoading = false this.availSaveLoading = false
this.$message.success('Availability Control ID修改成功')
this.closeAvailDialog()
this.getDataList()
}, 1000)
})
} }
} }
} }

Loading…
Cancel
Save