|
@@ -163,7 +163,7 @@
|
|
tip="单张照片,不超过5MB"
|
|
tip="单张照片,不超过5MB"
|
|
:max-size="5242880"
|
|
:max-size="5242880"
|
|
:sourceType="['camera']"
|
|
:sourceType="['camera']"
|
|
- :file-list="formData.certificateInnocence"
|
|
|
|
|
|
+ v-model:file-list-custom="formData.certificateInnocence"
|
|
accept="image"
|
|
accept="image"
|
|
:limit="1"
|
|
:limit="1"
|
|
></upload>
|
|
></upload>
|
|
@@ -190,7 +190,7 @@
|
|
<upload
|
|
<upload
|
|
tip="单张照片,不超过5MB"
|
|
tip="单张照片,不超过5MB"
|
|
:max-size="5242880"
|
|
:max-size="5242880"
|
|
- :file-list="formData.backgroundImg"
|
|
|
|
|
|
+ v-model:file-list-custom="formData.backgroundImg"
|
|
:sourceType="['camera']"
|
|
:sourceType="['camera']"
|
|
accept="image"
|
|
accept="image"
|
|
:limit="1"
|
|
:limit="1"
|
|
@@ -215,7 +215,7 @@
|
|
tip="单张照片,不超过5MB"
|
|
tip="单张照片,不超过5MB"
|
|
:max-size="5242880"
|
|
:max-size="5242880"
|
|
:sourceType="['camera']"
|
|
:sourceType="['camera']"
|
|
- :file-list="formData.healthy"
|
|
|
|
|
|
+ v-model:file-list-custom="formData.healthy"
|
|
accept="image"
|
|
accept="image"
|
|
:limit="1"
|
|
:limit="1"
|
|
></upload>
|
|
></upload>
|
|
@@ -249,7 +249,7 @@
|
|
:max-size="5242880"
|
|
:max-size="5242880"
|
|
:sourceType="['camera']"
|
|
:sourceType="['camera']"
|
|
accept="image"
|
|
accept="image"
|
|
- :file-list="formData.honor"
|
|
|
|
|
|
+ v-model:file-list-custom="formData.honor"
|
|
:limit="9"
|
|
:limit="9"
|
|
></upload>
|
|
></upload>
|
|
</customFormItem>
|
|
</customFormItem>
|
|
@@ -305,17 +305,16 @@
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script setup lang="ts">
|
|
<script setup lang="ts">
|
|
-import { BASE_UPLOADURL } from "@/config";
|
|
|
|
import tree from "./components/tree/index.vue";
|
|
import tree from "./components/tree/index.vue";
|
|
import upload from "./components/upload/index.vue";
|
|
import upload from "./components/upload/index.vue";
|
|
import { type FormInstance } from "wot-design-uni/components/wd-form/types";
|
|
import { type FormInstance } from "wot-design-uni/components/wd-form/types";
|
|
import { createGlobalLoadingMiddleware } from "@/api/core/middleware";
|
|
import { createGlobalLoadingMiddleware } from "@/api/core/middleware";
|
|
-import assignFormValues from "@/utils";
|
|
|
|
|
|
+import { convertEmptyToNull } from "@/utils";
|
|
const titleArr = ["新增员工", "编辑员工"];
|
|
const titleArr = ["新增员工", "编辑员工"];
|
|
const treePicker = ref();
|
|
const treePicker = ref();
|
|
const form = ref<FormInstance>();
|
|
const form = ref<FormInstance>();
|
|
const isShowInstructor = ref(false);
|
|
const isShowInstructor = ref(false);
|
|
-const formData = reactive({
|
|
|
|
|
|
+let formData = reactive<any>({
|
|
status: 1,
|
|
status: 1,
|
|
password: "",
|
|
password: "",
|
|
trainingPrograms: [],
|
|
trainingPrograms: [],
|
|
@@ -351,7 +350,7 @@ const { send: handleuserEdit, loading: loading } = useRequest(
|
|
middleware: createGlobalLoadingMiddleware(),
|
|
middleware: createGlobalLoadingMiddleware(),
|
|
},
|
|
},
|
|
);
|
|
);
|
|
-const { send: queryById } = useRequest(
|
|
|
|
|
|
+const { send: queryById, data: editData } = useRequest(
|
|
(id) => Apis.sys.queryById({ data: { id } }),
|
|
(id) => Apis.sys.queryById({ data: { id } }),
|
|
{
|
|
{
|
|
immediate: false,
|
|
immediate: false,
|
|
@@ -370,36 +369,16 @@ watch(
|
|
);
|
|
);
|
|
async function getDetaile() {
|
|
async function getDetaile() {
|
|
if (type.value == 1) {
|
|
if (type.value == 1) {
|
|
- const res = await queryById(id.value);
|
|
|
|
- if (res.instructorId) {
|
|
|
|
|
|
+ await queryById(id.value);
|
|
|
|
+ if (editData.value.instructorId) {
|
|
isShowInstructor.value = true;
|
|
isShowInstructor.value = true;
|
|
}
|
|
}
|
|
- assignFormValues(formData, res, {
|
|
|
|
- ignoreEmpty: true,
|
|
|
|
- transform: {
|
|
|
|
- backgroundImg: (value) => {
|
|
|
|
- return value ? value.split(",").map((url: string) => ({ url })) : [];
|
|
|
|
- },
|
|
|
|
- healthy: (value) => {
|
|
|
|
- return value ? value.split(",").map((url: string) => ({ url })) : [];
|
|
|
|
- },
|
|
|
|
- certificateInnocence: (value) =>
|
|
|
|
- value ? value.split(",").map((url: string) => ({ url })) : [],
|
|
|
|
- honor: (value) => {
|
|
|
|
- if (typeof value == "string") {
|
|
|
|
- return value.split(",").map((url: string) => ({ url }));
|
|
|
|
- }
|
|
|
|
- return value;
|
|
|
|
- },
|
|
|
|
- selectedroles: (value) => {
|
|
|
|
- return value ? value.join(",") : "";
|
|
|
|
- },
|
|
|
|
- },
|
|
|
|
- });
|
|
|
|
|
|
+ formData = editData.value;
|
|
formData.deptName = findNamesByKeys(
|
|
formData.deptName = findNamesByKeys(
|
|
formData.selecteddeparts,
|
|
formData.selecteddeparts,
|
|
deptList.value,
|
|
deptList.value,
|
|
).join(",");
|
|
).join(",");
|
|
|
|
+ console.log(formData, "formData");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
function handleShow() {
|
|
function handleShow() {
|
|
@@ -412,15 +391,11 @@ function handleClickLeft() {
|
|
async function handleSubmit() {
|
|
async function handleSubmit() {
|
|
const val = await form.value?.validate();
|
|
const val = await form.value?.validate();
|
|
if (val?.valid) {
|
|
if (val?.valid) {
|
|
- const obj = {
|
|
|
|
|
|
+ const obj = convertEmptyToNull({
|
|
...formData,
|
|
...formData,
|
|
- honor: transformImg("honor") || null,
|
|
|
|
- backgroundImg: transformImg("backgroundImg") || null,
|
|
|
|
- healthy: transformImg("healthy") || null,
|
|
|
|
- trainingPrograms: formData.trainingPrograms.join(",") || null,
|
|
|
|
- certificateInnocence: transformImg("certificateInnocence") || null,
|
|
|
|
selecteddeparts: formData.selecteddeparts.join(","),
|
|
selecteddeparts: formData.selecteddeparts.join(","),
|
|
- };
|
|
|
|
|
|
+ trainingPrograms: formData.trainingPrograms.join(",") || null,
|
|
|
|
+ });
|
|
console.log(obj, "提交表单");
|
|
console.log(obj, "提交表单");
|
|
type.value == 0
|
|
type.value == 0
|
|
? await handleAdd(obj)
|
|
? await handleAdd(obj)
|
|
@@ -453,12 +428,14 @@ function handleChangeRole(e: { value: string }) {
|
|
}
|
|
}
|
|
});
|
|
});
|
|
}
|
|
}
|
|
-function transformImg(key: keyof typeof formData) {
|
|
|
|
- const list = formData[key]
|
|
|
|
- ? (formData[key] as any[]).map((it) => it.url).join(",")
|
|
|
|
- : null;
|
|
|
|
- return list;
|
|
|
|
-}
|
|
|
|
|
|
+
|
|
|
|
+watch(
|
|
|
|
+ () => formData,
|
|
|
|
+ () => {
|
|
|
|
+ console.log(formData, "formDatas");
|
|
|
|
+ },
|
|
|
|
+ { immediate: true },
|
|
|
|
+);
|
|
|
|
|
|
/**
|
|
/**
|
|
* 通过key数组在树形结构中查找对应的name数组
|
|
* 通过key数组在树形结构中查找对应的name数组
|