diff --git a/src/views/Home/bgnr/bgyp/BgypDetail.vue b/src/views/Home/bgnr/bgyp/BgypDetail.vue index 6e8a957..2c02129 100644 --- a/src/views/Home/bgnr/bgyp/BgypDetail.vue +++ b/src/views/Home/bgnr/bgyp/BgypDetail.vue @@ -150,8 +150,22 @@ const updateForm = async () => { formLoading.value = false } } +const updateNumber = async (date) => { + const numberDate = await BgypApi.getBgyp(date.id) + const data = numberDate as unknown as BgypVO + if (data.numberType !== 1 || !data.numberType ) { + message.error("编号类型非文号!") + return + } + if (!data.serialNumber) { + data.serialNumber = date.value + await BgypApi.updateBgyp(data) + } else { + message.error("文号已存在") + } +} /** 打开弹窗 */ -defineExpose({ updateForm }) // 提供 open 方法,用于打开弹窗 +defineExpose({ updateForm, updateNumber }) // 提供 open 方法,用于打开弹窗 const editableFields = ref([]) const isEditable = (field:string) => { diff --git a/src/views/Home/clnr/clgl/ClglDetail.vue b/src/views/Home/clnr/clgl/ClglDetail.vue index 02f8716..ac283c8 100644 --- a/src/views/Home/clnr/clgl/ClglDetail.vue +++ b/src/views/Home/clnr/clgl/ClglDetail.vue @@ -418,15 +418,14 @@ const updateForm = async () => { const updateNumber = async (date) => { const numberDate = await ClglApi.getClgl(date.id) const data = numberDate as unknown as ClglVO -// 检查编号类型是否为文号 - if (data.numberType !== 1 && data.numberType ) { + if (data.numberType !== 1 || !data.numberType ) { message.error("编号类型非文号!") return } -// 检查是否已存在 usageName if (!data.serialNumber) { data.serialNumber = date.value await ClglApi.updateClgl(data) + message.success("操作成功") } else { message.error("文号已存在") } diff --git a/src/views/bpm/processInstance/detail/ProcessInstanceOperationButton.vue b/src/views/bpm/processInstance/detail/ProcessInstanceOperationButton.vue index 941531c..2b5bae8 100644 --- a/src/views/bpm/processInstance/detail/ProcessInstanceOperationButton.vue +++ b/src/views/bpm/processInstance/detail/ProcessInstanceOperationButton.vue @@ -711,70 +711,6 @@ 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, @@ -906,6 +842,70 @@ const numbersForm = reactive({ const numbersFormRule = reactive>({ numbersReason: [{ required: true, message: '文号不能为空', trigger: 'blur' }], }) + +// 根据编号类型获取编号数据后更新数据 +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) { + 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() + } +}); + //pch 选人begin-------------------- const userSelectFormRef = ref() // 用户选择弹窗 ref const userSelectSingleFormRef = ref() // 用户选择弹窗 ref @@ -1203,13 +1203,17 @@ const handleNumbers = async () => { 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() + if (!date.id || !date.value) { + message.error("无文号数据"); + return; + } else { + await numbersApi.updatenumbers(listNumbers.value) + popOverVisible.value.numbers = false + numbersFormRef.value.resetFields() + emit('update', date) + // 2 重新加载数据 + reload() + } } finally { formLoading.value = false }