From 858111c59698a60f569f6ee0116a5a87b1c3f78a Mon Sep 17 00:00:00 2001
From: XaoLi717 <144221124+XaoLi717@users.noreply.github.com>
Date: Mon, 6 Jan 2025 08:24:35 +0800
Subject: [PATCH] =?UTF-8?q?=E8=BD=A6=E8=BE=86=E7=AE=A1=E7=90=86=E7=BC=96?=
=?UTF-8?q?=E5=8F=B7=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/views/Home/clnr/clgl/ClglCreate.vue | 174 ++++++++++++++++++++++-
src/views/Home/clnr/clgl/ClglDetail.vue | 181 ++++++++++++++++++++++++
2 files changed, 353 insertions(+), 2 deletions(-)
diff --git a/src/views/Home/clnr/clgl/ClglCreate.vue b/src/views/Home/clnr/clgl/ClglCreate.vue
index 4d5cdbe..6650f13 100644
--- a/src/views/Home/clnr/clgl/ClglCreate.vue
+++ b/src/views/Home/clnr/clgl/ClglCreate.vue
@@ -24,6 +24,32 @@
+
+
+
+
+
+
+
+
+
+
+ {{ formData.serialNumber }}
+
+
+
@@ -146,6 +172,39 @@
确 定
存为草稿
+
+
+
+ 选择文号
+
+
+
+
+
+
+ {{
+ (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 || "")
+ }}
+
+
+
+
+ 确定
+
+
@@ -162,7 +221,7 @@ import {FormProcessMappingApi} from "@/api/bpm/formprocessmapping";
import SelectCarForm from "@/views/Home/clnr/carinfo/SelectCarForm.vue";
import SelectDriverForm from "@/views/Home/clnr/driver/SelectDriverForm.vue";
import {Edit} from "@element-plus/icons-vue";
-
+import {numbersApi, numbersVO} from "@/api/home/numbers";
/** 车辆管理 表单 */
defineOptions({ name: 'ClglCreate' })
@@ -191,6 +250,8 @@ const formData = ref({
carDriverInfo: undefined,
carMileage: undefined,
carStatus: undefined,
+ serialNumber: undefined as string | undefined,
+ numberType: undefined as number | undefined,
carReason: undefined,
carRemark: undefined,
})
@@ -223,6 +284,17 @@ const formRules = reactive({
carAddress: [{ required: true, message: '目的地不能为空', trigger: 'blur' }],
carStatus: [{ required: true, message: '车辆状态不能为空', trigger: 'blur' }],
carReason: [{ required: true, message: '用车原因不能为空', trigger: 'blur' }],
+ numberType: [{ required: true, message: '编号类型不能为空', trigger: 'blur' }],
+ serialNumber: [{
+ required: true, message: '编号不能为空', trigger: 'blur',
+ validator: (rule, value, callback) => {
+ if (OpenNumber.value && !value) {
+ callback(new Error('编号不能为空'));
+ } else {
+ callback();
+ }
+ },
+ }],
})
const formRef = ref() // 表单 Ref
@@ -312,7 +384,10 @@ const submitForm = async () => {
if ( processKey) {
data.processDefinitionKey = processKey
}
-
+ // 这里流水号正常保存 文号需要参数传递后保存
+ if (formData.value.numberType == 0 || (formData.value.numberType&&OpenNumber.value)) {
+ await numbersApi.updatenumbers(listNumbers.value)
+ }
await ClglApi.createClgl(data)
message.success(t('common.createSuccess'))
delView(unref(currentRoute))
@@ -344,6 +419,98 @@ const getUserInfo = async () => {
userInfo.value = formData.value.carUserName
}
}
+
+const listNumbers = ref(); // 流水数据
+const ListNumber = ref([]) // 列表数据
+const total = ref(0) // 列表的总页数
+// 搜索数据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,
+ annotation: undefined,
+ createTime: [],
+})
+const visible = ref(false) // 选择编号弹窗显示控制
+const OpenNumber = ref(false) // 假设流程传递参数
+
+// 根据编号类型获取编号数据后更新数据
+const getNumberByType = async ()=> {
+ listNumbers.value = formData.value.serialNumber = undefined;
+
+ queryParamsNumbers.numbersType = formData.value.numberType
+ const data = await numbersApi.getnumbersPage(queryParamsNumbers)
+
+ // 流水号类型的时候是第一个,文号类型的时候一条就直接处理,多条的时候要选择
+ if (formData.value.numberType == 0) {
+ if (data.total == 0) {
+ message.error("找不到流水号数据!请配置流水号")
+ }
+ listNumbers.value = data.list[0]
+ await changeNumbers();
+ } else if (formData.value.numberType == 1&&OpenNumber.value) {
+ if (data.total == 0) {
+ message.error("找不到文号数据!请配置文号!")
+ }
+ total.value = data.total;
+ //判断条数,如果只有一条就和流水号一样直接处理
+ if (data.total == 1 ) {
+ listNumbers.value = data.list[0]
+ await changeNumbers();
+ } else {
+ ListNumber.value = data.list;
+ }
+ }
+}
+
+// 获取旧数据后对比数据后更新
+const changeNumbers = async ()=> {
+
+ 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 handleCurrentChange = async (val: any | undefined) => {
+ listNumbers.value = JSON.parse(JSON.stringify(val)); // 深拷贝
+ formData.value.serialNumber = undefined
+ await changeNumbers();
+}
+
/** 初始化 */
onMounted(async () => {
await getUserInfo()
@@ -360,6 +527,9 @@ onMounted(async () => {
draftButton.value= true
}
}
+ formData.value.numberType = 2;
+ queryParamsNumbers.mappingData1 = curFullPath;
+ await getNumberByType()
const processKey = await FormProcessMappingApi.selectProcessKey( curFullPath )
diff --git a/src/views/Home/clnr/clgl/ClglDetail.vue b/src/views/Home/clnr/clgl/ClglDetail.vue
index 03bffee..4be2f44 100644
--- a/src/views/Home/clnr/clgl/ClglDetail.vue
+++ b/src/views/Home/clnr/clgl/ClglDetail.vue
@@ -25,6 +25,33 @@
+
+
+
+
+
+
+
+
+
+
+ {{formData.serialNumber}}
+
+
+
@@ -115,6 +142,41 @@
+
+
+
+
+
+ 选择文号
+
+
+
+
+
+
+ {{
+ (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 || "")
+ }}
+
+
+
+
+ 确定
+
+
+