文件层级目录
- djiangoproject
-
djiangoproject
- settings.py
- urls.py
- wsgi.py
-
shopapp
- entity
- dao
- service
- admin.py
- apps.py
- models.py
- test.py
- views.py
-
static
- css
- bootstrap
- js
- uploads
- echarts
-
templates
- jobinfo
- personalinfo
- systeminfo
- footer.html
- index.html
- left.html
- login.html
- main.html
- top.html
-
manage.py
-
settings.py
"""
Django settings for djangoproject project.
Generated by 'django-admin startproject' using Django 2.2.6.
For more information on this file, see
https://docs.djangoproject.com/en/2.2/topics/settings/
For the full list of settings and their values, see
https://docs.djangoproject.com/en/2.2/ref/settings/
"""
import os
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/2.2/howto/deployment/checklist/
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = '(46xri8ef295s*edox_(t=w%k$ks=wx0wmm=3@1yo!c=je81-p'
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
ALLOWED_HOSTS = []
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'shopapp.apps.ShopappConfig'
]
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
#'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
ROOT_URLCONF = 'djangoproject.urls'
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')]
,
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
WSGI_APPLICATION = 'djangoproject.wsgi.application'
# Database
# https://docs.djangoproject.com/en/2.2/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'db_test_shop1',
'HOST': '127.0.0.1',
'USER': 'root',
'PASSWORD':'root',
'PORT': '3306',
'OPTIONS':{
'isolation_level':None}
}
}
# Password validation
# https://docs.djangoproject.com/en/2.2/ref/settings/#auth-password-validators
AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
},
]
# Internationalization
# https://docs.djangoproject.com/en/2.2/topics/i18n/
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/2.2/howto/static-files/
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR,"static"),
)
# 配置输出sql语句
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'console':{
'level':'DEBUG',
'class':'logging.StreamHandler',
},
},
'loggers': {
'django.db.backends': {
'handlers': ['console'],
'propagate': True,
'level':'DEBUG',
},
}
}
urls.py
"""djangoproject URL Configuration
The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/2.2/topics/http/urls/
Examples:
Function views
1. Add an import: from my_app import views
2. Add a URL to urlpatterns: path('', views.home, name='home')
Class-based views
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
Including another URLconf
1. Import the include() function: from django.urls import include, path
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path
from shopapp.views import *
urlpatterns = [
path('admin/', admin.site.urls),
path('', index),
path('gologin/', goLogin),
path('login/', login),
path('logout/', logout),
path('regist.do/', regist),
path('upload.do/', uploadFile),
path('goajaxjobtaskinfo/', goJobTaskInfo),
path('ajaxjobtaskinfo/', getJobTaskInfo),
path('ajaxjobsalary/', getJobSalary),
path('goajaxuserinfo/', goAjaxUserInfo),
path('ajaxuserinfo/', getUserInfo),
path('ajaxdeptinfo/', getDeptList)
]
wsgi.py
"""
WSGI config for djangoproject project.
It exposes the WSGI callable as a module-level variable named ``application``.
For more information on this file, see
https://docs.djangoproject.com/en/2.2/howto/deployment/wsgi/
"""
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'djangoproject.settings')
application = get_wsgi_application()
dao层(自配的数据库连接与操作,该项目未用)
entity下
jobtask.py
# 封装数据类 VO:value object entity 类
class JobTask():
def __init__(self):
self.__taskId = None
self.__taskTitle = None
self.__taskURL = None
self.__taskState = None
pass
@property
def taskId(self):
return self.__taskId
pass
@taskId.setter
def taskId(self, taskId):
self.__taskId = taskId
pass
@property
def taskTitle(self):
return self.__taskTitle
pass
@taskTitle.setter
def taskTitle(self, taskTitle):
self.__taskTitle = taskTitle
pass
@property
def taskURL(self):
return self.__taskURL
pass
@taskURL.setter
def taskURL(self, taskURL):
self.__taskURL = taskURL
pass
@property
def taskState(self):
return self.__taskState
pass
@taskState.setter
def taskState(self, taskState):
self.__taskState = taskState
pass
pass
entity下
user.py
# 封装数据类 VO:value object entity 类
class User():
def __init__(self):
self.__userId = None
self.__userName = None
self.__userPwd = None
self.__userSex = None
self.__userPic = None
self.__userBirth = None
self.__userIntro = None
self.__userDeptId = None
self.__userDeptName = None
self.__userRole = None
pass
@property
def userId(self):
return self.__userId
pass
@userId.setter
def userId(self, userId):
self.__userId = userId
pass
@property
def userName(self):
return self.__userName
pass
@userName.setter
def userName(self, userName):
self.__userName = userName
pass
@property
def userPwd(self):
return self.__userPwd
pass
@userPwd.setter
def userPwd(self, userPwd):
self.__userPwd = userPwd
pass
@property
def userSex(self):
return self.__userSex
pass
@userSex.setter
def userSex(self, userSex):
self.__userSex = userSex
pass
@property
def userPic(self):
return self.__userPic
pass
@userPic.setter
def userPic(self, userPic):
self.__userPic = userPic
pass
@property
def userBirth(self):
return self.__userBirth
pass
@userBirth.setter
def userBirth(self, userBirth):
self.__userBirth = userBirth
pass
@property
def userIntro(self):
return self.__userIntro
pass
@userIntro.setter
def userIntro(self, userIntro):
self.__userIntro = userIntro
pass
@property
def userDeptId(self):
return self.__userDeptId
pass
@userDeptId.setter
def userDeptId(self, userDeptId):
self.__userDeptId = userDeptId
pass
@property
def userDeptName(self):
return self.__userDeptName
pass
@userDeptName.setter
def userDeptName(self, userDeptName):
self.__userDeptName = userDeptName
pass
@property
def userRole(self):
return self.__userRole
pass
@userRole.setter
def userRole(self, userRole):
self.__userRole = userRole
pass
pass
migrations(无文件)
service(未使用)
admin.py
from django.contrib import admin
# Register your models here.
from shopapp.models import TUser
from shopapp.models import JobDept
admin.site.register(TUser)
admin.site.register(JobDept)
apps.py
from django.apps import AppConfig
class ShopappConfig(AppConfig):
name = 'shopapp'
models.py
# This is an auto-generated Django model module.
# You'll have to do the following manually to clean this up:
# * Rearrange models' order
# * Make sure each model has one field with primary_key=True
# * Make sure each ForeignKey has `on_delete` set to the desired behavior.
# * Remove `managed = False` lines if you wish to allow Django to create, modify, and delete the table
# Feel free to rename the models, but don't rename db_table values or field names.
from django.db import models
class JobDept(models.Model):
dept_id = models.IntegerField(primary_key=True)
dept_name = models.CharField(unique=True, max_length=45, blank=True, null=True)
dept_parentid = models.IntegerField(blank=True, null=True)
class Meta:
managed = False
db_table = 'job_dept'
class TUser(models.Model):
user_id = models.AutoField(db_column='USER_ID', primary_key=True) # Field name made lowercase.
user_name = models.CharField(db_column='USER_NAME', unique=True, max_length=32) # Field name made lowercase.
user_pwd = models.CharField(db_column='USER_PWD', max_length=512) # Field name made lowercase.
user_age = models.IntegerField(db_column='USER_AGE', blank=True, null=True) # Field name made lowercase.
user_sex = models.IntegerField(db_column='USER_SEX', blank=True, null=True) # Field name made lowercase.
user_qq = models.IntegerField(db_column='USER_QQ', blank=True, null=True) # Field name made lowercase.
user_cellphone = models.CharField(db_column='USER_CELLPHONE', max_length=20, blank=True, null=True) # Field name made lowercase.
user_money = models.FloatField(db_column='USER_MONEY', blank=True, null=True) # Field name made lowercase.
user_status = models.IntegerField(db_column='USER_STATUS', blank=True, null=True) # Field name made lowercase.
user_pic = models.CharField(db_column='USER_PIC', max_length=128, blank=True, null=True) # Field name made lowercase.
user_role = models.IntegerField(db_column='USER_ROLE', blank=True, null=True) # Field name made lowercase.
jobDept= models.ForeignKey(JobDept, db_column='', on_delete=models.CASCADE, blank=True, null=True, to_field='dept_id') # null=True生成left join
user_birth = models.DateTimeField(db_column='USER_BIRTH', blank=True, null=True) # Field name made lowercase.
user_intro = models.TextField(db_column='USER_INTRO', blank=True, null=True) # Field name made lowercase.
class Meta:
managed = False
db_table = 't_user'
tests.py
(无代码)
views.py
from django.shortcuts import render,redirect
from django.http.response import HttpResponse
from shopapp.service.userservice import UserService
from shopapp.service.jobtaskservice import JobTaskService
from shopapp.entity.jobtask import JobTask
import json
import hashlib
from .models import TUser
from .models import JobDept
from django.core import serializers
import os
from datetime import datetime
# Create your views here.
userService = UserService()
jobTaskService = JobTaskService()
def index(request):
return render(request, 'index.html')
pass
def goLogin(request):
return render(request, 'login.html')
pass
def login(request):
userName = request.POST.get('userName')
userPwd = request.POST.get('userPwd')
remeberMe = request.POST.get('rememberMe')
result = userService.findUserByUserName(userName)
isLogin = False
if result and (remeberMe == None or remeberMe == 'false'):
if result[0][2] == hashlib.md5(userPwd.encode(encoding='utf-8')).hexdigest():
isLogin = True
pass
elif result and remeberMe == 'true':
if result[0][2] == userPwd:
isLogin = True
pass
pass
if isLogin:
userItem = {
}
userItem['userId'] = result[0][0]
userItem['userName'] = result[0][1]
userItem['userPic'] = result[0][9]
userItem['userRole'] = result[0][10]
request.session['user'] = userItem
response = render(request, 'main.html')
if remeberMe == 'false':
response.set_cookie('userName', userName)
response.set_cookie('userPwd', result[0][2])
response.set_cookie('rememberMe', 'true')
pass
elif remeberMe == None:
response = render(request, 'main.html')
response.delete_cookie('userName')
response.delete_cookie('userPwd')
response.delete_cookie('rememberMe')
pass
return response
else:
return render(request, 'login.html')
pass
def regist(request):
userDict = json.loads(request.body.decode('utf-8'))
'''
user = TUser()
user.user_name = userDict.get('userName') # 表单提交的数据使用request.form[]
user.user_pwd = hashlib.md5((userDict.get('userPwd')).encode(encoding='utf-8')).hexdigest()
user.user_pic = userDict.get('userPic')
user.user_birth = datetime.strptime(userDict.get('userBirth'), '%Y-%m-%d')
user.user_sex = userDict.get('userSex')
user.user_intro = userDict.get('userIntro')
result = user.save()
'''
result = TUser.objects.create(
user_name = userDict.get('userName'),
user_pwd=hashlib.md5((userDict.get('userPwd')).encode(encoding='utf-8')).hexdigest(),
user_pic=userDict.get('userPic'),
user_birth=datetime.strptime(userDict.get('userBirth'), '%Y-%m-%d'),
user_sex=userDict.get('userSex'),
user_intro=userDict.get('userIntro')
)
if result:
result = 1
else:
result = 0
return HttpResponse(json.dumps({
'result': result}), content_type="application/json")
pass
def logout(request):
request.session.flush()
return render(request, 'login.html')
pass
def goJobTaskInfo(request):
return render(request, "jobinfo/jobtaskinfo.html")
pass
def getJobTaskInfo(request):
jobTaskData = request.body.decode('utf-8')
jobTaskDict = json.loads(jobTaskData)
tData = {
}
jobTask = JobTask()
jobTask.taskTitle = jobTaskDict.get('taskTitle')
jobTask.taskURL = jobTaskDict.get('taskURL')
currentPage = int(jobTaskDict.get('currentPage'))
pageSize = int(jobTaskDict.get('pageSize'))
opr = jobTaskDict.get('opr')
taskId = int(jobTaskDict.get('taskId'))
jobTask.taskId = taskId
updateResult = 0
if opr == 'del':
updateResult = jobTaskService.removeJobTask(taskId)
pass
elif opr == 'update':
tTask = jobTaskService.findJobTaskByJobTaskId(taskId)
tData['taskId'] = tTask.taskId
tData['taskTitle'] = tTask.taskTitle
tData['taskURL'] = tTask.taskURL
returnData = {
'code': 1, 'jobTaskData': tData, 'pageSize': pageSize, 'currentPage': currentPage, 'opr':'update'}
return HttpResponse(json.dumps(returnData), content_type="application/json")
elif opr == 'submitUpdate':
updateResult = jobTaskService.updateJobTask(jobTask)
pass
result = jobTaskService.findPageJobTaskList(jobTask, pageSize, currentPage)
counts = jobTaskService.countJobTasks(jobTask)
totalPage = 0
if(counts%pageSize == 0):
totalPage = counts//pageSize
else:
totalPage = counts // pageSize + 1
pass
returnData = {
'code':1, 'jobTaskData':result, 'pageSize':pageSize, 'currentPage':currentPage, 'totalPage':totalPage, 'updateResult':updateResult, 'opr':'search','counts':counts}
return HttpResponse(json.dumps(returnData), content_type="application/json")
pass
def getJobSalary(request):
result = jobTaskService.findJobMeanSalary()
returnData = {
'code':1, 'salary':result}
r = json.dumps(returnData)
return HttpResponse(json.dumps(returnData), content_type="application/json")
pass
def goAjaxUserInfo(request):
return render(request, "systeminfo/userinfo.html")
pass
def getUserInfo(request):
userData = request.body.decode('utf-8')
userDict = json.loads(userData)
tData = {
}
user = TUser()
user.user_name = userDict.get('userName')
user.user_sex = userDict.get('userSex')
currentPage = int(userDict.get('currentPage'))
pageSize = int(userDict.get('pageSize'))
opr = userDict.get('opr')
userId = int(userDict.get('userId'))
user.user_id= userId
user.jobDept_id = int(userDict.get('userDeptId'))
updateResult = 0
if opr == 'del':
updateResult = user.delete()
pass
elif opr == 'update':
tUser = TUser.objects.filter(user_id=userId).values('user_id', 'user_name', 'user_sex', 'jobDept_id', 'jobDept__dept_name')
tData['userId'] = tUser[0].get('user_id')
tData['userName'] = tUser[0].get('user_name')
tData['userSex'] = tUser[0].get('user_sex')
tData['userDeptId'] = tUser[0].get('jobDept_id')
tData['userDeptName'] = tUser[0].get('jobDept__dept_name')
returnData = {
'code': 1, 'userData': tData, 'pageSize': pageSize, 'currentPage': currentPage, 'opr':'update'}
return HttpResponse(json.dumps(returnData), content_type="application/json")
elif opr == 'submitUpdate':
currentPage = 1
updateResult = TUser.objects.filter(user_id=userId).update(user_sex=user.user_sex, jobDept_id=user.jobDept_id)
pass
query = TUser.objects
if user.user_name:
query = query.filter(user_name__contains=user.user_name)
if user.user_sex:
query = query.filter(user_sex=user.user_sex)
pass
startRow = (currentPage - 1)*pageSize
endRow = currentPage*pageSize
result = query.values('user_id', 'user_name', 'user_sex', 'jobDept__dept_name')[startRow:endRow] # 会生成 LIMIT 2 OFFSET 1
counts = query.count()
totalPage = 0
if(counts%pageSize == 0):
totalPage = counts//pageSize
else:
totalPage = counts // pageSize + 1
pass
# data = serializers.serialize("json", result, use_natural_foreign_keys=True)
# data = json.loads(data)
data = []
for tempUser in result:
dictItem = {
'pk':tempUser.get('user_id')}
fieldsItem ={
'user_name':tempUser.get('user_name'), 'user_sex':tempUser.get('user_sex'), 'user_deptname':tempUser.get('jobDept__dept_name')}
dictItem['fields'] = fieldsItem
data.append(dictItem)
pass
'''
for tempUser, tdata in zip(result, data):
tdata['fields']['user_deptname'] = tempUser.jobDept.dept_name # 获取外键关联的时候,是第二次查询
pass
'''
returnData = {
'code':1, 'userData':data, 'pageSize':pageSize, 'currentPage':currentPage, 'totalPage':totalPage, 'updateResult':updateResult, 'opr':'search','counts':counts}
return HttpResponse(json.dumps(returnData), content_type="application/json")
pass
def getDeptList(request):
parentId = int(request.GET.get('parentId'))
if parentId ==0:
result = JobDept.objects.filter(dept_parentid__isnull=True).all()
else:
result = JobDept.objects.filter(dept_parentid=parentId).all()
data = serializers.serialize("json", result)
data = json.loads(data)
return HttpResponse(json.dumps({
'code':1, 'data':data}), content_type="application/json")
pass
def uploadFile(request):
# 后缀需要检查的
file = request.FILES.get('upload')
if file:
try:
with open(os.path.dirname(__file__) + os.sep + '..' + os.sep + 'static' + os.sep + 'uploads'+ os.sep + file.name, "wb+") as fp:
for chunk in file.chunks():
fp.write(chunk)
pass
except Exception as e:
return HttpResponse(json.dumps({
'uploaded': 0, 'fileName': "", 'url': ""}), content_type="application/json")
pass
return HttpResponse(json.dumps({
'uploaded': 1, 'fileName':file.name, 'url': os.sep + 'static' + os.sep + 'uploads'+ os.sep + file.name}), content_type="application/json")
else:
return HttpResponse(json.dumps({
'uploaded': 0, 'fileName': "", 'url': ""}), content_type="application/json")
pass
jobtask.js
function getJobTaskData(currentPage, pageSize, opr, taskId) {
var taskTitle = document.searchForm.taskTitle.value
var taskURL = document.searchForm.taskURL.value
if(opr == 'del'){
if(!confirm('确定要删除吗?')){
return false
}
}else if(opr == 'submitUpdate'){
taskTitle = document.taskForm.taskTitle.value
taskURL = document.taskForm.taskURL.value
taskId = document.taskForm.taskId.value
currentPage = document.taskForm.currentPage.value
pageSize = document.taskForm.pageSize.value
$('#modal-default').modal('hide')
}
$.ajax({
type: 'post', // 传数据的方式
url: '/ajaxjobtaskinfo/',
dataType: 'json', // xml、json、script、html
data:JSON.stringify({
'taskTitle': taskTitle, // $('#taskTitle') == document.getElementById('taskTitle')
'taskURL' : taskURL,
'taskId': taskId,
'pageSize': pageSize,
'currentPage': currentPage,
'opr': opr
}),
error: function(xhr, err){
alert('请求失败,请检查,' + err + '!')
},
success: function(data, textStatus){
// success对应的回调函数的第一个参数,是服务器返回的数据
// 查询后、删除后、修改后都走这个if
if(data.code == 1 && opr != 'update'){
var htmlText = ""
for(var i =0;i <data.jobTaskData.length;i++){
htmlText += '<tr>' +
' <td align="center"><input type="checkbox" name="taskId" value="'+ data.jobTaskData[i][0] +'" /></td>\n' +
' <td>' + data.jobTaskData[i][0] + '</td>\n' +
' <td>' + data.jobTaskData[i][1] + '</td>\n' +
' <td style="width: 500px;word-break: break-all;">' + data.jobTaskData[i][2] + '</td>\n' +
' <td style="width: 160px;">\n' +
' <button type="button" class="btn btn-danger" οnclick="getJobTaskData('+ data.currentPage +',' + data.pageSize + ','+ '\'del\''+',' + data.jobTaskData[i][0] +')">删除</button>' +
' <button type="button" class="btn btn-info" οnclick="getJobTaskData('+ data.currentPage +',' + data.pageSize + ','+ '\'update\''+',' + data.jobTaskData[i][0] +')">修改</button>'+
' </td>\n' +
' </tr>\n'
}
pageText = '<tr style="text-align: right;"><td colspan="5">'+ '当前第' + data.currentPage + '页 总共有' + data.totalPage + '页 ';
if(data.currentPage <= 1) {
pageText += '首页 上一页 ';
}else{
pageText += '<a href="javascript:getJobTaskData(1,10,\'search\', 0);">首页</a> ' +
'<a href="javascript:getJobTaskData(' + (data.currentPage - 1) + ', 10, \'search\', 0);">上一页</a> ';
}
if(data.currentPage >= data.totalPage){
pageText += '下一页 尾页 ';
}else {
pageText += '<a href="javascript:getJobTaskData(' + (data.currentPage + 1) + ', 10, \'search\', 0);">下一页</a> ' +
'<a href="javascript:getJobTaskData(' + data.totalPage + ', 10, \'search\', 0);">尾页</a> ';
}
pageText +='总共有'+ data.counts + '条 </td></tr>'
$('#dataBody').empty()
$('#dataBody').append(htmlText)
$('#dataBody').append(pageText)
document.searchForm.currentPage.value = data.currentPage
document.searchForm.pageSize.value=data.pageSize
if( opr != 'search' && data.updateResult > 0 ) {
alert("操作成功")
}else if(opr != 'search' && data.updateResult <= 0){
alert("操作失败")
}
}else if(data.code == 1 && opr == 'update'){
document.taskForm.taskTitle.value = data.jobTaskData.taskTitle
document.taskForm.taskURL.value = data.jobTaskData.taskURL
document.taskForm.taskId.value = data.jobTaskData.taskId
document.taskForm.currentPage.value = data.currentPage
document.taskForm.pageSize.value = data.pageSize
$('#modal-default').modal()
}
}
});
}
$(document).ready(
function(){
getJobTaskData(1, 10, 'search', 0)
}
)
userdata.py
function getUserData(currentPage, pageSize, opr, userId) {
var userName = document.searchForm.userName.value
var userSex = document.searchForm.userSex.value
var userDeptId = 0
if(opr == 'del'){
if(!confirm('确定要删除吗?')){
return false
}
}else if(opr == 'submitUpdate'){
userName = document.userForm.userName.value
userSex = document.userForm.userSex.value
userId = document.userForm.userId.value
userDeptId = document.userForm.userDeptId.value
currentPage = document.userForm.currentPage.value
pageSize = document.userForm.pageSize.value
}
$.ajax({
type: 'post', // 传数据的方式
url: '/ajaxuserinfo/',
dataType: 'json', // xml、json、script、html
data:JSON.stringify({
'userName': userName, // $('#userName') == document.getElementById('userName')
'userSex' : userSex,
'userId': userId,
'userDeptId': userDeptId,
'pageSize': pageSize,
'currentPage': currentPage,
'opr': opr // 重用一个ajax请求实现增加删除修改查询 CRUD
}),
error: function(xhr, err){
alert('请求失败,请检查,' + err + '!')
},
success: function(data, textStatus){
// success对应的回调函数的第一个参数,是服务器返回的数据
// data = JSON.parse(data)
if(data.code == 1 && opr != 'update'){
var htmlText = ""
for(var i =0;i <data.userData.length;i++){
htmlText += '<tr>' +
' <td align="center"><input type="checkbox" name="userId" value="'+ data.userData[i].pk +'" /></td>\n' +
' <td>' + data.userData[i].pk + '</td>\n' +
' <td>' + data.userData[i].fields.user_name + '</td>\n' +
' <td>' + (data.userData[i].fields.user_sex == 1?'男':'女') + '</td>\n' +
' <td>' + data.userData[i].fields.user_deptname + '</td>\n' +
' <td style="width: 160px;">\n' +
' <button type="button" class="btn btn-danger" οnclick="getUserData('+ data.currentPage +',' + data.pageSize + ','+ '\'del\''+',' + data.userData[i].pk +')">删除</button>' +
' <button type="button" class="btn btn-info" οnclick="getUserData('+ data.currentPage +',' + data.pageSize + ','+ '\'update\''+',' + data.userData[i].pk +')">修改</button>'+
' </td>\n' +
' </tr>\n'
}
pageText = '<tr style="text-align: right;"><td colspan="6">'+ '当前第' + data.currentPage + '页 总共有' + data.totalPage + '页 ';
if(data.currentPage <= 1) {
pageText += '首页 上一页 ';
}else{
pageText += '<a href="javascript:getUserData(1,10,\'search\', 0);">首页</a> ' +
'<a href="javascript:getUserData(' + (data.currentPage - 1) + ', 10, \'search\', 0);">上一页</a> ';
}
if(data.currentPage >= data.totalPage){
pageText += '下一页 尾页 ';
}else {
pageText += '<a href="javascript:getUserData(' + (data.currentPage + 1) + ', 10, \'search\', 0);">下一页</a> ' +
'<a href="javascript:getUserData(' + data.totalPage + ', 10, \'search\', 0);">尾页</a> ';
}
pageText +='总共有'+ data.counts + '条 </td></tr>'
$('#dat