|
@@ -1,113 +1,118 @@
|
|
|
<template>
|
|
|
- <div class="app-container">
|
|
|
- <div class="item">
|
|
|
- <div class="left_tag">
|
|
|
- <div class="role border_role" :class="{ activeClass: tabIndex == 1 }" @click="toTab1">级别</div>
|
|
|
- <div class="role" :class="{ activeClass: tabIndex == 2 }">职务</div>
|
|
|
- </div>
|
|
|
- <div class="right_add">
|
|
|
- <el-button type="primary" icon="el-icon-plus" class="add_btn" v-show="tabIndex == 1" @click="addLevel" v-hasPermi="['system:levelPosition:addLevel']">添加</el-button>
|
|
|
- <el-button type="primary" icon="el-icon-plus" class="add_btn" v-show="tabIndex == 2" @click="addPost" v-hasPermi="['system:levelPosition:addPost']">添加</el-button>
|
|
|
+ <div class="page-container">
|
|
|
+ <div class="content-container">
|
|
|
+ <div class="main">
|
|
|
+ <div class="table-nav">
|
|
|
+ <div class="tags">
|
|
|
+ <div class="tag" :style="isActive(1)" @click="toTab1">级别</div>
|
|
|
+ <div class="tag" :style="isActive(2)" @click="toTab2">职务</div>
|
|
|
+ </div>
|
|
|
+ <div class="actions">
|
|
|
+ <el-button type="primary" plain size="small " v-show="tabIndex == 1" @click="addLevel" v-hasPermi="['system:levelPosition:addLevel']">添加</el-button>
|
|
|
+ <el-button type="primary" plain size="small " v-show="tabIndex == 2" @click="addPost" v-hasPermi="['system:levelPosition:addPost']">添加</el-button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <!-- 级别表格 -->
|
|
|
+ <el-table
|
|
|
+ v-loading="loading"
|
|
|
+ :data="levelList"
|
|
|
+ border
|
|
|
+ :header-cell-style="{ 'text-align': 'center' }"
|
|
|
+ :cell-style="{ textAlign: 'center', cursor: 'pointer' }"
|
|
|
+ highlight-current-row
|
|
|
+ @current-change="rowClick"
|
|
|
+ v-show="tabIndex == 1"
|
|
|
+ >
|
|
|
+ <el-table-column label="级别" prop="levelName" width="200">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <a href="javascript:void(0);" class="linked" @click="toTab2">{{ scope.row.levelName }}</a>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="黑星" prop="blackStar" width="100" />
|
|
|
+ <el-table-column label="红星" prop="redStar" width="100" />
|
|
|
+ <el-table-column label="描述" prop="remarks" width="500" />
|
|
|
+ <el-table-column label="操作" class-name="small-padding fixed-width">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-button size="mini" type="text" icon="el-icon-edit" @click="updLevel(scope.row)" v-hasPermi="['system:levelPosition:updLevel']">编辑</el-button>
|
|
|
+ <el-button size="mini" type="text" icon="el-icon-delete" @click="delLevel(scope.row)" v-hasPermi="['system:levelPosition:delLevel']">删除</el-button>
|
|
|
+ <el-button size="mini" type="text" icon="el-icon-top" @click="levelUpOrder(scope.row)" v-hasPermi="['system:levelPosition:upLevel']">上升</el-button>
|
|
|
+ <el-button size="mini" type="text" icon="el-icon-bottom" @click="levelDownOrder(scope.row)" v-hasPermi="['system:levelPosition:downLevel']">下降</el-button>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <!-- 职务表格 -->
|
|
|
+ <el-table v-loading="loading" :data="postList" border :header-cell-style="{ 'text-align': 'center' }" :cell-style="{ 'text-align': 'center' }" v-show="tabIndex == 2">
|
|
|
+ <el-table-column label="职务" prop="jobName" width="150" />
|
|
|
+ <el-table-column label="级别" width="150">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ {{ getLevelName(scope.row.levelId) }}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="部门" width="150">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ {{ getDeptName(scope.row.deptId) }}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="描述" prop="remarks" width="400" />
|
|
|
+ <el-table-column label="操作" class-name="small-padding fixed-width">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-button size="mini" type="text" icon="el-icon-edit" @click="updPost(scope.row)" v-hasPermi="['system:levelPosition:updPost']">编辑</el-button>
|
|
|
+ <el-button size="mini" type="text" icon="el-icon-delete" @click="delPost(scope.row)" v-hasPermi="['system:levelPosition:delPost']">删除</el-button>
|
|
|
+ <el-button size="mini" type="text" icon="el-icon-top" @click="postUpOrder(scope.row)" v-hasPermi="['system:levelPosition:upPost']">上升</el-button>
|
|
|
+ <el-button size="mini" type="text" icon="el-icon-bottom" @click="postDownOrder(scope.row)" v-hasPermi="['system:levelPosition:downPost']">下降</el-button>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <!-- 添加修改级别弹窗 -->
|
|
|
+ <el-dialog title="编辑级别" :visible.sync="levelShow" width="30%">
|
|
|
+ <el-form ref="levelForm" :model="levelForm" :rules="levelRules" label-width="100px">
|
|
|
+ <el-form-item label="级别" prop="levelName">
|
|
|
+ <div style="width: 200px"><el-input v-model="levelForm.levelName" placeholder="请输入级别" /></div>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="黑星" prop="blackStar">
|
|
|
+ <el-input-number v-model="levelForm.blackStar" step-strictly :min="0"></el-input-number>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="红星" prop="redStar">
|
|
|
+ <el-input-number v-model="levelForm.redStar" step-strictly :min="0"></el-input-number>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="描述" prop="remarks">
|
|
|
+ <div style="width: 300px"><el-input v-model="levelForm.remarks" placeholder="请输入描述" /></div>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="primary" @click="levelSub">确 定</el-button>
|
|
|
+ <el-button @click="levelCancel">取 消</el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+ <!-- 添加修改职务弹窗 -->
|
|
|
+ <el-dialog title="编辑职务" :visible.sync="postShow" width="30%">
|
|
|
+ <el-form ref="postForm" :model="postForm" :rules="postRules" label-width="100px">
|
|
|
+ <el-form-item label="职务" prop="jobName">
|
|
|
+ <div style="width: 200px"><el-input v-model="postForm.jobName" placeholder="请输入职务" /></div>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="部门" prop="deptId">
|
|
|
+ <el-cascader
|
|
|
+ v-model="deptIds"
|
|
|
+ :options="deptTree"
|
|
|
+ :props="{ expandTrigger: 'hover', value: 'deptId', label: 'deptName', checkStrictly: true }"
|
|
|
+ @change="deptChange"
|
|
|
+ :show-all-levels="false"
|
|
|
+ ></el-cascader>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="级别" prop="levelName">
|
|
|
+ <div style="width: 200px"><el-input disabled v-model="postForm.levelName" placeholder="请输入职务" /></div>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="描述" prop="remarks">
|
|
|
+ <div style="width: 300px"><el-input v-model="postForm.remarks" placeholder="请输入描述" /></div>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="primary" @click="postSub">确 定</el-button>
|
|
|
+ <el-button @click="postCancel">取 消</el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <!-- 级别表格 -->
|
|
|
- <el-table
|
|
|
- v-loading="loading"
|
|
|
- :data="levelList"
|
|
|
- border
|
|
|
- :header-cell-style="{ 'text-align': 'center' }"
|
|
|
- :cell-style="{ textAlign: 'center', cursor: 'pointer' }"
|
|
|
- @row-dblclick="toTab2"
|
|
|
- v-show="tabIndex == 1"
|
|
|
- >
|
|
|
- <el-table-column label="级别" prop="levelName" width="200">
|
|
|
- <template slot-scope="scope">
|
|
|
- <a href="javascript:void(0);">{{ scope.row.levelName }}</a>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="黑星" prop="blackStar" width="100" />
|
|
|
- <el-table-column label="红星" prop="redStar" width="100" />
|
|
|
- <el-table-column label="描述" prop="remarks" width="500" />
|
|
|
- <el-table-column label="操作" class-name="small-padding fixed-width">
|
|
|
- <template slot-scope="scope">
|
|
|
- <el-button size="mini" type="text" icon="el-icon-edit" @click="updLevel(scope.row)" v-hasPermi="['system:levelPosition:updLevel']">编辑</el-button>
|
|
|
- <el-button size="mini" type="text" icon="el-icon-delete" @click="delLevel(scope.row)" v-hasPermi="['system:levelPosition:delLevel']">删除</el-button>
|
|
|
- <el-button size="mini" type="text" icon="el-icon-top" @click="levelUpOrder(scope.row)" v-hasPermi="['system:levelPosition:upLevel']">上升</el-button>
|
|
|
- <el-button size="mini" type="text" icon="el-icon-bottom" @click="levelDownOrder(scope.row)" v-hasPermi="['system:levelPosition:downLevel']">下降</el-button>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
- <!-- 职务表格 -->
|
|
|
- <el-table v-loading="loading" :data="postList" border :header-cell-style="{ 'text-align': 'center' }" :cell-style="{ 'text-align': 'center' }" v-show="tabIndex == 2">
|
|
|
- <el-table-column label="职务" prop="jobName" width="150" />
|
|
|
- <el-table-column label="级别" width="150">
|
|
|
- <template slot-scope="scope">
|
|
|
- {{ getLevelName(scope.row.levelId) }}
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="部门" width="150">
|
|
|
- <template slot-scope="scope">
|
|
|
- {{ getDeptName(scope.row.deptId) }}
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="描述" prop="remarks" width="400" />
|
|
|
- <el-table-column label="操作" class-name="small-padding fixed-width">
|
|
|
- <template slot-scope="scope">
|
|
|
- <el-button size="mini" type="text" icon="el-icon-edit" @click="updPost(scope.row)" v-hasPermi="['system:levelPosition:updPost']">编辑</el-button>
|
|
|
- <el-button size="mini" type="text" icon="el-icon-delete" @click="delPost(scope.row)" v-hasPermi="['system:levelPosition:delPost']">删除</el-button>
|
|
|
- <el-button size="mini" type="text" icon="el-icon-top" @click="postUpOrder(scope.row)" v-hasPermi="['system:levelPosition:upPost']">上升</el-button>
|
|
|
- <el-button size="mini" type="text" icon="el-icon-bottom" @click="postDownOrder(scope.row)" v-hasPermi="['system:levelPosition:downPost']">下降</el-button>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
- <!-- 添加修改级别弹窗 -->
|
|
|
- <el-dialog title="编辑级别" :visible.sync="levelShow" width="30%">
|
|
|
- <el-form ref="levelForm" :model="levelForm" :rules="levelRules" label-width="100px">
|
|
|
- <el-form-item label="级别" prop="levelName">
|
|
|
- <div style="width: 200px"><el-input v-model="levelForm.levelName" placeholder="请输入级别" /></div>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="黑星" prop="blackStar">
|
|
|
- <el-input-number v-model="levelForm.blackStar" step-strictly :min="0"></el-input-number>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="红星" prop="redStar">
|
|
|
- <el-input-number v-model="levelForm.redStar" step-strictly :min="0"></el-input-number>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="描述" prop="remarks">
|
|
|
- <div style="width: 300px"><el-input v-model="levelForm.remarks" placeholder="请输入描述" /></div>
|
|
|
- </el-form-item>
|
|
|
- </el-form>
|
|
|
- <div slot="footer" class="dialog-footer">
|
|
|
- <el-button type="primary" @click="levelSub">确 定</el-button>
|
|
|
- <el-button @click="levelCancel">取 消</el-button>
|
|
|
- </div>
|
|
|
- </el-dialog>
|
|
|
- <!-- 添加修改职务弹窗 -->
|
|
|
- <el-dialog title="编辑职务" :visible.sync="postShow" width="30%">
|
|
|
- <el-form ref="postForm" :model="postForm" :rules="postRules" label-width="100px">
|
|
|
- <el-form-item label="职务" prop="jobName">
|
|
|
- <div style="width: 200px"><el-input v-model="postForm.jobName" placeholder="请输入职务" /></div>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="部门" prop="deptId">
|
|
|
- <el-cascader
|
|
|
- v-model="deptIds"
|
|
|
- :options="deptTree"
|
|
|
- :props="{ expandTrigger: 'hover', value: 'deptId', label: 'deptName', checkStrictly: true }"
|
|
|
- @change="deptChange"
|
|
|
- :show-all-levels="false"
|
|
|
- ></el-cascader>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="级别" prop="levelName">
|
|
|
- <div style="width: 200px"><el-input disabled v-model="postForm.levelName" placeholder="请输入职务" /></div>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="描述" prop="remarks">
|
|
|
- <div style="width: 300px"><el-input v-model="postForm.remarks" placeholder="请输入描述" /></div>
|
|
|
- </el-form-item>
|
|
|
- </el-form>
|
|
|
- <div slot="footer" class="dialog-footer">
|
|
|
- <el-button type="primary" @click="postSub">确 定</el-button>
|
|
|
- <el-button @click="postCancel">取 消</el-button>
|
|
|
- </div>
|
|
|
- </el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
@@ -186,7 +191,18 @@
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
+ computed: {
|
|
|
+ theme() {
|
|
|
+ return this.$store.state.settings.theme
|
|
|
+ }
|
|
|
+ },
|
|
|
methods: {
|
|
|
+ isActive(index) {
|
|
|
+ if (this.tabIndex != index) return {}
|
|
|
+ return {
|
|
|
+ color: this.theme
|
|
|
+ }
|
|
|
+ },
|
|
|
//获取级别数据
|
|
|
getLevelList() {
|
|
|
if (!checkPermi(['system:levelPosition:listLevel'])) {
|
|
@@ -248,7 +264,8 @@
|
|
|
},
|
|
|
//删除级别
|
|
|
delLevel(row) {
|
|
|
- this.$del()
|
|
|
+ this.$modal
|
|
|
+ .confirm()
|
|
|
.then(() => {
|
|
|
levelDel(row.levelId).then((res) => {
|
|
|
if (res.code == 200) {
|
|
@@ -361,14 +378,17 @@
|
|
|
toTab1() {
|
|
|
this.tabIndex = 1
|
|
|
},
|
|
|
- //跳转到职务
|
|
|
- toTab2(data) {
|
|
|
- this.postForm.levelId = data.levelId
|
|
|
- this.postForm.levelName = data.levelName
|
|
|
- this.tabIndex = 2
|
|
|
+ //级别行单击
|
|
|
+ rowClick(e) {
|
|
|
+ this.postForm.levelId = e.levelId
|
|
|
+ this.postForm.levelName = e.levelName
|
|
|
this.postList = []
|
|
|
this.getPostList()
|
|
|
},
|
|
|
+ //跳转到职务
|
|
|
+ toTab2() {
|
|
|
+ this.tabIndex = 2
|
|
|
+ },
|
|
|
//获取职务数据
|
|
|
getPostList() {
|
|
|
if (!checkPermi(['system:levelPosition:listPost'])) {
|
|
@@ -406,7 +426,8 @@
|
|
|
},
|
|
|
//删除职务
|
|
|
delPost(row) {
|
|
|
- this.$del()
|
|
|
+ this.$modal
|
|
|
+ .confirm()
|
|
|
.then(() => {
|
|
|
postDel(row.jobId).then((res) => {
|
|
|
if (res.code == 200) {
|
|
@@ -529,44 +550,4 @@
|
|
|
}
|
|
|
</script>
|
|
|
|
|
|
-<style scoped lang="scss">
|
|
|
- .app-container {
|
|
|
- width: 1154px;
|
|
|
- user-select: none;
|
|
|
- }
|
|
|
- .role {
|
|
|
- width: 90px;
|
|
|
- height: 40px;
|
|
|
- text-align: center;
|
|
|
- line-height: 40px;
|
|
|
- font-size: 14px;
|
|
|
- border: 1px solid #dfe6ec;
|
|
|
- border-bottom: none;
|
|
|
- }
|
|
|
- .add_btn {
|
|
|
- width: 80px;
|
|
|
- height: 35px;
|
|
|
- text-align: center;
|
|
|
- }
|
|
|
- .item {
|
|
|
- width: 100%;
|
|
|
- display: flex;
|
|
|
- justify-content: space-between;
|
|
|
- }
|
|
|
- .dataTable {
|
|
|
- width: 656px;
|
|
|
- }
|
|
|
- .left_tag {
|
|
|
- display: flex;
|
|
|
- }
|
|
|
- .border_role {
|
|
|
- border-right: none;
|
|
|
- cursor: pointer;
|
|
|
- }
|
|
|
- .activeClass {
|
|
|
- color: #409eff;
|
|
|
- }
|
|
|
- .tableRowClassName {
|
|
|
- background: olive;
|
|
|
- }
|
|
|
-</style>
|
|
|
+<style scoped lang="scss"></style>
|