|
|
@@ -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>
|