|
|
|
@ -25,7 +25,7 @@
|
|
|
|
|
<el-col :span="6">
|
|
|
|
|
<el-form-item label="项目编号" prop="saleOrderIds">
|
|
|
|
|
<el-input disabled v-model="formData.saleOrderCode" placeholder="请输入项目编号" >
|
|
|
|
|
<template #append><el-button @click="openProjectOrderDialog" :icon="Search" /></template>
|
|
|
|
|
<template #append><el-button :disabled="query.active != 'create'" @click="openProjectOrderDialog" :icon="Search" /></template>
|
|
|
|
|
</el-input>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
@ -44,6 +44,7 @@
|
|
|
|
|
<el-col :span="6">
|
|
|
|
|
<el-form-item label="发货日期" prop="deliverDate">
|
|
|
|
|
<el-date-picker
|
|
|
|
|
:disabled="detailDisabled"
|
|
|
|
|
v-model="formData.deliverDate"
|
|
|
|
|
type="date"
|
|
|
|
|
value-format="x"
|
|
|
|
@ -58,7 +59,7 @@
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="6">
|
|
|
|
|
<el-form-item prop="mouldName" label="模具名称">
|
|
|
|
|
<el-input v-model="formData.mouldName" />
|
|
|
|
|
<el-input disabled v-model="formData.mouldName" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="6">
|
|
|
|
@ -71,6 +72,7 @@
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
<el-form-item label="发货备注" prop="remark">
|
|
|
|
|
<el-input
|
|
|
|
|
:disabled="detailDisabled"
|
|
|
|
|
type="textarea"
|
|
|
|
|
v-model="formData.remark"
|
|
|
|
|
show-word-limit
|
|
|
|
@ -87,17 +89,17 @@
|
|
|
|
|
<el-row>
|
|
|
|
|
<el-col :span="6">
|
|
|
|
|
<el-form-item label="发货人姓名" prop="deliverPerson">
|
|
|
|
|
<UserSelect v-model="formData.deliverPerson" @update:newValue="handleSelectedUser" />
|
|
|
|
|
<UserSelect :disabled="detailDisabled" v-model="formData.deliverPerson" @update:newValue="handleSelectedUser" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="6">
|
|
|
|
|
<el-form-item label="发货人电话" prop="deliverPersonMobile">
|
|
|
|
|
<el-input v-model="formData.deliverPersonMobile" />
|
|
|
|
|
<el-input :disabled="detailDisabled" v-model="formData.deliverPersonMobile" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="6">
|
|
|
|
|
<el-form-item label="发货方式" prop="deliverMode">
|
|
|
|
|
<el-select v-model="formData.deliverMode" placeholder="请选择发货方式">
|
|
|
|
|
<el-select :disabled="detailDisabled" v-model="formData.deliverMode" placeholder="请选择发货方式">
|
|
|
|
|
<el-option
|
|
|
|
|
v-for="dict in getStrDictOptions(DICT_TYPE.HELI_DELIVER_MODE)"
|
|
|
|
|
:key="dict.value"
|
|
|
|
@ -109,33 +111,62 @@
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="6">
|
|
|
|
|
<el-form-item label="发货单位" prop="deliverCompany">
|
|
|
|
|
<el-input value="杭州合立机械有限公司" disabled />
|
|
|
|
|
<el-input v-model="formData.deliverCompany" disabled />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
</el-card>
|
|
|
|
|
<el-card class="hl-card-info">
|
|
|
|
|
|
|
|
|
|
<el-card class="hl-card-info" v-if="formType != 'create'">
|
|
|
|
|
<template #header>
|
|
|
|
|
<div class="hl-card-info-icona"></div><span class="hl-card-info-text">收货信息</span>
|
|
|
|
|
</template>
|
|
|
|
|
<el-row>
|
|
|
|
|
<el-col :span="6">
|
|
|
|
|
<el-form-item label="收货人姓名" prop="receivePersonName">
|
|
|
|
|
<el-input v-model="formData.receivePersonName" />
|
|
|
|
|
<el-select :disabled="detailDisabled" v-model="formData.receivePersonName"
|
|
|
|
|
filterable
|
|
|
|
|
allow-create
|
|
|
|
|
clearable
|
|
|
|
|
@change="receiveOnChange"
|
|
|
|
|
@blur="e => { if(e.target.value) formData.receivePersonName = e.target.value;}"
|
|
|
|
|
>
|
|
|
|
|
<el-option
|
|
|
|
|
v-for="dict in receivePersonOptions"
|
|
|
|
|
:key="dict.name"
|
|
|
|
|
:label="dict.name"
|
|
|
|
|
:value="dict.name"
|
|
|
|
|
/>
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="6">
|
|
|
|
|
<el-form-item label="收货人电话" prop="receivePersonMobile">
|
|
|
|
|
<el-input v-model="formData.receivePersonMobile" />
|
|
|
|
|
<el-input :disabled="detailDisabled" v-model="formData.receivePersonMobile" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
<el-form-item label="收货详细地址" prop="receiveAddress">
|
|
|
|
|
<el-input v-model="formData.receiveAddress" />
|
|
|
|
|
<el-select v-model="formData.receiveAddress"
|
|
|
|
|
filterable
|
|
|
|
|
allow-create
|
|
|
|
|
:disabled="detailDisabled"
|
|
|
|
|
@blur="e => { if(e.target.value) formData.receiveAddress = e.target.value;}"
|
|
|
|
|
clearable
|
|
|
|
|
style="width: 100%"
|
|
|
|
|
>
|
|
|
|
|
<el-option
|
|
|
|
|
v-for="dict in receivePersonAddressOptions"
|
|
|
|
|
:key="dict.address"
|
|
|
|
|
:label="dict.address"
|
|
|
|
|
:value="dict.address"
|
|
|
|
|
/>
|
|
|
|
|
</el-select>
|
|
|
|
|
</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>
|
|
|
|
@ -143,34 +174,35 @@
|
|
|
|
|
<el-row>
|
|
|
|
|
<el-col :span="6">
|
|
|
|
|
<el-form-item label="司机姓名" prop="transportDriverName">
|
|
|
|
|
<el-input v-model="formData.transportDriverName" />
|
|
|
|
|
<el-input :disabled="detailDisabled" v-model="formData.transportDriverName" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="6">
|
|
|
|
|
<el-form-item label="司机电话" prop="transportDriverMobile">
|
|
|
|
|
<el-input v-model="formData.transportDriverMobile" />
|
|
|
|
|
<el-input :disabled="detailDisabled" v-model="formData.transportDriverMobile" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="6">
|
|
|
|
|
<el-form-item label="车牌号" prop="transportBusNumber">
|
|
|
|
|
<el-input v-model="formData.transportBusNumber" />
|
|
|
|
|
<el-input :disabled="detailDisabled" v-model="formData.transportBusNumber" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
<el-row>
|
|
|
|
|
<el-col :span="6">
|
|
|
|
|
<el-form-item label="重量(T)" prop="transportWeight">
|
|
|
|
|
<el-input v-model="formData.transportWeight" />
|
|
|
|
|
<el-input :disabled="detailDisabled" v-model="formData.transportWeight" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="6">
|
|
|
|
|
<el-form-item label="位置(米)" prop="transportSize">
|
|
|
|
|
<el-input v-model="formData.transportSize" />
|
|
|
|
|
<el-input :disabled="detailDisabled" v-model="formData.transportSize" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
</el-card>
|
|
|
|
|
<el-card class="hl-card-info">
|
|
|
|
|
|
|
|
|
|
<el-card class="hl-card-info" v-if="formType != 'create'">
|
|
|
|
|
<template #header>
|
|
|
|
|
<div class="hl-card-info-icona"></div><span class="hl-card-info-text">发货清单</span>
|
|
|
|
|
</template>
|
|
|
|
@ -195,10 +227,15 @@
|
|
|
|
|
{{scope.row.name}}
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="项目编号" min-width="220" align="center">
|
|
|
|
|
<template #default="scope">
|
|
|
|
|
{{scope.row.saleOrderCode}}
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="子项目图号" min-width="150">
|
|
|
|
|
<template #default="{ row, $index }">
|
|
|
|
|
<el-form-item :prop="`${$index}.blueprintNo`" :rules="subFormRules.blueprintNo" class="mb-0px!">
|
|
|
|
|
<el-input v-model="row.blueprintNo" placeholder="请输入子项目图号" />
|
|
|
|
|
<el-input :disabled="detailDisabled" v-model="row.blueprintNo" placeholder="请输入子项目图号" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
@ -206,11 +243,18 @@
|
|
|
|
|
<template #header> <span class="hl-table_header">*</span>本次发货数量 </template>
|
|
|
|
|
<template #default="{ row, $index }">
|
|
|
|
|
<el-form-item :prop="`${$index}.amount`" :rules="subFormRules.amount" class="mb-0px!">
|
|
|
|
|
<el-input v-model="row.amount" placeholder="请输入本次发货数量" />
|
|
|
|
|
<el-input-number
|
|
|
|
|
:disabled="detailDisabled"
|
|
|
|
|
v-model="row.amount"
|
|
|
|
|
placeholder="请输入本次发货数量"
|
|
|
|
|
style="width: 100%"
|
|
|
|
|
:min="1"
|
|
|
|
|
:precision="0"
|
|
|
|
|
/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="单位" min-width="150">
|
|
|
|
|
<el-table-column label="单位" width="80">
|
|
|
|
|
<template #default="{ row, $index }">
|
|
|
|
|
<el-form-item :prop="`${$index}.unit`" :rules="subFormRules.unit" class="mb-0px!">
|
|
|
|
|
{{getDictLabel(DICT_TYPE.HELI_MATERIAL_UNIT, row.unit)}}
|
|
|
|
@ -220,27 +264,28 @@
|
|
|
|
|
<el-table-column label="重量(T)" min-width="150">
|
|
|
|
|
<template #default="{ row, $index }">
|
|
|
|
|
<el-form-item :prop="`${$index}.weight`" class="mb-0px!">
|
|
|
|
|
<el-input v-model="row.weight" placeholder="请输入重量(T)" />
|
|
|
|
|
<el-input :disabled="detailDisabled" v-model="row.weight" placeholder="请输入重量(T)" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="尺寸(米)" min-width="150">
|
|
|
|
|
<template #default="{ row, $index }">
|
|
|
|
|
<el-form-item :prop="`${$index}.size`" class="mb-0px!">
|
|
|
|
|
<el-input v-model="row.size" placeholder="请输入尺寸(米)" />
|
|
|
|
|
<el-input :disabled="detailDisabled" v-model="row.size" placeholder="请输入尺寸(米)" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="备注" min-width="150">
|
|
|
|
|
<el-table-column label="备注" min-width="180">
|
|
|
|
|
<template #default="{ row, $index }">
|
|
|
|
|
<el-form-item :prop="`${$index}.remark`" class="mb-0px!">
|
|
|
|
|
<el-input v-model="row.remark" placeholder="请输入备注" />
|
|
|
|
|
<el-input :disabled="detailDisabled" v-model="row.remark" placeholder="请输入备注" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="操作" align="center" width="240">
|
|
|
|
|
<el-table-column label="操作" align="center" width="100">
|
|
|
|
|
<template #default="scope">
|
|
|
|
|
<el-button
|
|
|
|
|
v-if="'update,create'.indexOf(query.active) > -1"
|
|
|
|
|
link
|
|
|
|
|
type="danger"
|
|
|
|
|
size="small"
|
|
|
|
@ -257,12 +302,12 @@
|
|
|
|
|
</el-row>
|
|
|
|
|
</el-card>
|
|
|
|
|
|
|
|
|
|
<el-card class="hl-card-info">
|
|
|
|
|
<el-card class="hl-card-info" v-if="formType != 'create'">
|
|
|
|
|
<template #header>
|
|
|
|
|
<div class="hl-card-info-icona"></div><span class="hl-card-info-text">其他物料清单</span>
|
|
|
|
|
</template>
|
|
|
|
|
<el-row>
|
|
|
|
|
<el-col>
|
|
|
|
|
<el-col v-if="formType != 'detail'">
|
|
|
|
|
<el-button class="hl-addbutton" type="primary" size="large" @click="onAddItem2"
|
|
|
|
|
>新增</el-button
|
|
|
|
|
>
|
|
|
|
@ -283,14 +328,16 @@
|
|
|
|
|
<el-table-column label="序号" type="index" width="100" />
|
|
|
|
|
<el-table-column min-width="150" align="center">
|
|
|
|
|
<template #header> <span class="hl-table_header">*</span>名称 </template>
|
|
|
|
|
<template #default="scope">
|
|
|
|
|
{{scope.row.name}}
|
|
|
|
|
<template #default="{ row, $index }">
|
|
|
|
|
<el-form-item :prop="`${$index}.name`" :rules="subFormRules.name" class="mb-0px!">
|
|
|
|
|
<el-input :disabled="detailDisabled" v-model="row.name" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="所属类型" min-width="150">
|
|
|
|
|
<template #default="{ row, $index }">
|
|
|
|
|
<el-form-item :prop="`${$index}.subType`" :rules="subFormRules.subType" class="mb-0px!">
|
|
|
|
|
<el-select v-model="row.subType" placeholder="请选择子项类型">
|
|
|
|
|
<el-select :disabled="detailDisabled" v-model="row.subType" placeholder="请选择子项类型">
|
|
|
|
|
<el-option
|
|
|
|
|
v-for="dict in getStrDictOptions(DICT_TYPE.HELI_DELIVER_MATERIAL_TYPE)"
|
|
|
|
|
:key="dict.value"
|
|
|
|
@ -305,14 +352,21 @@
|
|
|
|
|
<template #header> <span class="hl-table_header">*</span>本次发货数量 </template>
|
|
|
|
|
<template #default="{ row, $index }">
|
|
|
|
|
<el-form-item :prop="`${$index}.amount`" :rules="subFormRules.amount" class="mb-0px!">
|
|
|
|
|
<el-input v-model="row.amount" placeholder="请输入本次发货数量" />
|
|
|
|
|
<el-input-number
|
|
|
|
|
:disabled="detailDisabled"
|
|
|
|
|
v-model="row.amount"
|
|
|
|
|
placeholder="请输入本次发货数量"
|
|
|
|
|
style="width: 100%"
|
|
|
|
|
:min="1"
|
|
|
|
|
:precision="0"
|
|
|
|
|
/>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="单位" min-width="150">
|
|
|
|
|
<template #default="{ row, $index }">
|
|
|
|
|
<el-form-item :prop="`${$index}.unit`" :rules="subFormRules.unit" class="mb-0px!">
|
|
|
|
|
<el-select v-model="row.unit" placeholder="请选择单位">
|
|
|
|
|
<el-select :disabled="detailDisabled" v-model="row.unit" placeholder="请选择单位">
|
|
|
|
|
<el-option
|
|
|
|
|
v-for="dict in getStrDictOptions(DICT_TYPE.HELI_MATERIAL_UNIT)"
|
|
|
|
|
:key="dict.value"
|
|
|
|
@ -326,13 +380,14 @@
|
|
|
|
|
<el-table-column label="备注" min-width="150">
|
|
|
|
|
<template #default="{ row, $index }">
|
|
|
|
|
<el-form-item :prop="`${$index}.remark`" class="mb-0px!">
|
|
|
|
|
<el-input v-model="row.remark" placeholder="请输入备注" />
|
|
|
|
|
<el-input :disabled="detailDisabled" v-model="row.remark" placeholder="请输入备注" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="操作" align="center" width="240">
|
|
|
|
|
<template #default="scope">
|
|
|
|
|
<el-button
|
|
|
|
|
v-if="'update,create'.indexOf(query.active) > -1"
|
|
|
|
|
link
|
|
|
|
|
type="danger"
|
|
|
|
|
size="small"
|
|
|
|
@ -349,12 +404,12 @@
|
|
|
|
|
</el-row>
|
|
|
|
|
</el-card>
|
|
|
|
|
|
|
|
|
|
<el-card class="hl-card-info">
|
|
|
|
|
<el-card class="hl-card-info" v-if="formType != 'create'">
|
|
|
|
|
<template #header>
|
|
|
|
|
<div class="hl-card-info-icona"></div><span class="hl-card-info-text">附件信息</span>
|
|
|
|
|
</template>
|
|
|
|
|
<el-row>
|
|
|
|
|
<el-col>
|
|
|
|
|
<el-col v-if="formType != 'detail'">
|
|
|
|
|
<el-upload
|
|
|
|
|
ref="attachmentUploadRef"
|
|
|
|
|
multiple
|
|
|
|
@ -384,6 +439,7 @@
|
|
|
|
|
<el-table-column label="操作" align="center">
|
|
|
|
|
<template #default="scope">
|
|
|
|
|
<el-button
|
|
|
|
|
v-if="'update,create'.indexOf(query.active) > -1"
|
|
|
|
|
link
|
|
|
|
|
type="danger"
|
|
|
|
|
size="small"
|
|
|
|
@ -407,13 +463,39 @@
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
</el-card>
|
|
|
|
|
|
|
|
|
|
<el-card class="hl-card-info" v-if="query.active != 'create'">
|
|
|
|
|
<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-table :data="formData.operateLogs" class="hl-table">
|
|
|
|
|
<el-table-column prop="type" label="操作" align="center">
|
|
|
|
|
<template #default="scope">
|
|
|
|
|
{{ getDictLabel(DICT_TYPE.SYSTEM_OPERATE_TYPE, scope.row.type) }}
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column prop="userNickname" label="操作人" align="center" />
|
|
|
|
|
<el-table-column
|
|
|
|
|
label="操作时间"
|
|
|
|
|
align="center"
|
|
|
|
|
prop="startTime"
|
|
|
|
|
:formatter="dateFormatter"
|
|
|
|
|
/>
|
|
|
|
|
</el-table>
|
|
|
|
|
</el-card>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
</el-card>
|
|
|
|
|
</el-form>
|
|
|
|
|
<div class="text-center hl-footer">
|
|
|
|
|
<el-button @click="goback" size="large">取 消</el-button>
|
|
|
|
|
<el-button @click="submitForm('SAVE')" type="success" :disabled="formLoading" size="large"
|
|
|
|
|
<el-button v-if="formType != 'detail' && formData.deliverStatus == 1" @click="submitForm('SAVE')" type="success" :disabled="formLoading" size="large"
|
|
|
|
|
>保 存</el-button
|
|
|
|
|
>
|
|
|
|
|
<el-button @click="submitForm('DELIVER')" type="primary" :disabled="formLoading" size="large"
|
|
|
|
|
<el-button v-if="formType != 'detail' && formData.deliverStatus == 1 && formData.id" @click="submitForm('DELIVER')" type="primary" :disabled="formLoading" size="large"
|
|
|
|
|
>发 货</el-button
|
|
|
|
|
>
|
|
|
|
|
</div>
|
|
|
|
@ -435,7 +517,8 @@ import {getAccessToken, getTenantId} from "@/utils/auth";
|
|
|
|
|
import {dateFormatter} from "@/utils/formatTime";
|
|
|
|
|
import download from "@/utils/download";
|
|
|
|
|
import { inject } from 'vue'
|
|
|
|
|
import {ProjectOrderVO} from "@/api/heli/projectorder";
|
|
|
|
|
import {getProjectOrderSubListByProjectOrderId, ProjectOrderVO} from "@/api/heli/projectorder";
|
|
|
|
|
import {getCustomer} from "@/api/heli/customer";
|
|
|
|
|
const reload = inject('reload')
|
|
|
|
|
|
|
|
|
|
const { t } = useI18n() // 国际化
|
|
|
|
@ -469,16 +552,15 @@ const formData = ref({
|
|
|
|
|
transportWeight: undefined,
|
|
|
|
|
transportSize: undefined,
|
|
|
|
|
remark: undefined,
|
|
|
|
|
status: undefined,
|
|
|
|
|
status: 1,
|
|
|
|
|
receivePersonName: undefined,
|
|
|
|
|
receiveAddress: undefined,
|
|
|
|
|
deliverOrderSubs: [],
|
|
|
|
|
deliverOrderOtherSubs: [],
|
|
|
|
|
attachments: [],
|
|
|
|
|
operateLogs: [],
|
|
|
|
|
idcard1: undefined,
|
|
|
|
|
idcard2: undefined,
|
|
|
|
|
active: undefined,
|
|
|
|
|
deliverCompany: '杭州合立机械有限公司'
|
|
|
|
|
})
|
|
|
|
|
const formRules = reactive({
|
|
|
|
|
saleOrderIds: [{ required: true, message: '项目编号不能为空', trigger: 'blur' }],
|
|
|
|
@ -512,16 +594,26 @@ const submitForm = async (active) => {
|
|
|
|
|
formData.value.active = active
|
|
|
|
|
await formRef.value.validate()
|
|
|
|
|
// 校验子表单
|
|
|
|
|
try {
|
|
|
|
|
if(formType.value != 'create'){
|
|
|
|
|
await subFormRef.value.validate()
|
|
|
|
|
await otherSubFormRef.value.validate()
|
|
|
|
|
} catch (e) {
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
// 提交请求
|
|
|
|
|
formLoading.value = true
|
|
|
|
|
try {
|
|
|
|
|
// 设置类型
|
|
|
|
|
formData.value.deliverOrderSubs?.forEach(item => {
|
|
|
|
|
item.category = 'DELIVER_LIST'
|
|
|
|
|
item.status = 1
|
|
|
|
|
})
|
|
|
|
|
formData.value.deliverOrderOtherSubs?.forEach(item => {
|
|
|
|
|
item.category = 'OTHER_LIST'
|
|
|
|
|
item.status = 1
|
|
|
|
|
})
|
|
|
|
|
const data = formData.value as unknown as DeliverOrderApi.DeliverOrderVO
|
|
|
|
|
if(formData.value.deliverOrderOtherSubs){
|
|
|
|
|
data.deliverOrderSubs = data.deliverOrderSubs.concat(formData.value.deliverOrderOtherSubs)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const orderId = await DeliverOrderApi.operateDeliverOrder(data)
|
|
|
|
|
message.success(t('common.operationSuccess'))
|
|
|
|
@ -530,15 +622,6 @@ const submitForm = async (active) => {
|
|
|
|
|
uploadData.value.businessId = orderId
|
|
|
|
|
attachmentUploadRef.value!.submit()
|
|
|
|
|
}
|
|
|
|
|
// 如身份证照片不为空 更新信息
|
|
|
|
|
if(formData.value.idcard1){
|
|
|
|
|
let fileParams = {
|
|
|
|
|
pageNo: 1,
|
|
|
|
|
pageSize: 1,
|
|
|
|
|
url: formData.value.idcard1
|
|
|
|
|
}
|
|
|
|
|
const idcard1FileRet = await getFilePage(fileParams);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 如非保存 返回列表页
|
|
|
|
|
if (active != 'SAVE') {
|
|
|
|
@ -554,7 +637,6 @@ const submitForm = async (active) => {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
const goback = () => {
|
|
|
|
|
resetForm()
|
|
|
|
|
router.back()
|
|
|
|
|
}
|
|
|
|
|
/** 重置表单 */
|
|
|
|
@ -581,16 +663,15 @@ const resetForm = () => {
|
|
|
|
|
transportWeight: undefined,
|
|
|
|
|
transportSize: undefined,
|
|
|
|
|
remark: undefined,
|
|
|
|
|
status: undefined,
|
|
|
|
|
status: 1,
|
|
|
|
|
receivePersonName: undefined,
|
|
|
|
|
receiveAddress: undefined,
|
|
|
|
|
deliverOrderSubs: [],
|
|
|
|
|
deliverOrderOtherSubs: [],
|
|
|
|
|
attachments: [],
|
|
|
|
|
operateLogs: [],
|
|
|
|
|
idcard1: undefined,
|
|
|
|
|
idcard2: undefined,
|
|
|
|
|
active: undefined,
|
|
|
|
|
deliverCompany: '杭州合立机械有限公司'
|
|
|
|
|
}
|
|
|
|
|
formRef.value?.resetFields()
|
|
|
|
|
}
|
|
|
|
@ -616,21 +697,15 @@ const onAddItem2 = () => {
|
|
|
|
|
|
|
|
|
|
//接收职工传递的数据
|
|
|
|
|
const handleSelectedUser = (newValue: any) => {
|
|
|
|
|
formData.value.deliverPerson = newValue.id
|
|
|
|
|
formData.value.deliverPerson = newValue?.id
|
|
|
|
|
formData.value.deliverPersonMobile = newValue?.mobile
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const attachmentUploadRef = ref()
|
|
|
|
|
const attachmentUploadFiles = ref<UploadUserFile[]>([])
|
|
|
|
|
|
|
|
|
|
const idcardBusinessFileType = ref('ID_CARD')
|
|
|
|
|
|
|
|
|
|
const businessType = ref('DELIVER_ORDER')
|
|
|
|
|
const uploadUrl = ref(import.meta.env.VITE_UPLOAD_BATCH_URL)
|
|
|
|
|
const idCardUploadData = ref({
|
|
|
|
|
businessType: businessType.value,
|
|
|
|
|
businessId: formData.value.id,
|
|
|
|
|
businessFileType: idcardBusinessFileType.value
|
|
|
|
|
})
|
|
|
|
|
const uploadData = ref({
|
|
|
|
|
businessType: businessType.value,
|
|
|
|
|
businessId: formData.value.id
|
|
|
|
@ -659,6 +734,10 @@ const attachmentUploadChange = (file, files) => {
|
|
|
|
|
|
|
|
|
|
/** 删除子项操作 */
|
|
|
|
|
const onDeleteItem = (index) => {
|
|
|
|
|
if(formData.value.deliverOrderSubs.length == 1){
|
|
|
|
|
message.warning('发货清单至少存在一条数据')
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
formData.value.deliverOrderSubs.splice(index, 1)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -698,9 +777,27 @@ const queryData = async (type: string, id?: number) => {
|
|
|
|
|
try {
|
|
|
|
|
if (id) {
|
|
|
|
|
formData.value = await DeliverOrderApi.getDeliverOrder(id)
|
|
|
|
|
formData.value.deliverCompany = '杭州合立机械有限公司'
|
|
|
|
|
// 子项列表
|
|
|
|
|
formData.value.deliverOrderSubs =
|
|
|
|
|
await DeliverOrderApi.getDeliverOrderSubListByDeliveryOrderId(id)
|
|
|
|
|
const subArr = await DeliverOrderApi.getDeliverOrderSubListByDeliveryOrderId(id)
|
|
|
|
|
// 如未保存过 即子项为空 从关联项目带出
|
|
|
|
|
if(!subArr || subArr.length == 0){
|
|
|
|
|
formData.value.deliverOrderSubs = [];
|
|
|
|
|
let saleOrderIdArr = formData.value.saleOrderIds.split(",");
|
|
|
|
|
for (let i = 0; i < saleOrderIdArr.length; i++) {
|
|
|
|
|
formData.value.deliverOrderSubs = formData.value.deliverOrderSubs.concat(await getProjectOrderSubListByProjectOrderId(saleOrderIdArr[i]));
|
|
|
|
|
formData.value.deliverOrderSubs.forEach(sub => {
|
|
|
|
|
sub.remark = ''
|
|
|
|
|
sub.saleOrderSubId = sub.id
|
|
|
|
|
sub.id = ''
|
|
|
|
|
sub.saleOrderCode = sub.projectOrderCode
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}else{
|
|
|
|
|
// 分类发货清单与其他物料清单
|
|
|
|
|
formData.value.deliverOrderSubs = subArr.filter(sub => sub.category == 'DELIVER_LIST');
|
|
|
|
|
formData.value.deliverOrderOtherSubs = subArr.filter(sub => sub.category == 'OTHER_LIST');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 操作日志
|
|
|
|
|
let logParams = {
|
|
|
|
@ -718,16 +815,38 @@ const queryData = async (type: string, id?: number) => {
|
|
|
|
|
businessId: id,
|
|
|
|
|
businessType: businessType.value
|
|
|
|
|
}
|
|
|
|
|
const fileList = (await getFilePage(attParams)).list
|
|
|
|
|
// 分类赋值 区分身份证照片与附件
|
|
|
|
|
if(fileList && fileList.length > 0){
|
|
|
|
|
const idcardFiles = fileList.filter((file) => file.businessFileType == idcardBusinessFileType.value);
|
|
|
|
|
if(idcardFiles && idcardFiles.length > 0){
|
|
|
|
|
formData.value.idcard1 = idcardFiles[0].url;
|
|
|
|
|
formData.value.idcard2 = idcardFiles.length > 1 ? idcardFiles[1].url : undefined;
|
|
|
|
|
formData.value.attachments = (await getFilePage(attParams)).list
|
|
|
|
|
|
|
|
|
|
// 收货人信息
|
|
|
|
|
const customer = await getCustomer(formData.value.customerId)
|
|
|
|
|
if(customer.contact1Name){
|
|
|
|
|
receivePersonOptions.value.push({
|
|
|
|
|
"name": customer.contact1Name,
|
|
|
|
|
"mobile": customer.contact1Method
|
|
|
|
|
})
|
|
|
|
|
receivePersonAddressOptions.value.push({
|
|
|
|
|
"address": customer.contact1Addr
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
if(customer.contact2Name){
|
|
|
|
|
receivePersonOptions.value.push({
|
|
|
|
|
"name": customer.contact2Name,
|
|
|
|
|
"mobile": customer.contact2Method
|
|
|
|
|
})
|
|
|
|
|
receivePersonAddressOptions.value.push({
|
|
|
|
|
"address": customer.contact2Addr
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
formData.value.attachments = fileList.filter((file) => file.businessFileType != idcardBusinessFileType.value);
|
|
|
|
|
if(customer.contact3Name){
|
|
|
|
|
receivePersonOptions.value.push({
|
|
|
|
|
"name": customer.contact3Name,
|
|
|
|
|
"mobile": customer.contact3Method
|
|
|
|
|
})
|
|
|
|
|
receivePersonAddressOptions.value.push({
|
|
|
|
|
"address": customer.contact3Addr
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
} finally {
|
|
|
|
|
formLoading.value = false
|
|
|
|
@ -739,11 +858,47 @@ const openProjectOrderDialog = () => {
|
|
|
|
|
projectOrderDialog.value.open()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const handleSelectedProjectOrder = (val: ProjectOrderVO[]) => {
|
|
|
|
|
console.log(val)
|
|
|
|
|
const handleSelectedProjectOrder = (arr: ProjectOrderVO[]) => {
|
|
|
|
|
if(arr && arr.length > 0){
|
|
|
|
|
let saleOrderIds = "";
|
|
|
|
|
let saleOrderCode = "";
|
|
|
|
|
let contractNo = "";
|
|
|
|
|
let property = "";
|
|
|
|
|
let mouldName = "";
|
|
|
|
|
for (let i = 0; i < arr.length; i++) {
|
|
|
|
|
let order = arr[i];
|
|
|
|
|
saleOrderIds += order.id + ",";
|
|
|
|
|
saleOrderCode += order.code + ",";
|
|
|
|
|
contractNo += order.contractNo + ",";
|
|
|
|
|
property += getDictLabel(DICT_TYPE.HELI_PROJECT_PROPERTY, order.property) + ",";
|
|
|
|
|
mouldName += order.mouldName + ",";
|
|
|
|
|
}
|
|
|
|
|
formData.value.saleOrderIds = saleOrderIds.substring(0, saleOrderIds.length-1);
|
|
|
|
|
formData.value.saleOrderCode = saleOrderCode.substring(0, saleOrderCode.length-1);
|
|
|
|
|
formData.value.contractNo = contractNo.substring(0, contractNo.length-1);
|
|
|
|
|
formData.value.property = property.substring(0, property.length-1);
|
|
|
|
|
formData.value.mouldName = mouldName.substring(0, mouldName.length-1);
|
|
|
|
|
formData.value.customerId = arr[0].customerId;
|
|
|
|
|
formData.value.customerName = arr[0].customerName;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 收货人信息
|
|
|
|
|
const receivePersonOptions = ref([])
|
|
|
|
|
// 详细地址
|
|
|
|
|
const receivePersonAddressOptions = ref([])
|
|
|
|
|
|
|
|
|
|
const receiveOnChange = (val) => {
|
|
|
|
|
let matchedPerson = receivePersonOptions.value.find(p => p.name == val);
|
|
|
|
|
if(matchedPerson){
|
|
|
|
|
formData.value.receivePersonMobile = matchedPerson.mobile
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
const detailDisabled = ref(false)
|
|
|
|
|
onMounted(() => {
|
|
|
|
|
if('detail' == query.active){
|
|
|
|
|
detailDisabled.value = true
|
|
|
|
|
}
|
|
|
|
|
queryData(query.active, query.id)
|
|
|
|
|
})
|
|
|
|
|
</script>
|
|
|
|
|