<template>
|
<div class="wmsRecordTrans-container">
|
<el-card shadow="hover" :body-style="{ paddingBottom: '0' }">
|
<el-form :model="formModel" label-width="90px">
|
<el-row>
|
<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10">
|
<el-form-item label="关键字">
|
<el-input v-model="formModel.searchKey" clearable="" placeholder="单号" />
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI">
|
<el-form-item label="单号:">
|
<el-input v-model="formModel.OrderNo" clearable placeholder="请输入单号" />
|
</el-form-item>
|
</el-col>
|
<el-col :xs="24" :sm="12" :md="12" :lg="8" :xl="4" class="mb10" v-if="showAdvanceQueryUI">
|
<el-form-item label="状态:">
|
<el-select v-model="formModel.Status" clearable placeholder="请选择状态" style="width: 100%">
|
<el-option v-for="item in checkStatusEnum" :key="item.value" :value="item.value" :label="item.title" />
|
</el-select>
|
</el-form-item>
|
</el-col>
|
|
<el-col :xs="24" :sm="12" :md="12" :lg="6" :xl="6" class="mb10">
|
<el-form-item>
|
<el-button-group style="display: flex; align-items: center">
|
<el-button type="primary" icon="ele-Search" @click="getTabelData" v-auth="'wmsFactory:page'">
|
查询
|
</el-button>
|
<el-button icon="ele-Refresh" @click="() => (formModel = {})">
|
重置
|
</el-button>
|
<el-button icon="ele-ZoomIn" @click="changeAdvanceQueryUI" v-if="!showAdvanceQueryUI"
|
style="margin-left: 5px">
|
高级查询
|
</el-button>
|
<el-button icon="ele-ZoomOut" @click="changeAdvanceQueryUI" v-if="showAdvanceQueryUI"
|
style="margin-left: 5px">
|
隐藏
|
</el-button>
|
<!-- <el-button type="primary" style="margin-left:5px;" icon="ele-Plus" @click="openAddWmsFactory" v-auth="'wmsFactory:add'"> 新增 </el-button> -->
|
<el-button type="primary" style="margin-left:5px;" :disabled="checkRows.length != 1" @click="pass(checkRows[0].orderNo)">通过</el-button>
|
<el-button type="primary" style="margin-left:5px;" :disabled="checkRows.length != 1" @click="reject(checkRows[0])">驳回</el-button>
|
<el-button type="primary" style="margin-left:5px;" icon="ele-Download" > 导出 </el-button>
|
</el-button-group>
|
</el-form-item>
|
</el-col>
|
|
<!-- <el-col :span="8">
|
<el-form-item label-width="20px">
|
<el-button type="primary" icon="el-icon-search" @click="getTabelData">查询</el-button>
|
<el-button icon="el-icon-refresh-right" @click="resetForm">重置</el-button>
|
<el-checkbox border v-model="formModel.IsQueryAll" class="mrg10">是否查看全部</el-checkbox>
|
</el-form-item>
|
</el-col> -->
|
</el-row>
|
</el-form>
|
</el-card>
|
|
<el-card class="full-table" shadow="hover" style="margin-top: 5px">
|
<div class="header">
|
<!-- <btn-handle class="WarehousingBox" ref="propBtnRef" :itemBtn="['导出']" :checkRows="checkRows"
|
@handExport="handExport">
|
<template #First>
|
</template>
|
</btn-handle> -->
|
<!-- <el-button plain :disabled="checkRows.length != 1" @click="passXf(checkRows[0].orderNo)">下发</el-button>
|
<el-button plain @click="passCh(checkRows[0].orderNo)" :disabled="checkRows.length != 1">下发撤回</el-button> -->
|
<!-- <el-button icon="iconfont icon-biaoqianguanli" plain :disabled="checkRows.length == 0" @click="printTable"> 批量打印选中选</el-button> -->
|
<!-- <el-button icon="el-icon-delete" plain :disabled="checkRows.length == 0" @click="handleBatchDelete">批量删除选中项</el-button> -->
|
<!-- <el-button plain icon="el-icon-upload2" :disabled="checkRows.length == 0" @click="handExport">导出</el-button> -->
|
</div>
|
<el-table ref="tableRef" :data="tableData" border style="width: 100%" row-key="id"
|
@selection-change="handleSelectionChange" :summary-method="getExportTitle" show-summary class="tableBox">
|
<el-table-column align="center" width="60" type="selection" />
|
<el-table-column fixed="left" label="序号" align="center" width="60" type="index" />
|
<el-table-column fixed="left" label="单号" prop="orderNo" align="center" min-width="200" show-overflow-tooltip>
|
<template #default="scope">
|
<!-- <span @click="openDrawer(scope.row)" class="under_line">{{scope.row.orderNo}}</span> -->
|
<span @click="openDetailDialog(scope.row)" class="under_line">{{
|
scope.row.orderNo
|
}}</span>
|
</template>
|
</el-table-column>
|
<el-table-column fixed="left" label="状态" prop="statusName" width="110" align="center">
|
<template #default="scope">
|
<el-tag :type="getTypeStatus(0, scope.row.statusName)">
|
{{ scope.row.statusName }}</el-tag>
|
</template>
|
</el-table-column>
|
<el-table-column label="计划盘点时间" prop="planDate" align="center" min-width="160" show-overflow-tooltip />
|
<el-table-column label="盘点维度" prop="checkTypeName" align="center" show-overflow-tooltip />
|
<el-table-column label="计划类型" prop="checkMark" align="center" show-overflow-tooltip>
|
<template #default="scope">
|
<div v-for="option in checkMarkEnum" :key="option.value">
|
<span v-if="scope.row.checkMark == option.value"> {{ option.title }} </span>
|
</div>
|
</template>
|
</el-table-column>
|
<!-- <el-table-column label="规则名称" prop="ruleName" align="center" min-width="110" show-overflow-tooltip /> -->
|
<el-table-column label="盘点类型" prop="ruleCheckTypeName" align="center" min-width="110" show-overflow-tooltip />
|
<el-table-column label="盘点比例" prop="ruleRate" align="center" min-width="110" show-overflow-tooltip>
|
<template #default="scope"> {{ scope.row.ruleRate }}% </template>
|
</el-table-column>
|
<el-table-column label="仓库" prop="wareHouse" align="center" min-width="110" show-overflow-tooltip />
|
<el-table-column label="库区" prop="regionName" align="center" min-width="110" show-overflow-tooltip />
|
<el-table-column label="审批日期" prop="reviewDatetime" align="center" min-width="160" show-overflow-tooltip />
|
<el-table-column label="审批人" prop="reviewName" align="center" min-width="110" show-overflow-tooltip />
|
|
<el-table-column label="申请日期" prop="commitDate" align="center" min-width="160" show-overflow-tooltip />
|
<el-table-column label="申请人" prop="commitName" align="center" min-width="110" show-overflow-tooltip />
|
<el-table-column label="下发日期" prop="sendDate" align="center" min-width="160" show-overflow-tooltip />
|
<el-table-column label="下发人" prop="sendName" align="center" min-width="110" show-overflow-tooltip />
|
<el-table-column label="驳回理由" prop="rejectMsg" align="center" min-width="110" show-overflow-tooltip />
|
|
<!-- <el-table-column label="创建人" prop="createdUserName" align="center" width="110" show-overflow-tooltip /> -->
|
<!-- <el-table-column label="创建时间" prop="createdTime" align="center" width="160" show-overflow-tooltip /> -->
|
<el-table-column label="备注" prop="remarks" align="center" min-width="110" show-overflow-tooltip />
|
|
<!-- <el-table-column label="序号" align="center" width="60" type="index" />
|
<el-table-column label="盘点计划号" prop="orderNo" align="center" min-width="140" show-overflow-tooltip>
|
<template #default="scope">
|
<span @click="openDetailDialog(scope.row)" class="under_line">{{
|
scope.row.orderNo
|
}}</span>
|
</template>
|
</el-table-column>
|
<el-table-column label="规则序列号" prop="ruleNo" align="center" min-width="140" show-overflow-tooltip />
|
<el-table-column label="规则名称" prop="ruleName" align="center" min-width="110" show-overflow-tooltip />
|
<el-table-column label="计划状态" prop="statusName" align="center" show-overflow-tooltip />
|
<el-table-column label="计划盘点时间" prop="planDate" align="center" min-width="160" show-overflow-tooltip />
|
<el-table-column label="创建时间" prop="createdTime" align="center" min-width="160" show-overflow-tooltip /> -->
|
|
<!-- <el-table-column label="操作" width="180px" align="center">
|
<template #default="scope">
|
<el-button plain size="small" class="el-icon-edit" :disabled="scope.row.status != 0" @click="reject(scope.row)">驳回</el-button>
|
<el-button plain size="small" class="el-icon-check" :disabled="scope.row.status == 1" @click="pass(scope.row.orderNo)">通过</el-button>
|
</template>
|
</el-table-column> -->
|
</el-table>
|
<Pagination :total="totalItems" v-model:page="formModel.PageNo" v-model:limit="formModel.PageSize"
|
@pagination="getTabelData" style="margin-top: 20px; text-align: center"></Pagination>
|
</el-card>
|
|
|
<!-- 驳回 -->
|
<el-dialog v-model="dialogVisible" title="盘点计划驳回" width="30%" @close="closeDialog">
|
<el-form :model="rejectForm" label-width="100px" ref="dialogRef" :rules="formRules">
|
<el-row>
|
<el-col :span="24">
|
<el-form-item label="驳回理由:" prop="rejectMsg">
|
<el-input v-model="rejectForm.rejectMsg" type="textarea" :rows="4" clearable placeholder="请输入驳回理由" />
|
</el-form-item>
|
</el-col>
|
</el-row>
|
</el-form>
|
<template #footer>
|
<span class="dialog-footer">
|
<el-button @click="dialogVisible = false">取消</el-button>
|
<el-button type="primary" @click="confirmReject">确认</el-button>
|
</span>
|
</template>
|
</el-dialog>
|
<!-- 详情 -->
|
<el-dialog v-model="detailVisible" title="盘点详情" width="60%" @close="closeDetailDialog">
|
<el-form :model="addForm" label-width="120px" ref="detailRef" :rules="formRules">
|
<el-row>
|
<el-col :span="12">
|
<el-form-item label="盘点计划号:" prop="orderNo">
|
<el-input v-model="addForm.orderNo" clearable disabled placeholder="请输入盘点计划号" />
|
</el-form-item>
|
</el-col>
|
|
<!-- <el-col :span="12">
|
<el-form-item label="盘点规则:" prop="ruleNo">
|
<el-select v-model="addForm.ruleNo" clearable disabled placeholder="请选择盘点规格" style="width: 100%">
|
<el-option v-for="item in checkRulesEnum" :key="item.orderNo" :label="item.name" :value="item.orderNo" />
|
</el-select>
|
</el-form-item>
|
</el-col> -->
|
|
<el-col :span="12">
|
<el-form-item label="盘点日期:" prop="planDate">
|
<el-date-picker v-model="addForm.planDate" type="date" disabled format="YYYY-MM-DD"
|
value-format="YYYY-MM-DD" clearable placeholder="请选择日期" :disabled-date="disabledDate"
|
style="width: 100%" />
|
</el-form-item>
|
</el-col>
|
|
<el-col :span="12">
|
<el-form-item label="备注">
|
<el-input v-model="addForm.remarks" clearable disabled placeholder="请输入计划备注" />
|
</el-form-item>
|
</el-col>
|
|
<el-col :span="12">
|
<el-form-item label="盘点维度:" prop="checkType">
|
<el-select v-model="addForm.checkType" clearable disabled placeholder="请选择盘点维度"
|
style="width: 100%">
|
<el-option v-for="item in checkTypeEnum" :key="item.value" :label="item.title" :value="item.value" />
|
</el-select>
|
</el-form-item>
|
</el-col>
|
|
<el-col :span="12" v-show="addForm.checkType == 0">
|
<el-form-item label="选择仓库:">
|
<el-select v-model="addForm.storehouse.wareStorehouseCode" clearable disabled placeholder="请选择需要盘点的仓库"
|
style="width: 100%">
|
<el-option v-for="item in wareStoreHouseEnum" :key="item.value" :label="item.title" :value="item.value" />
|
</el-select>
|
</el-form-item>
|
</el-col>
|
|
<el-col :span="12" v-show="addForm.checkType == 0">
|
<el-form-item label="选择库区:">
|
<el-select v-model="addForm.storehouse.wareRegionCode" clearable disabled placeholder="请选择需要盘点的库区" multiple
|
collapse-tags style="width: 100%">
|
<el-option v-for="item in wareRegionEnum" :key="item.value" :label="item.title" :value="item.value" />
|
</el-select>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
</el-form>
|
<!-- 盘点物料 -->
|
<div class="msi-content" style="margin-top: 0" v-show="addForm.checkType == 1">
|
<el-table :data="warehousOrderDetails" border style="width: 100%" row-key="id" ref="detailRef">
|
<el-table-column label="序号" align="center" width="60" type="index" />
|
<el-table-column label="物料编号" prop="wareMaterialCode" align="center" show-overflow-tooltip />
|
<el-table-column label="物料名称" prop="wareMaterialName" align="center" show-overflow-tooltip />
|
<el-table-column label="库存数量" prop="quantity" :formatter="formatDecimalData" align="right"
|
show-overflow-tooltip />
|
</el-table>
|
</div>
|
<template #footer>
|
<span class="dialog-footer">
|
<el-button @click="detailVisible = false">取消</el-button>
|
<!-- <el-button type="primary" @click="dialogVisible = false">确认</el-button> -->
|
</span>
|
</template>
|
</el-dialog>
|
<!-- 盘点计划范围 -->
|
<el-drawer v-model="drawerVisible" title="计划范围" direction="rtl" size="80%" @close="handleDrawerClose">
|
<template #title>
|
<div class="slot_title">
|
<div class="title_orderNo">{{ orderNo }}</div>
|
<div>盘点范围</div>
|
</div>
|
</template>
|
<el-table :data="deltailList" border striped style="width: 96%; margin: 10px auto">
|
<el-table-column label="序号" align="center" width="60" type="index" />
|
<el-table-column label="物料编号" prop="wareMaterialCode" align="center" />
|
<el-table-column label="物料名称" prop="wareMaterialName" align="center" />
|
<el-table-column label="数量" prop="quantity" align="right" />
|
<el-table-column label="单价" prop="price" align="center">
|
<template #default="scope">
|
{{ amountFormat(scope.row.price + "", 2, false) }}
|
</template>
|
</el-table-column>
|
<el-table-column label="总价" align="center">
|
<template #default="scope">
|
{{ amountFormat(scope.row.price * scope.row.quantity + "", 2, false) }}
|
</template>
|
</el-table-column>
|
<el-table-column label="批次" prop="batchNo" align="center" />
|
<el-table-column label="仓库" prop="wareStorehouseName" align="center" />
|
<el-table-column label="库区" prop="wareRegionName" align="center" />
|
<el-table-column label="库位名称" prop="wareLocationName" align="center" />
|
<el-table-column label="容器编号" prop="wareContainerCode" align="center" />
|
</el-table>
|
<Pagination :total="detailCount" v-model:page="detailForm.PageNo" v-model:limit="detailForm.PageSize"
|
@pagination="getDetail" style="margin-top: 20px; text-align: center"></Pagination>
|
</el-drawer>
|
</div>
|
</template>
|
<script lang="ts" setup>
|
import { ref, nextTick, computed, watch } from "vue";
|
import {
|
getCheckPlanPage,
|
getCheckPlanRange,
|
passCheckPlan,
|
rejectCheckPlan,
|
getCheckPlanDetail,
|
passCheckXfPlan,
|
passCheckXfChPlan,
|
} from "/@/api/main/Check/checkOrder";
|
import { getMaterialInfoList } from "/@/api/main/warehouse";
|
import { getCheckRulesPage } from "/@/api/main/Check/checkRules";
|
// import { getAreaInfoList } from "/@/api/main/warehouse";
|
import { ElMessage, ElMessageBox } from "element-plus";
|
// import { exportExcel } from "@/utils/exportExcel";
|
import Pagination from "/@/components/Pagination/index.vue";
|
import {
|
amountFormat,
|
getTypeStatus,
|
getStatusStr,
|
formatDecimalData,
|
formatUtcToData,
|
} from "/@/utils/formate";
|
// import { ExcellTableDataExport } from "@/hooks/exportTableDataExcell";
|
const store = {
|
state:{
|
login:{
|
enums:{
|
|
}
|
}
|
}
|
}
|
//盘点规则枚举
|
const checkRulesEnum = ref<{ orderNo: string; name: string }[]>([]);
|
//盘点标记枚举
|
const checkMarkEnum = computed(() => store.state.login.enums.checkMarkEnum);
|
//盘点维度枚举
|
const checkTypeEnum = ref<{ value: number; title: string }[]>([
|
{ value: 0, title: "盘点仓库" },
|
{ value: 1, title: "盘点物料" },
|
]);
|
|
//仓库枚举
|
const wareStoreHouseEnum = computed(() => store.state.login.enums.wareStoreHouse);
|
|
//当亲仓库下的库区枚举
|
const wareRegionEnum = ref<{ value: string; title: string }[]>([]);
|
|
//盘点计划状态
|
const checkStatusEnum = computed(() => store.state.login.enums.enumCheckPlanStatus);
|
|
//获取所有的枚举列表
|
const getCheckRulesEnum = () => {
|
getCheckRulesPage({ PageNo: 1, PageSize: 10000 }).then((res) => {
|
checkRulesEnum.value = res.data.rows;
|
});
|
};
|
getCheckRulesEnum();
|
|
//查询
|
const formModel = ref({
|
OrderNo: "",
|
Status: "",
|
PageNo: 1,
|
PageSize: 10,
|
IsReview: true,
|
OrderMenuType: 44, //盘点计划审核
|
IsQueryAll: false,
|
});
|
|
//盘点计划列表
|
let tableData = ref([]);
|
|
//列表的数据条数
|
const totalItems = ref<number>(0);
|
const tableRef = ref([]);
|
//获取菜单列表
|
const getTabelData = () => {
|
getCheckPlanPage(formModel.value)
|
.then((res) => {
|
if (res.code == 200) {
|
const { data } = res;
|
const result = data;
|
tableData.value = result.rows;
|
totalItems.value = result.totalRows;
|
// 清除选中
|
nextTick(() => {
|
if (tableRef.value && typeof tableRef.value.clearSelection === "function") {
|
checkRows.value = [];
|
tableRef.value.clearSelection();
|
}
|
});
|
} else {
|
ElMessage.error(`${res.code}:${JSON.stringify(res.message)}`);
|
}
|
})
|
.catch((err) => {
|
console.log(err);
|
ElMessage.error(err);
|
});
|
};
|
|
getTabelData();
|
|
//重置搜索
|
const resetForm = () => {
|
formModel.value = {
|
OrderNo: "",
|
Status: "",
|
PageNo: 1,
|
PageSize: 10,
|
IsReview: true,
|
OrderMenuType: 44, //盘点计划审核
|
IsQueryAll: false,
|
};
|
getTabelData();
|
};
|
|
//选中的行
|
const checkRows = ref<{ id: number }[]>([]);
|
|
// 选择
|
const handleSelectionChange = (val: any) => {
|
checkRows.value = val;
|
};
|
// ------------封装导出功能1--前端导出--根据搜索条件导出---------------
|
// const jsonExcellTableExport = {
|
// titleName: "", //导出表格名称
|
// interfaceListName: "", //导出接口名称
|
// };
|
// const {
|
// getExportTitle,
|
// handleExportExcell,
|
// formExport,
|
// entozhExcell,
|
// } = ExcellTableDataExport(jsonExcellTableExport);
|
// --------------end 封装导出功能1--根据搜索条件导出-----------------
|
//导出
|
const handExport = () => {
|
//导出调用接口
|
// let entozh = entozhExcell;
|
// const { PageNo, PageSize, ...rest } = formModel.value;
|
// getCheckPlanPage({ PageNo: 1, PageSize: 1000000, ...rest }).then((res) => {
|
// if (res.code == 200) {
|
// res.data.rows.forEach((item) => {
|
// item.checkMark = checkMarkEnum.value.filter(
|
// (v: any) => v.value == item.checkMark
|
// )[0]?.title;
|
// });
|
// exportExcel(
|
// res.data.rows,
|
// entozh,
|
// "xlsx",
|
// `盘点计划审核表${formatUtcToData(new Date().toString(), "YYYY-MM-DD hh:mm:ss")}`
|
// );
|
// }
|
// });
|
};
|
|
//打印
|
// const printTable = () => {
|
// print({
|
// printable: checkRows.value,
|
// type: 'json',
|
// properties: [
|
// { field: 'orderNo', displayName: '盘点计划号'},
|
// { field: 'ruleNo', displayName: '规则序列号'},
|
// { field: 'ruleName', displayName: '规则名称'},
|
// { field: 'statusName', displayName: '计划状态'},
|
// { field: 'checkTypeName', displayName: '盘点类型'},
|
// { field: 'planDate', displayName: '计划盘点日期'},
|
// { field: 'createdUserName', displayName: '创建人'}
|
// ],
|
// header: '<h3 style="text-align: center;">盘点计划列表</h3>',
|
// sytle: '.custom-h3 { color: red; }'
|
// })
|
// }
|
|
//-------------------------盘点计划范围-------------------------
|
//入库单下物料详情请求
|
const detailForm = ref({
|
PlanId: "",
|
CheckType: "",
|
PageNo: 1,
|
PageSize: 10,
|
});
|
|
// 物料详情抽屉
|
const drawerVisible = ref(false);
|
|
//单据号
|
const orderNo = ref("");
|
|
//打开抽屉
|
const openDrawer = (scope: any = {}) => {
|
//当前入库单号id
|
detailForm.value.PlanId = scope.id;
|
detailForm.value.CheckType = scope.checkType;
|
//计划号
|
orderNo.value = scope.orderNo;
|
//获取物料列表
|
getDetail();
|
drawerVisible.value = true;
|
};
|
|
//关闭抽屉
|
const handleDrawerClose = () => {
|
detailForm.value = {
|
PlanId: "",
|
CheckType: "",
|
PageNo: 1,
|
PageSize: 10,
|
};
|
|
deltailList.value = [];
|
detailCount.value = 0;
|
};
|
|
//盘点计划范围列表
|
const deltailList = ref<any[]>([]);
|
|
//盘点计划范围数据条数
|
const detailCount = ref(0);
|
|
//盘点计划范围
|
const getDetail = () => {
|
getCheckPlanRange(detailForm.value)
|
.then((res) => {
|
if (res.code == 200) {
|
const { data } = res;
|
const result = data;
|
deltailList.value = result.rows;
|
detailCount.value = result.totalRows;
|
} else {
|
ElMessage.error(
|
JSON.stringify(`获取计划范围失败${res.code}:${JSON.stringify(res.message)}`)
|
);
|
}
|
})
|
.catch((err) => ElMessage.error(JSON.stringify(err)));
|
};
|
|
// -------------------驳回、通过--------------------------------
|
const rejectForm = ref({
|
orderNo: "",
|
rejectMsg: "",
|
});
|
|
const formRules = {
|
rejectMsg: [{ required: true, message: "驳回理由不能为空", trigger: "blur" }],
|
};
|
|
//驳回窗口
|
const dialogVisible = ref(false);
|
|
//驳回表单ref
|
const dialogRef = ref();
|
|
//打开驳回窗口
|
const reject = (scope: any) => {
|
rejectForm.value.orderNo = scope.orderNo;
|
dialogVisible.value = true;
|
//清除上一次校验
|
nextTick(() => {
|
if(dialogRef.value){
|
dialogRef.value.clearValidate();
|
}
|
});
|
};
|
|
//关闭驳回窗口回调
|
const closeDialog = () => {
|
rejectForm.value = {
|
orderNo: "",
|
rejectMsg: "",
|
};
|
};
|
|
//确认驳回
|
const confirmReject = () => {
|
dialogRef.value.validate((vali: any) => {
|
if (vali) {
|
rejectCheckPlan(rejectForm.value)
|
.then((res) => {
|
if (res.code == 200) {
|
ElMessage.success("驳回成功");
|
getTabelData();
|
dialogVisible.value = false;
|
} else {
|
ElMessage.error(`驳回失败${res.code}:${JSON.stringify(res.message)}`);
|
}
|
})
|
.catch((err) => ElMessage.error(JSON.stringify(err)));
|
} else {
|
ElMessage.warning("驳回理由不能为空");
|
}
|
});
|
};
|
|
//通過
|
const pass = (orderNo: string) => {
|
ElMessageBox.confirm("是否确认通过该盘点计划?", "提示", {
|
confirmButtonText: "确认",
|
cancelButtonText: "取消",
|
type: "warning",
|
})
|
.then(() => {
|
passCheckPlan({ OrderNo: orderNo })
|
.then()
|
.then((res) => {
|
if (res.code == 200) {
|
ElMessage.success("计划通过成功");
|
getTabelData();
|
dialogVisible.value = false;
|
} else {
|
ElMessage.error(`计划通过失败${res.code}:${JSON.stringify(res.message)}`);
|
}
|
})
|
.catch((err) => ElMessage.error(JSON.stringify(err)));
|
})
|
.catch(() => ElMessage.info("已取消通过"));
|
};
|
|
//撤回
|
const passCh = (orderNo: string) => {
|
ElMessageBox.confirm("是否确认下发撤回?", "提示", {
|
confirmButtonText: "确认",
|
cancelButtonText: "取消",
|
type: "warning",
|
})
|
.then(() => {
|
passCheckXfChPlan({ OrderNo: orderNo })
|
.then()
|
.then((res) => {
|
if (res.code == 200) {
|
ElMessage.success("下发撤回成功");
|
getTabelData();
|
dialogVisible.value = false;
|
} else {
|
ElMessage.error(`失败${res.code}:${JSON.stringify(res.message)}`);
|
}
|
})
|
.catch((err) => ElMessage.error(JSON.stringify(err)));
|
})
|
.catch(() => ElMessage.info("已取消下发撤回"));
|
};
|
|
//下发666
|
const passXf = (orderNo: string) => {
|
ElMessageBox.confirm("是否确认下发?", "提示", {
|
confirmButtonText: "确认",
|
cancelButtonText: "取消",
|
type: "warning",
|
})
|
.then(() => {
|
passCheckXfPlan({ OrderNo: orderNo })
|
.then()
|
.then((res) => {
|
if (res.code == 200) {
|
ElMessage.success("下发成功");
|
getTabelData();
|
dialogVisible.value = false;
|
} else {
|
ElMessage.error(`失败${res.code}:${JSON.stringify(res.message)}`);
|
}
|
});
|
})
|
.catch(() => ElMessage.info("已取消下发"));
|
};
|
// ------------------详情---------------------------------------
|
//窗口类型
|
const dialogType = ref("add");
|
|
//物料列表
|
const warehousOrderDetails = ref<any[]>([]);
|
|
const detailVisible = ref(false);
|
|
//操作表单ref
|
const detailRef = ref();
|
|
//获取盘点计划明细
|
const getPlanDetail = (id: number, checkType: number) => {
|
getCheckPlanDetail({ PlanId: id, CheckType: checkType })
|
.then((res) => {
|
if (res.code == 200) {
|
const { data } = res;
|
const result = data;
|
if (checkType == 0) {
|
addForm.value.storehouse.wareStorehouseCode =
|
result.storehouse.wareStorehouseCode;
|
setTimeout(() => {
|
addForm.value.storehouse.wareRegionCode = Array.isArray(
|
result.storehouse.wareRegionCode
|
)
|
? result.storehouse.wareRegionCode
|
: [];
|
}, 300);
|
} else {
|
result.materials.forEach((item) => {
|
warehousOrderDetails.value.push(JSON.parse(item.jsonData));
|
});
|
}
|
} else {
|
ElMessage.error(`获取盘点计划明细失败${res.code}:${JSON.stringify(res.message)}`);
|
}
|
})
|
.catch((err) => ElMessage.error(JSON.stringify(err)));
|
};
|
//打开窗口
|
const openDetailDialog = (scope: any = {}) => {
|
const { checkType, orderNo, ruleNo, planDate, remarks } = Object.assign({}, scope);
|
// addForm.value = {checkType,orderNo,ruleNo,planDate,remarks}
|
addForm.value.checkType = checkType;
|
addForm.value.orderNo = orderNo;
|
addForm.value.ruleNo = ruleNo;
|
addForm.value.planDate = planDate;
|
addForm.value.remarks = remarks;
|
getPlanDetail(scope.id, scope.checkType);
|
detailVisible.value = true;
|
};
|
|
//添加/编辑
|
let addForm = ref({
|
orderNo: "",
|
ruleNo: "",
|
planDate: "",
|
remarks: "",
|
checkType: 0,
|
materials: [] as { wareMaterialCode: string; batchNo: string }[],
|
storehouse: {
|
wareStorehouseCode: "",
|
wareRegionCode: [] as string[],
|
},
|
});
|
|
//日期选择不能大于当前时间
|
const disabledDate = (time: Date) => {
|
return time.getTime() <= Date.now();
|
};
|
|
//关闭窗口
|
const closeDetailDialog = () => {
|
addForm.value = {
|
orderNo: "",
|
ruleNo: "",
|
planDate: "",
|
remarks: "",
|
checkType: 0,
|
materials: [] as { wareMaterialCode: string; batchNo: string }[],
|
storehouse: {
|
wareStorehouseCode: "",
|
wareRegionCode: [] as string[],
|
},
|
};
|
|
warehousOrderDetails.value = [];
|
detailRef.value.clearSelection();
|
};
|
|
//库区查询,根据仓库查询查询仓库下面库区
|
const getwareRegion = () => {
|
wareRegionEnum.value = [];
|
// getAreaInfoList({
|
// StorId: addForm.value.storehouse.wareStorehouseCode,
|
// PageNo: 1,
|
// PageSize: 1000,
|
// })
|
// .then((res) => {
|
// if (res.code == 200) {
|
// const { data } = res;
|
// const result = data;
|
// if (Array.isArray(result.rows)) {
|
// result.rows.forEach((item) => {
|
// const obj = {
|
// value: item.code,
|
// title: item.name,
|
// };
|
// wareRegionEnum.value.push(obj);
|
// });
|
// }
|
// } else {
|
// ElMessage.error(`${res.code}:${JSON.stringify(res.message)}`);
|
// }
|
// })
|
// .catch((err) => {
|
// ElMessage.error(err);
|
// });
|
};
|
//监视库区的选择变化,获取当前仓库下的库区列表
|
watch(
|
() => addForm.value.storehouse.wareStorehouseCode,
|
(value) => {
|
addForm.value.storehouse.wareRegionCode = [];
|
if (value) {
|
getwareRegion();
|
} else {
|
//如果清空了库区,库位信息为空
|
wareRegionEnum.value = [];
|
}
|
}
|
);
|
const showAdvanceQueryUI = ref(false);
|
// 改变高级查询的控件显示状态
|
const changeAdvanceQueryUI = () => {
|
showAdvanceQueryUI.value = !showAdvanceQueryUI.value;
|
}
|
</script>
|
<style lang="less" scoped></style>
|