瀏覽代碼

Merge remote-tracking branch 'origin/master'

JX.Li 1 年之前
父節點
當前提交
cd4b4178fa

+ 8 - 1
src/api/system/post.js

@@ -8,6 +8,13 @@ export function listPost(query) {
     params: query
   })
 }
+export function listPostAll(query) {
+  return request({
+    url: '/system/post/listAll',
+    method: 'get',
+    params: query
+  })
+}
 
 // 查询岗位详细
 export function getPost(postId) {
@@ -50,4 +57,4 @@ export function exportPost(query) {
     method: 'get',
     params: query
   })
-}
+}

+ 33 - 0
src/components/DictPost/index.vue

@@ -0,0 +1,33 @@
+<template>
+  <div>
+    <template v-for="(item, index) in options">
+      <template v-if="value == item.postId">
+        <span
+          :key="item.postId"
+          :index="index"
+          >{{ item.postName }}</span
+        >
+      </template>
+    </template>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "DictPost",
+  props: {
+    options: {
+      type: Array,
+      default: null,
+    },
+    value: [Number, String, Array],
+  },
+  computed: {
+  },
+};
+</script>
+<style scoped>
+.el-tag + .el-tag {
+  margin-left: 10px;
+}
+</style>

+ 3 - 0
src/main.js

@@ -30,6 +30,8 @@ import FileUpload from "@/components/FileUpload"
 import ImageUpload from "@/components/ImageUpload"
 // 字典标签组件
 import DictTag from '@/components/DictTag'
+// 用户队伍权限标签组件
+import DictPost from '@/components/DictPost'
 // 头部标签组件
 import VueMeta from 'vue-meta'
 // 字典数据组件
@@ -49,6 +51,7 @@ Vue.prototype.handleTree = handleTree
 
 // 全局组件挂载
 Vue.component('DictTag', DictTag)
+Vue.component('DictPost', DictPost)
 Vue.component('Pagination', Pagination)
 Vue.component('RightToolbar', RightToolbar)
 Vue.component('Editor', Editor)

+ 3 - 1
src/store/modules/user.js

@@ -1,6 +1,6 @@
 import { login, logout, getInfo } from '@/api/login'
 import { getToken, setToken, removeToken } from '@/utils/auth'
-
+import Cookies from "js-cookie";
 const user = {
   state: {
     token: getToken(),
@@ -59,6 +59,8 @@ const user = {
       return new Promise((resolve, reject) => {
         getInfo().then(res => {
           const user = res.data.user
+          Cookies.set("postId",res.data.user.postId);
+          Cookies.set("postName",res.data.user.postName);
           const avatar = user.avatar == "" ? require("@/assets/images/profile.jpg") : user.avatar;
           if (res.data.roles && res.data.roles.length > 0) { // 验证返回的roles是否是一个非空数组
             commit('SET_ROLES', res.data.roles)

+ 6 - 1
src/views/gas/area/index.vue

@@ -98,7 +98,12 @@
 
     <el-table v-loading="loading" :data="areaList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center"/>
-      <el-table-column label="主键id" align="center" prop="id" v-if="true"/>
+      <el-table-column label="主键id" align="center" prop="id" v-if="false"/>
+      <el-table-column label="序列" width="70">
+        <template slot-scope="scope">
+          {{(queryParams.pageNum-1)*queryParams.pageSize+scope.$index+1}}
+        </template>
+      </el-table-column>
       <el-table-column label="小区名" align="center" prop="name"/>
       <el-table-column label="负责工长" align="center" prop="userName">
         <!--        <template slot-scope="scope">-->

+ 44 - 2
src/views/gas/user/index.vue

@@ -1,6 +1,16 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="队伍" prop="ranks">
+        <el-select v-model="queryParams.ranks" clearable placeholder="请选择" :disabled="postName.indexOf('xx') > -1">
+          <el-option
+            v-for="item in postOptions"
+            :key="item.postId"
+            :label="item.postName"
+            :value="item.postId"
+          ></el-option>
+        </el-select>
+      </el-form-item>
       <el-form-item label="姓名" prop="name">
         <el-input
           v-model="queryParams.name"
@@ -67,6 +77,11 @@
     <el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center"/>
       <el-table-column label="主键id" align="center" prop="id" v-if="false"/>
+      <el-table-column label="队伍" align="center" prop="ranks">
+        <template slot-scope="scope">
+          <dict-post :options="postOptions" :value="scope.row.ranks"/>
+        </template>
+      </el-table-column>
       <el-table-column label="姓名" align="center" prop="name"/>
       <el-table-column label="工号" align="center" prop="jobNum"/>
       <el-table-column label="手机号" align="center" prop="phone"/>
@@ -103,6 +118,16 @@
     <!-- 添加或修改用户对话框 -->
     <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="队伍" prop="ranks">
+          <el-select v-model="form.ranks" clearable placeholder="请选择">
+            <el-option
+              v-for="item in postOptions"
+              :key="item.postId"
+              :label="item.postName"
+              :value="item.postId"
+            ></el-option>
+          </el-select>
+        </el-form-item>
         <el-form-item label="姓名" prop="name">
           <el-input v-model="form.name" placeholder="请输入姓名"/>
         </el-form-item>
@@ -158,9 +183,11 @@
   </div>
 </template>
 
+
 <script>
 import {listUser, getForPhone, getForJobnum, getUser, delUser, addUser, updateUser} from "@/api/gas/user";
-
+import {listPostAll} from "@/api/system/post";
+import Cookies from "js-cookie";
 export default {
   name: "User",
   dicts: ['user_type', 'engine_type', 'administrative_office'],
@@ -234,7 +261,12 @@ export default {
         pageSize: 10,
         name: undefined,
         jobNum: undefined,
+        ranks: (Cookies.get("postName").indexOf('xx') > -1 ? parseInt(Cookies.get("postId")) : undefined),
       },
+      postName:Cookies.get("postName"),
+      // 岗位选项
+      postOptions: [],
+
       foremanList: [],
       // 表单参数
       form: {},
@@ -243,6 +275,9 @@ export default {
         name: [
           {required: true, message: "姓名不能为空", trigger: "blur"}
         ],
+        ranks: [
+          {required: true, message: "队伍不能为空", trigger: "blur"}
+        ],
         jobNum: [
           {required: true, message: "工号不能为空", trigger: "blur"},
           {required: true, trigger: 'blur', validator: validateAnother}
@@ -258,10 +293,16 @@ export default {
     };
   },
   created() {
+    this.getPostList();
     this.getList();
-
   },
   methods: {
+    //获取岗位列
+    getPostList(){
+      listPostAll({remark:'ranks'}).then(response => {
+        this.postOptions = response.data;
+      });
+    },
     /** 查询用户列表 */
     getList() {
       this.loading = true;
@@ -288,6 +329,7 @@ export default {
     reset() {
       this.form = {
         id: undefined,
+        ranks: (Cookies.get("postName").indexOf('xx') > -1 ? parseInt(Cookies.get("postId")) : undefined),
         name: undefined,
         jobNum: undefined,
         phone: undefined,

+ 4 - 3
src/views/system/user/index.vue

@@ -638,17 +638,18 @@ export default {
       this.$refs["form"].validate(valid => {
         if (valid) {
           if (this.form.userId != undefined) {
-            if (this.form.postIds !== ''&& this.form.postIds.length > 0)
+            if (this.form.postIds !== ''){
               this.form.postIds = [this.form.postIds]
-            else
+            } else{
               this.form.postIds = []
+            }
             updateUser(this.form).then(response => {
               this.$modal.msgSuccess("修改成功");
               this.open = false;
               this.getList();
             });
           } else {
-            if (this.form.postIds !== '' && this.form.postIds.length > 0)
+            if (this.form.postIds !== '')
               this.form.postIds = [this.form.postIds]
             else
               this.form.postIds = []