diff --git a/README.md b/README.md index 48787b0..7f3b5d6 100644 --- a/README.md +++ b/README.md @@ -16,16 +16,16 @@ 构建镜像 ```bash -docker build -t material:1.0.5 . +docker build -t material:1.0.6 . ``` 保存镜像 ```bash -docker save material:1.0.5 -o material105.tar +docker save material:1.0.6 -o material106.tar ``` 加载镜像 ```bash -docker load -i material105.tar +docker load -i material106.tar ``` 启动容器 diff --git a/backend/app/api/v1/admin/users.py b/backend/app/api/v1/admin/users.py index 0d7049d..8848aa6 100644 --- a/backend/app/api/v1/admin/users.py +++ b/backend/app/api/v1/admin/users.py @@ -26,7 +26,7 @@ async def create_user( user_obj = await user_controller.create(obj_in=item) await user_obj.roles.add(role_obj) except Exception as e: - logger.error(f"用户 {item.nickname} 已存在") + logger.error(f"用户添加失败:{e}") continue return Success(msg="创建成功!") @@ -116,4 +116,3 @@ async def reset_pwd( user.password = get_password_hash(data["newPwd"]) await user.save() return Success(msg="Reset Successfully") - diff --git a/backend/app/api/v1/material/borrowed.py b/backend/app/api/v1/material/borrowed.py index 72f1918..1698ffe 100644 --- a/backend/app/api/v1/material/borrowed.py +++ b/backend/app/api/v1/material/borrowed.py @@ -33,7 +33,8 @@ async def create_borrowed(data: CreateBorrowedInfo): item["userDepart"] = data.depart item["uuid"] = data.uuid user = await user_controller.get_by_uuid(item["uuid"]) - item["phone"] = user.mobile + if not (len(item["phone"]) > 0): + item["phone"] = user.mobile item["reason"] = data.reason item["material_id"] = material.id obj: Borrowed = await borrowedController.create(obj_in=item) @@ -70,10 +71,10 @@ async def get_home_list( material = await obj.material.all().values("name", "model", "position", "number", "borrowed") obj_dict = await obj.to_dict() if obj.borrowApproveStatus: - borrowApproveUser = await obj.borrowApproveUser.all().values("id", "nickname", "mobile", "department") + borrowApproveUser = await obj.borrowApproveUser.all().values("id", "nickname", "employeeID", "mobile", "department") obj_dict["borrowApproveUser"] = borrowApproveUser if obj.returnApproveStatus: - returnApproveUser = await obj.returnApproveUser.all().values("id", "nickname", "mobile", "department") + returnApproveUser = await obj.returnApproveUser.all().values("id", "nickname", "employeeID", "mobile", "department") obj_dict["returnApproveUser"] = returnApproveUser obj_dict["material"] = material data.append(obj_dict) diff --git a/backend/app/api/v1/material/checked.py b/backend/app/api/v1/material/checked.py index 83540c8..0d472c4 100644 --- a/backend/app/api/v1/material/checked.py +++ b/backend/app/api/v1/material/checked.py @@ -47,7 +47,7 @@ async def get_checked( data = [] for obj in checked_objs: user = await obj.toCheckUser.all() - userDepart = user.department + userDepart = user.company + user.department material = await obj.material.all() material_dict = await material.to_dict() user_dict = await user.to_dict() @@ -57,7 +57,7 @@ async def get_checked( obj_dict["toCheckUser"] = user_dict try: user2 = await obj.toReturnUser.all() - user2Depart = user2.department + user2Depart = user2.company + user2.department user_dict2 = await user2.to_dict() obj_dict["toReturnUser"] = user_dict2 user_dict2["depart"] = user2Depart diff --git a/backend/app/core/init_db.py b/backend/app/core/init_db.py index 9acf041..6c381f7 100644 --- a/backend/app/core/init_db.py +++ b/backend/app/core/init_db.py @@ -30,7 +30,7 @@ async def tortoise_init(app: FastAPI): await init_api(app) await init_menus() await init_roles() - await register_superAdmin() + # await register_superAdmin() async def register_superAdmin(): diff --git a/backend/app/schemas/users.py b/backend/app/schemas/users.py index 357b450..e49a19d 100644 --- a/backend/app/schemas/users.py +++ b/backend/app/schemas/users.py @@ -36,7 +36,6 @@ class UpdateStatus(BaseModel): status: int = Field(description="状态") - class UserLdap(BaseModel): sAMAccountName: str = Field(description="邮箱前缀") employeeID: str = Field(description="工号") @@ -47,6 +46,15 @@ class UserLdap(BaseModel): name: str = Field(description="姓名") dn: str = Field(description="DN") +class UserLdapCreate(BaseModel): + username: str + nickname: str + email: str + mobile: str + employeeID: str + department: str + company: str + if __name__ == '__main__': pass diff --git a/backend/app/utils/cnnp.py b/backend/app/utils/cnnp.py index 50f9272..3fb8cdb 100644 --- a/backend/app/utils/cnnp.py +++ b/backend/app/utils/cnnp.py @@ -4,7 +4,7 @@ from ldap3 import Server, Connection, ALL, SUBTREE from app.utils.log import logger -from app.schemas.users import UserLdap, UserCreate +from app.schemas.users import UserLdap, UserLdapCreate from app.settings import settings @@ -35,13 +35,13 @@ def get_user_info(self, username: str) -> UserLdap: raise HTTPException(status_code=400, detail="用户不存在") else: return UserLdap( - company="海南核电有限公司", - department="运行一处运行值", + company="xxx有限公司", + department="xx处xx科", employeeID="10000", mobile="13800138000", mail="EMAIL", - dn="cn=liushuo,ou=海南核电有限公司,dc=cnnp,dc=com,dc=cn", - sAMAccountName="liushuo", + dn="cn=zhangsan,ou=xxx有限公司,dc=com,dc=cn", + sAMAccountName="zhangsan", name="张三" ) @@ -65,7 +65,7 @@ def getUserList(self, fiterKey: str, fiterValue: str) -> list[UserLdap]: if self.conn.search(settings.LDAP_BASE, f'({fiterKey}={fiterValue})', attributes=self.attr): userList = self.conn.entries for user in userList: - userList[userList.index(user)] = UserCreate( + userList[userList.index(user)] = UserLdapCreate( employeeID=user.employeeID.value, username=user.sAMAccountName.value, nickname=user.name.value, @@ -86,23 +86,15 @@ def getUserList(self, fiterKey: str, fiterValue: str) -> list[UserLdap]: if __name__ == '__main__': - from ldap3 import SUBTREE, ALL_ATTRIBUTES - # server = Server('10.20.21.2', get_info=ALL, connect_timeout=10) - server = Server('panel2.pylover.net.', get_info=ALL, connect_timeout=10) - conn = Connection(server, user='uid=test,ou=people,dc=eryajf,dc=net', password='test1234', auto_bind=True, authentication="SIMPLE") - conn.search('ou=海南核电有限公司,dc=cnnp,dc=com,dc=cn', '(sAMAccountName=liushuo)', SUBTREE, attributes=ALL_ATTRIBUTES) # 获取所有信息 - attr = ["cn", "company", "department", "employeeID", "mobile", "name", "mail", "distinguishedName"] - conn.search('ou=海南核电有限公司,dc=cnnp,dc=com,dc=cn', '(sAMAccountName=liushuo)', SUBTREE, attributes=attr) - entry = conn.entries[0] - conn.unbind() """ cn: 姓名 company: 公司 - department: 运行一处运行值 + department: xx处xx科 employeeID: 工号 mobile: 手机 name: 姓名 mail: 邮箱 - distinguishedName: cn=xxx,ou=xxx,dc=cnnp,dc=com,dc=cn + distinguishedName: cn=xxx,ou=xxx,dc=com,dc=cn """ + pass diff --git a/frontend/src/views/admin/Approval/index.vue b/frontend/src/views/admin/Approval/index.vue index 451b627..e03eb3e 100644 --- a/frontend/src/views/admin/Approval/index.vue +++ b/frontend/src/views/admin/Approval/index.vue @@ -35,7 +35,7 @@ onMounted(() => { areaOpt.value = res.data.map(item => { return { label: item.name, - value: item.id + value: item.code }; }); }); diff --git a/frontend/src/views/admin/Approval/panels/returned.vue b/frontend/src/views/admin/Approval/panels/returned.vue index 17643ea..ce0f429 100644 --- a/frontend/src/views/admin/Approval/panels/returned.vue +++ b/frontend/src/views/admin/Approval/panels/returned.vue @@ -172,7 +172,7 @@ const columns: TableColumnList = [ prop: "reason", cellRenderer: ({ row }) => ( ( ) }} @@ -251,9 +251,9 @@ const columns: TableColumnList = [ ), default: () => ( ) }} diff --git a/frontend/src/views/admin/Approval/panels/returning.vue b/frontend/src/views/admin/Approval/panels/returning.vue index a7a7e87..9cb39bc 100644 --- a/frontend/src/views/admin/Approval/panels/returning.vue +++ b/frontend/src/views/admin/Approval/panels/returning.vue @@ -50,7 +50,6 @@ const onSearchReturn = () => { }); }; -const selectedNum = ref(0); // 表格ref const tableRef = ref(); @@ -201,7 +200,7 @@ const onBatchReturn = () => { /** 取消选择 */ function onSelectionCancel() { - selectedNum.value = 0; + returnSelectedNum.value = 0; // 用于多选表格,清空用户的选择 tableRef.value.getTableRef().clearSelection(); } @@ -286,7 +285,7 @@ function handleCurrentChange(val: number) { >