UNPKG

@cdwx/system

Version:

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

623 lines (622 loc) 34.7 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 */ /* 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 */ /* empty css */ import { defineComponent as ee, ref as y, reactive as te, onMounted as oe, openBlock as s, createBlock as p, unref as i, withCtx as l, createElementVNode as c, toDisplayString as I, createVNode as d, createCommentVNode as n, createTextVNode as g, createElementBlock as T, Fragment as P, renderList as F } 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 le, useRoute as ae } 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 */ import { regular as k } from "../workspace/code/cloud-frontend/packages/config/src/regular.js"; 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 "../workspace/code/cloud-frontend/packages/stores/src/modules/requesting-records.js"; import { useSystemStore as re } from "../workspace/code/cloud-frontend/packages/stores/src/modules/system.js"; import "../workspace/code/cloud-frontend/packages/stores/src/modules/user.js"; import { ElMessage as R } from "element-plus"; /* empty css */ /* empty css */ import "../workspace/code/cloud-frontend/node_modules/.pnpm/sm-crypto-v2@1.9.3/node_modules/sm-crypto-v2/dist/index.js"; /* empty css */ /* empty css */ /* 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 */ import ie from "../workspace/code/cloud-frontend/packages/ui/src/components/file-uploader/index.vue.js"; /* 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 "../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 */ /* empty css */ /* empty css */ /* empty css */ /* empty css */ /* empty css */ /* empty css */ /* empty css */ /* empty css */ /* empty css */ /* empty css */ /* empty css */ import me 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 { getData as de, updateData as ue, saveData as se } from "../workspace/code/cloud-frontend/service-modules/system/src/api/api-account.js"; import { getAll as pe } from "../workspace/code/cloud-frontend/service-modules/system/src/api/api-department.js"; import { getAllList as ne } from "../workspace/code/cloud-frontend/service-modules/system/src/api/api-role.js"; import q from "../workspace/code/cloud-frontend/service-modules/system/src/config.js"; import { accountType as fe } from "../workspace/code/cloud-frontend/service-modules/system/src/config/local-data.js"; import ye from "./components/job.vue.js"; import { ElInput as ce } 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 ve, ElForm as ge } 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 he, ElRadioGroup as 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/components/radio/index.js"; import { ElSwitch 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/switch/index.js"; import { ElOption as _e, ElSelect as Ve } 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/select/index.js"; import { ElTooltip as Ie } 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/tooltip/index.js"; import { ElTransfer as ke } 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/transfer/index.js"; import { ElButton as qe } 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 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/config-provider/index.js"; const xe = { class: "app-box h-[100%] overflow-hidden" }, Se = { class: "h-[100%] p-30" }, De = { class: "mb-10 flex text-20 color-[--el-text-color-primary] line-height-28" }, Le = { style: { flex: "1" } }, Ce = { class: "content-box h-[calc(100%-280px)] pb-20" }, Ee = { class: "form-box" }, Ue = { class: "ellipsis" }, _o = /* @__PURE__ */ ee({ name: "AccountAdd", __name: "add", props: { customName: {}, search: {}, btn: {}, showTree: { type: Boolean }, table: {}, addItem: {} }, setup($) { const a = $, A = re(), h = le(), m = ae(), N = y(), x = y(), w = y(!1), o = y({ id: void 0, account: "", workNumber: "", nickname: "", realName: "", phone: "", email: "", headImage: "", sex: 0, birthday: "", hidePhone: !1, userType: void 0, remarks: "", createdBy: void 0, updatedBy: void 0, roleIds: [], deptStationDtoList: [ { departmentId: void 0, stationId: void 0 } ] }), B = te({ realName: [ { required: !0, message: "请输入姓名", trigger: "blur" }, { pattern: k.userName.reg, message: "姓名只能输入汉字", trigger: ["blur", "change"], transform(r) { return r.trim(); } } ], phone: [ { required: !0, message: "请输入手机号", trigger: "blur" }, { pattern: k.phone.reg, message: "手机号格式错误,请重新输入", trigger: ["blur", "change"], transform(r) { return r.trim(); } } ], workNumber: [ { required: !0, message: `请输入${a.addItem.workCustomName || "工号"}`, trigger: "blur" }, { message: "请输入16位以内数字或大小写字母的组合", pattern: /^[a-z0-9]{1,16}$/i, trigger: ["blur", "change"], transform(r) { return r.trim(); } } ], email: [ { required: !0, message: "邮箱地址不能为空", trigger: "blur" }, { pattern: k.email.reg, message: "邮箱格式错误,请重新输入", trigger: ["blur", "change"], transform(r) { return r.trim(); } } ], deptStationDtoList: [ { required: !0, message: "请选择所属部门", trigger: "change" } ], userType: [ { required: !0, message: "请选择账号类型", trigger: "change" } ], roleIds: [ { required: !0, message: "请选择角色", trigger: "change" } ] }), S = y([]), D = y([]); async function z() { try { const { data: r } = await ne(), e = r.map((f) => ({ ...f, disabled: m.query.type === "show" })); S.value = e; } catch (r) { console.log(r); } } async function W() { try { const { data: r } = await pe(); D.value = r; } catch (r) { console.log(r); } } const v = y(!1); async function M() { var r; v.value = !0, (r = o.value.deptStationDtoList[0]) != null && r.departmentId || (o.value.deptStationDtoList = []); try { o.value.id ? (await ue(o.value), R.success("编辑成功"), v.value = !1, setTimeout(() => { h.replace("/system/account"); }, 1e3)) : (await se(o.value), R.success("新增成功"), v.value = !1, setTimeout(() => { h.replace("/system/account"); }, 1e3)); } catch { v.value = !1; } } async function X(r) { r && await r.validate((e, f) => { if (e) M(); else if (f) { const u = document.querySelector(".el-form-item.is-error"); u && u.scrollIntoView({ behavior: "smooth", block: "center" }); } }); } const L = y(!0), b = y(); async function j() { var r; L.value = !0; try { const { data: e } = await de(m.query.id), f = []; (r = e.roleVoList) == null || r.forEach((u) => { f.push(u.id); }), e.roleIds = f, b.value = e.phone, e.deptStationVoList.length > 0 ? (e.deptStationDtoList = e.deptStationVoList, delete e.deptStationVoList) : e.deptStationDtoList = [ { departmentId: void 0, stationId: void 0 } ], delete e.roleVoList, o.value = e; } catch (e) { console.log(e); } L.value = !1; } function G() { b.value && o.value.phone !== b.value ? w.value = !0 : w.value = !1; } return oe(async () => { a.addItem.showDept && await W(), a.addItem.showRole && await z(), m.query.id && j(); }), (r, e) => { const f = ce, u = ve, _ = he, H = we, J = be, C = _e, E = Ve, O = ie, K = Ie, Q = ke, U = qe, Y = ge, Z = Ne; return s(), p(Z, { locale: i(me) }, { default: l(() => [ c("div", xe, [ c("div", Se, [ c("div", De, [ c("div", Le, I(i(m).query.type === "show" ? `查看${a.customName || "员工"}` : o.value.id ? `编辑${a.customName || "员工"}` : `新增${a.customName || "员工"}`), 1) ]), c("div", Ce, [ c("div", Ee, [ d(Y, { ref_key: "formRef", ref: N, model: o.value, rules: B, "label-width": 120, class: "mt-15", "status-icon": "" }, { default: l(() => [ a.addItem.showName ? (s(), p(u, { key: 0, label: `${a.customName || "员工"}姓名`, prop: "realName" }, { default: l(() => [ d(f, { modelValue: o.value.realName, "onUpdate:modelValue": e[0] || (e[0] = (t) => o.value.realName = t), placeholder: `请输入${a.customName || "员工"}姓名`, style: { width: "300px" }, maxlength: 10, readonly: i(m).query.type === "show" }, null, 8, ["modelValue", "placeholder", "readonly"]) ]), _: 1 }, 8, ["label"])) : n("", !0), a.addItem.showSex ? (s(), p(u, { key: 1, label: "性别" }, { default: l(() => [ d(H, { modelValue: o.value.sex, "onUpdate:modelValue": e[1] || (e[1] = (t) => o.value.sex = t) }, { default: l(() => [ d(_, { value: 0, disabled: i(m).query.type === "show" }, { default: l(() => e[15] || (e[15] = [ g(" 保密 ") ])), _: 1 }, 8, ["disabled"]), d(_, { value: 1, disabled: i(m).query.type === "show" }, { default: l(() => e[16] || (e[16] = [ g(" 男 ") ])), _: 1 }, 8, ["disabled"]), d(_, { value: 2, disabled: i(m).query.type === "show" }, { default: l(() => e[17] || (e[17] = [ g(" 女 ") ])), _: 1 }, 8, ["disabled"]) ]), _: 1 }, 8, ["modelValue"]) ]), _: 1 })) : n("", !0), a.addItem.showPhone ? (s(), p(u, { key: 2, label: "手机号", prop: "phone" }, { default: l(() => [ d(f, { modelValue: o.value.phone, "onUpdate:modelValue": e[2] || (e[2] = (t) => o.value.phone = t), placeholder: "请输入手机号", style: { width: "300px" }, readonly: i(m).query.type === "show", onChange: G }, null, 8, ["modelValue", "readonly"]) ]), _: 1 })) : n("", !0), a.addItem.showWorkNumber ? (s(), p(u, { key: 3, label: a.addItem.workCustomName || "工号", prop: a.addItem.showListDept ? "" : "workNumber" }, { default: l(() => [ d(f, { modelValue: o.value.workNumber, "onUpdate:modelValue": e[3] || (e[3] = (t) => o.value.workNumber = t), placeholder: `请输入唯一的${a.addItem.workCustomName || "工号"}`, style: { width: "300px" }, readonly: i(m).query.type === "show" }, null, 8, ["modelValue", "placeholder", "readonly"]) ]), _: 1 }, 8, ["label", "prop"])) : n("", !0), a.addItem.showConfirmPhone && i(m).query.type !== "show" && w.value ? (s(), p(u, { key: 4, label: "确认手机号", required: "" }, { default: l(() => [ d(f, { modelValue: x.value, "onUpdate:modelValue": e[4] || (e[4] = (t) => x.value = t), placeholder: "请再次确认手机号", style: { width: "300px" }, readonly: i(m).query.type === "show" }, null, 8, ["modelValue", "readonly"]) ]), _: 1 })) : n("", !0), a.addItem.showEmail ? (s(), p(u, { key: 5, label: "邮箱地址", prop: a.addItem.showListDept ? "" : "email" }, { default: l(() => [ d(f, { modelValue: o.value.email, "onUpdate:modelValue": e[5] || (e[5] = (t) => o.value.email = t), placeholder: "请输入邮箱地址", style: { width: "300px" }, readonly: i(m).query.type === "show" }, null, 8, ["modelValue", "readonly"]) ]), _: 1 }, 8, ["prop"])) : n("", !0), a.addItem.showApp ? (s(), p(u, { key: 6, label: "APP隐藏手机号" }, { default: l(() => [ d(J, { modelValue: o.value.hidePhone, "onUpdate:modelValue": e[6] || (e[6] = (t) => o.value.hidePhone = t), "active-value": !0, "inactive-value": !1, disabled: i(m).query.type === "show" }, null, 8, ["modelValue", "disabled"]) ]), _: 1 })) : n("", !0), a.addItem.showDept ? (s(), p(u, { key: 7, label: "所属部门", prop: "deptStationDtoList" }, { default: l(() => [ d(E, { modelValue: o.value.deptStationDtoList[0].departmentId, "onUpdate:modelValue": e[7] || (e[7] = (t) => o.value.deptStationDtoList[0].departmentId = t), placeholder: "请选择", filterable: "", style: { width: "300px" }, disabled: i(m).query.type === "show" }, { default: l(() => [ (s(!0), T(P, null, F(D.value, (t, V) => (s(), p(C, { key: V, label: t.name, value: t.id }, null, 8, ["label", "value"]))), 128)) ]), _: 1 }, 8, ["modelValue", "disabled"]) ]), _: 1 })) : n("", !0), a.addItem.showAccountType ? (s(), p(u, { key: 8, label: "账号类型", prop: "userType", required: "" }, { default: l(() => [ d(E, { modelValue: o.value.userType, "onUpdate:modelValue": e[8] || (e[8] = (t) => o.value.userType = t), placeholder: "请选择", style: { width: "300px" }, disabled: i(m).query.type === "show" }, { default: l(() => [ (s(!0), T(P, null, F(i(fe), (t, V) => (s(), p(C, { key: V, label: t.label, value: t.value }, null, 8, ["label", "value"]))), 128)) ]), _: 1 }, 8, ["modelValue", "disabled"]) ]), _: 1 })) : n("", !0), a.addItem.showFile ? (s(), p(u, { key: 9, label: "用户头像" }, { default: l(() => [ d(O, { modelValue: o.value.headImage, "onUpdate:modelValue": e[9] || (e[9] = (t) => o.value.headImage = t), disabled: i(m).query.type === "show", "upload-api": i(q).fileServiceConfig.uploadFile, "upload-config": { namespace: i(q).fileServiceConfig.namespace, paramName: i(q).fileServiceConfig.uploadFileName }, headers: { Authorization: i(A).token }, "size-limit": 5 * 1024 * 1024, limit: 1, accept: ["image/jpeg", "image/png", "image/gif"] }, null, 8, ["modelValue", "disabled", "upload-api", "upload-config", "headers"]) ]), _: 1 })) : n("", !0), a.addItem.showListDept ? (s(), p(u, { key: 10, label: "部门岗位", prop: "deptStationDtoList" }, { default: l(() => [ d(ye, { modelValue: o.value.deptStationDtoList, "onUpdate:modelValue": e[10] || (e[10] = (t) => o.value.deptStationDtoList = t) }, null, 8, ["modelValue"]) ]), _: 1 })) : n("", !0), a.addItem.showRole ? (s(), p(u, { key: 11, label: "角色配置", prop: "roleIds" }, { default: l(() => [ d(Q, { modelValue: o.value.roleIds, "onUpdate:modelValue": e[11] || (e[11] = (t) => o.value.roleIds = t), titles: ["全部角色", "已选角色"], props: { key: "id", label: "name" }, data: S.value }, { default: l(({ option: t }) => [ d(K, { content: t.name, placement: "top", "show-after": 200 }, { default: l(() => [ c("span", Ue, I(t.name), 1) ]), _: 2 }, 1032, ["content"]) ]), _: 1 }, 8, ["modelValue", "data"]) ]), _: 1 })) : n("", !0), a.addItem.showDes ? (s(), p(u, { key: 12, label: "备注" }, { default: l(() => [ d(f, { modelValue: o.value.remarks, "onUpdate:modelValue": e[12] || (e[12] = (t) => o.value.remarks = t), style: { width: "600px" }, rows: 4, maxlength: "200", type: "textarea", placeholder: "请输入备注信息", readonly: i(m).query.type === "show" }, null, 8, ["modelValue", "readonly"]) ]), _: 1 })) : n("", !0), d(u, { class: "mt-10" }, { default: l(() => [ i(m).query.type !== "show" ? (s(), p(U, { key: 0, type: "primary", class: "w-108 line-height-30", loading: v.value, onClick: e[13] || (e[13] = (t) => X(N.value)) }, { default: l(() => e[18] || (e[18] = [ g(" 保存 ") ])), _: 1 }, 8, ["loading"])) : n("", !0), d(U, { class: "w-108 line-height-30", onClick: e[14] || (e[14] = (t) => i(h).go(-1)) }, { default: l(() => [ g(I(i(m).query.type === "show" ? "返回" : "取消"), 1) ]), _: 1 }) ]), _: 1 }) ]), _: 1 }, 8, ["model", "rules"]) ]) ]) ]) ]) ]), _: 1 }, 8, ["locale"]); }; } }); export { _o as default };