@cdwx/system
Version:
成都文宣业务类服务模块组件库
300 lines (299 loc) • 14.1 kB
JavaScript
/* empty css */
import "../workspace/code/cloud-frontend/node_modules/.pnpm/element-plus@2.9.1_vue@3.5.13_typescript@5.5.4_/node_modules/element-plus/theme-chalk/el-config-provider.css.js";
/* empty css */
/* empty css */
/* empty css */
/* empty css */
import "../workspace/code/cloud-frontend/node_modules/.pnpm/element-plus@2.9.1_vue@3.5.13_typescript@5.5.4_/node_modules/element-plus/theme-chalk/el-form-item.css.js";
/* empty css */
import { defineComponent as T, ref as c, reactive as $, onMounted as A, openBlock as u, createBlock as n, unref as r, withCtx as l, createElementVNode as y, toDisplayString as V, createVNode as i, createCommentVNode as f, createElementBlock as M, Fragment as S, renderList as j, createTextVNode as g } from "vue";
import { regular as z } from "../workspace/code/cloud-frontend/packages/config/src/regular.js";
import { ElMessage as k } from "element-plus";
import G from "../workspace/code/cloud-frontend/node_modules/.pnpm/element-plus@2.9.1_vue@3.5.13_typescript@5.5.4_/node_modules/element-plus/es/locale/lang/zh-cn.js";
import { useRouter as H, useRoute as O } from "vue-router";
import { getData as J, updateData as K, saveData as Q } from "../workspace/code/cloud-frontend/service-modules/system/src/api/api-package.js";
import { useDictList as W } from "../workspace/code/cloud-frontend/service-modules/system/src/hooks/use-dict-list.js";
import X from "./tree.vue.js";
import { ElInput as Y } from "../workspace/code/cloud-frontend/node_modules/.pnpm/element-plus@2.9.1_vue@3.5.13_typescript@5.5.4_/node_modules/element-plus/es/components/input/index.js";
import { ElFormItem as Z, ElForm as ee } from "../workspace/code/cloud-frontend/node_modules/.pnpm/element-plus@2.9.1_vue@3.5.13_typescript@5.5.4_/node_modules/element-plus/es/components/form/index.js";
import { ElRadio as te, ElRadioGroup as oe } from "../workspace/code/cloud-frontend/node_modules/.pnpm/element-plus@2.9.1_vue@3.5.13_typescript@5.5.4_/node_modules/element-plus/es/components/radio/index.js";
import { ElButton as le } from "../workspace/code/cloud-frontend/node_modules/.pnpm/element-plus@2.9.1_vue@3.5.13_typescript@5.5.4_/node_modules/element-plus/es/components/button/index.js";
import { ElConfigProvider as ae } from "../workspace/code/cloud-frontend/node_modules/.pnpm/element-plus@2.9.1_vue@3.5.13_typescript@5.5.4_/node_modules/element-plus/es/components/config-provider/index.js";
const re = { class: "app-box h-[100%] overflow-hidden" }, se = { class: "h-[100%] bg-white p-30" }, ue = { class: "mb-10 flex text-20 color-[--el-text-color-primary] line-height-28" }, de = { style: { flex: "1" } }, ne = { class: "content-box h-[calc(100%)] pb-20" }, ie = { class: "form-box" }, Re = /* @__PURE__ */ T({
name: "PackageAdd",
__name: "add",
props: {
customName: {},
search: {},
btn: {},
table: {},
addItem: {}
},
setup(L) {
const m = L, h = H(), s = O(), x = c(), t = c({
id: void 0,
name: "",
des: "",
code: "",
language: "Chinese",
status: 1,
menuDtoList: []
}), C = $({
name: [
{
required: !0,
message: "请输入套餐名称",
trigger: "blur"
}
],
code: [
{
required: !0,
message: "请输入套餐编码",
trigger: "blur"
},
{
message: "套餐编码只能是字母与数字",
validator(a, e, p) {
!e || z.code.reg.test(e) ? p() : p(new Error("套餐编码只能是字母与数字"));
}
}
],
menuDtoList: [
{
required: !0,
message: "请选择套餐权限",
trigger: "change"
}
]
}), { dictList: I } = W("languageClassify"), w = c([]), q = c(), v = c(!1);
async function N() {
t.value.menuDtoList = await q.value.getCheckedData();
let a = 0;
if (t.value.menuDtoList && Object.values(t.value.menuDtoList).forEach((e) => {
Array.isArray(e) && e.length > 0 && (a = a + 1);
}), a <= 0)
return k.error("请选择套餐权限");
v.value = !0;
try {
t.value.id ? (await K(t.value), k.success("编辑成功"), v.value = !1, setTimeout(() => {
h.replace("/system/package");
}, 1e3)) : (await Q(t.value), k.success("新增成功"), v.value = !1, setTimeout(() => {
h.replace("/system/package");
}, 1e3));
} catch {
v.value = !1;
}
}
async function R(a) {
a && await a.validate((e, p) => {
if (e)
N();
else if (p) {
const d = document.querySelector(".el-form-item.is-error");
d && d.scrollIntoView({ behavior: "smooth", block: "center" });
}
});
}
const _ = c(!0);
async function F() {
_.value = !0;
try {
const { data: a } = await J(s.query.id);
w.value = a.classifyMenuVoList, t.value = a;
} catch (a) {
console.log(a);
}
_.value = !1;
}
return A(async () => {
s.query.id && await F(), _.value = !1;
}), (a, e) => {
const p = Y, d = Z, b = te, D = oe, E = le, U = ee, B = ae;
return u(), n(B, { locale: r(G) }, {
default: l(() => [
y("div", re, [
y("div", se, [
y("div", ue, [
y("div", de, V(r(s).query.type === "show" ? "查看套餐" : t.value.id ? "编辑套餐" : "新增套餐"), 1)
]),
y("div", ne, [
y("div", ie, [
_.value ? f("", !0) : (u(), n(U, {
key: 0,
ref_key: "formRef",
ref: x,
model: t.value,
rules: C,
"label-width": 120,
class: "mt-15",
"status-icon": ""
}, {
default: l(() => [
m.addItem.showName ? (u(), n(d, {
key: 0,
label: "套餐名称",
prop: "name"
}, {
default: l(() => [
i(p, {
modelValue: t.value.name,
"onUpdate:modelValue": e[0] || (e[0] = (o) => t.value.name = o),
placeholder: "请输入套餐名称",
style: { width: "300px" },
maxlength: "20",
readonly: r(s).query.type === "show"
}, null, 8, ["modelValue", "readonly"])
]),
_: 1
})) : f("", !0),
m.addItem.showCode ? (u(), n(d, {
key: 1,
label: "套餐编码",
prop: "code"
}, {
default: l(() => [
i(p, {
modelValue: t.value.code,
"onUpdate:modelValue": e[1] || (e[1] = (o) => t.value.code = o),
placeholder: "请输入套餐编码",
style: { width: "300px" },
maxlength: "100",
readonly: r(s).query.type === "show"
}, null, 8, ["modelValue", "readonly"])
]),
_: 1
})) : f("", !0),
m.addItem.showLanguage ? (u(), n(d, {
key: 2,
label: "套餐语言",
prop: "language",
required: ""
}, {
default: l(() => [
i(D, {
modelValue: t.value.language,
"onUpdate:modelValue": e[2] || (e[2] = (o) => t.value.language = o)
}, {
default: l(() => [
(u(!0), M(S, null, j(r(I), (o, P) => (u(), n(b, {
key: P,
value: o.value,
disabled: r(s).query.type === "show"
}, {
default: l(() => [
g(V(o.label), 1)
]),
_: 2
}, 1032, ["value", "disabled"]))), 128))
]),
_: 1
}, 8, ["modelValue"])
]),
_: 1
})) : f("", !0),
m.addItem.showStatus ? (u(), n(d, {
key: 3,
label: "套餐状态"
}, {
default: l(() => [
i(D, {
modelValue: t.value.status,
"onUpdate:modelValue": e[3] || (e[3] = (o) => t.value.status = o),
disabled: r(s).query.type === "show"
}, {
default: l(() => [
i(b, { value: 1 }, {
default: l(() => e[8] || (e[8] = [
g(" 启用 ")
])),
_: 1
}),
i(b, { value: 0 }, {
default: l(() => e[9] || (e[9] = [
g(" 禁用 ")
])),
_: 1
})
]),
_: 1
}, 8, ["modelValue", "disabled"])
]),
_: 1
})) : f("", !0),
m.addItem.showPermission ? (u(), n(d, {
key: 4,
label: "套餐权限",
required: ""
}, {
default: l(() => [
i(X, {
ref_key: "permissionRef",
ref: q,
modelValue: w.value,
"onUpdate:modelValue": e[4] || (e[4] = (o) => w.value = o),
disabled: r(s).query.type === "show"
}, null, 8, ["modelValue", "disabled"])
]),
_: 1
})) : f("", !0),
m.addItem.showDes ? (u(), n(d, {
key: 5,
label: m.customName || "备注"
}, {
default: l(() => [
i(p, {
modelValue: t.value.des,
"onUpdate:modelValue": e[5] || (e[5] = (o) => t.value.des = o),
style: { width: "600px" },
rows: 4,
type: "textarea",
maxlength: "200",
placeholder: `请输入${m.customName || "备注信息"}`,
readonly: r(s).query.type === "show"
}, null, 8, ["modelValue", "placeholder", "readonly"])
]),
_: 1
}, 8, ["label"])) : f("", !0),
i(d, { class: "mt-10" }, {
default: l(() => [
r(s).query.type !== "show" ? (u(), n(E, {
key: 0,
type: "primary",
class: "w-108 line-height-30",
loading: v.value,
onClick: e[6] || (e[6] = (o) => R(x.value))
}, {
default: l(() => e[10] || (e[10] = [
g(" 保存 ")
])),
_: 1
}, 8, ["loading"])) : f("", !0),
i(E, {
class: "w-108 line-height-30",
onClick: e[7] || (e[7] = (o) => r(h).go(-1))
}, {
default: l(() => [
g(V(r(s).query.type === "show" ? "返回" : "取消"), 1)
]),
_: 1
})
]),
_: 1
})
]),
_: 1
}, 8, ["model", "rules"]))
])
])
])
])
]),
_: 1
}, 8, ["locale"]);
};
}
});
export {
Re as default
};