393 lines
15 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!--
功能功能描述 盘点查询
作者陶庆峰
-->
<template>
<div class="vue-element-page-wrap" ref="tableContainer">
<el-row class="page-search" justify="space-between" align="bottom">
<el-form ref="queryFormRef" :model="queryParams" :inline="true" :rules="rules" label-width="100px"
label-position="left">
<el-row :gutter="20">
<el-col :span="6">
<el-form-item label="盘点计划名" prop="CHECKPLANNAME">
<el-Input v-model="queryParams.CHECKPLANNAME" clearable />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="组织" prop="ERPFACTORY">
<el-select
filterable
v-model="queryParams.ERPFACTORY"
placeholder="下拉选择组织"
size="small"
>
<el-option
v-for="item in ERPFactoryList"
:key="item.ERPFACTORY"
:label="item.DESCRIPTION"
:value="item.ERPFACTORY"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="开始时间" prop="FROMDATE">
<el-date-picker v-model="queryParams.FROMDATE" value-format="YYYYMMDD" type="date"
placeholder="开始时间" />
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="结束时间" prop="TODATE">
<el-date-picker v-model="queryParams.TODATE" value-format="YYYYMMDD" type="date"
placeholder="结束时间" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="page-search-btns">
<el-button type="primary" @click="handleQueryInfo">搜索</el-button>
<el-button @click="exportExcel">导出</el-button>
</div>
</el-row>
<div class="vue-element-page-table">
<div class="page-table-operate">
<div class="page-table-title">
<div class="page-table-title-left">
<span>盘点任务</span>
</div>
</div>
</div>
<div> <el-table border v-loading="loading" :data="state.list2" highlight-current-row row-key="id"
style="width: 100%;min-height: 100px;height: 200px;" @row-click="handle">
<template v-for="(col, index) in column1" :key="index">
<el-table-column v-if="!col.hide" :label="col.header" show-overflow-tooltip>
<template #default="scope">
<span>{{ scope.row[col.field] }}</span>
</template>
</el-table-column>
</template>
<el-table-column fixed="right" label="操作" width="180">
<template #default="scope">
<el-button @click="CheckAudit(scope.row)" type="primary" size="small">提交</el-button>
</template>
</el-table-column>
</el-table>
<pagination v-if="total2 > 0" :total="total2" v-model:pageNumTo="state.pageNum2"
v-model:pageSizeTo="state.pageSize2" @pagination="handleQuery2" />
</div>
<div>
<el-table :height="tableHeight" border v-loading="loading" :data="list" highlight-current-row row-key="id" style="width: 100%;min-height: 50px;"
>
<!-- <el-table-column type="selection" width="55" />-->
<template v-for="(col, index) in column" :key="index">
<el-table-column v-if="!col.hide" :label="col.header" show-overflow-tooltip>
<template #default="scope">
<span>{{ scope.row[col.field] }}</span>
</template>
</el-table-column>
</template>
<el-table-column fixed="right" label="是否参与盘点" width="70">
<template #default="scope">
<!-- <span>{{scope.row.CHECKPLATATE1}}</span>-->
<el-button v-if="scope.row.CHECKPLATATE1 == '是'" @click="createMark(scope.row)" type="success" size="small">{{scope.row.CHECKPLATATE1}}</el-button>
<el-button v-else @click="createMark(scope.row)" type="primary" size="small">{{scope.row.CHECKPLATATE1}}</el-button>
<!-- <el-button @click="deleteMark(scope.row)" type="text" size="small">删除标记</el-button>-->
</template>
</el-table-column>
</el-table>
<pagination v-if="total > 0" :total="total" v-model:pageNumTo="pageNum" v-model:pageSizeTo="pageSize"
@pagination="handleQuery" />
</div>
</div>
<template>
<el-upload ref="upload" class="upload-demo"
action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15" :limit="1"
:on-exceed="handleExceed" :auto-upload="false">
<template #trigger>
<el-button type="primary">select file</el-button>
</template>
<el-button class="ml-3" type="success" @click="submitUpload">
upload to server
</el-button>
<template #tip>
<div class="el-upload__tip text-red">
limit 1 file, new file will cover the old file
</div>
</template>
</el-upload>
</template>
</div>
</template>
<script lang="ts">
export default {
name: "checkResult",
};
</script>
<script lang="ts" setup>
import { reactive, ref, onMounted, toRefs, getCurrentInstance } from "vue";
import { ElForm, ElMessageBox, ElTable } from 'element-plus'
import { getQueryList, getQueryPageList } from '@/api/common';
import { Auditcheckmark, checkmarkAudit, createcheckmark, deletecheckmark } from '@/api/check'
import exportDataToExcel from "@/utils/export-excel";
import * as XLSX from 'xlsx';
import { genFileId } from 'element-plus'
import type { UploadInstance, UploadProps, UploadRawFile } from 'element-plus'
import { localStorage } from '@/utils/storage'
import { bTableHeight } from "../../../composables/calcTableHeight";
import { getORG } from '@/api/auth'
const { tableContainer, tableHeight, updateTableHeight, handleResize } = bTableHeight(420);
const queryFormRef = ref(ElForm);
const { proxy }: any = getCurrentInstance();
const state = reactive({
ERPFactoryList: [] as any, // 组织
queryParams: {
CHECKPLANNAME: "",
FROMDATE: '',
TODATE: '',
ERPFACTORY:''
},
pageNum: 1,
pageSize: 10,
pageNum2: 1,
pageSize2: 10,
total: 0,
total2: 0,
loading: false,
list: [],
list2: [],
column: [] as any,
column1: [] as any,
rules: {
CHECKPLANNAME: [],
},
checkmark : {
CHECKPLANNAME : '',
MATERIALPACKINGNAME : '',
SITENAME : '',
CHECKPLATATE : ''
},
handleSelectionlist : [] as any
});
const { ERPFactoryList,loading, list, column, column1, queryParams, rules, pageNum, pageSize, total, total2 } = toRefs(state)
onMounted(() => {
state.column = [
{ header: "条码", field: "MATERIALPACKINGNAME", hide: false },
{ header: "物料编号", field: "MATERIALSPECNAME", hide: false },
{ header: "品名", field: "DESC_CN", hide: false },
{ header: "系统仓库", field: "ERPLOCATION", hide: false },
{ header: "实际仓库", field: "ERPLOCATION1", hide: false },
{ header: "仓库异动", field: "LOCATIONSTATE2", hide: false },
{ header: "系统货位", field: "SYSLOCATION", hide: false },
{ header: "实际货位", field: "ACTLOCATION", hide: false },
{ header: "货位异动", field: "LOCATIONSTATE1", hide: false },
{ header: "系统数量", field: "MATERIALQUANTITY1", hide: false },
{ header: "实际数量", field: "MATERIALQUANTITY", hide: false },
{ header: "数量异动", field: "QTYSTATE", hide: false },
{ header: "盘点结果", field: "CHECKRESULT", hide: false },
// { header: "是否参与盘点审核", field: "IS_ADUIT", hide: false },CHECKPLATATE
{ header: "是否参与盘点审核", field: "CHECKPLATATE", hide: false },
],
state.column1 = [
{ header: "盘点时间", field: "PLANDATE", hide: false },
{ header: "盘点任务", field: "CHECKPLANNAME", hide: false },
{ header: "盘点方式", field: "PLANTYPE", hide: false },
// { header: "盘点类型", field: "MOVEFLAG", hide: false },
{ header: "盘点类型", field: "PLANTYPENAME", hide: false },
{ header: "盘点状态", field: "CHECKPLANSTATE1", hide: false },
{ header: "计划盘点数量", field: "ALLBOX", hide: false },
{ header: "实际盘点数量", field: "JHBOX", hide: false },
]
handleQuery2();
ERPFactoryQuery();
updateTableHeight();
window.addEventListener('resize', handleResize);
});
function CheckAudit(value : any) {
console.log(value)
checkmarkAudit(value).then((res : any) => {
});
state.list = [];
state.queryParams.CHECKPLANNAME = ''
handleQuery2()
}
//ERP工厂查询
function ERPFactoryQuery() {
getORG({ orgNo: null })
.then((res: any) => {
state.ERPFactoryList = res.resultObj
state.ERPFactoryList.unshift({
ERPFACTORY: ''
})
})
.catch(() => {})
}
// function deleteMark(value : any){
// state.checkmark.CHECKPLANNAME = value.CHECKPLANNAME
// state.checkmark.MATERIALPACKINGNAME = value.MATERIALPACKINGNAME
// state.checkmark.SITENAME = value.SITENAME
// state.checkmark.CHECKPLATATE = value.CHECKPLATATE1
// deletecheckmark(state.checkmark).then((res : any) => {
// });
// handleQuery()
// }
function createMark(value : any){
state.checkmark.CHECKPLANNAME = value.CHECKPLANNAME
state.checkmark.MATERIALPACKINGNAME = value.MATERIALPACKINGNAME
state.checkmark.SITENAME = value.SITENAME
state.checkmark.CHECKPLATATE = value.CHECKPLATATE1
createcheckmark(state.checkmark).then((res : any) => {
});
handleQuery()
}
function handleQuery() {
queryFormRef.value.validate((valid: any) => {
if (valid) {
state.loading = true;
let query = {
queryId: "GetCheckList",
version: "00005",
params: {
userId: localStorage.get("userId"),
SITENAME: 'SDK',
CHECKPLANNAME: state.queryParams.CHECKPLANNAME,
FROMDATE: state.queryParams.FROMDATE,
TODATE: state.queryParams.TODATE,
},
pageNum: state.pageNum,
pageSize: state.pageSize,
}
getQueryPageList(query).then((res: any) => {
state.loading = false;
state.list = res.data.list;
for (var i=0;i<state.list.length;i++){
if(state.list[i].CHECKPLATATE == null){
state.list[i].CHECKPLATATE = ''
}
if(state.list[i].MATERIALQUANTITY == null) {
state.list[i].MATERIALQUANTITY = '0'
}
if(state.list[i].CHECKPLATATE == ''){
state.list[i].CHECKPLATATE1 = ''
} else {
state.list[i].CHECKPLATATE1 = ''
}
}
state.total = res.data.total;
});
}
state.loading = false;
});
}
function handleQueryInfo() {
state.pageNum2 = 1
handleQuery2()
}
function handleQuery2() {
queryFormRef.value.validate((valid: any) => {
if (valid) {
state.loading = true;
let query = {
queryId: "GetCheckPlanCode",
// version: "00002",
version: "00003",
params: {
SITENAME: 'SDK',
CHECKPLANNAME: state.queryParams.CHECKPLANNAME,
FROMDATE: state.queryParams.FROMDATE,
TODATE: state.queryParams.TODATE,
ERPFACTORY : state.queryParams.ERPFACTORY
},
pageNum: state.pageNum2,
pageSize: state.pageSize2,
}
getQueryPageList(query).then((res: any) => {
if(res.data.list.length == 0){
state.list2 = []
state.list = []
ElMessageBox.alert('查无数据', '提醒框', {
confirmButtonText: 'OK',
})
state.loading = false;
} else {
state.loading = false;
state.list2 = res.data.list;
state.total2 = res.data.total;
if(state.list2.length>0)
{
handle(state.list2[0],null,null);
}
for (var i=0;i<state.list2.length;i++){
if(state.list2[i].CHECKPLANSTATE == 'Created'){
state.list2[i].CHECKPLANSTATE1 = '创建'
} else if(state.list[i].CHECKPLANSTATE == 'Approved'){
state.list2[i].CHECKPLANSTATE1 = '审核通过'
} else if(state.list[i].CHECKPLANSTATE == 'Audit'){
state.list2[i].CHECKPLANSTATE1 = '审核中'
}
}
}
});
}
state.loading = false;
});
}
function exportExcel() {
let query = {
queryId: "GetCheckList",
version: "00003",
params: {
SITENAME: 'SDK',
CHECKPLANNAME: state.queryParams.CHECKPLANNAME,
},
}
getQueryList(query).then((res: any) => {
if (res.data.length > 0) {
exportDataToExcel(res.data, state.queryParams.CHECKPLANNAME + '盘点结果')
} else {
proxy.$ElMessage.warning('当前没有数据可以导出');
}
});
}
function resetQuery() {
queryFormRef.value.resetFields();
handleQuery();
}
function handle(row: any, enent: any, clount: any) {
state.queryParams.CHECKPLANNAME = row.CHECKPLANNAME
handleQuery()
}
const upload = ref<UploadInstance>()
const handleExceed: UploadProps['onExceed'] = (files) => {
upload.value!.clearFiles()
const file = files[0] as UploadRawFile
file.uid = genFileId()
upload.value!.handleStart(file)
}
const submitUpload = () => {
upload.value!.submit()
}
</script>
<style scoped lang="scss"></style>