340 lines
15 KiB
JavaScript
340 lines
15 KiB
JavaScript
"use strict";
|
||
const common_vendor = require("../../common/vendor.js");
|
||
const request_api = require("../../request/api.js");
|
||
if (!Array) {
|
||
const _easycom_up_picker2 = common_vendor.resolveComponent("up-picker");
|
||
const _easycom_up_datetime_picker2 = common_vendor.resolveComponent("up-datetime-picker");
|
||
const _easycom_up_input2 = common_vendor.resolveComponent("up-input");
|
||
const _easycom_up_textarea2 = common_vendor.resolveComponent("up-textarea");
|
||
const _easycom_u_popup2 = common_vendor.resolveComponent("u-popup");
|
||
(_easycom_up_picker2 + _easycom_up_datetime_picker2 + _easycom_up_input2 + _easycom_up_textarea2 + _easycom_u_popup2)();
|
||
}
|
||
const _easycom_up_picker = () => "../../uni_modules/uview-plus/components/u-picker/u-picker.js";
|
||
const _easycom_up_datetime_picker = () => "../../uni_modules/uview-plus/components/u-datetime-picker/u-datetime-picker.js";
|
||
const _easycom_up_input = () => "../../uni_modules/uview-plus/components/u-input/u-input.js";
|
||
const _easycom_up_textarea = () => "../../uni_modules/uview-plus/components/u-textarea/u-textarea.js";
|
||
const _easycom_u_popup = () => "../../uni_modules/uview-plus/components/u-popup/u-popup.js";
|
||
if (!Math) {
|
||
(_easycom_up_picker + _easycom_up_datetime_picker + _easycom_up_input + _easycom_up_textarea + _easycom_u_popup)();
|
||
}
|
||
const _sfc_main = {
|
||
__name: "application",
|
||
setup(__props) {
|
||
const showAddPopup = common_vendor.ref(false);
|
||
const showHazardPicker = common_vendor.ref(false);
|
||
const showDatePicker = common_vendor.ref(false);
|
||
const showDeptPicker = common_vendor.ref(false);
|
||
const selectedHazard = common_vendor.ref("");
|
||
const selectedHazardId = common_vendor.ref("");
|
||
const hazardColumns = common_vendor.ref([["暂无数据"]]);
|
||
const acceptanceHazardList = common_vendor.ref([]);
|
||
const hazardList = common_vendor.ref([]);
|
||
const selectedDeptName = common_vendor.ref("");
|
||
const selectedDeptId = common_vendor.ref("");
|
||
const deptColumns = common_vendor.ref([["暂无数据"]]);
|
||
const deptList = common_vendor.ref([]);
|
||
const dateValue = common_vendor.ref(Date.now());
|
||
const aiGenerating = common_vendor.ref(false);
|
||
const formData = common_vendor.reactive({
|
||
rectifyDeadline: "",
|
||
// 整改时限
|
||
responsibleDeptId: "",
|
||
// 隐患治理责任单位ID
|
||
responsiblePerson: "",
|
||
// 主要负责人
|
||
mainTreatmentContent: "",
|
||
// 主要治理内容
|
||
treatmentResult: "",
|
||
// 隐患治理完成内容
|
||
selfVerifyContent: ""
|
||
// 责任单位自行验收情况
|
||
});
|
||
const fetchWriteOffList = async () => {
|
||
try {
|
||
const res = await request_api.getMyWriteOffList();
|
||
if (res.code === 0 && res.data) {
|
||
hazardList.value = res.data;
|
||
common_vendor.index.__f__("log", "at pages/closeout/application.vue:148", "销号申请列表:", res.data);
|
||
}
|
||
} catch (error) {
|
||
common_vendor.index.__f__("error", "at pages/closeout/application.vue:151", "获取销号申请列表失败:", error);
|
||
}
|
||
};
|
||
const fetchAcceptanceList = async () => {
|
||
try {
|
||
const res = await request_api.getAcceptanceList();
|
||
if (res.code === 0 && res.data) {
|
||
const list = res.data.records || res.data || [];
|
||
acceptanceHazardList.value = list;
|
||
if (list.length > 0) {
|
||
hazardColumns.value = [list.map((item) => item.title || item.hazardTitle || `隐患${item.hazardId}`)];
|
||
} else {
|
||
hazardColumns.value = [["暂无可申请销号的隐患"]];
|
||
}
|
||
common_vendor.index.__f__("log", "at pages/closeout/application.vue:168", "可申请销号的隐患列表:", list);
|
||
}
|
||
} catch (error) {
|
||
common_vendor.index.__f__("error", "at pages/closeout/application.vue:171", "获取可申请销号隐患列表失败:", error);
|
||
}
|
||
};
|
||
const fetchDeptList = async () => {
|
||
try {
|
||
const res = await request_api.getDepartmentPersonUsers();
|
||
if (res.code === 0 && res.data) {
|
||
const users = [];
|
||
res.data.forEach((dept) => {
|
||
if (dept.users && dept.users.length > 0) {
|
||
dept.users.forEach((user) => {
|
||
users.push({
|
||
userId: user.userId,
|
||
deptId: dept.deptId,
|
||
name: `${user.nickName}(${dept.deptName})`
|
||
});
|
||
});
|
||
}
|
||
});
|
||
deptList.value = users;
|
||
if (users.length > 0) {
|
||
deptColumns.value = [users.map((item) => item.name)];
|
||
} else {
|
||
deptColumns.value = [["暂无人员数据"]];
|
||
}
|
||
common_vendor.index.__f__("log", "at pages/closeout/application.vue:199", "部门人员列表:", users);
|
||
}
|
||
} catch (error) {
|
||
common_vendor.index.__f__("error", "at pages/closeout/application.vue:202", "获取部门人员列表失败:", error);
|
||
}
|
||
};
|
||
const onDeptConfirm = (e) => {
|
||
common_vendor.index.__f__("log", "at pages/closeout/application.vue:208", "选择的人员:", e);
|
||
if (e.value && e.value.length > 0) {
|
||
selectedDeptName.value = e.value[0];
|
||
const index = e.indexs[0];
|
||
if (deptList.value[index]) {
|
||
selectedDeptId.value = deptList.value[index].deptId;
|
||
formData.responsibleDeptId = deptList.value[index].deptId;
|
||
}
|
||
}
|
||
showDeptPicker.value = false;
|
||
};
|
||
const openAddPopup = () => {
|
||
resetForm();
|
||
fetchAcceptanceList();
|
||
fetchDeptList();
|
||
showAddPopup.value = true;
|
||
};
|
||
const onHazardConfirm = (e) => {
|
||
common_vendor.index.__f__("log", "at pages/closeout/application.vue:231", "选择的隐患:", e);
|
||
if (e.value && e.value.length > 0) {
|
||
selectedHazard.value = e.value[0];
|
||
const index = e.indexs[0];
|
||
if (acceptanceHazardList.value[index]) {
|
||
selectedHazardId.value = acceptanceHazardList.value[index].hazardId;
|
||
}
|
||
}
|
||
showHazardPicker.value = false;
|
||
};
|
||
const onDateConfirm = (e) => {
|
||
common_vendor.index.__f__("log", "at pages/closeout/application.vue:245", "选择的日期时间:", e);
|
||
const date = new Date(e.value);
|
||
const year = date.getFullYear();
|
||
const month = String(date.getMonth() + 1).padStart(2, "0");
|
||
const day = String(date.getDate()).padStart(2, "0");
|
||
const hours = String(date.getHours()).padStart(2, "0");
|
||
const minutes = String(date.getMinutes()).padStart(2, "0");
|
||
const seconds = String(date.getSeconds()).padStart(2, "0");
|
||
formData.rectifyDeadline = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
|
||
showDatePicker.value = false;
|
||
};
|
||
const resetForm = () => {
|
||
selectedHazard.value = "";
|
||
selectedHazardId.value = "";
|
||
selectedDeptName.value = "";
|
||
selectedDeptId.value = "";
|
||
formData.rectifyDeadline = "";
|
||
formData.responsibleDeptId = "";
|
||
formData.responsiblePerson = "";
|
||
formData.mainTreatmentContent = "";
|
||
formData.treatmentResult = "";
|
||
formData.selfVerifyContent = "";
|
||
};
|
||
const handleAiGenerate = async () => {
|
||
if (!selectedHazardId.value) {
|
||
common_vendor.index.showToast({ title: "请先选择隐患", icon: "none" });
|
||
return;
|
||
}
|
||
aiGenerating.value = true;
|
||
try {
|
||
const hazardRes = await request_api.getHiddenDangerDetail({ hazardId: selectedHazardId.value });
|
||
if (hazardRes.code !== 0 || !hazardRes.data) {
|
||
common_vendor.index.showToast({ title: "获取隐患详情失败", icon: "none" });
|
||
return;
|
||
}
|
||
const assigns = hazardRes.data.assigns;
|
||
if (!assigns || assigns.length === 0 || !assigns[0].rectify) {
|
||
common_vendor.index.showToast({ title: "该隐患暂无整改记录", icon: "none" });
|
||
return;
|
||
}
|
||
const rectifyId = assigns[0].rectify.rectifyId;
|
||
const rectifyRes = await request_api.getRectifyDetail({ rectifyId });
|
||
if (rectifyRes.code !== 0 || !rectifyRes.data) {
|
||
common_vendor.index.showToast({ title: "获取整改详情失败", icon: "none" });
|
||
return;
|
||
}
|
||
const rectifyPlan = rectifyRes.data.rectifyPlan;
|
||
if (!rectifyPlan) {
|
||
common_vendor.index.showToast({ title: "整改方案内容为空", icon: "none" });
|
||
return;
|
||
}
|
||
const aiRes = await request_api.generateWriteoffContent({ rectifyContent: rectifyPlan });
|
||
if (aiRes.code === 0 && aiRes.data) {
|
||
formData.mainTreatmentContent = aiRes.data.mainContent || "";
|
||
formData.treatmentResult = aiRes.data.completionContent || "";
|
||
formData.selfVerifyContent = aiRes.data.selfInspection || "";
|
||
common_vendor.index.showToast({ title: "AI生成成功", icon: "success" });
|
||
} else {
|
||
common_vendor.index.showToast({ title: aiRes.msg || "AI生成失败", icon: "none" });
|
||
}
|
||
} catch (error) {
|
||
common_vendor.index.__f__("error", "at pages/closeout/application.vue:319", "AI生成销号方案失败:", error);
|
||
common_vendor.index.showToast({ title: "AI生成失败,请重试", icon: "none" });
|
||
} finally {
|
||
aiGenerating.value = false;
|
||
}
|
||
};
|
||
const handleAdd = async () => {
|
||
if (!selectedHazardId.value) {
|
||
common_vendor.index.showToast({ title: "请选择隐患", icon: "none" });
|
||
return;
|
||
}
|
||
const params = {
|
||
hazardId: Number(selectedHazardId.value),
|
||
// 隐患ID(必需)
|
||
rectifyDeadline: formData.rectifyDeadline || "",
|
||
// 整改时限
|
||
responsibleDeptId: Number(formData.responsibleDeptId) || 0,
|
||
// 隐患治理责任单位ID
|
||
responsiblePerson: formData.responsiblePerson || "",
|
||
// 主要负责人
|
||
mainTreatmentContent: formData.mainTreatmentContent || "",
|
||
// 主要治理内容
|
||
treatmentResult: formData.treatmentResult || "",
|
||
// 隐患治理完成内容
|
||
selfVerifyContent: formData.selfVerifyContent || ""
|
||
// 责任单位自行验收情况
|
||
};
|
||
common_vendor.index.__f__("log", "at pages/closeout/application.vue:344", "提交数据:", params);
|
||
try {
|
||
const res = await request_api.applyDelete(params);
|
||
if (res.code === 0) {
|
||
common_vendor.index.showToast({ title: "申请成功", icon: "success" });
|
||
showAddPopup.value = false;
|
||
resetForm();
|
||
fetchWriteOffList();
|
||
} else {
|
||
common_vendor.index.showToast({ title: res.msg || "申请失败", icon: "none" });
|
||
}
|
||
} catch (error) {
|
||
common_vendor.index.__f__("error", "at pages/closeout/application.vue:358", "申请失败:", error);
|
||
common_vendor.index.showToast({ title: "请求失败", icon: "none" });
|
||
}
|
||
};
|
||
const editor = () => {
|
||
common_vendor.index.navigateTo({
|
||
url: "/pages/closeout/editor"
|
||
});
|
||
};
|
||
common_vendor.onMounted(() => {
|
||
fetchWriteOffList();
|
||
});
|
||
return (_ctx, _cache) => {
|
||
return common_vendor.e({
|
||
a: common_vendor.f(hazardList.value, (item, index, i0) => {
|
||
return {
|
||
a: common_vendor.t(item.hazardTitle),
|
||
b: common_vendor.t(item.statusName),
|
||
c: common_vendor.t(item.hazardCreatedAt),
|
||
d: common_vendor.t(item.responsibleDeptName),
|
||
e: common_vendor.t(item.responsiblePerson),
|
||
f: common_vendor.t(item.createdAt),
|
||
g: common_vendor.o(($event) => editor(), index),
|
||
h: index
|
||
};
|
||
}),
|
||
b: common_vendor.o(openAddPopup),
|
||
c: common_vendor.o(($event) => showAddPopup.value = false),
|
||
d: common_vendor.t(selectedHazard.value || "请选择隐患"),
|
||
e: common_vendor.n(selectedHazard.value ? "" : "text-gray"),
|
||
f: common_vendor.o(($event) => showHazardPicker.value = true),
|
||
g: common_vendor.o(onHazardConfirm),
|
||
h: common_vendor.o(($event) => showHazardPicker.value = false),
|
||
i: common_vendor.o(($event) => showHazardPicker.value = false),
|
||
j: common_vendor.p({
|
||
show: showHazardPicker.value,
|
||
columns: hazardColumns.value
|
||
}),
|
||
k: common_vendor.t(formData.rectifyDeadline || "请选择整改时限"),
|
||
l: common_vendor.n(formData.rectifyDeadline ? "" : "text-gray"),
|
||
m: common_vendor.o(($event) => showDatePicker.value = true),
|
||
n: common_vendor.o(onDateConfirm),
|
||
o: common_vendor.o(($event) => showDatePicker.value = false),
|
||
p: common_vendor.o(($event) => showDatePicker.value = false),
|
||
q: common_vendor.o(($event) => dateValue.value = $event),
|
||
r: common_vendor.p({
|
||
show: showDatePicker.value,
|
||
mode: "datetime",
|
||
modelValue: dateValue.value
|
||
}),
|
||
s: common_vendor.t(selectedDeptName.value || "请选择隐患治理责任单位"),
|
||
t: common_vendor.n(selectedDeptName.value ? "" : "text-gray"),
|
||
v: common_vendor.o(($event) => showDeptPicker.value = true),
|
||
w: common_vendor.o(onDeptConfirm),
|
||
x: common_vendor.o(($event) => showDeptPicker.value = false),
|
||
y: common_vendor.o(($event) => showDeptPicker.value = false),
|
||
z: common_vendor.p({
|
||
show: showDeptPicker.value,
|
||
columns: deptColumns.value
|
||
}),
|
||
A: common_vendor.o(($event) => formData.responsiblePerson = $event),
|
||
B: common_vendor.p({
|
||
placeholder: "请输入主要负责人",
|
||
modelValue: formData.responsiblePerson
|
||
}),
|
||
C: !aiGenerating.value
|
||
}, !aiGenerating.value ? {} : {}, {
|
||
D: common_vendor.t(aiGenerating.value ? "AI生成中..." : "AI 生成销号方案"),
|
||
E: aiGenerating.value,
|
||
F: aiGenerating.value,
|
||
G: common_vendor.o(handleAiGenerate),
|
||
H: common_vendor.o(($event) => formData.mainTreatmentContent = $event),
|
||
I: common_vendor.p({
|
||
placeholder: "请输入主要治理内容",
|
||
modelValue: formData.mainTreatmentContent
|
||
}),
|
||
J: common_vendor.o(($event) => formData.treatmentResult = $event),
|
||
K: common_vendor.p({
|
||
placeholder: "请输入隐患治理完成情况",
|
||
modelValue: formData.treatmentResult
|
||
}),
|
||
L: common_vendor.o(($event) => formData.selfVerifyContent = $event),
|
||
M: common_vendor.p({
|
||
placeholder: "请输入隐患治理责任单位自行验收的情况",
|
||
modelValue: formData.selfVerifyContent
|
||
}),
|
||
N: common_vendor.o(($event) => showAddPopup.value = false),
|
||
O: common_vendor.o(handleAdd),
|
||
P: common_vendor.o(($event) => showAddPopup.value = false),
|
||
Q: common_vendor.p({
|
||
show: showAddPopup.value,
|
||
mode: "center",
|
||
round: "20"
|
||
}),
|
||
R: common_vendor.gei(_ctx, "")
|
||
});
|
||
};
|
||
}
|
||
};
|
||
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-4b6250eb"]]);
|
||
wx.createPage(MiniProgramPage);
|
||
//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/closeout/application.js.map
|