e 1 year ago
parent
commit
8305a59d9a

+ 8 - 0
git文件/1.简介.md

@@ -0,0 +1,8 @@
+## git 分布式版本管理工具
+    文件备份,便携开发,代码追责
+## 安装git https://git-scm.com/downloads
+## git init 初始化
+## git config --list 查看本地目录
+## 解决加载问题 wq
+## 设置全局用户名  git config --global user.name 'aaa'
+## 设置全局邮箱     git config --global user.email xxxxxxxx

+ 54 - 0
vue2.0/vue项目/vue-admin-template-master/src/api/message.js

@@ -0,0 +1,54 @@
+import request from '@/utils/request'
+
+// 信息列表
+export function showMessage() {
+  return request({
+    url: '/showMessage',
+    method: 'get'
+  })
+}
+
+// 删除信息
+export function delOneMessage(data) {
+  return request({
+    url: '/delOneMessage',
+    method: 'get',
+    params: data
+  })
+}
+
+// 修改信息
+export function updateMessage(data) {
+  return request({
+    url: '/updateMessage',
+    method: 'post',
+    data
+  })
+}
+
+// 添加信息
+export function insertAllMessage(data) {
+  return request({
+    url: '/insertAllMessage',
+    method: 'post',
+    data
+  })
+}
+
+// 根据ID获取信息
+export function showOneMessage(data) {
+  return request({
+    url: '/showOneMessage',
+    method: 'get',
+    params: data
+  })
+}
+
+// 根据地址筛选信息
+export function searchaddressid(data) {
+  return request({
+    url: '/searchaddressid',
+    method: 'post',
+    data
+  })
+}

+ 20 - 0
vue2.0/vue项目/vue-admin-template-master/src/router/index.js

@@ -76,6 +76,26 @@ export const constantRoutes = [
       }
     ]
   },
+  {
+    path: '/message',
+    component: Layout,
+    name: 'Message',
+    meta: { title: 'Message', icon: 'level' },
+    children: [
+      {
+        path: 'messageList',
+        name: 'messageList',
+        component: () => import('@/views/message/list.vue'),
+        meta: { title: 'messageList', icon: 'levelList' }
+      },
+      {
+        path: 'addMessage',
+        name: 'addMessage',
+        component: () => import('@/views/message/addList.vue'),
+        meta: { title: 'addMessage', icon: 'addLevel' }
+      }
+    ]
+  },
   {
     path: '/address',
     component: Layout,

+ 193 - 0
vue2.0/vue项目/vue-admin-template-master/src/views/message/addList.vue

@@ -0,0 +1,193 @@
+<template>
+  <div class="addList">
+    <el-form
+      ref="ruleForm"
+      :model="ruleForm"
+      :rules="rules"
+      label-width="100px"
+      class="demo-ruleForm"
+    >
+      <el-form-item label="用户名称" prop="uname">
+        <el-input v-model="ruleForm.uname" />
+      </el-form-item>
+      <el-form-item label="地址名称" prop="addressid">
+        <el-select v-model="ruleForm.addressid" placeholder="请选择地址名称">
+          <el-option
+            v-for="item in addressList"
+            :key="item.addressid"
+            :value="item.addressid"
+            :label="item.addressname"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="等级名称" prop="levelid">
+        <el-select v-model="ruleForm.levelid" placeholder="请选择等级名称">
+          <el-option
+            v-for="item in levelList"
+            :key="item.jrid"
+            :value="item.jrid"
+            :label="item.levelname"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="电话号码" prop="tel">
+        <el-input v-model="ruleForm.tel" />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" @click="submitForm('ruleForm')" v-if="open"
+          >修改</el-button
+        >
+        <el-button type="primary" @click="submitForm('ruleForm')" v-else
+          >提交</el-button
+        >
+        <el-button @click="resetForm('ruleForm')">重置</el-button>
+      </el-form-item>
+    </el-form>
+  </div>
+</template>
+
+<script>
+import { showAddresses } from "@/api/address.js";
+import { showLevel } from "@/api/level.js";
+import {
+  insertAllMessage,
+  showOneMessage,
+  updateMessage,
+} from "@/api/message.js";
+export default {
+  data() {
+    return {
+      ruleForm: {
+        uname: "",
+        addressid: "",
+        levelid: "",
+        tel: "",
+        arr1: "",
+      },
+      addressList: [],
+      levelList: [],
+      rules: {
+        uname: [{ required: true, message: "请输入用户名称", trigger: "blur" }],
+        addressid: [
+          { required: true, message: "请选择地址名称", trigger: "change" },
+        ],
+        tel: [{ required: true, message: "请输入电话号码", trigger: "blur" }],
+        levelid: [
+          { required: true, message: "请选择等级名称", trigger: "change" },
+        ],
+      },
+      id: "",
+      open: false,
+    };
+  },
+  created() {
+    this.id = this.$route.query.ids;
+    if (this.id) {
+      this.open = true;
+      showOneMessage({
+        id: this.id,
+      })
+        .then((res) => {
+          if (res.code == 101) {
+            this.ruleForm.uname = res.data[0].jrname;
+            this.ruleForm.addressid = res.data[0].jraddressesid;
+            this.ruleForm.tel = res.data[0].jrtel;
+            this.ruleForm.levelid = res.data[0].jrlevel;
+          }
+        })
+        .catch((err) => {
+          console.log(err);
+        });
+    } else {
+      this.open = false;
+    }
+    this.getAddress();
+    this.getLevel();
+  },
+  methods: {
+    // 获取所有地址
+    getAddress() {
+      showAddresses()
+        .then((res) => {
+          this.addressList = res.data;
+        })
+        .catch((err) => {
+          console.log(err);
+        });
+    },
+    // 获取所有等级
+    getLevel() {
+      showLevel()
+        .then((res) => {
+          this.levelList = res.data;
+        })
+        .catch((err) => {
+          console.log(err);
+        });
+    },
+    submitForm(formName) {
+      this.$refs[formName].validate((valid) => {
+        if (valid) {
+          if (this.open) {
+            // 修改
+            updateMessage({
+              id: this.id,
+              uname: this.ruleForm.uname,
+              addressid: this.ruleForm.addressid,
+              levelid: this.ruleForm.levelid,
+              tel: this.ruleForm.tel,
+            })
+              .then((res) => {
+                if (res.code == 101) {
+                  this.$message({
+                    message: res.message,
+                    type: "success",
+                  });
+                  this.resetForm("ruleForm");
+                  this.$router.push("./messageList");
+                }
+              })
+              .catch((err) => {
+                console.log(err, "失败");
+              });
+          } else {
+            // 添加
+            insertAllMessage({
+              uname: this.ruleForm.uname,
+              addressid: this.ruleForm.addressid,
+              levelid: this.ruleForm.levelid,
+              tel: this.ruleForm.tel,
+            })
+              .then((res) => {
+                if (res.code == 101) {
+                  this.$message({
+                    message: res.message,
+                    type: "success",
+                  });
+                  this.resetForm("ruleForm");
+                  this.$router.push("./messageList");
+                }
+              })
+              .catch((err) => {
+                console.log(err);
+              });
+          }
+        } else {
+          console.log("error submit!!");
+          return false;
+        }
+      });
+    },
+    resetForm(formName) {
+      this.$refs[formName].resetFields();
+    },
+  },
+};
+</script>
+
+<style scoped>
+.addList {
+  width: 70%;
+  margin: 200px auto 0;
+}
+</style>

+ 142 - 0
vue2.0/vue项目/vue-admin-template-master/src/views/message/list.vue

@@ -0,0 +1,142 @@
+<template>
+  <div class="list">
+    <el-form ref="form" :model="form">
+      <el-form-item>
+        <el-select v-model="form.addressid" placeholder="请选择">
+          <el-option
+            v-for="item in addressList"
+            :key="item.addressid"
+            :value="item.addressid"
+            :label="item.addressname"
+          />
+        </el-select>
+        <el-button class="btn" type="primary" @click="onSubmit">搜索</el-button>
+        <el-button @click="cancel">取消</el-button>
+      </el-form-item>
+    </el-form>
+    <el-table :data="tableData" style="width: 100%" height="550">
+      <el-table-column type="index" width="50" />
+      <el-table-column property="jrname" label="姓名" width="230" />
+      <el-table-column property="jrtel" label="电话号" width="230" />
+      <el-table-column property="jrlevel" label="等级ID" width="230" />
+      <el-table-column property="levelname" label="等级名称" width="230" />
+      <el-table-column property="addressname" label="地址名称" width="230" />
+      <el-table-column label="操作" width="200" fixed="right">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            @click="handleEdit(scope.row)"
+          >编辑</el-button>
+          <el-button
+            size="mini"
+            type="danger"
+            @click="handleDelete(scope.row)"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+  </div>
+</template>
+
+<script>
+import { showMessage, delOneMessage, searchaddressid } from '@/api/message.js'
+import { showAddresses } from '@/api/address.js'
+export default {
+  data() {
+    return {
+      tableData: [],
+      form: {
+        addressid: ''
+      },
+      addressList: [],
+    }
+  },
+  created() {
+    this.init()
+    this.getAddress()
+  },
+  methods: {
+    // 初始化列表
+    init() {
+      showMessage()
+        .then((res) => {
+          if (res.code == 101) {
+            this.tableData = res.data
+          }
+        })
+        .catch((err) => {
+          console.log(err)
+        })
+    },
+    // 获取地址
+    getAddress() {
+      showAddresses().then(res => {
+        this.addressList = res.data
+      }).catch((err) => { console.log(err) })
+    },
+    // 编辑
+    handleEdit(row) {
+      this.$router.push({
+        path: './addMessage',
+        query: {
+          ids: row.jrid
+        }
+      })
+      console.log(row)
+    },
+    // 删除
+    handleDelete(row) {
+      console.log(row.jrid)
+      delOneMessage({
+        id: row.jrid
+      }).then(res => {
+        console.log(res, '成功')
+        if (res.code == 101) {
+          this.$message({
+            message: res.message,
+            type: 'success'
+          })
+          this.init()
+        }
+      }).catch(err => {
+        console.log(err, '失败')
+      })
+    },
+    // 搜索
+    onSubmit() {
+      searchaddressid({
+        searchid: this.form.addressid
+      }).then(res => {
+        if (res.code == 101) {
+          this.tableData = res.data
+          this.addressList.forEach((item) => {
+            if (item.addressid == this.form.addressid) {
+              for (var i = 0; i < this.tableData.length; i++) {
+                this.tableData[i].addressname = item.addressname
+                this.tableData[i].levelname = '暂无信息'
+              }
+            }
+          })
+        }
+      }).catch(err => {
+        console.log(err)
+      })
+    },
+    // 取消
+    cancel() {
+      this.form.addressid = ''
+      this.init()
+    }
+  }
+}
+</script>
+
+<style scoped>
+.list {
+  width: 60%;
+  margin: 200px auto 50px;
+}
+.btn {
+    margin-left: 20px;
+}
+</style>

+ 13 - 0
vue2.0/vue项目/vue-admin-template-master/鉴权.md

@@ -0,0 +1,13 @@
+前端鉴权逻辑是指在前端应用中对用户进行身份验证和权限控制的一系列操作和规则。以下是一般的前端鉴权逻辑:
+
+用户登录:用户在前端应用中输入用户名和密码进行登录,前端将用户输入的信息发送给后端进行验证。后端验证通过后,会返回一个包含用户身份信息的令牌(Token)给前端。
+
+令牌存储:前端将后端返回的令牌保存在本地,通常使用浏览器的本地存储(如sessionStorage或Cookie)来保存令牌。
+
+请求携带令牌:在每次向后端发送请求时,前端需要在请求头中携带令牌,以便后端进行身份验证。通常使用Bearer Token的方式,在请求头的Authorization字段中添加"Bearer 令牌"。
+
+身份验证:后端接收到请求后,会从请求头中获取令牌,并进行身份验证。验证通过后,才会继续处理请求;否则,返回未授权的错误响应。
+
+权限控制:除了身份验证外,前端鉴权逻辑还包括权限控制。在用户登录成功后,后端会返回用户的权限信息。前端根据用户的权限信息,来决定是否显示或禁用某些功能或页面。
+
+令牌刷新:令牌通常有一个过期时间,为了避免用户在使用过程中令牌过期导致需要重新登录,可以使用令牌刷新机制。前端在每次请求时,检查令牌是否即将过期,如果即将过期,则发送刷新令牌的请求给后端,后端返回一个新的令牌给前端,前端更新本地存储的令牌。