From 1b04dba5f52c9fd2905757a5997d181975594cf7 Mon Sep 17 00:00:00 2001 From: XaoLi717 <144221124+XaoLi717@users.noreply.github.com> Date: Fri, 17 Jan 2025 14:44:11 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=87=E5=8F=B7=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/Home/clnr/clgl/ClglDetail.vue | 4 +- .../detail/ProcessInstanceOperationButton.vue | 187 +++++++++++++++++- .../bpm/processInstance/detail/index.vue | 2 +- 3 files changed, 186 insertions(+), 7 deletions(-) diff --git a/src/views/Home/clnr/clgl/ClglDetail.vue b/src/views/Home/clnr/clgl/ClglDetail.vue index c3ab2e8..02f8716 100644 --- a/src/views/Home/clnr/clgl/ClglDetail.vue +++ b/src/views/Home/clnr/clgl/ClglDetail.vue @@ -419,8 +419,8 @@ const updateNumber = async (date) => { const numberDate = await ClglApi.getClgl(date.id) const data = numberDate as unknown as ClglVO // 检查编号类型是否为文号 - if (data.numberType !== 1) { - message.error("编号类型不是文号!") + if (data.numberType !== 1 && data.numberType ) { + message.error("编号类型非文号!") return } // 检查是否已存在 usageName diff --git a/src/views/bpm/processInstance/detail/ProcessInstanceOperationButton.vue b/src/views/bpm/processInstance/detail/ProcessInstanceOperationButton.vue index a323761..941531c 100644 --- a/src/views/bpm/processInstance/detail/ProcessInstanceOperationButton.vue +++ b/src/views/bpm/processInstance/detail/ProcessInstanceOperationButton.vue @@ -582,6 +582,60 @@ + + + + +
+ + +  选择文号,确认后保存 + + + + + + + + + + 确认 + + 取消 + + +
+
() +const listNumbers = ref(); // 流水数据 +const ListNumber = ref([]) // 列表数据 +// 搜索数据vo +const queryParamsNumbers = reactive({ + pageNo: 1, + pageSize: 10, + id: undefined, + fastCode: undefined, + fastBrackets: undefined, + year: undefined, + month: undefined, + lastBrackets: undefined, + docOrder: undefined, + lastCode: undefined, + enableMonth: undefined, + numbersType: undefined as number | undefined, + lengthSelection: undefined, + mappingData1: undefined as string | undefined, + mappingData2: undefined as string | undefined, + annotation: undefined, + createTime: [], +}) +const formData = ref({ + serialNumber: undefined as string | undefined, +}) + +// 根据编号类型获取编号数据后更新数据 +const getNumberByType = async ()=> { + listNumbers.value = formData.value.serialNumber = undefined; + //获取文号数据 + queryParamsNumbers.numbersType = 1 + queryParamsNumbers.mappingData2 = props.buttonNumberPath + const data = await numbersApi.getnumbersPage(queryParamsNumbers) + if (data.total == 0) { + message.error("未找到文号数据!请配置文号!") + return; + } + //判断条数,如果只有一条就和流水号一样直接处理 + if (data.total == 1 ) { + listNumbers.value = data.list[0] + await changeNumbers(); + } else { + // 两条以上数据,给用户挑选,然后处理 + ListNumber.value = data.list; + } +} + +// 获取旧数据后对比数据后更新 +const changeNumbers = async ()=> { + if (!listNumbers.value) { + return; + } + const currentYear = new Date().getFullYear(); + const currentMonth = new Date().getMonth() + 1; + listNumbers.value.docOrder+=1 + + // 判断年份不同时 更新年份,顺序号归一 + if (currentYear != listNumbers.value.year) { + listNumbers.value.year = currentYear; + listNumbers.value.docOrder = 1; + } + + // 判断月份不同时,判断不是禁用月份的时候 更新月份,顺序号归一 + if (currentMonth != listNumbers.value.month&&listNumbers.value.month!==0) { + listNumbers.value.month = currentMonth; + listNumbers.value.docOrder = 1; + } + + // 提取内部函数方便使用 + const {fastCode, fastBrackets, year, month, lastBrackets, docOrder, lengthSelection, lastCode } = listNumbers.value + // 数据拼接 + formData.value.serialNumber = + `${fastCode || ""}${fastBrackets || ""}${year || ""}`+ + `${(month != null&&month!=0) ? month.toString().padStart(2,"0") : ""}`+ + `${lastBrackets || ""}${(docOrder || "").toString().padStart(lengthSelection,"0")}${lastCode || ""}`; +} + +// 选择编号时赋值 +const handleChangeNumbers = async (val: any | undefined) => { + listNumbers.value = JSON.parse(JSON.stringify(val)); // 深拷贝 + formData.value.serialNumber = undefined + await changeNumbers(); +} + +watch(() => props.buttonNumberPath, () => { + if (runningTask.value && isHandleTaskStatus() && isShowButton(OperationButtonType.NUMBER)) { + getNumberByType() + } +}); + const formLoading = ref(false) // 表单加载中 const popOverVisible = ref({ approve: false, @@ -639,7 +785,8 @@ const popOverVisible = ref({ return: false, copy: false, cancel: false, - deleteSign: false + deleteSign: false, + numbers: false }) // 气泡卡是否展示 const returnList = ref([] as any) // 退回节点 @@ -750,6 +897,15 @@ const cancelForm = reactive({ const cancelFormRule = reactive>({ cancelReason: [{ required: true, message: '取消理由不能为空', trigger: 'blur' }], }) + +// 文号 +const numbersFormRef = ref() +const numbersForm = reactive({ + numbersReason: '' +}) +const numbersFormRule = reactive>({ + numbersReason: [{ required: true, message: '文号不能为空', trigger: 'blur' }], +}) //pch 选人begin-------------------- const userSelectFormRef = ref() // 用户选择弹窗 ref const userSelectSingleFormRef = ref() // 用户选择弹窗 ref @@ -864,7 +1020,7 @@ const openPopover = async (type: string) => { const closePropover = (type: string, formRef: FormInstance | undefined) => { if (formRef) { formRef.resetFields() - } + } popOverVisible.value[type] = false } @@ -964,7 +1120,6 @@ const handleTransfer = async () => { const handleDelegate = async () => { formLoading.value = true try { - // 1.1 校验表单 if (!delegateFormRef.value) return await delegateFormRef.value.validate() @@ -1036,6 +1191,30 @@ const handleReturn = async () => { } } +/** 处理文号 */ +const handleNumbers = async () => { + formLoading.value = true + try { + // 1.1 校验表单 + if (!numbersFormRef.value) return + await numbersFormRef.value.validate() + //提交文号 + const date = { + id: props.processInstance.businessKey, + value: formData.value.serialNumber + } + emit('update', date) + await numbersApi.updatenumbers(listNumbers.value) + popOverVisible.value.numbers = false + numbersFormRef.value.resetFields() + message.success('操作成功') + // 2 重新加载数据 + reload() + } finally { + formLoading.value = false + } +} + /** 处理取消 */ const handleCancel = async () => { formLoading.value = true diff --git a/src/views/bpm/processInstance/detail/index.vue b/src/views/bpm/processInstance/detail/index.vue index 7abec6c..4ee14f5 100644 --- a/src/views/bpm/processInstance/detail/index.vue +++ b/src/views/bpm/processInstance/detail/index.vue @@ -334,7 +334,7 @@ const updateNumber = (date) => { if (businessForm.value && businessForm.value.updateNumber) { businessForm.value.updateNumber(date); }else { - message.error("流程未配置更新函数") + message.error("流程配置缺失") } // 重新获取详情 getDetail()