Merge pull request 'master-dev' (#5) from master-dev into master

Reviewed-on: http://git.xdadan.loc/tanex/emis-oms-frontend/pulls/5
This commit is contained in:
wuteng 2025-12-02 16:40:34 +08:00
commit 69b306c168
4 changed files with 145 additions and 45 deletions

View File

@ -60,4 +60,22 @@ export function getWarehouseInDetail(query) {
inNo: query.inNo
}
})
}
}
// 客户确认进仓
export function cusConfirmWsIn(data) {
return request({
url: '/oms2c/emisWarehouseIn/cusConfirmWsIn',
method: 'post',
data: data
})
}
// 客户反馈进仓单异常
export function reportBatchWsInError(data) {
return request({
url: '/oms2c/emisWarehouseIn/reportBatchWsInError',
method: 'post',
data: data
})
}

View File

@ -19,7 +19,7 @@
</div>
<XdTextareaInput
v-model="queryParams.billCode"
v-model="queryParams.queryKey"
:placeholder="$t('多个流水号逗号或换行隔开')"
clearable
:rows="2"
@ -697,6 +697,7 @@ export default {
queryParams: {
pageNum: 1,
pageSize: 20,
queryKey: null,
orderSn: null,
billCode: null,
billCodeSub: null,
@ -1020,14 +1021,14 @@ export default {
initQueryParams(){
// this.queryOrderType="1";
// this.queryOrderDateType="1";
if(this.queryParams.billCode){
if(this.queryParams.queryKey){
if(this.queryOrderType != "1"){
this.queryParams.orderSn=formatSearchStr(this.queryParams.billCode);
this.queryParams.orderSn=formatSearchStr(this.queryParams.queryKey);
this.queryParams.billCode=null;
}else{
// 处理子单号
let qBillCode=formatSearchStr(this.queryParams.billCode);
let qBillCode=formatSearchStr(this.queryParams.queryKey);
let billArr = qBillCode.split(",");
let newBillCodeStr="";
billArr.forEach(item=>{
@ -1039,7 +1040,7 @@ export default {
}
});
this.queryParams.billCode=newBillCodeStr;
this.queryParams.orderSn=null;
}
}
this.queryParams=this.addDateRange(this.queryParams, this.dateRange,"orderDate");

View File

@ -48,7 +48,13 @@
</el-row>
</div>
<div style="margin-top:10px">
<el-row :gutter="0" style="display: flex;flex-wrap: wrap;margin-top: 8px;margin-bottom:8px;color:black;font-weight:bold">
<el-col :span="5">
异常反馈备注: {{item.abnormalDesc}}
</el-col>
</el-row>
</div>
<div >
<el-table
@ -137,9 +143,11 @@
</el-table-column>
</el-table>
</div>
<div style="text-align: right;margin-top: 10px;">
<el-button size="mini" @click="handleFeedDialogClick(item)">反馈异常</el-button>
<el-button type="primary" size="mini" @click="confirmJinCang(item.inNo)">进仓确认</el-button>
</div>
<div style="margin-top: 10px;padding: 10px 0px;border-top: 1px solid #e6ebf5;">
<!-- <div>进仓图片:</div> -->
<div v-if="item.picUrl" style="display:inline-flex">
@ -151,15 +159,28 @@
</template>
</CardWithHeader>
</div>
<!-- 反馈异常弹窗 -->
<el-dialog
:visible.sync="feedDialogVisible"
width="30%"
>
<el-form :model="feedForm" :rules="feedRules" ref="feedFormRef" label-width="85px">
<el-form-item label="反馈内容" prop="abnormalDesc">
<el-input v-model="feedForm.abnormalDesc" type="textarea" placeholder="请输入反馈内容" :autosize="{ minRows: 2, maxRows: 4 }"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFeedForm">确 认</el-button>
<el-button @click="feedDialogVisible = false">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import elDateSimplePicker from '@/components/DatePickerAdv/elDateSimplePicker';
import CardWithHeader from '@/components/CardWithHeader/index.vue';
import { getWarehouseInDetail} from "@/api/oms/emisWarehouseIn";
import { getWarehouseInDetail,cusConfirmWsIn ,reportBatchWsInError} from "@/api/oms/emisWarehouseIn";
export default {
name: "emisWarehouseInBatch",
@ -211,6 +232,13 @@ export default {
daterangeCreateTime: [],
// 更新站点时间范围
daterangeUpdateTime: [],
//异常提交表单
feedForm: {
abnormalDesc: '',
},
feedDialogVisible:false,
selectedItem:null,
openViewForm:false,
// 查询参数
queryParams: {
pageNum: 1,
@ -233,6 +261,11 @@ export default {
remark: null,
delFlag: null,
},
feedRules: {
abnormalDesc: [
{ required: true, message: '请输入反馈内容', trigger: 'blur' }
],
},
};
},
created() {
@ -243,20 +276,8 @@ export default {
/** 查询进仓单批次列表 */
getList() {
this.loading = true;
// listEmisWarehouseInBatch(this.addDateRange(this.queryParams, this.dateTimeRange)).then(response => {
// this.emisWarehouseInBatchList = response.rows;
// this.resetRefreshId="wsbatch-"+Math.random().toString(36).substring(3,10);
// this.total = response.total;
// this.loading = false;
// });
getWarehouseInDetail(this.inNo).then(response => {
// this.emisWarehouseInBatchList = response.data;
// this.resetRefreshId="wsbatch-"+Math.random().toString(36).substring(3,10);
// this.total = response.total;
// this.loading = false;
getWarehouseInDetail({inNo:this.inNo}).then(response => {
this.emisWarehouseInBatchList = response.data.stockInBatchList;
});
},
@ -375,6 +396,36 @@ export default {
dateTimeChange(value){
this.dateTimeRange=value;
},
async confirmJinCang(inNo) {
let confirmStatus = '2' // 部分入仓
if (!inNo) {
confirmStatus = '1' // 全部入仓
inNo = this.billInfo.inNo
}
let res = await cusConfirmWsIn({ inNo, confirmStatus, _loading: true }).then(() => {
this.$modal.msgSuccess("操作成功");
})
},
async handleFeedDialogClick(item) {
this.selectedItem=item;
this.feedForm.abnormalDesc = '';
this.feedDialogVisible = true;
},
submitFeedForm() {
this.$refs.feedFormRef.validate((valid) => {
if (valid) {
reportBatchWsInError({
inNo: this.inNo,
abnormalDesc: this.feedForm.abnormalDesc,
serialNo: this.selectedItem.serialNo
}).then(() => {
this.$modal.msgSuccess("反馈异常成功");
this.feedDialogVisible = false;
this.getList();
}).catch(() => {});
}
});
}
}
};
</script>

View File

@ -1,4 +1,4 @@
<template>
<template>
<XdPageContainer >
<SearchForm slot="pageHeader" :model="queryParams" ref="queryForm" size="mini" :maxShow="20" label-width="68px" v-show="showSearch" @search="handleQuery" @reset="resetQuery">
@ -10,7 +10,7 @@
</el-radio-group>
</div>
<XdTextareaInput
v-model="queryParams.billCode"
v-model="queryParams.queryKey"
:placeholder="$t('多个流水号逗号或换行隔开')"
clearable
:rows="2"
@ -23,7 +23,7 @@
<elDateSimplePicker placeholder="" v-model="dateTimeRange" style="z-index:9999;width:300px" ></elDateSimplePicker>
</el-form-item>
<!-- <el-form-item label="" prop="orderSn">
<!-- <el-form-item label="" prop="orderSn">
<el-input
v-model="queryParams.orderSn"
:placeholder="$t('订单号')"
@ -63,7 +63,7 @@
</el-date-picker>
</el-form-item> -->
<el-form-item :label="$t('确认状态')" prop="confirmStatus">
<el-select clearable v-model="queryParams.confirmStatus" placeholder="">
<el-select clearable v-model="queryParams.params.queryStatusType" placeholder="">
<el-option key="0" label="未确认" value="0"></el-option>
<el-option key="1" label="已确认" value="1"></el-option>
<el-option key="2" label="部分确认" value="2"></el-option>
@ -131,18 +131,25 @@
@click="handleView"
>查看进仓信息</el-button>
</el-col>
<!-- <el-col :span="1.5">
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['emis:emisWarehouseIn:export']"
>导出</el-button>
</el-col> -->
:disabled="single"
@click="handleDownload"
>下载打印PDF</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="primary"
plain
size="mini"
:disabled="single || currentSelectOrder.confirmStatus=='1' || currentSelectOrder.stockInFlag !=='1' "
@click="confirmJinCang"
>确认可发货</el-button>
</el-col>
</el-row>
</div>
@ -173,12 +180,12 @@
<template slot-scope="scope">
<el-tag v-if="scope.row.stockInFlag=='0'" type="info">未入库</el-tag>
<el-tag v-if="scope.row.stockInFlag=='1'" type="success">已入仓</el-tag>
<el-tag v-if="scope.row.stockInFlag=='2'" type="warning">部分入仓</el-tag>
<el-tag v-if="scope.row.stockInFlag=='2'" type="warning">部分入仓</el-tag>
</template>
</el-table-column>
<el-table-column label="创建时间" align="center" prop="createTime" width="170"/>
</XdTable>
<!--
<!--
<el-dialog :title="titleForm" :visible.sync="openForm" width="50%" :destroy-on-close="true" v-dialogDrag append-to-body>
<emisWarehouseInForm :id="currentId" @on-changed="handleFormChanged" @on-cancel="cancelForm"></EmisWarehouseInForm>
</el-dialog> -->
@ -189,7 +196,7 @@
</template>
<script>
import { listSimpleEmisWarehouseIn } from "@/api/oms/emisWarehouseIn";
import { listSimpleEmisWarehouseIn, cusConfirmWsIn } from "@/api/oms/emisWarehouseIn";
import elDateSimplePicker from '@/components/DatePickerAdv/elDateSimplePicker';
export default {
@ -241,6 +248,7 @@ export default {
queryParams: {
pageNum: 1,
pageSize: 20,
queryKey: null,
serialNo: null,
inNo: null,
orderSn: null,
@ -254,6 +262,9 @@ export default {
status: null,
remark: null,
delFlag: null,
params:{
queryStatusType:null,
}
},
};
},
@ -269,10 +280,13 @@ export default {
getList() {
this.loading = true;
// 按运单查询时的处理
if(this.queryOrderType==2){
this.queryParams.inNo=this.queryParams.billCode;
// 按运单查询时的处理
if(this.queryOrderType=='2'){
this.queryParams.inNo=this.queryParams.queryKey;
this.queryParams.billCode=null;
}else {
this.queryParams.inNo=null;
this.queryParams.billCode = this.queryParams.queryKey;
}
listSimpleEmisWarehouseIn(this.addDateRange(this.queryParams, this.dateTimeRange,"createTime")).then(response => {
@ -419,8 +433,24 @@ export default {
},
/** 时间搜索响应函数 */
dateTimeChange(value){
this.dateTimeRange=value;
this.dateTimeRange=value;
},
handleDownload(){
this.download('oms2c/common/exportWarehouseInTpl', {
'orderSn':this.currentSelectOrder.orderSn
}, `emisWarehouseIn_${new Date().getTime()}.pdf`)
},
confirmJinCang(){
cusConfirmWsIn({
'confirmStatus':'1',
'inNo':this.currentSelectOrder.inNo
}).then(response => {
if (response.code === 200) {
this.$modal.msgSuccess("确认成功");
this.getList();
}
})
}
}
};
</script>