Forráskód Böngészése

密码管理菜单

lihongxiao 2 éve
szülő
commit
ee389e4dca
3 módosított fájl, 225 hozzáadás és 2 törlés
  1. 2 2
      config/dev.env.js
  2. 26 0
      src/http/moudules/menu.js
  3. 197 0
      src/views/Sys/Password.vue

+ 2 - 2
config/dev.env.js

@@ -9,11 +9,11 @@ module.exports = merge(prodEnv, {
   // BASE_URL:'"https://sxzgkj.baoxianzhanggui.com/web-api"'//正式服务器
   // BASE_URL:'"https://sxzgkj.baoxianzhanggui.com/web-api"'//正式服务器
   // BASE_URL:'"https://sxzgkj.baoxianzhanggui.com/web-api"'//正式服务器
   // BASE_URL:'"https://sxzgkj.baoxianzhanggui.com/web-api"'//正式服务器
   // BASE_URL: '"http://192.168.0.115:8080/"' //凯森
   // BASE_URL: '"http://192.168.0.115:8080/"' //凯森
-  // BASE_URL: '"http:///192.168.0.106:8080/"',//屈晨
+  BASE_URL: '"http:///192.168.0.106:8080/"',//屈晨
   // BASE_URL: '"http:///192.168.0.253:8080/"',//田智
   // BASE_URL: '"http:///192.168.0.253:8080/"',//田智
   // BASE_URL: '"http:///192.168.0.42:8080/"',//武鸿鹏
   // BASE_URL: '"http:///192.168.0.42:8080/"',//武鸿鹏
   // BASE_URL: '"http://192.168.1.101:8080/"',
   // BASE_URL: '"http://192.168.1.101:8080/"',
-  BASE_URL: '"http:///192.168.0.22:8080/"',//郝宇
+  // BASE_URL: '"http:///192.168.0.22:8080/"',//郝宇
   // BASE_URL: '"http:///192.168.0.103:8080/"',//
   // BASE_URL: '"http:///192.168.0.103:8080/"',//
 })
 })
 
 

+ 26 - 0
src/http/moudules/menu.js

@@ -35,4 +35,30 @@ export const findMenuTree = () => {
         url: '/menu/findMenuTree',
         url: '/menu/findMenuTree',
         method: 'get'
         method: 'get'
     })
     })
+}
+
+
+
+
+// 密码管理
+export const passwordList = (data) => {
+    return axios({
+        url: '/sys/password/list',
+        method: 'post',
+        data
+    })
+}
+export const passwordAdd = (data) => {
+    return axios({
+        url: '/sys/password/add',
+        method: 'post',
+        data
+    })
+}
+export const passwordUpdate = (data) => {
+    return axios({
+        url: '/sys/password/update',
+        method: 'post',
+        data
+    })
 }
 }

+ 197 - 0
src/views/Sys/Password.vue

@@ -0,0 +1,197 @@
+<template>
+  <div>
+    <!--工具栏-->
+    <el-main>
+      <el-form :inline="true" :model="filters" :size="size">
+        <el-form-item label="功能:">
+          <el-input v-model="filters.name" placeholder="功能"></el-input>
+        </el-form-item>
+        <el-form-item>
+          <kt-button icon="fa fa-search" :label="$t('action.search')" type="primary" @click="findPage()" />
+        </el-form-item>
+        <el-form-item>
+          <kt-button icon="fa fa-plus" label="新增" perms="sys:menu:add" type="primary" @click="handleAdd" />
+        </el-form-item>
+      </el-form>
+    </el-main>
+    <!--表格树内容栏-->
+    <kt-common-table :data="pageResult" :columns="columns" editButtonName="编辑" :showBatchDelete="false"
+      @findPage="findPage" @handleEdit="handleEdit">
+    </kt-common-table>
+    <!-- 新增修改界面 -->
+    <el-dialog v-dialogDrag :title="!dataForm.id ? '新增' : '修改'" width="25%" :visible.sync="dialogVisible"
+      :close-on-click-modal="false">
+      <el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="submitForm()" label-width="80px"
+        :size="size" style="text-align:left;">
+        <el-form-item label="编码" prop="code">
+          <el-input v-model="dataForm.code" placeholder="请输入编码"></el-input>
+        </el-form-item>
+        <el-form-item label="功能描述" prop="name">
+          <el-input v-model="dataForm.name" placeholder="请输入功能"></el-input>
+        </el-form-item>
+        <el-form-item label="旧密码" prop="originalPassword" v-if="dataForm.id">
+          <el-input v-model="dataForm.originalPassword" placeholder="请输入旧密码"
+            :class="isShow == true ? 'disc' : 'none'"></el-input>
+          <i class="el-icon-view icon" @click="isShowFun()" v-if="dialogPassword"></i>
+        </el-form-item>
+        <el-form-item :label="dataForm.id ? '新密码' : '密码'" prop="password">
+          <el-input v-model="dataForm.password" placeholder="请输入密码"  :class="isShow1 == true ? 'disc' : 'none'"></el-input>
+          <i class="el-icon-view icon" @click="isShowFun1()" v-if="dialogPassword"></i>
+        </el-form-item>
+        <el-form-item label="重复密码" prop="password" v-if="!dataForm.id">
+          <el-input v-model="dataForm.verifyPassword" placeholder="请输入密码"  :class="isShow2 == true ? 'disc' : 'none'"></el-input>
+          <i class="el-icon-view icon" @click="isShowFun2()" v-if="dialogPassword"></i>
+        </el-form-item>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button :size="size" @click="dialogVisible = false">{{ $t('action.cancel') }}</el-button>
+        <el-button :size="size" type="primary" @click="submitForm()">{{ $t('action.comfirm') }}</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import KtButton from "@/views/Core/KtButton";
+import KtCommonTable from "@/views/Core/KtCommonTable.vue";//表格组件
+
+export default {
+  components: {
+    KtButton,
+    KtCommonTable
+  },
+  data() {
+    return {
+      size: "small",
+      loading: false,
+      filters: {
+        name: ""
+      },
+      pageResult: {},
+      dialogVisible: false,
+      dataForm: {},
+      isShow: true,
+      isShow1: true,
+      isShow2: true,
+      dialogPassword: true, //密码是否显示明文
+      dataRule: {
+        code: [{ required: true, message: "编码不能为空", trigger: "blur" }],
+        name: [{ required: true, message: "功能描述不能为空", trigger: "blur" }],
+        password: [{ required: true, message: "密码不能为空", trigger: "blur" }],
+        verifyPassword: [{ required: true, message: "密码不能为空", trigger: "blur" }],
+        originalPassword: [{ required: true, message: "密码不能为空", trigger: "blur" }],
+      },
+      pageRequest: {  //查询的默认条件
+        pageNum: 1,
+        pageSize: 20,
+      },
+      columns: [  // 数据列
+        { prop: "code", label: "编码", sortable: false },
+        { prop: "name", label: "功能描述", sortable: false },
+        { prop: "password", label: "密码", sortable: false },
+      ],
+    };
+  },
+  methods: {
+    // 获取数据
+    findPage: function () {
+      this.loading = true;
+      this.$api.menu.passwordList({...this.pageRequest,...this.filters}).then(res => {
+        res.data.content.forEach(val => { val.password = '**********' })
+        this.pageResult = res.data;
+        this.pageRequest = {
+          pageNum: res.data.pageNum,
+          pageSize: res.data.pageSize,
+        };
+        this.loading = false;
+      });
+    },
+
+    // 显示新增界面
+    handleAdd() {
+      this.dialogVisible = true;
+      // this.dialogPassword = true;
+      this.dataForm = {
+        code: '',
+        verifyPassword: '',
+        password: '',
+      };
+    },
+    // 显示编辑界面
+    handleEdit: function (scope) {
+      this.dialogVisible = true;
+      scope.row.password=''
+      this.dataForm = Object.assign({}, scope.row);
+    },
+    // 菜单树选中
+    handleTreeSelectChange(data, node) {
+      this.dataForm.parentId = data.id;
+      this.dataForm.parentName = data.name;
+    },
+    // 图标选中
+    iconActiveHandle(iconName) {
+      this.dataForm.icon = iconName;
+    },
+    isShowFun() {
+      this.isShow = !this.isShow
+    },
+    isShowFun1() {
+      this.isShow1 = !this.isShow1
+    },
+    isShowFun2() {
+      this.isShow2 = !this.isShow2
+    },
+    // 表单提交
+    submitForm() {
+      this.$refs["dataForm"].validate(valid => {
+        if (valid) {
+          this.$confirm("确认提交吗?", "提示", {}).then(() => {
+            this.editLoading = true;
+            let InterfaceField=""
+            if(this.dataForm.id){
+              InterfaceField='passwordUpdate'
+            }
+            else{
+              InterfaceField='passwordAdd'
+            }
+            this.$api.menu[InterfaceField](this.dataForm).then(res => {
+              this.editLoading = false;
+              if (res.code == 200) {
+                this.$message({ message: "操作成功", type: "success" });
+                this.$refs["dataForm"].resetFields();
+                this.dialogVisible = false;
+              } else {
+                this.$message({
+                  message: "操作失败, " + res.msg,
+                  type: "error"
+                });
+              }
+              this.findPage();
+            });
+          });
+        }
+      });
+    }
+  },
+
+};
+</script>
+
+<style scoped>
+.disc {
+  -webkit-text-security: disc;
+  position: relative;
+}
+
+.none {
+  -webkit-text-security: none;
+  position: relative;
+}
+.icon {
+  color: #ccc;
+  position: absolute;
+  right: 0;
+  top: 10px;
+  text-align: center
+}
+</style>