|
@@ -43,22 +43,14 @@
|
|
</n-popover>
|
|
</n-popover>
|
|
</n-form-item>
|
|
</n-form-item>
|
|
<n-form-item :label="item.T_name" v-else-if="item.T_label === 3">
|
|
<n-form-item :label="item.T_name" v-else-if="item.T_label === 3">
|
|
- <n-popselect
|
|
|
|
- placement="top"
|
|
|
|
|
|
+ <n-select
|
|
|
|
+ v-model:value="item.T_value"
|
|
multiple
|
|
multiple
|
|
- scrollable
|
|
|
|
|
|
+ label-field="T_sn"
|
|
|
|
+ value-field="T_sn"
|
|
|
|
+ max-tag-count="responsive"
|
|
:options="classList"
|
|
:options="classList"
|
|
- v-model:value="item.T_value"
|
|
|
|
>
|
|
>
|
|
- <div class="overflow-x-auto">
|
|
|
|
- <n-button>
|
|
|
|
- {{
|
|
|
|
- Array.isArray(item.T_value) && item.T_value.length
|
|
|
|
- ? item.T_value.join(" | ")
|
|
|
|
- : "选择"
|
|
|
|
- }}
|
|
|
|
- </n-button>
|
|
|
|
- </div>
|
|
|
|
<template #action>
|
|
<template #action>
|
|
<n-space>
|
|
<n-space>
|
|
<n-button class="underline" text @click="handleSelectAll(i)"
|
|
<n-button class="underline" text @click="handleSelectAll(i)"
|
|
@@ -69,7 +61,7 @@
|
|
>
|
|
>
|
|
</n-space>
|
|
</n-space>
|
|
</template>
|
|
</template>
|
|
- </n-popselect>
|
|
|
|
|
|
+ </n-select>
|
|
<n-popover trigger="hover">
|
|
<n-popover trigger="hover">
|
|
<template #trigger>
|
|
<template #trigger>
|
|
<n-icon size="24" class="ml-3">
|
|
<n-icon size="24" class="ml-3">
|
|
@@ -80,7 +72,12 @@
|
|
</n-popover>
|
|
</n-popover>
|
|
</n-form-item>
|
|
</n-form-item>
|
|
<n-form-item :label="item.T_name" v-else-if="item.T_label === 4">
|
|
<n-form-item :label="item.T_name" v-else-if="item.T_label === 4">
|
|
- <n-select v-model:value="item.T_value" :options="classList" />
|
|
|
|
|
|
+ <n-select
|
|
|
|
+ label-field="T_sn"
|
|
|
|
+ value-field="T_sn"
|
|
|
|
+ v-model:value="item.T_value"
|
|
|
|
+ :options="classList"
|
|
|
|
+ />
|
|
<n-popover trigger="hover">
|
|
<n-popover trigger="hover">
|
|
<template #trigger>
|
|
<template #trigger>
|
|
<n-icon size="24" class="ml-3">
|
|
<n-icon size="24" class="ml-3">
|
|
@@ -126,13 +123,13 @@
|
|
</n-popover>
|
|
</n-popover>
|
|
</n-form-item>
|
|
</n-form-item>
|
|
<n-form-item :label="item.T_name" v-else-if="item.T_label === 10">
|
|
<n-form-item :label="item.T_name" v-else-if="item.T_label === 10">
|
|
|
|
+ <n-image class="mr-5" width="100" :src="item.T_value" />
|
|
<n-upload
|
|
<n-upload
|
|
- v-model:file-list="item.T_value"
|
|
|
|
|
|
+ @change="(options) => handleChangeByIndex(options, i)"
|
|
:default-upload="false"
|
|
:default-upload="false"
|
|
- list-type="image-card"
|
|
|
|
:max="1"
|
|
:max="1"
|
|
>
|
|
>
|
|
- 点击上传
|
|
|
|
|
|
+ <n-button>{{ item.T_value ? "重新上传" : "点击上传" }}</n-button>
|
|
</n-upload>
|
|
</n-upload>
|
|
<n-popover trigger="hover">
|
|
<n-popover trigger="hover">
|
|
<template #trigger>
|
|
<template #trigger>
|
|
@@ -144,13 +141,13 @@
|
|
</n-popover>
|
|
</n-popover>
|
|
</n-form-item>
|
|
</n-form-item>
|
|
<n-form-item :label="item.T_name" v-else-if="item.T_label === 11">
|
|
<n-form-item :label="item.T_name" v-else-if="item.T_label === 11">
|
|
|
|
+ <n-image class="mr-5" width="100" :src="item.T_value" />
|
|
<n-upload
|
|
<n-upload
|
|
- v-model:file-list="item.T_value"
|
|
|
|
|
|
+ @change="(options) => handleChangeByIndex(options, i)"
|
|
:default-upload="false"
|
|
:default-upload="false"
|
|
- list-type="image-card"
|
|
|
|
:max="1"
|
|
:max="1"
|
|
>
|
|
>
|
|
- 点击上传
|
|
|
|
|
|
+ <n-button>{{ item.T_value ? "重新上传" : "点击上传" }}</n-button>
|
|
</n-upload>
|
|
</n-upload>
|
|
<n-popover trigger="hover">
|
|
<n-popover trigger="hover">
|
|
<template #trigger>
|
|
<template #trigger>
|
|
@@ -221,9 +218,38 @@ const modal = reactive({
|
|
showModal: false,
|
|
showModal: false,
|
|
});
|
|
});
|
|
|
|
|
|
-//
|
|
|
|
|
|
+const handleChangeByIndex = async ({ file }, i) => {
|
|
|
|
+ const token = await getFileToken(file.name.split(".")[1]);
|
|
|
|
+ const observable = qiniu.upload(
|
|
|
|
+ file.file,
|
|
|
|
+ file.name,
|
|
|
|
+ token,
|
|
|
|
+ {},
|
|
|
|
+ {
|
|
|
|
+ useCdnDomain: true,
|
|
|
|
+ }
|
|
|
|
+ );
|
|
|
|
+ observable.subscribe({
|
|
|
|
+ next: (result) => {
|
|
|
|
+ // 主要用来展示进度
|
|
|
|
+ console.warn(result);
|
|
|
|
+ },
|
|
|
|
+ error: () => {
|
|
|
|
+ message.error("上传失败");
|
|
|
|
+ },
|
|
|
|
+ complete: (res) => {
|
|
|
|
+ templateList.value[i].T_value = res.key;
|
|
|
|
+ },
|
|
|
|
+ });
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * 上传文件
|
|
|
|
+ * @param file
|
|
|
|
+ * @returns {Promise<void>}
|
|
|
|
+ */
|
|
const handleChange = async ({ file }) => {
|
|
const handleChange = async ({ file }) => {
|
|
- const token = await getFileToken(file.name.split("/")[1]);
|
|
|
|
|
|
+ const token = await getFileToken(file.name.split(".")[1]);
|
|
const observable = qiniu.upload(
|
|
const observable = qiniu.upload(
|
|
file.file,
|
|
file.file,
|
|
file.name,
|
|
file.name,
|
|
@@ -247,20 +273,31 @@ const handleChange = async ({ file }) => {
|
|
});
|
|
});
|
|
};
|
|
};
|
|
|
|
|
|
-// 全选
|
|
|
|
|
|
+/**
|
|
|
|
+ * 全选
|
|
|
|
+ * @param i
|
|
|
|
+ */
|
|
const handleSelectAll = (i) => {
|
|
const handleSelectAll = (i) => {
|
|
- templateList.value[i].T_value = classList.value.map((item) => item.value);
|
|
|
|
|
|
+ if (templateList.value[i].T_value.length !== 0) {
|
|
|
|
+ return (templateList.value[i].T_value = []);
|
|
|
|
+ }
|
|
|
|
+ templateList.value[i].T_value = classList.value.map((item) => item.T_sn);
|
|
};
|
|
};
|
|
|
|
|
|
-// 反选
|
|
|
|
|
|
+/**
|
|
|
|
+ * 反选
|
|
|
|
+ * @param i
|
|
|
|
+ */
|
|
const handleSelectReverse = (i) => {
|
|
const handleSelectReverse = (i) => {
|
|
- const arr = classList.value.map((item) => item.value);
|
|
|
|
|
|
+ const arr = classList.value.map((item) => item.T_sn);
|
|
templateList.value[i].T_value = arr.filter(
|
|
templateList.value[i].T_value = arr.filter(
|
|
(item) => !templateList.value[i].T_value.includes(item)
|
|
(item) => !templateList.value[i].T_value.includes(item)
|
|
);
|
|
);
|
|
};
|
|
};
|
|
|
|
|
|
-//
|
|
|
|
|
|
+/**
|
|
|
|
+ * 显示上传验证
|
|
|
|
+ */
|
|
const showUploadModal = () => {
|
|
const showUploadModal = () => {
|
|
modal.title = "上传验证";
|
|
modal.title = "上传验证";
|
|
modal.showModal = true;
|
|
modal.showModal = true;
|
|
@@ -281,45 +318,11 @@ const editTaskInfo = async () => {
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|
|
|
|
-//
|
|
|
|
-let templateData = ref([]);
|
|
|
|
-
|
|
|
|
-//
|
|
|
|
-const showCreateDialog = async () => {
|
|
|
|
- templateData = toRaw(templateList.value);
|
|
|
|
- templateData = templateData.filter((item) => item.T_label !== 5);
|
|
|
|
- for (const item of templateData) {
|
|
|
|
- if (item.T_label === 10 || item.T_label === 11) {
|
|
|
|
- if (item.T_value[0].type) {
|
|
|
|
- const token = await getFileToken(item.T_value[0].type.split("/")[1]);
|
|
|
|
- const observable = qiniu.upload(
|
|
|
|
- item.T_value[0].file,
|
|
|
|
- item.T_value[0].name,
|
|
|
|
- token,
|
|
|
|
- {},
|
|
|
|
- {
|
|
|
|
- useCdnDomain: true,
|
|
|
|
- }
|
|
|
|
- );
|
|
|
|
- observable.subscribe({
|
|
|
|
- next: (result) => {
|
|
|
|
- // 主要用来展示进度
|
|
|
|
- console.warn(result);
|
|
|
|
- },
|
|
|
|
- error: () => {
|
|
|
|
- message.error("上传失败");
|
|
|
|
- },
|
|
|
|
- complete: (res) => {
|
|
|
|
- item.T_value = res.key;
|
|
|
|
- },
|
|
|
|
- });
|
|
|
|
- } else {
|
|
|
|
- item.T_value = Array.isArray(item.T_value)
|
|
|
|
- ? item.T_value[0].url
|
|
|
|
- : item.T_value;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+/**
|
|
|
|
+ * 显示生成报告
|
|
|
|
+ * @returns {Promise<void>}
|
|
|
|
+ */
|
|
|
|
+const showCreateDialog = () => {
|
|
dialog.info({
|
|
dialog.info({
|
|
title: "提示",
|
|
title: "提示",
|
|
content: "确认生成报告?",
|
|
content: "确认生成报告?",
|
|
@@ -332,26 +335,38 @@ const showCreateDialog = async () => {
|
|
};
|
|
};
|
|
|
|
|
|
/**
|
|
/**
|
|
- *
|
|
|
|
|
|
+ * 生成报告
|
|
* @param T_VerifyTemplateMap_id
|
|
* @param T_VerifyTemplateMap_id
|
|
* @returns {Promise<void>}
|
|
* @returns {Promise<void>}
|
|
*/
|
|
*/
|
|
-const generateSchemeReport = async (T_VerifyTemplateMap_id) => {
|
|
|
|
|
|
+const generateReport = async (T_VerifyTemplateMap_id) => {
|
|
const { data: res } = await generateScheme({
|
|
const { data: res } = await generateScheme({
|
|
T_task_id: task.T_task_id,
|
|
T_task_id: task.T_task_id,
|
|
T_VerifyTemplate_id: task.T_VerifyTemplate_id,
|
|
T_VerifyTemplate_id: task.T_VerifyTemplate_id,
|
|
T_VerifyTemplateMap_id,
|
|
T_VerifyTemplateMap_id,
|
|
});
|
|
});
|
|
console.log(res);
|
|
console.log(res);
|
|
|
|
+ if (res.Code === 200) {
|
|
|
|
+ message.success(res.Msg);
|
|
|
|
+ }
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+// const generateReportKey = async () => {
|
|
|
|
+// const { data: res } = await generateKey({});
|
|
|
|
+// console.log(res);
|
|
|
|
+// if (res.Code === 200) {
|
|
|
|
+// message.success(res.Msg);
|
|
|
|
+// }
|
|
|
|
+// };
|
|
|
|
+
|
|
/**
|
|
/**
|
|
*
|
|
*
|
|
* @returns {Promise<void>}
|
|
* @returns {Promise<void>}
|
|
*/
|
|
*/
|
|
const putTemplateData = async () => {
|
|
const putTemplateData = async () => {
|
|
try {
|
|
try {
|
|
- const VerifyTemplateMapData = templateData.map((item) => {
|
|
|
|
|
|
+ const arr = templateList.value.filter((item) => item.T_label !== 5);
|
|
|
|
+ const VerifyTemplateMapData = arr.map((item) => {
|
|
if (item.T_label === 3 || item.T_label === 9) {
|
|
if (item.T_label === 3 || item.T_label === 9) {
|
|
return {
|
|
return {
|
|
T_VerifyTemplateMap_id: item.T_VerifyTemplateMap_id,
|
|
T_VerifyTemplateMap_id: item.T_VerifyTemplateMap_id,
|
|
@@ -374,38 +389,40 @@ const putTemplateData = async () => {
|
|
});
|
|
});
|
|
if (res.Code === 200) {
|
|
if (res.Code === 200) {
|
|
message.success(res.Msg);
|
|
message.success(res.Msg);
|
|
- generateSchemeReport();
|
|
|
|
|
|
+ templateList.value.forEach((item) => {
|
|
|
|
+ generateReport(item.T_VerifyTemplateMap_id);
|
|
|
|
+ });
|
|
}
|
|
}
|
|
} catch (e) {
|
|
} catch (e) {
|
|
console.log(e);
|
|
console.log(e);
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|
|
|
|
-// 获取设备列表
|
|
|
|
|
|
+/**
|
|
|
|
+ * 获取设备列表
|
|
|
|
+ * @returns {Promise<void>}
|
|
|
|
+ */
|
|
const getClassList = async () => {
|
|
const getClassList = async () => {
|
|
try {
|
|
try {
|
|
const { data: res } = await getTaskDataClassList({
|
|
const { data: res } = await getTaskDataClassList({
|
|
T_task_id: queryData.T_task_id,
|
|
T_task_id: queryData.T_task_id,
|
|
});
|
|
});
|
|
- classList.value = res.Data
|
|
|
|
- ? res.Data.map((item) => ({ label: item.T_sn, value: item.T_sn }))
|
|
|
|
- : [];
|
|
|
|
|
|
+ classList.value = res.Data || [];
|
|
} catch (e) {
|
|
} catch (e) {
|
|
console.log(e);
|
|
console.log(e);
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|
|
|
|
-// 模板标签数据(列表)
|
|
|
|
|
|
+/**
|
|
|
|
+ * 模板标签数据(列表)
|
|
|
|
+ * @returns {Promise<void>}
|
|
|
|
+ */
|
|
const getTemplateList = async () => {
|
|
const getTemplateList = async () => {
|
|
try {
|
|
try {
|
|
const { data: res } = await getVerifyTemplateMapDataList(queryData);
|
|
const { data: res } = await getVerifyTemplateMapDataList(queryData);
|
|
templateList.value = res.Data;
|
|
templateList.value = res.Data;
|
|
templateList.value.forEach((item) => {
|
|
templateList.value.forEach((item) => {
|
|
- if (item.T_label === 10 || item.T_label === 11) {
|
|
|
|
- item.T_value = item.T_value
|
|
|
|
- ? [{ url: item.T_value, status: "finished" }]
|
|
|
|
- : [];
|
|
|
|
- } else if (item.T_label === 7) {
|
|
|
|
|
|
+ if (item.T_label === 7) {
|
|
item.T_value = item.T_value ? item.T_value : null;
|
|
item.T_value = item.T_value ? item.T_value : null;
|
|
} else if (item.T_label === 9) {
|
|
} else if (item.T_label === 9) {
|
|
item.T_value = item.T_value ? item.T_value.split("|") : null;
|
|
item.T_value = item.T_value ? item.T_value.split("|") : null;
|