From 0f8dc2f32547caa547dea9a7c06edac0192437d5 Mon Sep 17 00:00:00 2001 From: 田源 <lastanimals@163.com> Date: 星期三, 26 六月 2024 17:57:14 +0800 Subject: [PATCH] 成员管理 搜索 分页 表格请求 启用停用 --- Source/plt-web/plt-web-ui/src/components/actions/base/startWorkFlow.vue | 19 ++ Source/plt-web/plt-web-ui/src/api/user/userManageApi.js | 23 +++ Source/plt-web/plt-web-ui/src/views/user/userManage.js | 92 +++++++++++++ Source/plt-web/plt-web-ui/src/util/basic-option.js | 0 Source/plt-web/plt-web-ui/src/util/func.js | 8 + Source/plt-web/plt-web-ui/src/api/base/startWork/index.js | 11 + Source/plt-web/plt-web-ui/src/views/user/userManage.vue | 218 +++++++++++++++---------------- 7 files changed, 255 insertions(+), 116 deletions(-) diff --git a/Source/plt-web/plt-web-ui/src/api/base/startWork/index.js b/Source/plt-web/plt-web-ui/src/api/base/startWork/index.js new file mode 100644 index 0000000..388873f --- /dev/null +++ b/Source/plt-web/plt-web-ui/src/api/base/startWork/index.js @@ -0,0 +1,11 @@ +import request from '@/router/axios'; + + +//鑾峰彇娴佺▼妯℃澘淇℃伅 +export const getTemplateByType = (params) => { + return request({ + url: '/api/processDefineController/getTemplateByType', + method: 'get', + params: params, + }); +} diff --git a/Source/plt-web/plt-web-ui/src/api/user/userManageApi.js b/Source/plt-web/plt-web-ui/src/api/user/userManageApi.js new file mode 100644 index 0000000..0dacb61 --- /dev/null +++ b/Source/plt-web/plt-web-ui/src/api/user/userManageApi.js @@ -0,0 +1,23 @@ +import request from '@/router/axios'; + +// 鍒楄〃鏌ヨ +export function getDataUsers(page,limit,params) { + return request({ + url: "/api/userQueryController/getDataGridUsers", + method: "get", + params:{ + page, + limit, + ...params + } + }); +} + +// 鍋滅敤鍚敤 +export function stopUser(data) { + return request({ + url: "/api/userQueryController/stopUser", + method: "post", + data:data + }); +} diff --git a/Source/plt-web/plt-web-ui/src/components/actions/base/startWorkFlow.vue b/Source/plt-web/plt-web-ui/src/components/actions/base/startWorkFlow.vue index ea93acf..65e9ee6 100644 --- a/Source/plt-web/plt-web-ui/src/components/actions/base/startWorkFlow.vue +++ b/Source/plt-web/plt-web-ui/src/components/actions/base/startWorkFlow.vue @@ -48,7 +48,7 @@ <script> import {validatenull} from "@/util/validate"; - +import {getTemplateByType} from "@/api/base/startWork/index" export default { name: "startWorkFlow", props: { @@ -119,10 +119,23 @@ } }, }, - mounted() { + created() { this.modelNameChange(); + this.getWorkByType(); + }, + mounted() { }, methods: { + // 鑾峰彇娴佺▼妯℃澘淇℃伅 + getWorkByType(){ + let params = { + type:'鏂囨。瀹$娴佺▼', + filterTemplate:"" + } + getTemplateByType(params).then(res => { + console.log(res) + }) + }, // 鍏抽棴寮圭獥 dialogClose() { this.visible = false; @@ -151,7 +164,7 @@ if (this.paramVOS && this.paramVOS.modelName) { this.saveParam.modelName = this.paramVOS.modelName; } else if (userInfo.content && userInfo.content.userName) { - this.saveParam.modelName = userInfo.content.userName + '[鍚姩娴佺▼]'; + this.saveParam.modelName = userInfo.content.userName + '鍚姩娴佺▼'; } else { this.saveParam.modelName = ''; } diff --git a/Source/plt-web/plt-web-ui/src/option/user/basic-option.js b/Source/plt-web/plt-web-ui/src/util/basic-option.js similarity index 100% rename from Source/plt-web/plt-web-ui/src/option/user/basic-option.js rename to Source/plt-web/plt-web-ui/src/util/basic-option.js diff --git a/Source/plt-web/plt-web-ui/src/util/func.js b/Source/plt-web/plt-web-ui/src/util/func.js index 9c9f00d..2eb5052 100644 --- a/Source/plt-web/plt-web-ui/src/util/func.js +++ b/Source/plt-web/plt-web-ui/src/util/func.js @@ -39,6 +39,14 @@ } /** + * 鍒ゆ柇瀵硅薄涓虹┖ + */ + + static isEmptyObject(obj) { + return Object.keys(obj).length === 0; + } + + /** * 寮鸿浆int鍨� * @param val * @param defaultValue diff --git a/Source/plt-web/plt-web-ui/src/views/user/userManage.js b/Source/plt-web/plt-web-ui/src/views/user/userManage.js new file mode 100644 index 0000000..ae166ce --- /dev/null +++ b/Source/plt-web/plt-web-ui/src/views/user/userManage.js @@ -0,0 +1,92 @@ +export const column = [ + { + label: '濮撳悕', + prop: 'name', + align:'center', + search:true, + sortable:true + }, { + label: '璐﹀彿', + prop: 'id', + align:'center', + search:true, + sortable:true + }, + { + label: '鐘舵��', + prop: 'status', + align: 'center', + display:false, + sortable:true, + slot: true, + }, + { + label: '瀵嗙爜绛栫暐', + prop: 'pkPasswordStrategyName', + sortable:true, + display:false, + }, + { + label: '閿佸畾鐘舵��', + prop: 'lockFlag', + align:'center', + sortable:true, + display:false, + }, + { + label: '鎵�灞為儴闂�', + prop: 'pkDepartmentName', + align:'center', + search:true, + sortable:true, + searchslot:true, + }, + { + label: '涓撲笟', + prop: 'specialties', + align:'center', + sortable:true, + }, + { + label: '瑙掕壊', + prop: 'pkPersonName', + align:'center', + type:'select', + dicUrl: 'api/roleQueryController/refDataGrid', + props: { + label: 'name', + value: 'oid' + }, + search:true, + overHidden: true, + sortable:true, + display:false, + }, + { + label: '鐢靛瓙閭欢', + prop: 'email', + align:'center', + sortable:true, + }, + { + label: '鎻忚堪', + type:'textarea', + prop: 'description', + align:'center', + sortable:true, + }, + { + label: '閮ㄩ棬棰嗗', + prop: 'isDeptLeader', + align:'center', + sortable:true, + display:false, + }, + { + label: '鎵�灞炲瘑绾�', + prop: 'secretGradeText', + align:'center', + sortable:true, + display:false, + } +]; diff --git a/Source/plt-web/plt-web-ui/src/views/user/userManage.vue b/Source/plt-web/plt-web-ui/src/views/user/userManage.vue index 7bda956..2f0309a 100644 --- a/Source/plt-web/plt-web-ui/src/views/user/userManage.vue +++ b/Source/plt-web/plt-web-ui/src/views/user/userManage.vue @@ -1,131 +1,123 @@ <template> <basic-container> - <avue-crud :data="data" - :option="option"> + <avue-crud + :data="tableData" + :option="option" + :page.sync="page" + :table-loading="tableLoading" + @on-load="getTableList" + @refresh-change="handleRefresh" + @search-change="handleSearch" + @search-reset="handleReset" + @size-change="sizeChange" + @current-change="currentChange" + > + <template slot="status" slot-scope="{row}"> + <el-tag v-if="row.status === 0" type="success">鍚敤</el-tag> + <el-tag v-if="row.status === 1" type="danger">鍋滅敤</el-tag> + </template> + + <template slot="lockFlag" slot-scope="{row}"> + <el-tag v-if="!row.lockFlag" type="success">鏈攣瀹�</el-tag> + <el-tag v-if="row.lockFlag" type="danger">閿佸畾</el-tag> + </template> + + <template #menu="{row,index,size}"> + <el-button size="small" type="text" @click="stopUserHandler(row)"> + <span style="color: #fa3434" v-if="row.status === 0"><i class="el-icon-video-pause"></i> 鍋滅敤</span> + <span style="color: #55b61d" v-if="row.status === 1"><i class="el-icon-video-pause"></i> 鍚敤</span> + </el-button> + </template> </avue-crud> </basic-container> </template> <script> -import basicOption from '@/option/user/basic-option' +import basicOption from '@/util/basic-option' +import {getDataUsers, stopUser} from '@/api/user/userManageApi' +import {column} from "./userManage" +import func from '@/util/func' + export default { name: "userManage", data() { return { - data: [ - { - id: 1, - name: '寮犱笁', - sex: '鐢�' - }, { - id: 2, - name: '鏉庡洓', - sex: '濂�' - }, - { - id: 1, - name: '寮犱笁', - sex: '鐢�' - }, { - id: 2, - name: '鏉庡洓', - sex: '濂�' - }, - { - id: 1, - name: '寮犱笁', - sex: '鐢�' - }, { - id: 2, - name: '鏉庡洓', - sex: '濂�' - }, { - id: 1, - name: '寮犱笁', - sex: '鐢�' - }, { - id: 2, - name: '鏉庡洓', - sex: '濂�' - } - , { - id: 1, - name: '寮犱笁', - sex: '鐢�' - }, { - id: 2, - name: '鏉庡洓', - sex: '濂�' - } - , { - id: 1, - name: '寮犱笁', - sex: '鐢�' - }, { - id: 2, - name: '鏉庡洓', - sex: '濂�' - } - , { - id: 1, - name: '寮犱笁', - sex: '鐢�' - }, { - id: 2, - name: '鏉庡洓', - sex: '濂�' - } - , { - id: 1, - name: '寮犱笁', - sex: '鐢�' - }, { - id: 2, - name: '鏉庡洓', - sex: '濂�' - } - , { - id: 1, - name: '寮犱笁', - sex: '鐢�' - }, { - id: 2, - name: '鏉庡洓', - sex: '濂�' - } - , { - id: 1, - name: '寮犱笁', - sex: '鐢�' - }, { - id: 2, - name: '鏉庡洓', - sex: '濂�' - } - , { - id: 1, - name: '寮犱笁', - sex: '鐢�' - }, { - id: 2, - name: '鏉庡洓', - sex: '濂�' - } - ], + tableLoading: false, + tableData: [], option: { ...basicOption, - column: [ - { - label: '濮撳悕', - prop: 'name', - search:true - }, { - label: '鎬у埆', - prop: 'sex', - search:true + calcHeight: -60, + column: column + }, + page: { + currentPage: 1, + pageSize: 10, + total: 0, + pageSizes: [10, 30, 50, 100], + }, + searchParams: {}, + } + }, + created() { + }, + methods: { + // 琛ㄦ牸璇锋眰 + getTableList() { + getDataUsers(this.page.currentPage, this.page.pageSize, this.searchParams).then(res => { + const data = res.data.data; + this.tableData = data; + this.page.total = res.data.total; + }); + }, + + // 琛ㄦ牸鍙充晶鍒锋柊鍥炬爣 + handleRefresh() { + this.getTableList(); + }, + + // 鎼滅储鏌ヨ + handleSearch(params, done) { + if (!func.isEmptyObject(params)) { + for (let key in params) { + if (params.hasOwnProperty(key)) { + // 鍒ゆ柇濡傛灉 key 鏄� 'pkPersonName'锛屽垯鏀逛负 'pkPerson' 鍒嗗埆涓烘樉绀哄�煎拰淇濆瓨鍊� + let newKey = key === 'pkPersonName' ? 'pkPerson' : key; + this.searchParams[`conditionMap["${newKey}"]`] = params[key]; } - ] + } + } else { + this.searchParams = {}; } + this.getTableList(); + done(); + }, + + // 閲嶇疆鎼滅储鏉′欢 + handleReset() { + this.searchParams = {}; + this.getTableList(); + }, + + // 鏉℃暟 + sizeChange(val) { + this.page.pageSize = val; + }, + + // 椤电爜 + currentChange(val) { + this.page.currentPage = val; + }, + + // 鍋滅敤鍚敤 + stopUserHandler(row){ + let params = {}; + params = { + idList:row.oid, + flag: row.status === 0 ? true : false + } + stopUser(params).then(res => { + console.log(res) + }) } } -- Gitblit v1.9.3