|
|
@@ -0,0 +1,499 @@
|
|
|
+<template>
|
|
|
+ <div>
|
|
|
+ <el-row class="queryFrom">
|
|
|
+ <el-form
|
|
|
+ ref="queryFormRef"
|
|
|
+
|
|
|
+ label-width="80px"
|
|
|
+ size="small"
|
|
|
+ >
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="4">
|
|
|
+ <el-form-item label="系统名称">
|
|
|
+
|
|
|
+ <el-input placeholder="请输入系统名称" clearable v-model="searchForm.systemName"></el-input>
|
|
|
+
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="4">
|
|
|
+ <el-form-item label="系统编码">
|
|
|
+
|
|
|
+ <el-input placeholder="请输入系统编码" clearable v-model="searchForm.systemCode"></el-input>
|
|
|
+
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="4">
|
|
|
+ <el-form-item label="姓名">
|
|
|
+
|
|
|
+ <el-input placeholder="请输入姓名" clearable v-model="searchForm.userName"></el-input>
|
|
|
+
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="4">
|
|
|
+ <el-form-item label="工号">
|
|
|
+
|
|
|
+ <el-input placeholder="请输入工号" clearable v-model="searchForm.userId"></el-input>
|
|
|
+
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <!-- <el-col :span="4">
|
|
|
+ <el-form-item label="系统状态">
|
|
|
+ <el-select v-model="searchForm.systemCode" placeholder="请选择系统状态">
|
|
|
+ <el-option
|
|
|
+
|
|
|
+ :label="'开启'"
|
|
|
+ :value="1">
|
|
|
+ </el-option>
|
|
|
+ <el-option
|
|
|
+
|
|
|
+ :label="'关闭'"
|
|
|
+ :value="0">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+
|
|
|
+
|
|
|
+ </el-form-item>
|
|
|
+ </el-col> -->
|
|
|
+ <el-col :span="4">
|
|
|
+ <el-form-item label="">
|
|
|
+ <el-button type="primary" @click="getList">查询</el-button >
|
|
|
+ <el-button type="primary" @click="addSys">添加</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span="4">
|
|
|
+ <el-form-item label="">
|
|
|
+
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-form>
|
|
|
+ </el-row>
|
|
|
+ <templateTable :searchData.sync="formData" :tableConfig="tableConfig" :data="tabelList" @getList="getList"
|
|
|
+ :pagination="pageData">
|
|
|
+ </templateTable>
|
|
|
+ <el-dialog
|
|
|
+ :title="dialogTitle"
|
|
|
+ :visible.sync="dialogVisible"
|
|
|
+ width="70%"
|
|
|
+ :before-close="handleClose">
|
|
|
+ <el-form :model="formData" :rules="formDataRules" ref="formData" label-width="100px" class="demo-formData">
|
|
|
+ <el-form-item label="系统名称" prop="systemName">
|
|
|
+ <el-select clearable v-model="formData.systemName">
|
|
|
+
|
|
|
+ <el-option v-for="item in optionList" :key="item.id" :value="item.id" :label="item.systemName">
|
|
|
+
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="是否全部用户" prop="">
|
|
|
+ <el-switch
|
|
|
+ v-model="formData.flag"
|
|
|
+
|
|
|
+ :active-value="1"
|
|
|
+ :inactive-value="0"></el-switch>
|
|
|
+
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="7">
|
|
|
+ <el-form-item label="工号">
|
|
|
+ <el-input
|
|
|
+ clearable
|
|
|
+ :size="overSize"
|
|
|
+ placeholder="工号"
|
|
|
+ v-model="personnePageRequest.userId"
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="7">
|
|
|
+ <el-form-item label="姓名">
|
|
|
+ <el-input
|
|
|
+ clearable
|
|
|
+ :size="overSize"
|
|
|
+ placeholder="姓名"
|
|
|
+ v-model="personnePageRequest.name"
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="7">
|
|
|
+ <el-form-item label="机构">
|
|
|
+ <el-cascader
|
|
|
+ v-model="personnePageRequest.deptId"
|
|
|
+ :size="overSize"
|
|
|
+ :show-all-levels="false"
|
|
|
+ :options="deptList"
|
|
|
+ :props="optionProps"
|
|
|
+ clearable
|
|
|
+ filterable
|
|
|
+ ></el-cascader>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="2">
|
|
|
+ <el-form-item label label-width="10px">
|
|
|
+ <el-button
|
|
|
+ :size="overSize"
|
|
|
+ type="primary"
|
|
|
+ @click="personnelFindQuery()"
|
|
|
+ >查询</el-button
|
|
|
+ >
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-form-item label="用户信息" prop="">
|
|
|
+ <el-table
|
|
|
+ :data="personnePageReData"
|
|
|
+ border
|
|
|
+ ref="personneTable"
|
|
|
+ width="100%"
|
|
|
+ size="small"
|
|
|
+ height="350"
|
|
|
+ align="center"
|
|
|
+ :header-cell-style="{
|
|
|
+ background: '#F2F7FC',
|
|
|
+ fontWeight: '900',
|
|
|
+ color: '#606266',
|
|
|
+ }"
|
|
|
+ @selection-change="personneSelectionChange"
|
|
|
+ :row-class-name="tableRowClassName"
|
|
|
+ >
|
|
|
+ <el-table-column type="selection" width="55"> </el-table-column>
|
|
|
+ <el-table-column prop="userId" label="工号"> </el-table-column>
|
|
|
+ <el-table-column prop="name" label="姓名"> </el-table-column>
|
|
|
+ <el-table-column prop="deptName" label="机构名称">
|
|
|
+ </el-table-column>
|
|
|
+
|
|
|
+
|
|
|
+ </el-table>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-pagination
|
|
|
+ @size-change="handleSizeChange"
|
|
|
+ @current-change="refreshPageRequest"
|
|
|
+ :current-page="personnePageRequest.pageNum"
|
|
|
+ :page-sizes="[10, 20, 50, 100, 200, 300, 400, 500]"
|
|
|
+ :page-size="personnePageRequest.pageSize"
|
|
|
+ layout="total, sizes, prev, pager, next, jumper"
|
|
|
+ :total="personnePageRequest.total"
|
|
|
+ >
|
|
|
+ </el-pagination>
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ </el-form>
|
|
|
+ <span slot="footer" class="dialog-footer">
|
|
|
+ <el-button @click="cancel('formData')">取 消</el-button>
|
|
|
+ <el-button type="primary" @click="confirm('formData')">确 定</el-button>
|
|
|
+ </span>
|
|
|
+ </el-dialog>
|
|
|
+
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import templateTable from "@/components/TemplateTable/index.vue";
|
|
|
+
|
|
|
+export default {
|
|
|
+ components: {
|
|
|
+ // KtButton,
|
|
|
+ // tree,
|
|
|
+ templateTable,
|
|
|
+ // peopleImage,
|
|
|
+ },
|
|
|
+// mixins: [mixin],
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+
|
|
|
+ dialogVisible:false,
|
|
|
+ dialogTitle: "",
|
|
|
+ pageData: {
|
|
|
+ pageNum: 1,
|
|
|
+ pageSize: 10,
|
|
|
+ totalSize:0
|
|
|
+ },
|
|
|
+ inactiveValue:0,
|
|
|
+ activeValue:1,
|
|
|
+ formData: {
|
|
|
+ systemName:'',
|
|
|
+ userName:'',
|
|
|
+ userId:'',
|
|
|
+ systemCode:'',
|
|
|
+ flag:0
|
|
|
+ },
|
|
|
+ searchForm: {
|
|
|
+ systemName:'',
|
|
|
+ userName:'',
|
|
|
+ userId:'',
|
|
|
+ systemCode:'',
|
|
|
+ },
|
|
|
+ formDataRules: {
|
|
|
+ systemName: [
|
|
|
+ { required: true, message: '请输入系统名称', trigger: 'blur' },
|
|
|
+ ],
|
|
|
+ systemCode: [
|
|
|
+ { required: true, message: '请输入系统编码', trigger: 'blur' },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+
|
|
|
+ tableConfig: {
|
|
|
+ columns: [
|
|
|
+ // 数据列
|
|
|
+ { prop: "systemName", label: "系统名称", type: "text" },
|
|
|
+ { prop: "userName", label: "姓名", type: "text" },
|
|
|
+ { prop: "userId", label: "员工工号", type: "text" },
|
|
|
+ { prop: "systemCode", label: "系统编码", type: "text",
|
|
|
+ // type: "statMap",
|
|
|
+ // options: [
|
|
|
+ // {
|
|
|
+ // label: "否",
|
|
|
+ // value: "0",
|
|
|
+ // },
|
|
|
+ // {
|
|
|
+ // label: "是",
|
|
|
+ // value: "1",
|
|
|
+ // },
|
|
|
+ // ],
|
|
|
+ },
|
|
|
+ { prop: "createTime", label: "创建时间", type: "text" },
|
|
|
+
|
|
|
+ ],
|
|
|
+ loading: true,
|
|
|
+ isPaginationShow: true,
|
|
|
+ isShowIndex: true,
|
|
|
+ operationWidth: "100",
|
|
|
+ optBtns: [
|
|
|
+
|
|
|
+ {
|
|
|
+ type: "danger",
|
|
|
+ label: "删除",
|
|
|
+ // type: "button",
|
|
|
+ // perm: "agreement:taxSource:config",
|
|
|
+ click: (row, index) => {
|
|
|
+ return this.deleteSys(row);
|
|
|
+ },
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ tabelList:[],
|
|
|
+ originalForm: null,
|
|
|
+ operationId:undefined,
|
|
|
+ optionList:[],
|
|
|
+ personnePageReData: [],
|
|
|
+
|
|
|
+ personnePageRequest: {
|
|
|
+ //查询的默认条件
|
|
|
+ pageNum: 1,
|
|
|
+ pageSize: 10,
|
|
|
+ total: 0,
|
|
|
+ deptId: [],
|
|
|
+ name:"",
|
|
|
+ userId:''
|
|
|
+ },
|
|
|
+ deptList: [],
|
|
|
+ overSize: "small",
|
|
|
+ optionProps: {
|
|
|
+ checkStrictly: true,
|
|
|
+ value: "id",
|
|
|
+ label: "name",
|
|
|
+ children: "children",
|
|
|
+ },
|
|
|
+ multipleSelection: []
|
|
|
+ };
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+ this.getList()
|
|
|
+ this.getSysDictList()
|
|
|
+ this.getAllCompany()
|
|
|
+ // this.personnelFindPage()
|
|
|
+
|
|
|
+ this.originalForm={...this.formData}
|
|
|
+ },
|
|
|
+ mounted() {
|
|
|
+
|
|
|
+ },
|
|
|
+ watch: {
|
|
|
+
|
|
|
+ },
|
|
|
+ methods:{
|
|
|
+ // 获取所有机构列表
|
|
|
+ getAllCompany() {
|
|
|
+ this.$api.task.findAllTree().then((res) => {
|
|
|
+ this.deptList = res.data;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //获取人员信息列表
|
|
|
+ personnelFindPage() {
|
|
|
+ let deptId = "";
|
|
|
+ if (
|
|
|
+ this.personnePageRequest.deptId &&
|
|
|
+ this.personnePageRequest.deptId.length > 0
|
|
|
+ ) {
|
|
|
+ deptId =
|
|
|
+ this.personnePageRequest.deptId[
|
|
|
+ this.personnePageRequest.deptId.length - 1
|
|
|
+ ];
|
|
|
+ }
|
|
|
+ this.$api.user
|
|
|
+ .findAllUserList({ ...this.personnePageRequest, deptId })
|
|
|
+ .then((res) => {
|
|
|
+ if (res.code == 200) {
|
|
|
+ this.personnePageReData = res.data.content;
|
|
|
+ this.personnePageRequest.pageNum = res.data.pageNum;
|
|
|
+ this.personnePageRequest.pageSize = res.data.pageSize;
|
|
|
+ this.personnePageRequest.total = res.data.totalSize;
|
|
|
+ } else {
|
|
|
+ this.$message.error(res.msg);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ personnelFindQuery() {
|
|
|
+ (this.personnePageRequest.pageNum = "1"),
|
|
|
+ (this.personnePageRequest.pageSize = 10);
|
|
|
+ this.personnelFindPage();
|
|
|
+ },
|
|
|
+ personneSelectionChange(selection) {
|
|
|
+ // console.log(selection)
|
|
|
+ this.multipleSelection=selection
|
|
|
+ // if (selection.length > 1) {
|
|
|
+ // this.$refs.personneTable.clearSelection(); // 清空所有选择
|
|
|
+ // this.$refs.personneTable.toggleRowSelection(selection.pop()); // 设置选择项
|
|
|
+ // }
|
|
|
+ },
|
|
|
+ tableRowClassName(row) {
|
|
|
+ if (row.row.flag) {
|
|
|
+ return "flagRow";
|
|
|
+ } else {
|
|
|
+ return "";
|
|
|
+ }
|
|
|
+ },
|
|
|
+ handleSizeChange(pageSize) {
|
|
|
+ this.personnePageRequest.pageSize = pageSize;
|
|
|
+ this.personnelFindPage();
|
|
|
+ },
|
|
|
+ refreshPageRequest: function (pageNum) {
|
|
|
+ this.personnePageRequest.pageNum = pageNum;
|
|
|
+ this.personnelFindPage();
|
|
|
+ },
|
|
|
+ addSys(){
|
|
|
+ this.dialogVisible = true
|
|
|
+ this.dialogTitle = "系统分配人员信息"
|
|
|
+ this.formData={...this.originalForm}
|
|
|
+ this.personnePageRequest={
|
|
|
+ //查询的默认条件
|
|
|
+ pageNum: 1,
|
|
|
+ pageSize: 10,
|
|
|
+ total: 0,
|
|
|
+ deptId: [],
|
|
|
+ name:"",
|
|
|
+ userId:''
|
|
|
+ }
|
|
|
+ this.personnelFindPage()
|
|
|
+
|
|
|
+ },
|
|
|
+
|
|
|
+ getSysDictList(){
|
|
|
+ this.$api.sys.sysDictList().then((res) => {
|
|
|
+
|
|
|
+ if(res.code===200){
|
|
|
+ this.optionList = res.data
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ getList(){
|
|
|
+ this.tableConfig.loading = true
|
|
|
+ this.$api.sys.getSysAllocationList({...this.searchForm,...this.pageData,}).then((res) => {
|
|
|
+
|
|
|
+ if(res.code == 200){
|
|
|
+ this.tableConfig.loading = false
|
|
|
+
|
|
|
+ this.tabelList = res.data.content
|
|
|
+ this.pageData.pageNum = res.data.pageNum;
|
|
|
+ this.pageData.pageSize = res.data.pageSize;
|
|
|
+ this.pageData.totalSize = res.data.totalSize;
|
|
|
+ }else{
|
|
|
+ this.$message.error(res.msg)
|
|
|
+ }
|
|
|
+ }).catch(err=>{
|
|
|
+ this.$message.error(err.message)
|
|
|
+ this.tableConfig.loading = false
|
|
|
+ })
|
|
|
+ },
|
|
|
+ handleClose(done) {
|
|
|
+ done();
|
|
|
+ },
|
|
|
+ confirm(formName){
|
|
|
+ // this.dialogVisible = false
|
|
|
+ this.$refs[formName].validate((valid) => {
|
|
|
+ if (valid) {
|
|
|
+ let arr=this.multipleSelection.map((v,i)=>{return v.userId})
|
|
|
+
|
|
|
+ // console.log(this.formData,arr)
|
|
|
+ if(this.formData.flag!=1){
|
|
|
+ if(this.multipleSelection.length==0){
|
|
|
+ this.$message.error("请选择用户")
|
|
|
+ }else{
|
|
|
+ this.$api.sys.bindSysUser({sysId:this.formData.systemName,flag:this.formData.flag,userIds:arr}).then((res) => {
|
|
|
+ // console.log(res,666)
|
|
|
+ if(res.code == 200){
|
|
|
+ this.$message.success(res.msg)
|
|
|
+ this.dialogVisible = false
|
|
|
+ this.getList()
|
|
|
+ }else{
|
|
|
+ this.$message.error(res.msg)
|
|
|
+ }
|
|
|
+
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ this.$api.sys.bindSysUser({sysId:this.formData.systemName,flag:this.formData.flag}).then((res) => {
|
|
|
+ // console.log(res,666)
|
|
|
+ if(res.code == 200){
|
|
|
+ this.$message.success(res.msg)
|
|
|
+ this.dialogVisible = false
|
|
|
+ this.getList()
|
|
|
+ }else{
|
|
|
+ this.$message.error(res.msg)
|
|
|
+ }
|
|
|
+
|
|
|
+ })
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ // console.log('error submit!!');
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ cancel(formName){
|
|
|
+ this.$refs[formName].resetFields();
|
|
|
+ this.dialogVisible = false
|
|
|
+ },
|
|
|
+ deleteSys(row){
|
|
|
+
|
|
|
+ this.$confirm('确认删除该系统吗?', '提示', {
|
|
|
+ confirmButtonText: '提交',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ type: 'warning'
|
|
|
+ }).then(() => {
|
|
|
+ this.$api.sys.sysUserLinkSysDelete({ids:[row.id]}).then((res) => {
|
|
|
+ if(res.code == 200){
|
|
|
+ this.$message.success(res.msg)
|
|
|
+ this.getList()
|
|
|
+ }else{
|
|
|
+ this.$message.error(res.msg)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }).catch(() => {
|
|
|
+
|
|
|
+ });
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+}
|
|
|
+</script>
|
|
|
+
|
|
|
+<style>
|
|
|
+
|
|
|
+</style>
|