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