|
|
|
@ -9,14 +9,7 @@
|
|
|
|
|
<img src="/src/assets/imgs/status/statuszf.png" v-else-if="formData.status == 3" alt="" />
|
|
|
|
|
<span v-else></span>
|
|
|
|
|
</div>
|
|
|
|
|
<el-form
|
|
|
|
|
ref="formRef"
|
|
|
|
|
:model="formData"
|
|
|
|
|
:rules="formRules"
|
|
|
|
|
label-width="100px"
|
|
|
|
|
v-loading="formLoading"
|
|
|
|
|
v-bind:disabled="isShowBtnOther"
|
|
|
|
|
>
|
|
|
|
|
<el-form ref="formRef" :model="formData" :rules="formRules" label-width="100px" v-loading="formLoading" >
|
|
|
|
|
<!-- 基础信息 -->
|
|
|
|
|
<el-card class="hl-card-info">
|
|
|
|
|
<template #header>
|
|
|
|
@ -34,13 +27,9 @@
|
|
|
|
|
<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_IN_TYPE)"
|
|
|
|
|
:key="dict.value"
|
|
|
|
|
:label="dict.label"
|
|
|
|
|
:value="dict.value"
|
|
|
|
|
/>
|
|
|
|
|
<el-select v-model="formData.stockInType" clearable style="width: 100%" @change="handleStockType" v-bind:disabled="btnView || btnSave">
|
|
|
|
|
<el-option v-for="dict in getIntDictOptions(DICT_TYPE.HELI_STORAGE_IN_TYPE)" :key="dict.value"
|
|
|
|
|
:label="dict.label" :value="dict.value" />
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
@ -50,19 +39,9 @@
|
|
|
|
|
<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 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>
|
|
|
|
@ -70,7 +49,7 @@
|
|
|
|
|
<el-row>
|
|
|
|
|
<el-col :span="24">
|
|
|
|
|
<el-form-item prop="headerNo" label="上游单号">
|
|
|
|
|
<el-input v-model="formData.headerNo" />
|
|
|
|
|
<el-input v-model="formData.headerNo" class="!w-700px" v-bind:disabled="btnView || btnSave || enableHeadNo" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
@ -79,26 +58,17 @@
|
|
|
|
|
<el-row>
|
|
|
|
|
<el-col :span="24">
|
|
|
|
|
<el-form-item label="单据日期" prop="createTime">
|
|
|
|
|
{{ formatDate(formData.createTime, 'YYYY-MM-DD HH:mm:ss') }}
|
|
|
|
|
<!-- {{ formatDate(formData.createTime, 'YYYY-MM-DD HH:mm:ss') }} -->
|
|
|
|
|
<el-date-picker v-model="formData.createTime" value-format="x" placeholder="单据日期" disabled
|
|
|
|
|
class="!w-400px" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
<el-row>
|
|
|
|
|
<el-col :span="24">
|
|
|
|
|
<el-form-item prop="whId" label="入库仓库">
|
|
|
|
|
<el-select
|
|
|
|
|
v-model="formData.whId"
|
|
|
|
|
placeholder="下拉选择"
|
|
|
|
|
clearable
|
|
|
|
|
class="!w-400px"
|
|
|
|
|
@change="handleWh"
|
|
|
|
|
>
|
|
|
|
|
<el-option
|
|
|
|
|
v-for="dict in warehouseList"
|
|
|
|
|
:key="dict.id"
|
|
|
|
|
:label="dict.whName"
|
|
|
|
|
:value="dict.id"
|
|
|
|
|
/>
|
|
|
|
|
<el-select v-model="formData.whId" placeholder="下拉选择" clearable class="!w-400px" @change="handleWh" v-bind:disabled="btnView || btnSave">
|
|
|
|
|
<el-option v-for="dict in warehouseList" :key="dict.id" :label="dict.whName" :value="dict.id" />
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
@ -108,12 +78,7 @@
|
|
|
|
|
<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-input type="textarea" v-model="formData.description" show-word-limit maxlength="200" v-bind:disabled="btnView || btnSave" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
@ -127,108 +92,45 @@
|
|
|
|
|
<el-col>
|
|
|
|
|
<el-card class="hl-incard">
|
|
|
|
|
<el-col>
|
|
|
|
|
<el-button class="hl-addbutton" type="primary" size="large" @click="onAddItem"
|
|
|
|
|
>新增</el-button
|
|
|
|
|
>
|
|
|
|
|
<el-button class="hl-addbutton" type="primary" size="large" @click="onAddItem" v-bind:disabled="btnView || btnSave">新增</el-button>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-form
|
|
|
|
|
ref="matSubFormRef"
|
|
|
|
|
:model="formData.matItemDOList"
|
|
|
|
|
:rules="subFormRules"
|
|
|
|
|
v-loading="subFormLoading"
|
|
|
|
|
label-width="0"
|
|
|
|
|
>
|
|
|
|
|
<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="序号" min-width="80" align="center" fixed />
|
|
|
|
|
<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.code"
|
|
|
|
|
:value="item.id"
|
|
|
|
|
/>
|
|
|
|
|
<el-form-item :prop="`${scope.$index}.matId`" :rules="subFormRules.matId" class="mb-0px!">
|
|
|
|
|
<el-select v-model="scope.row.matId" placeholder="物料编码" :remote-method="remoteMatCodeSearch" v-bind:disabled="btnView || btnSave"
|
|
|
|
|
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.code" :value="item.id" />
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column prop="matName" label="物料名称" min-width="120" align="center">
|
|
|
|
|
<!-- <template #default="scope">
|
|
|
|
|
<el-input v-model="scope.row.matName"
|
|
|
|
|
:disabled="!scope.row.editable" />
|
|
|
|
|
|
|
|
|
|
<el-select v-model="scope.row.matName" placeholder="物料名称" :remote-method="remoteMatSearch"
|
|
|
|
|
remote-show-suffix remote clearable reserve-keyword filterable :loading="matSelectLoading" @click="handleMatName"
|
|
|
|
|
class="!w-180px">
|
|
|
|
|
<el-option v-for="item in matList" :key="item.id" :label="item.name" :value="item.id" />
|
|
|
|
|
</el-select>
|
|
|
|
|
|
|
|
|
|
</template> -->
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column prop="matName" label="物料名称" min-width="120" align="center" />
|
|
|
|
|
<el-table-column prop="matType" label="物料类型" align="center" min-width="120">
|
|
|
|
|
<template #default="scope">
|
|
|
|
|
<dict-tag
|
|
|
|
|
:type="DICT_TYPE.HELI_MATERIAL_TYPE"
|
|
|
|
|
:value="scope.row.matType"
|
|
|
|
|
v-if="scope.row.matType ? true : false"
|
|
|
|
|
/>
|
|
|
|
|
<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="规格/型号"
|
|
|
|
|
align="center"
|
|
|
|
|
min-width="120"
|
|
|
|
|
/>
|
|
|
|
|
<el-table-column prop="matSpec" label="规格/型号" align="center" min-width="120" />
|
|
|
|
|
|
|
|
|
|
<el-table-column prop="matUnit" label="系统单位" align="center" min-width="120">
|
|
|
|
|
<template #default="scope">
|
|
|
|
|
<dict-tag
|
|
|
|
|
:type="DICT_TYPE.HELI_MATERIAL_UNIT"
|
|
|
|
|
:value="scope.row.matUnit"
|
|
|
|
|
v-if="scope.row.matUnit ? true : false"
|
|
|
|
|
/>
|
|
|
|
|
<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" align="center" min-width="120">
|
|
|
|
|
<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)"
|
|
|
|
|
>
|
|
|
|
|
<el-option
|
|
|
|
|
v-for="dict in rgList"
|
|
|
|
|
:key="dict.id"
|
|
|
|
|
:label="dict.rgName"
|
|
|
|
|
:value="dict.id"
|
|
|
|
|
/>
|
|
|
|
|
<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)" v-bind:disabled="btnView || btnSave">
|
|
|
|
|
<el-option v-for="dict in rgList" :key="dict.id" :label="dict.rgName" :value="dict.id" />
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</template>
|
|
|
|
@ -236,18 +138,10 @@
|
|
|
|
|
<el-table-column prop="pnId" align="center" min-width="120">
|
|
|
|
|
<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-form-item :prop="`${scope.$index}.pnId`" :rules="subFormRules.pnId" class="mb-0px!">
|
|
|
|
|
<el-select v-model="scope.row.pnId" placeholder="" style="width: 100%" v-bind:disabled="btnView || btnSave">
|
|
|
|
|
<el-option v-for="dict in scope.row.pnlist" :key="dict.id" :label="dict.pnName"
|
|
|
|
|
:value="dict.id" />
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</template>
|
|
|
|
@ -255,53 +149,31 @@
|
|
|
|
|
<el-table-column prop="storageOkQty" align="center" min-width="120">
|
|
|
|
|
<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 :prop="`${scope.$index}.storageOkQty`" :rules="subFormRules.storageOkQty"
|
|
|
|
|
class="mb-0px!">
|
|
|
|
|
<el-input v-model="scope.row.storageOkQty" v-bind:disabled="btnView || btnSave"/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column prop="lotNo" label="批次号" align="center" min-width="120">
|
|
|
|
|
<template #default="scope">
|
|
|
|
|
<el-input v-model="scope.row.lotNo" />
|
|
|
|
|
<el-input v-model="scope.row.lotNo" v-bind:disabled="btnView || btnSave"/>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
|
|
|
|
<el-table-column
|
|
|
|
|
prop="projectNo"
|
|
|
|
|
label="子项目编号"
|
|
|
|
|
align="center"
|
|
|
|
|
min-width="120"
|
|
|
|
|
>
|
|
|
|
|
<el-table-column prop="projectNo" label="子项目编号" align="center" min-width="120">
|
|
|
|
|
<template #default="scope">
|
|
|
|
|
<el-input v-model="scope.row.projectNo" />
|
|
|
|
|
<el-input v-model="scope.row.projectNo" v-bind:disabled="btnView || btnSave"/>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column prop="description" label="备注" align="center" min-width="180">
|
|
|
|
|
<template #default="scope">
|
|
|
|
|
<el-input v-model="scope.row.description" />
|
|
|
|
|
<el-input v-model="scope.row.description" v-bind:disabled="btnView || btnSave" />
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="操作" align="center" min-width="120" fixed="right">
|
|
|
|
|
<template #default="scope">
|
|
|
|
|
<!-- <el-button v-if="!scope.row.editable" type="primary" size="small" link
|
|
|
|
|
@click="handleEdit(scope.$index)">
|
|
|
|
|
编辑
|
|
|
|
|
</el-button>
|
|
|
|
|
<el-button link v-else type="success" size="small" @click="handleSave(scope.$index)">
|
|
|
|
|
保存
|
|
|
|
|
</el-button>
|
|
|
|
|
|
|
|
|
|
<el-button link type="primary" @click="handlefuke(scope.$index, scope.row)">复制</el-button> -->
|
|
|
|
|
<el-button
|
|
|
|
|
link
|
|
|
|
|
type="danger"
|
|
|
|
|
@click.prevent="handleDelete2(scope.$index)"
|
|
|
|
|
v-if="isShowBtnDelete"
|
|
|
|
|
>
|
|
|
|
|
<el-button link type="danger" @click.prevent="handleDelete2(scope.$index)" v-bind:disabled="btnView || btnDelete">
|
|
|
|
|
删除
|
|
|
|
|
</el-button>
|
|
|
|
|
</template>
|
|
|
|
@ -321,24 +193,15 @@
|
|
|
|
|
<el-col>
|
|
|
|
|
<el-card class="hl-incard">
|
|
|
|
|
<el-col>
|
|
|
|
|
<el-upload
|
|
|
|
|
ref="matUploadRef"
|
|
|
|
|
:file-list="matUploadFiles"
|
|
|
|
|
multiple
|
|
|
|
|
:limit="10"
|
|
|
|
|
:action="uploadUrl"
|
|
|
|
|
<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>
|
|
|
|
|
}" name="files" :show-file-list="false" :auto-upload="false" :data="matUploadData"
|
|
|
|
|
:on-change="matUploadChange" class="upload-file-uploader">
|
|
|
|
|
<el-button type="primary" v-bind:disabled="btnView || btnSave">
|
|
|
|
|
<Icon icon="ep:upload-filled" />上传
|
|
|
|
|
</el-button>
|
|
|
|
|
</el-upload>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-table :data="formData.attachments" class="hl-table">
|
|
|
|
@ -348,30 +211,16 @@
|
|
|
|
|
</template> -->
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
|
|
|
|
<el-table-column
|
|
|
|
|
prop="createTime"
|
|
|
|
|
align="center"
|
|
|
|
|
label="上传日期"
|
|
|
|
|
:formatter="dateFormatter"
|
|
|
|
|
/>
|
|
|
|
|
<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="handleDeleteAttachment(scope.$index, scope.row.businessFileType)"
|
|
|
|
|
v-if="isShowBtnDelete"
|
|
|
|
|
>
|
|
|
|
|
<el-button link type="danger" size="small" v-bind:disabled="btnView || btnDelete"
|
|
|
|
|
@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 link type="primary" size="small" v-bind:disabled="btnView || btnDelete"
|
|
|
|
|
@click="downloadAttachment(scope.row.name, scope.row.url)">
|
|
|
|
|
下载
|
|
|
|
|
</el-button>
|
|
|
|
|
</template>
|
|
|
|
@ -427,30 +276,12 @@
|
|
|
|
|
</el-form>
|
|
|
|
|
<div class="text-center hl-footer">
|
|
|
|
|
<el-button @click="() => router.go(-1)" size="large">取 消</el-button>
|
|
|
|
|
<el-button
|
|
|
|
|
@click="submitForm"
|
|
|
|
|
v-if="isShowBtnGroup"
|
|
|
|
|
type="success"
|
|
|
|
|
:disabled="formLoading"
|
|
|
|
|
size="large"
|
|
|
|
|
>保 存</el-button
|
|
|
|
|
>
|
|
|
|
|
<el-button
|
|
|
|
|
@click="handleStatus(2)"
|
|
|
|
|
v-if="isShowBtnGroup"
|
|
|
|
|
type="primary"
|
|
|
|
|
:disabled="formLoading"
|
|
|
|
|
size="large"
|
|
|
|
|
>提 交</el-button
|
|
|
|
|
>
|
|
|
|
|
<el-button
|
|
|
|
|
@click="handleStatus(3)"
|
|
|
|
|
v-if="isShowBtnCancel"
|
|
|
|
|
type="danger"
|
|
|
|
|
:disabled="formLoading"
|
|
|
|
|
size="large"
|
|
|
|
|
>报 废</el-button
|
|
|
|
|
>
|
|
|
|
|
<el-button @click="submitForm" type="success" :disabled="btnView || btnSave" size="large">保
|
|
|
|
|
存</el-button>
|
|
|
|
|
<el-button @click="handleStatus(2)" type="primary" :disabled="btnView || btnSave" size="large">提
|
|
|
|
|
交</el-button>
|
|
|
|
|
<el-button @click="handleStatus(3)" type="danger" :disabled="btnView || btnCancel" size="large">报
|
|
|
|
|
废</el-button>
|
|
|
|
|
</div>
|
|
|
|
|
</el-card>
|
|
|
|
|
</template>
|
|
|
|
@ -480,10 +311,8 @@ const message = useMessage() // 消息弹窗
|
|
|
|
|
const { query } = useRoute()
|
|
|
|
|
const router = useRouter()
|
|
|
|
|
|
|
|
|
|
const isShow = ref(false)
|
|
|
|
|
const dialogTitle = ref('') // 弹窗的标题
|
|
|
|
|
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
|
|
|
|
|
const formType = ref('') // 表单的类型:create - 新增;update - 修改
|
|
|
|
|
const formData = ref({
|
|
|
|
|
id: undefined,
|
|
|
|
|
stockType: 1,
|
|
|
|
@ -495,7 +324,7 @@ const formData = ref({
|
|
|
|
|
status: 1,
|
|
|
|
|
whId: undefined,
|
|
|
|
|
creator: undefined,
|
|
|
|
|
createTime: formatDate(new Date(), 'YYYY-MM-DD HH:mm:ss'),
|
|
|
|
|
createTime: undefined,
|
|
|
|
|
keeper: undefined,
|
|
|
|
|
keeperTime: undefined,
|
|
|
|
|
outbound: undefined,
|
|
|
|
@ -534,11 +363,10 @@ const handleStatus = async (num) => {
|
|
|
|
|
} catch (e) {
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
formData.value.status = num
|
|
|
|
|
//保存表单数据
|
|
|
|
|
await saveFormData()
|
|
|
|
|
|
|
|
|
|
formData.value.status = num
|
|
|
|
|
|
|
|
|
|
const dataUpdate = formData.value as unknown as StorageApi.StorageVO
|
|
|
|
|
|
|
|
|
|
if (num == 2) {
|
|
|
|
@ -551,41 +379,23 @@ const handleStatus = async (num) => {
|
|
|
|
|
|
|
|
|
|
message.success(t('common.updateSuccess'))
|
|
|
|
|
|
|
|
|
|
switch (num) {
|
|
|
|
|
case 1:
|
|
|
|
|
isShowBtnGroup.value = true
|
|
|
|
|
isShowBtnCancel.value = false
|
|
|
|
|
isShowBtnOther.value = true
|
|
|
|
|
isShowBtnDelete.value = true
|
|
|
|
|
break
|
|
|
|
|
case 2:
|
|
|
|
|
isShowBtnGroup.value = false
|
|
|
|
|
isShowBtnCancel.value = true
|
|
|
|
|
isShowBtnOther.value = false
|
|
|
|
|
isShowBtnDelete.value = false
|
|
|
|
|
break
|
|
|
|
|
case 3:
|
|
|
|
|
isShowBtnGroup.value = false
|
|
|
|
|
isShowBtnCancel.value = false
|
|
|
|
|
isShowBtnOther.value = false
|
|
|
|
|
isShowBtnDelete.value = false
|
|
|
|
|
break
|
|
|
|
|
default:
|
|
|
|
|
break
|
|
|
|
|
}
|
|
|
|
|
//查看页面不可以编辑
|
|
|
|
|
if (query.type === 'review') {
|
|
|
|
|
isShowBtnGroup.value = false
|
|
|
|
|
isShowBtnCancel.value = false
|
|
|
|
|
isShowBtnOther.value = false
|
|
|
|
|
isShowBtnDelete.value = false
|
|
|
|
|
}
|
|
|
|
|
query.type = 'update'
|
|
|
|
|
query.id = formData.value.id
|
|
|
|
|
query.type= 'update'
|
|
|
|
|
reload()
|
|
|
|
|
}
|
|
|
|
|
const userList = ref<UserApi.UserVO[]>([]) // 用户列表
|
|
|
|
|
|
|
|
|
|
const enableHeadNo = ref(false)
|
|
|
|
|
const handleStockType = async (typeid) => {
|
|
|
|
|
formData.value.headerNo = ''
|
|
|
|
|
if (typeid == 1) {
|
|
|
|
|
enableHeadNo.value = false
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
|
|
enableHeadNo.value = true
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
// ====================附件信息 开始=======================================
|
|
|
|
|
const uploadUrl = ref(import.meta.env.VITE_UPLOAD_BATCH_URL)
|
|
|
|
|
const matUploadRef = ref()
|
|
|
|
@ -639,7 +449,6 @@ const downloadAttachment = async (name, url) => {
|
|
|
|
|
}
|
|
|
|
|
// ====================附件信息 结束=======================================
|
|
|
|
|
|
|
|
|
|
const storageid = ref()
|
|
|
|
|
var commonResult = ''
|
|
|
|
|
|
|
|
|
|
/** 提交表单 */
|
|
|
|
@ -652,27 +461,27 @@ const saveFormData = async () => {
|
|
|
|
|
const data = formData.value as unknown as StorageApi.StorageVO
|
|
|
|
|
if (query.type === 'create') {
|
|
|
|
|
//库存信息保存
|
|
|
|
|
storageid.value = await StorageApi.createStorage(data)
|
|
|
|
|
formData.value.id = await StorageApi.createStorage(data)
|
|
|
|
|
commonResult = 'common.createSuccess'
|
|
|
|
|
} else {
|
|
|
|
|
storageid.value = data.id
|
|
|
|
|
await StorageApi.updateStorage(data)
|
|
|
|
|
commonResult = 'common.updateSuccess'
|
|
|
|
|
}
|
|
|
|
|
//物料信息保存
|
|
|
|
|
formData.value.matItemDOList.forEach((item) => {
|
|
|
|
|
item.stockId = storageid.value
|
|
|
|
|
item.stockId = formData.value.id
|
|
|
|
|
item.whId = formData.value.whId
|
|
|
|
|
})
|
|
|
|
|
const dataMats = formData.value.matItemDOList as unknown as StorageMatApi.StorageMatVO[]
|
|
|
|
|
await StorageMatApi.createStorageMatBatch(dataMats, storageid.value)
|
|
|
|
|
await StorageMatApi.createStorageMatBatch(dataMats, formData.value.id)
|
|
|
|
|
|
|
|
|
|
if (formData.value.attachments!=undefined && formData.value.attachments.length > 0) {
|
|
|
|
|
if (formData.value.attachments != undefined && formData.value.attachments.length > 0) {
|
|
|
|
|
//附件信息保存
|
|
|
|
|
matUploadData.value.businessId = storageid
|
|
|
|
|
matUploadData.value.businessId = formData.value.id
|
|
|
|
|
matUploadRef.value!.submit()
|
|
|
|
|
}
|
|
|
|
|
formData.value = await StorageApi.getStorage(storageid.value)
|
|
|
|
|
await initStatus(formData.value.status)
|
|
|
|
|
//formData.value = await StorageApi.getStorage(formData.value.id)
|
|
|
|
|
message.success(t(commonResult))
|
|
|
|
|
} finally {
|
|
|
|
|
formLoading.value = false
|
|
|
|
@ -695,9 +504,8 @@ const submitForm = async () => {
|
|
|
|
|
await saveFormData()
|
|
|
|
|
|
|
|
|
|
// 成功后刷新
|
|
|
|
|
query.id = formData.value.id
|
|
|
|
|
query.type = 'update'
|
|
|
|
|
query.id = storageid.value
|
|
|
|
|
formData.value.id = storageid.value
|
|
|
|
|
//页面重新加载
|
|
|
|
|
reload()
|
|
|
|
|
}
|
|
|
|
@ -808,11 +616,46 @@ const handleMatCode = async (scope, matid) => {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const isShowBtnGroup = ref(true)
|
|
|
|
|
const isShowBtnCancel = ref(false)
|
|
|
|
|
const isShowBtnOther = ref(false)
|
|
|
|
|
const isShowBtnDelete = ref(true)
|
|
|
|
|
const btnWhClickable = ref(false)
|
|
|
|
|
// 按钮控制
|
|
|
|
|
const btnView = ref(false)
|
|
|
|
|
const btnSave = ref(false)
|
|
|
|
|
const btnCancel = ref(true)
|
|
|
|
|
const btnDelete = ref(false)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 根据页面动作和数据状态控制按钮输入框信息
|
|
|
|
|
const initStatus = async (status) =>{
|
|
|
|
|
switch(status){
|
|
|
|
|
case 1:
|
|
|
|
|
btnView.value = false
|
|
|
|
|
btnSave.value = false
|
|
|
|
|
btnCancel.value = true
|
|
|
|
|
btnDelete.value = false
|
|
|
|
|
break
|
|
|
|
|
case 2:
|
|
|
|
|
btnView.value = false
|
|
|
|
|
btnSave.value = true
|
|
|
|
|
btnCancel.value = false
|
|
|
|
|
btnDelete.value = true
|
|
|
|
|
break
|
|
|
|
|
case 3:
|
|
|
|
|
btnView.value = true
|
|
|
|
|
btnSave.value = true
|
|
|
|
|
btnCancel.value = true
|
|
|
|
|
btnDelete.value = true
|
|
|
|
|
break
|
|
|
|
|
default:
|
|
|
|
|
break
|
|
|
|
|
}
|
|
|
|
|
// 查看页面时可操作控件禁用
|
|
|
|
|
if(query.type === 'review'){
|
|
|
|
|
btnView.value = true
|
|
|
|
|
btnSave.value = true
|
|
|
|
|
btnCancel.value = true
|
|
|
|
|
btnDelete.value = true
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/** 初始化 **/
|
|
|
|
|
onMounted(async () => {
|
|
|
|
|
// 获得物料列表
|
|
|
|
@ -829,7 +672,6 @@ onMounted(async () => {
|
|
|
|
|
|
|
|
|
|
dialogTitle.value = query.type === 'review' ? '查看' : dialogTitle.value
|
|
|
|
|
|
|
|
|
|
isShow.value = query.type == 'create' ? false : true
|
|
|
|
|
|
|
|
|
|
//-------------------仓库全数据
|
|
|
|
|
const data = await WarehouseApi.getWarehouseSimpList()
|
|
|
|
@ -839,34 +681,7 @@ onMounted(async () => {
|
|
|
|
|
//获取库存信息
|
|
|
|
|
formData.value = await StorageApi.getStorage(query.id)
|
|
|
|
|
|
|
|
|
|
switch (formData.value.status) {
|
|
|
|
|
case 1:
|
|
|
|
|
isShowBtnGroup.value = true
|
|
|
|
|
isShowBtnCancel.value = false
|
|
|
|
|
isShowBtnDelete.value = true
|
|
|
|
|
break
|
|
|
|
|
case 2:
|
|
|
|
|
isShowBtnGroup.value = false
|
|
|
|
|
isShowBtnCancel.value = true
|
|
|
|
|
isShowBtnOther.value = false
|
|
|
|
|
isShowBtnDelete.value = false
|
|
|
|
|
break
|
|
|
|
|
case 3:
|
|
|
|
|
isShowBtnGroup.value = false
|
|
|
|
|
isShowBtnCancel.value = false
|
|
|
|
|
isShowBtnOther.value = false
|
|
|
|
|
isShowBtnDelete.value = false
|
|
|
|
|
break
|
|
|
|
|
default:
|
|
|
|
|
break
|
|
|
|
|
}
|
|
|
|
|
//查看页面不可以编辑
|
|
|
|
|
if (query.type === 'review') {
|
|
|
|
|
isShowBtnGroup.value = false
|
|
|
|
|
isShowBtnCancel.value = false
|
|
|
|
|
isShowBtnOther.value = false
|
|
|
|
|
isShowBtnDelete.value = false
|
|
|
|
|
}
|
|
|
|
|
await initStatus(formData.value.status)
|
|
|
|
|
|
|
|
|
|
//获得库区列表
|
|
|
|
|
const queryParamsRg = reactive({
|
|
|
|
|