|
|
|
@ -4,272 +4,256 @@
|
|
|
|
|
<template #header>
|
|
|
|
|
<span v-text="dialogTitle"></span>
|
|
|
|
|
</template>
|
|
|
|
|
<div class="hl-card-scrollable-content">
|
|
|
|
|
<el-form
|
|
|
|
|
ref="formRef"
|
|
|
|
|
:model="formData"
|
|
|
|
|
:rules="formRules"
|
|
|
|
|
label-width="100px"
|
|
|
|
|
v-loading="formLoading"
|
|
|
|
|
v-bind:disabled="isShowBtnOther"
|
|
|
|
|
>
|
|
|
|
|
<!-- 基础信息 -->
|
|
|
|
|
<el-card class="hl-card-info">
|
|
|
|
|
<template #header>
|
|
|
|
|
<div class="hl-card-info-icona"></div><span class="hl-card-info-text">基础信息</span>
|
|
|
|
|
</template>
|
|
|
|
|
<el-row>
|
|
|
|
|
<el-col :span="8">
|
|
|
|
|
<el-row>
|
|
|
|
|
<el-col :span="24">
|
|
|
|
|
<el-form-item prop="name" label="出库单号">
|
|
|
|
|
<el-input v-model="formData.stockNo" disabled placeholder="系统自动生成" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
<el-row>
|
|
|
|
|
<el-col :span="24">
|
|
|
|
|
<el-form-item prop="stockInType" label="出库类型">
|
|
|
|
|
<el-select v-model="formData.stockInType" clearable style="width: 100%">
|
|
|
|
|
<el-option
|
|
|
|
|
v-for="dict in getIntDictOptions(DICT_TYPE.HELI_STORAGE_OUT_TYPE)"
|
|
|
|
|
:key="dict.value"
|
|
|
|
|
:label="dict.label"
|
|
|
|
|
:value="dict.value"
|
|
|
|
|
/>
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="8">
|
|
|
|
|
<el-row>
|
|
|
|
|
<el-col :span="24">
|
|
|
|
|
<el-form-item prop="industry" label="单据状态">
|
|
|
|
|
<el-select
|
|
|
|
|
v-model="formData.status"
|
|
|
|
|
placeholder="下拉选择"
|
|
|
|
|
clearable
|
|
|
|
|
class="!w-700px"
|
|
|
|
|
disabled
|
|
|
|
|
>
|
|
|
|
|
<el-option
|
|
|
|
|
v-for="dict in getIntDictOptions(DICT_TYPE.HELI_STORAGE_STATUS)"
|
|
|
|
|
:key="dict.value"
|
|
|
|
|
:label="dict.label"
|
|
|
|
|
:value="dict.value"
|
|
|
|
|
/>
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
<el-row>
|
|
|
|
|
<el-col :span="24">
|
|
|
|
|
<el-form-item prop="headerNo" label="上游单号">
|
|
|
|
|
<el-input v-model="formData.headerNo" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="8">
|
|
|
|
|
<el-row>
|
|
|
|
|
<el-col :span="24">
|
|
|
|
|
<el-form-item label="单据日期" prop="createTime">
|
|
|
|
|
{{ formatDate(formData.createTime, 'YYYY-MM-DD HH:mm') }}
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
<el-row>
|
|
|
|
|
<el-col :span="24">
|
|
|
|
|
<el-form-item prop="whId" label="出库仓库" required>
|
|
|
|
|
<el-select
|
|
|
|
|
v-model="formData.whId"
|
|
|
|
|
placeholder="下拉选择"
|
|
|
|
|
clearable
|
|
|
|
|
class="!w-400px"
|
|
|
|
|
@change="handleWh"
|
|
|
|
|
v-bind:disabled="btnWhClickable"
|
|
|
|
|
>
|
|
|
|
|
<el-option
|
|
|
|
|
v-for="dict in warehouseList"
|
|
|
|
|
:key="dict.id"
|
|
|
|
|
:label="dict.whName"
|
|
|
|
|
:value="dict.id"
|
|
|
|
|
/>
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
<el-row>
|
|
|
|
|
<el-col :span="24">
|
|
|
|
|
<el-form-item label="备注" prop="description">
|
|
|
|
|
<el-input
|
|
|
|
|
type="textarea"
|
|
|
|
|
v-model="formData.description"
|
|
|
|
|
show-word-limit
|
|
|
|
|
maxlength="200"
|
|
|
|
|
/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
</el-card>
|
|
|
|
|
<!-- 物料信息 -->
|
|
|
|
|
<el-card class="hl-card-info">
|
|
|
|
|
<template #header>
|
|
|
|
|
<div class="hl-card-info-icona"></div><span class="hl-card-info-text">物料信息</span>
|
|
|
|
|
</template>
|
|
|
|
|
<el-row>
|
|
|
|
|
<el-col>
|
|
|
|
|
<el-card class="hl-incard">
|
|
|
|
|
<el-col>
|
|
|
|
|
<el-button class="hl-addbutton" type="primary" size="large" @click="onAddItem"
|
|
|
|
|
>新增</el-button
|
|
|
|
|
<el-form
|
|
|
|
|
ref="formRef"
|
|
|
|
|
:model="formData"
|
|
|
|
|
:rules="formRules"
|
|
|
|
|
label-width="100px"
|
|
|
|
|
v-loading="formLoading"
|
|
|
|
|
v-bind:disabled="isShowBtnOther"
|
|
|
|
|
>
|
|
|
|
|
<!-- 基础信息 -->
|
|
|
|
|
<el-card class="hl-card-info">
|
|
|
|
|
<template #header>
|
|
|
|
|
<div class="hl-card-info-icona"></div><span class="hl-card-info-text">基础信息</span>
|
|
|
|
|
</template>
|
|
|
|
|
<el-row>
|
|
|
|
|
<el-col :span="8">
|
|
|
|
|
<el-row>
|
|
|
|
|
<el-col :span="24">
|
|
|
|
|
<el-form-item prop="name" label="出库单号">
|
|
|
|
|
<el-input v-model="formData.stockNo" disabled placeholder="系统自动生成" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
<el-row>
|
|
|
|
|
<el-col :span="24">
|
|
|
|
|
<el-form-item prop="stockInType" label="出库类型">
|
|
|
|
|
<el-select v-model="formData.stockInType" clearable style="width: 100%">
|
|
|
|
|
<el-option
|
|
|
|
|
v-for="dict in getIntDictOptions(DICT_TYPE.HELI_STORAGE_OUT_TYPE)"
|
|
|
|
|
:key="dict.value"
|
|
|
|
|
:label="dict.label"
|
|
|
|
|
:value="dict.value"
|
|
|
|
|
/>
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="8">
|
|
|
|
|
<el-row>
|
|
|
|
|
<el-col :span="24">
|
|
|
|
|
<el-form-item prop="industry" label="单据状态">
|
|
|
|
|
<el-select
|
|
|
|
|
v-model="formData.status"
|
|
|
|
|
placeholder="下拉选择"
|
|
|
|
|
clearable
|
|
|
|
|
class="!w-700px"
|
|
|
|
|
disabled
|
|
|
|
|
>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-form
|
|
|
|
|
ref="matSubFormRef"
|
|
|
|
|
:model="formData.matItemDOList"
|
|
|
|
|
:rules="subFormRules"
|
|
|
|
|
v-loading="subFormLoading"
|
|
|
|
|
label-width="0"
|
|
|
|
|
>
|
|
|
|
|
<el-table :data="formData.matItemDOList" class="hl-table">
|
|
|
|
|
<el-table-column prop="cid" label="序号" :width="80" />
|
|
|
|
|
<el-table-column prop="matId" min-width="140" align="center">
|
|
|
|
|
<template #header> <span class="hl-table_header">*</span>物料名称 </template>
|
|
|
|
|
<template #default="scope">
|
|
|
|
|
<el-form-item
|
|
|
|
|
:prop="`${scope.$index}.matId`"
|
|
|
|
|
:rules="subFormRules.matId"
|
|
|
|
|
class="mb-0px!"
|
|
|
|
|
>
|
|
|
|
|
<el-select
|
|
|
|
|
v-model="scope.row.matId"
|
|
|
|
|
placeholder="物料名称"
|
|
|
|
|
:remote-method="remoteMatCodeSearch"
|
|
|
|
|
remote-show-suffix
|
|
|
|
|
remote
|
|
|
|
|
clearable
|
|
|
|
|
reserve-keyword
|
|
|
|
|
filterable
|
|
|
|
|
:loading="matSelectLoading"
|
|
|
|
|
@change="(val) => handleMatCode(scope, val)"
|
|
|
|
|
class="!w-180px"
|
|
|
|
|
>
|
|
|
|
|
<el-option
|
|
|
|
|
v-for="item in matList"
|
|
|
|
|
:key="item.id"
|
|
|
|
|
:label="item.name"
|
|
|
|
|
:value="item.id"
|
|
|
|
|
/>
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column
|
|
|
|
|
prop="matCode"
|
|
|
|
|
label="物料编码"
|
|
|
|
|
min-width="120"
|
|
|
|
|
align="center"
|
|
|
|
|
<el-option
|
|
|
|
|
v-for="dict in getIntDictOptions(DICT_TYPE.HELI_STORAGE_STATUS)"
|
|
|
|
|
:key="dict.value"
|
|
|
|
|
:label="dict.label"
|
|
|
|
|
:value="dict.value"
|
|
|
|
|
/>
|
|
|
|
|
<el-table-column prop="matType" label="物料类型" min-width="120" align="center">
|
|
|
|
|
<template #default="scope">
|
|
|
|
|
<dict-tag
|
|
|
|
|
:type="DICT_TYPE.HELI_MATERIAL_TYPE"
|
|
|
|
|
:value="scope.row.matType"
|
|
|
|
|
v-if="scope.row.matType ? true : false"
|
|
|
|
|
/>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column
|
|
|
|
|
prop="matSpec"
|
|
|
|
|
label="规格/型号"
|
|
|
|
|
min-width="120"
|
|
|
|
|
align="center"
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
<el-row>
|
|
|
|
|
<el-col :span="24">
|
|
|
|
|
<el-form-item prop="headerNo" label="上游单号">
|
|
|
|
|
<el-input v-model="formData.headerNo" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="8">
|
|
|
|
|
<el-row>
|
|
|
|
|
<el-col :span="24">
|
|
|
|
|
<el-form-item label="单据日期" prop="createTime">
|
|
|
|
|
{{ formatDate(formData.createTime, 'YYYY-MM-DD HH:mm') }}
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
<el-row>
|
|
|
|
|
<el-col :span="24">
|
|
|
|
|
<el-form-item prop="whId" label="出库仓库" required>
|
|
|
|
|
<el-select
|
|
|
|
|
v-model="formData.whId"
|
|
|
|
|
placeholder="下拉选择"
|
|
|
|
|
clearable
|
|
|
|
|
class="!w-400px"
|
|
|
|
|
@change="handleWh"
|
|
|
|
|
v-bind:disabled="btnWhClickable"
|
|
|
|
|
>
|
|
|
|
|
<el-option
|
|
|
|
|
v-for="dict in warehouseList"
|
|
|
|
|
:key="dict.id"
|
|
|
|
|
:label="dict.whName"
|
|
|
|
|
:value="dict.id"
|
|
|
|
|
/>
|
|
|
|
|
|
|
|
|
|
<el-table-column prop="matUnit" label="系统单位" min-width="120" align="center">
|
|
|
|
|
<template #default="scope">
|
|
|
|
|
<dict-tag
|
|
|
|
|
:type="DICT_TYPE.HELI_MATERIAL_UNIT"
|
|
|
|
|
:value="scope.row.matUnit"
|
|
|
|
|
v-if="scope.row.matUnit ? true : false"
|
|
|
|
|
/>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column prop="rgId" min-width="120" align="center">
|
|
|
|
|
<template #header> <span class="hl-table_header">*</span>出库库区 </template>
|
|
|
|
|
<template #default="scope">
|
|
|
|
|
<el-form-item
|
|
|
|
|
:prop="`${scope.$index}.rgId`"
|
|
|
|
|
:rules="subFormRules.rgId"
|
|
|
|
|
class="mb-0px!"
|
|
|
|
|
>
|
|
|
|
|
<el-select
|
|
|
|
|
v-model="scope.row.rgId"
|
|
|
|
|
placeholder=""
|
|
|
|
|
style="width: 100%"
|
|
|
|
|
@change="handleRg(scope)"
|
|
|
|
|
disabled=""
|
|
|
|
|
>
|
|
|
|
|
<el-option
|
|
|
|
|
v-for="dict in rgList"
|
|
|
|
|
:key="dict.id"
|
|
|
|
|
:label="dict.rgName"
|
|
|
|
|
:value="dict.id"
|
|
|
|
|
/>
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column prop="pnId" min-width="140" align="center">
|
|
|
|
|
<template #header> <span class="hl-table_header">*</span>出库库位 </template>
|
|
|
|
|
<template #default="scope">
|
|
|
|
|
<el-form-item
|
|
|
|
|
:prop="`${scope.$index}.pnId`"
|
|
|
|
|
:rules="subFormRules.pnId"
|
|
|
|
|
class="mb-0px!"
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
<el-row>
|
|
|
|
|
<el-col :span="24">
|
|
|
|
|
<el-form-item label="备注" prop="description">
|
|
|
|
|
<el-input
|
|
|
|
|
type="textarea"
|
|
|
|
|
v-model="formData.description"
|
|
|
|
|
show-word-limit
|
|
|
|
|
maxlength="200"
|
|
|
|
|
/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
</el-card>
|
|
|
|
|
<!-- 物料信息 -->
|
|
|
|
|
<el-card class="hl-card-info">
|
|
|
|
|
<template #header>
|
|
|
|
|
<div class="hl-card-info-icona"></div><span class="hl-card-info-text">物料信息</span>
|
|
|
|
|
</template>
|
|
|
|
|
<el-row>
|
|
|
|
|
<el-col>
|
|
|
|
|
<el-card class="hl-incard">
|
|
|
|
|
<el-col>
|
|
|
|
|
<el-button class="hl-addbutton" type="primary" size="large" @click="onAddItem"
|
|
|
|
|
>新增</el-button
|
|
|
|
|
>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-form
|
|
|
|
|
ref="matSubFormRef"
|
|
|
|
|
:model="formData.matItemDOList"
|
|
|
|
|
:rules="subFormRules"
|
|
|
|
|
v-loading="subFormLoading"
|
|
|
|
|
label-width="0"
|
|
|
|
|
>
|
|
|
|
|
<el-table :data="formData.matItemDOList" class="hl-table">
|
|
|
|
|
<el-table-column prop="cid" label="序号" :width="80" />
|
|
|
|
|
<el-table-column prop="matId" min-width="140" align="center">
|
|
|
|
|
<template #header> <span class="hl-table_header">*</span>物料名称 </template>
|
|
|
|
|
<template #default="scope">
|
|
|
|
|
<el-form-item
|
|
|
|
|
:prop="`${scope.$index}.matId`"
|
|
|
|
|
:rules="subFormRules.matId"
|
|
|
|
|
class="mb-0px!"
|
|
|
|
|
>
|
|
|
|
|
<el-select
|
|
|
|
|
v-model="scope.row.matId"
|
|
|
|
|
placeholder="物料名称"
|
|
|
|
|
:remote-method="remoteMatCodeSearch"
|
|
|
|
|
remote-show-suffix
|
|
|
|
|
remote
|
|
|
|
|
clearable
|
|
|
|
|
reserve-keyword
|
|
|
|
|
filterable
|
|
|
|
|
:loading="matSelectLoading"
|
|
|
|
|
@change="(val) => handleMatCode(scope, val)"
|
|
|
|
|
class="!w-180px"
|
|
|
|
|
>
|
|
|
|
|
<el-select v-model="scope.row.pnId" placeholder="" style="width: 100%">
|
|
|
|
|
<el-option
|
|
|
|
|
v-for="dict in scope.row.pnlist"
|
|
|
|
|
:key="dict.id"
|
|
|
|
|
:label="dict.pnName"
|
|
|
|
|
:value="dict.id"
|
|
|
|
|
/>
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column
|
|
|
|
|
prop="matRest"
|
|
|
|
|
label="库存数量"
|
|
|
|
|
min-width="120"
|
|
|
|
|
align="center"
|
|
|
|
|
/>
|
|
|
|
|
<el-table-column prop="storageOkQty" min-width="120" align="center">
|
|
|
|
|
<template #header> <span class="hl-table_header">*</span>出库数量</template>
|
|
|
|
|
<template #default="scope">
|
|
|
|
|
<el-form-item
|
|
|
|
|
:prop="`${scope.$index}.storageOkQty`"
|
|
|
|
|
:rules="subFormRules.storageOkQty"
|
|
|
|
|
class="mb-0px!"
|
|
|
|
|
<el-option
|
|
|
|
|
v-for="item in matList"
|
|
|
|
|
:key="item.id"
|
|
|
|
|
:label="item.name"
|
|
|
|
|
:value="item.id"
|
|
|
|
|
/>
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column prop="matCode" label="物料编码" min-width="120" align="center" />
|
|
|
|
|
<el-table-column prop="matType" label="物料类型" min-width="120" align="center">
|
|
|
|
|
<template #default="scope">
|
|
|
|
|
<dict-tag
|
|
|
|
|
:type="DICT_TYPE.HELI_MATERIAL_TYPE"
|
|
|
|
|
:value="scope.row.matType"
|
|
|
|
|
v-if="scope.row.matType ? true : false"
|
|
|
|
|
/>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column prop="matSpec" label="规格/型号" min-width="120" align="center" />
|
|
|
|
|
|
|
|
|
|
<el-table-column prop="matUnit" label="系统单位" min-width="120" align="center">
|
|
|
|
|
<template #default="scope">
|
|
|
|
|
<dict-tag
|
|
|
|
|
:type="DICT_TYPE.HELI_MATERIAL_UNIT"
|
|
|
|
|
:value="scope.row.matUnit"
|
|
|
|
|
v-if="scope.row.matUnit ? true : false"
|
|
|
|
|
/>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column prop="rgId" min-width="120" align="center">
|
|
|
|
|
<template #header> <span class="hl-table_header">*</span>出库库区 </template>
|
|
|
|
|
<template #default="scope">
|
|
|
|
|
<el-form-item
|
|
|
|
|
:prop="`${scope.$index}.rgId`"
|
|
|
|
|
:rules="subFormRules.rgId"
|
|
|
|
|
class="mb-0px!"
|
|
|
|
|
>
|
|
|
|
|
<el-select
|
|
|
|
|
v-model="scope.row.rgId"
|
|
|
|
|
placeholder=""
|
|
|
|
|
style="width: 100%"
|
|
|
|
|
@change="handleRg(scope)"
|
|
|
|
|
disabled=""
|
|
|
|
|
>
|
|
|
|
|
<el-input v-model="scope.row.storageOkQty" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column prop="lotNo" min-width="120" label="批次号" align="center" />
|
|
|
|
|
<el-table-column prop="description" min-width="180" label="备注" align="center">
|
|
|
|
|
<template #default="scope">
|
|
|
|
|
<el-input v-model="scope.row.description" />
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="操作" align="center" width="240">
|
|
|
|
|
<template #default="scope">
|
|
|
|
|
<!-- <el-button v-if="!scope.row.editable" type="primary" size="small" link
|
|
|
|
|
<el-option
|
|
|
|
|
v-for="dict in rgList"
|
|
|
|
|
:key="dict.id"
|
|
|
|
|
:label="dict.rgName"
|
|
|
|
|
:value="dict.id"
|
|
|
|
|
/>
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column prop="pnId" min-width="140" align="center">
|
|
|
|
|
<template #header> <span class="hl-table_header">*</span>出库库位 </template>
|
|
|
|
|
<template #default="scope">
|
|
|
|
|
<el-form-item
|
|
|
|
|
:prop="`${scope.$index}.pnId`"
|
|
|
|
|
:rules="subFormRules.pnId"
|
|
|
|
|
class="mb-0px!"
|
|
|
|
|
>
|
|
|
|
|
<el-select v-model="scope.row.pnId" placeholder="" style="width: 100%">
|
|
|
|
|
<el-option
|
|
|
|
|
v-for="dict in scope.row.pnlist"
|
|
|
|
|
:key="dict.id"
|
|
|
|
|
:label="dict.pnName"
|
|
|
|
|
:value="dict.id"
|
|
|
|
|
/>
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column prop="matRest" label="库存数量" min-width="120" align="center" />
|
|
|
|
|
<el-table-column prop="storageOkQty" min-width="120" align="center">
|
|
|
|
|
<template #header> <span class="hl-table_header">*</span>出库数量</template>
|
|
|
|
|
<template #default="scope">
|
|
|
|
|
<el-form-item
|
|
|
|
|
:prop="`${scope.$index}.storageOkQty`"
|
|
|
|
|
:rules="subFormRules.storageOkQty"
|
|
|
|
|
class="mb-0px!"
|
|
|
|
|
>
|
|
|
|
|
<el-input v-model="scope.row.storageOkQty" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column prop="lotNo" min-width="120" label="批次号" align="center" />
|
|
|
|
|
<el-table-column prop="description" min-width="180" label="备注" align="center">
|
|
|
|
|
<template #default="scope">
|
|
|
|
|
<el-input v-model="scope.row.description" />
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="操作" align="center" width="240">
|
|
|
|
|
<template #default="scope">
|
|
|
|
|
<!-- <el-button v-if="!scope.row.editable" type="primary" size="small" link
|
|
|
|
|
@click="handleEdit(scope.$index)">
|
|
|
|
|
编辑
|
|
|
|
|
</el-button>
|
|
|
|
@ -278,137 +262,136 @@
|
|
|
|
|
</el-button>
|
|
|
|
|
|
|
|
|
|
<el-button link type="primary" @click="handlefuke(scope.$index, scope.row)">复制</el-button> -->
|
|
|
|
|
<el-button
|
|
|
|
|
link
|
|
|
|
|
type="danger"
|
|
|
|
|
size="small"
|
|
|
|
|
@click.prevent="handleDelete2(scope.$index)"
|
|
|
|
|
v-if="isShowBtnDelete"
|
|
|
|
|
>
|
|
|
|
|
删除
|
|
|
|
|
</el-button>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
</el-table>
|
|
|
|
|
</el-form>
|
|
|
|
|
</el-card>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
</el-card>
|
|
|
|
|
<!-- 附件信息 -->
|
|
|
|
|
<el-card class="hl-card-info">
|
|
|
|
|
<template #header>
|
|
|
|
|
<div class="hl-card-info-icona"></div><span class="hl-card-info-text">附件信息</span>
|
|
|
|
|
</template>
|
|
|
|
|
<el-row>
|
|
|
|
|
<el-col>
|
|
|
|
|
<el-card class="hl-incard">
|
|
|
|
|
<el-col>
|
|
|
|
|
<el-upload
|
|
|
|
|
ref="matUploadRef"
|
|
|
|
|
:file-list="matUploadFiles"
|
|
|
|
|
multiple
|
|
|
|
|
:limit="10"
|
|
|
|
|
:action="uploadUrl"
|
|
|
|
|
:headers="{
|
|
|
|
|
Authorization: 'Bearer ' + getAccessToken(),
|
|
|
|
|
'tenant-id': getTenantId()
|
|
|
|
|
}"
|
|
|
|
|
name="files"
|
|
|
|
|
:show-file-list="false"
|
|
|
|
|
:auto-upload="false"
|
|
|
|
|
:data="matUploadData"
|
|
|
|
|
:on-change="matUploadChange"
|
|
|
|
|
class="upload-file-uploader"
|
|
|
|
|
>
|
|
|
|
|
<el-button type="primary"> <Icon icon="ep:upload-filled" />上传 </el-button>
|
|
|
|
|
</el-upload>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-table :data="formData.attachments" class="hl-table">
|
|
|
|
|
<el-table-column prop="name" label="文件名称" align="center">
|
|
|
|
|
<!-- <template #default="scope">
|
|
|
|
|
<a :href="scope.row.url" target="_blank" style="color: #409eff">{{ scope.row.name }} </a>
|
|
|
|
|
</template> -->
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
|
|
|
|
<el-table-column
|
|
|
|
|
prop="createTime"
|
|
|
|
|
align="center"
|
|
|
|
|
label="上传日期"
|
|
|
|
|
:formatter="dateFormatter"
|
|
|
|
|
/>
|
|
|
|
|
|
|
|
|
|
<el-table-column label="操作" align="center">
|
|
|
|
|
<template #default="scope">
|
|
|
|
|
<el-button
|
|
|
|
|
link
|
|
|
|
|
type="danger"
|
|
|
|
|
size="small"
|
|
|
|
|
@click.prevent="handleDelete2(scope.$index)"
|
|
|
|
|
v-if="isShowBtnDelete"
|
|
|
|
|
@click="handleDeleteAttachment(scope.$index, scope.row.businessFileType)"
|
|
|
|
|
>
|
|
|
|
|
删除
|
|
|
|
|
</el-button>
|
|
|
|
|
<el-button
|
|
|
|
|
link
|
|
|
|
|
type="primary"
|
|
|
|
|
size="small"
|
|
|
|
|
@click="downloadAttachment(scope.row.name, scope.row.url)"
|
|
|
|
|
>
|
|
|
|
|
下载
|
|
|
|
|
</el-button>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
</el-table>
|
|
|
|
|
</el-card>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
</el-card>
|
|
|
|
|
<!-- 系统信息 -->
|
|
|
|
|
<el-card class="hl-card-info">
|
|
|
|
|
<template #header>
|
|
|
|
|
<div class="hl-card-info-icona"></div><span class="hl-card-info-text">系统信息</span>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<el-row justify="center">
|
|
|
|
|
<el-col :span="8">
|
|
|
|
|
<el-form-item prop="creator" label="创建人">
|
|
|
|
|
{{ userList.find((user) => user.id == formData.creator)?.nickname }}
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="8">
|
|
|
|
|
<el-form-item prop="createTime" label="创建时间">
|
|
|
|
|
{{ formatDate(formData.createTime, 'YYYY-MM-DD HH:mm') }}
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
<el-row justify="center">
|
|
|
|
|
<el-col :span="8">
|
|
|
|
|
<el-form-item prop="outbound" label="出库人">
|
|
|
|
|
{{ userList.find((user) => user.id == formData.outbound)?.nickname }}
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="8">
|
|
|
|
|
<el-form-item prop="outboundTime" label="出库时间">
|
|
|
|
|
{{ formatDate(formData.outboundTime, 'YYYY-MM-DD HH:mm') }}
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
<el-row justify="center">
|
|
|
|
|
<el-col :span="8">
|
|
|
|
|
<el-form-item prop="cancel" label="作废人">
|
|
|
|
|
{{ userList.find((user) => user.id == formData.cancel)?.nickname }}
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="8">
|
|
|
|
|
<el-form-item prop="cancelTime" label="作废时间">
|
|
|
|
|
{{ formatDate(formData.cancelTime, 'YYYY-MM-DD HH:mm') }}
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
</el-card>
|
|
|
|
|
</el-form>
|
|
|
|
|
</div>
|
|
|
|
|
</el-form>
|
|
|
|
|
</el-card>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
</el-card>
|
|
|
|
|
<!-- 附件信息 -->
|
|
|
|
|
<el-card class="hl-card-info">
|
|
|
|
|
<template #header>
|
|
|
|
|
<div class="hl-card-info-icona"></div><span class="hl-card-info-text">附件信息</span>
|
|
|
|
|
</template>
|
|
|
|
|
<el-row>
|
|
|
|
|
<el-col>
|
|
|
|
|
<el-card class="hl-incard">
|
|
|
|
|
<el-col>
|
|
|
|
|
<el-upload
|
|
|
|
|
ref="matUploadRef"
|
|
|
|
|
:file-list="matUploadFiles"
|
|
|
|
|
multiple
|
|
|
|
|
:limit="10"
|
|
|
|
|
:action="uploadUrl"
|
|
|
|
|
:headers="{
|
|
|
|
|
Authorization: 'Bearer ' + getAccessToken(),
|
|
|
|
|
'tenant-id': getTenantId()
|
|
|
|
|
}"
|
|
|
|
|
name="files"
|
|
|
|
|
:show-file-list="false"
|
|
|
|
|
:auto-upload="false"
|
|
|
|
|
:data="matUploadData"
|
|
|
|
|
:on-change="matUploadChange"
|
|
|
|
|
class="upload-file-uploader"
|
|
|
|
|
>
|
|
|
|
|
<el-button type="primary"> <Icon icon="ep:upload-filled" />上传 </el-button>
|
|
|
|
|
</el-upload>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-table :data="formData.attachments" class="hl-table">
|
|
|
|
|
<el-table-column prop="name" label="文件名称" align="center">
|
|
|
|
|
<!-- <template #default="scope">
|
|
|
|
|
<a :href="scope.row.url" target="_blank" style="color: #409eff">{{ scope.row.name }} </a>
|
|
|
|
|
</template> -->
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
|
|
|
|
<el-table-column
|
|
|
|
|
prop="createTime"
|
|
|
|
|
align="center"
|
|
|
|
|
label="上传日期"
|
|
|
|
|
:formatter="dateFormatter"
|
|
|
|
|
/>
|
|
|
|
|
|
|
|
|
|
<el-table-column label="操作" align="center">
|
|
|
|
|
<template #default="scope">
|
|
|
|
|
<el-button
|
|
|
|
|
link
|
|
|
|
|
type="danger"
|
|
|
|
|
size="small"
|
|
|
|
|
v-if="isShowBtnDelete"
|
|
|
|
|
@click="handleDeleteAttachment(scope.$index, scope.row.businessFileType)"
|
|
|
|
|
>
|
|
|
|
|
删除
|
|
|
|
|
</el-button>
|
|
|
|
|
<el-button
|
|
|
|
|
link
|
|
|
|
|
type="primary"
|
|
|
|
|
size="small"
|
|
|
|
|
@click="downloadAttachment(scope.row.name, scope.row.url)"
|
|
|
|
|
>
|
|
|
|
|
下载
|
|
|
|
|
</el-button>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
</el-table>
|
|
|
|
|
</el-card>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
</el-card>
|
|
|
|
|
<!-- 系统信息 -->
|
|
|
|
|
<el-card class="hl-card-info">
|
|
|
|
|
<template #header>
|
|
|
|
|
<div class="hl-card-info-icona"></div><span class="hl-card-info-text">系统信息</span>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<el-row justify="center">
|
|
|
|
|
<el-col :span="8">
|
|
|
|
|
<el-form-item prop="creator" label="创建人">
|
|
|
|
|
{{ userList.find((user) => user.id == formData.creator)?.nickname }}
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="8">
|
|
|
|
|
<el-form-item prop="createTime" label="创建时间">
|
|
|
|
|
{{ formatDate(formData.createTime, 'YYYY-MM-DD HH:mm') }}
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
<el-row justify="center">
|
|
|
|
|
<el-col :span="8">
|
|
|
|
|
<el-form-item prop="outbound" label="出库人">
|
|
|
|
|
{{ userList.find((user) => user.id == formData.outbound)?.nickname }}
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="8">
|
|
|
|
|
<el-form-item prop="outboundTime" label="出库时间">
|
|
|
|
|
{{ formatDate(formData.outboundTime, 'YYYY-MM-DD HH:mm') }}
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
<el-row justify="center">
|
|
|
|
|
<el-col :span="8">
|
|
|
|
|
<el-form-item prop="cancel" label="作废人">
|
|
|
|
|
{{ userList.find((user) => user.id == formData.cancel)?.nickname }}
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="8">
|
|
|
|
|
<el-form-item prop="cancelTime" label="作废时间">
|
|
|
|
|
{{ formatDate(formData.cancelTime, 'YYYY-MM-DD HH:mm') }}
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
</el-card>
|
|
|
|
|
</el-form>
|
|
|
|
|
<div class="text-center hl-footer">
|
|
|
|
|
<el-button @click="() => router.go(-1)" size="large">取 消</el-button>
|
|
|
|
|
<el-button
|
|
|
|
@ -506,9 +489,10 @@ const subFormRules = reactive({
|
|
|
|
|
storageOkQty: [{ required: true, message: '出库数量不能为空', trigger: 'blur' }]
|
|
|
|
|
})
|
|
|
|
|
const handleStatus = async (num) => {
|
|
|
|
|
|
|
|
|
|
// 校验表单
|
|
|
|
|
await formRef.value.validate()
|
|
|
|
|
if (formData.value.matItemDOList.length === 0) {
|
|
|
|
|
if(formData.value.matItemDOList.length === 0){
|
|
|
|
|
message.alertWarning('请添加物料信息!')
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
@ -563,7 +547,7 @@ const handleStatus = async (num) => {
|
|
|
|
|
isShowBtnDelete.value = false
|
|
|
|
|
}
|
|
|
|
|
query.id = storageid.value
|
|
|
|
|
query.type = 'update'
|
|
|
|
|
query.type= 'update'
|
|
|
|
|
reload()
|
|
|
|
|
}
|
|
|
|
|
const userList = ref<UserApi.UserVO[]>([]) // 用户列表
|
|
|
|
@ -627,7 +611,7 @@ var commonResult = ''
|
|
|
|
|
/** 提交表单 */
|
|
|
|
|
const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调
|
|
|
|
|
|
|
|
|
|
const saveFormData = async () => {
|
|
|
|
|
const saveFormData = async () =>{
|
|
|
|
|
//获取最新库存信息
|
|
|
|
|
const matCurrentData = await StorageMatApi.getStorageMatList()
|
|
|
|
|
var hasRestNum = true
|
|
|
|
@ -676,6 +660,9 @@ const saveFormData = async () => {
|
|
|
|
|
}
|
|
|
|
|
formData.value = await StorageApi.getStorage(storageid.value)
|
|
|
|
|
message.success(t(commonResult))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} finally {
|
|
|
|
|
formLoading.value = false
|
|
|
|
|
}
|
|
|
|
@ -683,7 +670,7 @@ const saveFormData = async () => {
|
|
|
|
|
const submitForm = async () => {
|
|
|
|
|
// 校验表单
|
|
|
|
|
await formRef.value.validate()
|
|
|
|
|
if (formData.value.matItemDOList.length === 0) {
|
|
|
|
|
if(formData.value.matItemDOList.length === 0){
|
|
|
|
|
message.alertWarning('请添加物料信息!')
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
@ -697,7 +684,7 @@ const submitForm = async () => {
|
|
|
|
|
await saveFormData()
|
|
|
|
|
// 成功后刷新
|
|
|
|
|
query.id = storageid.value
|
|
|
|
|
query.type = 'update'
|
|
|
|
|
query.type= 'update'
|
|
|
|
|
reload()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -725,6 +712,7 @@ const onAddItem = () => {
|
|
|
|
|
}
|
|
|
|
|
matCount = matCount + 1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
formData.value.matItemDOList.push(newData)
|
|
|
|
|
} else {
|
|
|
|
|
message.alertWarning('请选择出库仓库')
|
|
|
|
@ -760,14 +748,11 @@ const handleWh = async (wid) => {
|
|
|
|
|
let matParams = {
|
|
|
|
|
pageNo: 1,
|
|
|
|
|
pageSize: 99,
|
|
|
|
|
status: '1'
|
|
|
|
|
status: "1"
|
|
|
|
|
}
|
|
|
|
|
const dataMat = await MaterialApi.getMaterialPage(matParams)
|
|
|
|
|
matList.value = []
|
|
|
|
|
matList.value = dataMat.list.filter(
|
|
|
|
|
(item) =>
|
|
|
|
|
matLastRemoteData.find((fish) => fish.matId === item.id && fish.whId == wid) !== undefined
|
|
|
|
|
)
|
|
|
|
|
matList.value = dataMat.list.filter((item) => matLastRemoteData.find((fish) => fish.matId === item.id && fish.whId == wid) !== undefined)
|
|
|
|
|
|
|
|
|
|
formData.value.matItemDOList = []
|
|
|
|
|
// formData.value.matItemDOList.forEach(item => {
|
|
|
|
@ -807,12 +792,7 @@ const remoteMatCodeSearch = async (name) => {
|
|
|
|
|
|
|
|
|
|
const dataMat = await MaterialApi.getMaterialPage(matParams)
|
|
|
|
|
matList.value = []
|
|
|
|
|
matList.value = dataMat.list.filter(
|
|
|
|
|
(item) =>
|
|
|
|
|
matLastRemoteData.find(
|
|
|
|
|
(fish) => fish.matId === item.id && fish.whId == formData.value.whId
|
|
|
|
|
) !== undefined
|
|
|
|
|
)
|
|
|
|
|
matList.value = dataMat.list.filter((item) => matLastRemoteData.find((fish) => fish.matId === item.id && fish.whId == formData.value.whId) !== undefined)
|
|
|
|
|
matSelectLoading.value = false
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -860,7 +840,7 @@ const handleMatCode = async (scope, matid) => {
|
|
|
|
|
const isShowBtnGroup = ref(true)
|
|
|
|
|
const isShowBtnCancel = ref(false)
|
|
|
|
|
const isShowBtnOther = ref(false)
|
|
|
|
|
const isShowBtnDelete = ref(true)
|
|
|
|
|
const isShowBtnDelete = ref(true)
|
|
|
|
|
const btnWhClickable = ref(false)
|
|
|
|
|
const matLastData = ref([])
|
|
|
|
|
/** 初始化 **/
|
|
|
|
@ -882,6 +862,8 @@ onMounted(async () => {
|
|
|
|
|
dialogTitle.value = t('action.' + query.type)
|
|
|
|
|
dialogTitle.value = query.type === 'review' ? '查看' : dialogTitle.value
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//-------------------仓库全数据
|
|
|
|
|
const data = await WarehouseApi.getWarehouseSimpList()
|
|
|
|
|
warehouseList.value = data
|
|
|
|
|