隐患详情重新设计,检查计划重新设计成做题排查式
This commit is contained in:
@@ -39,10 +39,10 @@ const _sfc_main = {
|
||||
const userInfoStr = common_vendor.index.getStorageSync("userInfo");
|
||||
if (userInfoStr) {
|
||||
userInfo.value = JSON.parse(userInfoStr);
|
||||
common_vendor.index.__f__("log", "at pages/membermanagemen/membermanagemen.vue:147", "用户信息:", userInfo.value);
|
||||
common_vendor.index.__f__("log", "at pages/membermanagemen/membermanagemen.vue:166", "用户信息:", userInfo.value);
|
||||
}
|
||||
} catch (error) {
|
||||
common_vendor.index.__f__("error", "at pages/membermanagemen/membermanagemen.vue:150", "获取用户信息失败:", error);
|
||||
common_vendor.index.__f__("error", "at pages/membermanagemen/membermanagemen.vue:169", "获取用户信息失败:", error);
|
||||
}
|
||||
};
|
||||
const list = common_vendor.ref([]);
|
||||
@@ -51,43 +51,103 @@ const _sfc_main = {
|
||||
const res = await request_api.getMemberList();
|
||||
if (res.code === 0 && res.data) {
|
||||
list.value = res.data;
|
||||
common_vendor.index.__f__("log", "at pages/membermanagemen/membermanagemen.vue:163", "成员列表:", res.data);
|
||||
common_vendor.index.__f__("log", "at pages/membermanagemen/membermanagemen.vue:182", "成员列表:", res.data);
|
||||
}
|
||||
} catch (error) {
|
||||
common_vendor.index.__f__("error", "at pages/membermanagemen/membermanagemen.vue:166", "获取成员列表失败:", error);
|
||||
common_vendor.index.__f__("error", "at pages/membermanagemen/membermanagemen.vue:185", "获取成员列表失败:", error);
|
||||
}
|
||||
};
|
||||
const showPopup = common_vendor.ref(false);
|
||||
const showRolePicker = common_vendor.ref(false);
|
||||
const showPostPicker = common_vendor.ref(false);
|
||||
const selectedRoleName = common_vendor.ref("");
|
||||
const selectedPostName = common_vendor.ref("");
|
||||
const formData = common_vendor.reactive({
|
||||
username: "",
|
||||
nickname: "",
|
||||
phone: "",
|
||||
password: "",
|
||||
roleType: ""
|
||||
roleType: "",
|
||||
postId: ""
|
||||
});
|
||||
const roleColumns = common_vendor.reactive([
|
||||
["管理员", "普通成员"]
|
||||
]);
|
||||
const roleMap = {
|
||||
"管理员": "manage",
|
||||
"普通成员": "common"
|
||||
const roleOptions = common_vendor.ref([]);
|
||||
const roleColumns = common_vendor.ref([[]]);
|
||||
const postOptions = common_vendor.ref([]);
|
||||
const postColumns = common_vendor.ref([[]]);
|
||||
const postPlaceholder = common_vendor.computed(() => {
|
||||
if (!userInfo.value.deptId)
|
||||
return "请先登录并确认部门信息";
|
||||
return postOptions.value.length ? "请选择岗位" : "暂无可用岗位";
|
||||
});
|
||||
const openAddMemberPopup = async () => {
|
||||
getUserInfo();
|
||||
const deptId = userInfo.value.deptId;
|
||||
if (!deptId) {
|
||||
common_vendor.index.showToast({ title: "缺少部门信息,无法添加成员", icon: "none" });
|
||||
return;
|
||||
}
|
||||
try {
|
||||
common_vendor.index.showLoading({ title: "加载中..." });
|
||||
const [optionsRes, postRes] = await Promise.all([
|
||||
request_api.getSystemUserFormOptions(),
|
||||
request_api.listPostByDeptId(deptId)
|
||||
]);
|
||||
common_vendor.index.hideLoading();
|
||||
if (optionsRes.code !== 0 || !Array.isArray(optionsRes.roles) || !optionsRes.roles.length) {
|
||||
common_vendor.index.showToast({ title: optionsRes.msg || "获取角色列表失败", icon: "none" });
|
||||
return;
|
||||
}
|
||||
roleOptions.value = optionsRes.roles.filter((item) => item.status === "0");
|
||||
roleColumns.value = [roleOptions.value.map((item) => item.roleName)];
|
||||
const posts = postRes.data || postRes.rows || [];
|
||||
postOptions.value = posts.filter((item) => item.status === "0");
|
||||
postColumns.value = [postOptions.value.map((item) => item.postName)];
|
||||
showPopup.value = true;
|
||||
} catch (error) {
|
||||
common_vendor.index.hideLoading();
|
||||
common_vendor.index.__f__("error", "at pages/membermanagemen/membermanagemen.vue:251", "获取表单选项失败:", error);
|
||||
common_vendor.index.showToast({
|
||||
title: (error == null ? void 0 : error.msg) || "获取表单选项失败",
|
||||
icon: "none"
|
||||
});
|
||||
}
|
||||
};
|
||||
const openPostPicker = () => {
|
||||
if (!postOptions.value.length) {
|
||||
common_vendor.index.showToast({ title: "当前部门暂无可用岗位", icon: "none" });
|
||||
return;
|
||||
}
|
||||
showPostPicker.value = true;
|
||||
};
|
||||
const onRoleConfirm = (e) => {
|
||||
if (e.value && e.value.length > 0) {
|
||||
selectedRoleName.value = e.value[0];
|
||||
formData.roleType = roleMap[e.value[0]];
|
||||
const roleName = e.value[0];
|
||||
const role = roleOptions.value.find((item) => item.roleName === roleName);
|
||||
selectedRoleName.value = roleName;
|
||||
formData.roleType = (role == null ? void 0 : role.roleKey) || "";
|
||||
}
|
||||
showRolePicker.value = false;
|
||||
};
|
||||
const onPostConfirm = (e) => {
|
||||
if (e.value && e.value.length > 0) {
|
||||
const postName = e.value[0];
|
||||
const post = postOptions.value.find((item) => item.postName === postName);
|
||||
selectedPostName.value = postName;
|
||||
formData.postId = (post == null ? void 0 : post.postId) ?? "";
|
||||
}
|
||||
showPostPicker.value = false;
|
||||
};
|
||||
const resetForm = () => {
|
||||
formData.username = "";
|
||||
formData.nickname = "";
|
||||
formData.phone = "";
|
||||
formData.password = "";
|
||||
formData.roleType = "";
|
||||
formData.postId = "";
|
||||
selectedRoleName.value = "";
|
||||
selectedPostName.value = "";
|
||||
postOptions.value = [];
|
||||
postColumns.value = [[]];
|
||||
};
|
||||
const handleSubmit = async () => {
|
||||
if (!formData.username) {
|
||||
@@ -102,13 +162,23 @@ const _sfc_main = {
|
||||
common_vendor.index.showToast({ title: "请选择角色类型", icon: "none" });
|
||||
return;
|
||||
}
|
||||
getUserInfo();
|
||||
const deptId = userInfo.value.deptId;
|
||||
if (!deptId) {
|
||||
common_vendor.index.showToast({ title: "缺少部门信息,无法添加成员", icon: "none" });
|
||||
return;
|
||||
}
|
||||
const params = {
|
||||
userName: formData.username,
|
||||
nickName: formData.nickname || "",
|
||||
phonenumber: formData.phone || "",
|
||||
password: formData.password,
|
||||
roleType: formData.roleType
|
||||
roleType: formData.roleType,
|
||||
deptId
|
||||
};
|
||||
if (formData.postId) {
|
||||
params.postId = formData.postId;
|
||||
}
|
||||
try {
|
||||
const res = await request_api.addMember(params);
|
||||
if (res.code === 0) {
|
||||
@@ -120,7 +190,7 @@ const _sfc_main = {
|
||||
common_vendor.index.showToast({ title: res.msg || "添加失败", icon: "none" });
|
||||
}
|
||||
} catch (error) {
|
||||
common_vendor.index.__f__("error", "at pages/membermanagemen/membermanagemen.vue:249", "添加成员失败:", error);
|
||||
common_vendor.index.__f__("error", "at pages/membermanagemen/membermanagemen.vue:349", "添加成员失败:", error);
|
||||
common_vendor.index.showToast({ title: "请求失败", icon: "none" });
|
||||
}
|
||||
};
|
||||
@@ -147,7 +217,7 @@ const _sfc_main = {
|
||||
common_vendor.index.showToast({ title: result.msg || `${actionText}失败`, icon: "none" });
|
||||
}
|
||||
} catch (error) {
|
||||
common_vendor.index.__f__("error", "at pages/membermanagemen/membermanagemen.vue:280", `${actionText}成员失败:`, error);
|
||||
common_vendor.index.__f__("error", "at pages/membermanagemen/membermanagemen.vue:380", `${actionText}成员失败:`, error);
|
||||
common_vendor.index.showToast({ title: "请求失败", icon: "none" });
|
||||
}
|
||||
}
|
||||
@@ -174,7 +244,7 @@ const _sfc_main = {
|
||||
h: index < list.value.length - 1 ? 1 : ""
|
||||
};
|
||||
}),
|
||||
d: common_vendor.o(($event) => showPopup.value = true),
|
||||
d: common_vendor.o(openAddMemberPopup),
|
||||
e: common_vendor.o(($event) => showPopup.value = false),
|
||||
f: common_vendor.o(($event) => formData.username = $event),
|
||||
g: common_vendor.p({
|
||||
@@ -205,23 +275,33 @@ const _sfc_main = {
|
||||
n: common_vendor.t(selectedRoleName.value || "请选择角色类型"),
|
||||
o: common_vendor.n(selectedRoleName.value ? "" : "text-gray"),
|
||||
p: common_vendor.o(($event) => showRolePicker.value = true),
|
||||
q: common_vendor.o(($event) => showPopup.value = false),
|
||||
r: common_vendor.o(handleSubmit),
|
||||
s: common_vendor.o(($event) => showPopup.value = false),
|
||||
t: common_vendor.p({
|
||||
q: common_vendor.t(selectedPostName.value || postPlaceholder.value),
|
||||
r: common_vendor.n(selectedPostName.value ? "" : "text-gray"),
|
||||
s: common_vendor.o(openPostPicker),
|
||||
t: common_vendor.o(($event) => showPopup.value = false),
|
||||
v: common_vendor.o(handleSubmit),
|
||||
w: common_vendor.o(($event) => showPopup.value = false),
|
||||
x: common_vendor.p({
|
||||
show: showPopup.value,
|
||||
mode: "center",
|
||||
round: "20",
|
||||
safeAreaInsetBottom: false
|
||||
}),
|
||||
v: common_vendor.o(onRoleConfirm),
|
||||
w: common_vendor.o(($event) => showRolePicker.value = false),
|
||||
x: common_vendor.o(($event) => showRolePicker.value = false),
|
||||
y: common_vendor.p({
|
||||
show: showRolePicker.value,
|
||||
columns: roleColumns
|
||||
y: common_vendor.o(onPostConfirm),
|
||||
z: common_vendor.o(($event) => showPostPicker.value = false),
|
||||
A: common_vendor.o(($event) => showPostPicker.value = false),
|
||||
B: common_vendor.p({
|
||||
show: showPostPicker.value,
|
||||
columns: postColumns.value
|
||||
}),
|
||||
z: common_vendor.gei(_ctx, "")
|
||||
C: common_vendor.o(onRoleConfirm),
|
||||
D: common_vendor.o(($event) => showRolePicker.value = false),
|
||||
E: common_vendor.o(($event) => showRolePicker.value = false),
|
||||
F: common_vendor.p({
|
||||
show: showRolePicker.value,
|
||||
columns: roleColumns.value
|
||||
}),
|
||||
G: common_vendor.gei(_ctx, "")
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1 +1 @@
|
||||
<view class="{{['page', 'padding', 'data-v-06d9f81b', virtualHostClass]}}" style="{{virtualHostStyle}}" hidden="{{virtualHostHidden || false}}" id="{{z}}"><view class="member-card bg-white radius data-v-06d9f81b"><view class="card-header data-v-06d9f81b"><view class="flex align-center data-v-06d9f81b"><view class="border-line data-v-06d9f81b"></view><view class="text-bold margin-left-sm data-v-06d9f81b">{{a}}</view></view><view class="role-tag data-v-06d9f81b">{{b}}</view></view><view class="member-list data-v-06d9f81b"><view wx:for="{{c}}" wx:for-item="item" wx:key="g" class="{{['member-item', 'data-v-06d9f81b', item.h && 'border-bottom']}}"><view class="cu-avatar radius lg bg-gray data-v-06d9f81b" style="background-image:url(https://cube.elemecdn.com/3/7c/3ea6beec64369c2642b92c6726f1epng.png)"></view><view class="member-info data-v-06d9f81b"><view class="flex align-center data-v-06d9f81b"><text class="member-name data-v-06d9f81b">{{item.a}}</text><view class="{{['status-tag', 'data-v-06d9f81b', item.c]}}">{{item.b}}</view></view><view class="member-phone text-gray data-v-06d9f81b"><text class="data-v-06d9f81b">手机:{{item.d}}</text></view></view><button class="btn-lock bg-blue data-v-06d9f81b" bindtap="{{item.f}}">{{item.e}}</button></view></view><view class="add-btn-wrapper data-v-06d9f81b"><button class="add-btn data-v-06d9f81b" bindtap="{{d}}"><text class="cuIcon-add data-v-06d9f81b"></text><text class="data-v-06d9f81b">添加成员</text></button></view></view><u-popup wx:if="{{t}}" class="data-v-06d9f81b" virtualHostClass="data-v-06d9f81b" u-s="{{['d']}}" bindclose="{{s}}" u-i="06d9f81b-0" bind:__l="__l" u-p="{{t}}"><view class="popup-content data-v-06d9f81b"><view class="popup-header data-v-06d9f81b"><view class="popup-title text-bold data-v-06d9f81b">添加成员</view><view class="popup-close data-v-06d9f81b" bindtap="{{e}}">×</view></view><scroll-view class="popup-body data-v-06d9f81b" scroll-y><view class="form-item data-v-06d9f81b"><view class="form-label data-v-06d9f81b">用户名<text class="text-red data-v-06d9f81b">*</text></view><up-input wx:if="{{g}}" class="data-v-06d9f81b" virtualHostClass="data-v-06d9f81b" u-i="06d9f81b-1,06d9f81b-0" bind:__l="__l" bindupdateModelValue="{{f}}" u-p="{{g}}"></up-input></view><view class="form-item data-v-06d9f81b"><view class="form-label data-v-06d9f81b">昵称</view><up-input wx:if="{{i}}" class="data-v-06d9f81b" virtualHostClass="data-v-06d9f81b" u-i="06d9f81b-2,06d9f81b-0" bind:__l="__l" bindupdateModelValue="{{h}}" u-p="{{i}}"></up-input></view><view class="form-item data-v-06d9f81b"><view class="form-label data-v-06d9f81b">手机号</view><up-input wx:if="{{k}}" class="data-v-06d9f81b" virtualHostClass="data-v-06d9f81b" u-i="06d9f81b-3,06d9f81b-0" bind:__l="__l" bindupdateModelValue="{{j}}" u-p="{{k}}"></up-input></view><view class="form-item data-v-06d9f81b"><view class="form-label data-v-06d9f81b">密码<text class="text-red data-v-06d9f81b">*</text></view><up-input wx:if="{{m}}" class="data-v-06d9f81b" virtualHostClass="data-v-06d9f81b" u-i="06d9f81b-4,06d9f81b-0" bind:__l="__l" bindupdateModelValue="{{l}}" u-p="{{m}}"></up-input></view><view class="form-item data-v-06d9f81b"><view class="form-label data-v-06d9f81b">角色类型<text class="text-red data-v-06d9f81b">*</text></view><view class="form-select data-v-06d9f81b" bindtap="{{p}}"><text class="{{['data-v-06d9f81b', o]}}">{{n}}</text><text class="cuIcon-unfold data-v-06d9f81b"></text></view></view><view class="data-v-06d9f81b" style="height:40rpx"></view></scroll-view><view class="popup-footer data-v-06d9f81b"><button class="btn-cancel data-v-06d9f81b" bindtap="{{q}}">取消</button><button class="btn-confirm bg-blue data-v-06d9f81b" bindtap="{{r}}">确定</button></view></view></u-popup><up-picker wx:if="{{y}}" class="data-v-06d9f81b" virtualHostClass="data-v-06d9f81b" bindconfirm="{{v}}" bindcancel="{{w}}" bindclose="{{x}}" u-i="06d9f81b-5" bind:__l="__l" u-p="{{y}}"></up-picker><tab-bar class="data-v-06d9f81b" virtualHostClass="data-v-06d9f81b" u-i="06d9f81b-6" bind:__l="__l"/></view>
|
||||
<view class="{{['page', 'padding', 'data-v-06d9f81b', virtualHostClass]}}" style="{{virtualHostStyle}}" hidden="{{virtualHostHidden || false}}" id="{{G}}"><view class="member-card bg-white radius data-v-06d9f81b"><view class="card-header data-v-06d9f81b"><view class="flex align-center data-v-06d9f81b"><view class="border-line data-v-06d9f81b"></view><view class="text-bold margin-left-sm data-v-06d9f81b">{{a}}</view></view><view class="role-tag data-v-06d9f81b">{{b}}</view></view><view class="member-list data-v-06d9f81b"><view wx:for="{{c}}" wx:for-item="item" wx:key="g" class="{{['member-item', 'data-v-06d9f81b', item.h && 'border-bottom']}}"><view class="cu-avatar radius lg bg-gray data-v-06d9f81b" style="background-image:url(https://cube.elemecdn.com/3/7c/3ea6beec64369c2642b92c6726f1epng.png)"></view><view class="member-info data-v-06d9f81b"><view class="flex align-center data-v-06d9f81b"><text class="member-name data-v-06d9f81b">{{item.a}}</text><view class="{{['status-tag', 'data-v-06d9f81b', item.c]}}">{{item.b}}</view></view><view class="member-phone text-gray data-v-06d9f81b"><text class="data-v-06d9f81b">手机:{{item.d}}</text></view></view><button class="btn-lock bg-blue data-v-06d9f81b" bindtap="{{item.f}}">{{item.e}}</button></view></view><view class="add-btn-wrapper data-v-06d9f81b"><button class="add-btn data-v-06d9f81b" bindtap="{{d}}"><text class="cuIcon-add data-v-06d9f81b"></text><text class="data-v-06d9f81b">添加成员</text></button></view></view><u-popup wx:if="{{x}}" class="data-v-06d9f81b" virtualHostClass="data-v-06d9f81b" u-s="{{['d']}}" bindclose="{{w}}" u-i="06d9f81b-0" bind:__l="__l" u-p="{{x}}"><view class="popup-content data-v-06d9f81b"><view class="popup-header data-v-06d9f81b"><view class="popup-title text-bold data-v-06d9f81b">添加成员</view><view class="popup-close data-v-06d9f81b" bindtap="{{e}}">×</view></view><scroll-view class="popup-body data-v-06d9f81b" scroll-y><view class="form-item data-v-06d9f81b"><view class="form-label data-v-06d9f81b">用户名<text class="text-red data-v-06d9f81b">*</text></view><up-input wx:if="{{g}}" class="data-v-06d9f81b" virtualHostClass="data-v-06d9f81b" u-i="06d9f81b-1,06d9f81b-0" bind:__l="__l" bindupdateModelValue="{{f}}" u-p="{{g}}"></up-input></view><view class="form-item data-v-06d9f81b"><view class="form-label data-v-06d9f81b">昵称</view><up-input wx:if="{{i}}" class="data-v-06d9f81b" virtualHostClass="data-v-06d9f81b" u-i="06d9f81b-2,06d9f81b-0" bind:__l="__l" bindupdateModelValue="{{h}}" u-p="{{i}}"></up-input></view><view class="form-item data-v-06d9f81b"><view class="form-label data-v-06d9f81b">手机号</view><up-input wx:if="{{k}}" class="data-v-06d9f81b" virtualHostClass="data-v-06d9f81b" u-i="06d9f81b-3,06d9f81b-0" bind:__l="__l" bindupdateModelValue="{{j}}" u-p="{{k}}"></up-input></view><view class="form-item data-v-06d9f81b"><view class="form-label data-v-06d9f81b">密码<text class="text-red data-v-06d9f81b">*</text></view><up-input wx:if="{{m}}" class="data-v-06d9f81b" virtualHostClass="data-v-06d9f81b" u-i="06d9f81b-4,06d9f81b-0" bind:__l="__l" bindupdateModelValue="{{l}}" u-p="{{m}}"></up-input></view><view class="form-item data-v-06d9f81b"><view class="form-label data-v-06d9f81b">角色类型<text class="text-red data-v-06d9f81b">*</text></view><view class="form-select data-v-06d9f81b" bindtap="{{p}}"><text class="{{['data-v-06d9f81b', o]}}">{{n}}</text><text class="cuIcon-unfold data-v-06d9f81b"></text></view></view><view class="form-item data-v-06d9f81b"><view class="form-label data-v-06d9f81b">岗位</view><view class="form-select data-v-06d9f81b" bindtap="{{s}}"><text class="{{['data-v-06d9f81b', r]}}">{{q}}</text><text class="cuIcon-unfold data-v-06d9f81b"></text></view></view><view class="data-v-06d9f81b" style="height:40rpx"></view></scroll-view><view class="popup-footer data-v-06d9f81b"><button class="btn-cancel data-v-06d9f81b" bindtap="{{t}}">取消</button><button class="btn-confirm bg-blue data-v-06d9f81b" bindtap="{{v}}">确定</button></view></view></u-popup><up-picker wx:if="{{B}}" class="data-v-06d9f81b" virtualHostClass="data-v-06d9f81b" bindconfirm="{{y}}" bindcancel="{{z}}" bindclose="{{A}}" u-i="06d9f81b-5" bind:__l="__l" u-p="{{B}}"></up-picker><up-picker wx:if="{{F}}" class="data-v-06d9f81b" virtualHostClass="data-v-06d9f81b" bindconfirm="{{C}}" bindcancel="{{D}}" bindclose="{{E}}" u-i="06d9f81b-6" bind:__l="__l" u-p="{{F}}"></up-picker><tab-bar class="data-v-06d9f81b" virtualHostClass="data-v-06d9f81b" u-i="06d9f81b-7" bind:__l="__l"/></view>
|
||||
Reference in New Issue
Block a user