xiaoxin 1 gadu atpakaļ
vecāks
revīzija
7cb0019778

+ 1 - 0
package.json

@@ -15,6 +15,7 @@
   },
   "dependencies": {
     "@element-plus/icons-vue": "2.3.1",
+    "@rollup/rollup-win32-x64-msvc": "4.28.1",
     "axios": "1.7.7",
     "dayjs": "1.11.13",
     "element-plus": "2.8.8",

+ 36 - 0
src/api/news/index.js

@@ -0,0 +1,36 @@
+import { request } from "@/utils/service"
+
+/** 增 */
+export function createCategoryNews(data) {
+  return request({
+    url: "/alumniCategoryNews/insertCategoryNews",
+    method: "post",
+    data
+  })
+}
+
+/** 删 */
+export function deleteCategoryNews(id) {
+  return request({
+    url: `/alumniCategoryNews/deleteCategoryNews?id=${id}`,
+    method: "get"
+  })
+}
+
+/** 改 */
+export function updateCategoryNews(data) {
+  return request({
+    url: "/alumniCategoryNews/updateCategoryNews",
+    method: "post",
+    data
+  })
+}
+
+/** 获取新闻分类分页数据 */
+export function getCategoryNewsPage(params) {
+  return request({
+    url: "/alumniCategoryNews/queryCategoryNewsPage",
+    method: "get",
+    params
+  })
+}

+ 14 - 6
src/api/table/index.js

@@ -3,7 +3,7 @@ import { request } from "@/utils/service"
 /** 增 */
 export function createTableDataApi(data) {
   return request({
-    url: "table",
+    url: "/alumniUser/insertAccountData",
     method: "post",
     data
   })
@@ -12,16 +12,16 @@ export function createTableDataApi(data) {
 /** 删 */
 export function deleteTableDataApi(id) {
   return request({
-    url: `table/${id}`,
-    method: "delete"
+    url: `/alumniUser/deleteUserById/?id=${id}`,
+    method: "get"
   })
 }
 
 /** 改 */
 export function updateTableDataApi(data) {
   return request({
-    url: "table",
-    method: "put",
+    url: "/alumniUser/updateAccountData",
+    method: "post",
     data
   })
 }
@@ -29,8 +29,16 @@ export function updateTableDataApi(data) {
 /** 查 */
 export function getTableDataApi(params) {
   return request({
-    url: "table",
+    url: "/alumniUser/queryAccountPage",
     method: "get",
     params
   })
 }
+
+/** 获取角色下拉列表数据 */
+export function getRoleTypes() {
+  return request({
+    url: "/alumniUser/queryRoleTypes",
+    method: "get"
+  })
+}

+ 47 - 25
src/views/account-management/index.vue

@@ -1,6 +1,6 @@
 <script setup>
 import { reactive, ref, watch } from "vue"
-import { createTableDataApi, deleteTableDataApi, updateTableDataApi, getTableDataApi } from "@/api/table"
+import { createTableDataApi, deleteTableDataApi, updateTableDataApi, getTableDataApi, getRoleTypes } from "@/api/table"
 import { ElMessage, ElMessageBox } from "element-plus"
 import { usePagination } from "@/hooks/usePagination"
 import { cloneDeep } from "lodash-es"
@@ -11,17 +11,22 @@ const { paginationData, handleCurrentChange, handleSizeChange } = usePagination(
 //#region 增
 const DEFAULT_FORM_DATA = {
   id: undefined,
+  account: "",
+  cardNumber: "",
   name: "",
-  todo: "",
-  realName: "",
   password: "",
-  roles: []
+  roles: [],
+  roleId: ""
 }
 const dialogVisible = ref(false)
 const formRef = ref(null)
 const formData = ref(cloneDeep(DEFAULT_FORM_DATA))
 const formRules = {
-  name: [{ required: true, trigger: "blur", message: "必填" }]
+  account: [{ required: true, trigger: "blur", message: "账号必填" }],
+  cardNumber: [{ required: true, trigger: "blur", message: "微校卡号必填" }],
+  name: [{ required: true, trigger: "blur", message: "姓名必填" }],
+  password: [{ required: true, trigger: "blur", message: "密码必填" }],
+  roleId: [{ required: true, trigger: "blur", message: "角色必填" }]
 }
 const handleCreateOrUpdate = () => {
   formRef.value?.validate((valid, fields) => {
@@ -64,6 +69,7 @@ const handleDelete = (row) => {
 const handleUpdate = (row) => {
   dialogVisible.value = true
   formData.value = cloneDeep(row)
+  getTypes()
 }
 //#endregion
 
@@ -72,19 +78,22 @@ const tableData = ref([])
 const searchFormRef = ref(null)
 const searchData = reactive({
   name: undefined,
-  createTime: null
+  createTime: []
 })
 const getTableData = () => {
   loading.value = true
+
   getTableDataApi({
     currentPage: paginationData.currentPage,
-    size: paginationData.pageSize,
+    pageCount: paginationData.pageSize,
     name: searchData.name,
-    starTime: searchData.createTime ? searchData.createTime[0] : undefined,
+    startTime: searchData.createTime ? searchData.createTime[0] : undefined,
     endTime: searchData.createTime ? searchData.createTime[1] : undefined
   })
     .then(({ data }) => {
-      paginationData.total = data.total
+      // console.log(data)
+
+      paginationData.total = data.totalCount
       tableData.value = data.list
     })
     .catch(() => {
@@ -101,6 +110,19 @@ const resetSearch = () => {
   searchFormRef.value?.resetFields()
   handleSearch()
 }
+
+// 新增按钮回调
+const handleAdd = () => {
+  dialogVisible.value = true
+  getTypes()
+}
+
+// 获取角色下拉列表数据
+const getTypes = async () => {
+  const res = await getRoleTypes()
+  // console.log(res)
+  formData.value.roles = res.data
+}
 //#endregion
 
 /** 监听分页参数的变化 */
@@ -121,7 +143,7 @@ watch([() => paginationData.currentPage, () => paginationData.pageSize], getTabl
               type="datetimerange"
               start-placeholder="开始时间"
               end-placeholder="结束时间"
-              value-format="x"
+              value-format="YYYY:MM:DD HH:mm:ss"
             />
           </el-form-item>
           <el-form-item>
@@ -130,16 +152,16 @@ watch([() => paginationData.currentPage, () => paginationData.pageSize], getTabl
           </el-form-item>
         </el-form>
         <div>
-          <el-button type="primary" @click="dialogVisible = true">新增</el-button>
+          <el-button type="primary" @click="handleAdd">新增</el-button>
         </div>
       </div>
       <div class="table-wrapper">
         <el-table :data="tableData" max-height="500">
           <el-table-column type="index" label="序号" width="100" align="center" />
-          <el-table-column prop="name" label="账号名称" align="center" />
-          <el-table-column prop="role" label="角色名称" align="center" />
-          <el-table-column prop="realName" label="真实姓名" align="center" />
-          <el-table-column prop="createTime" label="创建时间" align="center" />
+          <el-table-column prop="account" label="账号名称" align="center" />
+          <el-table-column prop="roleName" label="角色名称" align="center" />
+          <el-table-column prop="name" label="真实姓名" align="center" />
+          <el-table-column prop="createAccountTime" label="创建时间" align="center" />
           <el-table-column fixed="right" label="操作" width="200" align="center">
             <template #default="scope">
               <el-link type="primary" @click="handleUpdate(scope.row)">编辑</el-link>
@@ -169,21 +191,21 @@ watch([() => paginationData.currentPage, () => paginationData.pageSize], getTabl
       width="50%"
     >
       <el-form ref="formRef" :model="formData" :rules="formRules" label-width="auto" size="large">
-        <el-form-item prop="name" label="账号">
-          <el-input v-model="formData.name" placeholder="请输入" />
+        <el-form-item prop="account" label="账号">
+          <el-input v-model="formData.account" placeholder="请输入" />
         </el-form-item>
-        <el-form-item prop="todo" label="微校卡号">
-          <el-input v-model="formData.todo" placeholder="请输入" />
+        <el-form-item prop="cardNumber" label="微校卡号">
+          <el-input v-model="formData.cardNumber" placeholder="请输入" />
         </el-form-item>
-        <el-form-item prop="realName" label="姓名">
-          <el-input v-model="formData.realName" placeholder="请输入" />
+        <el-form-item prop="name" label="姓名">
+          <el-input v-model="formData.name" placeholder="请输入" />
         </el-form-item>
         <el-form-item prop="password" label="密码">
-          <el-input v-model="formData.password" placeholder="请输入" />
+          <el-input v-model="formData.password" placeholder="请输入" type="password" show-password />
         </el-form-item>
-        <el-form-item prop="roles" label="角色">
-          <el-select v-model="formData.roles" placeholder="请选择" multiple>
-            <el-option label="todo" value="todo" />
+        <el-form-item prop="roleId" label="角色">
+          <el-select v-model="formData.roleId" placeholder="请选择">
+            <el-option v-for="item in formData.roles" :label="item.name" :value="item.id" :key="item.id" />
           </el-select>
         </el-form-item>
       </el-form>

+ 16 - 14
src/views/news-focus/news-classification.vue

@@ -1,6 +1,6 @@
 <script setup>
 import { reactive, ref, watch } from "vue"
-import { createTableDataApi, deleteTableDataApi, updateTableDataApi, getTableDataApi } from "@/api/table"
+import { getCategoryNewsPage, createCategoryNews, updateCategoryNews, deleteCategoryNews } from "@/api/news"
 import { ElMessage, ElMessageBox } from "element-plus"
 import { usePagination } from "@/hooks/usePagination"
 import { cloneDeep } from "lodash-es"
@@ -11,19 +11,19 @@ const { paginationData, handleCurrentChange, handleSizeChange } = usePagination(
 //#region 增
 const DEFAULT_FORM_DATA = {
   id: undefined,
-  title: ""
+  name: ""
 }
 const dialogVisible = ref(false)
 const formRef = ref(null)
 const formData = ref(cloneDeep(DEFAULT_FORM_DATA))
 const formRules = {
-  title: [{ required: true, trigger: "blur", message: "必填" }]
+  name: [{ required: true, trigger: "blur", message: "必填" }]
 }
 const handleCreateOrUpdate = () => {
   formRef.value?.validate((valid, fields) => {
     if (!valid) return console.error("表单校验不通过", fields)
     loading.value = true
-    const api = formData.value.id === undefined ? createTableDataApi : updateTableDataApi
+    const api = formData.value.id === undefined ? createCategoryNews : updateCategoryNews
     api(formData.value)
       .then(() => {
         ElMessage.success("操作成功")
@@ -48,7 +48,7 @@ const handleDelete = (row) => {
     cancelButtonText: "取消",
     type: "warning"
   }).then(() => {
-    deleteTableDataApi(row.id).then(() => {
+    deleteCategoryNews(row.id).then(() => {
       ElMessage.success("删除成功")
       getTableData()
     })
@@ -71,14 +71,16 @@ const searchData = reactive({
 })
 const getTableData = () => {
   loading.value = true
-  getTableDataApi({
+  getCategoryNewsPage({
     currentPage: paginationData.currentPage,
-    size: paginationData.pageSize,
-    starTime: searchData.createTime ? searchData.createTime[0] : undefined,
+    pageCount: paginationData.pageSize,
+    startTime: searchData.createTime ? searchData.createTime[0] : undefined,
     endTime: searchData.createTime ? searchData.createTime[1] : undefined
   })
     .then(({ data }) => {
-      paginationData.total = data.total
+      console.log(data)
+
+      paginationData.total = data.totalCount
       tableData.value = data.list
     })
     .catch(() => {
@@ -112,7 +114,7 @@ watch([() => paginationData.currentPage, () => paginationData.pageSize], getTabl
               type="datetimerange"
               start-placeholder="开始时间"
               end-placeholder="结束时间"
-              value-format="x"
+              value-format="YYYY-MM-DD HH:mm:ss"
             />
           </el-form-item>
           <el-form-item>
@@ -127,9 +129,9 @@ watch([() => paginationData.currentPage, () => paginationData.pageSize], getTabl
       <div class="table-wrapper">
         <el-table :data="tableData" max-height="500">
           <el-table-column type="index" label="序号" width="100" align="center" />
-          <el-table-column prop="title" label="分类名称" align="center" />
+          <el-table-column prop="name" label="分类名称" align="center" />
           <el-table-column prop="createTime" label="创建时间" align="center" />
-          <el-table-column prop="creator" label="创建人" align="center" />
+          <el-table-column prop="createUser" label="创建人" align="center" />
           <el-table-column fixed="right" label="操作" width="200" align="center">
             <template #default="scope">
               <el-link type="primary" @click="handleUpdate(scope.row)">编辑</el-link>
@@ -159,8 +161,8 @@ watch([() => paginationData.currentPage, () => paginationData.pageSize], getTabl
       width="50%"
     >
       <el-form ref="formRef" :model="formData" :rules="formRules" label-width="auto" size="large">
-        <el-form-item prop="title" label="标题">
-          <el-input v-model="formData.title" placeholder="请输入" />
+        <el-form-item prop="name" label="标题">
+          <el-input v-model="formData.name" placeholder="请输入" />
         </el-form-item>
       </el-form>
       <template #footer>

+ 3 - 0
vite.config.js

@@ -31,7 +31,10 @@ export default ({ mode }) => {
       /** 接口代理 */
       proxy: {
         "/alumni/api": {
+          // 线上地址
           target: "https://chtech.ncjti.edu.cn/alumnus/alumni_api",
+          // 本地地址
+          // target: "http://192.168.161.220:8687/",
           ws: true,
           /** 是否允许跨域 */
           changeOrigin: true