@cdwx/system
Version:
成都文宣业务类服务模块组件库
623 lines (622 loc) • 34.7 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 */
/* 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
};