【需求开发】发货管理 完成项目弹窗功能

pull/2/head
zengchenxi 9 months ago
parent 95c5b1eacd
commit a350f19ecc

@ -33,6 +33,7 @@ public interface ProjectOrderMapper extends BaseMapperX<ProjectOrderDO> {
.like(!StringUtils.isEmpty(reqVO.getCustomerName()), "e.name", reqVO.getCustomerName())
.like(!StringUtils.isEmpty(reqVO.getBusinessManName()), "u.nickname", reqVO.getBusinessManName())
.like(!StringUtils.isEmpty(reqVO.getMouldName()), ProjectOrderDO::getMouldName, reqVO.getMouldName())
.like(!StringUtils.isEmpty(reqVO.getContractNo()), ProjectOrderDO::getContractNo, reqVO.getContractNo())
.eq(reqVO.getHasPrice() != null, ProjectOrderDO::getHasPrice, reqVO.getHasPrice())
.eq(reqVO.getOrderStatus() != null, ProjectOrderDO::getOrderStatus, reqVO.getOrderStatus())
.eq(reqVO.getDeliveryStatus() != null, ProjectOrderDO::getDeliveryStatus, reqVO.getDeliveryStatus())

@ -1,227 +0,0 @@
<template>
<Dialog :title="dialogTitle" v-model="dialogVisible">
<el-form
ref="formRef"
:model="formData"
:rules="formRules"
label-width="100px"
v-loading="formLoading"
>
<el-form-item label="编号,唯一" prop="code">
<el-input v-model="formData.code" placeholder="请输入编号,唯一" />
</el-form-item>
<el-form-item label="销售订单id列表 多个用英文逗号分割" prop="saleOrderIds">
<el-input v-model="formData.saleOrderIds" placeholder="请输入销售订单id列表 多个用英文逗号分割" />
</el-form-item>
<el-form-item label="客户id" prop="customerId">
<el-input v-model="formData.customerId" placeholder="请输入客户id" />
</el-form-item>
<el-form-item label="发货日期" prop="deliverDate">
<el-date-picker
v-model="formData.deliverDate"
type="date"
value-format="x"
placeholder="选择发货日期"
/>
</el-form-item>
<el-form-item label="发货单状态 已保存/已发货" prop="deliverStatus">
<el-select v-model="formData.deliverStatus" placeholder="请选择发货单状态 已保存/已发货">
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.HELI_DELIVER_ORDER_STATUS)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="发货人" prop="deliverPerson">
<el-input v-model="formData.deliverPerson" placeholder="请输入发货人" />
</el-form-item>
<el-form-item label="发货人电话" prop="deliverPersonMobile">
<el-input v-model="formData.deliverPersonMobile" placeholder="请输入发货人电话" />
</el-form-item>
<el-form-item label="发货方式" prop="deliverMode">
<el-select v-model="formData.deliverMode" placeholder="请选择发货方式">
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.HELI_DELIVER_MODE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="收货人电话" prop="receivePersonMobile">
<el-input v-model="formData.receivePersonMobile" placeholder="请输入收货人电话" />
</el-form-item>
<el-form-item label="司机姓名" prop="transportDriverName">
<el-input v-model="formData.transportDriverName" placeholder="请输入司机姓名" />
</el-form-item>
<el-form-item label="司机电话" prop="transportDriverMobile">
<el-input v-model="formData.transportDriverMobile" placeholder="请输入司机电话" />
</el-form-item>
<el-form-item label="车牌号" prop="transportBusNumber">
<el-input v-model="formData.transportBusNumber" placeholder="请输入车牌号" />
</el-form-item>
<el-form-item label="重量(T)" prop="transportWeight">
<el-input v-model="formData.transportWeight" placeholder="请输入重量(T)" />
</el-form-item>
<el-form-item label="位置(米)" prop="transportSize">
<el-input v-model="formData.transportSize" placeholder="请输入位置(米)" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" placeholder="请输入备注" />
</el-form-item>
<el-form-item label="状态,1表示正常2表示禁用" prop="status">
<el-radio-group v-model="formData.status">
<el-radio label="1">请选择字典生成</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="收货人姓名" prop="receivePersonName">
<el-input v-model="formData.receivePersonName" placeholder="请输入收货人姓名" />
</el-form-item>
<el-form-item label="收货详细地址" prop="receiveAddress">
<el-input v-model="formData.receiveAddress" placeholder="请输入收货详细地址" />
</el-form-item>
</el-form>
<!-- 子表的表单 -->
<el-tabs v-model="subTabsName">
<el-tab-pane label="发货订单子项" name="deliverOrderSub">
<DeliverOrderSubForm ref="deliverOrderSubFormRef" :delivery-order-id="formData.id" />
</el-tab-pane>
</el-tabs>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
</template>
</Dialog>
</template>
<script setup lang="ts">
import {getStrDictOptions, DICT_TYPE, getIntDictOptions} from '@/utils/dict'
import * as DeliverOrderApi from '@/api/heli/deliverorder'
import DeliverOrderSubForm from './components/DeliverOrderSubForm.vue'
const { t } = useI18n() //
const message = useMessage() //
const dialogVisible = ref(false) //
const dialogTitle = ref('') //
const formLoading = ref(false) // 12
const formType = ref('') // create - update -
const formData = ref({
id: undefined,
code: undefined,
saleOrderIds: undefined,
customerId: undefined,
deliverDate: undefined,
deliverStatus: undefined,
deliverPerson: undefined,
deliverPersonMobile: undefined,
deliverMode: undefined,
receivePersonMobile: undefined,
transportDriverName: undefined,
transportDriverMobile: undefined,
transportBusNumber: undefined,
transportWeight: undefined,
transportSize: undefined,
remark: undefined,
status: undefined,
receivePersonName: undefined,
receiveAddress: undefined,
})
const formRules = reactive({
code: [{ required: true, message: '编号,唯一不能为空', trigger: 'blur' }],
saleOrderIds: [{ required: true, message: '销售订单id列表 多个用英文逗号分割不能为空', trigger: 'blur' }],
customerId: [{ required: true, message: '客户id不能为空', trigger: 'blur' }],
deliverDate: [{ required: true, message: '发货日期不能为空', trigger: 'blur' }],
deliverStatus: [{ required: true, message: '发货单状态 已保存/已发货不能为空', trigger: 'change' }],
deliverPerson: [{ required: true, message: '发货人不能为空', trigger: 'blur' }],
deliverPersonMobile: [{ required: true, message: '发货人电话不能为空', trigger: 'blur' }],
deliverMode: [{ required: true, message: '发货方式不能为空', trigger: 'change' }],
receivePersonMobile: [{ required: true, message: '收货人电话不能为空', trigger: 'blur' }],
status: [{ required: true, message: '状态,1表示正常2表示禁用不能为空', trigger: 'blur' }],
receivePersonName: [{ required: true, message: '收货人姓名不能为空', trigger: 'blur' }],
receiveAddress: [{ required: true, message: '收货详细地址不能为空', trigger: 'blur' }],
})
const formRef = ref() // Ref
/** 子表的表单 */
const subTabsName = ref('deliverOrderSub')
const deliverOrderSubFormRef = ref()
/** 打开弹窗 */
const open = async (type: string, id?: number) => {
dialogVisible.value = true
dialogTitle.value = t('action.' + type)
formType.value = type
resetForm()
//
if (id) {
formLoading.value = true
try {
formData.value = await DeliverOrderApi.getDeliverOrder(id)
} finally {
formLoading.value = false
}
}
}
defineExpose({ open }) // open
/** 提交表单 */
const emit = defineEmits(['success']) // success
const submitForm = async () => {
//
await formRef.value.validate()
//
try {
await deliverOrderSubFormRef.value.validate()
} catch (e) {
subTabsName.value = 'deliverOrderSub'
return
}
//
formLoading.value = true
try {
const data = formData.value as unknown as DeliverOrderApi.DeliverOrderVO
//
data.deliverOrderSubs = deliverOrderSubFormRef.value.getData()
if (formType.value === 'create') {
await DeliverOrderApi.createDeliverOrder(data)
message.success(t('common.createSuccess'))
} else {
await DeliverOrderApi.updateDeliverOrder(data)
message.success(t('common.updateSuccess'))
}
dialogVisible.value = false
//
emit('success')
} finally {
formLoading.value = false
}
}
/** 重置表单 */
const resetForm = () => {
formData.value = {
id: undefined,
code: undefined,
saleOrderIds: undefined,
customerId: undefined,
deliverDate: undefined,
deliverStatus: undefined,
deliverPerson: undefined,
deliverPersonMobile: undefined,
deliverMode: undefined,
receivePersonMobile: undefined,
transportDriverName: undefined,
transportDriverMobile: undefined,
transportBusNumber: undefined,
transportWeight: undefined,
transportSize: undefined,
remark: undefined,
status: undefined,
receivePersonName: undefined,
receiveAddress: undefined,
}
formRef.value?.resetFields()
}
</script>

@ -1,191 +0,0 @@
<template>
<el-form
ref="formRef"
:model="formData"
:rules="subFormRules"
v-loading="formLoading"
label-width="0px"
:inline-message="true"
>
<el-table :data="formData" class="-mt-10px">
<el-table-column label="序号" type="index" width="100" />
<el-table-column label="业务类 发货清单|其他清单 DELIVER_LIST|OTHER_LIST" min-width="150">
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}.category`" :rules="subFormRules.category" class="mb-0px!">
<el-select v-model="row.category" placeholder="请选择业务类 发货清单|其他清单 DELIVER_LIST|OTHER_LIST">
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.HELI_DELIVER_LIST_TYPE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</template>
</el-table-column>
<el-table-column label="名称,唯一" min-width="150">
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}.name`" :rules="subFormRules.name" class="mb-0px!">
<el-input v-model="row.name" placeholder="请输入名称,唯一" />
</el-form-item>
</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-form-item>
</template>
</el-table-column>
<el-table-column label="数量" min-width="150">
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}.amount`" :rules="subFormRules.amount" class="mb-0px!">
<el-input v-model="row.amount" placeholder="请输入数量" />
</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-option
v-for="dict in getStrDictOptions(DICT_TYPE.HELI_MATERIAL_UNIT)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</template>
</el-table-column>
<el-table-column label="重量(T)" min-width="150">
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}.weight`" :rules="subFormRules.weight" class="mb-0px!">
<el-input 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`" :rules="subFormRules.size" class="mb-0px!">
<el-input v-model="row.size" placeholder="请输入尺寸(米)" />
</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-option
v-for="dict in getStrDictOptions(DICT_TYPE.HELI_DELIVER_MATERIAL_TYPE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
</template>
</el-table-column>
<el-table-column label="备注" min-width="150">
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}.remark`" :rules="subFormRules.remark" class="mb-0px!">
<el-input v-model="row.remark" placeholder="请输入备注" />
</el-form-item>
</template>
</el-table-column>
<el-table-column label="状态,1表示正常2表示禁用" min-width="150">
<template #default="{ row, $index }">
<el-form-item :prop="`${$index}.status`" :rules="subFormRules.status" class="mb-0px!">
<el-radio-group v-model="row.status">
<el-radio label="1">请选择字典生成</el-radio>
</el-radio-group>
</el-form-item>
</template>
</el-table-column>
<el-table-column align="center" fixed="right" label="操作" width="60">
<template #default="{ $index }">
<el-button @click="handleDelete($index)" link></el-button>
</template>
</el-table-column>
</el-table>
</el-form>
<el-row justify="center" class="mt-3">
<el-button @click="handleAdd" round>+ 添加发货订单子项</el-button>
</el-row>
</template>
<script setup lang="ts">
import { getStrDictOptions, DICT_TYPE } from '@/utils/dict'
import * as DeliverOrderApi from '@/api/heli/deliverorder'
const props = defineProps<{
deliveryOrderId: undefined // id
}>()
const formLoading = ref(false) //
const formData = ref([])
const subFormRules = reactive({
deliveryOrderId: [{ required: true, message: '订单id不能为空', trigger: 'blur' }],
category: [{ required: true, message: '业务类 发货清单|其他清单 DELIVER_LIST|OTHER_LIST不能为空', trigger: 'change' }],
name: [{ required: true, message: '名称,唯一不能为空', trigger: 'blur' }],
amount: [{ required: true, message: '数量不能为空', trigger: 'blur' }],
unit: [{ required: true, message: '单位不能为空', trigger: 'change' }],
status: [{ required: true, message: '状态,1表示正常2表示禁用不能为空', trigger: 'blur' }],
})
const formRef = ref() // Ref
/** 监听主表的关联字段的变化,加载对应的子表数据 */
watch(
() => props.deliveryOrderId,
async (val) => {
// 1.
formData.value = []
// 2. val
if (!val) {
return;
}
try {
formLoading.value = true
formData.value = await DeliverOrderApi.getDeliverOrderSubListByDeliveryOrderId(val)
} finally {
formLoading.value = false
}
},
{ immediate: true }
)
/** 新增按钮操作 */
const handleAdd = () => {
const row = {
id: undefined,
deliveryOrderId: undefined,
category: undefined,
name: undefined,
blueprintNo: undefined,
amount: undefined,
unit: undefined,
weight: undefined,
size: undefined,
subType: undefined,
remark: undefined,
status: undefined,
}
row.deliveryOrderId = props.deliveryOrderId
formData.value.push(row)
}
/** 删除按钮操作 */
const handleDelete = (index) => {
formData.value.splice(index, 1)
}
/** 表单校验 */
const validate = () => {
return formRef.value.validate()
}
/** 表单值 */
const getData = () => {
return formData.value
}
defineExpose({ validate, getData })
</script>

@ -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 :icon="Search" /></template>
<template #append><el-button @click="openProjectOrderDialog" :icon="Search" /></template>
</el-input>
</el-form-item>
</el-col>
@ -418,6 +418,7 @@
>
</div>
</el-card>
<ProjectOrderDialog ref="projectOrderDialog" @success="handleSelectedProjectOrder" />
</template>
<script setup lang="ts">
import { ref } from 'vue'
@ -434,6 +435,7 @@ 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";
const reload = inject('reload')
const { t } = useI18n() //
@ -732,6 +734,15 @@ const queryData = async (type: string, id?: number) => {
}
}
const projectOrderDialog = ref()
const openProjectOrderDialog = () => {
projectOrderDialog.value.open()
}
const handleSelectedProjectOrder = (val: ProjectOrderVO[]) => {
console.log(val)
}
onMounted(() => {
queryData(query.active, query.id)
})

@ -155,8 +155,6 @@
/>
</ContentWrap>
<!-- 表单弹窗添加/修改 -->
<DeliverOrderForm ref="formRef" @success="getList" />
</template>
<script setup lang="ts">
@ -164,7 +162,6 @@ import {getStrDictOptions, DICT_TYPE, getIntDictOptions} from '@/utils/dict'
import { dateFormatter } from '@/utils/formatTime'
import download from '@/utils/download'
import * as DeliverOrderApi from '@/api/heli/deliverorder'
import DeliverOrderForm from './DeliverOrderForm.vue'
defineOptions({ name: 'DeliverOrder' })

@ -0,0 +1,266 @@
<template>
<Dialog :title="dialogTitle" width="80%" v-model="dialogVisible" center>
<ContentWrap class="borderxx">
<!-- 搜索工作栏 -->
<el-form
class="-mb-15px"
:model="queryParams"
ref="queryFormRef"
:inline="true"
label-width="108px"
>
<el-form-item label="项目编号" prop="code">
<el-input
v-model="queryParams.code"
placeholder="请输入项目编号"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="合同号" prop="contractNo">
<el-input
v-model="queryParams.contractNo"
placeholder="请输入项目编号"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="客户名称" prop="customerName">
<el-input
v-model="queryParams.customerName"
placeholder="请输入客户名称"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item>
<el-button @click="handleQuery" type="primary"
><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button
>
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
</el-form-item>
</el-form>
</ContentWrap>
<el-card class="hl-card">
<!-- 列表 -->
<ContentWrap>
<el-table
v-loading="loading"
:data="list"
:stripe="true"
:show-overflow-tooltip="true"
class="hl-table"
@selection-change="handleSelectionChange"
>
<el-table-column fixed type="selection" width="40"/>
<el-table-column fixed label="序号" type="index" width="60" />
<el-table-column fixed label="项目编号" align="center" prop="code" width="240" />
<el-table-column
fixed
label="订单日期"
align="center"
prop="orderTime"
:formatter="dateFormatter2"
width="180"
/>
<el-table-column label="提出部门" align="center" prop="businessDeptName" width="150" />
<el-table-column label="业务员" align="center" prop="businessManName" width="150" />
<el-table-column label="客户名称" align="center" prop="customerName" width="240" />
<el-table-column label="合同编号" align="center" prop="contractNo" width="180" />
<el-table-column label="模具名称" align="center" prop="mouldName" width="180" />
<el-table-column label="所属业务线" align="center" prop="businessLine" width="150">
<template #default="scope">
<dict-tag :type="DICT_TYPE.HELI_BUSINESS_LINE" :value="scope.row.businessLine" />
</template>
</el-table-column>
<el-table-column label="是否有价格" align="center" prop="hasPrice" width="150">
<template #default="scope">
<dict-tag :type="DICT_TYPE.HELI_COMMON_IS_OR_NOT" :value="scope.row.hasPrice" />
</template>
</el-table-column>
<el-table-column label="价格(元)" align="center" prop="price" width="150" />
<el-table-column label="币种" align="center" prop="currency" width="150">
<template #default="scope">
<dict-tag :type="DICT_TYPE.HELI_CURRENCY" :value="scope.row.currency" />
</template>
</el-table-column>
<el-table-column label="是否紧急" align="center" prop="isUrgency" width="150">
<template #default="scope">
<dict-tag :type="DICT_TYPE.HELI_COMMON_IS_OR_NOT" :value="scope.row.isUrgency" />
</template>
</el-table-column>
<el-table-column label="性质" align="center" prop="property" width="120">
<template #default="scope">
<dict-tag :type="DICT_TYPE.HELI_PROJECT_PROPERTY" :value="scope.row.property" />
</template>
</el-table-column>
<el-table-column label="起止日期" align="center" prop="projectStartTime" width="260">
<template #default="scope">
{{
formatDate(scope.row.projectStartTime, 'YYYY-MM-DD') +
'~' +
formatDate(scope.row.projectEndTime, 'YYYY-MM-DD')
}}
</template>
</el-table-column>
<el-table-column label="是否已变更" align="center" prop="hasAlter" width="150">
<template #default="scope">
<dict-tag :type="DICT_TYPE.HELI_COMMON_IS_OR_NOT" :value="scope.row.hasAlter" />
</template>
</el-table-column>
<el-table-column
label="单据状态"
align="center"
prop="orderStatus"
fixed="right"
width="120"
>
<template #default="scope">
<dict-tag :type="DICT_TYPE.HELI_PROJECT_ORDER_STATUS" :value="scope.row.orderStatus" />
</template>
</el-table-column>
<el-table-column
label="发货状态"
align="center"
prop="deliveryStatus"
fixed="right"
width="120"
>
<template #default="scope">
<dict-tag :type="DICT_TYPE.HELI_DELIVERY_STATUS" :value="scope.row.deliveryStatus" />
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<Pagination
:total="total"
v-model:page="queryParams.pageNo"
v-model:limit="queryParams.pageSize"
@pagination="getList"
/>
</ContentWrap>
</el-card>
<template #footer>
<el-button @click="dialogVisible=false" size="large"> </el-button>
<el-button @click="submitForm" type="success" size="large"> </el-button>
</template>
</Dialog>
</template>
<script setup lang="ts">
import { getIntDictOptions, getStrDictOptions, DICT_TYPE } from '@/utils/dict'
import { dateFormatter, dateFormatter2, formatDate } from '@/utils/formatTime'
import download from '@/utils/download'
import * as ProjectOrderApi from '@/api/heli/projectorder'
import {ref} from "vue";
import {ProjectOrderVO} from "@/api/heli/projectorder";
defineOptions({ name: 'ProjectOrder' })
const message = useMessage() //
const { t } = useI18n() //
const router = useRouter()
const dialogVisible = ref(false) //
const dialogTitle = ref('') //
const loading = ref(true) //
const list = ref([]) //
const total = ref(0) //
const queryParams = reactive({
pageNo: 1,
pageSize: 10,
contractNo: undefined,
code: undefined,
orderStatus: undefined,
deliveryStatus: undefined,
businessDeptId: undefined,
customerName: undefined,
mouldName: undefined,
businessLine: undefined,
blueprintNo: undefined,
hasPrice: undefined,
price: undefined,
currency: undefined,
projectStartTime: [],
projectEndTime: [],
isUrgency: undefined,
property: undefined,
referenceTechnology: undefined,
hasAlter: undefined,
lastAlterTime: [],
qualityRequirement: undefined,
remark: undefined,
hasContract: undefined,
hasTechnologyProtocol: undefined,
hasBlueprint: undefined,
blueprintRemark: undefined,
status: undefined,
createTime: [],
businessManName: undefined,
isSnapshot: 0,
snapshotId: undefined,
snapshotCode: undefined,
orderTime: [],
snapshotOrderTime: []
})
const queryFormRef = ref() //
/** 查询列表 */
const getList = async () => {
loading.value = true
try {
const data = await ProjectOrderApi.getProjectOrderPage(queryParams)
list.value = data.list
total.value = data.total
} finally {
loading.value = false
}
}
/** 搜索按钮操作 */
const handleQuery = () => {
queryParams.pageNo = 1
getList()
}
/** 重置按钮操作 */
const resetQuery = () => {
queryFormRef.value.resetFields()
handleQuery()
}
const multipleSelection = ref<ProjectOrderVO[]>([])
const handleSelectionChange = (val: ProjectOrderVO[]) => {
multipleSelection.value = val
}
/** 提交表单 */
const emit = defineEmits(['success']) // success
const submitForm = () => {
if(!multipleSelection.value || multipleSelection.value.length <= 0){
message.warning(t('common.selectText'))
return
}
//
const customerId = multipleSelection.value[0].customerId;
const hasExceptionCustomer = multipleSelection.value.some(order => customerId != order.customerId);
if(hasExceptionCustomer){
message.warning("只能选择同一客户订单")
return;
}
dialogVisible.value = false
//
emit('success', multipleSelection.value)
}
/** 打开弹窗 */
const open = async () => {
dialogVisible.value = true
handleQuery()
}
defineExpose({ open }) // open
</script>
Loading…
Cancel
Save