修复工单内容格式与财务页面接口契约

This commit is contained in:
cieanyau committed 2026-11-07 08:12:28 +08:00
1 parent 90989f8f8a
commit d330ad01cc
8 files changed
+551 -149

No files matched your search

+13 -56
View File
@@ -1,8 +1,7 @@
<script>
/**
* 创建工单:加载类型/部门及可选实例,上传附件后提交标题、富文本内容和关联实例;选项未就绪或附件仍上传时不提交。
* 创建工单:加载实际部门及可选实例,上传附件后提交标题、纯文本内容和关联实例;选项未就绪或附件仍上传时不提交。
*/
import "~/assets/styles/RichTextEditor.NkmgPT5m.css";
import "~/assets/styles/create.gX6gpD00.css";
import { toDisplayString } from "vue";
import { renderList } from "vue";
@@ -32,8 +31,7 @@ import message from "openvue/message";
import radiobutton from "openvue/radiobutton";
import inputtext from "openvue/inputtext";
import { n as product_name_n } from "~/lib/product-name.js";
import select from "openvue/select";
import RichTextEditor from "~/components/RichTextEditor.vue";
import textarea from "openvue/textarea";
import TicketNotice from "~/components/TicketNotice.vue";
import chip from "openvue/chip";
import multiselect from "openvue/multiselect";
@@ -56,10 +54,6 @@ var le = {
w = {
class: `field`,
},
T = {
key: 2,
class: `field`,
},
E = {
class: `field`,
},
@@ -110,12 +104,10 @@ var le = {
let b = useApi(),
z = useRouter(),
B = ref([]),
V = ref([]),
H = ref([]),
U = reactive({
title: ``,
ticket_type_id: null,
admin_role_id: null,
host_ids: [],
content: ``,
}),
@@ -172,17 +164,14 @@ var le = {
function ge(e) {
W.value || X.value.splice(e, 1);
}
// 类型/部门加载成功后再开放提交;实例可选列表分页读取,最多 100 页,实例查询失败不阻止无关联工单创建。
// 后端以 ticket_type_id 决定部门;实例查询失败不阻止无关联工单创建。
async function Q() {
if (isCurrent() && !K.value) {
((K.value = !0), (q.value = !1), (G.value = ``));
try {
let [e, t] = await Promise.all([
b.get(`/ticket/type`),
b.get(`/ticket/department`),
]);
let e = await b.get(`/ticket/type`);
if (!isCurrent()) return;
((B.value = e.list ?? []), (V.value = t.list ?? []));
B.value = e.list ?? [];
try {
let e = [],
t = 1,
@@ -203,9 +192,7 @@ var le = {
if (!isCurrent()) return;
H.value = [];
}
((U.ticket_type_id = B.value[0]?.id ?? null),
(U.admin_role_id = V.value[0]?.id ?? null),
(q.value = !0));
((U.ticket_type_id = B.value[0]?.id ?? null), (q.value = !0));
} catch (e) {
if (!isCurrent()) return;
G.value =
@@ -230,9 +217,8 @@ var le = {
try {
let e = await b.post(`/ticket`, {
title: U.title.trim(),
content: U.content.trim(),
content: U.content,
ticket_type_id: U.ticket_type_id,
admin_role_id: U.admin_role_id,
host_ids: U.host_ids,
attachment: X.value.map((e) => e.save_name),
});
@@ -248,16 +234,15 @@ var le = {
}
return (
onMounted(Q),
// 类型/部门选项就绪且附件上传完成后才可创建;富文本编辑器与本地附件草稿共同组成提交内容。
// 部门选项就绪且附件上传完成后才可创建;正文按客户纯文本契约原样提交。
(n, i) => {
let s = TicketNotice,
c = button,
m = radiobutton,
_ = inputtext,
y = select,
b = chip,
z = multiselect,
J = RichTextEditor,
J = textarea,
Y = message,
_e = NuxtLink;
return (
@@ -303,7 +288,7 @@ var le = {
(i[5] ||= createElementVNode(
`legend`,
null,
`工单类型`,
`工单部门`,
-1,
)),
(openBlock(!0),
@@ -377,36 +362,6 @@ var le = {
[`modelValue`],
),
]),
unref(V).length > 1
? (openBlock(),
createElementBlock(`div`, T, [
(i[7] ||= createElementVNode(
`label`,
{
for: `department`,
},
`服务部门`,
-1,
)),
createVNode(
y,
{
"input-id": `department`,
modelValue: unref(U).admin_role_id,
"onUpdate:modelValue": (i[2] ||= (e) =>
(unref(U).admin_role_id = e)),
options: unref(V),
optionLabel: `name`,
optionValue: `id`,
disabled: !unref(q),
fluid: ``,
},
null,
8,
[`modelValue`, `options`, `disabled`],
),
]))
: createCommentVNode(``, !0),
createElementVNode(`div`, E, [
(i[8] ||= createElementVNode(
`label`,
@@ -517,7 +472,9 @@ var le = {
modelValue: unref(U).content,
"onUpdate:modelValue": (i[4] ||= (e) =>
(unref(U).content = e)),
label: `工单内容`,
rows: 8,
autoResize: true,
fluid: true,
placeholder: `请描述问题、复现步骤和报错信息`,
disabled: unref(W),
},