diff --git a/apps/account/serializers.py b/apps/account/serializers.py index e0b8574..77650e9 100644 --- a/apps/account/serializers.py +++ b/apps/account/serializers.py @@ -24,8 +24,8 @@ class SubuserSerializer(serializers.ModelSerializer): class Meta: model = User - fields = ['phone', 'username', 'create_date', 'roles', 'role_names'] - read_only_fields = ['create_date', 'roles', 'role_names'] + read_only_fields = ['id', 'create_date'] + fields = ['phone', 'username', 'roles', 'role_names', *read_only_fields] def validate(self, data): if not data.get('username') or not data.get('phone'): @@ -51,7 +51,7 @@ class AccountSerializer(serializers.ModelSerializer): class Meta: model = Account - fields = ['id', 'name', 'account', 'holder', 'warehouse', 'warehouse_name', + fields = ['name', 'account', 'holder', 'warehouse', 'warehouse_name', 'type', 'status', 'order', 'remark'] read_only_fields = ['id', 'warehouse_name'] diff --git a/apps/account/urls.py b/apps/account/urls.py index 0b56fa4..129c3db 100644 --- a/apps/account/urls.py +++ b/apps/account/urls.py @@ -5,7 +5,7 @@ urlpatterns = [ path('roles/', views.RoleViewSet.as_view({'get': 'list', 'post': 'create'})), path('roles//', views.RoleViewSet.as_view({'put': 'update', 'delete': 'destroy'})), path('subusers/', views.SubusertViewSet.as_view({'get': 'list', 'post': 'create'})), - path('subusers//', views.SubusertViewSet.as_view({'put': 'update', 'patch': 'partial_update', 'delete': 'destroy'})), + path('subusers//', views.SubusertViewSet.as_view({'put': 'update', 'patch': 'partial_update', 'delete': 'destroy'})), path('accounts/', views.AccountViewSet.as_view({'get': 'list', 'post': 'create'})), path('accounts//', views.AccountViewSet.as_view({'put': 'update', 'delete': 'destroy'})), path('sellers/', views.SellerViewSet.as_view({'get': 'list'})), diff --git a/apps/user/models.py b/apps/user/models.py index 7b8dd8f..b0413f1 100644 --- a/apps/user/models.py +++ b/apps/user/models.py @@ -16,11 +16,11 @@ class UserManager(BaseUserManager): class User(AbstractBaseUser): - username = models.CharField(primary_key=True, max_length=24) + username = models.CharField(max_length=24, unique=True) phone = models.CharField(max_length=12) teams = models.ForeignKey('user.Teams', models.CASCADE, related_name='users') - roles = models.ManyToManyField('account.Role', related_name='users') + roles = models.ManyToManyField('account.Role', blank=True, related_name='users') create_date = models.DateTimeField(auto_now_add=True) is_boss = models.BooleanField(default=True) is_delete = models.BooleanField(default=False) diff --git a/frontend/src/api/account.js b/frontend/src/api/account.js index f188506..85df54b 100644 --- a/frontend/src/api/account.js +++ b/frontend/src/api/account.js @@ -54,9 +54,9 @@ export function subuserCreate(form) { }) } -export function subuserUpdate(username, form) { +export function subuserUpdate(form) { return axios({ - url: `/api/subusers/${username}/`, + url: `/api/subusers/${form.id}/`, headers: { 'X-CSRFToken': Cookies.get('csrftoken') }, method: 'put', data: form, @@ -65,7 +65,7 @@ export function subuserUpdate(username, form) { export function subuserReset(form) { return axios({ - url: `/api/subusers/${form.username}/`, + url: `/api/subusers/${form.id}/`, headers: { 'X-CSRFToken': Cookies.get('csrftoken') }, method: 'patch', data: form, @@ -74,7 +74,7 @@ export function subuserReset(form) { export function subuserDestroy(form) { return axios({ - url: `/api/subusers/${form.username}/`, + url: `/api/subusers/${form.id}/`, headers: { 'X-CSRFToken': Cookies.get('csrftoken') }, method: 'delete', }) diff --git a/frontend/src/views/client/Client.vue b/frontend/src/views/client/Client.vue index 8bd96e9..8b7ec67 100644 --- a/frontend/src/views/client/Client.vue +++ b/frontend/src/views/client/Client.vue @@ -177,7 +177,7 @@ clientDestroy(form) .then(() => { this.$message.success('删除成功'); - this.items.splice(this.items.findIndex(item => item.username === form.username), 1); + this.items.splice(this.items.findIndex(item => item.id === form.id), 1); }) .catch(err => { this.$message.error(err.response.data.message); diff --git a/frontend/src/views/subuser/ResetModal.vue b/frontend/src/views/subuser/ResetModal.vue index ac9a385..8bc4480 100644 --- a/frontend/src/views/subuser/ResetModal.vue +++ b/frontend/src/views/subuser/ResetModal.vue @@ -42,7 +42,7 @@ reset() { this.$refs.resetForm.validate(valid => { if (valid) { - subuserReset({ username: this.form.username, password: this.resetForm.password }) + subuserReset({ id: this.form.id, password: this.resetForm.password }) .then(() => { this.$message.success('重置成功'); this.cancel(); diff --git a/frontend/src/views/subuser/Subuser.vue b/frontend/src/views/subuser/Subuser.vue index 00c6ecf..5ee1052 100644 --- a/frontend/src/views/subuser/Subuser.vue +++ b/frontend/src/views/subuser/Subuser.vue @@ -115,14 +115,14 @@ this.items.push(subuser); }, update(subuser) { - this.items.splice(this.items.findIndex(item => item.username === this.selectedItem.username), 1, subuser); + this.items.splice(this.items.findIndex(item => item.id === this.selectedItem.id), 1, subuser); }, destroy(item) { let form = { ...item }; subuserDestroy(form) .then(() => { this.$message.success('删除成功'); - this.items.splice(this.items.findIndex(item => item.username === form.username), 1); + this.items.splice(this.items.findIndex(item => item.id === form.id), 1); }) .catch(err => { this.$message.error(err.response.data.message); diff --git a/frontend/src/views/subuser/UpdateModal.vue b/frontend/src/views/subuser/UpdateModal.vue index 4302ccc..470b9b9 100644 --- a/frontend/src/views/subuser/UpdateModal.vue +++ b/frontend/src/views/subuser/UpdateModal.vue @@ -43,7 +43,7 @@ update() { this.$refs.updateForm.validate(valid => { if (valid) { - subuserUpdate(this.form.username, this.updateForm) + subuserUpdate(this.updateForm) .then(resp => { this.$message.success('修改成功'); this.$emit('update', resp.data); @@ -64,7 +64,9 @@ watch: { visible(value) { if (value) { + console.log(this.form) this.updateForm = { + id: this.form.id, name: this.form.name, phone: this.form.phone, username: this.form.username, diff --git a/oms/settings.py b/oms/settings.py index aab2dd4..4c0eefd 100644 --- a/oms/settings.py +++ b/oms/settings.py @@ -93,7 +93,7 @@ DATABASES = { 'PORT': '3306', 'USER': 'root', 'PASSWORD': '123456', - 'NAME': 'oms', + 'NAME': 'oms_db', 'OPTIONS': {'charset': 'utf8mb4'}, } } diff --git a/tools/rebuild_database.py b/tools/rebuild_database.py index 11c8295..fcc07e6 100644 --- a/tools/rebuild_database.py +++ b/tools/rebuild_database.py @@ -12,7 +12,7 @@ project_path = Path.cwd() # 重建数据库 print('重建数据库') -db = pymysql.connect(host, user, password) +db = pymysql.connect(host=host, user=user, password=password) cursor = db.cursor() cursor.execute(f'DROP DATABASE {database};') db.commit()