2025-05-19 17:57:46 +08:00

907 lines
31 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"
label-width="80px"
label-position="left"
>
<el-row :gutter="20">
<el-col :span="6" class="col_height">
<el-form-item label="组织" prop="params.ERPFACTORY">
<el-select
filterable
v-model="queryParams.params.ERPFACTORY"
placeholder="下拉选择组织"
style="width: 240px"
@change="GetERPLocationForList"
>
<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="6" class="col_height">
<el-form-item label="库存仓库" prop="params.ERPLOCATION">
<el-select filterable v-model="queryParams.params.ERPLOCATION" placeholder="下拉选择仓库" style="width: 240px">
<el-option v-for="item in ERPLocationList" :key="item.ENUMVALUE" :label="item.DESCRIPTION"
:value="item.ENUMVALUE" />
</el-select>
</el-form-item>
</el-col> -->
<el-col :span="6" class="col_height">
<el-form-item label="仓库" prop="params.ERPLOCATION">
<el-select
v-model="state.ChangeERPLocation"
multiple
clearable
collapse-tags
placeholder="请选择仓库"
popper-class="custom-header"
:max-collapse-tags="1"
style="width: 240px"
@visible-change="GetLocationListForSomeERPLocation"
filterable
>
<template #header> </template>
<el-option
v-for="item in ERPLocationList"
:key="item.ENUMVALUE"
:label="item.DESCRIPTION"
:value="item.ENUMVALUE"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6" class="col_height">
<el-form-item label="货位" prop="params.LOCATION">
<el-select
v-model="state.ChangeLocation"
multiple
clearable
collapse-tags
placeholder="请选择货位"
popper-class="custom-header"
:max-collapse-tags="1"
style="width: 240px"
remote
:remote-method="handleInput"
filterable
>
<template #header> </template>
<el-option
v-for="item in LocationList"
:key="item.storageName"
:label="item.storageName"
:value="item.storageName"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6" class="col_height">
<el-form-item label="物料编号" prop="params.MATERIALSPECNAME">
<el-Input
v-model="queryParams.params.MATERIALSPECNAME"
placeholder="输入物料编号"
clearable
/>
</el-form-item>
</el-col>
<el-col :span="6" class="col_height">
<el-form-item label="阶段" prop="SITENAME">
<el-select
v-model="queryParams.params.PHASE"
placeholder="输入阶段"
style="width: 160px"
>
<el-option
v-for="item in state.PhaseList"
:key="item.Value"
:label="item.label"
:value="item.Value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6" class="col_height">
<el-form-item label="批次" prop="params.CHARGE">
<el-Input v-model="queryParams.params.CHARGE" placeholder="输入批次" clearable />
</el-form-item>
</el-col>
<el-col :span="6" class="col_height">
<el-form-item label="SDK规格" prop="params.SPECNAME">
<el-Input v-model="queryParams.params.SPECNAME" placeholder="输入SDK规格" clearable />
</el-form-item>
</el-col>
<el-col :span="6" class="col_height">
<el-form-item label="业助" prop="params.CAREER_ASSISTANCE">
<!-- <el-Input v-model="queryParams.params.CAREER_ASSISTANCE" placeholder="输入业助" clearable />-->
<el-Input
v-model="queryParams.params.CAREER_ASSISTANCE"
placeholder="输入业助"
clearable
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="入库时间" prop="params.USERNAME">
<el-date-picker
v-model="queryParams.params.DateValue"
type="daterange"
unlink-panels
range-separator="To"
v-model:start-placeholder="queryParams.params.FROMDATE"
v-model:end-placeholder="queryParams.params.TODATE"
:shortcuts="shortcuts2"
:size="size"
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="page-search-btns">
<el-button type="primary" @click="queryInfo">搜索</el-button>
<el-button type="primary" @click="exportExcel">导出</el-button>
</div>
</el-row>
<!--table 区域-->
<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 class="page-table-operateBtns">
<el-popover
:persistent="false"
placement="right"
popper-class="config-table-wrap"
trigger="click"
>
<template #reference>
<el-button class="operateBtns-setting">
<svg-icon icon-class="table_title" width="16px" height="16px" />
</el-button>
</template>
<ConfigTable :list="materialTableConfig.column" @updateList="updateList" />
</el-popover>
</div>
</div>
<el-table
:height="tableHeight"
border
v-loading="loading"
:default-sort="{ prop: 'MATERIALQUANTITY', order: 'descending' }"
:data="state.BoxHistoryList"
highlight-current-row
row-key="id"
style="width: 100%"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" />
<template v-for="(col, index) in materialTableConfig.column" :key="index">
<el-table-column
v-if="!col.hide"
:label="col.header"
:prop="col.field"
show-overflow-tooltip
:sort-orders="['descending', 'ascending']"
:sortable="true"
>
<!-- <template #default="scope">-->
<!-- <span v-if="col.field === 'status'">-->
<!-- <span v-if="scope.row[col.field]" class="table-status-active">启用</span>-->
<!-- <span v-else class="table-status-inActive">禁用</span>-->
<!-- </span>-->
<!-- <span v-else>{{ scope.row[col.field] }}</span>-->
<!-- </template>-->
</el-table-column>
<el-table-column
fixed
v-if="col.hide"
:label="col.header"
:prop="col.field"
show-overflow-tooltip
:sort-orders="['descending', 'ascending']"
:sortable="true"
>
<!-- <template #default="scope">-->
<!-- <span v-if="col.field === 'status'">-->
<!-- <span v-if="scope.row[col.field]" class="table-status-active">启用</span>-->
<!-- <span v-else class="table-status-inActive">禁用</span>-->
<!-- </span>-->
<!-- <span v-else>{{ scope.row[col.field] }}</span>-->
<!-- </template>-->
</el-table-column>
</template>
<!-- <template v-slot:empty>-->
<!-- <svg-icon icon-class="noData" width="160px" height="160px" />-->
<!-- </template>-->
</el-table>
<div>
<pagination
v-if="total > 0"
:total="total"
v-model:pageNumTo="queryParams.pageNum"
v-model:pageSizeTo="queryParams.pageSize"
@pagination="handleQuery"
/>
</div>
<div>
<!-- <el-row :gutter="24">-->
<!-- <el-col :span="5">-->
<!-- <el-form-item label="标签数量" prop="state.ChangeParams.body">-->
<!-- <el-Input v-model="state.AllNumber" placeholder="标签数量总和" clearable />-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- <el-col :span="15">-->
<!-- <el-form-item label="物料总和" prop="state.ChangeParams.body">-->
<!-- <el-Input v-model="state.UnitNumber" placeholder="标签数量总和" type="textarea" autosize clearable />-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- </el-row>-->
<el-row :gutter="24" class="page-search" justify="space-between" align="bottom">
<el-form
ref="formDataRef"
:model="state.CAREER_ASSISTANCE"
:rules="rules"
label-position="left"
>
<el-form-item label="" prop="CAREER_ASSISTANCE">
<el-col :span="4">
<el-form-item label="借用人">
<!-- <el-Input @input="inputCareer" v-model="state.CAREER_ASSISTANCE" placeholder="业助" :rules="rules"/>-->
<!-- <el-Input v-model="state.CAREER_ASSISTANCE" placeholder="业助" :rules="rules"/> -->
<el-select
filterable
v-model="state.CAREER_ASSISTANCE"
placeholder="下拉选择业助"
size="small"
>
<el-option
v-for="item in state.userList"
:key="item.USERNAME"
:label="item.USERNAME"
:value="item.USERNAME"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="新销售订单">
<!-- <el-Input @input="inputCareer" v-model="state.CAREER_ASSISTANCE" placeholder="业助" :rules="rules"/>-->
<el-Input v-model="state.SALESHIPREQUESTNAME" placeholder="单号" :rules="rules" />
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="新销售订单行号">
<!-- <el-Input @input="inputCareer" v-model="state.CAREER_ASSISTANCE" placeholder="业助" :rules="rules"/>-->
<el-Input
v-model="state.SALESHIPREQUESTDETAILNAME"
placeholder="行号"
:rules="rules"
/>
</el-form-item>
</el-col>
<el-col :span="5">
<div class="block" style="float: right">
<el-form-item label="过账日期" prop="state.commitDate">
<el-date-picker
:clearable="true"
:editable="true"
v-model="state.commitDate"
type="date"
placeholder="选择过账时间"
value-format="YYYY-MM-DD"
/>
</el-form-item>
</div>
</el-col>
<el-col :span="5">
<el-button
type="primary"
@click="modifiedRemark"
:disabled="state.CAREER_ASSISTANCEDrawer"
v-loading="state.loadings"
>更新</el-button
>
</el-col>
</el-form-item>
</el-form>
</el-row>
</div>
</div>
<!-- <div class="page-search-btns" :rules="rules">-->
<!-- <el-row :gutter="24">-->
<!-- <el-form ref="formDataRef" :model="state.CAREER_ASSISTANCE" :rules="rules" label-position="top">-->
<!-- <el-form-item label="" prop="CAREER_ASSISTANCE">-->
<!-- <el-col :span="18">-->
<!-- <el-Input @input="inputCareer" v-model="state.CAREER_ASSISTANCE" placeholder="业助" :rules="rules"/>-->
<!-- </el-col>-->
<!-- <el-col :span="6">-->
<!-- <el-button type="primary" @click="modifiedRemark" :disabled="state.CAREER_ASSISTANCEDrawer" v-loading="state.loadings">更新业助</el-button>-->
<!-- </el-col>-->
<!-- </el-form-item>-->
<!-- </el-form>-->
<!-- </el-row>-->
<!-- </div>-->
</div>
</template>
<script lang="ts">
export default {
name: 'careerAssistanceInquiry'
}
</script>
<!--script区域-->
<script lang="ts" setup>
/*引入区域*/
import { reactive, ref, watch, onMounted, toRefs, getCurrentInstance, nextTick, h } from 'vue'
import { ElForm, ElMessageBox, ElTable } from 'element-plus'
import type { CheckboxValueType } from 'element-plus'
import { getQueryList, getQueryPageList, updateCAREER_ASSISTANCE } from '@/api/common'
import { areAllNotEmpty, msToDate } from '@/utils/CommonUtil'
import router from '@/router'
import exportDataToExcel from '@/utils/export-excel'
import { localStorage } from '@/utils/storage'
import { updateCareerAssistance, updateRemark, getUserInfo } from '@/api/label'
import { bTableHeight } from '../../../composables/calcTableHeight'
import { getORG } from '@/api/auth'
import { search } from '@/api/wareHouse'
import { log } from 'node:console'
const { tableContainer, tableHeight, updateTableHeight, handleResize } = bTableHeight(310)
const { proxy }: any = getCurrentInstance()
const checkAll = ref(false)
const indeterminate = ref(false)
const value = ref<CheckboxValueType[]>([])
/*对象生成赋值区域*/
const materialTableConfig = ref({
loading: false,
column: [] as any,
data: []
})
const queryFormRef = ref(ElForm)
const size = ref<'default' | 'large' | 'small'>('small') //formdata时间设置
const state = reactive({
commitDate: '',
loadings: false,
CAREER_ASSISTANCEDrawer: false,
updateSALESPERSON: {
CAREER_ASSISTANCE: '',
CHARGE: ''
},
userList: [],
SALESHIPREQUESTNAME: '',
SALESHIPREQUESTDETAILNAME: '',
boxDrawer: false,
PhaseList: [
{ label: '全部', Value: '' },
{ label: 'C', Value: 'C' },
{ label: 'D', Value: 'D' },
{ label: 'S', Value: 'S' }
] as any,
ChangeERPLocation: [],
ChangeLocation: [],
AllNumber: 0, //标签总数量
UnitNumber: 0, //各单位数量
queryParams: {
queryId: 'GetMaterialBoxInformationRow',
version: 'WEB00034',
params: {
SITENAME: localStorage.get('siteName') || 'SDK',
MATERIALSPECNAME: '',
STOCKSTATE: '',
ERPLOCATION: '',
ERPFACTORY: '',
UNDOID: '',
LOCATIONNAME: '',
PHASE: '',
CHARGE: '',
SPECNAME: '',
ERPLOCATIONNAME: '',
SALESPERSON: '',
DateValue: '',
FROMDATE: '',
TODATE: '',
CAREER_ASSISTANCE: '',
DESC_CN: '',
OQARESULTSTATE: '',
PACKINGGRADE: ''
},
pageNum: 1,
pageSize: 10
},
queryParamsStockState: {
queryId: 'GetEnumDefValueList',
version: 'WEB00001',
params: {
SITENAME: localStorage.get('siteName') || 'SDK',
ENUMNAME: 'StockState'
},
pageNum: 1,
pageSize: 10
},
queryParamsERPFactory: {
queryId: 'GetErpFactoryList',
version: 'WEB00001',
params: {
SITENAME: localStorage.get('siteName') || 'SDK'
},
pageNum: 1,
pageSize: 10
},
queryParamsERPLocation: {
queryId: 'GetErpLocationList',
version: 'WEB00001',
params: {
SITENAME: localStorage.get('siteName') || 'SDK',
ERPFACTORYNAME: ''
},
pageNum: 1,
pageSize: 10
},
operateParams: {
date: new Date()
},
Column: [] as any,
total: 0,
loading: false,
BoxHistoryList: [] as any,
StockStateList: [] as any,
ERPFactoryList: [] as any,
ERPLocationList: [] as any,
LocationList: [] as any,
multipleSelection: [] as any,
CAREER_ASSISTANCE: '',
COUSTOMNO: ''
// rules: {
// // CAREER_ASSISTANCE: [{ required: true, message: '请输入账号', trigger: 'blur' }],
// CAREER_ASSISTANCE: [
// { required: true, message: value, trigger: "blur" },
// {
// validator: function(rule : any,value : any, callback : any) {
// //校验中文的正则:/^[\u4e00-\u9fa5]{0,}$/
// if (/^[\u4e00-\u9fa5]+$/.test(value) == false) {
// callback(new Error("请输入中文"));
// } else {
// callback(new Error(""));
// }
// },
// trigger: "blur"
// }
// ],
// }
})
const {
queryParams,
Column,
total,
rules,
loading,
BoxHistoryList,
operateParams,
StockStateList,
ERPFactoryList,
ERPLocationList,
LocationList
} = toRefs(state)
//时间范围定义
const shortcuts2 = [
{
text: '',
value: () => {
const end = new Date()
const start = new Date()
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
return [start, end]
}
},
{
text: '',
value: () => {
const end = new Date()
const start = new Date()
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
return [start, end]
}
},
{
text: '',
value: () => {
const end = new Date()
const start = new Date()
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
return [start, end]
}
}
]
/*钩子函数区域*/
onMounted(() => {
var newDate = new Date()
var year = newDate.getFullYear()
var moth = newDate.getMonth() + 1
if (moth < 10) moth = '0' + moth
var day = newDate.getDate()
if (day < 10) day = '0' + day
state.commitDate = year + '-' + moth + '-' + day
materialTableConfig.value.column = [
// { header: "组织", field: "ERPFACTORY", hide: false },
{ header: '组织(CN)', field: 'ERPFACTORYDESC', hide: false },
// { header: "阶段", field: "PHASE", hide: false },
// { header: "系统规格", field: "DESCRIPTION", hide: false },
// { header: "SDK规格", field: "SPECNAME", hide: false },
// { header: "实际规格", field: "TRUEGG", hide: false },
// { header: "主数量", field: "MATERIALQUANTITY", hide: false },
// { header: "主单位", field: "FNAME", hide: false },
// { header: "仓库编码", field: "ERPLOCATION", hide: false },
{ header: '仓库名称', field: 'ERPLOCATIONDESC', hide: false },
// { header: "货位编码", field: "LOCATIONNAME", hide: false },
{ header: '货位名称', field: 'LOCATIONNAMEDESC', hide: false },
{ header: '物料编号', field: 'MATERIALSPECNAME', hide: false },
{ header: '品名', field: 'DESC_CN', hide: false },
{ header: '批次号', field: 'CHARGE', hide: false },
{ header: '阶段', field: 'PHASE', hide: false },
{ header: '系统规格', field: 'DESCRIPTION', hide: false },
{ header: 'SDK规格', field: 'SPECNAME', hide: false },
{ header: '实际规格', field: 'TRUEGG', hide: false },
// { header: "入库时间", field: "RECEIVETIME", hide: false },
// { header: "备货单号", field: "SHIPREQUESTTIME", hide: false },
// { header: "生产时间", field: "MAKEDATE", hide: false },
// { header: "失效时间", field: "EXPIRINGDATE", hide: false },
{ header: '是否良品', field: 'OQARESULT', hide: false },
// { header: "状态", field: "SPECIALSTATE", hide: false },
// { header: "辅单位数量", field: "FQTY", hide: false },
// { header: "辅单位", field: "FUNIT", hide: false },
// { header: "客户", field: "CUSTOMNO", hide: false },
// { header: "供应商", field: "SUPPLIERNAME", hide: false },
{ header: '业助', field: 'CAREER_ASSISTANCE', hide: false },
{ header: '客户', field: 'CUSTOMNO', hide: false },
{ header: '业务', field: 'SALESPERSON', hide: false },
{ header: '事业部', field: 'BUSINESS_UNIT', hide: false }
// { header: "管芯类型", field: "DURABLETYPE", hide: false },
// { header: "首次入库日期", field: "MAKEDATE", hide: false },
// { header: "最新入组织日期", field: "LASTSTOCKINTIME_ERPFACTORY", hide: false },
// { header: "最新入库日期", field: "LASTSTOCKINTIME_LOCATION", hide: false },
// { header: "生产日期", field: "MAKEDATE", hide: false },
// { header: "操作/检测员", field: "EVENTUSER", hide: false },
// { header: "母卷批次", field: "SUPERMATERIALPACKINGNAME", hide: false },
// { header: "厂商批次", field: "SUPPLIERCHARGE", hide: false },
// { header: "客户批次", field: "CUSTOMCHARGE", hide: false },
// { header: "是否冻结", field: "HOLDSTATE", hide: false },
// { header: "WMS唯一码", field: "MATERIALPACKINGNAME", hide: false },
// { header: "备注", field: "REMARK", hide: false },
]
let pwd: any = localStorage.get('remeberPwd')
// state.orgNo = JSON.parse(pwd).orgNo;
// state.queryParams.params.ERPFACTORY = JSON.parse(pwd).orgNo;
handleQuery()
ERPFactoryQuery()
// ERPLocationQuery();
getUser()
updateTableHeight()
window.addEventListener('resize', handleResize)
})
function queryInfo() {
state.queryParams.pageNum = 1
handleQuery()
}
const updateList = (col: any) => {
materialTableConfig.value.column = col
}
/*其它函数区域*/
const handleSelectionChange = (val: any) => {
state.multipleSelection = val
}
function handleInput(val: any) {
let index = [1, 3, 4, 7, 8]
if (index.indexOf(val.length) > -1) {
state.LocationList = []
search({
storageName: val,
orgNo: JSON.parse(localStorage.get('orgNo'))
}).then((res: any) => {
if (res.resultObj) {
state.LocationList = res.resultObj
} else {
proxy.$ElMessage.warning(res.message)
}
})
}
}
function isChinese(text: any) {
const reg = /^[\u4e00-\u9fa5]+$/
return reg.test(text)
}
function inputCareer(event: any) {
console.log(event)
const inputValue = event
if (!isChinese(inputValue)) {
// 处理非中文输入的情况
state.CAREER_ASSISTANCEDrawer = true
state.loadings = true
console.log('输入不是中文')
} else {
state.CAREER_ASSISTANCEDrawer = false
state.loadings = false
// 处理中文输入的情况
console.log('输入是中文')
}
}
function getUser() {
getUserInfo().then((res: any) => {
state.userList = res.data
})
}
function modifiedRemark() {
if (state.multipleSelection.length == 0) {
ElMessageBox.alert('列表为空', {
confirmButtonText: 'OK'
})
return
}
if (state.commitDate == null) {
ElMessageBox.alert('过账时间不可清空', {
confirmButtonText: 'OK'
})
return
}
console.log(state.multipleSelection)
// return
let boxLists = []
for (var i = 0; i < state.multipleSelection.length; ++i) {
state.multipleSelection[i].key = {
SITENAME: 'SDK',
MATERIALPACKINGNAME: state.multipleSelection[i]['MATERIALPACKINGNAME']
}
// state.multipleSelection[i].CAREER_ASSISTANCE = state.CAREER_ASSISTANCE
// state.multipleSelection[i].CUSTOMNO = state.COUSTOMNO
boxLists.push(state.multipleSelection[i])
}
let PRINT = {
SITENAME: 'SDK',
boxList: boxLists,
USER: localStorage.get('userId'),
remark: state.CAREER_ASSISTANCE,
commitDate: state.commitDate,
// CUSTOMNO : state.COUSTOMNO,
SALESHIPREQUESTNAME: state.SALESHIPREQUESTNAME, // 销售订单
SALESHIPREQUESTDETAILNAME: state.SALESHIPREQUESTDETAILNAME // 销售订单行号
}
// console.log(PRINT)
// return;
updateCareerAssistance(PRINT)
.then((res: any) => {
console.log(res.success)
// state.COUSTOMNO = ''
if (res.success) {
state.SALESHIPREQUESTNAME = ''
state.SALESHIPREQUESTDETAILNAME = ''
state.CAREER_ASSISTANCE = ''
// proxy.$ElMessage.success('备注更新成功');
ElMessageBox.alert('业助更新成功', '提醒框', {
confirmButtonText: 'OK'
})
handleQuery()
} else {
proxy.$ElMessage.error(res.message)
}
})
.catch((message) => {
proxy.$ElMessage.error(message)
})
}
async function handleQuery() {
if (state.queryParams.params.DateValue.length > 0) {
state.queryParams.params.UNDOID = msToDate(state.queryParams.params.DateValue[0]).withoutTime
state.queryParams.params.TODATE = msToDate(state.queryParams.params.DateValue[1]).withoutTime
}
state.queryParams.params.ERPLOCATION = ''
if (state.ChangeERPLocation[0] != '')
for (let i = 0; i < state.ChangeERPLocation.length; i++) {
state.queryParams.params.ERPLOCATION =
state.queryParams.params.ERPLOCATION + state.ChangeERPLocation[i] + ','
}
state.queryParams.params.LOCATIONNAME = ''
if (state.ChangeLocation[0] != '')
for (let i = 0; i < state.ChangeLocation.length; i++) {
state.queryParams.params.LOCATIONNAME =
state.queryParams.params.LOCATIONNAME + state.ChangeLocation[i] + ','
}
state.queryParams.version = 'WEB00034'
await getQueryPageList(state.queryParams).then((res: any) => {
state.BoxHistoryList = res.data.list
state.total = res.data.total
})
// state.queryParams.version = 'WEB00032'
/*state.queryParams.version = 'WEB00034'
state.AllNumber = 0
state.UnitNumber = 0
await getQueryList(state.queryParams)
.then((res: any) => {
for (let i = 0; i < res.data.length; i++) {
let number = res.data[i].PACKINGNUMBER == null ? 0 : res.data[i].PACKINGNUMBER
let Qty = res.data[i].UNITNUMBER == null ? 0 : res.data[i].UNITNUMBER
state.AllNumber = state.AllNumber + parseFloat(number)
state.UnitNumber = state.UnitNumber + Qty
}
})*/
}
function exportExcel() {
state.queryParams.version = 'WEB00033'
getQueryList(state.queryParams).then((res: any) => {
if (res.data.length > 0) {
exportDataToExcel(res.data, '库存查询')
} else {
proxy.$ElMessage.warning('当前查询没有数据可以导出')
}
})
}
const getSummaries = (param: any) => {
const { columns, data } = param
const sums: (string | any)[] = []
columns.forEach((column: any, index: number) => {
if (index === 0) {
sums[index] = h('div', { style: { textDecoration: 'underline' } }, ['合计'])
return
}
console.log('column', column)
const values = data.map(
(item: any) => column.property == 'MATERIALQUANTITY' && Number(item[column.property])
)
console.log('values', values)
// if (!values.every((value: any) => (Number.isNaN(value)))) {
if (values.every((value: any) => Number.isNaN(value) || value)) {
sums[index] = `${values.reduce((prev: any, curr: any) => {
const value = Number(curr)
if (!Number.isNaN(value)) {
return prev + curr
} else {
return prev
}
}, 0)}`
} else {
sums[index] = ''
}
})
return sums
}
// //库位状态查询
// function StockStateListQuery() {
// getQueryList(state.queryParamsStockState)
// .then((res: any) => {
// state.StockStateList = res.data;
// state.StockStateList.unshift({
// ENUMVALUE: ''
// });
// })
// .catch(() => { });
// }
//ERP库位查询
function ERPLocationQuery() {
state.queryParamsERPLocation.params.ERPFACTORYNAME = state.queryParams.params.ERPFACTORY
getQueryList(state.queryParamsERPLocation)
.then((res: any) => {
state.ERPLocationList = res.data
// state.ERPLocationList.unshift({
// ENUMVALUE: ''
// });
})
.catch(() => {})
}
//ERP工厂查询
function ERPFactoryQuery() {
getORG({ orgNo: null })
.then((res: any) => {
state.ERPFactoryList = res.resultObj
state.ERPFactoryList.unshift({
ERPFACTORY: ''
})
})
.catch(() => {})
}
watch(value, (val: any) => {
if (val.length === 0) {
checkAll.value = false
indeterminate.value = false
} else if (val.length === state.ERPLocationList.value.length) {
checkAll.value = true
indeterminate.value = false
} else {
indeterminate.value = true
}
})
const handleCheckAll = (val: CheckboxValueType) => {
indeterminate.value = false
if (val) {
value.value = state.ERPLocationList.value.map((_: any) => _.value)
} else {
value.value = []
}
}
function convertArrayToString(numbers: any) {
// 使用map将每个数字转换成字符串并用单引号括起来
const quotedNumbers = numbers.map((number: any) => `'${number}'`)
// 使用join方法将转换后的字符串数组用逗号连接起来
const result = `(${quotedNumbers.join(',')})`
return result
}
function GetERPLocationForList(value: any) {
ERPLocationQuery()
}
function JudgeMentERPLocation(value: any) {
if (!areAllNotEmpty(state.queryParams.params.ERPFACTORY) || state.ChangeERPLocation.length == 0) {
proxy.$ElMessage.warning('当前还未选择组织或者仓库')
state.LocationList = []
state.ChangeLocation = []
return
}
}
function GetLocationListForSomeERPLocation(value: any) {
if (!areAllNotEmpty(state.queryParams.params.ERPFACTORY)) {
proxy.$ElMessage.warning('当前还未选择组织')
state.ChangeERPLocation = []
state.ERPLocationList = []
return
}
if (!areAllNotEmpty(state.ChangeERPLocation)) {
return
}
/*if (!value) {
let ERPLOCATIONList = state.ChangeERPLocation;
getQueryList({
queryId: "GetLocationListForSomeERPLocation",
version: "00001",
params: {
SITENAME: localStorage.get("siteName") || 'SDK',
ERPLOCATION: ERPLOCATIONList.length ? ERPLOCATIONList.join(','): ""
},
})
.then((res: any) => {
state.LocationList = res.data;
state.LocationList.unshift({
STORAGENAME: ''
});
})
.catch(() => { });
}*/
}
</script>
<!--style 区域-->
<style>
.col_height {
padding-top: 3.5px;
padding-bottom: 3.5px;
}
</style>