Tang il y a 3 ans
Parent
commit
d05b5865a6
41 fichiers modifiés avec 1130 ajouts et 821 suppressions
  1. BIN
      dist.zip
  2. 8 0
      src/api/ossUpload.js
  3. 1 1
      src/components/Editor/index.vue
  4. 85 24
      src/components/searchBox.vue
  5. 13 0
      src/components/tableList.vue
  6. 24 14
      src/layout/permission.js
  7. 2 6
      src/layout/structure/content/navBar.vue
  8. 42 13
      src/store/index.js
  9. 1 1
      src/utils/cookie.js
  10. 52 39
      src/utils/request.js
  11. 8 9
      src/view/courseQuestionBank/courseManagement/index.vue
  12. 8 9
      src/view/courseQuestionBank/examQuestionConfiguration/index.vue
  13. 8 10
      src/view/courseQuestionBank/famousTeacherManagement/index.vue
  14. 8 9
      src/view/courseQuestionBank/keyTestSites/index.vue
  15. 11 4
      src/view/courseQuestionBank/professionalManagement/index.vue
  16. 8 9
      src/view/courseQuestionBank/questionBank/index.vue
  17. 8 9
      src/view/courseQuestionBank/questionBankManagement copy/index.vue
  18. 8 9
      src/view/courseQuestionBank/questionBankManagement/index.vue
  19. 13 8
      src/view/eventManagement/activeConfiguration/index.vue
  20. 10 10
      src/view/eventManagement/advertising/index.vue
  21. 9 9
      src/view/examManagement/collegePlan/index.vue
  22. 9 9
      src/view/examManagement/examArrangement/index.vue
  23. 9 9
      src/view/examManagement/examGuide/index.vue
  24. 30 66
      src/view/jobSearchManagement/companyManagement/index.vue
  25. 443 263
      src/view/jobSearchManagement/interviewCalendar/index.vue
  26. 9 14
      src/view/jobSearchManagement/jobTemplate/index.vue
  27. 34 17
      src/view/jobSearchManagement/recruitmentManagement/index.vue
  28. 45 25
      src/view/jobSearchManagement/resumeCenter/index.vue
  29. 11 8
      src/view/login/login.vue
  30. 9 9
      src/view/orderManagement/orderList/index.vue
  31. 9 10
      src/view/systemSettings/department/index.vue
  32. 9 11
      src/view/systemSettings/dict/index.vue
  33. 9 11
      src/view/systemSettings/dictData/index.vue
  34. 9 10
      src/view/systemSettings/jobManagement/index.vue
  35. 20 6
      src/view/systemSettings/menu/index.vue
  36. 9 10
      src/view/systemSettings/modelPage/index.vue
  37. 11 11
      src/view/systemSettings/operationLog/index.vue
  38. 11 12
      src/view/systemSettings/roleInfoManagement/index.vue
  39. 12 13
      src/view/systemSettings/usermanagement/index.vue
  40. 71 103
      src/view/userManagement/personalManagement/index.vue
  41. 34 11
      src/view/userManagement/schoolManagement/index.vue

BIN
dist.zip


+ 8 - 0
src/api/ossUpload.js

@@ -33,4 +33,12 @@ export default {
             method: 'get',
         })
     },
+    //导出招聘面试关联列表
+    interviewExport(data) {
+        return request({
+            url: '/recruit/interview/export',
+            method: 'get',
+            params: data
+        })
+    },
 }

+ 1 - 1
src/components/Editor/index.vue

@@ -62,7 +62,7 @@ export default {
       datas: {},
       uploadUrl: "",
       headers: {
-        AuthorizationToken: "Bearer " + cookie.getCookie("token"),
+        AuthorizationToken: "Bearer " + cookie.getCookie("token"+sessionStorage.TenantId),
       },
       Quill: null,
       currentValue: "",

+ 85 - 24
src/components/searchBox.vue

@@ -20,25 +20,63 @@
               :value="items.value"
             ></el-option>
           </el-select>
+          <el-select
+            v-else-if="item.scope === 'selectTs'"
+            v-model="formData[item.prop]"
+            :placeholder="item.placeholder"
+            :size="size"
+          >
+            <el-option
+              v-for="(items, indexs) in UserDict[item.Dict]"
+              :key="indexs"
+              :label="items.dictLabel"
+              :value="items.dictCode"
+            ></el-option>
+          </el-select>
+          <el-select
+            v-else-if="item.scope === 'selects'"
+            v-model="formData[item.prop]"
+            filterable
+            allow-create
+            default-first-option
+            :remote-method="remoteMethod"
+            :loading="loading"
+            remote
+            clearable
+            :placeholder="item.placeholder"
+            :size="size"
+          >
+            <el-option
+              v-for="(items, indexs) in options"
+              :key="indexs"
+              :label="items.schoolName"
+              :value="items.schoolName"
+            ></el-option>
+          </el-select>
           <div v-else-if="item.scope === 'numList'">
             <el-input-number
-            :controls="false"
-            v-model="formData[item.prop1]"
-            controls-position="right"
-            :min="0"
-            :max="100"
-            size="small"
-             @change="handleChanges(formData[item.prop1],formData[item.prop2])"
-          ></el-input-number>~
-          <el-input-number
-          :controls="false"
-            v-model="formData[item.prop2]"
-            controls-position="right"
-            :min="0"
-            :max="100"
-            size="small"
-            @change="handleChanges(formData[item.prop1],formData[item.prop2])"
-          ></el-input-number>
+              :controls="false"
+              v-model="formData[item.prop1]"
+              controls-position="right"
+              :min="0"
+              :max="100"
+              size="small"
+              @change="
+                handleChanges(formData[item.prop1], formData[item.prop2])
+              "
+            ></el-input-number
+            >~
+            <el-input-number
+              :controls="false"
+              v-model="formData[item.prop2]"
+              controls-position="right"
+              :min="0"
+              :max="100"
+              size="small"
+              @change="
+                handleChanges(formData[item.prop1], formData[item.prop2])
+              "
+            ></el-input-number>
           </div>
           <el-input-number
             v-else-if="item.scope === 'inputNumber'"
@@ -101,10 +139,14 @@
 </template>
 
 <script>
+import { mapGetters } from "vuex";
+
 export default {
   props: ["formList"], //参考文档 component.md
   data() {
     return {
+      options: [],
+      loading: false,
       size: "medium", //输入框尺寸类型
       formData: {}, //表单数据收集
       pickerOptions: {
@@ -141,8 +183,12 @@ export default {
       },
     };
   },
-  created(){
-    var self = this
+  computed: { ...mapGetters(["UserDict"]) },
+  created() {
+    var self = this;
+    if (this.$route.params) {
+      this.formData = this.$route.params;
+    }
     document.onkeydown = function (e) {
       var key = window.event.keyCode;
       if (key === 13) {
@@ -153,20 +199,35 @@ export default {
   methods: {
     //搜索
     search() {
-      this.$emit("search", this.formData);
+      this.$emit("search", this.formData,true);
     },
     //重置
     init() {
       this.formData = {};
       this.$emit("init");
     },
-    handleChanges(int1,int2){
-      if(int1 !== undefined && int2 !== undefined){
-        if(int1 > int2){
-          this.$message.error('请规范输入取值范围')
+    handleChanges(int1, int2) {
+      if (int1 !== undefined && int2 !== undefined) {
+        if (int1 > int2) {
+          this.$message.error("请规范输入取值范围");
         }
       }
     },
+    remoteMethod(query) {
+      if (query !== "") {
+        this.loading = true;
+        this.$api
+          .inquireuserschoolList({ status: 1, schoolName: query })
+          .then((res) => {
+            this.formList.map((item) => {
+              this.options = res.rows;
+              this.loading = false;
+            });
+          });
+      } else {
+        this.options = [];
+      }
+    },
   },
 };
 </script>

+ 13 - 0
src/components/tableList.vue

@@ -350,6 +350,12 @@
                 ? "已结束"
                 : "未知"
             }}</span>
+            <span
+              class="editInfoSty"
+              v-else-if="item.scope === 'isNums'"
+              @click="editInfo(scope.row)"
+              >{{ scope.row[item.prop] }}
+            </span>
             <span v-else-if="item.scope === 'numberAll'">{{
               scope.row[item.prop1] + scope.row[item.prop2]
             }}</span>
@@ -535,6 +541,9 @@ export default {
   },
   mounted() {},
   methods: {
+    editInfo(option) {
+      this.$emit("editInfo", option);
+    },
     timeStyle(column) {
       if (column.columnIndex === 0 && this.navText.firstColLeft) {
         return "text-align:left!important;  padding-left: 40px;";
@@ -777,5 +786,9 @@ export default {
 .cvideo:hover{
   color: #47a6ff;
 }
+.editInfoSty {
+  cursor: pointer;
+  color: blue;
+}
 </style>
 

+ 24 - 14
src/layout/permission.js

@@ -11,6 +11,7 @@ NProgress.configure({
 });
 NProgress.inc(0.2);
 router.beforeEach((to, from, next) => {
+    console.log(to, from, true)
     //保险起见 路由跳转时检查token是否存在
     // if (router.history.pending.query.TenantId !== undefined) {
     //     sessionStorage.TenantId = router.history.pending.query.TenantId
@@ -18,9 +19,16 @@ router.beforeEach((to, from, next) => {
     // if(sessionStorage.TenantId == 'undefined'){
     //     sessionStorage.removeItem("TenantId");
     // }
-    const getToken = cookie.getCookie('token')
+    var getToken
+    if (methods.getQueryVariable('TenantId')) {
+        getToken = cookie.getCookie('token' + methods.getQueryVariable('TenantId'))
+    } else {
+        getToken = cookie.getCookie('token' + sessionStorage.TenantId)
+    }
     // 加载进度条start
-    NProgress.start();
+    if (to.path !== from.path) {
+        NProgress.start();
+    }
     if (getToken) {
         if (to.path === '/login') {
             next({ path: '/' })//重定向回主页
@@ -30,7 +38,7 @@ router.beforeEach((to, from, next) => {
                 store.dispatch('GetUserInfo').then(() => {
                     store.dispatch('GenerateRoutes').then(res => {
                         router.addRoutes(res)
-                        next({ ...to,replace: true })
+                        next({ ...to, replace: true })
                     })
                 }).catch(err => {
                     store.dispatch('outLogin').then(() => {
@@ -45,10 +53,10 @@ router.beforeEach((to, from, next) => {
                 } else {
                     store.state.navActive = to.path//导航栏状态
                     store.commit('uploadTabberLists', to)
-                    if(!to.query.TenantId){
-                            to.query.TenantId = sessionStorage.TenantId
+                    if (!to.query.TenantId) {
+                        to.query.TenantId = sessionStorage.TenantId
                         next(to)
-                    }else{
+                    } else {
                         next()
                     }
                 }
@@ -56,20 +64,22 @@ router.beforeEach((to, from, next) => {
         }
     } else {
         if (to.path === '/login') {
-                next()
+            next()
         } else {
             localStorage.clear()
             store.state.tabberLists = []
             store.state.routes = []
             store.state.allRoutes = []
-            if(methods.getQueryVariable('TenantId')){
-                next({path:'/login',query:{
-                    TenantId: methods.getQueryVariable('TenantId')
-                }})
-            }else{
-                next({path:'/login'})
+            if (methods.getQueryVariable('TenantId')) {
+                next({
+                    path: '/login', query: {
+                        TenantId: methods.getQueryVariable('TenantId')
+                    }
+                })
+            } else {
+                next({ path: '/login' })
             }
-            
+
             Message({
                 type: 'info',
                 message: '登录已过期,请重新登录'

+ 2 - 6
src/layout/structure/content/navBar.vue

@@ -19,7 +19,6 @@
           {{ userName ? userName : '加载中...' }}<i class="el-icon-arrow-down el-icon--right"></i>
         </span>
         <el-dropdown-menu slot="dropdown">
-          <el-dropdown-item command="a">乌鸦坐飞机</el-dropdown-item>
           <el-dropdown-item command="exit">退出</el-dropdown-item>
         </el-dropdown-menu>
       </el-dropdown>
@@ -68,16 +67,13 @@ export default {
       switch (command) {
         case "exit":
           self.$store.dispatch("outLogin").then(() => {
-            self.delCookie('token')
+            self.delCookie('token'+sessionStorage.TenantId)
             self.$router.replace({
               path: `/login?TenantId=${sessionStorage.TenantId}`,
             });
             self.$message("退出成功!");
           });
           break;
-        case "a":
-          this.$message("乌鸦坐飞机!");
-          break;
         default:
           break;
       }
@@ -88,7 +84,7 @@ export default {
       exp.setTime(exp.getTime() - 1);
       var cval = cookie.getCookie(name);
       if (cval != null)
-        document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
+       document.cookie = name + "=" + ";expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;"
     },
   },
 };

+ 42 - 13
src/store/index.js

@@ -5,6 +5,7 @@ import router from '@/router'
 import cookie from '@/utils/cookie'
 import path from '@/router/RoutingPath'
 import { constantRouterMap } from '@/router'
+import methods from '@/utils/methodsTool';
 const Layout = () => import("@/layout/index.vue")
 //挂载Vuex
 Vue.use(Vuex)
@@ -20,6 +21,7 @@ const store = new Vuex.Store({
         allRoutes: [],// 总路由
         userInfo: [],//用户信息
         UserDict: {},//字典数据
+        schoolNameList:[],//学校列表
     },
     getters: {
         addRouters(state) {
@@ -34,9 +36,34 @@ const store = new Vuex.Store({
         userInfo(state) {
             return state.userInfo
         },
-        UserDict(state){
+        schoolNameList(state){
+            if(!state.schoolNameList.length){
+                api.inquireuserschoolList({status:1}).then(res => {
+                    state.schoolNameList = res.rows;
+                })
+               }
+                return state.schoolNameList
+        },
+        UserDict(state) {
+           if(!state.UserDict){
+            api.obtaindictdata().then(res => {
+                let newList = {}
+                let list = res.rows
+                for (var i = 0; i < list.length; i++) {
+                    let item = list[i]
+                    if (newList.hasOwnProperty(item.dictType)) {
+                        newList[item.dictType].push(item)
+                    } else {
+                        newList[item.dictType] = [item]
+                    }
+                }
+                state.UserDict = newList;
+                console.log(state.UserDict,99)
+                
+            })
+           }
             return state.UserDict
-        } 
+        }
     },
     mutations: {
         // 获取最新路由情况
@@ -52,8 +79,8 @@ const store = new Vuex.Store({
         },
         //更新导航栏菜单状态
         uploadTabberLists(state, data) {
-            if (localStorage['tabberLists'] !== undefined) {
-                var tabberL = JSON.parse(localStorage['tabberLists'])
+            if (localStorage['tabberLists' + methods.getQueryVariable('TenantId')] !== undefined) {
+                var tabberL = JSON.parse(localStorage['tabberLists'+methods.getQueryVariable('TenantId')])
                 new Promise((resolve, reject) => {
                     if (data.matched[0].name === 'error' || data.name === '/questionBank' || data.name === '/dictData') {
                         resolve()
@@ -75,7 +102,7 @@ const store = new Vuex.Store({
                     }
                     tabberL.push(datas)
                     state.tabberLists = tabberL
-                    localStorage['tabberLists'] = JSON.stringify(tabberL)
+                    localStorage['tabberLists'+methods.getQueryVariable('TenantId')] = JSON.stringify(tabberL)
                 })
             } else {
                 var datas = {
@@ -83,7 +110,7 @@ const store = new Vuex.Store({
                     path: data.path
                 }
                 state.tabberLists = [datas]
-                localStorage['tabberLists'] = JSON.stringify([datas])
+                localStorage['tabberLists'+methods.getQueryVariable('TenantId')] = JSON.stringify([datas])
             }
 
         },
@@ -92,9 +119,9 @@ const store = new Vuex.Store({
         },
         delTabberLists(state, option) {
             console.log(option)
-            var tabberL = JSON.parse(localStorage['tabberLists'])
+            var tabberL = JSON.parse(localStorage['tabberLists'+methods.getQueryVariable('TenantId')])
             tabberL.splice(option.index, 1)
-            localStorage['tabberLists'] = JSON.stringify(tabberL)
+            localStorage['tabberLists'+methods.getQueryVariable('TenantId')] = JSON.stringify(tabberL)
             state.tabberLists = tabberL
             if (option.path === option.item.path) {
                 if (state.tabberLists.length === 1) {
@@ -127,15 +154,17 @@ const store = new Vuex.Store({
             api.obtaindictdata().then(res => {
                 let newList = {}
                 let list = res.rows
-                for(let i =0 ;i<list.length;i++){
+                for (var i = 0; i < list.length; i++) {
                     let item = list[i]
-                    if(newList.hasOwnProperty(item.dictType)){
+                    if (newList.hasOwnProperty(item.dictType)) {
                         newList[item.dictType].push(item)
-                    }else{
+                    } else {
                         newList[item.dictType] = [item]
                     }
                 }
                 state.UserDict = newList;
+                console.log(state.UserDict,99)
+                
             })
         },
     },
@@ -143,8 +172,8 @@ const store = new Vuex.Store({
         outLogin({ commit, state }) {
             return new Promise((resolve, reject) => {
                 // commit('delCookie', 'token')
-                state.userInfo = [] 
-                localStorage.removeItem("tabberLists");
+                state.userInfo = []
+                localStorage.removeItem("tabberLists"+methods.getQueryVariable('TenantId'));
                 state.tabberLists = []
                 resolve()
             })

+ 1 - 1
src/utils/cookie.js

@@ -11,7 +11,7 @@ export default {
         var exp = new Date();
         exp.setTime(exp.getTime() - 1);
         var cval = getCookie(name);
-        if (cval != null) document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
+        if (cval != null) document.cookie = name + "=" + ";expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;"
     },
     //查看cookie (名称)
     getCookie(key) {

+ 52 - 39
src/utils/request.js

@@ -3,20 +3,23 @@ import { Message } from 'element-ui'
 import router from '@/router/index'//引入路由对象
 import cookie from '@/utils/cookie'
 import store from '@/store/index'
+import methods from '@/utils/methodsTool';
 // Vue.use(ElementUI);
 
 // axios 配置
 axios.defaults.timeout = 5000; //设置连接超时时间
-axios.defaults.baseURL = "https://cloud.xyyxt.net/"; //这是调用数据接口,项目上线的时候修改这个地方就可以了
+// axios.defaults.baseURL = "https://cloud.xyyxt.net/"; //这是调用数据接口,项目上线的时候修改这个地方就可以了
+axios.defaults.baseURL = "http://192.168.1.222:9099/"; //这是调用数据接口,项目上线的时候修改这个地方就可以了
 // 也可以这样书写
 const service = axios
 // 如:http://localhost:3000/user/loginUser            使用aixos的时候直接写   /user/loginUser   就可以了
 // 请求拦截器(所有发送的请求都要从这儿过一次),通过这个,我们就可以把token传到后台,
 
+export const BASE_URL = axios.defaults.baseURL
 // 我这里是使用sessionStorage来存储token等权限信息和用户信息  token一般时间 比较短
 service.interceptors.request.use(
     config => {
-        const token = cookie.getCookie('token'); //获取存储在本地的token,如果需要token就在这里带上
+        const token = cookie.getCookie('token'+methods.getQueryVariable('TenantId')); //获取存储在本地的token,如果需要token就在这里带上
         if (!config.changeHeaders) {
             config.headers = {    // 设置请求头   常用语post请求
                 "Content-Type": "application/json"
@@ -49,50 +52,60 @@ service.interceptors.request.use(
     }
 );
 //  响应拦截器    请求回来的结果 先在这里过一遍
-
 service.interceptors.response.use(
     response => {
-        if (response.data.code) {
-            if (response.data.code !== 200) {
-                if (response.data.code === 401) {
-                    Message.error('登录状态过期,请重新登录!')
-                    store.dispatch('outLogin').then(() => {
-                        delCookie('token')
-                        setTimeout(() => {
-                            router.replace({
-                                path: `/login?TenantId=${sessionStorage.TenantId}`
-                            })
-                        }, 1000)
-                    })
-                } else if (response.data.code === 503) {
-                    Message.error(response.data.msg)
-                    store.dispatch('outLogin').then(() => {
-                        delCookie('token')
-                        if (router.history.current.name == "login") {
-                            return
+        if (response.status === 200) {
+            if (response.data.code === 200) {
+                return Promise.resolve(response.data)
+            } else {
+                switch (response.data.code) {
+                    // 401: 未登录/登入过期                
+                    // 未登录则跳转登录页面,并携带当前页面的路径                
+                    // 在登录成功后返回当前页面,这一步需要在登录页操作。                
+                    case 401:
+                        store.dispatch('outLogin').then(() => {
+                            delCookie('token' + sessionStorage.TenantId)
+                            setTimeout(() => {
+                                router.replace({
+                                    path: `/login?TenantId=${sessionStorage.TenantId}`
+                                })
+                            }, 1000)
+                        })
+                        break;
+                    // 503 企业非法访问                   
+                    case 503:
+                        Message.error(response.data.msg)
+                        store.dispatch('outLogin').then(() => {
+                            delCookie('token' + sessionStorage.TenantId)
+                            if (router.history.current.name == "login") {
+                                return
+                            }
+                            setTimeout(() => {
+                                router.replace({
+                                    path: `/login`,
+                                })
+                            }, 10)
+                        })
+                        break;
+                    // 404请求不存在                
+                    case 404:
+                        Message.error("网络请求不存在")
+                        break;
+                    // 其他错误,直接抛出错误提示                
+                    default:
+                        if(response.data.resultContent){
+                            return Promise.resolve(response.data)
                         }
-                        setTimeout(() => {
-                            router.replace({
-                                path: `/login`,
-                            })
-                        }, 10)
-                    })
-                } else {
-                    Message.error(response.data.msg)
-                    return response.data
+                        Message.error("报错code值:" + response.data.code + ','+response.data.msg )
                 }
-            } else {
-                return response.data;   // 返回请求回来的数据
+                return Promise.reject(response.data)
             }
         } else {
-            return response
+            return Promise.reject(response)
         }
-
-
     },
-    err => {
-        Message.error('接口无响应')
-        // console.log(err)
+    error => {
+        Message.error("报错code值:" + error)
     }
 );
 export default service;   // 把配置好的对象 导出
@@ -101,5 +114,5 @@ function delCookie(name) {
     exp.setTime(exp.getTime() - 1);
     var cval = cookie.getCookie(name);
     if (cval != null)
-        document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
+        document.cookie = name + "=" + ";expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;"
 }

+ 8 - 9
src/view/courseQuestionBank/courseManagement/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div id="courseManagement">
-    <search-box :formList="formList" @search="search" @init="init" />
+    <search-box ref="search_box" :formList="formList" @search="search" @init="init" />
     <table-list
       :tableSets="tableSet"
       :tableData="tableData"
@@ -964,13 +964,12 @@ export default {
         return 0;
       };
     },
-    search(v) {
+    search(v,os) {
+      if (os) {
+        this.currentPage = 1;
+      }
       if (v === undefined) {
-        v = {
-          status: "0,1",
-          pageSize: this.pageSize,
-          pageNum: this.currentPage,
-        };
+        v = {};
       }
       var data = {
         courseName: v.courseName || "",
@@ -1008,11 +1007,11 @@ export default {
     handleSizeChange(v) {
       this.pageSize = v;
       this.currentPage = 1;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
     handleCurrentChange(v) {
       this.currentPage = v;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
     handleSizeChangeChild(v) {
       this.pageSizeChild = v;

+ 8 - 9
src/view/courseQuestionBank/examQuestionConfiguration/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div id="examQuestionConfiguration">
-    <search-box :formList="formList" @search="search" @init="init" />
+    <search-box ref="search_box" :formList="formList" @search="search" @init="init" />
     <table-list
       :tableSets="tableSet"
       :tableData="tableData"
@@ -269,13 +269,12 @@ export default {
   },
   methods: {
     totalScores() {},
-    search(v) {
+    search(v,os) {
+      if (os) {
+        this.currentPage = 1;
+      }
       if (v === undefined) {
-        v = {
-          status: "0,1",
-          pageSize: this.pageSize,
-          pageNum: this.currentPage,
-        };
+        v = {};
       }
       var data = {
         categoryId: v.categoryId,
@@ -416,11 +415,11 @@ export default {
     handleSizeChange(v) {
       this.pageSize = v;
       this.currentPage = 1;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
     handleCurrentChange(v) {
       this.currentPage = v;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
     //级联选择器数据
     initCascader() {

+ 8 - 10
src/view/courseQuestionBank/famousTeacherManagement/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div id="famousTeacherManagement">
-    <search-box :formList="formList" @search="search" @init="init" />
+    <search-box ref="search_box" :formList="formList" @search="search" @init="init" />
     <table-list
       :tableSets="tableSet"
       :tableData="tableData"
@@ -318,15 +318,13 @@ export default {
         })
         .catch(() => {});
     },
-    search(v) {
+    search(v,os) {
       var self = this;
+      if (os) {
+        this.currentPage = 1;
+      }
       if (v === undefined) {
-        v = {
-          status: "0,1",
-          teacherName: "",
-          pageSize: this.pageSize,
-          pageNum: this.currentPage,
-        };
+        v = {};
       }
       var data = {
         status: v.status === undefined ? "0,1" : v.status,
@@ -362,11 +360,11 @@ export default {
     handleSizeChange(v) {
       this.pageSize = v;
       this.currentPage = 1;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
     handleCurrentChange(v) {
       this.currentPage = v;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
   },
 };

+ 8 - 9
src/view/courseQuestionBank/keyTestSites/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div id="keyTestSites">
-    <search-box :formList="formList" @search="search" @init="init" />
+    <search-box ref="search_box" :formList="formList" @search="search" @init="init" />
     <table-list
       :tableSets="tableSet"
       :tableData="tableData"
@@ -703,13 +703,12 @@ export default {
         return 0;
       };
     },
-    search(v) {
+    search(v,os) {
+      if (os) {
+        this.currentPage = 1;
+      }
       if (v === undefined) {
-        v = {
-          status: "0,1",
-          pageSize: this.pageSize,
-          pageNum: this.currentPage,
-        };
+        v = {};
       }
       var data = {
         name: v.name,
@@ -744,11 +743,11 @@ export default {
     handleSizeChange(v) {
       this.pageSize = v;
       this.currentPage = 1;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
     handleCurrentChange(v) {
       this.currentPage = v;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
   },
 };

+ 11 - 4
src/view/courseQuestionBank/professionalManagement/index.vue

@@ -1,7 +1,7 @@
 <template>
   <!-- 专业管理 -->
   <div id="professionalManagement">
-    <search-box :formList="formList" @search="search" @init="init"></search-box>
+    <search-box ref="search_box" :formList="formList" @search="search" @init="init"></search-box>
     <table-list
       class="table_list"
       :tableSets="tableSet"
@@ -391,10 +391,17 @@ export default {
         return 0;
       };
     },
-    search(v) {
+    search(v,os) {
+      if(os){
+        this.currentPage = 1
+      }
+      if(v === undefined){
+        v = {}
+      }
       this.loading = true;
       var self = this;
       var data = {
+        categoryName:v.categoryName,
         status: "0,1",
         pageSize: this.pageSize,
         pageNum: this.currentPage,
@@ -466,11 +473,11 @@ export default {
     handleSizeChange(v) {
       this.pageSize = v;
       this.currentPage = 1;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
     handleCurrentChange(v) {
       this.currentPage = v;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
   },
 };

+ 8 - 9
src/view/courseQuestionBank/questionBank/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div id="questionBank">
-    <search-box :formList="formList" @search="search" @init="init" />
+    <search-box ref="search_box" :formList="formList" @search="search" @init="init" />
     <table-list
       :tableSets="tableSet"
       :tableData="tableData"
@@ -627,13 +627,12 @@ export default {
     this.search();
   },
   methods: {
-    search(v) {
+    search(v,os) {
+      if (os) {
+        this.currentPage = 1;
+      }
       if (v === undefined) {
-        v = {
-          status: "0,1",
-          pageSize: this.pageSize,
-          pageNum: this.currentPage,
-        };
+        v = {};
       }
       var data = {
         examId: Number(this.queryData.examId) || 0,
@@ -987,11 +986,11 @@ export default {
     handleSizeChange(v) {
       this.pageSize = v;
       this.currentPage = 1;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
     handleCurrentChange(v) {
       this.currentPage = v;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
   },
 };

+ 8 - 9
src/view/courseQuestionBank/questionBankManagement copy/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div id="questionBankManagement">
-    <search-box :formList="formList" @search="search" @init="init" />
+    <search-box ref="search_box" :formList="formList" @search="search" @init="init" />
     <table-list
       :tableSets="tableSet"
       :tableData="tableData"
@@ -1296,13 +1296,12 @@ export default {
         return 0;
       };
     },
-    search(v) {
+    search(v,os) {
+      if (os) {
+        this.currentPage = 1;
+      }
       if (v === undefined) {
-        v = {
-          status: "0,1",
-          pageSize: this.pageSize,
-          pageNum: this.currentPage,
-        };
+        v = {};
       }
       var data = {
         bankName: v.bankName || "",
@@ -1350,11 +1349,11 @@ export default {
     handleSizeChange(v) {
       this.pageSize = v;
       this.currentPage = 1;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
     handleCurrentChange(v) {
       this.currentPage = v;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
 
     handleSizeChangeChild(v) {

+ 8 - 9
src/view/courseQuestionBank/questionBankManagement/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div id="questionBankManagement">
-    <search-box :formList="formList" @search="search" @init="init" />
+    <search-box ref="search_box" :formList="formList" @search="search" @init="init" />
     <table-list
       :tableSets="tableSet"
       :tableData="tableData"
@@ -1364,13 +1364,12 @@ export default {
         return 0;
       };
     },
-    search(v) {
+    search(v,os) {
+      if (os) {
+        this.currentPage = 1;
+      }
       if (v === undefined) {
-        v = {
-          status: "0,1",
-          pageSize: this.pageSize,
-          pageNum: this.currentPage,
-        };
+        v = {};
       }
       var data = {
         bankName: v.bankName || "",
@@ -1419,11 +1418,11 @@ export default {
     handleSizeChange(v) {
       this.pageSize = v;
       this.currentPage = 1;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
     handleCurrentChange(v) {
       this.currentPage = v;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
 
     handleSizeChangeChild(v) {

+ 13 - 8
src/view/eventManagement/activeConfiguration/index.vue

@@ -1,6 +1,11 @@
 <template>
   <div id="activeConfiguration">
-    <search-box :formList="formList" @search="search" @init="init" />
+    <search-box
+      ref="search_box"
+      :formList="formList"
+      @search="search"
+      @init="init"
+    />
     <table-list
       :tableSets="tableSet"
       :tableData="tableData"
@@ -552,13 +557,13 @@ export default {
         self.$set(self.formLabelAlign, "activityContentUrl", ev.target.result);
       };
     },
-    search(v) {
+    search(v, os) {
       this.loading = true;
+      if (os) {
+        this.currentPage = 1;
+      }
       if (v === undefined) {
-        v = {
-          pageSize: this.pageSize,
-          pageNum: this.currentPage,
-        };
+        v = {};
       }
       var data = {
         activityName: v.activityName,
@@ -761,11 +766,11 @@ export default {
     handleSizeChange(v) {
       this.pageSize = v;
       this.currentPage = 1;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
     handleCurrentChange(v) {
       this.currentPage = v;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
   },
 };

+ 10 - 10
src/view/eventManagement/advertising/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div id="advertising">
-    <search-box :formList="formList" @search="search" @init="init" />
+    <search-box ref="search_box" :formList="formList" @search="search" @init="init" />
     <table-list
       :tableSets="tableSet"
       :tableData="tableData"
@@ -368,16 +368,16 @@ export default {
         self.$set(self.formLabelAlign, "adverUrl", ev.target.result);
       };
     },
-    search(v) {
+    search(v,os) {
       this.loading = true;
-      if (v === undefined) {
-        v = {
-          pageSize: this.pageSize,
-          pageNum: this.currentPage,
-        };
+      if (os) {
+        this.currentPage = 1;
+      }
+      if(v === undefined){
+        v = {}
       }
       var data = {
-        advName: v.advName || "",
+        advName: v.advName,
         status: v.status,
         reStatus: v.reStatus,
         type: v.type,
@@ -528,11 +528,11 @@ export default {
     handleSizeChange(v) {
       this.pageSize = v;
       this.currentPage = 1;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
     handleCurrentChange(v) {
       this.currentPage = v;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
   },
 };

+ 9 - 9
src/view/examManagement/collegePlan/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div id="collegePlan">
-    <search-box :formList="formList" @search="search" @init="init" />
+    <search-box  ref="search_box" :formList="formList" @search="search" @init="init" />
     <table-list
       :tableSets="tableSet"
       :tableData="tableData"
@@ -139,12 +139,12 @@ export default {
       this.$refs.child.getInfos(option.userId);
     },
     totalScores() {},
-    search(v) {
-      if (v === undefined) {
-        v = {
-          pageSize: this.pageSize,
-          pageNum: this.currentPage,
-        };
+    search(v,os) {
+      if(os){
+        this.currentPage = 1
+      }
+      if(v === undefined){
+        v = {}
       }
       var data = {
         examTypeId: v.examTypeId,
@@ -182,11 +182,11 @@ export default {
     handleSizeChange(v) {
       this.pageSize = v;
       this.currentPage = 1;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
     handleCurrentChange(v) {
       this.currentPage = v;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
     //级联选择器数据
     initCascader() {

+ 9 - 9
src/view/examManagement/examArrangement/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div id="examArrangement">
-    <search-box :formList="formList" @search="search" @init="init" />
+    <search-box ref="search_box" :formList="formList" @search="search" @init="init" />
     <table-list
       :tableSets="tableSet"
       :tableData="tableData"
@@ -344,12 +344,12 @@ export default {
     delListsTimes(v) {
       this.poppleData.arays.splice(v, 1);
     },
-    search(v) {
-      if (v === undefined) {
-        v = {
-          pageSize: this.pageSize,
-          pageNum: this.currentPage,
-        };
+    search(v,os) {
+      if(os){
+        this.currentPage = 1
+      }
+      if(v === undefined){
+        v = {}
       }
       var data = {
         examTypeId: v.examTypeId,
@@ -514,11 +514,11 @@ export default {
     handleSizeChange(v) {
       this.pageSize = v;
       this.currentPage = 1;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
     handleCurrentChange(v) {
       this.currentPage = v;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
     //级联选择器数据
     initCascader() {

+ 9 - 9
src/view/examManagement/examGuide/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div id="examGuide">
-    <search-box :formList="formList" @search="search" @init="init" />
+    <search-box ref="search_box"  :formList="formList" @search="search" @init="init" />
     <table-list
       :tableSets="tableSet"
       :tableData="tableData"
@@ -263,12 +263,12 @@ export default {
         this.poppleData = {};
     },
     totalScores() {},
-    search(v) {
-      if (v === undefined) {
-        v = {
-          pageSize: this.pageSize,
-          pageNum: this.currentPage,
-        };
+    search(v,os) {
+      if(os){
+        this.currentPage = 1
+      }
+      if(v === undefined){
+        v = {}
       }
       var data = {
         examTypeId: v.examTypeId,
@@ -357,11 +357,11 @@ export default {
     handleSizeChange(v) {
       this.pageSize = v;
       this.currentPage = 1;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
     handleCurrentChange(v) {
       this.currentPage = v;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
     //级联选择器数据
     initCascader() {

+ 30 - 66
src/view/jobSearchManagement/companyManagement/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div id="companyManagement">
-    <search-box :formList="formList" @search="search" @init="init" />
+    <search-box ref="search_box" :formList="formList" @search="search" @init="init" />
     <table-list
       :tableSets="tableSet"
       :tableData="tableData"
@@ -31,7 +31,7 @@
         <el-button type="text" @click="addClick(props.scope.row, 0)"
           >修改</el-button
         >
-        <el-button type="text" @click="del(props.scope.row)">删除</el-button>
+        <el-button type="text" v-if="props.scope.row.companyId !== 0" @click="del(props.scope.row)">删除</el-button>
       </template>
     </table-list>
     <pagination
@@ -159,10 +159,10 @@
               v-model="listData[items.prop]"
             >
               <el-option
-                v-for="(item, index) in items.options"
+                v-for="(item, index) in UserDict[items.Dict]"
                 :key="index"
-                :label="item.label"
-                :value="item.value"
+                :label="item.dictLabel"
+                :value="item.dictCode"
               >
               </el-option>
             </el-select>
@@ -233,15 +233,17 @@ export default {
           label: "公司类型",
           prop: "companyTypeId",
           placeholder: "请输入公司类型",
-          scope: "select",
+          scope: "selectTs",
           options: [],
+          Dict:"company_type"
         },
         {
           label: "公司规模",
           prop: "companySizeId",
           placeholder: "请选择公司规模",
-          scope: "select",
+          scope: "selectTs",
           options: [],
+          Dict:"company_size"
         },
       ],
       // 表单
@@ -250,6 +252,7 @@ export default {
           label: "公司名称",
           prop: "companyName",
           hidden: true,
+          width:"280px"
         },
         {
           label: "公司类型",
@@ -289,6 +292,7 @@ export default {
           label: "统一社会信用代码",
           prop: "societyCode",
           hidden: true,
+          width:"150px"
         },
         {
           label: "公司地址",
@@ -334,6 +338,7 @@ export default {
           placeholder: "请选择公司类型",
           scope: "select",
           options: [],
+          Dict:"company_type"
         },
         {
           label: "公司规模",
@@ -341,6 +346,7 @@ export default {
           placeholder: "请选择公司规模",
           scope: "select",
           options: [],
+          Dict:"company_size",
         },
         {
           label: "行业类别",
@@ -440,24 +446,22 @@ export default {
     };
   },
   computed: { ...mapGetters(["UserDict"]) },
-  created() {
-    this.companyGM();
-    this.companyLX();
-    this.getTrade();
-  },
-  mounted() {
+  async mounted() {
+    await this.getTrade();
     this.search();
   },
   methods: {
     getTrade() {
       var self = this;
-      this.$api.recruitcompanyConlistTrade().then((res) => {
-        console.log(res.rows);
-        for (let i = 0; i < self.listitem.length; i++) {
-          if (self.listitem[i].label === "行业类别") {
-            self.listitem[i].options = res.rows;
+      return new Promise((resolve, reject) => {
+        self.$api.recruitcompanyConlistTrade().then((res) => {
+          for (let i = 0; i < self.listitem.length; i++) {
+            if (self.listitem[i].label === "行业类别") {
+              self.listitem[i].options = res.rows;
+            }
           }
-        }
+          resolve();
+        });
       });
     },
     changeProvince(v) {
@@ -472,53 +476,13 @@ export default {
     changeArea(v) {
       this.psCity.district = v.value;
     },
-    companyGM() {
-      var newArrays = [];
-      this.UserDict['company_size'].forEach((item, index) => {
-        let arrayList = {
-          label: item.dictLabel,
-          value: item.dictCode,
-        };
-        newArrays.push(arrayList);
-      });
-      for (let i = 0; i < this.formList.length; i++) {
-        if (this.formList[i].label === "公司规模") {
-          this.formList[i].options = newArrays;
-        }
-      }
-      for (let i = 0; i < this.listitem.length; i++) {
-        if (this.listitem[i].label === "公司规模") {
-          this.listitem[i].options = newArrays;
-        }
-      }
-    },
-    companyLX() {
-      var newArrays = [];
-      this.UserDict['company_type'].forEach((item, index) => {
-        let arrayList = {
-          label: item.dictLabel,
-          value: item.dictCode,
-        };
-        newArrays.push(arrayList);
-      });
-      for (let i = 0; i < this.formList.length; i++) {
-        if (this.formList[i].label === "公司类型") {
-          this.formList[i].options = newArrays;
-        }
-      }
-      for (let i = 0; i < this.listitem.length; i++) {
-        if (this.listitem[i].label === "公司类型") {
-          this.listitem[i].options = newArrays;
-        }
-      }
-    },
-    search(v) {
+    search(v,os) {
       this.loading = true;
+      if (os) {
+        this.currentPage = 1;
+      }
       if (v === undefined) {
-        v = {
-          pageSize: this.pageSize,
-          pageNum: this.currentPage,
-        };
+        v = {};
       }
       var data = {
         companyName: v.companyName,
@@ -758,11 +722,11 @@ export default {
     handleSizeChange(v) {
       this.pageSize = v;
       this.currentPage = 1;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
     handleCurrentChange(v) {
       this.currentPage = v;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
     customizeFunc() {
       let url =

+ 443 - 263
src/view/jobSearchManagement/interviewCalendar/index.vue

@@ -1,98 +1,193 @@
 <template>
   <!-- 面试日历 -->
   <div id="interviewCalendar" class="box">
-   <div  class="interviewCalendar">
-     <el-calendar v-model="dayValue">
-     </el-calendar>
-     <div style="padding-left: 20px">
-       <el-checkbox :indeterminate="isIndeterminate" v-model="checkAll" @change="handleCheckAllChange">全选</el-checkbox>
-       <el-checkbox-group v-model="checkList" @change="statusChange">
-       <div  v-for="(item, index) in statusIndexList" :key="index" >
-         <div style="padding: 5px 20px;font-size: 14px"><el-checkbox :key="index" :label="item">{{ statusList[index] }}</el-checkbox></div>
-       </div>
-       </el-checkbox-group>
-     </div>
-     <div style="padding: 20px">
-       <el-button size="medium" type="primary">导出报表</el-button>
-     </div>
-   </div>
+    <div class="interviewCalendar">
+      <el-calendar v-model="dayValue"> </el-calendar>
+      <div style="padding-left: 20px">
+        <el-checkbox
+          :indeterminate="isIndeterminate"
+          v-model="checkAll"
+          @change="handleCheckAllChange"
+          >全选</el-checkbox
+        >
+        <el-checkbox-group v-model="checkList" @change="statusChange">
+          <div v-for="(item, index) in statusIndexList" :key="index">
+            <div style="padding: 5px 20px; font-size: 14px">
+              <el-checkbox :key="index" :label="item">{{
+                statusList[index]
+              }}</el-checkbox>
+            </div>
+          </div>
+        </el-checkbox-group>
+      </div>
+      <div style="padding: 20px">
+        <el-button size="medium" type="primary" @click="customizeFunc"
+          >导出报表</el-button
+        >
+      </div>
+    </div>
     <div style="min-width: 1050px">
-      <div style="display: flex;justify-content: center;font-weight: bold;padding: 25px;font-size: 18px;letter-spacing: 5px">
-        <div><i class="el-icon-arrow-left" style="cursor: pointer"  @click="changeWeek(-1)"></i>{{weekDay1.getFullYear()}}年{{weekDay1.getMonth()+1}}月{{weekDay1.getDate()}}日-{{weekDay2.getMonth()+1}}月{{weekDay2.getDate()}}日
-          <i class="el-icon-arrow-right" style="cursor: pointer" @click="changeWeek(1)"></i></div>
+      <div
+        style="
+          display: flex;
+          justify-content: center;
+          font-weight: bold;
+          padding: 25px;
+          font-size: 18px;
+          letter-spacing: 5px;
+        "
+      >
+        <div>
+          <i
+            class="el-icon-arrow-left"
+            style="cursor: pointer"
+            @click="changeWeek(-1)"
+          ></i
+          >{{ weekDay1.getFullYear() }}年{{ weekDay1.getMonth() + 1 }}月{{
+            weekDay1.getDate()
+          }}日-{{ weekDay2.getMonth() + 1 }}月{{ weekDay2.getDate() }}日
+          <i
+            class="el-icon-arrow-right"
+            style="cursor: pointer"
+            @click="changeWeek(1)"
+          ></i>
+        </div>
       </div>
-      <div class="week_box" >
-        <div v-if="weekDayList.length>0" v-for="(item, index) in weekDay" :key="index" :class="dayValue.getDate()==weekDayList[index].num?'selColor card_date':'card_date'">
+      <div class="week_box">
+        <div
+          v-if="weekDayList.length > 0"
+          v-for="(item, index) in weekDay"
+          :key="index"
+          :class="
+            dayValue.getDate() == weekDayList[index].num
+              ? 'selColor card_date'
+              : 'card_date'
+          "
+        >
           <div>{{ item }}</div>
-          <div  :class="dayValue.getDate()==weekDayList[index].num?'selCircle':'selNone'">{{ weekDayList[index].num }}</div>
+          <div
+            :class="
+              dayValue.getDate() == weekDayList[index].num
+                ? 'selCircle'
+                : 'selNone'
+            "
+          >
+            {{ weekDayList[index].num }}
+          </div>
         </div>
       </div>
       <div class="week_box week_container" id="weekContainer">
-        <div v-if="dayInterviewVos.length>0" v-for="(item, index) in dayInterviewVos" :key="index" class="day_row">
-          <div  v-for="(item_c, index_c) in item.quantumList" :key="index_c" :class="index==0?'day_col day_row0':'day_col'">
-            <div v-if="index==0" class="timeLine">
-              {{timeline[index_c]}}
+        <div
+          v-if="dayInterviewVos.length > 0"
+          v-for="(item, index) in dayInterviewVos"
+          :key="index"
+          class="day_row"
+        >
+          <div
+            v-for="(item_c, index_c) in item.quantumList"
+            :key="index_c"
+            :class="index == 0 ? 'day_col day_row0' : 'day_col'"
+          >
+            <div v-if="index == 0" class="timeLine">
+              {{ timeline[index_c] }}
             </div>
 
             <el-popover
               width="450"
-              v-if="item_c.recruitInterviewList.length>0"
-              trigger="hover">
-                <div>
-                  <div  v-for="(val, key,i) in item_c.mergeObj" :key="i" >
-                    <div>
-                      {{key}}:
-                      <div  v-for="(item_val, index_val) in val" :key="index_val" style="padding-left: 60px;display:flex ;justify-content: space-between;padding-bottom: 5px;align-items: center;">
-                        <div> {{item_val.recruitResumeVo.realname}} - {{item_val.recruitResumeVo.telphone}} - {{statusList[item_val.status]}}</div>
-                        <div>
-                          <el-button size="mini" type="primary" @click="updateStatue(item_val)">标注</el-button>
-                          <el-button size="mini" type="primary" @click="updateDate(item_val)">改期</el-button>
-                        </div>
+              v-if="item_c.recruitInterviewList.length > 0"
+              trigger="hover"
+            >
+              <div>
+                <div v-for="(val, key, i) in item_c.mergeObj" :key="i">
+                  <div>
+                    {{ key }}:
+                    <div
+                      v-for="(item_val, index_val) in val"
+                      :key="index_val"
+                      style="
+                        padding-left: 60px;
+                        display: flex;
+                        justify-content: space-between;
+                        padding-bottom: 5px;
+                        align-items: center;
+                      "
+                    >
+                      <div>
+                        {{ item_val.recruitResumeVo.realname }} -
+                        {{ item_val.recruitResumeVo.telphone }} -
+                        {{ statusList[item_val.status] }}
+                      </div>
+                      <div>
+                        <el-button
+                          size="mini"
+                          type="primary"
+                          @click="updateStatue(item_val)"
+                          >标注</el-button
+                        >
+                        <el-button
+                          size="mini"
+                          type="primary"
+                          @click="updateDate(item_val)"
+                          >改期</el-button
+                        >
                       </div>
                     </div>
                   </div>
                 </div>
-                <div slot="reference" style="cursor: pointer;overflow: hidden;height: 100%">
+              </div>
+              <div
+                slot="reference"
+                style="cursor: pointer; overflow: hidden; height: 100%"
+              >
                 <!--  <div style="font-size: 12px;text-align: left;">待面试:</div>-->
-                  <div  v-for="(val, key,i) in item_c.mergeObj" :key="i" class="day_col_item">
-                    <div> <span class="color1">{{key}}*{{val.length}}</span></div>
+                <div
+                  v-for="(val, key, i) in item_c.mergeObj"
+                  :key="i"
+                  class="day_col_item"
+                >
+                  <div>
+                    <span class="color1">{{ key }}*{{ val.length }}</span>
                   </div>
                 </div>
+              </div>
             </el-popover>
           </div>
         </div>
       </div>
-
-
     </div>
-    <el-dialog
-      :visible.sync="dateDialogVisible"
-      width="30%"
-      center>
+    <el-dialog :visible.sync="dateDialogVisible" width="30%" center>
       <div style="margin-top: 30px">
-        <div style="text-align: center"> {{dateForm.recruitResumeVo.realname}} - {{dateForm.job}}</div>
-        <div style="text-align: center;margin-top: 20px">
-          <el-date-picker :picker-options="pickerOptions" type="datetime" placeholder="选择时间" v-model="dateForm.resumeTime" value-format="timestamp"></el-date-picker>
+        <div style="text-align: center">
+          {{ dateForm.recruitResumeVo.realname }} - {{ dateForm.job }}
+        </div>
+        <div style="text-align: center; margin-top: 20px">
+          <el-date-picker
+            :picker-options="pickerOptions"
+            type="datetime"
+            placeholder="选择时间"
+            v-model="dateForm.resumeTime"
+            value-format="timestamp"
+          ></el-date-picker>
         </div>
       </div>
-          <span slot="footer" class="dialog-footer">
+      <span slot="footer" class="dialog-footer">
         <el-button @click="dateDialogVisible = false">取 消</el-button>
         <el-button type="primary" @click="submitForm(1)">确认</el-button>
       </span>
     </el-dialog>
-    <el-dialog
-      :visible.sync="statusDialogVisible"
-      width="30%"
-      center>
+    <el-dialog :visible.sync="statusDialogVisible" width="30%" center>
       <div style="margin-top: 30px">
-        <div style="text-align: center"> {{statusForm.recruitResumeVo.realname}} - {{statusForm.job}}</div>
-        <div style="text-align: center;margin-top: 20px">
+        <div style="text-align: center">
+          {{ statusForm.recruitResumeVo.realname }} - {{ statusForm.job }}
+        </div>
+        <div style="text-align: center; margin-top: 20px">
           <el-select v-model="value" placeholder="请选择">
             <el-option
               v-for="item in options"
               :key="item.value"
               :label="item.label"
-              :value="item.value">
+              :value="item.value"
+            >
             </el-option>
           </el-select>
         </div>
@@ -106,105 +201,184 @@
 </template>
 
 <script>
+import * as baseUrls from "@/utils/request.js";
 export default {
   data() {
     return {
       pickerOptions: {
-        selectableRange: this.parseTime(new Date().setMinutes(new Date().getMinutes() + 1),"{hh}:{ii}:{ss}") + "- 23:59:00",
+        selectableRange:
+          this.parseTime(
+            new Date().setMinutes(new Date().getMinutes() + 1),
+            "{hh}:{ii}:{ss}"
+          ) + "- 23:59:00",
         disabledDate: (time) => {
           return time.getTime() < Date.now() - 8.64e7;
         },
       },
-      options: [{
-        value: 0,
-        label: '已投递'
-      }, {
-        value: 1,
-        label: '已发邀请'
-      }, {
-        value: 2,
-        label: '已确认'
-      }, {
-        value: 3,
-        label: '已谢绝'
-      }, {
-        value: 4,
-        label: '初试通过'
-      }, {
-        value: 5,
-        label: '初试不通过'
-      }, {
-        value: 6,
-        label: '复试通过'
-      }, {
-        value: 7,
-        label: '复试不通过'
-      }, {
-        value: 8,
-        label: '已发offer'
-      }, {
-        value: 9,
-        label: '爽约'
-      }, {
-        value: 10,
-        label: '淘汰'
-      }, {
-        value: 11,
-        label: '放弃'
-      }, {
-        value: 12,
-        label: '转正'
-      }],
-      statusForm:{
-        recruitResumeVo:''
+      options: [
+        {
+          value: 0,
+          label: "已投递",
+        },
+        {
+          value: 1,
+          label: "已发邀请",
+        },
+        {
+          value: 2,
+          label: "已确认",
+        },
+        {
+          value: 3,
+          label: "已谢绝",
+        },
+        {
+          value: 4,
+          label: "初试通过",
+        },
+        {
+          value: 5,
+          label: "初试不通过",
+        },
+        {
+          value: 6,
+          label: "复试通过",
+        },
+        {
+          value: 7,
+          label: "复试不通过",
+        },
+        {
+          value: 8,
+          label: "已发offer",
+        },
+        {
+          value: 9,
+          label: "爽约",
+        },
+        {
+          value: 10,
+          label: "淘汰",
+        },
+        {
+          value: 11,
+          label: "放弃",
+        },
+        {
+          value: 12,
+          label: "转正",
+        },
+      ],
+      statusForm: {
+        recruitResumeVo: "",
       },
-      value:'',
-      statusDialogVisible:false,
-      dateForm:{
-        recruitResumeVo:''
+      value: "",
+      statusDialogVisible: false,
+      dateForm: {
+        recruitResumeVo: "",
       },
-      dateDialogVisible:false,
+      dateDialogVisible: false,
       isIndeterminate: false,
       checkAll: true,
-      checkList:[0,1,2,3,4,5,6,7,8,9,10,11,12],
+      checkList: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
       dayValue: new Date(),
       loading: false, //当前表单加载是否加载动画
-      weekDay:['周一','周二','周三','周四','周五','周六','周日'],
-      weekDayList:[],
+      weekDay: ["周一", "周二", "周三", "周四", "周五", "周六", "周日"],
+      weekDayList: [],
       date_num: [],
-      currIndex:0,
-      dayInterviewVos:[],
-      timeline:['凌晨0点','凌晨1点','凌晨2点','凌晨3点','凌晨4点','凌晨5点','上午6点','上午7点','上午8点','上午9点','上午10点','上午11点','中午12点','下午1点',
-        '下午2点','下午3点','下午4点','下午5点','下午6点','晚上7点','晚上8点','晚上9点','晚上10点','晚上11点'],
-      weekDay1:new Date(),
-      weekDay2:new Date(),
-      statusList:['已投递','已发邀请','已确认','已谢绝','初试通过','初试不通过','复试通过','复试不通过','已发Offer','爽约','淘汰(试用公司辞退)','放弃(试用期个人离职)','转正'],
-      statusIndexList:[0,1,2,3,4,5,6,7,8,9,10,11,12],
-      statusRadio: 0
+      currIndex: 0,
+      dayInterviewVos: [],
+      timeline: [
+        "凌晨0点",
+        "凌晨1点",
+        "凌晨2点",
+        "凌晨3点",
+        "凌晨4点",
+        "凌晨5点",
+        "上午6点",
+        "上午7点",
+        "上午8点",
+        "上午9点",
+        "上午10点",
+        "上午11点",
+        "中午12点",
+        "下午1点",
+        "下午2点",
+        "下午3点",
+        "下午4点",
+        "下午5点",
+        "下午6点",
+        "晚上7点",
+        "晚上8点",
+        "晚上9点",
+        "晚上10点",
+        "晚上11点",
+      ],
+      weekDay1: new Date(),
+      weekDay2: new Date(),
+      statusList: [
+        "已投递",
+        "已发邀请",
+        "已确认",
+        "已谢绝",
+        "初试通过",
+        "初试不通过",
+        "复试通过",
+        "复试不通过",
+        "已发Offer",
+        "爽约",
+        "淘汰(试用公司辞退)",
+        "放弃(试用期个人离职)",
+        "转正",
+      ],
+      statusIndexList: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
+      statusRadio: 0,
     };
   },
   mounted() {
     this.search();
   },
   methods: {
+    customizeFunc() {
+      var data = {
+        year: this.dayValue.getFullYear(),
+        month: this.dayValue.getMonth() + 1,
+        // day: this.dayValue.getDate(),
+        statusIds: this.checkList.toString(),
+      };
+      this.$api.interviewExport(data).then((res) => {
+        let url =
+          baseUrls.BASE_URL +
+          "common/download?fileName=" +
+          res.msg +
+          "&delete=true";
+        let link = document.createElement("a");
+        let fileName = "报表" + ".xlsx";
+        document.body.appendChild(link);
+        link.href = url;
+        link.dowmload = fileName;
+        link.click();
+        link.remove();
+      });
+    },
     parseTime(time, pattern) {
       if (arguments.length === 0 || !time) {
-        return null
+        return null;
       }
-      const format = pattern || '{y}-{m}-{d} {h}:{i}:{s}'
-      let date
-      if (typeof time === 'object') {
-        date = time
+      const format = pattern || "{y}-{m}-{d} {h}:{i}:{s}";
+      let date;
+      if (typeof time === "object") {
+        date = time;
       } else {
-        if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) {
-          time = parseInt(time)
-        } else if (typeof time === 'string') {
-          time = time.replace(new RegExp(/-/gm), '/');
+        if (typeof time === "string" && /^[0-9]+$/.test(time)) {
+          time = parseInt(time);
+        } else if (typeof time === "string") {
+          time = time.replace(new RegExp(/-/gm), "/");
         }
-        if ((typeof time === 'number') && (time.toString().length === 10)) {
-          time = time * 1000
+        if (typeof time === "number" && time.toString().length === 10) {
+          time = time * 1000;
         }
-        date = new Date(time)
+        date = new Date(time);
       }
       const formatObj = {
         y: date.getFullYear(),
@@ -213,170 +387,181 @@ export default {
         h: date.getHours(),
         i: date.getMinutes(),
         s: date.getSeconds(),
-        a: date.getDay()
-      }
+        a: date.getDay(),
+      };
       const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {
-        let value = formatObj[key]
+        let value = formatObj[key];
         // Note: getDay() returns 0 on Sunday
-        if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value] }
+        if (key === "a") {
+          return ["日", "一", "二", "三", "四", "五", "六"][value];
+        }
         if (result.length > 0 && value < 10) {
-          value = '0' + value
+          value = "0" + value;
         }
-        return value || 0
-      })
-      return time_str
+        return value || 0;
+      });
+      return time_str;
     },
-    editrecruitinterviewStatus(){
-      let data = {}
-      data.status = this.value
-      data.interviewId = this.statusForm.interviewId
-      let that = this
+    editrecruitinterviewStatus() {
+      let data = {};
+      data.status = this.value;
+      data.interviewId = this.statusForm.interviewId;
+      let that = this;
       this.$api.editrecruitinterview(data).then((res) => {
-        if(res.code==200){
-          that.statusDialogVisible = false
+        if (res.code == 200) {
+          that.statusDialogVisible = false;
           that.search();
         }
       });
     },
-    editrecruitinterview(){
-      let data = {}
-      data.resumeTime = parseInt(this.dateForm.resumeTime/1000)
-      data.interviewId = this.dateForm.interviewId
-      let that = this
+    editrecruitinterview() {
+      let data = {};
+      data.resumeTime = parseInt(this.dateForm.resumeTime / 1000);
+      data.interviewId = this.dateForm.interviewId;
+      let that = this;
       this.$api.editrecruitinterview(data).then((res) => {
-        if(res.code==200){
-          that.dateDialogVisible = false
+        if (res.code == 200) {
+          that.dateDialogVisible = false;
           that.search();
         }
       });
     },
-    submitForm(type){
-      if(type==0){
-        this.editrecruitinterviewStatus()
+    submitForm(type) {
+      if (type == 0) {
+        this.editrecruitinterviewStatus();
       }
-      if(type==1){
-        this.editrecruitinterview()
+      if (type == 1) {
+        this.editrecruitinterview();
       }
     },
-    updateStatue(val){
-      this.statusDialogVisible = true
+    updateStatue(val) {
+      this.statusDialogVisible = true;
       this.statusForm = JSON.parse(JSON.stringify(val));
-      this.value = this.statusForm.status
+      this.value = this.statusForm.status;
     },
-    updateDate(val){
-      this.dateDialogVisible = true
+    updateDate(val) {
+      this.dateDialogVisible = true;
       this.dateForm = JSON.parse(JSON.stringify(val));
-      this.dateForm.resumeTime = this.dateForm.resumeTime*1000
+      this.dateForm.resumeTime = this.dateForm.resumeTime * 1000;
     },
-    handleCheckAllChange(val){
-
+    handleCheckAllChange(val) {
       this.checkList = val ? this.statusIndexList : [];
       this.isIndeterminate = false;
-      console.log(this.checkList)
+      console.log(this.checkList);
       this.search();
     },
-    statusChange(value){
+    statusChange(value) {
       let checkedCount = value.length;
       this.checkAll = checkedCount === this.statusList.length;
-      this.isIndeterminate = checkedCount > 0 && checkedCount < this.statusList.length;
+      this.isIndeterminate =
+        checkedCount > 0 && checkedCount < this.statusList.length;
       this.search();
-      console.log(this.checkList,99)
+      console.log(this.checkList, 99);
     },
-    changeWeek(index){
-      if(index==-1){
-        this.dayValue.setTime(this.dayValue.getTime()-7*24*60*60*1000)
+    changeWeek(index) {
+      if (index == -1) {
+        this.dayValue.setTime(
+          this.dayValue.getTime() - 7 * 24 * 60 * 60 * 1000
+        );
       }
-      if(index==1){
-        this.dayValue.setTime(this.dayValue.getTime()+7*24*60*60*1000)
+      if (index == 1) {
+        this.dayValue.setTime(
+          this.dayValue.getTime() + 7 * 24 * 60 * 60 * 1000
+        );
       }
-      let d = new Date()
-      d.setTime(this.dayValue.getTime())
-      this.dayValue = d
-      this.search()
-
+      let d = new Date();
+      d.setTime(this.dayValue.getTime());
+      this.dayValue = d;
+      this.search();
     },
     search() {
-      let that = this
+      let that = this;
       this.loading = true;
       var data = {
         year: this.dayValue.getFullYear(),
-        month: this.dayValue.getMonth()+1,
+        month: this.dayValue.getMonth() + 1,
         day: this.dayValue.getDate(),
-        statusIds:this.checkList.toString()
+        statusIds: this.checkList.toString(),
       };
 
       this.$api.recruitinterviewlist(data).then((res) => {
-        if(res.code==200){
-          that.dayInterviewVos = res.data.dayInterviewVos
-          that.weekDayList = []
-          for(let i = 0; i < that.dayInterviewVos.length; i++) {
-            if(res.data.dayInterviewVos[i].date==that.dayValue.getDate()){
-              that.currIndex = i
+        if (res.code == 200) {
+          that.dayInterviewVos = res.data.dayInterviewVos;
+          that.weekDayList = [];
+          for (let i = 0; i < that.dayInterviewVos.length; i++) {
+            if (res.data.dayInterviewVos[i].date == that.dayValue.getDate()) {
+              that.currIndex = i;
             }
             let weekDay = {
-              num:that.dayInterviewVos[i].date
-            }
-            that.weekDayList.push(weekDay)
-            that.dealDayList(that.dayInterviewVos[i].quantumList)
+              num: that.dayInterviewVos[i].date,
+            };
+            that.weekDayList.push(weekDay);
+            that.dealDayList(that.dayInterviewVos[i].quantumList);
           }
-          for(let i = 0; i < that.weekDayList.length; i++) {
-            var d=new Date();
-            d.setTime(that.dayValue.getTime()+(i-that.currIndex)*24*60*60*1000)
-            that.weekDayList[i].day = d
-            if(i==0){
-              that.weekDay1 = d
+          for (let i = 0; i < that.weekDayList.length; i++) {
+            var d = new Date();
+            d.setTime(
+              that.dayValue.getTime() +
+                (i - that.currIndex) * 24 * 60 * 60 * 1000
+            );
+            that.weekDayList[i].day = d;
+            if (i == 0) {
+              that.weekDay1 = d;
             }
-            if(i==6){
-              that.weekDay2 = d
+            if (i == 6) {
+              that.weekDay2 = d;
             }
           }
-          that.$nextTick(function(){
-            document.getElementById('weekContainer').scrollTop = 479
+          that.$nextTick(function () {
+            document.getElementById("weekContainer").scrollTop = 479;
           });
-
         }
       });
       this.loading = false;
     },
-    dealDayList(quantumList){
-      for(let i =0;i<quantumList.length;i++){
-        let item = quantumList[i]
-        let mergeObj = {}
-        for(let j =0;j<item.recruitInterviewList.length;j++){
-          let dayItem = item.recruitInterviewList[j]
-          if(mergeObj.hasOwnProperty(dayItem.job)){
-            let valueList = mergeObj[dayItem.job]
-            valueList.push(dayItem)
-          }else{
-            let valueList = []
-            valueList.push(dayItem)
-            mergeObj[dayItem.job] = valueList
+    dealDayList(quantumList) {
+      for (let i = 0; i < quantumList.length; i++) {
+        let item = quantumList[i];
+        let mergeObj = {};
+        for (let j = 0; j < item.recruitInterviewList.length; j++) {
+          let dayItem = item.recruitInterviewList[j];
+          if (mergeObj.hasOwnProperty(dayItem.job)) {
+            let valueList = mergeObj[dayItem.job];
+            valueList.push(dayItem);
+          } else {
+            let valueList = [];
+            valueList.push(dayItem);
+            mergeObj[dayItem.job] = valueList;
           }
         }
-        item.mergeObj = mergeObj
+        item.mergeObj = mergeObj;
       }
-
     },
   },
-  watch:{
-    dayValue(val, oldVal){//普通的watch监听
-      this.search()
+  watch: {
+    dayValue(val, oldVal) {
+      //普通的watch监听
+      this.search();
     },
     "dateForm.resumeTime": {
       handler(newValue, oldValue) {
         if (newValue) {
           let date = new Date();
-          if(date.getTime()+24*3600*1000<newValue){
-            this.pickerOptions.selectableRange ="00:00:00 - 23:59:59"
+          if (date.getTime() + 24 * 3600 * 1000 < newValue) {
+            this.pickerOptions.selectableRange = "00:00:00 - 23:59:59";
             this.pickerOptions = this.pickerOptions;
-          }else{
-            let date1 = new Date()
-            date1.setTime(newValue)
-            if(date.getDate()>=date1.getDate()){
-              this.pickerOptions.selectableRange = this.parseTime(date.setMinutes(date.getMinutes() + 1),"{hh}:{ii}:{ss}") + "- 23:59:59"
+          } else {
+            let date1 = new Date();
+            date1.setTime(newValue);
+            if (date.getDate() >= date1.getDate()) {
+              this.pickerOptions.selectableRange =
+                this.parseTime(
+                  date.setMinutes(date.getMinutes() + 1),
+                  "{hh}:{ii}:{ss}"
+                ) + "- 23:59:59";
               this.pickerOptions = this.pickerOptions;
-            }else{
-              this.pickerOptions.selectableRange ="00:00:00 - 23:59:59"
+            } else {
+              this.pickerOptions.selectableRange = "00:00:00 - 23:59:59";
               this.pickerOptions = this.pickerOptions;
             }
           }
@@ -384,86 +569,84 @@ export default {
       },
       deep: true,
       immediate: true,
-    }
-  }
+    },
+  },
 };
 </script>
 <style >
-
-.interviewCalendar .el-calendar-table .el-calendar-day{
+.interviewCalendar .el-calendar-table .el-calendar-day {
   height: auto;
 }
-.interviewCalendar .el-calendar-table tr:first-child td{
+.interviewCalendar .el-calendar-table tr:first-child td {
   border-top: none;
 }
-.interviewCalendar .el-calendar-table td{
+.interviewCalendar .el-calendar-table td {
   border-bottom: none;
   border-right: none;
 }
-.interviewCalendar .el-calendar-table tr td:first-child{
+.interviewCalendar .el-calendar-table tr td:first-child {
   border-left: none;
 }
-.interviewCalendar .el-button--mini, .el-button--mini.is-round{
+.interviewCalendar .el-button--mini,
+.el-button--mini.is-round {
   padding: 7px;
 }
 </style>
 <style lang="less" scoped>
-.color1{
+.color1 {
   color: #ffffff;
-  background-color: #E6A23C;
+  background-color: #e6a23c;
   padding: 2px 5px;
   border-radius: 4px;
 }
-.day_col_item{
+.day_col_item {
   color: #666666;
   font-size: 12px;
   padding: 4px;
   overflow: hidden;
 }
-.timeLine{
+.timeLine {
   position: absolute;
   left: -55px;
   top: 20px;
   color: #666666;
   font-size: 12px;
 }
-.day_row0{
-  border-left: 1px solid #EBEEF5;
+.day_row0 {
+  border-left: 1px solid #ebeef5;
 }
 
-
-.day_col:first-child{
-  border-top: 1px solid #EBEEF5;
+.day_col:first-child {
+  border-top: 1px solid #ebeef5;
 }
-.day_col{
+.day_col {
   width: 100%;
   height: 60px;
-  border-bottom: 1px solid #EBEEF5;
-  border-right: 1px solid #EBEEF5;
+  border-bottom: 1px solid #ebeef5;
+  border-right: 1px solid #ebeef5;
   position: relative;
-
 }
-.day_row{
+.day_row {
   width: 14%;
   text-align: center;
 }
 .selNone {
-  margin-top: 20px
+  margin-top: 20px;
 }
 .selCircle {
   border-radius: 50%;
   width: 50px;
   height: 50px;
   color: #ffffff !important;
-  background-color: #3494F7;
+  background-color: #3494f7;
   text-align: center;
   line-height: 50px;
   margin: 0 auto;
 }
-.selColor{
-  color: #3494F7 !important;
+.selColor {
+  color: #3494f7 !important;
 }
-.week_container{
+.week_container {
   height: 600px;
   overflow-y: auto;
   margin-bottom: 50px;
@@ -471,27 +654,24 @@ export default {
 .week_container::-webkit-scrollbar {
   display: none; /* Chrome Safari */
 }
-.week_box{
+.week_box {
   min-width: 1050px;
   display: flex;
-  justify-content:center;
+  justify-content: center;
   margin-top: 20px;
   padding-left: 50px;
-
 }
 .card_date {
   width: 14%;
   text-align: center;
   color: #000;
-
 }
-.box{
+.box {
   display: flex;
   width: 100%;
   // min-width: 1350px;
-
 }
-.interviewCalendar{
+.interviewCalendar {
   width: 300px;
   height: 350px;
 }

+ 9 - 14
src/view/jobSearchManagement/jobTemplate/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div id="jobTemplate">
-    <search-box :formList="formList" @search="search" @init="init" />
+    <search-box ref="search_box" :formList="formList" @search="search" @init="init" />
     <table-list
       :tableSets="tableSet"
       :tableData="tableData"
@@ -440,12 +440,7 @@ export default {
       }
     },
     getDict() {
-      var companysArrays = [
-        {
-          label: this.$store.state.userInfo[0].tenant.tenantName,
-          value: 0,
-        },
-      ]; //公司名称转换
+      var companysArrays = []; //公司名称转换
       this.$api.recruitcompanyConlist().then((res) => {
         res.rows.forEach((item, index) => {
           let arrayList = {
@@ -462,13 +457,13 @@ export default {
         }
       }
     },
-    search(v) {
+    search(v,os) {
       this.loading = true;
+      if (os) {
+        this.currentPage = 1;
+      }
       if (v === undefined) {
-        v = {
-          pageSize: this.pageSize,
-          pageNum: this.currentPage,
-        };
+        v = {};
       }
       var data = {
         companyName: v.companyName,
@@ -619,11 +614,11 @@ export default {
     handleSizeChange(v) {
       this.pageSize = v;
       this.currentPage = 1;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
     handleCurrentChange(v) {
       this.currentPage = v;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
   },
 };

+ 34 - 17
src/view/jobSearchManagement/recruitmentManagement/index.vue

@@ -1,7 +1,8 @@
 <template>
   <div id="recruitmentManagement">
-    <search-box :formList="formList" @search="search" @init="init" />
+    <search-box ref="search_box" :formList="formList" @search="search" @init="init" />
     <table-list
+    @editInfo="editInfo"
       :tableSets="tableSet"
       :tableData="tableData"
       :navText="navText"
@@ -417,6 +418,12 @@ export default {
           prop: "jobNature",
           hidden: true,
         },
+        {
+          label: "已投递简历",
+          prop: "interviewNum",
+          hidden: true,
+          width:"140px",
+        },
         {
           label: "薪资",
           prop1: "incomeType",
@@ -727,6 +734,14 @@ export default {
     this.initCascader();
   },
   methods: {
+    editInfo(options){
+      // this.$router.push({
+      //   name:"/resumeCenter",
+      //   params:{
+      //     job:options.job
+      //   }
+      // })
+    },
     changeJob(v) {
       var self = this;
       this.zpmb.forEach((item, index) => {
@@ -845,12 +860,7 @@ export default {
     },
     getDict() {
       var companys = []; //公司名称
-      var companysArrays = [
-        {
-          label: this.$store.state.userInfo[0].tenant.tenantName,
-          value: 0,
-        },
-      ]; //公司名称转换
+      var companysArrays = []; //公司名称转换
       this.$api.recruitcompanyConlist().then((res) => {
         res.rows.forEach((item, index) => {
           let arrayList = {
@@ -862,7 +872,10 @@ export default {
       });
       var zpmb = []; //招聘模板
       var zpmbArrays = [];
-      this.$api.recruittemplatelist().then((res) => {
+      var data = {
+        status: 1
+      }
+      this.$api.recruittemplatelist(data).then((res) => {
         this.zpmb = res.rows;
         res.rows.forEach((item, index) => {
           let arrayList = {
@@ -882,13 +895,13 @@ export default {
         }
       }
     },
-    search(v) {
+    search(v,os) {
       this.loading = true;
+      if (os) {
+        this.currentPage = 1;
+      }
       if (v === undefined) {
-        v = {
-          pageSize: this.pageSize,
-          pageNum: this.currentPage,
-        };
+        v = {};
       }
       var data = {
         pushTimeStart: v.finishTime ? (v.finishTime[0] / 1000).toFixed(0) : "",
@@ -945,8 +958,12 @@ export default {
           res.data.minimumEduDict = Number(res.data.minimumEduDict);
           res.data.workingYearsDict = Number(res.data.workingYearsDict);
           res.data.welfare = res.data.welfare.split(",");
-          res.data.bonusCertificate = res.data.bonusCertificate.split(",");
-          res.data.jobNature = res.data.jobNature.split(",");
+          if(res.data.bonusCertificate !== null){
+            res.data.bonusCertificate = res.data.bonusCertificate.split(",");
+          }
+          if(res.data.jobNature !== null){
+            res.data.jobNature = res.data.jobNature.split(",");
+          }
           self.listData = res.data;
           if (res.data.peopleNum === 0) {
             self.$set(self.listData, "peopleType", 0);
@@ -1157,11 +1174,11 @@ export default {
     handleSizeChange(v) {
       this.pageSize = v;
       this.currentPage = 1;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
     handleCurrentChange(v) {
       this.currentPage = v;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
   },
 };

+ 45 - 25
src/view/jobSearchManagement/resumeCenter/index.vue

@@ -1,6 +1,11 @@
 <template>
   <div id="resumeCenter">
-    <search-box :formList="formList" @search="search" @init="init" />
+    <search-box
+      ref="search_box"
+      :formList="formList"
+      @search="search"
+      @init="init"
+    />
     <table-list
       :tableSets="tableSet"
       :tableData="tableData"
@@ -86,7 +91,7 @@
           style="display: flex; padding: 20px"
         >
           <div>{{ item.timeStr }}</div>
-          <div style=" margin-left: 30px">
+          <div style="margin-left: 30px">
             <div v-for="(item_c, index_c) in item.list" :key="index_c">
               {{ item_c.job }}-{{ item_c.recruitResumeVo.realname
               }}<span v-if="index_c < item.list.length - 1">,</span>
@@ -179,7 +184,11 @@ export default {
   data() {
     return {
       pickerOptions: {
-        selectableRange: this.parseTime(new Date().setMinutes(new Date().getMinutes() + 1),"{hh}:{ii}:{ss}") + "- 23:59:00",
+        selectableRange:
+          this.parseTime(
+            new Date().setMinutes(new Date().getMinutes() + 1),
+            "{hh}:{ii}:{ss}"
+          ) + "- 23:59:00",
         disabledDate: (time) => {
           return time.getTime() < Date.now() - 8.64e7;
         },
@@ -402,11 +411,15 @@ export default {
       },
       companyGMdata: [], //公司规模
       companyLXdata: [], //公司类型
-      statusIndexList:[0,1,2,3,4,5,6,7,8,9,10,11,12],
+      statusIndexList: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
     };
   },
-    computed: { ...mapGetters(["UserDict"]) },
-  created() {},
+  computed: { ...mapGetters(["UserDict"]) },
+  created() {
+    // if (this.$route.params.job) {
+    //   this.searchPamam.job = this.$route.params.job;
+    // }
+  },
   mounted() {
     this.search();
     this.searchCalendar();
@@ -416,7 +429,7 @@ export default {
   methods: {
     pushDict() {
       var arrays = [];
-      this.UserDict['edu_level'].forEach((item, index) => {
+      this.UserDict["edu_level"].forEach((item, index) => {
         arrays.push({ label: item.dictLabel, value: item.dictLabel });
       });
       this.formList.forEach((item, index) => {
@@ -533,7 +546,7 @@ export default {
         year: this.dayValue.getFullYear(),
         month: this.dayValue.getMonth() + 1,
         day: this.dayValue.getDate(),
-        statusIds:this.statusIndexList.toString()
+        statusIds: this.statusIndexList.toString(),
       };
       this.$api.recruitinterviewlist(data).then((res) => {
         if (res.code == 200) {
@@ -563,12 +576,15 @@ export default {
               that.weekDay2 = d;
             }
           }
-          console.log(that.weekDayList,99)
+          console.log(that.weekDayList, 99);
         }
       });
       this.loading = false;
     },
-    search(v) {
+    search(v, os) {
+      if (os) {
+        this.currentPage = 1;
+      }
       this.loading = true;
       let that = this;
       var data = JSON.parse(JSON.stringify(this.searchPamam));
@@ -696,29 +712,33 @@ export default {
     handleSizeChange(v) {
       this.searchPamam.pageSize = v;
       this.searchPamam.pageNum = 1;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
     handleCurrentChange(v) {
       this.searchPamam.pageNum = v;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
   },
-  watch:{
+  watch: {
     "form.resumeTime": {
       handler(newValue, oldValue) {
         if (newValue) {
           let date = new Date();
-          if(date.getTime()+24*3600*1000<newValue){
-            this.pickerOptions.selectableRange ="00:00:00 - 23:59:59"
+          if (date.getTime() + 24 * 3600 * 1000 < newValue) {
+            this.pickerOptions.selectableRange = "00:00:00 - 23:59:59";
             this.pickerOptions = this.pickerOptions;
-          }else{
-            let date1 = new Date()
-            date1.setTime(newValue)
-            if(date.getDate()>=date1.getDate()){
-              this.pickerOptions.selectableRange = this.parseTime(date.setMinutes(date.getMinutes() + 1),"{hh}:{ii}:{ss}") + "- 23:59:59"
+          } else {
+            let date1 = new Date();
+            date1.setTime(newValue);
+            if (date.getDate() >= date1.getDate()) {
+              this.pickerOptions.selectableRange =
+                this.parseTime(
+                  date.setMinutes(date.getMinutes() + 1),
+                  "{hh}:{ii}:{ss}"
+                ) + "- 23:59:59";
               this.pickerOptions = this.pickerOptions;
-            }else{
-              this.pickerOptions.selectableRange ="00:00:00 - 23:59:59"
+            } else {
+              this.pickerOptions.selectableRange = "00:00:00 - 23:59:59";
               this.pickerOptions = this.pickerOptions;
             }
           }
@@ -726,12 +746,12 @@ export default {
       },
       deep: true,
       immediate: true,
-    }
-  }
+    },
+  },
 };
 </script>
 <style lang="less" scoped>
-/deep/ .el-dialog{
+/deep/ .el-dialog {
   min-width: 400px;
 }
 /deep/ .el-cascader-node > .el-radio,

+ 11 - 8
src/view/login/login.vue

@@ -26,6 +26,8 @@
             type="text"
             placeholder="输入用户名"
             v-model="loginData.username"
+            name="username"
+            autocomplete="on"
           />
         </div>
         <div class="passwordBox">
@@ -33,6 +35,7 @@
           <div class="passwordListB">
             <input
               :type="showPassword ? 'text' : 'password'"
+              name="password"
               placeholder="输入密码"
               autocomplete="new-password"
               v-model="loginData.password"
@@ -137,9 +140,9 @@ export default {
         .then((res) => {
           if (res.code === 200) {
             if (this.isRemember) {
-              cookie.setCookie("token", res.token, 7);
+              cookie.setCookie("token" + sessionStorage.TenantId, res.token, 7);
             } else {
-              cookie.setCookie("token", res.token, 1);
+              cookie.setCookie("token" + sessionStorage.TenantId, res.token, 1);
             }
             this.initRoutes();
           } else {
@@ -238,24 +241,24 @@ export default {
         animation: img2s linear 3s infinite;
       }
       @keyframes img1s {
-        25%{
+        25% {
           transform: translateY(-20px);
         }
-        50%{
+        50% {
           transform: translateY(0px);
         }
-        75%{
+        75% {
           transform: translateY(20px);
         }
       }
       @keyframes img2s {
-        25%{
+        25% {
           transform: translateY(20px);
         }
-        50%{
+        50% {
           transform: translateY(0px);
         }
-        75%{
+        75% {
           transform: translateY(-20px);
         }
       }

+ 9 - 9
src/view/orderManagement/orderList/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div id="orderList">
-    <search-box :formList="formList" @search="search" @init="init" />
+    <search-box ref="search_box"  :formList="formList" @search="search" @init="init" />
     <table-list
       :tableSets="tableSet"
       :tableData="tableData"
@@ -381,13 +381,13 @@ export default {
       this.fullscreen = false;
       this.poppleData = {};
     },
-    search(v) {
+    search(v,os) {
       this.loading = true;
-      if (v === undefined) {
-        v = {
-          pageSize: this.pageSize,
-          pageNum: this.currentPage,
-        };
+      if(os){
+        this.currentPage = 1
+      }
+      if(v === undefined){
+        v = {}
       }
       var data = {
         oderSn: v.oderSn,
@@ -433,11 +433,11 @@ export default {
     handleSizeChange(v) {
       this.pageSize = v;
       this.currentPage = 1;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
     handleCurrentChange(v) {
       this.currentPage = v;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
   },
 };

+ 9 - 10
src/view/systemSettings/department/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div id="department">
-    <search-box :formList="formList" @search="search" @init="init" />
+    <search-box ref="search_box" :formList="formList" @search="search" @init="init" />
     <table-list
       :tableSets="tableSet"
       :tableData="tableData"
@@ -241,14 +241,13 @@ export default {
     this.search();
   },
   methods: {
-    search(v) {
+    search(v,os) {
       this.loading = true;
-      if (v === undefined) {
-        v = {
-          statusArray: "0,1",
-          pageSize: this.pageSize,
-          pageNum: this.currentPage,
-        };
+      if(os){
+        this.currentPage = 1
+      }
+      if(v === undefined){
+        v = {}
       }
       var data = {
         deptName: v.deptName || "",
@@ -395,11 +394,11 @@ export default {
     handleSizeChange(v) {
       this.pageSize = v;
       this.currentPage = 1;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
     handleCurrentChange(v) {
       this.currentPage = v;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
   },
 };

+ 9 - 11
src/view/systemSettings/dict/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div id="dict">
-    <search-box :formList="formList" @search="search" @init="init" />
+    <search-box ref="search_box"  :formList="formList" @search="search" @init="init" />
     <table-list
       :tableSets="tableSet"
       :tableData="tableData"
@@ -229,14 +229,12 @@ export default {
     this.search();
   },
   methods: {
-    search(v) {
-      console.log(v);
-      if (v === undefined) {
-        v = {
-          statusArray: "0,1",
-          pageSize: this.pageSize,
-          pageNum: this.currentPage,
-        };
+    search(v,os) {
+      if(os){
+        this.currentPage = 1
+      }
+      if(v === undefined){
+        v = {}
       }
       var data = {
         dictName: v.dictName || "",
@@ -330,11 +328,11 @@ export default {
     handleSizeChange(v) {
       this.pageSize = v;
       this.currentPage = 1;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
     handleCurrentChange(v) {
       this.currentPage = v;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
   },
 };

+ 9 - 11
src/view/systemSettings/dictData/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div id="dictData">
-    <search-box :formList="formList" @search="search" @init="init" />
+    <search-box ref="search_box"  :formList="formList" @search="search" @init="init" />
     <table-list
       :tableSets="tableSet"
       :tableData="tableData"
@@ -248,14 +248,12 @@ export default {
     this.search();
   },
   methods: {
-    search(v) {
-      console.log(this.paramsData);
-      if (v === undefined) {
-        v = {
-          statusArray: "0,1",
-          pageSize: this.pageSize,
-          pageNum: this.currentPage,
-        };
+    search(v,os) {
+      if(os){
+        this.currentPage = 1
+      }
+      if(v === undefined){
+        v = {}
       }
       var data = {
         dictName: v.dictName || "",
@@ -351,11 +349,11 @@ export default {
     handleSizeChange(v) {
       this.pageSize = v;
       this.currentPage = 1;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
     handleCurrentChange(v) {
       this.currentPage = v;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
   },
 };

+ 9 - 10
src/view/systemSettings/jobManagement/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div id="jobManagement">
-    <search-box :formList="formList" @search="search" @init="init" />
+    <search-box ref="search_box"  :formList="formList" @search="search" @init="init" />
     <table-list
       :tableSets="tableSet"
       :tableData="tableData"
@@ -249,14 +249,13 @@ export default {
     this.search();
   },
   methods: {
-    search(v) {
+    search(v,os) {
       this.loading = true;
-      if (v === undefined) {
-        v = {
-          statusArray: "0,1",
-          pageSize: this.pageSize,
-          pageNum: this.currentPage,
-        };
+      if(os){
+        this.currentPage = 1
+      }
+      if(v === undefined){
+        v = {}
       }
       var data = {
         postCode: v.postCode || "",
@@ -371,11 +370,11 @@ export default {
     handleSizeChange(v) {
       this.pageSize = v;
       this.currentPage = 1;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
     handleCurrentChange(v) {
       this.currentPage = v;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
   },
 };

+ 20 - 6
src/view/systemSettings/menu/index.vue

@@ -117,6 +117,7 @@
             >修改</el-button
           >
           <el-button
+          v-if="scope.row.menuType === 'M'"
             size="mini"
             type="text"
             icon="el-icon-plus"
@@ -153,7 +154,7 @@
             <el-form-item label="菜单类型" prop="menuType">
               <el-radio-group v-model="form.menuType">
                 <el-radio label="M">目录</el-radio>
-                <el-radio label="C">菜单</el-radio>
+                <el-radio label="C" :disabled="form.menuType == 'M' && form.children.length > 0">菜单</el-radio>
                 <el-radio label="F">按钮</el-radio>
               </el-radio-group>
             </el-form-item>
@@ -307,8 +308,11 @@ export default {
         menuName: undefined,
         visible: undefined,
       },
+      showListMenu:[],
       // 表单参数
-      form: {},
+      form: {
+        children : []
+      },
       // 表单校验
       rules: {
         menuName: [
@@ -326,7 +330,6 @@ export default {
   created() {
     this.getList();
     this.$api.obtaindictdata({ dictType: "sys_show_hide" }).then((response) => {
-      // console.log(response);
       this.visibleOptions = response.rows;
     });
     this.$api
@@ -345,6 +348,7 @@ export default {
       this.loading = true;
       this.$api.getsystemmenu(this.queryParams).then((response) => {
         this.menuList = this.handleTree(response.data, "menuId");
+        this.showListMenu = response.data
         this.loading = false;
       });
     },
@@ -364,7 +368,10 @@ export default {
       this.$api.getsystemmenu().then((response) => {
         this.menuOptions = [];
         const menu = { menuId: 0, menuName: "主类目", children: [] };
-        menu.children = this.handleTree(response.data, "menuId");
+        response = response.data.filter((item,index) => {
+          return item.menuType == 'M'
+        })
+        menu.children = this.handleTree(response, "menuId");
         this.menuOptions.push(menu);
       });
     },
@@ -392,6 +399,7 @@ export default {
     // 表单重置
     reset() {
       this.form = {
+        children:[],
         menuId: undefined,
         parentId: 0,
         menuName: undefined,
@@ -416,10 +424,9 @@ export default {
     },
     /** 新增按钮操作 */
     handleAdd(row) {
-      console.log(this.menuOptions);
       this.reset();
       this.getTreeselect();
-      if (row != null && row.menuId) {
+      if (row != null && row.menuId && row.menuType === 'M') {
         this.form.parentId = row.menuId;
       } else {
         this.form.parentId = 0;
@@ -433,6 +440,10 @@ export default {
       this.reset();
       this.getTreeselect();
       this.$api.enutreeselectmenu(row.menuId).then((response) => {
+        var children = self.showListMenu.filter(item => {
+          return item.parentId === response.data.menuId
+        })
+        response.data.children = children
         self.form = response.data;
         self.open = true;
         self.title = "修改菜单";
@@ -443,6 +454,9 @@ export default {
       this.$refs["form"].validate((valid) => {
         if (valid) {
           if (this.form.menuId != undefined) {
+            if(this.form.component.length === 0){
+              this.form.component = ''
+            }
             this.$api.editsystemmenu(this.form).then((response) => {
               this.msgSuccess("修改成功");
               this.open = false;

+ 9 - 10
src/view/systemSettings/modelPage/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div id="dict">
-    <search-box :formList="formList" @search="search" @init="init" />
+    <search-box ref="search_box"  :formList="formList" @search="search" @init="init" />
     <table-list
       :tableSets="tableSet"
       :tableData="tableData"
@@ -234,14 +234,13 @@ export default {
     this.search();
   },
   methods: {
-    search(v) {
+    search(v,os) {
       this.loading = true;
-      if (v === undefined) {
-        v = {
-          statusArray: "0,1",
-          pageSize: this.pageSize,
-          pageNum: this.currentPage,
-        };
+      if(os){
+        this.currentPage = 1
+      }
+      if(v === undefined){
+        v = {}
       }
       var data = {
         dictName: v.dictName || "",
@@ -350,11 +349,11 @@ export default {
     handleSizeChange(v) {
       this.pageSize = v;
       this.currentPage = 1;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
     handleCurrentChange(v) {
       this.currentPage = v;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
   },
 };

+ 11 - 11
src/view/systemSettings/operationLog/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div id="operationLog">
-    <search-box :formList="formList" @search="search" @init="init" />
+    <search-box ref="search_box"  :formList="formList" @search="search" @init="init" />
     <table-list
       :tableSets="tableSet"
       :tableData="tableData"
@@ -108,16 +108,16 @@ export default {
   },
   methods: {
     totalScores() {},
-    search(v) {
-      if (v === undefined) {
-        v = {
-          pageSize: this.pageSize,
-          pageNum: this.currentPage,
-        };
+    search(v,os) {
+      if(os){
+        this.currentPage = 1
+      }
+      if(v === undefined){
+        v = {}
       }
       var data = {
-        title: v.title || '',
-        operName: v.operName || '',
+        title: v.title,
+        operName: v.operName,
         pageSize: this.pageSize,
         pageNum: this.currentPage,
       };
@@ -152,11 +152,11 @@ export default {
     handleSizeChange(v) {
       this.pageSize = v;
       this.currentPage = 1;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
     handleCurrentChange(v) {
       this.currentPage = v;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
   },
 };

+ 11 - 12
src/view/systemSettings/roleInfoManagement/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div id="roleInfoManagement">
-    <search-box :formList="formList" @search="search" @init="init" />
+    <search-box ref="search_box"  :formList="formList" @search="search" @init="init" />
     <table-list
       :tableSets="tableSet"
       :tableData="tableData"
@@ -288,18 +288,17 @@ export default {
     this.search();
   },
   methods: {
-    search(v) {
+    search(v,os) {
       this.loading = true;
-      if (v === undefined) {
-        v = {
-          statusArray: "0,1",
-          pageSize: this.pageSize,
-          pageNum: this.currentPage,
-        };
+      if(os){
+        this.currentPage = 1
+      }
+      if(v === undefined){
+        v = {}
       }
       var data = {
-        roleKey: v.roleKey || "",
-        roleName: v.roleName || "",
+        roleKey: v.roleKey,
+        roleName: v.roleName,
         statusArray: v.status === undefined ? "0,1" : v.status,
         pageSize: this.pageSize,
         pageNum: this.currentPage,
@@ -488,11 +487,11 @@ export default {
     handleSizeChange(v) {
       this.pageSize = v;
       this.currentPage = 1;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
     handleCurrentChange(v) {
       this.currentPage = v;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
   },
 };

+ 12 - 13
src/view/systemSettings/usermanagement/index.vue

@@ -425,19 +425,18 @@ export default {
       this.search();
     },
     //搜索
-    search(v) {
+    search(v,os) {
       this.loading = true;
-      if (v === undefined) {
-        v = {
-          statusArray: "0,1",
-          pageSize: this.pageSize,
-          pageNum: this.currentPage,
-        };
+      if(os){
+        this.currentPage = 1
+      }
+      if(v === undefined){
+        v = {}
       }
       var data = {
-        deptId: this.deptId || "",
-        userName: v.userName || "",
-        phonenumber: v.phonenumber || "",
+        deptId: this.deptId,
+        userName: v.userName,
+        phonenumber: v.phonenumber,
         statusArray: v.status === undefined ? "0,1" : v.status,
         pageSize: this.pageSize,
         pageNum: this.currentPage,
@@ -502,7 +501,7 @@ export default {
       this.$api.obtainRoleList(data).then((res) => {
         this.listitem.forEach((item, index) => {
           if (item.prop === "roleIds") {
-            item.options1 = res.rows;
+            item.options = res.rows;
           }
         });
       });
@@ -578,11 +577,11 @@ this.$refs.listData.clearValidate();
     handleSizeChange(v) {
       this.pageSize = v;
       this.currentPage = 1;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
     handleCurrentChange(v) {
       this.currentPage = v;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
   },
 };

+ 71 - 103
src/view/userManagement/personalManagement/index.vue

@@ -1,7 +1,13 @@
 <template>
   <div id="personalManagement">
-    <search-box :formList="formList" @search="search" @init="init" />
+    <search-box
+      ref="search_box"
+      :formList="formList"
+      @search="search"
+      @init="init"
+    />
     <table-list
+      ref="tableListRefs"
       :tableSets="tableSet"
       :tableData="tableData"
       :navText="navText"
@@ -85,10 +91,10 @@
           <el-form-item label="政治面貌" prop="politic">
             <el-select v-model="poppleData1.politic" placeholder="请选择">
               <el-option
-                v-for="item in politic"
-                :key="item.value"
-                :label="item.label"
-                :value="item.label"
+                v-for="item in UserDict['politic_status']"
+                :key="item.dictCode"
+                :label="item.dictLabel"
+                :value="item.dictLabel"
               >
               </el-option>
             </el-select>
@@ -96,10 +102,10 @@
           <el-form-item label="婚姻状况" prop="marry">
             <el-select v-model="poppleData1.marry" placeholder="请选择">
               <el-option
-                v-for="item in marryList"
-                :key="item.value"
-                :label="item.label"
-                :value="item.label"
+                v-for="item in UserDict['marry_status']"
+                :key="item.dictCode"
+                :label="item.dictLabel"
+                :value="item.dictLabel"
               >
               </el-option>
             </el-select>
@@ -213,9 +219,9 @@
             >
               <el-option
                 v-for="item in schoolNameList"
-                :key="item.value"
-                :label="item.label"
-                :value="item.label"
+                :key="item.id"
+                :label="item.schoolName"
+                :value="item.schoolName"
               >
               </el-option>
             </el-select>
@@ -226,10 +232,10 @@
               placeholder="请选择"
             >
               <el-option
-                v-for="item in fullTimeSchoolList"
-                :key="item.value"
-                :label="item.label"
-                :value="item.label"
+                v-for="item in UserDict['full_time_school']"
+                :key="item.dictCode"
+                :label="item.dictLabel"
+                :value="item.dictLabel"
               >
               </el-option>
             </el-select>
@@ -255,10 +261,10 @@
           <el-form-item label="学历" prop="education">
             <el-select v-model="poppleData2.education" placeholder="请选择">
               <el-option
-                v-for="item in educationList"
-                :key="item.value"
-                :label="item.label"
-                :value="item.label"
+                v-for="item in UserDict['edu_level']"
+                :key="item.dictCode"
+                :label="item.dictLabel"
+                :value="item.dictLabel"
               >
               </el-option>
             </el-select>
@@ -269,10 +275,10 @@
               placeholder="请选择"
             >
               <el-option
-                v-for="item in academicDegreeList"
-                :key="item.value"
-                :label="item.label"
-                :value="item.label"
+                v-for="item in UserDict['academic_degree']"
+                :key="item.dictCode"
+                :label="item.dictLabel"
+                :value="item.dictLabel"
               >
               </el-option>
             </el-select>
@@ -283,10 +289,10 @@
               placeholder="请选择"
             >
               <el-option
-                v-for="item in educationalSystemList"
-                :key="item.value"
-                :label="item.label"
-                :value="item.label"
+                v-for="item in UserDict['educational_system']"
+                :key="item.dictCode"
+                :label="item.dictLabel"
+                :value="item.dictLabel"
               >
               </el-option>
             </el-select>
@@ -298,10 +304,10 @@
               placeholder="请选择"
             >
               <el-option
-                v-for="item in departmentList"
-                :key="item.value"
-                :label="item.label"
-                :value="item.label"
+                v-for="item in UserDict['department']"
+                :key="item.dictCode"
+                :label="item.dictLabel"
+                :value="item.dictLabel"
               >
               </el-option>
             </el-select>
@@ -378,7 +384,7 @@ export default {
     return {
       loading: false, //当前表单加载是否加载动画
       navText: {
-        title: "学员考试安排",
+        title: "个人管理",
         index: 0,
         ch: "条",
         num: true,
@@ -466,25 +472,22 @@ export default {
             },
           ],
         },
+        {
+          label: "学校名称",
+          prop: "schoolName",
+          scope: "selects",
+          options: [],
+        },
       ], //搜索
       fullscreen: false,
       dialogBox: false,
       statusPop: 0,
       poppleData1: {},
       poppleData2: {},
-      marryList: [], //婚姻状况
-      politic: [], //政治面貌
-
-      schoolNameList: [], //学校名称
-      fullTimeSchoolList: [], //全日制
-
-      educationList: [], //学历
-      academicDegreeList: [], //学位
-      educationalSystemList: [], //学制
-      departmentList: [], //院系
       beif: {},
       psCity: {},
       hjCity: {},
+      schoolList: [],
       rules: {
         telphone: [
           { required: true, message: "请输入手机号", trigger: "blur" },
@@ -540,25 +543,29 @@ export default {
       },
     };
   },
-  computed: { ...mapGetters(["UserDict"]) },
+  computed: { ...mapGetters(["UserDict", "schoolNameList"]) },
   mounted() {
-    this.search();
+    if (this.$route.params) {
+      this.search({ schoolName: this.$route.params.schoolName });
+    } else {
+      this.search();
+    }
     this.getDictData();
   },
   methods: {
-    search(v) {
+    search(v, os) {
+      if (os) {
+        this.currentPage = 1;
+      }
       if (v === undefined) {
-        v = {
-          status: "0,1",
-          pageSize: this.pageSize,
-          pageNum: this.currentPage,
-        };
+        v = {};
       }
       var data = {
-        telphone: v.telphone || "",
-        realname: v.realname || "",
+        schoolName: v.schoolName,
+        telphone: v.telphone,
+        realname: v.realname,
+        idCard: v.idCard,
         status: v.status === undefined ? "0,1" : v.status,
-        idCard: v.idCard || "",
         pageSize: this.pageSize,
         pageNum: this.currentPage,
       };
@@ -604,51 +611,12 @@ export default {
       this.hjCity.district = v.value;
     },
     getDictData() {
-      let marryArrays = [];
-      let politicArrays = [];
-      let fullTime = [];
-      let eduLevel = [];
-      let academicDegree = [];
-      let educationalSystem = [];
-      let departm = [];
-      this.UserDict["marry_status"].forEach((item, index) => {
-        marryArrays.push({ value: item.dictLabel, label: item.dictLabel });
-      });
-      this.UserDict["politic_status"].forEach((item, index) => {
-        politicArrays.push({ value: item.dictLabel, label: item.dictLabel });
-      });
-      this.UserDict["full_time_school"].forEach((item, index) => {
-        fullTime.push({ value: item.dictLabel, label: item.dictLabel });
-      });
-      this.UserDict["edu_level"].forEach((item, index) => {
-        eduLevel.push({ value: item.dictLabel, label: item.dictLabel });
-      });
-      this.UserDict["academic_degree"].forEach((item, index) => {
-        academicDegree.push({ value: item.dictLabel, label: item.dictLabel });
-      });
-      this.UserDict["educational_system"].forEach((item, index) => {
-        educationalSystem.push({
-          value: item.dictLabel,
-          label: item.dictLabel,
-        });
-      });
-      this.UserDict["department"].forEach((item, index) => {
-        departm.push({ value: item.dictLabel, label: item.dictLabel });
-      });
-      this.marryList = marryArrays;
-      this.politic = politicArrays;
-      this.fullTimeSchoolList = fullTime;
-      this.educationList = eduLevel;
-      this.academicDegreeList = academicDegree;
-      this.educationalSystemList = educationalSystem;
-      this.departmentList = departm;
-      this.$api.inquireuserschoolList().then((res) => {
-        var listAry = [];
-        res.rows.forEach((item, index) => {
-          var actliy = { value: item.id, label: item.schoolName };
-          listAry.push(actliy);
+      this.$api.inquireuserschoolList({ status: 1 }).then((res) => {
+        this.formList.map((item) => {
+          if (item.label === "学校名称") {
+            item.options = res.rows;
+          }
         });
-        this.schoolNameList = listAry;
       });
     },
     addClick(v, int) {
@@ -667,7 +635,6 @@ export default {
       this.dialogBox = true;
       this.$nextTick(() => {
         this.$refs.poppleData1.clearValidate();
-        this.$refs.poppleData2.clearValidate();
       });
     },
     async submit(formName) {
@@ -734,6 +701,9 @@ export default {
       this.$refs[formName].validate((valid) => {
         if (valid) {
           self.activeIndex = 1;
+          self.$nextTick(() => {
+            self.$refs.poppleData2.clearValidate();
+          });
         } else {
           self.$message.error("请检查基础信息是否填写完整");
           return false;
@@ -777,8 +747,6 @@ export default {
         studentStatusImg: this.poppleData2.studentStatusImg,
         userSchoolId: this.poppleData2.userSchoolId,
       };
-      console.log(data1, 9);
-      console.log(data2, 8);
       this.$api.editappuser(data1).then((res) => {
         if (res.code === 200) {
           self.$api.editappuserschoolinfo(data2).then((resb) => {
@@ -806,11 +774,11 @@ export default {
     handleSizeChange(v) {
       this.pageSize = v;
       this.currentPage = 1;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
     handleCurrentChange(v) {
       this.currentPage = v;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
     xq(option) {
       this.$refs.child.getInfos(option.userId);

+ 34 - 11
src/view/userManagement/schoolManagement/index.vue

@@ -1,12 +1,18 @@
 <template>
   <div id="schoolManagement">
-    <search-box :formList="formList" @search="search" @init="init" />
+    <search-box
+      ref="search_box"
+      :formList="formList"
+      @search="search"
+      @init="init"
+    />
     <table-list
       :tableSets="tableSet"
       :tableData="tableData"
       :navText="navText"
       @addClick="addClick"
       :loading="loading"
+      @editInfo="editInfo"
     >
       <template slot="btn" slot-scope="props">
         <el-button type="text" @click="addClick(props.scope.row, 0)"
@@ -130,9 +136,11 @@ export default {
       //搜索
       formList: [
         {
-          label: "学校名称",
-          prop: "schoolName",
+          label:"学校名称",
+          prop:"schoolName",
           placeholder: "请输入学校名称",
+          scope:"selects",
+          options:[],
         },
         {
           label: "学校联系人",
@@ -200,6 +208,12 @@ export default {
           prop: "address",
           hidden: true,
         },
+        {
+          label: "用户数",
+          prop: "userNum",
+          hidden: true,
+          scope: "isNums",
+        },
         {
           label: "启用状态",
           prop: "status",
@@ -239,6 +253,15 @@ export default {
     this.getSchoolType();
   },
   methods: {
+    editInfo(options) {
+      this.$router.push({
+        name: "/personalManagement",
+        params: {
+          schoolName: options.schoolName,
+        },
+      });
+      console.log(options);
+    },
     getSchoolType() {
       this.$api.obtaindictdata({ dictTypeId: 11 }).then((res) => {
         var listsT = [];
@@ -267,13 +290,13 @@ export default {
         }
       });
     },
-    search(v) {
+    search(v, os) {
       this.loading = true;
-      if (v === undefined) {
-        v = {
-          pageSize: this.pageSize,
-          pageNum: this.currentPage,
-        };
+      if (os) {
+        this.currentPage = 1;
+      }
+      if(v === undefined){
+        v = {}
       }
       var data = {
         schoolName: v.schoolName,
@@ -371,11 +394,11 @@ export default {
     handleSizeChange(v) {
       this.pageSize = v;
       this.currentPage = 1;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
     handleCurrentChange(v) {
       this.currentPage = v;
-      this.search();
+      this.search(this.$refs.search_box.formData);
     },
   },
 };