UNPKG

@cdwx/system

Version:

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

621 lines (620 loc) 31.4 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 */ 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 ue, ref as b, onMounted as pe, openBlock as a, createBlock as n, unref as m, withCtx as s, createElementVNode as w, normalizeClass as B, createTextVNode as u, toDisplayString as c, createCommentVNode as l, createElementBlock as I, createVNode as $ } 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 { useRouter as me } from "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"; /* 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 ce } 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 L, ElMessage as N } from "element-plus"; /* empty css */ /* empty css */ import { formatter as S } from "../workspace/code/cloud-frontend/packages/utils/src/index.js"; /* empty css */ /* empty css */ import { useSearchTable as de } from "../workspace/code/cloud-frontend/packages/hooks/src/use-search-table.js"; /* empty css */ /* empty css */ /* 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 fe from "../workspace/code/cloud-frontend/packages/ui/src/components/search-bar/src/index.vue.js"; /* empty css */ import { FormType as P } from "../workspace/code/cloud-frontend/packages/ui/src/components/search-bar/src/types.js"; /* empty css */ import he from "../workspace/code/cloud-frontend/packages/ui/src/components/table/index.vue.js"; /* empty css */ /* empty css */ /* empty css */ /* empty css */ import we 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 ye, deleteData as be, delList as ke, resetPwd as ve, operateData as H } from "../workspace/code/cloud-frontend/service-modules/system/src/api/api-account.js"; import { getAllDep as ge } from "../workspace/code/cloud-frontend/service-modules/system/src/api/api-department.js"; import { getAllList as xe } from "../workspace/code/cloud-frontend/service-modules/system/src/api/api-role.js"; import { statusListAll as Ce } from "../workspace/code/cloud-frontend/service-modules/system/src/config/local-data.js"; import { replaceMiddleWithStars as Te } from "../workspace/code/cloud-frontend/service-modules/system/src/utils/index.js"; /* empty css */ import { ElButton as _e } 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 { ElTree as Be } 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/tree/index.js"; import { ElTableColumn as $e } 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 { ElSwitch as Ne } 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 { ElConfigProvider as Se } 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 De = { class: "bg-white" }, Ee = { key: 0, class: "mr-10 w-220 bg-white p-30" }, Le = { class: "flex items-center" }, Pe = { class: "mr-12 text-14 color-[--el-text-color-regular]" }, mo = /* @__PURE__ */ ue({ name: "Account", __name: "list", props: { customName: {}, search: {}, btn: {}, showTree: { type: Boolean }, table: {}, addItem: {} }, setup(R) { const e = R, q = ce(), x = me(), { search: z, setSearchParam: M, turnPage: U, pageInfo: K, tableData: W, getData: C, remove: J, removeBatch: X } = de({ api: ye, removeApi: be, removeBatchApi: ke, defaultPageSize: 10, defaultSearchParams: { keyValue: "", // 名称 roleName: "", // 编码 status: void 0, station: "" // 岗位 } }), D = b([]); async function F() { const o = { id: 0, nameValue: "", name: "全部" }; try { const { data: t } = await xe(); D.value = [o, ...t], D.value.forEach((r) => { r.id !== 0 && (r.nameValue = r.name); }); } catch (t) { console.log(t); } } const T = b([]); function k() { x.push({ path: "/system/account/create" }); } function G() { x.push({ path: "/system/account/record" }); } const f = b([]), y = b([]); function O(o) { const t = f.value.find((d) => d.id === o), r = window.setInterval(() => { (t == null ? void 0 : t.count) !== void 0 && (t.count = t.count - 1), (t == null ? void 0 : t.count) === 0 && (clearInterval(r), f.value = f.value.filter((d) => d.id !== o), y.value = y.value.filter((d) => d !== r)); }, 1e3); y.value.push(r); } function Q() { f.value = [], y.value && (y.value.forEach((o) => { clearInterval(o); }), y.value = []); } function Y(o) { const t = f.value.find((r) => r.id === o.id); t && t.count !== 60 || L.confirm(`请确认要重置【${o.realName}${o.phone}的登录密码吗?点击确认将向此账号以短信的方式发送随机登录密码。`, "重置登录密码", { confirmButtonText: "确认", cancelButtonText: "取消" }).then(async () => { f.value.push({ id: o.id, count: 60 }), O(o.id), await ve(o.id), N({ type: "success", message: "登录密码重置成功,请注意查收短信!" }); }); } function Z(o) { x.push({ path: "/system/account/create", query: { id: o.id, type: "show" } }); } function j(o) { x.push({ path: "/system/account/create", query: { id: o.id } }); } function ee(o) { const t = o.status === 1 ? "禁用" : "启用"; L.confirm(`请确认要${t}${o.realName}】吗?`, `${t}`, { confirmButtonText: "确认", cancelButtonText: "取消" }).then(async () => { await te(o), N({ type: "success", message: `${t}成功!` }), C(); }); } async function te(o) { try { const t = { ids: [o.id], status: o.status ? 0 : 1 }; return await H(t), Promise.resolve(!0); } catch { return Promise.reject(new Error("false")); } } const E = b([]); function oe(o) { E.value = o; } async function v(o) { const r = o === "disable" ? "禁用" : o === "enable" ? "启用" : "删除"; if (E.value.length <= 0) return N({ type: "error", message: `请选择需要批量${r}的数据哦` }); const d = []; E.value.forEach((_) => { d.push(_.id); }), o === "delete" ? X(d, `${e.customName}管理`) : L.confirm(`请确认要${r}选中的数据吗?`, `${r}`, { confirmButtonText: "确认", cancelButtonText: "取消" }).then(async () => { await H({ ids: d, status: o === "disable" ? 0 : 1 }), N({ type: "success", message: `${r}成功!` }), C(); }); } const V = b([]); async function ae() { try { const { data: o } = await ge(); V.value = o; } catch (o) { console.log(o); } } const re = { children: "childTreeVoList", label: "name" }; function le(o) { M("deptId", o.id), C(); } return pe(async () => { var o, t, r; await F(), e.showTree && ae(), (o = e.search) != null && o.showKey && T.value.push({ type: P.input, label: "关键字", placeholder: "姓名/手机号", prop: "keyValue", maxlength: 200, defaultValue: "" }), (t = e.search) != null && t.showStatus && T.value.push({ type: P.select, label: "状态", placeholder: "请选择", options: Ce, prop: "status", maxlength: 200, defaultValue: "" }), (r = e.search) != null && r.showRole && T.value.push({ type: P.select, label: "角色", placeholder: "请选择", options: D, labelKey: "name", valueKey: "nameValue", prop: "roleName", maxlength: 200, defaultValue: "" }), C(); }), (o, t) => { const r = _e, d = fe, _ = Be, p = $e, ne = Ne, ie = he, se = Se; return a(), n(se, { locale: m(we) }, { default: s(() => [ w("div", { class: B([{ "bg-white": !e.showTree, "bg-[#f0f2f5]": e.btn.showHeader }, "h-100%"]) }, [ w("div", null, [ w("div", De, [ e.search ? (a(), n(d, { key: 0, "is-loading": m(q).loading, "field-list": T.value, onSearch: t[2] || (t[2] = (i) => m(z)(i)) }, { buttons: s(() => [ e.btn.showAdd ? (a(), n(r, { key: 0, onClick: k }, { default: s(() => [ u(" 新增" + c(e.customName || "员工"), 1) ]), _: 1 })) : l("", !0), e.btn.showBatchDis && !e.btn.showHeader ? (a(), n(r, { key: 1, onClick: t[0] || (t[0] = (i) => v("disable")) }, { default: s(() => [ u(" 停用" + c(e.customName || "员工"), 1) ]), _: 1 })) : l("", !0), e.btn.showBatchEnable && !e.btn.showHeader ? (a(), n(r, { key: 2, onClick: t[1] || (t[1] = (i) => v("enable")) }, { default: s(() => [ u(" 启用" + c(e.customName || "员工"), 1) ]), _: 1 })) : l("", !0), e.btn.showLog ? (a(), n(r, { key: 3, onClick: G }, { default: s(() => t[6] || (t[6] = [ u(" 操作记录 ") ])), _: 1 })) : l("", !0) ]), _: 1 }, 8, ["is-loading", "field-list"])) : l("", !0) ]), w("div", { class: B([{ "mt-10": e.search }, "flex"]) }, [ e.showTree ? (a(), I("div", Ee, [ $(_, { data: V.value, "default-expand-all": "", "expand-on-click-node": !1, "highlight-current": !0, props: re, onNodeClick: le }, null, 8, ["data"]) ])) : l("", !0), w("div", { class: B(["h-100% w-1 flex-1 bg-white p-20", { "pt-0": !e.showTree }]) }, [ e.showTree ? (a(), I("div", { key: 0, class: B({ "mb-20": e.showTree }) }, [ e.btn.showAdd && !e.search ? (a(), n(r, { key: 0, type: "primary", onClick: k }, { default: s(() => [ u(" 新增" + c(e.customName || "员工"), 1) ]), _: 1 })) : l("", !0), e.btn.showBatchDel ? (a(), n(r, { key: 1, onClick: t[3] || (t[3] = (i) => v("delete")) }, { default: s(() => [ u(" 删除" + c(e.customName || "员工"), 1) ]), _: 1 })) : l("", !0), e.btn.showBatchDis ? (a(), n(r, { key: 2, onClick: t[4] || (t[4] = (i) => v("disable")) }, { default: s(() => [ u(" 停用" + c(e.customName || "员工"), 1) ]), _: 1 })) : l("", !0), e.btn.showBatchEnable ? (a(), n(r, { key: 3, onClick: t[5] || (t[5] = (i) => v("enable")) }, { default: s(() => [ u(" 启用" + c(e.customName || "员工"), 1) ]), _: 1 })) : l("", !0), e.btn.showBatchUpdateDept ? (a(), n(r, { key: 4, onClick: k }, { default: s(() => t[7] || (t[7] = [ u(" 编辑部门 ") ])), _: 1 })) : l("", !0), e.btn.showBatchUpdateJob ? (a(), n(r, { key: 5, onClick: k }, { default: s(() => t[8] || (t[8] = [ u(" 编辑岗位 ") ])), _: 1 })) : l("", !0), e.btn.showExport ? (a(), n(r, { key: 6, onClick: k }, { default: s(() => t[9] || (t[9] = [ u(" 导出数据 ") ])), _: 1 })) : l("", !0) ], 2)) : l("", !0), $(ie, { data: m(W), "page-info": m(K), onPageChange: m(U), onSelectionChange: oe, onPagechange: Q }, { default: s(() => [ e.table.showCheckBox ? (a(), n(p, { key: 0, type: "selection", width: "55" })) : l("", !0), e.table.showOrder ? (a(), n(p, { key: 1, prop: "date", label: "序号", type: "index", width: "80px", align: "center" })) : l("", !0), e.table.showName ? (a(), n(p, { key: 2, prop: "realName", label: "姓名" })) : l("", !0), e.table.showPhone ? (a(), n(p, { key: 3, prop: "phone", label: "手机号" }, { default: s((i) => [ u(c(m(Te)(i.row.phone)), 1) ]), _: 1 })) : l("", !0), e.table.showAccount ? (a(), n(p, { key: 4, prop: "account", label: "登录账号" })) : l("", !0), e.table.showSex ? (a(), n(p, { key: 5, prop: "sex", label: "性别" }, { default: s((i) => [ u(c(i.row.sex === 1 ? "男" : i.row.sex === 2 ? "女" : "未知"), 1) ]), _: 1 })) : l("", !0), e.table.showEmail ? (a(), n(p, { key: 6, prop: "email", label: "邮箱", formatter: m(S) }, null, 8, ["formatter"])) : l("", !0), e.table.showDept ? (a(), n(p, { key: 7, prop: "department", label: "所属部门", formatter: m(S) }, null, 8, ["formatter"])) : l("", !0), e.table.showJob ? (a(), n(p, { key: 8, prop: "station", label: "所属岗位", formatter: m(S) }, null, 8, ["formatter"])) : l("", !0), e.table.showRole ? (a(), n(p, { key: 9, prop: "roleName", label: "所属角色", formatter: m(S) }, null, 8, ["formatter"])) : l("", !0), e.table.showCreateTime ? (a(), n(p, { key: 10, label: "创建时间", prop: "createTime" })) : l("", !0), e.table.showAccountType ? (a(), n(p, { key: 11, prop: "userType", label: "账号类型" }, { default: s((i) => [ u(c(i.row.userType === 1 ? "演示" : i.row.userType === 2 ? "正式" : "测试"), 1) ]), _: 1 })) : l("", !0), e.table.showUpdateTime ? (a(), n(p, { key: 12, prop: "updateTime", label: "操作时间" })) : l("", !0), e.table.showUpdatePerson ? (a(), n(p, { key: 13, prop: "updatedBy", label: "操作员" })) : l("", !0), e.table.showStatus ? (a(), n(p, { key: 14, label: "状态", width: "100" }, { default: s((i) => [ w("div", Le, [ w("span", Pe, c(i.row.status === 1 ? "启用" : "禁用"), 1), $(ne, { "model-value": i.row.status, size: "small", "active-value": 1, "inactive-value": i.row.status !== 1, "before-change": () => !1, onClick: (h) => ee(i.row) }, null, 8, ["model-value", "inactive-value", "onClick"]) ]) ]), _: 1 })) : l("", !0), $(p, { label: "操作", width: "250px" }, { default: s((i) => [ e.table.showResetBtn ? (a(), n(r, { key: 0, type: e.table.showBtnType === "text" ? "primary" : "", link: e.table.showBtnType === "text", onClick: (h) => Y(i.row) }, { default: s(() => { var h, A; return [ u(c(f.value.find((g) => g.id === i.row.id) && ((h = f.value.find((g) => g.id === i.row.id)) == null ? void 0 : h.count) !== 60 ? `${(A = f.value.find((g) => g.id === i.row.id)) == null ? void 0 : A.count}s后重置` : "重置密码"), 1) ]; }), _: 2 }, 1032, ["type", "link", "onClick"])) : l("", !0), e.table.showDetail ? (a(), n(r, { key: 1, type: e.table.showBtnType === "text" ? "primary" : "", link: e.table.showBtnType === "text", onClick: (h) => Z(i.row) }, { default: s(() => t[10] || (t[10] = [ u(" 查看 ") ])), _: 2 }, 1032, ["type", "link", "onClick"])) : l("", !0), e.table.showEdit ? (a(), n(r, { key: 2, type: e.table.showBtnType === "text" ? "primary" : "", link: e.table.showBtnType === "text", onClick: (h) => j(i.row) }, { default: s(() => t[11] || (t[11] = [ u(" 编辑 ") ])), _: 2 }, 1032, ["type", "link", "onClick"])) : l("", !0), e.table.showDel ? (a(), n(r, { key: 3, type: e.table.showBtnType === "text" ? "primary" : "", link: e.table.showBtnType === "text", onClick: (h) => m(J)(i.row, "realName", "id", "") }, { default: s(() => t[12] || (t[12] = [ u(" 删除 ") ])), _: 2 }, 1032, ["type", "link", "onClick"])) : l("", !0) ]), _: 1 }) ]), _: 1 }, 8, ["data", "page-info", "onPageChange"]) ], 2) ], 2) ]) ], 2) ]), _: 1 }, 8, ["locale"]); }; } }); export { mo as default };