| | |
| | | export function select_meta_ByPageAndCount(params) { |
| | | return request.get('/meta/selectByPageAndCount', { params: params }); |
| | | } |
| | | // //元数据管理列表新增 |
| | | export function insertMeta(params) { |
| | | return request.post('/meta/insert', params); |
| | | } |
| | | |
| | | //元数据管理列表修改 |
| | | export function updateMeta(params) { |
| | | return request.post('/meta/update', params); |
| | |
| | | <template> |
| | | <div class="authorityManagement_box"> |
| | | <My-bread :list="['数据管理', '元数据管理']"></My-bread> |
| | | <My-bread |
| | | :list="[ |
| | | `${$t('dataManage.dataManage')}`, |
| | | `${$t('dataManage.metadataManage')}`, |
| | | ]" |
| | | ></My-bread> |
| | | <el-divider /> |
| | | <div class="searchComp"> |
| | | <el-form ref="ruleForm" :model="ruleForm" :inline="true"> |
| | | <div class="inquire"> |
| | | <el-form ref="queryForm" :model="queryForm" :inline="true"> |
| | | <el-form-item label="关键字" prop="name"> |
| | | <el-input v-model="ruleForm.name" placeholder="请输入" /> |
| | | <el-input v-model="queryForm.name" placeholder="请输入" /> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button |
| | | @click="submitForm('ruleForm')" |
| | | @click="queryInfo()" |
| | | icon="el-icon-search" |
| | | type="primary" |
| | | size="small" |
| | | >查询</el-button |
| | | > |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button |
| | | @click="resetForm('ruleForm')" |
| | | @click="resetInfo('queryForm')" |
| | | icon="el-icon-refresh" |
| | | type="info" |
| | | size="small" |
| | | >重置</el-button |
| | | > |
| | | </el-form-item> |
| | | |
| | | <el-form-item v-if="btnStatus.insert"> |
| | | <el-button |
| | | v-if="btnStatus.download" |
| | | @click="downFormData" |
| | | icon="el-icon-download" |
| | | type="success" |
| | | size="small" |
| | | >下载</el-button |
| | | @click="showAddDialog" |
| | | icon="el-icon-plus" |
| | | >{{ $t("common.append") }}</el-button |
| | | > |
| | | <!-- <el-button |
| | | @click="downFormData" |
| | | icon="el-icon-download" |
| | | type="success" |
| | | size="small" |
| | | >下载</el-button |
| | | > --> |
| | | </el-form-item> |
| | | <el-form-item v-if="btnStatus.delete"> |
| | | <el-button |
| | | v-if="btnStatus.delete" |
| | | @click="DelFormData" |
| | | icon="el-icon-delete" |
| | | type="danger" |
| | | size="small" |
| | | >删除</el-button |
| | | @click="deleteMetaInfo" |
| | | icon="el-icon-delete" |
| | | >{{ $t("common.delete") }}</el-button |
| | | > |
| | | </el-form-item> |
| | | <el-form-item v-if="btnStatus.download"> |
| | | <el-button |
| | | @click="downFormData" |
| | | icon="el-icon-download" |
| | | type="success" |
| | | size="small" |
| | | >下载</el-button |
| | | > |
| | | </el-form-item> |
| | | </el-form> |
| | |
| | | height="99%" |
| | | > |
| | | <el-table-column type="selection" width="55" /> |
| | | <el-table-column min-width="150" prop="name" label="数据名称" /> |
| | | <el-table-column min-width="150" prop="name" label="名称" /> |
| | | <el-table-column min-width="100" prop="format" label="格式" /> |
| | | <el-table-column min-width="100" prop="sizes" label="大小" /> |
| | | <el-table-column |
| | | min-width="100" |
| | | prop="createUser" |
| | |
| | | label="创建时间" |
| | | /> |
| | | <el-table-column min-width="100" prop="cs" label="坐标系统" /> |
| | | <el-table-column |
| | | min-width="100" |
| | | prop="scale" |
| | | label="比例尺/分辨率" |
| | | /> |
| | | <el-table-column min-width="100" prop="format" label="存储格式" /> |
| | | <el-table-column min-width="100" prop="version" label="数据版本" /> |
| | | <el-table-column prop="status" label="发布" width="70%"> |
| | | <template slot-scope="scope"> |
| | | <span |
| | | slot="reference" |
| | | v-if="scope.row.s_url === '' || scope.row.s_url === null" |
| | | > |
| | | <i class="dotClass" style="background-color: gray"></i> |
| | | </span> |
| | | <span slot="reference" v-else> |
| | | <i class="dotClass" style="background-color: springgreen"></i> |
| | | </span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column min-width="100" prop="scale" label="比例尺" /> |
| | | <el-table-column min-width="100" prop="resolution" label="分辨率" /> |
| | | |
| | | <el-table-column min-width="100" prop="descr" label="描述" /> |
| | | <el-table-column min-width="100" label="操作"> |
| | | <template slot-scope="scope"> |
| | | <el-link @click="showDetail(scope.$index, scope.row)" |
| | | >查看</el-link |
| | | > |
| | | <el-link |
| | | @click="handleEdit(scope.$index, scope.row)" |
| | | style="margin-left: 10px" |
| | | <el-link @click="showDetail(scope.row)">查看</el-link> |
| | | <el-link @click="editInfo(scope.row)" style="margin-left: 10px" |
| | | >修改</el-link |
| | | > |
| | | <el-link |
| | | v-if="scope.row.s_url === '' || scope.row.s_url === null" |
| | | @click="handleStart(scope.row)" |
| | | style="margin-left: 10px" |
| | | >发布</el-link |
| | | > |
| | | <el-link |
| | | v-else |
| | | @click="handleStop(scope.row)" |
| | | style="margin-left: 10px" |
| | | >停止</el-link |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | |
| | | <div class="contentBox"> |
| | | <p>数据名称:{{ itemdetail.name }}</p> |
| | | <el-divider></el-divider> |
| | | <p> |
| | | 数据范围: |
| | | {{ itemdetail.x_min }}, {{ itemdetail.y_min }}; |
| | | {{ itemdetail.x_max }}, {{ itemdetail.y_max }} |
| | | </p> |
| | | <el-divider></el-divider> |
| | | <p>创建时间:{{ itemdetail.create_time }}</p> |
| | | <el-divider></el-divider> |
| | | <p>创建人员:{{ itemdetail.create_user }}</p> |
| | | <el-divider></el-divider> |
| | | <p>更新时间:{{ itemdetail.up_time }}</p> |
| | | <el-divider></el-divider> |
| | | <p>更新人员:{{ itemdetail.up_user }}</p> |
| | | <el-divider></el-divider> |
| | | <p>上传单位:{{ itemdetail.up_unit }}</p> |
| | | <el-divider></el-divider> |
| | | <p>数据状态:{{ itemdetail.status }}</p> |
| | | <el-divider></el-divider> |
| | | <p>坐标系统:{{ itemdetail.coor_sys }}</p> |
| | | <el-divider></el-divider> |
| | | <p>比例尺/分辨率:{{ itemdetail.accuracy }}</p> |
| | | <el-divider></el-divider> |
| | | <p> |
| | | 发布地址:{{ itemdetail.s_url }} |
| | | <el-link |
| | | @click="ShowWindowFly(itemdetail.s_url)" |
| | | :underline="false" |
| | | type="primary" |
| | | >详情</el-link |
| | | > |
| | | </p> |
| | | <el-divider></el-divider> |
| | | <p>数据版本:{{ itemdetail.version }}</p> |
| | | <el-divider></el-divider> |
| | | <p>数据类型:{{ itemdetail.type }}</p> |
| | | <el-divider></el-divider> |
| | | <p>数据格式:{{ itemdetail.format }}</p> |
| | | <el-divider></el-divider> |
| | | <p>创建时间:{{ itemdetail.createTime }}</p> |
| | | <el-divider></el-divider> |
| | | <p>创建人员:{{ itemdetail.createUser }}</p> |
| | | <el-divider></el-divider> |
| | | <p>更新时间:{{ itemdetail.updateTime }}</p> |
| | | <el-divider></el-divider> |
| | | <p>更新人员:{{ itemdetail.updateUser }}</p> |
| | | <el-divider></el-divider> |
| | | <p>坐标系统:{{ itemdetail.cs }}</p> |
| | | <el-divider></el-divider> |
| | | <p>比例尺{{ itemdetail.scale }}</p> |
| | | <el-divider></el-divider> |
| | | <p>分辨率{{ itemdetail.resolution }}</p> |
| | | <el-divider></el-divider> |
| | | <p>描述:{{ itemdetail.descr }}</p> |
| | | </div> |
| | | </el-card> |
| | | </div> |
| | | <el-dialog title="修改详情" :visible.sync="dialogFormVisible"> |
| | | <el-form :model="upform"> |
| | | <el-dialog |
| | | width="510px" |
| | | top="5vh" |
| | | :title="behavior" |
| | | :visible.sync="dialogFormVisible" |
| | | :before-close="handleClose" |
| | | > |
| | | <el-form :model="editForm" ref="editForm"> |
| | | <el-form-item label="数据名称" :label-width="formLabelWidth"> |
| | | <el-input v-model="upform.name" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="数据范围x_min" :label-width="formLabelWidth"> |
| | | <el-input v-model="upform.x_min" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="数据范围x_max" :label-width="formLabelWidth"> |
| | | <el-input v-model="upform.x_max" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="数据范围y_min" :label-width="formLabelWidth"> |
| | | <el-input v-model="upform.y_min" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="数据范围y_max" :label-width="formLabelWidth"> |
| | | <el-input v-model="upform.y_max" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="创建时间" :label-width="formLabelWidth"> |
| | | <el-date-picker |
| | | v-model="upform.create_time" |
| | | value-format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="选择日期" |
| | | style="width: 100%" |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="坐标系统" :label-width="formLabelWidth"> |
| | | <el-input v-model="upform.coor_sys" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="比例尺/分辨率" :label-width="formLabelWidth"> |
| | | <el-input v-model="upform.accuracy" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="数据格式" :label-width="formLabelWidth"> |
| | | <el-input v-model="upform.format" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="数据版本" :label-width="formLabelWidth"> |
| | | <el-input v-model="upform.version" autocomplete="off"></el-input> |
| | | <el-input v-model="editForm.name" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="数据类型" :label-width="formLabelWidth"> |
| | | <el-input v-model="upform.type" autocomplete="off"></el-input> |
| | | <el-input v-model="editForm.type" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="数据格式" :label-width="formLabelWidth"> |
| | | <el-input v-model="editForm.format" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="坐标系统" :label-width="formLabelWidth"> |
| | | <el-input v-model="editForm.cs" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="比例尺" :label-width="formLabelWidth"> |
| | | <el-input v-model="editForm.scale" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="分辨率" :label-width="formLabelWidth"> |
| | | <el-input v-model="editForm.resolution" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="描述" :label-width="formLabelWidth"> |
| | | <el-input v-model="editForm.descr" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="updateForm">确 定</el-button> |
| | | <el-button @click="dialogFormVisible = false">取 消</el-button> |
| | | <div v-if="behavior == '修改信息'" slot="footer" class="dialog-footer"> |
| | | <el-button size="medium" @click="cancelEdit()">重置</el-button> |
| | | <el-button |
| | | size="medium" |
| | | type="primary" |
| | | @click="sendEdit('editForm')" |
| | | v-loading.fullscreen.lock="fullscreenLoading" |
| | | >提交</el-button |
| | | > |
| | | </div> |
| | | <div v-else slot="footer" class="dialog-footer"> |
| | | <el-button size="medium" @click="cancelAdd('editForm')">重置</el-button> |
| | | <el-button |
| | | size="medium" |
| | | type="primary" |
| | | @click="sendAdd('editForm')" |
| | | v-loading.fullscreen.lock="fullscreenLoading" |
| | | >提交</el-button |
| | | > |
| | | </div> |
| | | </el-dialog> |
| | | <div class="downloadBox" v-if="showCodeBox"> |
| | | <h4 style="padding: 20px">请输入下载包密码</h4> |
| | | |
| | | <el-form |
| | | :model="codeForm" |
| | | :rules="rules" |
| | |
| | | import { |
| | | select_meta_ByPageAndCount, |
| | | // queryDataCount, |
| | | updateMetaData, |
| | | dltMetaDatas, |
| | | publishMeta, |
| | | unpublishMeta, |
| | | updateMeta, |
| | | deleteMeta, |
| | | insertMeta, |
| | | } from "../../api/api"; |
| | | import MyBread from "../../components/MyBread.vue"; |
| | | export default { |
| | |
| | | multipleSelection: [], |
| | | formLabelWidth: "120px", |
| | | dialogFormVisible: false, |
| | | InsertFormdialog: false, |
| | | insertform: {}, |
| | | upform: {}, |
| | | editForm: {}, |
| | | showinfoBox: false, |
| | | fullscreenLoading: false, |
| | | itemdetail: {}, |
| | | ruleForm: { |
| | | queryForm: { |
| | | name: "", |
| | | }, |
| | | behavior: "", |
| | | initialForm: "", |
| | | codeForm: { |
| | | password: "", |
| | | repassword: "", |
| | |
| | | count: 0, |
| | | currentPage: 1, |
| | | pageSize: 10, |
| | | pageNum: 1, |
| | | searchName: "", |
| | | pageIndex: 1, |
| | | btnStatus: { |
| | | select: false, |
| | | delete: false, |
| | |
| | | }; |
| | | }, |
| | | created() { |
| | | this.getMetaData(10, 1, ""); |
| | | this.getMetaData({ |
| | | pageIndex: 1, |
| | | pageSize: 10, |
| | | }); |
| | | this.showPermsBtn(); |
| | | }, |
| | | methods: { |
| | | //显示权限按钮 |
| | | showPermsBtn() { |
| | | let currentPerms = this.$store.state.currentPerms; |
| | | let permsEntity = this.$store.state.permsEntity; |
| | |
| | | ); |
| | | }, |
| | | // 请求数据内容 |
| | | getMetaData(size, num, name) { |
| | | let params = { |
| | | name: name, |
| | | pageIndex: num, |
| | | pageSize: size, |
| | | }; |
| | | getMetaData(params) { |
| | | select_meta_ByPageAndCount(params).then((res) => { |
| | | // console.log(res); |
| | | this.tableData = res.result; |
| | | this.count = res.count; |
| | | }); |
| | | }, |
| | | |
| | | // 关键字查询 |
| | | submitForm(formName) { |
| | | // 查询 |
| | | queryInfo() { |
| | | let searchData = { |
| | | name: this.queryForm.name.trim(), |
| | | pageIndex: this.pageIndex, |
| | | pageSize: this.pageSize, |
| | | }; |
| | | select_meta_ByPageAndCount(searchData).then((res) => { |
| | | if (res.code == 200) { |
| | | this.tableData = res.result; |
| | | this.count = res.count; |
| | | } else { |
| | | console.log("查询接口报错"); |
| | | this.$notify.error({ |
| | | title: res.code, |
| | | message: res.result, |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | // 重置查询 |
| | | resetInfo(formName) { |
| | | this.$refs[formName].resetFields(); |
| | | }, |
| | | //新增按钮 |
| | | showAddDialog() { |
| | | this.behavior = "新增用户"; |
| | | this.editForm = {}; |
| | | this.dialogFormVisible = true; |
| | | }, |
| | | cancelAdd(formName) { |
| | | this.editForm = {}; |
| | | this.$refs[formName].resetFields(); |
| | | }, |
| | | sendAdd(formName) { |
| | | this.$refs[formName].validate((valid) => { |
| | | if (valid) { |
| | | this.searchName = this.ruleForm.name.trim(); |
| | | this.getMetaData(10, 1, this.searchName); |
| | | console.log(this.editForm); |
| | | this.fullscreenLoading = true; |
| | | insertMeta(this.editForm) |
| | | .then((res) => { |
| | | setTimeout(() => { |
| | | this.fullscreenLoading = false; |
| | | if (res.code == 200) { |
| | | this.getMetaData({ pageIndex: 1, pageSize: 10 }); |
| | | this.$message({ |
| | | message: "添加成功", |
| | | type: "success", |
| | | }); |
| | | this.editForm = {}; |
| | | this.dialogFormVisible = false; |
| | | } |
| | | }, 500); |
| | | }) |
| | | .catch((res) => { |
| | | alert("修改失败,请重试!"); |
| | | this.fullscreenLoading = false; |
| | | }); |
| | | } else { |
| | | console.log("error submit!!"); |
| | | return false; |
| | | } |
| | | }); |
| | | }, |
| | | // 重置查询 |
| | | resetForm(formName) { |
| | | this.getMetaData(10, 1, ""); |
| | | this.searchName = ""; |
| | | this.$refs[formName].resetFields(); |
| | | }, |
| | | // 获取多选选中的对象 |
| | | handleSelectionChange(val) { |
| | | this.multipleSelection = val; |
| | | // console.log(val); |
| | | }, |
| | | // 删除多条 |
| | | deleteMetaInfo() { |
| | | this.$confirm("确定是否删除所选内容?", "提示", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | var std = []; |
| | | for (var i in this.multipleSelection) { |
| | | std.push(this.multipleSelection[i].id); |
| | | } |
| | | deleteMeta({ ids: std.toString() }).then((res) => { |
| | | if (res.code == 200) { |
| | | this.$message({ |
| | | type: "success", |
| | | message: "删除成功!", |
| | | }); |
| | | this.multipleSelection = []; |
| | | this.getMetaData({ pageIndex: 1, pageSize: 10 }); |
| | | } else { |
| | | this.$message.error("删除失败"); |
| | | this.multipleSelection = []; |
| | | } |
| | | }); |
| | | }) |
| | | .catch(() => { |
| | | this.$message("已取消删除"); |
| | | }); |
| | | }, |
| | | |
| | | // 查看界面 |
| | | showDetail(index, row) { |
| | | showDetail(row) { |
| | | // console.log(index, row); |
| | | this.showinfoBox = true; |
| | | this.itemdetail = row; |
| | |
| | | this.itemdetail = {}; |
| | | }, |
| | | // 修改界面 |
| | | handleEdit(index, row) { |
| | | editInfo(row) { |
| | | // console.log(row); |
| | | delete row.createTime; |
| | | delete row.createUser; |
| | | delete row.updateUser; |
| | | delete row.updateUser; |
| | | this.initialForm = JSON.stringify(row); //备份 |
| | | this.behavior = "修改信息"; |
| | | this.editForm = JSON.parse(JSON.stringify(row)); |
| | | this.dialogFormVisible = true; |
| | | this.upform = JSON.parse(JSON.stringify(row)); |
| | | }, |
| | | handleClose(done) { |
| | | this.$confirm("确认关闭?") |
| | | .then((_) => { |
| | | this.editForm = {}; |
| | | done(); |
| | | }) |
| | | .catch((_) => {}); |
| | | }, |
| | | |
| | | // 提交修改 |
| | | updateForm() { |
| | | sendEdit() { |
| | | this.$confirm("是否确定编辑?", "提示", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | |
| | | }) |
| | | .then(() => { |
| | | this.dialogFormVisible = false; |
| | | updateMetaData(this.upform).then((res) => { |
| | | if (res.data == 1) { |
| | | this.$message({ |
| | | message: "修改成功", |
| | | type: "success", |
| | | }); |
| | | } |
| | | this.getMetaData(10, 1, ""); |
| | | updateMeta(this.editForm).then((res) => { |
| | | setTimeout(() => { |
| | | this.fullscreenLoading = false; |
| | | if (res.code == 200) { |
| | | this.getMetaData({ pageIndex: 1, pageSize: 10 }); |
| | | this.$message({ |
| | | message: "修改成功", |
| | | type: "success", |
| | | }); |
| | | this.editForm = {}; |
| | | this.dialogFormVisible = false; |
| | | } |
| | | }, 500); |
| | | }); |
| | | }) |
| | | .catch(() => {}); |
| | | .catch(() => { |
| | | alert("修改失败,请重试!"); |
| | | this.fullscreenLoading = false; |
| | | }); |
| | | }, |
| | | |
| | | // 删除多条 |
| | | DelFormData() { |
| | | var std = []; |
| | | for (var i in this.multipleSelection) { |
| | | std.push(this.multipleSelection[i].id); |
| | | } |
| | | this.$confirm("确定是否删除所选内容?", "提示", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | dltMetaDatas(std).then((res) => { |
| | | this.getMetaData(10, 1, ""); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "删除成功!", |
| | | }); |
| | | }); |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | download(formName) { |
| | | this.$refs[formName].validate((valid) => { |
| | | if (valid) { |
| | | let ids = ""; |
| | | this.multipleSelection.forEach((e) => { |
| | | ids += `id=${e.id}&`; |
| | | }); |
| | | let res = ids.substring(0, ids.length - 1); |
| | | // console.log(res); |
| | | let url = "http://192.168.20.106/LFServer/Meta/Downloads?" + res; |
| | | window.open(url); |
| | | this.closeDown(); |
| | | } else { |
| | | console.log("下载失败"); |
| | | this.closeDown(); |
| | | return false; |
| | | } |
| | | cancelEdit() { |
| | | this.$nextTick(() => { |
| | | this.editForm = JSON.parse(this.initialForm); |
| | | }); |
| | | }, |
| | | download() {}, |
| | | closeDown() { |
| | | this.showCodeBox = false; |
| | | this.codeForm.password = ""; |
| | | this.codeForm.repassword = ""; |
| | | }, |
| | | downFormData() { |
| | | // var std = []; |
| | | // for (var i in this.multipleSelection) { |
| | | // std.push(this.multipleSelection[i].id); |
| | | // } |
| | | if (this.multipleSelection.length == 0) { |
| | | alert("请先选择要下载的文件"); |
| | | return; |
| | |
| | | // }) |
| | | // .catch(() => {}); |
| | | }, |
| | | handleStart(row) { |
| | | // publishMeta(row.id).then((res) => { |
| | | // console.log(res); |
| | | // this.getMetaData(10, 1, ""); |
| | | // }); |
| | | }, |
| | | handleStop(row) { |
| | | console.log(row.id); |
| | | // unpublishMeta(row.id).then((res) => { |
| | | // console.log(res); |
| | | // this.getMetaData(10, 1, ""); |
| | | // }); |
| | | }, |
| | | // 条数修改 |
| | | |
| | | handleSizeChange(val) { |
| | | this.pageSize = val; |
| | | this.getMetaData(this.pageSize, 1, this.searchName); |
| | | this.queryInfo(); |
| | | }, |
| | | // 页数修改 |
| | | handleCurrentChange(val) { |
| | | this.pageNum = val; |
| | | this.getMetaData(this.pageSize, this.pageNum, this.searchName); |
| | | this.pageIndex = val; |
| | | this.currentPage = val; |
| | | this.queryInfo(); |
| | | }, |
| | | }, |
| | | }; |
| | |
| | | height: 100%; |
| | | padding: 10px; |
| | | box-sizing: border-box; |
| | | .searchComp { |
| | | margin: 10px auto; |
| | | .inquire { |
| | | position: relative; |
| | | height: 50px; |
| | | overflow: auto; |
| | | padding: 8px; |
| | | margin-top: 20px; |
| | | background: #fff; |
| | | border-radius: 5px; |
| | | border: 1px solid rgb(202, 201, 204); |
| | | margin-bottom: 20px; |
| | | .el-form-item { |
| | | margin: 5px; |
| | | } |
| | | .el-input { |
| | | width: 467px; |
| | | } |
| | | } |
| | | .bottom { |
| | | width: 100%; |
| | | height: 85%; |
| | | height: 83%; |
| | | .rightTable { |
| | | height: 100%; |
| | | width: 100%; |
| | |
| | | } |
| | | } |
| | | /deep/ .el-dialog { |
| | | width: 500px !important; |
| | | margin-top: 10vh !important; |
| | | // width: 500px !important; |
| | | // margin-top: 10vh !important; |
| | | } |
| | | |
| | | /deep/.el-dialog .el-input__inner { |
| | |
| | | </el-cascader> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button @click="queryInfo()" |
| | | ><i class="el-icon-search"></i> {{ |
| | | $t('operatManage.ELM.search') |
| | | }}</el-button |
| | | > |
| | | <el-button |
| | | size="small" |
| | | type="primary" |
| | | @click="queryInfo()" |
| | | icon="el-icon-search" |
| | | >{{ $t("operatManage.ELM.search") }} |
| | | </el-button> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button @click="resetInfo('queryForm')" |
| | | ><i class="el-icon-delete"></i> {{ |
| | | $t('operatManage.ELM.reset') |
| | | }}</el-button |
| | | <el-button |
| | | size="small" |
| | | @click="resetInfo('queryForm')" |
| | | icon="el-icon-refresh" |
| | | > |
| | | {{ $t("operatManage.ELM.reset") }} |
| | | </el-button> |
| | | </el-form-item> |
| | | <br /> |
| | | <el-form-item> |
| | | <el-button |
| | | v-if="menuStatus.insert" |
| | | type="success" |
| | | size="small" |
| | | @click="showAddDialog" |
| | | ><i class="el-icon-plus"></i> {{ |
| | | $t('common.append') |
| | | }}</el-button |
| | | icon="el-icon-plus" |
| | | > |
| | | {{ $t("common.append") }} |
| | | </el-button> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button |
| | | v-if="menuStatus.delete" |
| | | type="danger" |
| | | size="small" |
| | | @click="deleteUserInfo" |
| | | ><i class="el-icon-delete"></i> {{ |
| | | $t('common.delete') |
| | | }}</el-button |
| | | icon="el-icon-delete" |
| | | > |
| | | {{ $t("common.delete") }} |
| | | </el-button> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="danger" size="small" @click="editPwd" |
| | | ><i class="el-icon-unlock"></i> 重置密码</el-button |
| | | > |
| | | <el-button |
| | | type="primary" |
| | | size="small" |
| | | @click="editPwd" |
| | | icon="el-icon-unlock" |
| | | >重置密码 |
| | | </el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | |
| | | type="warning" |
| | | @click="editInfo(scope.row)" |
| | | size="mini" |
| | | >{{ $t('common.edit') }}</el-button |
| | | >{{ $t("common.edit") }}</el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | |
| | | |
| | | <script> |
| | | var encrypt = new JSEncrypt(); |
| | | import { mapActions } from 'vuex'; |
| | | import MyBread from '../../components/MyBread.vue'; |
| | | import { mapActions } from "vuex"; |
| | | import MyBread from "../../components/MyBread.vue"; |
| | | import { |
| | | queryDepTree, |
| | | queryPageUser, |
| | |
| | | updateUser, |
| | | updatePwd, |
| | | selectByUserid, |
| | | } from '../../api/api'; |
| | | } from "../../api/api"; |
| | | export default { |
| | | //import引入的组件需要注入到对象中才能使用 |
| | | components: { |
| | |
| | | }, |
| | | data() { |
| | | let validName = (rule, value, callback) => { |
| | | if (value === '' || value === null || value === undefined) { |
| | | return callback(new Error('请输入密码')); |
| | | if (value === "" || value === null || value === undefined) { |
| | | return callback(new Error("请输入密码")); |
| | | } else { |
| | | callback(); |
| | | } |
| | | }; |
| | | let validatePass = (rule, value, callback) => { |
| | | if (value === '' || value === undefined) { |
| | | callback(new Error('请再次输入密码')); |
| | | if (value === "" || value === undefined) { |
| | | callback(new Error("请再次输入密码")); |
| | | } else if (value !== this.editForm.pwd) { |
| | | callback(new Error('两次输入密码不一致!')); |
| | | callback(new Error("两次输入密码不一致!")); |
| | | } else { |
| | | callback(); |
| | | } |
| | | }; |
| | | let resetPass = (rule, value, callback) => { |
| | | if (value === '' || value === undefined) { |
| | | callback(new Error('请再次输入密码')); |
| | | if (value === "" || value === undefined) { |
| | | callback(new Error("请再次输入密码")); |
| | | } else if (value !== this.pwdForm.newPwd) { |
| | | callback(new Error('两次输入密码不一致!')); |
| | | callback(new Error("两次输入密码不一致!")); |
| | | } else { |
| | | callback(); |
| | | } |
| | |
| | | pageSize: 10, |
| | | pageIndex: 1, |
| | | defaultProps: { |
| | | children: 'children', |
| | | label: 'name', |
| | | children: "children", |
| | | label: "name", |
| | | }, |
| | | queryForm: { |
| | | uname: '', |
| | | uname: "", |
| | | depid: null, |
| | | depName: '', |
| | | depName: "", |
| | | }, |
| | | tableData: [], |
| | | fullscreenLoading: false, |
| | | count: 0, |
| | | formLabelWidth: '100px', |
| | | formLabelWidth: "100px", |
| | | dialogFormVisible: false, |
| | | initialForm: '', |
| | | behavior: '', |
| | | initialForm: "", |
| | | behavior: "", |
| | | multipleSelection: [], |
| | | resetPwd: false, |
| | | editForm: { |
| | | uid: '', |
| | | uname: '', |
| | | oldPwd: '', |
| | | pwd: '', |
| | | checkPass: '', |
| | | uid: "", |
| | | uname: "", |
| | | oldPwd: "", |
| | | pwd: "", |
| | | checkPass: "", |
| | | sex: null, |
| | | natives: '', |
| | | natives: "", |
| | | depid: null, |
| | | idcard: '', |
| | | job: '', |
| | | edu: '', |
| | | addr: '', |
| | | email: '', |
| | | contact: '', |
| | | idcard: "", |
| | | job: "", |
| | | edu: "", |
| | | addr: "", |
| | | email: "", |
| | | contact: "", |
| | | status: null, |
| | | bak: '', |
| | | salt: '', |
| | | bak: "", |
| | | salt: "", |
| | | }, |
| | | pwdForm: { |
| | | adminPwd: '', |
| | | newPwd: '', |
| | | checkPwd: '', |
| | | adminPwd: "", |
| | | newPwd: "", |
| | | checkPwd: "", |
| | | ids: [], |
| | | }, |
| | | treeOptions: [], |
| | | statusOpt: [ |
| | | { |
| | | value: 0, |
| | | label: '正常', |
| | | label: "正常", |
| | | }, |
| | | { |
| | | value: 1, |
| | | label: '禁用', |
| | | label: "禁用", |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: '删除', |
| | | label: "删除", |
| | | }, |
| | | { |
| | | value: 3, |
| | | label: '申请', |
| | | label: "申请", |
| | | }, |
| | | { |
| | | value: 4, |
| | | label: '拒批', |
| | | label: "拒批", |
| | | }, |
| | | ], |
| | | depList: [], |
| | | sexOpt: [ |
| | | { |
| | | value: 0, |
| | | label: '女', |
| | | label: "女", |
| | | }, |
| | | { |
| | | value: 1, |
| | | label: '男', |
| | | label: "男", |
| | | }, |
| | | { |
| | | value: -1, |
| | | label: '未知', |
| | | label: "未知", |
| | | }, |
| | | ], |
| | | rules: { |
| | | uid: [ |
| | | { required: true, validator: validName, trigger: 'blur' }, |
| | | { required: true, validator: validName, trigger: "blur" }, |
| | | { |
| | | trigger: 'blur', |
| | | trigger: "blur", |
| | | validator: (rule, value, callback) => { |
| | | var reg = new RegExp(/^[a-zA-Z0-9_]{0,15}$/); //字符串正则表达式 4到14位(字母,数字,下划线,减号) |
| | | if (!reg.test(value)) { |
| | | callback( |
| | | new Error('账号必须由字母,数字或下划线,长度不得超过16位') |
| | | new Error("账号必须由字母,数字或下划线,长度不得超过16位") |
| | | ); |
| | | } else { |
| | | selectByUserid({ uid: value }).then((res) => { |
| | | if (res.result != null) { |
| | | this.isNewUser = false; |
| | | callback(new Error('账号已存在')); |
| | | callback(new Error("账号已存在")); |
| | | } else { |
| | | this.isNewUser = true; |
| | | callback(); |
| | |
| | | pwd: [ |
| | | { |
| | | required: true, |
| | | message: '请输入密码', |
| | | message: "请输入密码", |
| | | transform: (value) => value, |
| | | trigger: 'blur', |
| | | trigger: "blur", |
| | | }, |
| | | { |
| | | type: 'string', |
| | | message: '请输入不包含空格的字符', |
| | | trigger: 'blur', |
| | | type: "string", |
| | | message: "请输入不包含空格的字符", |
| | | trigger: "blur", |
| | | transform(value) { |
| | | if (value && value.indexOf(' ') === -1) { |
| | | if (value && value.indexOf(" ") === -1) { |
| | | return value; |
| | | } else { |
| | | return false; |
| | |
| | | }, |
| | | }, |
| | | { |
| | | trigger: 'blur', |
| | | trigger: "blur", |
| | | validator: (rule, value, callback) => { |
| | | var regex = new RegExp(''); |
| | | var regex = new RegExp(""); |
| | | var passwordreg = |
| | | /^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\W!@#$%^&*`~()\\-_+=,.?;<>]+$)(?![a-z0-9]+$)(?![a-z\W!@#$%^&*`~()\\-_+=,.?;<>]+$)(?![0-9\W!@#$%^&*`~()\\-_+=,.?;<>]+$)[a-zA-Z0-9\W!@#$%^&*`~()\\-_+=,.?;<>]{8,20}$/; |
| | | if (!passwordreg.test(value)) { |
| | | callback( |
| | | new Error('密码必须由数字、字母、特殊字符组合,请输入8-20位') |
| | | new Error("密码必须由数字、字母、特殊字符组合,请输入8-20位") |
| | | ); |
| | | } else { |
| | | callback(); |
| | |
| | | }, |
| | | ], |
| | | checkPass: [ |
| | | { required: true, validator: validatePass, trigger: 'blur' }, |
| | | { required: true, validator: validatePass, trigger: "blur" }, |
| | | ], |
| | | adminPwd: [{ validator: validName, trigger: 'blur' }], |
| | | adminPwd: [{ validator: validName, trigger: "blur" }], |
| | | newPwd: [ |
| | | { |
| | | message: '请输入密码', |
| | | message: "请输入密码", |
| | | transform: (value) => value, |
| | | trigger: 'blur', |
| | | trigger: "blur", |
| | | }, |
| | | { |
| | | type: 'string', |
| | | message: '请输入不包含空格的字符', |
| | | trigger: 'blur', |
| | | type: "string", |
| | | message: "请输入不包含空格的字符", |
| | | trigger: "blur", |
| | | transform(value) { |
| | | if (value && value.indexOf(' ') === -1) { |
| | | if (value && value.indexOf(" ") === -1) { |
| | | return value; |
| | | } else { |
| | | return false; |
| | |
| | | }, |
| | | }, |
| | | { |
| | | trigger: 'blur', |
| | | trigger: "blur", |
| | | validator: (rule, value, callback) => { |
| | | var regex = new RegExp(''); |
| | | var regex = new RegExp(""); |
| | | var passwordreg = |
| | | /^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\W!@#$%^&*`~()\\-_+=,.?;<>]+$)(?![a-z0-9]+$)(?![a-z\W!@#$%^&*`~()\\-_+=,.?;<>]+$)(?![0-9\W!@#$%^&*`~()\\-_+=,.?;<>]+$)[a-zA-Z0-9\W!@#$%^&*`~()\\-_+=,.?;<>]{8,20}$/; |
| | | if (!passwordreg.test(value)) { |
| | | callback( |
| | | new Error('密码必须由数字、字母、特殊字符组合,请输入8-20位') |
| | | new Error("密码必须由数字、字母、特殊字符组合,请输入8-20位") |
| | | ); |
| | | } else { |
| | | callback(); |
| | |
| | | }, |
| | | }, |
| | | ], |
| | | checkPwd: [{ validator: resetPass, trigger: 'blur' }], |
| | | checkPwd: [{ validator: resetPass, trigger: "blur" }], |
| | | }, |
| | | }; |
| | | }, |
| | | methods: { |
| | | ...mapActions(['login', 'getpublickey']), |
| | | getUserInfo(params) { |
| | | ...mapActions(["login", "getpublickey"]), |
| | | getUserInfo() { |
| | | queryDepTree() |
| | | .then((res) => { |
| | | if (res.code == 200) { |
| | |
| | | return cloneData.filter((father) => { |
| | | // 循环所有项 |
| | | let branchArr = cloneData.filter((child) => father.id == child.pid); // 对比ID,分别上下级菜单,并返回数据 |
| | | branchArr.length > 0 ? (father.children = branchArr) : ''; // 给父级添加一个children属性,并赋值 |
| | | branchArr.length > 0 ? (father.children = branchArr) : ""; // 给父级添加一个children属性,并赋值 |
| | | return father.pid == 0; // 返回一级菜单 |
| | | }); |
| | | }, |
| | |
| | | //搜索按钮 |
| | | queryInfo() { |
| | | let searchData = { |
| | | uname: this.queryForm.uname, |
| | | uname: this.queryForm.uname.trim(), |
| | | depid: this.queryForm.depid, |
| | | pageIndex: this.pageIndex, |
| | | pageSize: this.pageSize, |
| | |
| | | this.tableData = res.result; |
| | | this.count = res.count; |
| | | } else { |
| | | console.log('查询接口报错'); |
| | | console.log("查询接口报错"); |
| | | this.$notify.error({ |
| | | title: res.code, |
| | | message: res.result, |
| | |
| | | }, |
| | | //新增按钮 |
| | | showAddDialog() { |
| | | this.behavior = '新增用户'; |
| | | this.behavior = "新增用户"; |
| | | this.editForm = {}; |
| | | this.dialogFormVisible = true; |
| | | }, |
| | |
| | | setTimeout(() => { |
| | | this.fullscreenLoading = false; |
| | | if (res.code == 200) { |
| | | this.getUserInfo(1, 10); |
| | | this.getUserInfo(); |
| | | this.$message({ |
| | | message: '添加成功', |
| | | type: 'success', |
| | | message: "添加成功", |
| | | type: "success", |
| | | }); |
| | | this.editForm = {}; |
| | | this.dialogFormVisible = false; |
| | |
| | | }, 500); |
| | | }) |
| | | .catch((res) => { |
| | | alert('修改失败,请重试!'); |
| | | alert("修改失败,请重试!"); |
| | | this.fullscreenLoading = false; |
| | | }); |
| | | } else { |
| | | console.log('error submit!!'); |
| | | console.log("error submit!!"); |
| | | return false; |
| | | } |
| | | }); |
| | | }, |
| | | //多选 |
| | | handleSelectionChange(val) { |
| | | this.multipleSelection = val; |
| | | }, |
| | | //删除按钮 |
| | | deleteUserInfo() { |
| | | this.$confirm('此操作将删除已选中的用户, 是否继续?', '提示', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning', |
| | | this.$confirm("此操作将删除已选中的用户, 是否继续?", "提示", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | var std = []; |
| | |
| | | .then((res) => { |
| | | if (res.code == 200) { |
| | | this.$message({ |
| | | type: 'success', |
| | | message: '删除成功!', |
| | | type: "success", |
| | | message: "删除成功!", |
| | | }); |
| | | this.multipleSelection = []; |
| | | this.getUserInfo(1, 10); |
| | | this.getUserInfo(); |
| | | } else { |
| | | this.$message.error('删除失败'); |
| | | this.$message.error("删除失败"); |
| | | } |
| | | }) |
| | | .catch(() => { |
| | | this.$message.error('删除失败'); |
| | | this.$message.error("删除失败"); |
| | | this.multipleSelection = []; |
| | | }); |
| | | }) |
| | | .catch(() => { |
| | | this.$message('已取消删除'); |
| | | this.$message("已取消删除"); |
| | | }); |
| | | }, |
| | | //重置密码 |
| | |
| | | std.push(this.multipleSelection[i].id); |
| | | } |
| | | if (std.length == 0) { |
| | | alert('请先选择用户'); |
| | | alert("请先选择用户"); |
| | | return; |
| | | } |
| | | this.pwdForm.ids = std; |
| | |
| | | setTimeout(() => { |
| | | this.fullscreenLoading = false; |
| | | if (res.code == 200) { |
| | | this.getUserInfo(1, 10); |
| | | this.getUserInfo(); |
| | | this.$message({ |
| | | message: '修改成功', |
| | | type: 'success', |
| | | message: "修改成功", |
| | | type: "success", |
| | | }); |
| | | this.pwdForm = { |
| | | adminPwd: '', |
| | | newPwd: '', |
| | | checkPwd: '', |
| | | adminPwd: "", |
| | | newPwd: "", |
| | | checkPwd: "", |
| | | ids: [], |
| | | }; |
| | | this.multipleSelection = []; |
| | |
| | | }, 500); |
| | | }) |
| | | .catch((res) => { |
| | | alert('修改失败,请重试!'); |
| | | alert("修改失败,请重试!"); |
| | | this.fullscreenLoading = false; |
| | | }); |
| | | } else { |
| | |
| | | editInfo(row) { |
| | | delete row.updateTime; |
| | | delete row.updateUser; |
| | | row.pwd = ''; |
| | | row.pwd = ""; |
| | | this.initialForm = JSON.stringify(row); |
| | | this.behavior = '修改信息'; |
| | | this.behavior = "修改信息"; |
| | | this.editForm = JSON.parse(JSON.stringify(row)); |
| | | this.dialogFormVisible = true; |
| | | }, |
| | |
| | | }, |
| | | //关闭弹出框 |
| | | handleClose(done) { |
| | | this.$confirm('确认关闭?') |
| | | this.$confirm("确认关闭?") |
| | | .then((_) => { |
| | | this.editForm = { |
| | | uid: '', |
| | | uname: '', |
| | | oldPwd: '', |
| | | pwd: '', |
| | | checkPass: '', |
| | | uid: "", |
| | | uname: "", |
| | | oldPwd: "", |
| | | pwd: "", |
| | | checkPass: "", |
| | | sex: null, |
| | | natives: '', |
| | | natives: "", |
| | | depid: null, |
| | | idcard: '', |
| | | job: '', |
| | | edu: '', |
| | | addr: '', |
| | | email: '', |
| | | contact: '', |
| | | idcard: "", |
| | | job: "", |
| | | edu: "", |
| | | addr: "", |
| | | email: "", |
| | | contact: "", |
| | | status: null, |
| | | bak: '', |
| | | salt: '', |
| | | bak: "", |
| | | salt: "", |
| | | }; |
| | | this.pwdForm = { |
| | | adminPwd: '', |
| | | newPwd: '', |
| | | checkPwd: '', |
| | | adminPwd: "", |
| | | newPwd: "", |
| | | checkPwd: "", |
| | | ids: [], |
| | | }; |
| | | |
| | |
| | | setTimeout(() => { |
| | | this.fullscreenLoading = false; |
| | | if (res.code == 200) { |
| | | this.getUserInfo(1, 10); |
| | | this.getUserInfo(); |
| | | this.$message({ |
| | | message: '修改成功', |
| | | type: 'success', |
| | | message: "修改成功", |
| | | type: "success", |
| | | }); |
| | | this.editForm = {}; |
| | | this.dialogFormVisible = false; |
| | |
| | | }, 500); |
| | | }) |
| | | .catch((res) => { |
| | | alert('修改失败,请重试!'); |
| | | alert("修改失败,请重试!"); |
| | | this.fullscreenLoading = false; |
| | | }); |
| | | } else { |
| | | console.log('error submit!!'); |
| | | console.log("error submit!!"); |
| | | return false; |
| | | } |
| | | }); |
| | |
| | | this.editForm = JSON.parse(this.initialForm); |
| | | }); |
| | | }, |
| | | //多选 |
| | | handleSelectionChange(val) { |
| | | this.multipleSelection = val; |
| | | }, |
| | | |
| | | handleSizeChange(val) { |
| | | // console.log(`每页 ${val} 条`); |
| | | this.pageSize = val; |
| | |
| | | showPermsMenu(res) { |
| | | console.log(res.tag); |
| | | switch (res.tag) { |
| | | case '/delete': |
| | | case "/delete": |
| | | this.menuStatus.delete = true; |
| | | break; |
| | | case '/insert': |
| | | case "/insert": |
| | | this.menuStatus.insert = true; |
| | | break; |
| | | case '/update': |
| | | case "/update": |
| | | this.menuStatus.update = true; |
| | | break; |
| | | } |
| | | }, |
| | | }, |
| | | mounted() { |
| | | this.getUserInfo(1, 10); |
| | | this.getUserInfo(); |
| | | this.getpublickey(); |
| | | }, |
| | | created() { |