UNPKG

@cdwx/system

Version:

成都文宣业务类服务模块组件库

431 lines (430 loc) 24 kB
/* 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 */ 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-tooltip.css.js"; /* empty css */ import { defineComponent as j, ref as y, onMounted as tt, openBlock as l, createBlock as a, unref as p, withCtx as n, createElementVNode as f, createVNode as u, createTextVNode as d, createCommentVNode as i, toDisplayString as V, createElementBlock as et, resolveDynamicComponent as ot } from "vue"; /* 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-sub-menu.css.js"; 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-menu-item.css.js"; import "vue-router"; /* 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-breadcrumb-item.css.js"; import { Edit as rt } from "../workspace/code/cloud-frontend/node_modules/.pnpm/@element-plus_icons-vue@2.3.1_vue@3.5.13_typescript@5.5.4_/node_modules/@element-plus/icons-vue/dist/index.js"; /* empty css */ import "../workspace/code/cloud-frontend/node_modules/.pnpm/vue-echarts@7.0.3_@vue_runtime-core@3.5.13_echarts@5.6.0_vue@3.5.13_typescript@5.5.4_/node_modules/vue-echarts/dist/index.js"; /* empty css */ /* empty css */ /* empty css */ /* empty css */ /* empty css */ import "../workspace/code/cloud-frontend/packages/http/src/index.js"; import "../workspace/code/cloud-frontend/packages/stores/src/instance.js"; import "../workspace/code/cloud-frontend/packages/stores/src/modules/menu.js"; import "../workspace/code/cloud-frontend/packages/stores/src/modules/page-tab.js"; import { useRequestingStore as lt } from "../workspace/code/cloud-frontend/packages/stores/src/modules/requesting-records.js"; import "../workspace/code/cloud-frontend/packages/stores/src/modules/system.js"; import "../workspace/code/cloud-frontend/packages/stores/src/modules/user.js"; import { ElMessageBox as at, ElMessage as D } from "element-plus"; /* empty css */ /* empty css */ import { getArrayItemValue as it } from "../workspace/code/cloud-frontend/packages/utils/src/index.js"; /* empty css */ /* empty css */ import { useSearchTable as nt } from "../workspace/code/cloud-frontend/packages/hooks/src/use-search-table.js"; /* empty css */ import "../workspace/code/cloud-frontend/node_modules/.pnpm/@vue-office_docx@1.6.3_vue-demi@0.14.10_vue@3.5.13_typescript@5.5.4___vue@3.5.13_typescript@5.5.4_/node_modules/@vue-office/docx/lib/index.js"; import "../workspace/code/cloud-frontend/node_modules/.pnpm/@vue-office_excel@1.7.14_vue-demi@0.14.10_vue@3.5.13_typescript@5.5.4___vue@3.5.13_typescript@5.5.4_/node_modules/@vue-office/excel/lib/index.js"; import "../workspace/code/cloud-frontend/node_modules/.pnpm/@vue-office_pdf@2.0.10_vue-demi@0.14.10_vue@3.5.13_typescript@5.5.4___vue@3.5.13_typescript@5.5.4_/node_modules/@vue-office/pdf/lib/index.js"; /* empty css */ /* empty css */ /* empty css */ /* empty css */ /* empty css */ /* empty css */ /* empty css */ /* empty css */ /* empty css */ import "../workspace/code/cloud-frontend/packages/ui/src/assets/iconfont/iconfont.js"; /* empty css */ /* 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-tab-pane.css.js"; /* empty css */ /* empty css */ /* empty css */ /* empty css */ /* empty css */ /* empty css */ /* empty css */ /* empty css */ import st from "../workspace/code/cloud-frontend/packages/ui/src/components/search-bar/src/index.vue2.js"; /* empty css */ import { FormType as _ } from "../workspace/code/cloud-frontend/packages/ui/src/components/search-bar/src/types.js"; /* empty css */ import pt from "../workspace/code/cloud-frontend/packages/ui/src/components/table/index.vue2.js"; /* empty css */ /* empty css */ /* empty css */ import mt 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 { getListData as ut, deleteData as dt, delList as ct, operateSort as ft, operateData as ht } from "../workspace/code/cloud-frontend/service-modules/system/src/api/api-menu.js"; import { statusListAll as yt, menuTypeListAll as E } from "../workspace/code/cloud-frontend/service-modules/system/src/config/local-data.js"; import T from "./add.vue.js"; /* empty css */ import { ElButton as wt } 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 { ElTableColumn as vt } 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/table/index.js"; import { ElIcon as _t } 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/icon/index.js"; import { ElInput as gt } 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 { ElSwitch as bt } 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/switch/index.js"; import { ElDialog as kt } 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/dialog/index.js"; import { ElConfigProvider as St } 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 Ct = { class: "h-100% bg-white" }, xt = { class: "pb-20 pl-30 pr-30 pt-0" }, Vt = ["onClick"], Bt = { class: "flex items-center" }, Dt = { class: "mr-12 text-14 color-[--el-text-color-regular]" }, Et = { class: "px-14 pt-14" }, no = /* @__PURE__ */ j({ name: "MenuList", __name: "list", props: { search: {}, btn: {}, table: {}, addItem: {} }, setup(M) { const o = M, $ = lt(), h = y([]), { search: L, tableData: g, getData: b, remove: A, removeBatch: N } = nt({ api: ut, removeApi: dt, removeBatchApi: ct, defaultPageSize: 20, defaultSearchParams: { // 名称 name: "", // 编码 code: "", status: void 0, type: void 0, classify: "" } }); function I(t) { t.showSort = !t.showSort; } async function P(t) { const e = { id: t.id, sort: t.sort }; await ft(e), t.showSort = !t.showSort; } function U(t) { const e = t.status === 1 ? "禁用" : "启用"; at.confirm(`请确认要${e}${t.name}】吗?`, `${e}`, { confirmButtonText: "确认", cancelButtonText: "取消" }).then(async () => { await z(t), D({ type: "success", message: `${e}成功!` }), b(); }); } async function z(t) { try { const e = { id: t.id, status: t.status ? 0 : 1 }; return await ht(e), Promise.resolve(!0); } catch { return Promise.reject(new Error("false")); } } function k(t) { return Array.isArray(t) ? t.map((e) => k(e)) : (typeof t == "object" && t !== null && (t.showSort = !t.showSort, t.childMenuVoList && (t.childMenuVoList = k(t.childMenuVoList))), t); } function q() { g.value = k(g.value); } const S = y([]); function F(t) { S.value = t; } function J() { if (S.value.length <= 0) return D({ type: "error", message: "请选择需要批量删除的数据哦" }); const t = []; S.value.forEach((e) => { t.push(e.id); }), N(t, "菜单管理"); } function O(t) { return JSON.parse(JSON.stringify(t)); } const w = y(!1), C = y("add"), x = y(), W = /* @__PURE__ */ new Map([ ["add", "新增"], ["update", "编辑"] ]), X = /* @__PURE__ */ new Map([ ["add", T], ["update", T] ]); function B(t, e) { x.value = O(e), C.value = t, w.value = !0; } function R() { w.value = !1, b(); } return tt(async () => { var t, e, m, v; b(), (t = o.search) != null && t.showName && h.value.push({ type: _.input, label: "名称", placeholder: "请输入菜单名称", prop: "name", maxlength: 200, defaultValue: "" }), (e = o.search) != null && e.showCode && h.value.push({ type: _.input, label: "编码", placeholder: "请输入菜单编码", prop: "code", maxlength: 200, defaultValue: "" }), (m = o.search) != null && m.showStatus && h.value.push({ type: _.select, label: "状态", placeholder: "请选择", options: yt, prop: "status", maxlength: 200, defaultValue: "" }), (v = o.search) != null && v.showType && h.value.push({ type: _.select, label: "菜单类型", placeholder: "请选择", options: E, prop: "type", maxlength: 200, defaultValue: "" }); }), (t, e) => { const m = wt, v = st, s = vt, G = _t, H = gt, K = bt, Q = pt, Y = kt, Z = St; return l(), a(Z, { locale: p(mt) }, { default: n(() => [ f("div", Ct, [ f("div", xt, [ f("div", null, [ u(v, { "is-loading": p($).loading, "field-list": h.value, onSearch: e[1] || (e[1] = (r) => p(L)(r)) }, { buttons: n(() => [ o.btn.showAdd ? (l(), a(m, { key: 0, type: "primary", onClick: e[0] || (e[0] = (r) => B("add", null)) }, { default: n(() => e[4] || (e[4] = [ d(" 新增菜单 ") ])), _: 1 })) : i("", !0), o.btn.showSort ? (l(), a(m, { key: 1, onClick: q }, { default: n(() => e[5] || (e[5] = [ d(" 排序 ") ])), _: 1 })) : i("", !0), o.btn.showBatchDel ? (l(), a(m, { key: 2, onClick: J }, { default: n(() => e[6] || (e[6] = [ d(" 批量删除 ") ])), _: 1 })) : i("", !0) ]), _: 1 }, 8, ["is-loading", "field-list"]), u(Q, { data: p(g), "default-expand-all": "", "tree-props": { children: "childMenuVoList", hasChildren: "hasChildren" }, onSelectionChange: F }, { default: n(() => [ o.table.showCheckBox ? (l(), a(s, { key: 0, type: "selection", width: "55" })) : i("", !0), o.table.showName ? (l(), a(s, { key: 1, prop: "name", label: "菜单名称" })) : i("", !0), o.table.showCode ? (l(), a(s, { key: 2, prop: "code", label: "菜单编码" })) : i("", !0), o.table.showType ? (l(), a(s, { key: 3, prop: "type", label: "菜单类型" }, { default: n((r) => [ d(V(p(it)(p(E), r.row.type)), 1) ]), _: 1 })) : i("", !0), o.table.showDes ? (l(), a(s, { key: 4, prop: "remarks", label: "菜单备注" })) : i("", !0), o.table.showUrl ? (l(), a(s, { key: 5, prop: "url", label: "地址" })) : i("", !0), o.table.showIcon ? (l(), a(s, { key: 6, prop: "icon", label: "图标编码" })) : i("", !0), o.table.showActiveIcon ? (l(), a(s, { key: 7, prop: "iconEnable", label: "选中图标编码" })) : i("", !0), o.table.showSort ? (l(), a(s, { key: 8, prop: "sort", label: "排序" }, { default: n((r) => [ r.row.showSort ? (l(), a(H, { key: 1, modelValue: r.row.sort, "onUpdate:modelValue": (c) => r.row.sort = c, modelModifiers: { number: !0 }, style: { width: "140px" }, placeholder: "请输入排序值", onBlur: (c) => P(r.row) }, null, 8, ["modelValue", "onUpdate:modelValue", "onBlur"])) : (l(), et("div", { key: 0, onClick: (c) => I(r.row) }, [ d(V(r.row.sort || "-") + " ", 1), u(G, { class: "position-relative top-2" }, { default: n(() => [ u(p(rt)) ]), _: 1 }) ], 8, Vt)) ]), _: 1 })) : i("", !0), o.table.showStatus ? (l(), a(s, { key: 9, label: "状态" }, { default: n((r) => [ f("div", Bt, [ f("span", Dt, V(r.row.status === 1 ? "启用" : "禁用"), 1), u(K, { "model-value": r.row.status, size: "small", "active-value": 1, "inactive-value": r.row.status !== 1, "before-change": () => !1, onClick: (c) => U(r.row) }, null, 8, ["model-value", "inactive-value", "onClick"]) ]) ]), _: 1 })) : i("", !0), u(s, { label: "操作", width: "160px" }, { default: n((r) => [ o.table.showEdit ? (l(), a(m, { key: 0, type: o.table.showBtnType === "text" ? "primary" : "", link: o.table.showBtnType === "text", onClick: (c) => B("update", r.row) }, { default: n(() => e[7] || (e[7] = [ d(" 编辑 ") ])), _: 2 }, 1032, ["type", "link", "onClick"])) : i("", !0), o.table.showDel ? (l(), a(m, { key: 1, type: o.table.showBtnType === "text" ? "primary" : "", link: o.table.showBtnType === "text", onClick: (c) => p(A)(r.row, "name", "id", "") }, { default: n(() => e[8] || (e[8] = [ d(" 删除 ") ])), _: 2 }, 1032, ["type", "link", "onClick"])) : i("", !0) ]), _: 1 }) ]), _: 1 }, 8, ["data"]) ]) ]), u(Y, { modelValue: w.value, "onUpdate:modelValue": e[3] || (e[3] = (r) => w.value = r), title: p(W).get(C.value), width: "502", "destroy-on-close": "", "align-center": "", "close-on-click-modal": !1, "close-on-press-escape": !1 }, { default: n(() => [ f("div", Et, [ (l(), a(ot(p(X).get(C.value)), { modelValue: x.value, "onUpdate:modelValue": e[2] || (e[2] = (r) => x.value = r), rules: o.addItem, onClose: R }, null, 40, ["modelValue", "rules"])) ]) ]), _: 1 }, 8, ["modelValue", "title"]) ]) ]), _: 1 }, 8, ["locale"]); }; } }); export { no as default };