文号更新

This commit is contained in:
XaoLi717 2025-01-17 14:44:11 +08:00
parent 0cb0b9307f
commit 1b04dba5f5
3 changed files with 186 additions and 7 deletions

View File

@ -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

View File

@ -582,6 +582,60 @@
</el-form>
</div>
</el-popover>
<!--文号按钮 这个对应表单的文号, 只有对应节点可以选取文号 -->
<el-popover
:visible="popOverVisible.numbers"
placement="top-start"
:width="420"
trigger="click"
v-if="runningTask && isHandleTaskStatus() && isShowButton(OperationButtonType.NUMBER)"
>
<template #reference>
<div @click="openPopover('numbers')" class="hover-bg-gray-100 rounded-xl p-6px">
<Icon :size="14" icon="fa:mail-reply" />&nbsp;
{{ getButtonDisplayName(OperationButtonType.NUMBER) }}
</div>
</template>
<div class="flex flex-col flex-1 pt-20px px-20px" v-loading="formLoading">
<el-form
label-position="top"
class="mb-auto"
ref="numbersFormRef"
:model="numbersForm"
:rules="numbersFormRule"
label-width="100px"
>
<el-form-item label="选择文号">
<span class="text-#878c93 text-12px">&nbsp;选择文号确认后保存</span>
<el-table
:data="ListNumber"
highlight-current-row
@current-change="handleChangeNumbers"
>
<el-table-column width="60" label="序号" align="center" type="index" />
<el-table-column label="文号" >
<template #default="scope">
{{
(scope.row.fastCode || "") + (scope.row.fastBrackets || "") + (scope.row.year || "") +
((scope.row.month != null&&scope.row.month!=0) ? scope.row.month.toString().padStart(2,"0") : "") +
((scope.row.lastBrackets) || "") +
((scope.row.docOrder || "").toString().padStart(scope.row.lengthSelection,"0")) +
(scope.row.lastCode || "")
}}
</template>
</el-table-column>
</el-table>
</el-form-item>
<el-form-item>
<el-button :disabled="formLoading" type="primary" @click="handleNumbers()">
确认
</el-button>
<el-button @click="closePropover('numbers', numbersFormRef)"> 取消 </el-button>
</el-form-item>
</el-form>
</div>
</el-popover>
<!-- 再次提交 按钮-->
<div
@click="handleReCreate()"
@ -612,13 +666,14 @@ import { BpmProcessInstanceStatus, BpmModelFormType } from '@/utils/constants'
import type { FormInstance, FormRules } from 'element-plus'
import {UserVO} from "@/api/system/user";
import {Edit} from "@element-plus/icons-vue";
import {numbersApi, numbersVO} from "@/api/home/numbers";
defineOptions({ name: 'ProcessInstanceBtnContainer' })
const router = useRouter() //
const message = useMessage() //
const userId = useUserStoreWithOut().getUser.id //
const emit = defineEmits(['success']) // success
const emit = defineEmits(['success', 'update']) // success
const props = defineProps< {
processInstance: any, //
@ -627,8 +682,99 @@ const props = defineProps< {
normalForm: any, // formCreate
normalFormApi: any, // formCreate Api
writableFields: string[] //
buttonNumberPath: any //
}>()
const listNumbers = ref(); //
const ListNumber = ref<numbersVO[]>([]) //
// 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<FormRules<typeof cancelForm>>({
cancelReason: [{ required: true, message: '取消理由不能为空', trigger: 'blur' }],
})
//
const numbersFormRef = ref<FormInstance>()
const numbersForm = reactive({
numbersReason: ''
})
const numbersFormRule = reactive<FormRules<typeof numbersForm>>({
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

View File

@ -334,7 +334,7 @@ const updateNumber = (date) => {
if (businessForm.value && businessForm.value.updateNumber) {
businessForm.value.updateNumber(date);
}else {
message.error("流程未配置更新函数")
message.error("流程配置缺失")
}
//
getDetail()