提交
This commit is contained in:
1520
src/views/wisdom/bill/index copy.vue
Normal file
1520
src/views/wisdom/bill/index copy.vue
Normal file
File diff suppressed because it is too large
Load Diff
2052
src/views/wisdom/bill/index.vue
Normal file
2052
src/views/wisdom/bill/index.vue
Normal file
File diff suppressed because it is too large
Load Diff
712
src/views/wisdom/borrow/index.vue
Normal file
712
src/views/wisdom/borrow/index.vue
Normal file
@@ -0,0 +1,712 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryRef" v-show="showSearch" >
|
||||
<!-- <el-form-item label="所属仓库" prop="cangku">-->
|
||||
<!-- <el-input-->
|
||||
<!-- v-model="queryParams.cangku"-->
|
||||
<!-- placeholder="请输入所属仓库"-->
|
||||
<!-- clearable-->
|
||||
<!-- @keyup.enter="handleQuery"-->
|
||||
<!-- />-->
|
||||
<!-- </el-form-item>-->
|
||||
<el-row :gutter="40">
|
||||
<el-col :span="5">
|
||||
<el-form-item label="借用时间" prop="borrowTime">
|
||||
<el-date-picker
|
||||
v-model="borrowTime"
|
||||
type="datetimerange"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
clearable
|
||||
placeholder="请选择出库时间"
|
||||
format="YYYY/MM/DD HH:mm:ss"
|
||||
value-format="YYYY-MM-DD HH:mm:ss"
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="5">
|
||||
<el-form-item label="项目号" prop="xmNo">
|
||||
<el-input
|
||||
v-model="queryParams.xmNo"
|
||||
placeholder="请输入项目号"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="5">
|
||||
<el-form-item label="订单编号" prop="sapNo">
|
||||
<el-input
|
||||
v-model="queryParams.sapNo"
|
||||
placeholder="请输入订单编号"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="5">
|
||||
<el-form-item label="单据号" prop="billNo">
|
||||
<el-input
|
||||
v-model="queryParams.billNo"
|
||||
placeholder="请输入订单编号"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
icon="Plus"
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['wisdom:borrow:add']"
|
||||
>新增借料</el-button>
|
||||
</el-col>
|
||||
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button
|
||||
type="warning"
|
||||
plain
|
||||
icon="Download"
|
||||
@click="handleExport"
|
||||
v-hasPermi="['wisdom:borrow:export']"
|
||||
>导出</el-button>
|
||||
</el-col> -->
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="success"
|
||||
plain
|
||||
icon="Printer"
|
||||
@click="handlePrint"
|
||||
v-print="printViewInfo"
|
||||
v-hasPermi="['wisdom:borrow:print']"
|
||||
>打印单据</el-button>
|
||||
</el-col>
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
icon="Plus"
|
||||
@click="handleReturnAll"
|
||||
|
||||
>一键还料</el-button>
|
||||
</el-col> -->
|
||||
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="outboundList" @selection-change="printSelectionChange" border show-overflow-tooltip>
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<!-- <el-table-column label="主键ID" align="center" prop="id" />-->
|
||||
<el-table-column label="单据号" align="center" prop="billNoCk" width="180"/>
|
||||
<el-table-column label="状态" align="center" >
|
||||
<template #default="scope">
|
||||
<dict-tag :options="dictTagData()" :value="scope.row.isBorrowed" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="订单编号" align="center" prop="sapNo" width="150"/>
|
||||
<el-table-column label="项目号" align="center" prop="xmNo" width="150"/>
|
||||
<el-table-column label="项目描述" align="center" prop="xmMs" width="150"/>
|
||||
<el-table-column label="(借用方)项目号" align="center" prop="xmNoCk" width="150"/>
|
||||
<el-table-column label="(借用方)项目描述" align="center" prop="xmMsCk" width="150"/>
|
||||
<el-table-column label="物料号" align="center" prop="wlNo" width="100"/>
|
||||
<el-table-column label="物料描述" align="center" prop="wlMs" width="150"/>
|
||||
<el-table-column label="供应商编码" align="center" prop="gysNo" width="150"/>
|
||||
<el-table-column label="供应商名称" align="center" prop="gysMc" width="150"/>
|
||||
<!-- <el-table-column label="计划交货金额" align="center" prop="jhAmt" width="120"/> -->
|
||||
<el-table-column label="合同单价" align="center" prop="htDj" />
|
||||
|
||||
<!-- <el-table-column label="计划交货数量" align="center" prop="jhQty" width="120"/> -->
|
||||
<!-- <el-table-column label="合同数量" align="center" prop="htQty" /> -->
|
||||
<el-table-column label="计量单位" align="center" prop="dw" />
|
||||
<el-table-column label="借用数量" align="center" prop="realQty" width="120"/>
|
||||
<el-table-column label="所属大库" align="center" prop="parentWarehouseName" width="150"/>
|
||||
<el-table-column label="所属小库" align="center" prop="cangkuName" width="150"/>
|
||||
<el-table-column label="库位码" align="center" prop="pcode" width="120"/>
|
||||
<el-table-column label="托盘码" align="center" prop="trayCode" />
|
||||
<el-table-column label="身份码" align="center" prop="entityId" width="150"/>
|
||||
<el-table-column label="出库类型" align="center" prop="ckTypeName" />
|
||||
<!-- <el-table-column label="物资类型" align="center" prop="wlTypeName" />-->
|
||||
<el-table-column label="借用时间" align="center" width="100">
|
||||
<template #default="scope">
|
||||
<span>{{ parseTime(scope.row.borrowTime, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column label="库龄" align="center" prop="stockAge" /> -->
|
||||
<el-table-column label="理货员" align="center" prop="ckLihuoY" />
|
||||
<!-- <el-table-column label="是否已出库" align="center" prop="isChuku" /> -->
|
||||
<el-table-column label="备注" align="center" prop="ckRemark" width="150"/>
|
||||
<!-- <el-table-column label="是否删除" align="center" prop="isDelete" />-->
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button v-show="scope.row.isBorrowed==1" link type="primary" icon="Edit" @click="handleReturn(scope.row)" >还料</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="total>0"
|
||||
:total="total"
|
||||
v-model:page="queryParams.pageNum"
|
||||
v-model:limit="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
<!-- 打印 -->
|
||||
<div id="printMe" class="printMeBox" v-show="showContent">
|
||||
<printBill :billAllObj="printList" />
|
||||
</div>
|
||||
<!-- 添加或修改库存单据主对话框 -->
|
||||
<el-dialog :title="title" v-model="open" append-to-body width="70%">
|
||||
<el-form ref="stockRef" :model="storeData" :rules="rules" >
|
||||
<el-row :gutter="20">
|
||||
<!-- <el-col :span="12">
|
||||
<el-form-item label="关键字" >
|
||||
<el-input v-model="orderNum" placeholder="请输入项目编号或者订单号" />
|
||||
</el-form-item>
|
||||
</el-col> -->
|
||||
<el-col :span="6">
|
||||
<el-form-item label="项目号" >
|
||||
<el-input v-model="outQueryParams.xmNo" placeholder="请输入项目号" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="订单号" >
|
||||
<el-input v-model="outQueryParams.sapNo" placeholder="请输入订单号" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="物料号" >
|
||||
<el-input v-model="outQueryParams.wlNo" placeholder="请输入物料号" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-button type="primary" @click="searchPlan" >查询</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="6">
|
||||
<el-form-item label="出库类型" prop="ckType">
|
||||
<el-select v-model="storeData.ckType" placeholder="请选择出库类型" disabled >
|
||||
<el-option v-for="dict in storeTypeList" :key="dict.id" :label="dict.typeName" :value="dict.typeCode" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="施工队" prop="teamCode">
|
||||
<el-select v-model="storeData.teamCode" placeholder="请选择物资类型" clearable >
|
||||
<el-option v-for="dict in wzTypeList" :key="dict.id" :label="dict.teamName" :value="dict.teamCode" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="6">
|
||||
<el-form-item label="理货员" prop="ckLihuoY">
|
||||
<el-select v-model="storeData.ckLihuoY" placeholder="请选择理货员" clearable >
|
||||
<el-option v-for="dict in personList" :key="dict.userId" :label="dict.userName" :value="dict.userName" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="借用时间" prop="borrowTime">
|
||||
<el-date-picker clearable
|
||||
v-model="storeData.borrowTime"
|
||||
type="date"
|
||||
value-format="YYYY-MM-DD"
|
||||
placeholder="请选择借用时间">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="6">
|
||||
<el-form-item label="归还时间" >
|
||||
<el-date-picker clearable
|
||||
v-model="storeData.returnTime"
|
||||
type="date"
|
||||
value-format="YYYY-MM-DD"
|
||||
placeholder="请选择归还时间">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="项目号" >
|
||||
<el-input v-model="storeData.xmNoCk" placeholder="请输入项目号" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="项目名称" >
|
||||
<el-input v-model="storeData.xmMsCk" placeholder="请输入项目描述" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<el-table :data="planList" height="400" show-overflow-tooltip style="width: 100%" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="物料号" align="center" prop="wlNo" width="100"/>
|
||||
<el-table-column label="订单号" align="center" prop="sapNo" width="100" />
|
||||
<el-table-column label="物料描述" align="center" prop="wlMs" width="300"/>
|
||||
<el-table-column label="出库数量" align="center" prop="realQty" width="120">
|
||||
<template #default="scope">
|
||||
<el-input v-model="scope.row.realQty" placeholder="请输入出库数量" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="单价" align="center" prop="htDj" />
|
||||
<el-table-column label="单位" align="center" prop="dw" />
|
||||
<el-table-column label="库位" align="center" prop="pcode" width="150"></el-table-column>
|
||||
<el-table-column label="容器码" align="center" prop="trayCode"></el-table-column>
|
||||
|
||||
<el-table-column label="身份码" align="center" prop="entityId" width="200"></el-table-column>
|
||||
|
||||
<el-table-column label="项目号" align="center" prop="xmNo" width="150"/>
|
||||
<el-table-column label="项目名称" align="center" prop="xmMs" width="250"/>
|
||||
<el-table-column label="供应商" align="center" prop="gysMc" width="200"/>
|
||||
<el-table-column label="备注" align="center" width="200">
|
||||
<template #default="scope">
|
||||
<el-input v-model="scope.row.ckRemark" placeholder="请输入备注"></el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button type="primary" @click="submitForm">出 库</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
<!-- //还料弹框 -->
|
||||
<el-dialog title="还料" v-model="returnOpen" append-to-body width="40%">
|
||||
<el-form ref="returnRef" :model="returnData" label-width="100px">
|
||||
<el-form-item label="所属仓库" prop="warehouseCode">
|
||||
<el-cascader :options="warehouseData" style="width: 100%;" v-model="returnData.warehouseCode" @change="pcodeList" :props="{children: 'children', label: 'warehouseName', value: 'warehouseCode'}" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item label="库位" >
|
||||
<el-select v-model="returnData.pcode" clearable :filterable="true" placeholder="请选择库位" >
|
||||
<el-option v-for="item in kwOptions" :key="item.id" :label="item.pcode" :value="item.pcode" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button type="primary" @click="returnForm">还 料</el-button>
|
||||
<el-button @click="cancelReturn">取 消</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup name="outbound">
|
||||
// import { listOutbound,addOutbound} from "@/api/wisdom/outbound"; //列表
|
||||
import { listOutbound,addOutbound,returnSubmit} from "@/api/wisdom/borrow"; //列表
|
||||
import {warehouseAll} from "@/api/information/warehouseinfo";
|
||||
import {listOuttype} from "@/api/information/outtype"; //出库类型
|
||||
import {listConstruction} from "@/api/information/construction"; //施工队
|
||||
// import {warehouseDict} from "@/api/information/warehouseinfo"; //所属仓库
|
||||
import {personListDict} from "@/api/system/user"; //理货员
|
||||
import {getKwList, getKwAllList} from "@/api/information/pcdedetail"; //库位下拉数据
|
||||
import printBill from '@/components/printBill/bill.vue'
|
||||
import { ref } from "vue";
|
||||
// import { Plus } from '@element-plus/icons-vue'
|
||||
|
||||
|
||||
const { proxy } = getCurrentInstance();
|
||||
|
||||
const outboundList = ref([]);
|
||||
const open = ref(false);
|
||||
const returnOpen = ref(false)
|
||||
const loading = ref(true);
|
||||
const showSearch = ref(true);
|
||||
const ids = ref([]);
|
||||
const single = ref(true);
|
||||
const multiple = ref(true);
|
||||
const total = ref(0);
|
||||
const title = ref("");
|
||||
const planLoading = ref(true);
|
||||
const planList = ref([]); //从供应计划中添加列表
|
||||
|
||||
const storeTypeList = ref([]); //出库类型下拉数据
|
||||
const wzTypeList = ref([]); //施工队下拉数据
|
||||
|
||||
const personList = ref([]); //理货员下拉数据
|
||||
const orderNum = ref("") //搜索条件:订单号
|
||||
const showContent = ref(false); // 控制打印内容是否显示
|
||||
const dateStr = ref("") //打印单据生成的日期
|
||||
const printList = ref([]) //要打印的数据列表
|
||||
const kwOptions = ref([]); //库位下拉
|
||||
const borrowTime = ref([])
|
||||
const data = reactive({
|
||||
form: {},
|
||||
storeData:{
|
||||
ckType:"JLCK"
|
||||
}, //借料数据
|
||||
returnData:{
|
||||
originalId:null,
|
||||
pcode:"",
|
||||
rkType:"RK029" //入库类型:借料归还入库
|
||||
}, //还料数据
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
isChuku:3, //出库,固定传1 后来改成传3
|
||||
ckType:"JLCK", //出库类型:借料出库
|
||||
isBorrowed: "1",
|
||||
// borrowTime:[], //借料时间
|
||||
xmNo:"",
|
||||
sapNo:"",
|
||||
billNo:"",
|
||||
ids: []
|
||||
},
|
||||
outQueryParams:{
|
||||
xmNo:"",
|
||||
wlNo:"",
|
||||
sapNo:"",
|
||||
pageNum:1,
|
||||
pageSize:50,
|
||||
isChuku:0,
|
||||
},
|
||||
rules: {
|
||||
ckType: [{ required: true, message: "出库类型不能为空", trigger: "change" }],
|
||||
teamCode: [{ required: true, message: "施工队不能为空", trigger: "change" }],
|
||||
borrowTime: [{ required: true, message: "借用时间不能为空", trigger: "change" }],
|
||||
ckLihuoY: [{ required: true, message: "理货员不能为空", trigger: "change" }]
|
||||
},
|
||||
printViewInfo: {
|
||||
id: "printMe", //打印区域的唯一的id属性
|
||||
popTitle: '入库信息打印', // 页眉文字 (不设置时显示undifined)(页眉页脚可以在打印页面的更多设置的选项中取消勾选)
|
||||
|
||||
|
||||
beforeOpenCallback () {
|
||||
showContent.value = false;
|
||||
}, // 开始打印之前的callback
|
||||
openCallback () { }, // 调用打印时的callback
|
||||
closeCallback () { }, // 关闭打印的callback(无法区分确认or取消)
|
||||
clickMounted () { },
|
||||
|
||||
standard: '',
|
||||
extarCss: ''
|
||||
}
|
||||
});
|
||||
|
||||
const { queryParams, storeData, rules,form,printViewInfo,outQueryParams,returnData } = toRefs(data);
|
||||
|
||||
const statusList = ref([
|
||||
{ value: 1, label: '未还料', elTagType: "danger", elTagClass: null },
|
||||
{ value: 2, label: '已还料', elTagType: "primary", elTagClass: null }
|
||||
])
|
||||
|
||||
const dictTagData = () => {
|
||||
return statusList.value.map(item => ({
|
||||
...item,
|
||||
value: String(item.value)
|
||||
}));
|
||||
}
|
||||
|
||||
/** 查询库存单据主列表 */
|
||||
function getList() {
|
||||
loading.value = true;
|
||||
listOutbound(queryParams.value).then(response => {
|
||||
outboundList.value = response.rows;
|
||||
total.value = response.total;
|
||||
loading.value = false;
|
||||
});
|
||||
}
|
||||
|
||||
// 取消按钮
|
||||
function cancel() {
|
||||
open.value = false;
|
||||
reset();
|
||||
}
|
||||
|
||||
// 表单重置
|
||||
function reset() {
|
||||
planList.value = []
|
||||
storeData.value = {
|
||||
ckType:"JLCK"
|
||||
}
|
||||
orderNum.value = ""
|
||||
proxy.resetForm("stockRef");
|
||||
}
|
||||
|
||||
/** 搜索按钮操作 */
|
||||
function handleQuery() {
|
||||
if(borrowTime.value && borrowTime.value.length>0){
|
||||
queryParams.value.startTime = borrowTime.value[0]
|
||||
queryParams.value.endTime = borrowTime.value[1]
|
||||
}else{
|
||||
queryParams.value.startTime = ""
|
||||
queryParams.value.endTime = ""
|
||||
}
|
||||
queryParams.value.pageNum = 1;
|
||||
getList();
|
||||
}
|
||||
|
||||
/** 重置按钮操作 */
|
||||
function resetQuery() {
|
||||
proxy.resetForm("queryRef");
|
||||
borrowTime.value = []
|
||||
handleQuery();
|
||||
}
|
||||
|
||||
//出库 多选框选中数据
|
||||
function handleSelectionChange(selection) {
|
||||
ids.value = selection.map(info=>info.id)
|
||||
}
|
||||
//打印单据 多选框选中数据
|
||||
function printSelectionChange(selection){
|
||||
printList.value = selection
|
||||
queryParams.value.ids = selection.map(item => item.id)
|
||||
// console.log(queryParams.value.ids)
|
||||
}
|
||||
//打印单据
|
||||
function handlePrint(){
|
||||
if(printList.value.length==0){
|
||||
proxy.$modal.msgError("请勾选数据");
|
||||
return
|
||||
}
|
||||
const date = new Date();
|
||||
const year = date.getFullYear();
|
||||
const month = date.getMonth() + 1; // 月份从0开始,需要加1
|
||||
const day = date.getDate();
|
||||
const hour = date.getHours();
|
||||
const minute = date.getMinutes();
|
||||
const second = date.getSeconds();
|
||||
dateStr.value = year+"-"+month+"-"+day+" "+hour+":"+minute+":"+second
|
||||
showContent.value = true
|
||||
}
|
||||
|
||||
|
||||
/** 新增按钮操作 */
|
||||
function handleAdd() {
|
||||
reset();
|
||||
open.value = true;
|
||||
title.value = "添加借料单据";
|
||||
//获取出库类型下拉数据
|
||||
listOuttype({pageNum:1,pageSize:50}).then(response=>{
|
||||
storeTypeList.value = response.rows
|
||||
})
|
||||
//获取施工队下拉数据
|
||||
listConstruction({pageNum:1,pageSize:50}).then(response=>{
|
||||
wzTypeList.value = response.rows
|
||||
})
|
||||
|
||||
//理货员下拉数据
|
||||
personListDict().then(response=>{
|
||||
personList.value = response.data
|
||||
})
|
||||
|
||||
|
||||
}
|
||||
//查询库存中数据 搜索
|
||||
function searchPlan(){
|
||||
// if(!orderNum.value){
|
||||
// proxy.$modal.msgWarning("请输入项目编号或者订单号");
|
||||
// return
|
||||
// }
|
||||
//查库存
|
||||
// let params = {
|
||||
// pageNum:1,
|
||||
// pageSize:50,
|
||||
// isChuku:0,
|
||||
// // xmNo:orderNum.value
|
||||
// keyword:orderNum.value
|
||||
// }
|
||||
if(!outQueryParams.value.xmNo && !outQueryParams.value.wlNo && !outQueryParams.value.sapNo){
|
||||
proxy.$modal.msgWarning("查询条件不能为空");
|
||||
return
|
||||
}
|
||||
listOutbound(outQueryParams.value).then(response=>{
|
||||
response.rows.forEach(e => {
|
||||
e.ckRemark = e.remark
|
||||
});
|
||||
// let planData = response.rows
|
||||
if(response.rows.length==0){
|
||||
proxy.$modal.msgWarning("库存无数据");
|
||||
planList.value = []
|
||||
}else{
|
||||
planList.value = response.rows
|
||||
}
|
||||
// console.log(planData)
|
||||
|
||||
// planLoading.value = false
|
||||
})
|
||||
|
||||
|
||||
}
|
||||
|
||||
// function selectKw(row){
|
||||
// console.log(row)
|
||||
// }
|
||||
/** 修改按钮操作 */
|
||||
// function handleUpdate(row) {
|
||||
// reset();
|
||||
// const _id = row.id || ids.value
|
||||
// getStock(_id).then(response => {
|
||||
// form.value = response.data;
|
||||
// open.value = true;
|
||||
// title.value = "修改库存单据主";
|
||||
// });
|
||||
// }
|
||||
|
||||
/** 借料出库 提交按钮 */
|
||||
function submitForm() {
|
||||
|
||||
// console.log(submitData);return
|
||||
// // /pc/wisdom/stock/add
|
||||
// console.log(planList);return
|
||||
proxy.$refs["stockRef"].validate(valid => {
|
||||
|
||||
if (valid) {
|
||||
// if(planList.value.filter(x=>x.realQty=="").length>0){
|
||||
// proxy.$modal.msgError("入库数量不能为空");
|
||||
// return
|
||||
// }
|
||||
// console.log(ids.value)
|
||||
if(ids.value.length==0){
|
||||
proxy.$modal.msgError("请勾选数据");
|
||||
return
|
||||
}
|
||||
let dataList = planList.value.filter(x=>ids.value.includes(x.id)).map(info=>({
|
||||
id:info.id,
|
||||
realQty:info.realQty,
|
||||
ckRemark:info.ckRemark
|
||||
}))
|
||||
// console.log(3333)
|
||||
// return
|
||||
let submitData = {
|
||||
borrowTime:storeData.value.borrowTime, //借用时间
|
||||
returnTime:storeData.value.returnTime, // 归还时间
|
||||
teamCode:storeData.value.teamCode, //施工队
|
||||
ckType:storeData.value.ckType, //出库类型
|
||||
ckLihuoY:storeData.value.ckLihuoY, //理货员
|
||||
xmNoCk:storeData.value.xmNoCk?storeData.value.xmNoCk:"", //原本要出的项目号
|
||||
xmMsCk:storeData.value.xmMsCk?storeData.value.xmMsCk:"", //原本要出的项目描述
|
||||
// rkList:planList.value
|
||||
ckList:dataList
|
||||
}
|
||||
// console.log(submitData)
|
||||
// return
|
||||
addOutbound(submitData).then(response => {
|
||||
proxy.$modal.msgSuccess("操作成功");
|
||||
open.value = false;
|
||||
getList();
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
//打开还料弹框
|
||||
function handleReturn(row){
|
||||
// console.log(row)
|
||||
returnData.value.pcode = row.pcode
|
||||
returnData.value.warehouseCode = [row.parentWarehouseCode, row.warehouseCode]
|
||||
returnData.value.originalId = row.id
|
||||
console.log(returnData.value)
|
||||
returnOpen.value = true
|
||||
}
|
||||
//取消还料弹框
|
||||
function cancelReturn(){
|
||||
returnOpen.value = false
|
||||
}
|
||||
//还料保存
|
||||
function returnForm(){
|
||||
let obj = JSON.parse(JSON.stringify(returnData.value))
|
||||
obj.warehouseCode = returnData.value.warehouseCode[1]
|
||||
returnSubmit(obj).then(response => {
|
||||
proxy.$modal.msgSuccess("操作成功");
|
||||
returnOpen.value = false;
|
||||
getList();
|
||||
});
|
||||
}
|
||||
// //库位字典
|
||||
// function pcodeList(){
|
||||
// getKwList().then(response=>{
|
||||
// kwOptions.value = response.data
|
||||
// })
|
||||
// }
|
||||
/** 删除按钮操作 */
|
||||
// function handleDelete(row) {
|
||||
// const _ids = row.id || ids.value;
|
||||
// proxy.$modal.confirm('是否确认删除库存单据主编号为"' + _ids + '"的数据项?').then(function() {
|
||||
// return delStock(_ids);
|
||||
// }).then(() => {
|
||||
// getList();
|
||||
// proxy.$modal.msgSuccess("删除成功");
|
||||
// }).catch(() => {});
|
||||
// }
|
||||
|
||||
/** 导出按钮操作 */
|
||||
function handleExport() {
|
||||
proxy.download('wisdom/stock/export', {
|
||||
...queryParams.value
|
||||
}, `stock_${new Date().getTime()}.xlsx`)
|
||||
}
|
||||
|
||||
const warehouseData = ref([]) //仓库下拉列表
|
||||
function warehouseFun(){
|
||||
//所属仓库下拉数据
|
||||
warehouseAll().then(response=>{
|
||||
warehouseData.value = response.data
|
||||
})
|
||||
}
|
||||
warehouseFun()
|
||||
//库位字典
|
||||
function pcodeList(value){
|
||||
console.log(value)
|
||||
getKwAllList(value[1]).then(response=>{
|
||||
kwOptions.value = response.data
|
||||
returnData.value.pcode = ""
|
||||
})
|
||||
}
|
||||
|
||||
getList();
|
||||
//库位下拉数据
|
||||
// pcodeList()
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
.el-table .warning-row {
|
||||
--el-table-tr-bg-color: var(--el-color-warning-light-9);
|
||||
}
|
||||
.el-table .success-row {
|
||||
--el-table-tr-bg-color: var(--el-color-success-light-9);
|
||||
}
|
||||
.titleBox{
|
||||
text-align: center;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
.printMeBox{
|
||||
div{
|
||||
line-height: 30px;
|
||||
}
|
||||
}
|
||||
.topBox{
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
.topEveryBox{
|
||||
width: 50%;
|
||||
}
|
||||
.tableBox{
|
||||
margin-top: 10px;
|
||||
}
|
||||
.oneLineBox{
|
||||
display: flex;
|
||||
}
|
||||
.everyBox{
|
||||
width: 25%;
|
||||
}
|
||||
.bottomBox{
|
||||
margin-top: 10px;
|
||||
}
|
||||
</style>
|
||||
|
||||
646
src/views/wisdom/dispatch/index.vue
Normal file
646
src/views/wisdom/dispatch/index.vue
Normal file
@@ -0,0 +1,646 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryRef" v-show="showSearch" label-width="80">
|
||||
<el-row >
|
||||
<el-col :span="6">
|
||||
<el-form-item label="任务编号" prop="taskNo">
|
||||
<el-input
|
||||
v-model="queryParams.taskNo"
|
||||
placeholder="请输入任务编号"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="任务状态" prop="taskStatus">
|
||||
<el-select v-model="queryParams.taskStatus" placeholder="请选择任务状态">
|
||||
<el-option label="待执行" value="0" />
|
||||
<el-option label="执行中" value="1" />
|
||||
<el-option label="已完成" value="2" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="物料编码" prop="mid">
|
||||
<el-input
|
||||
v-model="queryParams.mid"
|
||||
placeholder="请输入物料编码"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="起始位置" prop="sourceName">
|
||||
<el-input
|
||||
v-model="queryParams.sourceName"
|
||||
placeholder="请输入起始位置"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row >
|
||||
<el-col :span="6">
|
||||
<el-form-item label="创建时间" prop="rcptim">
|
||||
<el-date-picker
|
||||
v-model="rcptim"
|
||||
type="datetimerange"
|
||||
start-placeholder="开始时间"
|
||||
end-placeholder="结束时间"
|
||||
format="YYYY/MM/DD HH:mm:ss"
|
||||
value-format="YYYY-MM-DD HH:mm:ss"
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="任务详情" prop="taskDtl">
|
||||
<el-input
|
||||
v-model="queryParams.taskDtl"
|
||||
placeholder="请输入任务详情"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="任务类型" prop="taskType">
|
||||
<el-select v-model="queryParams.taskType" placeholder="请选择任务类型">
|
||||
<el-option label="上架" value="0" />
|
||||
<el-option label="下架" value="1" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- <el-form-item label="操作员" prop="operator">
|
||||
<el-input
|
||||
v-model="queryParams.operator"
|
||||
placeholder="请输入操作员"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item> -->
|
||||
|
||||
</el-form>
|
||||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
icon="Plus"
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['wisdom:dispatch:add']"
|
||||
>新增</el-button>
|
||||
</el-col> -->
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button
|
||||
type="success"
|
||||
plain
|
||||
icon="Edit"
|
||||
:disabled="single"
|
||||
@click="handleUpdate"
|
||||
v-hasPermi="['wisdom:dispatch:edit']"
|
||||
>修改</el-button>
|
||||
</el-col> -->
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button
|
||||
type="danger"
|
||||
plain
|
||||
icon="Delete"
|
||||
:disabled="multiple"
|
||||
@click="handleDelete"
|
||||
v-hasPermi="['wisdom:dispatch:remove']"
|
||||
>删除</el-button>
|
||||
</el-col> -->
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button
|
||||
type="warning"
|
||||
plain
|
||||
icon="Download"
|
||||
@click="handleExport"
|
||||
v-hasPermi="['wisdom:dispatch:export']"
|
||||
>导出</el-button>
|
||||
</el-col> -->
|
||||
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="taskList" show-overflow-tooltip @selection-change="handleSelectionChange">
|
||||
<!-- <el-table-column type="selection" width="55" align="center" /> -->
|
||||
|
||||
<el-table-column label="任务编号" align="center" prop="taskNo" width="180"/>
|
||||
<!-- <el-table-column label="任务详情" align="center" prop="taskDtl" /> -->
|
||||
<el-table-column label="任务类型" align="center" prop="taskType" >
|
||||
<template #default="scope">
|
||||
<span>{{ taskTypeFun(scope.row.taskType) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="调度类型" align="center" prop="dispatchMode" >
|
||||
<template #default="scope">
|
||||
<span>{{ dispatchModeFun(scope.row.dispatchMode) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="任务状态" align="center" prop="taskStatus" >
|
||||
<template #default="scope">
|
||||
<span>{{ taskStatusFun(scope.row.taskStatus) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column label="物料状态" align="center" prop="midStatus" /> -->
|
||||
<el-table-column label="物料状态" align="center" prop="midStatus" >
|
||||
<template #default="scope">
|
||||
<span>{{ midStatusFun(scope.row.midStatus) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="物料编码" align="center" prop="mid" />
|
||||
<el-table-column label="物料数量" align="center" prop="num" />
|
||||
<!-- <el-table-column label="物资状态" align="center" prop="midType" /> -->
|
||||
<el-table-column label="起始位置" align="center" prop="sourceName" width="120"/>
|
||||
<el-table-column label="目标位置" align="center" prop="targetName" width="120"/>
|
||||
<!-- <el-table-column label="操作员" align="center" prop="operator" /> -->
|
||||
|
||||
<el-table-column label="任务创建时间" align="center" prop="rcptim" width="150">
|
||||
<template #default="scope">
|
||||
<span>{{ parseTime(scope.row.rcptim, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="150">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" @click="handleUpdate(scope.row)" v-show="scope.row.taskStatus==0">修改</el-button>
|
||||
<el-button link type="primary" @click="handleExecute(scope.row)" v-show="scope.row.taskStatus==0">执行</el-button>
|
||||
<el-button link type="primary" @click="handleDelete(scope.row)" v-hasPermi="['wisdom:dispatch:remove']" v-show="scope.row.taskStatus==0">删除</el-button>
|
||||
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="total>0"
|
||||
:total="total"
|
||||
v-model:page="queryParams.pageNum"
|
||||
v-model:limit="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
|
||||
<!-- 添加或修改调度任务对话框 -->
|
||||
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
|
||||
<el-form ref="taskRef" :model="form" :rules="rules" label-width="80px">
|
||||
<!-- <el-form-item label="任务编号" prop="taskNo">
|
||||
<el-input v-model="form.taskNo" placeholder="请输入任务编号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="任务详情" prop="taskDtl">
|
||||
<el-input v-model="form.taskDtl" placeholder="请输入任务详情" />
|
||||
</el-form-item> -->
|
||||
<el-form-item label="物料编码" prop="mid">
|
||||
<el-input v-model="form.mid" placeholder="请输入物料编码" />
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="物料数量" prop="num">
|
||||
<el-input v-model="form.num" placeholder="请输入物料数量" />
|
||||
</el-form-item> -->
|
||||
<el-form-item label="起始位置" prop="sourceName">
|
||||
<el-input v-model="form.sourceName" placeholder="请输入起始位置" />
|
||||
</el-form-item>
|
||||
<el-form-item label="目标位置" prop="targetName">
|
||||
<el-input v-model="form.targetName" placeholder="请输入目标位置" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup name="Task">
|
||||
import { listTask, getTask, delTask, addTask, updateTask,executeTask1,wcsTask,wcsStatus } from "@/api/wisdom/dispatch";
|
||||
|
||||
const { proxy } = getCurrentInstance();
|
||||
|
||||
const taskList = ref([]);
|
||||
const open = ref(false);
|
||||
const loading = ref(true);
|
||||
const showSearch = ref(true);
|
||||
const ids = ref([]);
|
||||
const single = ref(true);
|
||||
const multiple = ref(true);
|
||||
const total = ref(0);
|
||||
const title = ref("");
|
||||
const wcs_TaskID = ref(-1);
|
||||
|
||||
const data = reactive({
|
||||
form: {},
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
// taskType:1,
|
||||
taskNo: null,
|
||||
taskDtl: null,
|
||||
taskType: null,
|
||||
taskStatus: null,
|
||||
midStatus: null,
|
||||
mid: null,
|
||||
midType: null,
|
||||
sourceName: null,
|
||||
operator: null,
|
||||
rcptim: null
|
||||
},
|
||||
rules: {
|
||||
taskNo: [
|
||||
{ required: true, message: "任务编号不能为空", trigger: "blur" }
|
||||
],
|
||||
}
|
||||
});
|
||||
|
||||
const { queryParams, form, rules } = toRefs(data);
|
||||
|
||||
/** 查询调度任务列表 */
|
||||
function getList() {
|
||||
loading.value = true;
|
||||
// console.log(queryParams.value)
|
||||
// if (queryParams.value.taskType == null) {
|
||||
// queryParams.value.taskType = 1;
|
||||
// }
|
||||
listTask(queryParams.value).then(response => {
|
||||
taskList.value = response.rows;
|
||||
total.value = response.total;
|
||||
loading.value = false;
|
||||
});
|
||||
}
|
||||
|
||||
// 取消按钮
|
||||
function cancel() {
|
||||
open.value = false;
|
||||
reset();
|
||||
}
|
||||
|
||||
// 表单重置
|
||||
function reset() {
|
||||
form.value = {
|
||||
id: null,
|
||||
taskNo: null,
|
||||
taskDtl: null,
|
||||
taskType: null,
|
||||
taskStatus: null,
|
||||
midStatus: null,
|
||||
mid: null,
|
||||
midType: null,
|
||||
sourceName: null,
|
||||
operator: null,
|
||||
rcptim: null,
|
||||
createBy: null,
|
||||
createTime: null,
|
||||
updateBy: null,
|
||||
updateTime: null
|
||||
};
|
||||
proxy.resetForm("taskRef");
|
||||
}
|
||||
|
||||
/** 搜索按钮操作 */
|
||||
function handleQuery() {
|
||||
queryParams.value.pageNum = 1;
|
||||
getList();
|
||||
}
|
||||
|
||||
/** 重置按钮操作 */
|
||||
function resetQuery() {
|
||||
proxy.resetForm("queryRef");
|
||||
handleQuery();
|
||||
}
|
||||
|
||||
// 多选框选中数据
|
||||
function handleSelectionChange(selection) {
|
||||
ids.value = selection.map(item => item.id);
|
||||
single.value = selection.length != 1;
|
||||
multiple.value = !selection.length;
|
||||
}
|
||||
|
||||
/** 新增按钮操作 */
|
||||
function handleAdd() {
|
||||
reset();
|
||||
open.value = true;
|
||||
title.value = "添加调度任务";
|
||||
}
|
||||
|
||||
/** 修改按钮操作 */
|
||||
function handleUpdate(row) {
|
||||
reset();
|
||||
const _id = row.id || ids.value
|
||||
getTask(_id).then(response => {
|
||||
form.value = response.data;
|
||||
open.value = true;
|
||||
title.value = "修改调度任务";
|
||||
});
|
||||
}
|
||||
|
||||
/** 提交按钮 */
|
||||
function submitForm() {
|
||||
proxy.$refs["taskRef"].validate(valid => {
|
||||
if (valid) {
|
||||
if (form.value.id != null) {
|
||||
updateTask(form.value).then(response => {
|
||||
proxy.$modal.msgSuccess("修改成功");
|
||||
open.value = false;
|
||||
getList();
|
||||
});
|
||||
} else {
|
||||
addTask(form.value).then(response => {
|
||||
proxy.$modal.msgSuccess("新增成功");
|
||||
open.value = false;
|
||||
getList();
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
/** 执行调度任务 */
|
||||
function handleExecute(row) {
|
||||
// console.log(row)
|
||||
// return
|
||||
proxy.$modal.confirm('是否确认执行调度任务?').then(function() {
|
||||
return executeTask(row);
|
||||
}).then(() => {
|
||||
// getList();
|
||||
// proxy.$modal.msgSuccess("执行成功");
|
||||
}).catch(() => {});
|
||||
}
|
||||
async function executeTask(row) {
|
||||
proxy.$modal.msgSuccess("开始执行调度任务");
|
||||
if(row.taskType == 0){ //入库
|
||||
var first = row.targetName.substr(0,1);
|
||||
var aindex = row.targetName.substr(5,1);
|
||||
let requestId = ""
|
||||
if(first == "A"){
|
||||
var Materialstatus = 1;
|
||||
if(row.mid == "" || row.mid == "0" || row.mid == 0)
|
||||
{
|
||||
Materialstatus = 0;
|
||||
}
|
||||
loading.value = true;
|
||||
if(row.dispatchMode == 1){ //仅调立库
|
||||
// 向WCS发送入库指令(可能后端自动调用)
|
||||
wcsTask({"taskNo":row.taskNo,"materialStatus":Materialstatus,"Location":row.targetName,"mid":row.mid,"num":row.num,dispatchMode:row.dispatchMode}).then(res=>{
|
||||
if(res.code==200){
|
||||
wcs_TaskID.value = res.taskId;
|
||||
proxy.$modal.msgSuccess("WCS入库指令发送成功");
|
||||
}else{
|
||||
proxy.$modal.msgError("WCS入库指令发送失败!");
|
||||
loading.value = false;
|
||||
}
|
||||
}).catch(() => {
|
||||
proxy.$modal.msgError("操作失败");
|
||||
loading.value = false;
|
||||
});
|
||||
var flag3 = false;
|
||||
var wcs_finish = false;
|
||||
var timId3 = setInterval(function(){
|
||||
// console.log(11111111)
|
||||
// console.log(wcs_TaskID.value)
|
||||
if(!flag3){
|
||||
flag3 = true;
|
||||
if(!wcs_finish){
|
||||
// wcsStatus({"TaskID": wcs_TaskID.value}).then(res=>{
|
||||
// flag3 = false;
|
||||
// if(res.code==200 && res.msg=="200"){
|
||||
// clearInterval(timId3);
|
||||
// wcs_finish = true;
|
||||
// loading.value = false;
|
||||
// proxy.$modal.msgSuccess("立库物资上架完成");
|
||||
|
||||
// }
|
||||
// })
|
||||
listTask({taskNo:row.taskNo}).then(response => {
|
||||
flag3 = false;
|
||||
if(response.rows[0].taskStatus == 2){
|
||||
clearInterval(timId3);
|
||||
wcs_finish = true;
|
||||
loading.value = false;
|
||||
proxy.$modal.msgSuccess("立库物资上架完成");
|
||||
getList();
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
},60000)
|
||||
}else if(row.dispatchMode == 2){ //叉车+立库
|
||||
// var agvTargetName = "V01-010101"; //履带的位置叫V01-010101,也是叉车要放货的位置;页面上输入的起始位置V01-230101,指的是叉车取货的开始位置
|
||||
// if(aindex == '5' || aindex == '6')
|
||||
// {
|
||||
// agvTargetName = "V01-090101";
|
||||
// }
|
||||
// // 调用AGV执行接口
|
||||
// const agvObj = {"id":row.id,"targetName":agvTargetName,"materialStatus":1}
|
||||
// const agvResult = await executeTask(agvObj)
|
||||
// //调用AGV成功
|
||||
// if(agvResult.code==200){
|
||||
// requestId = agvResult.data.requestId
|
||||
// proxy.$modal.msgSuccess("发送物资移库出入台指令成功");
|
||||
// var flag2 = false;
|
||||
// var ishow = false;
|
||||
// if(row.targetName == "A01-040903" || row.targetName == "A01-043204"){
|
||||
|
||||
// }else{
|
||||
// var timId2 = setInterval(function(){
|
||||
// if(flag2) return;
|
||||
// flag2 = true;
|
||||
// //获取AGV执行任务的状态
|
||||
// agvStatus({"requestId": requestId,"status":"TAKE_DOWN_COMPLETED"}).then(res => {
|
||||
// flag2 = false;
|
||||
// if(res.code==200 && res.data !=201){
|
||||
// clearInterval(timId2);
|
||||
|
||||
// proxy.$modal.msgSuccess("AGV放货至出入台完成");
|
||||
// var Materialstatus = 1;
|
||||
// if(row.mid == "" || row.mid == "0" || row.mid == 0)
|
||||
// {
|
||||
// Materialstatus = 0;
|
||||
// }
|
||||
// // this.taskTips.push("WCS入库指令发送成功")
|
||||
// // 向WCS发送入库指令(可能后端自动调用)
|
||||
// wcsTask({"taskNo":row.taskNo,"materialStatus":Materialstatus,"Location":row.targetName,"mid":row.mid,"num":row.num}).then(res=>{
|
||||
// if(res.code==200){
|
||||
// wcs_TaskID.value = res.taskId;
|
||||
// that.taskTips.push("WCS入库指令发送成功")
|
||||
// }else{
|
||||
// that.taskTips.push("WCS入库指令发送失败!")
|
||||
// }
|
||||
// })
|
||||
// }else{
|
||||
// if(!ishow)
|
||||
// {
|
||||
// that.taskTips.push("等待AGV指令执行完成......")
|
||||
// ishow = true;
|
||||
// }
|
||||
// }
|
||||
|
||||
// })
|
||||
// },5000)
|
||||
// }
|
||||
// }
|
||||
}
|
||||
}else if(first == "B"){
|
||||
//1、给AGV发指令
|
||||
//2、检测AGV执行结果
|
||||
}
|
||||
}else if(row.taskType == 1){ //出库
|
||||
var first = row.sourceName.substr(0,1);
|
||||
let requestId = ""
|
||||
if(first == "A"){
|
||||
// console.log(222222)
|
||||
var Materialstatus = 1;
|
||||
if(row.mid == "" || row.mid == "0" || row.mid == 0)
|
||||
{
|
||||
Materialstatus = 0;
|
||||
}
|
||||
loading.value = true;
|
||||
// console.log(55555555)
|
||||
//调立库(后端调立库、调叉车)
|
||||
executeTask1({"id":row.id,"targetName":row.targetName,"materialStatus":Materialstatus,dispatchMode:row.dispatchMode}).then(res=>{
|
||||
if(res.code==200){
|
||||
// this.wcs_TaskID = res.TaskID;
|
||||
if(row.dispatchMode == 1){ // 调立库
|
||||
let flag4 = false;
|
||||
var wcs_finish = false;
|
||||
let timId4 = setInterval(function(){
|
||||
if(!flag4){
|
||||
flag4 = true;
|
||||
if(!wcs_finish){
|
||||
listTask({taskNo:row.taskNo}).then(response => {
|
||||
flag4 = false;
|
||||
if(response.rows[0].taskStatus == 2){
|
||||
clearInterval(timId4);
|
||||
wcs_finish = true;
|
||||
proxy.$modal.msgSuccess("作业任务完成");
|
||||
loading.value = false;
|
||||
getList();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
// 8000
|
||||
},60000)
|
||||
}else if(row.dispatchMode == 2){
|
||||
proxy.$modal.msgSuccess("向WCS发送物资出库指令成功");
|
||||
requestId = res.data.requestId
|
||||
proxy.$modal.msgSuccess("发送AGV取货指令成功");
|
||||
}
|
||||
}else{
|
||||
proxy.$modal.msgError("任务执行中,操作失败");
|
||||
loading.value = false;
|
||||
// this.taskStatus = false;
|
||||
return
|
||||
}
|
||||
}).catch(() => {
|
||||
proxy.$modal.msgError("任务执行中,操作失败");
|
||||
loading.value = false;
|
||||
});
|
||||
if(row.dispatchMode == 2){
|
||||
// 定时查询 叉车 执行状态
|
||||
// 定时查询 叉车 执行状态
|
||||
let flag3 = false;
|
||||
var agv_finish = false;
|
||||
const that = this
|
||||
let timId3 = setInterval(function(){
|
||||
if(!flag3){
|
||||
flag3 = true;
|
||||
if(!agv_finish){
|
||||
// END_ARRIVE
|
||||
agvStatus({"requestId": requestId,"status":"TAKE_DOWN_COMPLETED"}).then(res=>{
|
||||
flag3 = false;
|
||||
if(res.code == 200 && res.data != 201){
|
||||
clearInterval(timId3);
|
||||
agv_finish = true;
|
||||
// that.taskTips.push("物资移库完成")
|
||||
// that.taskTips.push("作业任务完成")
|
||||
proxy.$modal.msgSuccess("物资移库完成");
|
||||
proxy.$modal.msgSuccess("作业任务完成");
|
||||
loading.value = false;
|
||||
getList();
|
||||
// that.taskStatus = false;
|
||||
// that.endTask = true
|
||||
// that.$forceUpdate();
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
},8000)
|
||||
|
||||
}
|
||||
}else{
|
||||
proxy.$modal.msgSuccess("起始位置有误");
|
||||
loading.value = false;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/** 删除按钮操作 */
|
||||
function handleDelete(row) {
|
||||
const _ids = row.id || ids.value;
|
||||
proxy.$modal.confirm('是否确认删除调度任务编号为"' + _ids + '"的数据项?').then(function() {
|
||||
return delTask(_ids);
|
||||
}).then(() => {
|
||||
getList();
|
||||
proxy.$modal.msgSuccess("删除成功");
|
||||
}).catch(() => {});
|
||||
}
|
||||
|
||||
/** 导出按钮操作 */
|
||||
function handleExport() {
|
||||
proxy.download('wisdom/dispatch/export', {
|
||||
...queryParams.value
|
||||
}, `task_${new Date().getTime()}.xlsx`)
|
||||
}
|
||||
function taskTypeFun(taskType) {
|
||||
if (taskType == 0) {
|
||||
return '上架'
|
||||
} else if (taskType == 1) {
|
||||
return '下架'
|
||||
} else if(taskType == 2) {
|
||||
return '移库'
|
||||
}
|
||||
}
|
||||
function taskStatusFun(taskStatus) {
|
||||
if (taskStatus == 0) {
|
||||
return '待执行'
|
||||
} else if (taskStatus == 1) {
|
||||
return '执行中'
|
||||
} else if(taskStatus == 2) {
|
||||
return '已完成'
|
||||
}else if(taskStatus == -1) {
|
||||
return '已取消'
|
||||
}
|
||||
}
|
||||
function midStatusFun(midStatus) {
|
||||
if (midStatus == 0) {
|
||||
return '空托'
|
||||
} else if (midStatus == 1) {
|
||||
return '有货'
|
||||
}
|
||||
}
|
||||
function dispatchModeFun(dispatchMode) {
|
||||
if (dispatchMode == 1) {
|
||||
return '立库'
|
||||
} else if (dispatchMode == 2) {
|
||||
return '立库+AGV'
|
||||
}
|
||||
}
|
||||
getList();
|
||||
</script>
|
||||
651
src/views/wisdom/inrevoke/index.vue
Normal file
651
src/views/wisdom/inrevoke/index.vue
Normal file
@@ -0,0 +1,651 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryRef" v-show="showSearch" label-width="90">
|
||||
<el-row >
|
||||
<el-col :span="7">
|
||||
<el-form-item label="入库时间" prop="rkTime">
|
||||
<!-- <el-date-picker
|
||||
v-model="rkTime"
|
||||
type="daterange"
|
||||
start-placeholder="开始时间"
|
||||
end-placeholder="结束时间"
|
||||
format="YYYY-MM-DD"
|
||||
/> -->
|
||||
<el-date-picker
|
||||
v-model="rkTime"
|
||||
type="datetimerange"
|
||||
start-placeholder="开始时间"
|
||||
end-placeholder="结束时间"
|
||||
format="YYYY/MM/DD HH:mm:ss"
|
||||
value-format="YYYY-MM-DD HH:mm:ss"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="项目号" prop="xmNo">
|
||||
<el-input
|
||||
v-model="queryParams.xmNo"
|
||||
placeholder="请输入项目号"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="订单编号" prop="sapNo">
|
||||
<el-input
|
||||
v-model="queryParams.sapNo"
|
||||
placeholder="请输入订单编号"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="单据号" prop="billNo">
|
||||
<el-input
|
||||
v-model="queryParams.billNo"
|
||||
placeholder="请输入单据号"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<!-- <el-col :span="4">
|
||||
<el-form-item label="库存状态" prop="isChuku">
|
||||
<el-select placeholder="请选择" clearable disabled>
|
||||
<el-option v-for="dict in storeStatusList" :key="dict.id" :label="dict.statusName" :value="dict.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col> -->
|
||||
|
||||
<el-col :span="4">
|
||||
<el-form-item label="物资类型" prop="wlType">
|
||||
<el-select v-model="queryParams.wlType" placeholder="请选择物资类型" clearable >
|
||||
<el-option v-for="dict in wzTypeList" :key="dict.id" :label="dict.typeName" :value="dict.typeCode" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row >
|
||||
<el-col :span="7">
|
||||
<el-form-item label="项目描述" prop="xmMs">
|
||||
<el-input
|
||||
v-model="queryParams.xmMs"
|
||||
placeholder="请输入项目描述"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="物料号" prop="wlNo">
|
||||
<el-input
|
||||
v-model="queryParams.wlNo"
|
||||
placeholder="请输入物料号"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="供应商编码" prop="gysNo">
|
||||
<el-input
|
||||
v-model="queryParams.gysNo"
|
||||
placeholder="请输入供应商编码"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="库位码" prop="pcode">
|
||||
<el-input
|
||||
v-model="queryParams.pcode"
|
||||
placeholder="请输入库位码"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="入库类型" prop="rkType">
|
||||
<el-select v-model="queryParams.rkType" placeholder="请选择入库类型" clearable >
|
||||
<el-option v-for="dict in storeTypeList" :key="dict.id" :label="dict.typeName" :value="dict.typeCode" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="7">
|
||||
<el-form-item label="供应商名称" prop="gysMc">
|
||||
<el-input
|
||||
v-model="queryParams.gysMc"
|
||||
placeholder="请输入供应商名称"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<!-- <el-col :span="4">
|
||||
<el-form-item label="所属仓库" prop="cangku">
|
||||
<el-select v-model="queryParams.cangku" placeholder="请选择仓库" clearable >
|
||||
<el-option v-for="dict in warehouseList" :key="dict.id" :label="dict.warehouseName" :value="dict.warehouseCode" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col> -->
|
||||
<el-col :span="4">
|
||||
<el-form-item label="物料描述" prop="wlMs">
|
||||
<el-input
|
||||
v-model="queryParams.wlMs"
|
||||
placeholder="物料描述"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="danger"
|
||||
plain
|
||||
icon="Delete"
|
||||
@click="handleDel"
|
||||
>删除</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
icon="Plus"
|
||||
@click="handleStore"
|
||||
>一键入库</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="stockList" @selection-change="selectionChange" border show-overflow-tooltip>
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<!-- <el-table-column label="主键ID" align="center" prop="id" />-->
|
||||
<el-table-column label="单据号" align="center" prop="billNo" width="180"/>
|
||||
<el-table-column label="库存状态" align="center" width="100">
|
||||
<!-- scope.row.isChuku==0?"已入库":(scope.row.isChuku==1?"已出库":"审批中") -->
|
||||
<template #default="scope">
|
||||
<span>{{ isChukuFun(scope.row.isChuku) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="项目号" align="center" prop="xmNo" width="150"/>
|
||||
<el-table-column label="项目描述" align="center" prop="xmMs" width="150"/>
|
||||
<el-table-column label="物料号" align="center" prop="wlNo" width="100"/>
|
||||
<el-table-column label="物料描述" align="center" prop="wlMs" width="150"/>
|
||||
<el-table-column label="供应商编码" align="center" prop="gysNo" width="150"/>
|
||||
<el-table-column label="供应商名称" align="center" prop="gysMc" width="150"/>
|
||||
<el-table-column label="计划交货金额" align="center" prop="jhAmt" width="120"/>
|
||||
<el-table-column label="合同单价" align="center" prop="htDj" />
|
||||
<el-table-column label="订单编号" align="center" prop="sapNo" width="150"/>
|
||||
<!-- <el-table-column label="行号" align="center" prop="xh" /> -->
|
||||
<el-table-column label="计划交货数量" align="center" prop="jhQty" width="120"/>
|
||||
<!-- <el-table-column label="合同数量" align="center" prop="htQty" /> -->
|
||||
<el-table-column label="计量单位" align="center" prop="dw" />
|
||||
<el-table-column label="实际入库数量" align="center" prop="realQty" width="120"/>
|
||||
<el-table-column label="库位码" align="center" prop="pcode" width="120"/>
|
||||
<el-table-column label="托盘码" align="center" prop="trayCode" />
|
||||
<el-table-column label="身份码" align="center" prop="entityId" width="150"/>
|
||||
<el-table-column label="入库类型" align="center" prop="rkTypeName" width="150"/>
|
||||
<el-table-column label="物资类型" align="center" prop="wlTypeName" />
|
||||
<el-table-column label="所属大库" align="center" prop="parentWarehouseName" width="150"/>
|
||||
<el-table-column label="所属小库" align="center" prop="warehouseName" width="150"/>
|
||||
<el-table-column label="入库时间" align="center" prop="rkTime" width="100">
|
||||
<template #default="scope">
|
||||
<span>{{ parseTime(scope.row.rkTime, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="库龄" align="center" prop="stockAge" />
|
||||
<el-table-column label="理货员" align="center" prop="lihuoYName" />
|
||||
<!-- <el-table-column label="审核状态" align="center" prop="lihuoY" >
|
||||
<template #default="scope">
|
||||
<span>{{ scope.row.auditResult==0?"已入库":"已出库" }}</span>
|
||||
</template>
|
||||
</el-table-column> -->
|
||||
<el-table-column label="现场图片" align="center" v-if="isExamine==1">
|
||||
<template #default="scope">
|
||||
<el-image :src="scope.row.scenePhotoUrl" style="width:50px;height: 50px;"
|
||||
:zoom-rate="1.2"
|
||||
:max-scale="7"
|
||||
:min-scale="0.2"
|
||||
:preview-src-list="srcList"
|
||||
show-progress
|
||||
:initial-index="4"
|
||||
:preview-teleported="true"
|
||||
@click="preview(scope.row.scenePhotoUrl)"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="备注" align="center" prop="remark" width="150"/>
|
||||
<!-- <el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width" width="130">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)">一键入库</el-button>
|
||||
<el-button
|
||||
link
|
||||
type="primary"
|
||||
icon="Delete"
|
||||
@click="handleStockDelete(scope.row)"
|
||||
>删除</el-button>
|
||||
</template>
|
||||
</el-table-column> -->
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="total>0"
|
||||
:total="total"
|
||||
v-model:page="queryParams.pageNum"
|
||||
v-model:limit="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
|
||||
<!-- 图片预览 -->
|
||||
<el-dialog v-model="dialogVisible">
|
||||
<img w-full :src="dialogImageUrl" alt="Preview Image" />
|
||||
</el-dialog>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup name="inrevoke">
|
||||
// wisdomDelStock
|
||||
import { listInrevoke,delStore,storeFun} from "@/api/wisdom/inrevoke";
|
||||
import { getAudit} from "@/api/wisdom/stock";
|
||||
import {warehousingDict} from "@/api/information/warehousingtype"; //入库类型
|
||||
import {materialtypeDict} from "@/api/information/materialtype"; //物资类型
|
||||
import {warehouseDict} from "@/api/information/warehouseinfo"; //所属仓库
|
||||
import {personListDict} from "@/api/system/user"; //理货员
|
||||
import {getKwList} from "@/api/information/pcdedetail"; //库位下拉数据
|
||||
import { Plus } from '@element-plus/icons-vue'
|
||||
|
||||
|
||||
const { proxy } = getCurrentInstance();
|
||||
|
||||
const stockList = ref([]);
|
||||
const open = ref(false);
|
||||
const openSwitch = ref(false); //移库
|
||||
const loading = ref(true);
|
||||
const showSearch = ref(true);
|
||||
const idEdit = ref(0);
|
||||
const single = ref(true);
|
||||
const multiple = ref(true);
|
||||
const total = ref(0);
|
||||
const title = ref("");
|
||||
const planLoading = ref(true);
|
||||
const planList = ref([]); //从供应计划中添加列表
|
||||
const checkPlanList = ref([]); //已选中的要入库的数据
|
||||
const storeTypeList = ref([]); //入库类型下拉数据
|
||||
const wzTypeList = ref([]); //物资类型下拉数据
|
||||
const warehouseList = ref([]); //所属仓库下拉数据
|
||||
const personList = ref([]); //理货员下拉数据
|
||||
const orderNum = ref("") //搜索条件:订单号
|
||||
const kwOptions = ref([]); //库位下拉
|
||||
const showContent = ref(false); // 控制打印内容是否显示
|
||||
const dateStr = ref("") //打印单据生成的日期
|
||||
const printList = ref([]) //要打印的数据列表
|
||||
const storeStatusList = ref([
|
||||
{id:0,statusName:"已入库"},
|
||||
{id:1,statusName:"已出库"}
|
||||
])
|
||||
const moveReason = ref("") //移库原因
|
||||
const rkTime = ref([])
|
||||
const isExamine = ref(0) //是否需要开启审核 1开启;0不开启
|
||||
const actionUrl = import.meta.env.VITE_APP_BASE_API+"/wisdom/signature/upload"
|
||||
const dialogImageUrl = ref('')
|
||||
const dialogVisible = ref(false)
|
||||
const srcList = ref([])
|
||||
const autoFill = ref(false) //是否自动填充备注
|
||||
const kzms = ref("")
|
||||
const ids = ref([])
|
||||
|
||||
const data = reactive({
|
||||
form: {},
|
||||
storeData:{}, //入库数据
|
||||
switchData:[], //移库数据
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
isChuku:4,
|
||||
billNo:null,
|
||||
// rkTime: [],
|
||||
startTime:null,
|
||||
endTime:null,
|
||||
xmNo: null,
|
||||
sapNo: null,
|
||||
xmMs:"",
|
||||
wlNo:"",
|
||||
gysNo:"",
|
||||
pcode:"",
|
||||
rkType:"",
|
||||
gysMc:"",
|
||||
wlType:"", //物资类型
|
||||
cangku:"",
|
||||
wlMs:"",
|
||||
ids:[]
|
||||
},
|
||||
|
||||
|
||||
|
||||
});
|
||||
|
||||
const { queryParams, storeData,form,switchData} = toRefs(data);
|
||||
function isChukuFun(isChuku){
|
||||
// scope.row.isChuku==0?"已入库":(scope.row.isChuku==1?"已出库":"审批中")
|
||||
|
||||
if(isChuku == 0){
|
||||
return "已入库"
|
||||
} else if(isChuku == 1){
|
||||
return "已出库"
|
||||
}else if(isChuku == 3){
|
||||
return "借料出库"
|
||||
}else if(isChuku == 2){
|
||||
return "审批中"
|
||||
}else if(isChuku == 4){
|
||||
return "入库撤销"
|
||||
}else if(isChuku == 5){
|
||||
return "出库撤销"
|
||||
}
|
||||
}
|
||||
|
||||
function preview(url){
|
||||
srcList.value = [url]
|
||||
}
|
||||
//多选
|
||||
function selectionChange(selection){
|
||||
ids.value = selection.map(item => item.id)
|
||||
}
|
||||
//删除
|
||||
function handleDel(){
|
||||
if(ids.value.length==0){
|
||||
proxy.$modal.msgError("请勾选数据");
|
||||
return
|
||||
}
|
||||
// console.log(ids.value)
|
||||
// return
|
||||
delStore(ids.value).then(response=>{
|
||||
getList();
|
||||
proxy.$modal.msgSuccess("操作成功");
|
||||
})
|
||||
// console.log(ids.value)
|
||||
}
|
||||
//一键入库
|
||||
function handleStore(){
|
||||
if(ids.value.length==0){
|
||||
proxy.$modal.msgError("请勾选数据");
|
||||
return
|
||||
}
|
||||
storeFun(ids.value).then(response=>{
|
||||
getList();
|
||||
proxy.$modal.msgSuccess("操作成功");
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
//预览图片
|
||||
function handlePreview(uploadFile){
|
||||
// console.log(222222)
|
||||
// console.log(res)
|
||||
dialogImageUrl.value = uploadFile.response.url
|
||||
dialogVisible.value = true
|
||||
}
|
||||
function tableRowClassName({row, rowIndex}) {
|
||||
// console.log(row)
|
||||
// 根据每行的数据,判断isError来增加class属性
|
||||
if (row.isAdd) {
|
||||
return 'warning-row'
|
||||
}
|
||||
// else {
|
||||
// return 'success-row'
|
||||
// }
|
||||
return '';
|
||||
}
|
||||
/** 查询库存单据主列表 */
|
||||
function getList() {
|
||||
loading.value = true;
|
||||
listInrevoke(queryParams.value).then(response => {
|
||||
stockList.value = response.rows;
|
||||
total.value = response.total;
|
||||
loading.value = false;
|
||||
});
|
||||
}
|
||||
//判断是否需要开启审核功能
|
||||
function isAudit(){
|
||||
// {configKey:"stock.audit.enabled"}
|
||||
getAudit().then(response=>{
|
||||
// console.log(2222222)
|
||||
// console.log(response.msg)
|
||||
isExamine.value = response.msg
|
||||
})
|
||||
}
|
||||
//库位字典
|
||||
function pcodeList(){
|
||||
getKwList().then(response=>{
|
||||
kwOptions.value = response.data
|
||||
})
|
||||
}
|
||||
//所属仓库
|
||||
function warehouseFun(){
|
||||
//所属仓库下拉数据
|
||||
warehouseDict().then(response=>{
|
||||
warehouseList.value = response.data
|
||||
})
|
||||
}
|
||||
//物资类型
|
||||
function materialFun(){
|
||||
//获取物资类型下拉数据
|
||||
materialtypeDict().then(response=>{
|
||||
wzTypeList.value = response.data
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 表单重置
|
||||
function reset() {
|
||||
planList.value = []
|
||||
storeData.value = {}
|
||||
proxy.resetForm("stockRef");
|
||||
}
|
||||
|
||||
/** 搜索按钮操作 */
|
||||
function handleQuery() {
|
||||
|
||||
if(rkTime.value && rkTime.value.length>0){
|
||||
queryParams.value.startTime = rkTime.value[0]
|
||||
queryParams.value.endTime = rkTime.value[1]
|
||||
}else{
|
||||
queryParams.value.startTime = ""
|
||||
queryParams.value.endTime = ""
|
||||
}
|
||||
queryParams.value.pageNum = 1;
|
||||
if(printList.value.length>0){
|
||||
queryParams.value.ids = printList.value.map( item => item.id )
|
||||
}
|
||||
// console.log(queryParams.value)
|
||||
getList();
|
||||
}
|
||||
|
||||
/** 重置按钮操作 */
|
||||
function resetQuery() {
|
||||
proxy.resetForm("queryRef");
|
||||
rkTime.value = []
|
||||
// queryParams.value.startTime = ""
|
||||
// queryParams.value.endTime = ""
|
||||
handleQuery();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/** 新增按钮操作 */
|
||||
function handleAdd() {
|
||||
reset();
|
||||
open.value = true;
|
||||
title.value = "添加库存单据";
|
||||
//获取入库类型下拉数据
|
||||
warehousingDict().then(response=>{
|
||||
storeTypeList.value = response.data
|
||||
})
|
||||
//理货员下拉数据
|
||||
personListDict().then(response=>{
|
||||
personList.value = response.data
|
||||
})
|
||||
}
|
||||
function lhyList(){
|
||||
//理货员下拉数据
|
||||
personListDict().then(response=>{
|
||||
personList.value = response.data
|
||||
})
|
||||
}
|
||||
function rklxList(){
|
||||
//获取入库类型下拉数据
|
||||
warehousingDict().then(response=>{
|
||||
storeTypeList.value = response.data
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
// function selectKw(row){
|
||||
// console.log(row)
|
||||
// }
|
||||
/** 修改按钮操作 */
|
||||
function handleUpdate(row) {
|
||||
reset();
|
||||
idEdit.value = row.id
|
||||
getStock(row.id).then(response => {
|
||||
let dataInfo = response.data
|
||||
dataInfo.isnew = true
|
||||
storeData.value.rkType = dataInfo.rkType
|
||||
storeData.value.wlType = dataInfo.wlType
|
||||
storeData.value.cangku = dataInfo.cangku
|
||||
storeData.value.lihuoY = parseInt(dataInfo.lihuoY)
|
||||
planList.value = [dataInfo]
|
||||
// form.value = response.data;
|
||||
open.value = true;
|
||||
title.value = "修改库存单据";
|
||||
});
|
||||
}
|
||||
function closeDialog(){
|
||||
idEdit.value = 0
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// 撤销入库
|
||||
const handleStockDelete = (row) => {
|
||||
// dialogDelStock.value = true
|
||||
proxy.$modal.confirm('确定撤销吗?').then(function() {
|
||||
if(row.isChuku==0){
|
||||
let data = {
|
||||
id:row.id,
|
||||
realQty:row.realQty,
|
||||
gysJhId:row.gysJhId
|
||||
}
|
||||
return wisdomDelStock(data);
|
||||
}else if(row.isChuku==1){
|
||||
return ckDelStock(row.id)
|
||||
}
|
||||
|
||||
}).then(() => {
|
||||
getList();
|
||||
proxy.$modal.msgSuccess("操作成功");
|
||||
}).catch(() => {});
|
||||
}
|
||||
|
||||
const dialogDelStock = ref(false)
|
||||
const delStockFormRef = ref(null)
|
||||
const delStockForm = ref({
|
||||
billNo:''
|
||||
})
|
||||
const delStockRules = ref({
|
||||
billNo: [{ required: true, message: '请输入单据号', trigger: ['blur'] }],
|
||||
})
|
||||
const submitDelStock = () => {
|
||||
proxy.$refs["delStockFormRef"].validate(valid => {
|
||||
if (valid){
|
||||
wisdomDelStock(delStockForm.value.billNo).then(response=>{
|
||||
if(response.code==200){
|
||||
proxy.$modal.msgSuccess("操作成功");
|
||||
//数据列表
|
||||
getList();
|
||||
dialogDelStock.value = false
|
||||
}else{
|
||||
proxy.$modal.msgError("操作失败");
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
const cancelDelStock = () => {
|
||||
dialogDelStock.value = false
|
||||
}
|
||||
/** 导出按钮操作 */
|
||||
function handleExport() {
|
||||
proxy.download('wisdom/stock/export', {
|
||||
...queryParams.value
|
||||
}, `stock_${new Date().getTime()}.xlsx`)
|
||||
}
|
||||
|
||||
//数据列表
|
||||
getList();
|
||||
//库位下拉数据
|
||||
pcodeList()
|
||||
//所属仓库
|
||||
warehouseFun()
|
||||
//物资类型
|
||||
materialFun()
|
||||
//是否开启审核
|
||||
isAudit()
|
||||
//入库类型下拉数据
|
||||
rklxList()
|
||||
//理货员下拉数据
|
||||
lhyList()
|
||||
</script>
|
||||
<style scoped>
|
||||
.el-table .warning-row {
|
||||
--el-table-tr-bg-color: var(--el-color-warning-light-9);
|
||||
}
|
||||
.el-table .success-row {
|
||||
--el-table-tr-bg-color: var(--el-color-success-light-9);
|
||||
}
|
||||
.titleBox{
|
||||
text-align: center;
|
||||
}
|
||||
.topBox{
|
||||
margin-bottom: 10px;
|
||||
display: flex;
|
||||
}
|
||||
.bottomBox{
|
||||
margin-top: 20px;
|
||||
}
|
||||
.oneLineBox{
|
||||
display: flex;
|
||||
}
|
||||
.everyBox{
|
||||
width: 30%;
|
||||
}
|
||||
.examine{
|
||||
margin-top: 20px;
|
||||
height: 100px;
|
||||
background-color: #ededed;
|
||||
padding: 20px 0 0 20px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
</style>
|
||||
|
||||
1406
src/views/wisdom/inventorySearch/index.vue
Normal file
1406
src/views/wisdom/inventorySearch/index.vue
Normal file
File diff suppressed because it is too large
Load Diff
277
src/views/wisdom/move/index.vue
Normal file
277
src/views/wisdom/move/index.vue
Normal file
@@ -0,0 +1,277 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryForm" v-show="showSearch" label-width="68px">
|
||||
<el-row :gutter="40">
|
||||
<el-col :span="6">
|
||||
<el-form-item label="原仓库" prop="fromCangku">
|
||||
<el-select v-model="queryParams.fromCangku" placeholder="请选择仓库" clearable >
|
||||
<el-option v-for="dict in warehouseList" :key="dict.id" :label="dict.warehouseName" :value="dict.warehouseCode" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="目标仓库" prop="toCangku">
|
||||
<el-select v-model="queryParams.toCangku" placeholder="请选择仓库" clearable >
|
||||
<el-option v-for="dict in warehouseList" :key="dict.id" :label="dict.warehouseName" :value="dict.warehouseCode" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="项目号" prop="xmNo">
|
||||
<el-input
|
||||
v-model="queryParams.xmNo"
|
||||
placeholder="请输入项目号"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="Search" size="mini" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="Refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<el-table v-loading="loading" :data="recordList" border show-overflow-tooltip>
|
||||
<el-table-column label="物料描述" align="center" prop="wlMs" />
|
||||
<el-table-column label="供应商" align="center" prop="gysMc" />
|
||||
<el-table-column label="项目编号" align="center" prop="xmNo" />
|
||||
<el-table-column label="项目描述" align="center" prop="xmMs" />
|
||||
|
||||
<el-table-column label="原仓库" align="center" prop="fromCangkuName" />
|
||||
<el-table-column label="原库位码" align="center" prop="fromPcode" />
|
||||
<el-table-column label="原托盘码" align="center" prop="fromTrayCode" />
|
||||
<el-table-column label="目标仓库" align="center" prop="toCangkuName" />
|
||||
<el-table-column label="目标库位码" align="center" prop="toPcode" />
|
||||
<el-table-column label="目标托盘码" align="center" prop="toTrayCode" />
|
||||
<el-table-column label="身份码" align="center" prop="entityId" />
|
||||
<el-table-column label="移库人" align="center" prop="movedByName" />
|
||||
<el-table-column label="移库原因" align="center" prop="moveReason" />
|
||||
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="total>0"
|
||||
:total="total"
|
||||
v-model:page="queryParams.pageNum"
|
||||
v-model:limit="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
|
||||
<!-- 添加或修改移库记录对话框 -->
|
||||
<!-- :visible.sync="open" -->
|
||||
<el-dialog :title="title" width="500px" append-to-body>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||
<el-form-item label="关联的库存单据ID" prop="rkId">
|
||||
<el-input v-model="form.rkId" placeholder="请输入关联的库存单据ID" />
|
||||
</el-form-item>
|
||||
<el-form-item label="实物ID" prop="entityId">
|
||||
<el-input v-model="form.entityId" placeholder="请输入实物ID" />
|
||||
</el-form-item>
|
||||
<el-form-item label="原仓库" prop="fromCangku">
|
||||
<el-input v-model="form.fromCangku" placeholder="请输入原仓库" />
|
||||
</el-form-item>
|
||||
<el-form-item label="原库位码" prop="fromPcode">
|
||||
<el-input v-model="form.fromPcode" placeholder="请输入原库位码" />
|
||||
</el-form-item>
|
||||
<el-form-item label="原托盘码" prop="fromTrayCode">
|
||||
<el-input v-model="form.fromTrayCode" placeholder="请输入原托盘码" />
|
||||
</el-form-item>
|
||||
<el-form-item label="目标仓库" prop="toCangku">
|
||||
<el-input v-model="form.toCangku" placeholder="请输入目标仓库" />
|
||||
</el-form-item>
|
||||
<el-form-item label="目标库位码" prop="toPcode">
|
||||
<el-input v-model="form.toPcode" placeholder="请输入目标库位码" />
|
||||
</el-form-item>
|
||||
<el-form-item label="目标托盘码" prop="toTrayCode">
|
||||
<el-input v-model="form.toTrayCode" placeholder="请输入目标托盘码" />
|
||||
</el-form-item>
|
||||
<el-form-item label="移库原因" prop="moveReason">
|
||||
<el-input v-model="form.moveReason" placeholder="请输入移库原因" />
|
||||
</el-form-item>
|
||||
<el-form-item label="操作人" prop="movedBy">
|
||||
<el-input v-model="form.movedBy" placeholder="请输入操作人" />
|
||||
</el-form-item>
|
||||
<el-form-item label="操作时间" prop="movedAt">
|
||||
<el-input v-model="form.movedAt" placeholder="请输入操作时间" />
|
||||
</el-form-item>
|
||||
<el-form-item label="逻辑删除标志" prop="isDelete">
|
||||
<el-input v-model="form.isDelete" placeholder="请输入逻辑删除标志" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<!-- slot="footer" -->
|
||||
<div class="dialog-footer">
|
||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { listRecord } from "@/api/wisdom/move";
|
||||
import {warehouseDict} from "@/api/information/warehouseinfo"; //所属仓库
|
||||
|
||||
export default {
|
||||
name: "move",
|
||||
data() {
|
||||
return {
|
||||
// 遮罩层
|
||||
loading: true,
|
||||
// 选中数组
|
||||
ids: [],
|
||||
// 非单个禁用
|
||||
single: true,
|
||||
// 非多个禁用
|
||||
multiple: true,
|
||||
// 显示搜索条件
|
||||
showSearch: true,
|
||||
// 总条数
|
||||
total: 0,
|
||||
// 移库记录表格数据
|
||||
recordList: [],
|
||||
// 弹出层标题
|
||||
title: "",
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
fromCangku: null,
|
||||
toCangku: null,
|
||||
xmNo:null
|
||||
},
|
||||
warehouseList:[], //所属仓库下拉数据
|
||||
// 表单参数
|
||||
form: {},
|
||||
// 表单校验
|
||||
rules: {
|
||||
rkId: [
|
||||
{ required: true, message: "关联的库存单据ID不能为空", trigger: "blur" }
|
||||
],
|
||||
}
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getList();
|
||||
this.warehouseFun()
|
||||
},
|
||||
methods: {
|
||||
//所属仓库
|
||||
warehouseFun(){
|
||||
//所属仓库下拉数据
|
||||
warehouseDict().then(response=>{
|
||||
this.warehouseList = response.data
|
||||
})
|
||||
},
|
||||
/** 查询移库记录列表 */
|
||||
getList() {
|
||||
this.loading = true;
|
||||
listRecord(this.queryParams).then(response => {
|
||||
this.recordList = response.rows;
|
||||
this.total = response.total;
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
// 取消按钮
|
||||
cancel() {
|
||||
this.open = false;
|
||||
this.reset();
|
||||
},
|
||||
// 表单重置
|
||||
reset() {
|
||||
this.form = {
|
||||
id: null,
|
||||
rkId: null,
|
||||
entityId: null,
|
||||
fromCangku: null,
|
||||
fromPcode: null,
|
||||
fromTrayCode: null,
|
||||
toCangku: null,
|
||||
toPcode: null,
|
||||
toTrayCode: null,
|
||||
moveReason: null,
|
||||
movedBy: null,
|
||||
movedAt: null,
|
||||
createBy: null,
|
||||
createTime: null,
|
||||
updateBy: null,
|
||||
updateTime: null,
|
||||
isDelete: null
|
||||
};
|
||||
this.resetForm("form");
|
||||
},
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
this.queryParams.pageNum = 1;
|
||||
this.getList();
|
||||
},
|
||||
/** 重置按钮操作 */
|
||||
resetQuery() {
|
||||
this.resetForm("queryForm");
|
||||
this.handleQuery();
|
||||
},
|
||||
// 多选框选中数据
|
||||
handleSelectionChange(selection) {
|
||||
this.ids = selection.map(item => item.id)
|
||||
this.single = selection.length!==1
|
||||
this.multiple = !selection.length
|
||||
},
|
||||
/** 新增按钮操作 */
|
||||
handleAdd() {
|
||||
this.reset();
|
||||
this.open = true;
|
||||
this.title = "添加移库记录";
|
||||
},
|
||||
/** 修改按钮操作 */
|
||||
handleUpdate(row) {
|
||||
this.reset();
|
||||
const id = row.id || this.ids
|
||||
getRecord(id).then(response => {
|
||||
this.form = response.data;
|
||||
this.open = true;
|
||||
this.title = "修改移库记录";
|
||||
});
|
||||
},
|
||||
/** 提交按钮 */
|
||||
submitForm() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
if (this.form.id != null) {
|
||||
updateRecord(this.form).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
});
|
||||
} else {
|
||||
addRecord(this.form).then(response => {
|
||||
this.$modal.msgSuccess("新增成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
/** 删除按钮操作 */
|
||||
handleDelete(row) {
|
||||
const ids = row.id || this.ids;
|
||||
this.$modal.confirm('是否确认删除移库记录编号为"' + ids + '"的数据项?').then(function() {
|
||||
return delRecord(ids);
|
||||
}).then(() => {
|
||||
this.getList();
|
||||
this.$modal.msgSuccess("删除成功");
|
||||
}).catch(() => {});
|
||||
},
|
||||
/** 导出按钮操作 */
|
||||
handleExport() {
|
||||
// this.download('system/record/export', {
|
||||
// ...this.queryParams
|
||||
// }, `record_${new Date().getTime()}.xlsx`)
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
1128
src/views/wisdom/outbound/index.vue
Normal file
1128
src/views/wisdom/outbound/index.vue
Normal file
File diff suppressed because it is too large
Load Diff
531
src/views/wisdom/outrevoke/index.vue
Normal file
531
src/views/wisdom/outrevoke/index.vue
Normal file
@@ -0,0 +1,531 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryRef" v-show="showSearch" label-width="90">
|
||||
<el-row >
|
||||
<el-col :span="7">
|
||||
<el-form-item label="出库时间" prop="rkTime">
|
||||
<!-- <el-date-picker clearable
|
||||
v-model="queryParams.rkTime"
|
||||
type="date"
|
||||
style="width: 100%;"
|
||||
value-format="YYYY-MM-DD"
|
||||
placeholder="请选择出库时间">
|
||||
</el-date-picker> -->
|
||||
<el-date-picker
|
||||
v-model="rkTime"
|
||||
type="datetimerange"
|
||||
start-placeholder="开始时间"
|
||||
end-placeholder="结束时间"
|
||||
format="YYYY/MM/DD HH:mm:ss"
|
||||
value-format="YYYY-MM-DD HH:mm:ss"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="项目号" prop="xmNo">
|
||||
<el-input
|
||||
v-model="queryParams.xmNo"
|
||||
placeholder="请输入项目号"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="订单编号" prop="sapNo">
|
||||
<el-input
|
||||
v-model="queryParams.sapNo"
|
||||
placeholder="请输入订单编号"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="单据号" prop="billNo">
|
||||
<el-input
|
||||
v-model="queryParams.billNo"
|
||||
placeholder="请输入单据号"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="出库类型" prop="ckType">
|
||||
<el-select v-model="queryParams.ckType" placeholder="请选择出库类型" clearable >
|
||||
<el-option v-for="dict in storeTypeList" :key="dict.id" :label="dict.typeName" :value="dict.typeCode" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<!-- <el-col :span="4">
|
||||
<el-form-item label="所属仓库" prop="cangku">
|
||||
<el-select v-model="queryParams.cangku" placeholder="请选择仓库" clearable >
|
||||
<el-option v-for="dict in warehouseList" :key="dict.id" :label="dict.warehouseName" :value="dict.warehouseCode" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col> -->
|
||||
</el-row>
|
||||
<el-row >
|
||||
<el-col :span="7">
|
||||
<el-form-item label="项目描述" prop="xmMs">
|
||||
<el-input
|
||||
v-model="queryParams.xmMs"
|
||||
placeholder="请输入项目描述"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="物料号" prop="wlNo">
|
||||
<el-input
|
||||
v-model="queryParams.wlNo"
|
||||
placeholder="请输入物料号"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="物资类型" prop="wlType">
|
||||
<el-select v-model="queryParams.wlType" placeholder="请选择物资类型" clearable >
|
||||
<el-option v-for="dict in wzlxList" :key="dict.id" :label="dict.typeName" :value="dict.typeCode" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<!-- <el-col :span="4">
|
||||
<el-form-item label="供应商编码" prop="gysNo">
|
||||
<el-input
|
||||
v-model="queryParams.gysNo"
|
||||
placeholder="请输入供应商编码"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col> -->
|
||||
<el-col :span="4">
|
||||
<el-form-item label="库位码" prop="pcode">
|
||||
<el-input
|
||||
v-model="queryParams.pcode"
|
||||
placeholder="请输入库位码"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item label="物料描述" prop="wlMs">
|
||||
<el-input
|
||||
v-model="queryParams.wlMs"
|
||||
placeholder="请输入物料描述"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="7">
|
||||
<el-form-item label="供应商名称" prop="gysMc">
|
||||
<el-input
|
||||
v-model="queryParams.gysMc"
|
||||
placeholder="请输入供应商名称"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
|
||||
<!-- <el-col :span="4">
|
||||
<el-form-item label="所属仓库" prop="cangku">
|
||||
<el-select v-model="queryParams.cangku" placeholder="请选择仓库" clearable >
|
||||
<el-option v-for="dict in warehouseList" :key="dict.id" :label="dict.warehouseName" :value="dict.warehouseCode" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col> -->
|
||||
<el-col :span="4">
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="danger"
|
||||
plain
|
||||
icon="Delete"
|
||||
@click="handleDel"
|
||||
>删除</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
icon="Plus"
|
||||
@click="handleStore"
|
||||
>一键出库</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
|
||||
<el-table v-loading="loading" :data="outboundList" @selection-change="selectionChange" border show-overflow-tooltip>
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<!-- <el-table-column label="主键ID" align="center" prop="id" />-->
|
||||
<el-table-column label="单据号" align="center" prop="billNo" width="180"/>
|
||||
<el-table-column label="订单编号" align="center" prop="sapNo" width="150"/>
|
||||
<el-table-column label="项目号" align="center" prop="xmNo" width="150"/>
|
||||
<el-table-column label="项目描述" align="center" prop="xmMs" width="150"/>
|
||||
<el-table-column label="物料号" align="center" prop="wlNo" width="100"/>
|
||||
<el-table-column label="物料描述" align="center" prop="wlMs" width="150"/>
|
||||
<el-table-column label="供应商编码" align="center" prop="gysNo" width="150"/>
|
||||
<el-table-column label="供应商名称" align="center" prop="gysMc" width="150"/>
|
||||
<el-table-column label="计划交货金额" align="center" prop="jhAmt" width="120"/>
|
||||
<el-table-column label="合同单价" align="center" prop="htDj" />
|
||||
|
||||
<!-- <el-table-column label="行号" align="center" prop="xh" /> -->
|
||||
<el-table-column label="计划交货数量" align="center" prop="jhQty" width="120"/>
|
||||
<!-- <el-table-column label="合同数量" align="center" prop="htQty" /> -->
|
||||
<el-table-column label="计量单位" align="center" prop="dw" />
|
||||
<el-table-column label="实际出库数量" align="center" prop="realQty" width="120"/>
|
||||
<el-table-column label="所属大库" align="center" prop="parentWarehouseName" width="150"/>
|
||||
<el-table-column label="所属小库" align="center" prop="warehouseName" width="150"/>
|
||||
<el-table-column label="库位码" align="center" prop="pcode" width="120"/>
|
||||
<el-table-column label="托盘码" align="center" prop="trayCode" />
|
||||
<el-table-column label="身份码" align="center" prop="entityId" width="150"/>
|
||||
<el-table-column label="出库类型" align="center" prop="ckTypeName" />
|
||||
<el-table-column label="物资类型" align="center" prop="wlTypeName" />
|
||||
<el-table-column label="出库时间" align="center" width="100">
|
||||
<template #default="scope">
|
||||
<span>{{ parseTime(scope.row.lyTime, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column label="库龄" align="center" prop="stockAge" /> -->
|
||||
<el-table-column label="理货员" align="center" prop="ckLihuoY" />
|
||||
<el-table-column label="现场图片" align="center" v-if="isExamine==1">
|
||||
<template #default="scope">
|
||||
<el-image :src="scope.row.scenePhotoUrl" style="width:50px;height: 50px;"
|
||||
:zoom-rate="1.2"
|
||||
:max-scale="7"
|
||||
:min-scale="0.2"
|
||||
:preview-src-list="srcList"
|
||||
show-progress
|
||||
:initial-index="4"
|
||||
:preview-teleported="true"
|
||||
@click="preview(scope.row.scenePhotoUrl)"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="备注" align="center" prop="ckRemark" width="150"/>
|
||||
<!-- <el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width" width="130">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)">出库</el-button>
|
||||
<el-button
|
||||
link
|
||||
type="primary"
|
||||
icon="Delete"
|
||||
@click="handleStockDelete(scope.row)"
|
||||
>删除</el-button>
|
||||
</template>
|
||||
</el-table-column> -->
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="total>0"
|
||||
:total="total"
|
||||
v-model:page="queryParams.pageNum"
|
||||
v-model:limit="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
|
||||
|
||||
<!-- 图片预览 -->
|
||||
<el-dialog v-model="dialogVisible">
|
||||
<img w-full :src="dialogImageUrl" alt="Preview Image" />
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup name="outrevoke">
|
||||
import { listOutrevoke,delStore,storeFun} from "@/api/wisdom/outrevoke";
|
||||
import {listOuttype} from "@/api/information/outtype"; //出库类型
|
||||
import {listConstruction} from "@/api/information/construction"; //施工队
|
||||
import {warehouseDict} from "@/api/information/warehouseinfo"; //所属仓库
|
||||
import {materialtypeDict} from "@/api/information/materialtype"; //物资类型
|
||||
import {personListDict} from "@/api/system/user"; //理货员
|
||||
// import {getKwList} from "@/api/information/pcdedetail"; //库位下拉数据
|
||||
// import { Plus } from '@element-plus/icons-vue'
|
||||
import { getAudit} from "@/api/wisdom/stock";
|
||||
import { getToken } from "@/utils/auth";
|
||||
|
||||
|
||||
const headers = ref({
|
||||
Authorization: "Bearer " + getToken()
|
||||
});
|
||||
const { proxy } = getCurrentInstance();
|
||||
|
||||
const outboundList = ref([]);
|
||||
const open = ref(false);
|
||||
const loading = ref(true);
|
||||
const showSearch = ref(true);
|
||||
const ids = ref([]);
|
||||
const single = ref(true);
|
||||
const multiple = ref(true);
|
||||
const total = ref(0);
|
||||
const title = ref("");
|
||||
const planLoading = ref(true);
|
||||
const planList = ref([]); //从供应计划中添加列表
|
||||
const rkTime = ref([])
|
||||
const storeTypeList = ref([]); //出库类型下拉数据
|
||||
const wzTypeList = ref([]); //施工队下拉数据
|
||||
const wzlxList = ref([]) //物资类型下拉数据
|
||||
const warehouseList = ref([]) //所属仓库下拉数据
|
||||
const personList = ref([]); //理货员下拉数据
|
||||
const orderNum = ref("") //搜索条件:订单号
|
||||
const showContent = ref(false); // 控制打印内容是否显示
|
||||
const dateStr = ref("") //打印单据生成的日期
|
||||
const printList = ref([]) //要打印的数据列表
|
||||
const isExamine = ref(0) //是否需要开启审核 1开启;0不开启
|
||||
const actionUrl = import.meta.env.VITE_APP_BASE_API+"/wisdom/signature/upload"
|
||||
const dialogImageUrl = ref('')
|
||||
const dialogVisible = ref(false)
|
||||
const srcList = ref([])
|
||||
|
||||
const data = reactive({
|
||||
form: {},
|
||||
storeData:{}, //出库数据
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
isChuku:5,
|
||||
// rkTime:"", //出库时间
|
||||
lyStartTime:null,
|
||||
lyEndTime:null,
|
||||
xmNo:"",
|
||||
sapNo:"",
|
||||
billNo:"",
|
||||
ids: [],
|
||||
xmMs:"",
|
||||
wlNo:"",
|
||||
gysNo:"",
|
||||
pcode:"",
|
||||
ckType:"",
|
||||
gysMc:"",
|
||||
wlMs:"",
|
||||
wlType:"",
|
||||
cangku:""
|
||||
},
|
||||
outQueryParams:{
|
||||
xmNo:"",
|
||||
wlNo:"",
|
||||
sapNo:"",
|
||||
wlMs:"",
|
||||
xmMs:"",
|
||||
pcode:"",
|
||||
wlType:"",
|
||||
cangku:"",
|
||||
gysMc:"",
|
||||
pageNum:1,
|
||||
pageSize:50,
|
||||
isChuku:0,
|
||||
},
|
||||
rules: {
|
||||
ckType: [{ required: true, message: "出库类型不能为空", trigger: "change" }],
|
||||
teamCode: [{ required: true, message: "施工队不能为空", trigger: "change" }],
|
||||
lyTime: [{ required: true, message: "领用时间不能为空", trigger: "change" }],
|
||||
ckLihuoY: [{ required: true, message: "理货员不能为空", trigger: "change" }]
|
||||
},
|
||||
|
||||
});
|
||||
|
||||
const { queryParams, storeData, rules,form,outQueryParams } = toRefs(data);
|
||||
|
||||
//多选
|
||||
function selectionChange(selection){
|
||||
ids.value = selection.map(item => item.id)
|
||||
}
|
||||
//删除
|
||||
function handleDel(){
|
||||
if(ids.value.length==0){
|
||||
proxy.$modal.msgError("请勾选数据");
|
||||
return
|
||||
}
|
||||
// console.log(ids.value)
|
||||
// return
|
||||
delStore(ids.value).then(response=>{
|
||||
getList();
|
||||
proxy.$modal.msgSuccess("操作成功");
|
||||
})
|
||||
// console.log(ids.value)
|
||||
}
|
||||
//一键入库
|
||||
function handleStore(){
|
||||
if(ids.value.length==0){
|
||||
proxy.$modal.msgError("请勾选数据");
|
||||
return
|
||||
}
|
||||
storeFun(ids.value).then(response=>{
|
||||
getList();
|
||||
proxy.$modal.msgSuccess("操作成功");
|
||||
})
|
||||
}
|
||||
|
||||
function preview(url){
|
||||
srcList.value = [url]
|
||||
}
|
||||
//预览图片
|
||||
function handlePreview(uploadFile){
|
||||
// console.log(222222)
|
||||
// console.log(res)
|
||||
dialogImageUrl.value = uploadFile.response.url
|
||||
dialogVisible.value = true
|
||||
}
|
||||
|
||||
|
||||
/** 查询库存单据主列表 */
|
||||
function getList() {
|
||||
loading.value = true;
|
||||
listOutrevoke(queryParams.value).then(response => {
|
||||
outboundList.value = response.rows;
|
||||
total.value = response.total;
|
||||
loading.value = false;
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 表单重置
|
||||
function reset() {
|
||||
planList.value = []
|
||||
storeData.value = {}
|
||||
orderNum.value = ""
|
||||
proxy.resetForm("stockRef");
|
||||
}
|
||||
|
||||
/** 搜索按钮操作 */
|
||||
function handleQuery() {
|
||||
if(rkTime.value && rkTime.value.length>0){
|
||||
queryParams.value.lyStartTime = rkTime.value[0]
|
||||
queryParams.value.lyEndTime = rkTime.value[1]
|
||||
}else{
|
||||
queryParams.value.lyStartTime = ""
|
||||
queryParams.value.lyEndTime = ""
|
||||
}
|
||||
queryParams.value.pageNum = 1;
|
||||
getList();
|
||||
}
|
||||
|
||||
/** 重置按钮操作 */
|
||||
function resetQuery() {
|
||||
proxy.resetForm("queryRef");
|
||||
rkTime.value = []
|
||||
handleQuery();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/** 新增按钮操作 */
|
||||
function handleAdd() {
|
||||
reset();
|
||||
open.value = true;
|
||||
title.value = "添加出库单据";
|
||||
//获取出库类型下拉数据
|
||||
listOuttype({pageNum:1,pageSize:50}).then(response=>{
|
||||
storeTypeList.value = response.rows
|
||||
})
|
||||
//获取施工队下拉数据
|
||||
listConstruction({pageNum:1,pageSize:50}).then(response=>{
|
||||
wzTypeList.value = response.rows
|
||||
})
|
||||
|
||||
//理货员下拉数据
|
||||
personListDict().then(response=>{
|
||||
personList.value = response.data
|
||||
})
|
||||
//物资类型下拉数据
|
||||
materialtypeDict().then(response=>{
|
||||
wzlxList.value = response.data
|
||||
})
|
||||
//所属仓库下拉数据
|
||||
warehouseDict().then(response=>{
|
||||
warehouseList.value = response.data
|
||||
})
|
||||
|
||||
}
|
||||
//物资类型下拉数据
|
||||
function wzTypeFun(){
|
||||
materialtypeDict().then(response=>{
|
||||
wzlxList.value = response.data
|
||||
})
|
||||
}
|
||||
//所属仓库下拉数据
|
||||
function cangkuFun(){
|
||||
warehouseDict().then(response=>{
|
||||
warehouseList.value = response.data
|
||||
})
|
||||
}
|
||||
function ckTypeFun(){
|
||||
listOuttype({pageNum:1,pageSize:50}).then(response=>{
|
||||
storeTypeList.value = response.rows
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//判断是否需要开启审核功能
|
||||
function isAudit(){
|
||||
// {configKey:"stock.audit.enabled"}
|
||||
getAudit().then(response=>{
|
||||
// console.log(2222222)
|
||||
// console.log(response.msg)
|
||||
isExamine.value = response.msg
|
||||
})
|
||||
}
|
||||
isAudit()
|
||||
getList();
|
||||
ckTypeFun()
|
||||
wzTypeFun()
|
||||
cangkuFun()
|
||||
</script>
|
||||
<style>
|
||||
.el-table .warning-row {
|
||||
--el-table-tr-bg-color: var(--el-color-warning-light-9);
|
||||
}
|
||||
.el-table .success-row {
|
||||
--el-table-tr-bg-color: var(--el-color-success-light-9);
|
||||
}
|
||||
.titleBox{
|
||||
text-align: center;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
.topBox{
|
||||
display: flex;
|
||||
}
|
||||
.topEveryBox{
|
||||
width: 30%;
|
||||
}
|
||||
.tableBox{
|
||||
margin-top: 10px;
|
||||
}
|
||||
.oneLineBox{
|
||||
display: flex;
|
||||
}
|
||||
.everyBox{
|
||||
width: 25%;
|
||||
}
|
||||
.bottomBox{
|
||||
margin-top: 10px;
|
||||
}
|
||||
</style>
|
||||
|
||||
590
src/views/wisdom/return/index.vue
Normal file
590
src/views/wisdom/return/index.vue
Normal file
@@ -0,0 +1,590 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryRef" v-show="showSearch" >
|
||||
<!-- <el-form-item label="所属仓库" prop="cangku">-->
|
||||
<!-- <el-input-->
|
||||
<!-- v-model="queryParams.cangku"-->
|
||||
<!-- placeholder="请输入所属仓库"-->
|
||||
<!-- clearable-->
|
||||
<!-- @keyup.enter="handleQuery"-->
|
||||
<!-- />-->
|
||||
<!-- </el-form-item>-->
|
||||
<el-row :gutter="40">
|
||||
<el-col :span="5">
|
||||
<el-form-item label="还料时间" prop="returnTime">
|
||||
<el-date-picker
|
||||
v-model="returnTime"
|
||||
type="datetimerange"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
clearable
|
||||
placeholder="请选择出库时间"
|
||||
format="YYYY/MM/DD HH:mm:ss"
|
||||
value-format="YYYY-MM-DD HH:mm:ss"
|
||||
>
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="5">
|
||||
<el-form-item label="项目号" prop="xmNo">
|
||||
<el-input
|
||||
v-model="queryParams.xmNo"
|
||||
placeholder="请输入项目号"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="5">
|
||||
<el-form-item label="订单编号" prop="sapNo">
|
||||
<el-input
|
||||
v-model="queryParams.sapNo"
|
||||
placeholder="请输入订单编号"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="5">
|
||||
<el-form-item label="单据号" prop="billNo">
|
||||
<el-input
|
||||
v-model="queryParams.billNo"
|
||||
placeholder="请输入订单编号"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
|
||||
|
||||
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button
|
||||
type="success"
|
||||
plain
|
||||
icon="Printer"
|
||||
@click="handlePrint"
|
||||
v-print="printViewInfo"
|
||||
v-hasPermi="['wisdom:return:print']"
|
||||
>打印单据</el-button>
|
||||
</el-col> -->
|
||||
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="outboundList" @selection-change="printSelectionChange" border show-overflow-tooltip>
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<!-- <el-table-column label="主键ID" align="center" prop="id" />-->
|
||||
<el-table-column label="单据号" align="center" prop="billNo" width="180"/>
|
||||
<el-table-column label="订单编号" align="center" prop="sapNo" width="150"/>
|
||||
<el-table-column label="项目号" align="center" prop="xmNo" width="150"/>
|
||||
<el-table-column label="项目描述" align="center" prop="xmMs" width="150"/>
|
||||
<el-table-column label="(借用方)项目号" align="center" prop="xmNoCk" width="150"/>
|
||||
<el-table-column label="(借用方)项目描述" align="center" prop="xmMsCk" width="150"/>
|
||||
<el-table-column label="物料号" align="center" prop="wlNo" width="100"/>
|
||||
<el-table-column label="物料描述" align="center" prop="wlMs" width="150"/>
|
||||
<el-table-column label="供应商编码" align="center" prop="gysNo" width="150"/>
|
||||
<el-table-column label="供应商名称" align="center" prop="gysMc" width="150"/>
|
||||
<el-table-column label="计划交货金额" align="center" prop="jhAmt" width="120"/>
|
||||
<el-table-column label="合同单价" align="center" prop="htDj" />
|
||||
|
||||
<!-- <el-table-column label="行号" align="center" prop="xh" /> -->
|
||||
<el-table-column label="计划交货数量" align="center" prop="jhQty" width="120"/>
|
||||
<!-- <el-table-column label="合同数量" align="center" prop="htQty" /> -->
|
||||
<el-table-column label="计量单位" align="center" prop="dw" />
|
||||
<el-table-column label="还料数量" align="center" prop="realQty" width="120"/>
|
||||
<el-table-column label="所属大库" align="center" prop="parentWarehouseName" width="150"/>
|
||||
<el-table-column label="所属小库" align="center" prop="warehouseName" width="150"/>
|
||||
<el-table-column label="库位码" align="center" prop="pcode" width="120"/>
|
||||
<el-table-column label="托盘码" align="center" prop="trayCode" />
|
||||
<el-table-column label="身份码" align="center" prop="entityId" width="150"/>
|
||||
<el-table-column label="类型" align="center" prop="rkTypeName" width="150"/>
|
||||
<!-- <el-table-column label="物资类型" align="center" prop="wlTypeName" />-->
|
||||
<el-table-column label="借料时间" align="center" width="100">
|
||||
<template #default="scope">
|
||||
<span>{{ parseTime(scope.row.borrowTime, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="还料时间" align="center" width="100">
|
||||
<template #default="scope">
|
||||
<span>{{ parseTime(scope.row.returnTime, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column label="理货员" align="center" prop="ckLihuoY" />
|
||||
<el-table-column label="备注" align="center" prop="ckRemark" width="200"/>
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button v-show="scope.row.isBorrowed==1" link type="primary" icon="Edit" @click="handleReturn(scope.row)" v-hasPermi="['wisdom:stock:add']">还料</el-button>
|
||||
</template>
|
||||
</el-table-column> -->
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="total>0"
|
||||
:total="total"
|
||||
v-model:page="queryParams.pageNum"
|
||||
v-model:limit="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
<!-- 打印 -->
|
||||
<div id="printMe" class="printMeBox" v-show="showContent">
|
||||
<div class="titleBox">物资还料单</div>
|
||||
<div class="topBox">
|
||||
<div class="topEveryBox">
|
||||
<span>类型:</span>
|
||||
<span>{{ printList.length>0 ? printList[0].rkTypeName :"" }}</span>
|
||||
</div>
|
||||
<div class="topEveryBox">
|
||||
<span>施工队:</span>
|
||||
<span>{{ printList.length>0?printList[0].teamName:"" }}</span>
|
||||
</div>
|
||||
<div class="topEveryBox">
|
||||
<span>单据号:</span>
|
||||
<span>{{ printList.length>0?printList[0].billNo: '' }}</span>
|
||||
</div>
|
||||
<div class="topEveryBox">
|
||||
<span>还料日期:</span>
|
||||
<span>{{ printList.length>0?parseTime(printList[0].returnTime, '{y}-{m}-{d}'):"" }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<span>项目名称:</span>
|
||||
<span>{{ printList.length>0?printList[0].xmMs:"" }}</span>
|
||||
</div>
|
||||
<div class="tableBox">
|
||||
<!-- <el-table :data="printList" style="width:100%;">
|
||||
<el-table-column label="物料号" prop="wlNo" width="100"/>
|
||||
<el-table-column label="物料描述" prop="wlMs" width="180"/>
|
||||
<el-table-column label="数量" prop="realQty" />
|
||||
<el-table-column label="计量单位" prop="dw" width="80"/>
|
||||
<el-table-column label="订单编号" prop="sapNo" width="100"/>
|
||||
<el-table-column label="库存地点" prop="cangkuName" />
|
||||
<el-table-column label="备注" prop="ckRemark" width="150"/>
|
||||
<el-table-column label="身份码" prop="entityId" width="200"/>
|
||||
</el-table> -->
|
||||
<table border="1" style="width: 100%; border-collapse: collapse; font-size: 12px;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>物料号</th>
|
||||
<th>物料描述</th>
|
||||
<th>数量</th>
|
||||
<th>计量单位</th>
|
||||
<th>订单编号</th>
|
||||
<th>库存地点</th>
|
||||
<th>备注</th>
|
||||
<th>身份码</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="item in printList" :key="item.id">
|
||||
<td>{{ item.wlNo }}</td>
|
||||
<td>{{ item.wlMs }}</td>
|
||||
<td>{{ item.realQty }}</td>
|
||||
<td>{{ item.dw }}</td>
|
||||
<td>{{ item.sapNo }}</td>
|
||||
<td>{{ item.cangkuName }}</td>
|
||||
<td>{{ item.ckRemark }}</td>
|
||||
<td>{{ item.entityId }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="bottomBox">
|
||||
<div class="oneLineBox">
|
||||
<div class="everyBox">
|
||||
<span>制单人:</span>
|
||||
<span>唐山公司</span>
|
||||
</div>
|
||||
<div class="everyBox">
|
||||
<span>理货员:</span>
|
||||
|
||||
</div>
|
||||
<div class="everyBox">
|
||||
<span>仓库主管审核:</span>
|
||||
</div>
|
||||
<div class="everyBox">
|
||||
<span>还料人:</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="twoLineBox">
|
||||
<span>打印时间:</span>
|
||||
<span>{{ dateStr }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup name="outbound">
|
||||
import { listOutbound} from "@/api/wisdom/return"; //列表
|
||||
import {listOuttype} from "@/api/information/outtype"; //出库类型
|
||||
import {listConstruction} from "@/api/information/construction"; //施工队
|
||||
// import {warehouseDict} from "@/api/information/warehouseinfo"; //所属仓库
|
||||
import {personListDict} from "@/api/system/user"; //理货员
|
||||
import {getKwList} from "@/api/information/pcdedetail"; //库位下拉数据
|
||||
// import { Plus } from '@element-plus/icons-vue'
|
||||
|
||||
|
||||
const { proxy } = getCurrentInstance();
|
||||
|
||||
const outboundList = ref([]);
|
||||
const open = ref(false);
|
||||
const returnOpen = ref(false)
|
||||
const loading = ref(true);
|
||||
const showSearch = ref(true);
|
||||
const ids = ref([]);
|
||||
const single = ref(true);
|
||||
const multiple = ref(true);
|
||||
const total = ref(0);
|
||||
const title = ref("");
|
||||
const planLoading = ref(true);
|
||||
const planList = ref([]); //从供应计划中添加列表
|
||||
|
||||
const storeTypeList = ref([]); //出库类型下拉数据
|
||||
const wzTypeList = ref([]); //施工队下拉数据
|
||||
|
||||
const personList = ref([]); //理货员下拉数据
|
||||
const orderNum = ref("") //搜索条件:订单号
|
||||
const showContent = ref(false); // 控制打印内容是否显示
|
||||
const dateStr = ref("") //打印单据生成的日期
|
||||
const printList = ref([]) //要打印的数据列表
|
||||
const kwOptions = ref([]); //库位下拉
|
||||
const returnTime = ref([]);
|
||||
const data = reactive({
|
||||
form: {},
|
||||
storeData:{
|
||||
ckType:"JLCK"
|
||||
}, //借料数据
|
||||
returnData:{
|
||||
originalId:null,
|
||||
pcode:"",
|
||||
rkType:"RK029" //入库类型:借料归还入库
|
||||
}, //还料数据
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
// isChuku:0, //入库,固定传0
|
||||
// rkType:"RK029", //入库类型:还料入库
|
||||
returnTime:"", //还料时间
|
||||
isBorrowed: "2",
|
||||
xmNo:"",
|
||||
sapNo:"",
|
||||
billNo:"",
|
||||
ids: []
|
||||
},
|
||||
outQueryParams:{
|
||||
xmNo:"",
|
||||
wlNo:"",
|
||||
sapNo:"",
|
||||
pageNum:1,
|
||||
pageSize:50,
|
||||
isChuku:0,
|
||||
},
|
||||
rules: {
|
||||
ckType: [{ required: true, message: "出库类型不能为空", trigger: "change" }],
|
||||
teamCode: [{ required: true, message: "施工队不能为空", trigger: "change" }],
|
||||
borrowTime: [{ required: true, message: "借用时间不能为空", trigger: "change" }],
|
||||
ckLihuoY: [{ required: true, message: "理货员不能为空", trigger: "change" }]
|
||||
},
|
||||
printViewInfo: {
|
||||
id: "printMe", //打印区域的唯一的id属性
|
||||
popTitle: '入库信息打印', // 页眉文字 (不设置时显示undifined)(页眉页脚可以在打印页面的更多设置的选项中取消勾选)
|
||||
|
||||
|
||||
beforeOpenCallback () {
|
||||
showContent.value = false;
|
||||
}, // 开始打印之前的callback
|
||||
openCallback () { }, // 调用打印时的callback
|
||||
closeCallback () { }, // 关闭打印的callback(无法区分确认or取消)
|
||||
clickMounted () { },
|
||||
|
||||
standard: '',
|
||||
extarCss: ''
|
||||
}
|
||||
});
|
||||
|
||||
const { queryParams, storeData, rules,form,printViewInfo,outQueryParams,returnData } = toRefs(data);
|
||||
|
||||
|
||||
|
||||
/** 查询库存单据主列表 */
|
||||
function getList() {
|
||||
loading.value = true;
|
||||
listOutbound(queryParams.value).then(response => {
|
||||
outboundList.value = response.rows;
|
||||
total.value = response.total;
|
||||
loading.value = false;
|
||||
});
|
||||
}
|
||||
|
||||
// 取消按钮
|
||||
function cancel() {
|
||||
open.value = false;
|
||||
reset();
|
||||
}
|
||||
|
||||
// 表单重置
|
||||
function reset() {
|
||||
planList.value = []
|
||||
storeData.value = {
|
||||
ckType:"JLCK"
|
||||
}
|
||||
orderNum.value = ""
|
||||
proxy.resetForm("stockRef");
|
||||
}
|
||||
|
||||
/** 搜索按钮操作 */
|
||||
function handleQuery() {
|
||||
if(returnTime.value && returnTime.value.length>0){
|
||||
queryParams.value.startTime = returnTime.value[0]
|
||||
queryParams.value.endTime = returnTime.value[1]
|
||||
}else{
|
||||
queryParams.value.startTime = ""
|
||||
queryParams.value.endTime = ""
|
||||
}
|
||||
queryParams.value.pageNum = 1;
|
||||
getList();
|
||||
}
|
||||
|
||||
/** 重置按钮操作 */
|
||||
function resetQuery() {
|
||||
proxy.resetForm("queryRef");
|
||||
returnTime.value = []
|
||||
handleQuery();
|
||||
}
|
||||
|
||||
//出库 多选框选中数据
|
||||
function handleSelectionChange(selection) {
|
||||
ids.value = selection.map(info=>info.id)
|
||||
}
|
||||
//打印单据 多选框选中数据
|
||||
function printSelectionChange(selection){
|
||||
printList.value = selection
|
||||
queryParams.value.ids = selection.map(item => item.id)
|
||||
console.log(queryParams.value.ids)
|
||||
}
|
||||
//打印单据
|
||||
function handlePrint(){
|
||||
if(printList.value.length==0){
|
||||
proxy.$modal.msgError("请勾选数据");
|
||||
return
|
||||
}
|
||||
const date = new Date();
|
||||
const year = date.getFullYear();
|
||||
const month = date.getMonth() + 1; // 月份从0开始,需要加1
|
||||
const day = date.getDate();
|
||||
const hour = date.getHours();
|
||||
const minute = date.getMinutes();
|
||||
const second = date.getSeconds();
|
||||
dateStr.value = year+"-"+month+"-"+day+" "+hour+":"+minute+":"+second
|
||||
showContent.value = true
|
||||
}
|
||||
/** 新增按钮操作 */
|
||||
function handleAdd() {
|
||||
reset();
|
||||
open.value = true;
|
||||
title.value = "添加借料单据";
|
||||
//获取出库类型下拉数据
|
||||
listOuttype({pageNum:1,pageSize:50}).then(response=>{
|
||||
storeTypeList.value = response.rows
|
||||
})
|
||||
//获取施工队下拉数据
|
||||
listConstruction({pageNum:1,pageSize:50}).then(response=>{
|
||||
wzTypeList.value = response.rows
|
||||
})
|
||||
|
||||
//理货员下拉数据
|
||||
personListDict().then(response=>{
|
||||
personList.value = response.data
|
||||
})
|
||||
|
||||
|
||||
}
|
||||
//查询库存中数据 搜索
|
||||
function searchPlan(){
|
||||
// if(!orderNum.value){
|
||||
// proxy.$modal.msgWarning("请输入项目编号或者订单号");
|
||||
// return
|
||||
// }
|
||||
//查库存
|
||||
// let params = {
|
||||
// pageNum:1,
|
||||
// pageSize:50,
|
||||
// isChuku:0,
|
||||
// // xmNo:orderNum.value
|
||||
// keyword:orderNum.value
|
||||
// }
|
||||
if(!outQueryParams.value.xmNo && !outQueryParams.value.wlNo && !outQueryParams.value.sapNo){
|
||||
proxy.$modal.msgWarning("查询条件不能为空");
|
||||
return
|
||||
}
|
||||
listOutbound(outQueryParams.value).then(response=>{
|
||||
|
||||
// let planData = response.rows
|
||||
if(response.rows.length==0){
|
||||
proxy.$modal.msgWarning("库存无数据");
|
||||
planList.value = []
|
||||
}else{
|
||||
planList.value = response.rows
|
||||
}
|
||||
// console.log(planData)
|
||||
|
||||
// planLoading.value = false
|
||||
})
|
||||
|
||||
|
||||
}
|
||||
|
||||
// function selectKw(row){
|
||||
// console.log(row)
|
||||
// }
|
||||
/** 修改按钮操作 */
|
||||
// function handleUpdate(row) {
|
||||
// reset();
|
||||
// const _id = row.id || ids.value
|
||||
// getStock(_id).then(response => {
|
||||
// form.value = response.data;
|
||||
// open.value = true;
|
||||
// title.value = "修改库存单据主";
|
||||
// });
|
||||
// }
|
||||
|
||||
/** 借料出库 提交按钮 */
|
||||
function submitForm() {
|
||||
|
||||
// console.log(submitData);return
|
||||
// // /pc/wisdom/stock/add
|
||||
// console.log(planList);return
|
||||
proxy.$refs["stockRef"].validate(valid => {
|
||||
|
||||
if (valid) {
|
||||
// if(planList.value.filter(x=>x.realQty=="").length>0){
|
||||
// proxy.$modal.msgError("入库数量不能为空");
|
||||
// return
|
||||
// }
|
||||
// console.log(ids.value)
|
||||
if(ids.value.length==0){
|
||||
proxy.$modal.msgError("请勾选数据");
|
||||
return
|
||||
}
|
||||
let dataList = planList.value.filter(x=>ids.value.includes(x.id)).map(info=>({
|
||||
id:info.id,
|
||||
ckRemark:info.ckRemark
|
||||
}))
|
||||
// console.log(3333)
|
||||
// return
|
||||
let submitData = {
|
||||
borrowTime:storeData.value.borrowTime, //借用时间
|
||||
returnTime:storeData.value.returnTime, // 归还时间
|
||||
teamCode:storeData.value.teamCode, //施工队
|
||||
ckType:storeData.value.ckType, //出库类型
|
||||
ckLihuoY:storeData.value.ckLihuoY, //理货员
|
||||
xmNoCk:storeData.value.xmNoCk?storeData.value.xmNoCk:"", //原本要出的项目号
|
||||
xmMsCk:storeData.value.xmMsCk?storeData.value.xmMsCk:"", //原本要出的项目描述
|
||||
// rkList:planList.value
|
||||
ckList:dataList
|
||||
}
|
||||
// console.log(submitData)
|
||||
// return
|
||||
addOutbound(submitData).then(response => {
|
||||
proxy.$modal.msgSuccess("操作成功");
|
||||
open.value = false;
|
||||
getList();
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
//打开还料弹框
|
||||
function handleReturn(row){
|
||||
console.log(row)
|
||||
returnData.value.pcode = row.pcode
|
||||
returnData.value.originalId = row.id
|
||||
returnOpen.value = true
|
||||
}
|
||||
//取消还料弹框
|
||||
function cancelReturn(){
|
||||
returnOpen.value = false
|
||||
}
|
||||
//还料保存
|
||||
function returnForm(){
|
||||
returnSubmit(returnData.value).then(response => {
|
||||
proxy.$modal.msgSuccess("操作成功");
|
||||
returnOpen.value = false;
|
||||
getList();
|
||||
});
|
||||
}
|
||||
//库位字典
|
||||
function pcodeList(){
|
||||
getKwList().then(response=>{
|
||||
kwOptions.value = response.data
|
||||
})
|
||||
}
|
||||
/** 删除按钮操作 */
|
||||
// function handleDelete(row) {
|
||||
// const _ids = row.id || ids.value;
|
||||
// proxy.$modal.confirm('是否确认删除库存单据主编号为"' + _ids + '"的数据项?').then(function() {
|
||||
// return delStock(_ids);
|
||||
// }).then(() => {
|
||||
// getList();
|
||||
// proxy.$modal.msgSuccess("删除成功");
|
||||
// }).catch(() => {});
|
||||
// }
|
||||
|
||||
/** 导出按钮操作 */
|
||||
function handleExport() {
|
||||
proxy.download('wisdom/stock/export', {
|
||||
...queryParams.value
|
||||
}, `stock_${new Date().getTime()}.xlsx`)
|
||||
}
|
||||
|
||||
getList();
|
||||
//库位下拉数据
|
||||
pcodeList()
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
.el-table .warning-row {
|
||||
--el-table-tr-bg-color: var(--el-color-warning-light-9);
|
||||
}
|
||||
.el-table .success-row {
|
||||
--el-table-tr-bg-color: var(--el-color-success-light-9);
|
||||
}
|
||||
.titleBox{
|
||||
text-align: center;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
.printMeBox{
|
||||
div{
|
||||
line-height: 30px;
|
||||
}
|
||||
}
|
||||
.topBox{
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
.topEveryBox{
|
||||
width: 50%;
|
||||
}
|
||||
.tableBox{
|
||||
margin-top: 10px;
|
||||
}
|
||||
.oneLineBox{
|
||||
display: flex;
|
||||
}
|
||||
.everyBox{
|
||||
width: 25%;
|
||||
}
|
||||
.bottomBox{
|
||||
margin-top: 10px;
|
||||
}
|
||||
</style>
|
||||
|
||||
1244
src/views/wisdom/stockSearch/index.vue
Normal file
1244
src/views/wisdom/stockSearch/index.vue
Normal file
File diff suppressed because it is too large
Load Diff
307
src/views/wisdom/warehouse/index.vue
Normal file
307
src/views/wisdom/warehouse/index.vue
Normal file
@@ -0,0 +1,307 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form-item label="供应计划ID" prop="jhId">
|
||||
<el-input
|
||||
v-model="queryParams.jhId"
|
||||
placeholder="请输入供应计划ID"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="所属仓库" prop="cangku">
|
||||
<el-input
|
||||
v-model="queryParams.cangku"
|
||||
placeholder="请输入所属仓库"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="入库时间" prop="rkTime">
|
||||
<el-date-picker clearable
|
||||
v-model="queryParams.rkTime"
|
||||
type="date"
|
||||
value-format="YYYY-MM-DD"
|
||||
placeholder="请选择入库时间">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="理货员" prop="lihuoY">
|
||||
<el-input
|
||||
v-model="queryParams.lihuoY"
|
||||
placeholder="请输入理货员"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="是否删除" prop="isDelete">
|
||||
<el-input
|
||||
v-model="queryParams.isDelete"
|
||||
placeholder="请输入是否删除"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
icon="Plus"
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['wisdom:warehouse:add']"
|
||||
>新增</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="success"
|
||||
plain
|
||||
icon="Edit"
|
||||
:disabled="single"
|
||||
@click="handleUpdate"
|
||||
v-hasPermi="['wisdom:warehouse:edit']"
|
||||
>修改</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="danger"
|
||||
plain
|
||||
icon="Delete"
|
||||
:disabled="multiple"
|
||||
@click="handleDelete"
|
||||
v-hasPermi="['wisdom:warehouse:remove']"
|
||||
>删除</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="warning"
|
||||
plain
|
||||
icon="Download"
|
||||
@click="handleExport"
|
||||
v-hasPermi="['wisdom:warehouse:export']"
|
||||
>导出</el-button>
|
||||
</el-col>
|
||||
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="warehouseList" @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="主键ID" align="center" prop="id" />
|
||||
<el-table-column label="供应计划ID" align="center" prop="jhId" />
|
||||
<el-table-column label="入库类型" align="center" prop="rkType" />
|
||||
<el-table-column label="物资类型" align="center" prop="wlType" />
|
||||
<el-table-column label="所属仓库" align="center" prop="cangku" />
|
||||
<el-table-column label="入库时间" align="center" prop="rkTime" width="180">
|
||||
<template #default="scope">
|
||||
<span>{{ parseTime(scope.row.rkTime, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="理货员" align="center" prop="lihuoY" />
|
||||
<el-table-column label="扩展描" align="center" prop="remark" />
|
||||
<el-table-column label="是否删除" align="center" prop="isDelete" />
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template #default="scope">
|
||||
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['wisdom:warehouse:edit']">修改</el-button>
|
||||
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['wisdom:warehouse:remove']">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="total>0"
|
||||
:total="total"
|
||||
v-model:page="queryParams.pageNum"
|
||||
v-model:limit="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
|
||||
<!-- 添加或修改入库单据对话框 -->
|
||||
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
|
||||
<el-form ref="warehouseRef" :model="form" :rules="rules" label-width="80px">
|
||||
<el-form-item label="供应计划ID" prop="jhId">
|
||||
<el-input v-model="form.jhId" placeholder="请输入供应计划ID" />
|
||||
</el-form-item>
|
||||
<el-form-item label="所属仓库" prop="cangku">
|
||||
<el-input v-model="form.cangku" placeholder="请输入所属仓库" />
|
||||
</el-form-item>
|
||||
<el-form-item label="入库时间" prop="rkTime">
|
||||
<el-date-picker clearable
|
||||
v-model="form.rkTime"
|
||||
type="date"
|
||||
value-format="YYYY-MM-DD"
|
||||
placeholder="请选择入库时间">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="理货员" prop="lihuoY">
|
||||
<el-input v-model="form.lihuoY" placeholder="请输入理货员" />
|
||||
</el-form-item>
|
||||
<el-form-item label="扩展描" prop="remark">
|
||||
<el-input v-model="form.remark" placeholder="请输入扩展描" />
|
||||
</el-form-item>
|
||||
<el-form-item label="是否删除" prop="isDelete">
|
||||
<el-input v-model="form.isDelete" placeholder="请输入是否删除" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup name="Warehouse">
|
||||
import { listWarehouse, getWarehouse, delWarehouse, addWarehouse, updateWarehouse } from "@/api/wisdom/warehouse";
|
||||
|
||||
const { proxy } = getCurrentInstance();
|
||||
|
||||
const warehouseList = ref([]);
|
||||
const open = ref(false);
|
||||
const loading = ref(true);
|
||||
const showSearch = ref(true);
|
||||
const ids = ref([]);
|
||||
const single = ref(true);
|
||||
const multiple = ref(true);
|
||||
const total = ref(0);
|
||||
const title = ref("");
|
||||
|
||||
const data = reactive({
|
||||
form: {},
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
jhId: null,
|
||||
rkType: null,
|
||||
wlType: null,
|
||||
cangku: null,
|
||||
rkTime: null,
|
||||
lihuoY: null,
|
||||
isDelete: null
|
||||
},
|
||||
rules: {
|
||||
}
|
||||
});
|
||||
|
||||
const { queryParams, form, rules } = toRefs(data);
|
||||
|
||||
/** 查询入库单据列表 */
|
||||
function getList() {
|
||||
loading.value = true;
|
||||
listWarehouse(queryParams.value).then(response => {
|
||||
warehouseList.value = response.rows;
|
||||
total.value = response.total;
|
||||
loading.value = false;
|
||||
});
|
||||
}
|
||||
|
||||
// 取消按钮
|
||||
function cancel() {
|
||||
open.value = false;
|
||||
reset();
|
||||
}
|
||||
|
||||
// 表单重置
|
||||
function reset() {
|
||||
form.value = {
|
||||
id: null,
|
||||
jhId: null,
|
||||
rkType: null,
|
||||
wlType: null,
|
||||
cangku: null,
|
||||
rkTime: null,
|
||||
lihuoY: null,
|
||||
remark: null,
|
||||
createBy: null,
|
||||
createTime: null,
|
||||
updateBy: null,
|
||||
updateTime: null,
|
||||
isDelete: null
|
||||
};
|
||||
proxy.resetForm("warehouseRef");
|
||||
}
|
||||
|
||||
/** 搜索按钮操作 */
|
||||
function handleQuery() {
|
||||
queryParams.value.pageNum = 1;
|
||||
getList();
|
||||
}
|
||||
|
||||
/** 重置按钮操作 */
|
||||
function resetQuery() {
|
||||
proxy.resetForm("queryRef");
|
||||
handleQuery();
|
||||
}
|
||||
|
||||
// 多选框选中数据
|
||||
function handleSelectionChange(selection) {
|
||||
ids.value = selection.map(item => item.id);
|
||||
single.value = selection.length != 1;
|
||||
multiple.value = !selection.length;
|
||||
}
|
||||
|
||||
/** 新增按钮操作 */
|
||||
function handleAdd() {
|
||||
reset();
|
||||
open.value = true;
|
||||
title.value = "添加入库单据";
|
||||
}
|
||||
|
||||
/** 修改按钮操作 */
|
||||
function handleUpdate(row) {
|
||||
reset();
|
||||
const _id = row.id || ids.value
|
||||
getWarehouse(_id).then(response => {
|
||||
form.value = response.data;
|
||||
open.value = true;
|
||||
title.value = "修改入库单据";
|
||||
});
|
||||
}
|
||||
|
||||
/** 提交按钮 */
|
||||
function submitForm() {
|
||||
proxy.$refs["warehouseRef"].validate(valid => {
|
||||
if (valid) {
|
||||
if (form.value.id != null) {
|
||||
updateWarehouse(form.value).then(response => {
|
||||
proxy.$modal.msgSuccess("修改成功");
|
||||
open.value = false;
|
||||
getList();
|
||||
});
|
||||
} else {
|
||||
addWarehouse(form.value).then(response => {
|
||||
proxy.$modal.msgSuccess("新增成功");
|
||||
open.value = false;
|
||||
getList();
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/** 删除按钮操作 */
|
||||
function handleDelete(row) {
|
||||
const _ids = row.id || ids.value;
|
||||
proxy.$modal.confirm('是否确认删除入库单据编号为"' + _ids + '"的数据项?').then(function() {
|
||||
return delWarehouse(_ids);
|
||||
}).then(() => {
|
||||
getList();
|
||||
proxy.$modal.msgSuccess("删除成功");
|
||||
}).catch(() => {});
|
||||
}
|
||||
|
||||
/** 导出按钮操作 */
|
||||
function handleExport() {
|
||||
proxy.download('wisdom/warehouse/export', {
|
||||
...queryParams.value
|
||||
}, `warehouse_${new Date().getTime()}.xlsx`)
|
||||
}
|
||||
|
||||
getList();
|
||||
</script>
|
||||
Reference in New Issue
Block a user