From 3ae2f5b6fb34c4718040229ef82cfdf2414304fc Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期一, 07 四月 2025 11:43:29 +0800
Subject: [PATCH] 代码初始化
---
admin/src/api/business/member.js | 6
server/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java | 54 ++++++
server/src/main/java/com/doumee/dao/business/ManagersMapper.java | 3
admin/src/components/business/OperaManagersWindow.vue | 92 ++++++-----
admin/src/views/business/managersDca.vue | 85 ++--------
admin/src/views/business/managersShe.vue | 20 +-
admin/src/views/business/company.vue | 2
server/src/main/java/com/doumee/service/business/impl/ManagersServiceImpl.java | 108 +++++++++++-
admin/src/views/business/managersDcaAuth.vue | 88 +++++++++++
admin/src/components/base/BaseTable.vue | 2
server/src/main/java/com/doumee/api/business/MemberController.java | 6
server/src/main/java/com/doumee/dao/business/model/Managers.java | 6
12 files changed, 327 insertions(+), 145 deletions(-)
diff --git a/admin/src/api/business/member.js b/admin/src/api/business/member.js
index ae84cde..8b01c26 100644
--- a/admin/src/api/business/member.js
+++ b/admin/src/api/business/member.js
@@ -32,7 +32,11 @@
export function deleteById (id) {
return request.get(`/business/member/delete/${id}`)
}
-
+export function allList (data) {
+ return request.post('/business/member/list', data, {
+ trim: true
+ })
+}
// 鎵归噺鍒犻櫎
export function deleteByIdInBatch (ids) {
return request.get('/business/member/delete/batch', {
diff --git a/admin/src/components/base/BaseTable.vue b/admin/src/components/base/BaseTable.vue
index de550e8..79e9171 100644
--- a/admin/src/components/base/BaseTable.vue
+++ b/admin/src/components/base/BaseTable.vue
@@ -168,7 +168,7 @@
*/
deleteById (row, childConfirm = true) {
this.__checkApi()
- let message = `纭鍒犻櫎${this.module}銆�${row[this.configData['field.main']]}銆戝悧?`
+ let message = `纭鍒犻櫎${this.module}鍚�?`
if (childConfirm && row.children != null && row.children.length > 0) {
message = `纭鍒犻櫎${this.module}銆�${row[this.configData['field.main']]}銆戝強鍏跺瓙${this.module}鍚�?`
}
diff --git a/admin/src/components/business/OperaManagersWindow.vue b/admin/src/components/business/OperaManagersWindow.vue
index daa5157..e99f814 100644
--- a/admin/src/components/business/OperaManagersWindow.vue
+++ b/admin/src/components/business/OperaManagersWindow.vue
@@ -6,41 +6,18 @@
@confirm="confirm"
>
<el-form :model="form" ref="form" :rules="rules">
- <el-form-item label="鍒涘缓浜虹紪鐮�" prop="creator">
- <el-input v-model="form.creator" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" v-trim/>
- </el-form-item>
- <el-form-item label="鍒涘缓鏃堕棿" prop="createDate">
- <el-date-picker v-model="form.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�"></el-date-picker>
- </el-form-item>
- <el-form-item label="鏇存柊浜虹紪鐮�" prop="editor">
- <el-input v-model="form.editor" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" v-trim/>
- </el-form-item>
- <el-form-item label="鏇存柊鏃堕棿" prop="editDate">
- <el-date-picker v-model="form.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�"></el-date-picker>
- </el-form-item>
- <el-form-item label="鏄惁鍒犻櫎0鍚� 1鏄�" prop="isdeleted">
- <el-input v-model="form.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀垹闄�0鍚� 1鏄�" v-trim/>
- </el-form-item>
- <el-form-item label="鎵�灞炲垎绫荤紪锛堝叧鑱攃ategory)" prop="categoryId">
- <el-input v-model="form.categoryId" placeholder="璇疯緭鍏ユ墍灞炲垎绫荤紪锛堝叧鑱攃ategory)" v-trim/>
+ <el-form-item label="閫夋嫨璐熻矗浜猴細" prop="memberId">
+ <el-select v-model="form.memberId" filterable remote :remote-method="loadMember" :loading="loading" placeholder="鍙緭鍏ュ鍚� | 鎵嬫満鍙� | 閮ㄩ棬鍚嶇О杩涜鎼滅储">
+ <el-option
+ v-for="item in memberList"
+ :key="item.id"
+ :label="item.name +' | '+(item.phone||'鏃�')+' | '+ item.companyName"
+ :value="item.id">
+ </el-option>
+ </el-select>
</el-form-item>
<el-form-item label="澶囨敞" prop="remark">
<el-input v-model="form.remark" placeholder="璇疯緭鍏ュ娉�" v-trim/>
- </el-form-item>
- <el-form-item label="鐘舵�� 0鍚敤 1绂佺敤" prop="status">
- <el-input v-model="form.status" placeholder="璇疯緭鍏ョ姸鎬� 0鍚敤 1绂佺敤" v-trim/>
- </el-form-item>
- <el-form-item label="鎺掑簭鐮�" prop="sortnum">
- <el-input v-model="form.sortnum" placeholder="璇疯緭鍏ユ帓搴忕爜" v-trim/>
- </el-form-item>
- <el-form-item label="绫诲瀷 0DCA璐d换浜�1瀹夊叏椋庨櫓鐗╀笟涓荤 2瀹夊叏椋庨櫓澶勭悊宸ョ▼甯� 4SHE璐熻矗浜� 5SHE宸ュ崟閭鎶勯�佷汉" prop="type">
- <el-input v-model="form.type" placeholder="璇疯緭鍏ョ被鍨� 0DCA璐d换浜�1瀹夊叏椋庨櫓鐗╀笟涓荤 2瀹夊叏椋庨櫓澶勭悊宸ョ▼甯� 4SHE璐熻矗浜� 5SHE宸ュ崟閭鎶勯�佷汉" v-trim/>
- </el-form-item>
- <el-form-item label="浜哄憳缂栫爜锛堝叧鑱攎ember)" prop="memberId">
- <el-input v-model="form.memberId" placeholder="璇疯緭鍏ヤ汉鍛樼紪鐮侊紙鍏宠仈member)" v-trim/>
- </el-form-item>
- <el-form-item label="" prop="column13">
- <el-input v-model="form.column13" placeholder="璇疯緭鍏�" v-trim/>
</el-form-item>
</el-form>
</GlobalWindow>
@@ -49,6 +26,8 @@
<script>
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
+import { allList } from "@/api/business/member";
+
export default {
name: 'OperaManagersWindow',
extends: BaseOpera,
@@ -57,22 +36,17 @@
return {
// 琛ㄥ崟鏁版嵁
form: {
- id: null,
- creator: '',
- createDate: '',
- editor: '',
- editDate: '',
- isdeleted: '',
- categoryId: '',
- remark: '',
- status: '',
- sortnum: '',
type: '',
memberId: '',
- column13: ''
+ remark: ''
},
+ loading:false,
+ memberList: [],
// 楠岃瘉瑙勫垯
rules: {
+ memberId: [
+ { required: true, message: '璇烽�夋嫨璐熻矗浜�' }
+ ]
}
}
},
@@ -81,6 +55,38 @@
api: '/business/managers',
'field.id': 'id'
})
+ },
+ methods: {
+ loadMember (query) {
+ this.memberList = []
+ if(!query || query==''){
+ return
+ }
+ this.loading =true
+ allList({
+ keyword: query
+ })
+ .then(res => {
+ this.memberList = res
+ })
+ .catch(e => {
+ })
+ .finally(() => {
+ this.loading =false
+ })
+ },
+ open (title, target) {
+ this.title = title
+ this.visible = true
+ // 鏂板缓
+ this.$nextTick(() => {
+ this.$refs.form.resetFields()
+ this.form.type = target != null ? target.type : null
+ this.form[this.configData['field.id']] = null
+ })
+ this.memberList = []
+ // this.loadMember()
+ }
}
}
</script>
diff --git a/admin/src/views/business/company.vue b/admin/src/views/business/company.vue
index 88f5379..ff6ea36 100644
--- a/admin/src/views/business/company.vue
+++ b/admin/src/views/business/company.vue
@@ -23,7 +23,7 @@
<script>
import BaseTable from '@/components/base/BaseTable'
import TableLayout from '@/layouts/TableLayout'
-import {companySync} from '@/api/business/company'
+import { companySync } from '@/api/business/company'
export default {
name: 'internalCompany',
extends: BaseTable,
diff --git a/admin/src/views/business/managersDca.vue b/admin/src/views/business/managersDca.vue
index 3c4011c..b6abc4d 100644
--- a/admin/src/views/business/managersDca.vue
+++ b/admin/src/views/business/managersDca.vue
@@ -1,57 +1,21 @@
<template>
<TableLayout :permissions="['business:managers:query']">
<!-- 鎼滅储琛ㄥ崟 -->
- <SearchFormCollapse slot="search-form">
+ <div slot="search-form">
<el-form ref="searchForm" :model="searchForm" label-width="100px" inline>
- <el-form-item label="涓婚敭" prop="id">
- <el-input v-model="searchForm.id" placeholder="璇疯緭鍏ヤ富閿�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鍒涘缓浜虹紪鐮�" prop="creator">
- <el-input v-model="searchForm.creator" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鍒涘缓鏃堕棿" prop="createDate">
- <el-date-picker v-model="searchForm.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�" @change="search"/>
- </el-form-item>
- <el-form-item label="鏇存柊浜虹紪鐮�" prop="editor">
- <el-input v-model="searchForm.editor" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鏇存柊鏃堕棿" prop="editDate">
- <el-date-picker v-model="searchForm.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�" @change="search"/>
- </el-form-item>
- <el-form-item label="鏄惁鍒犻櫎0鍚� 1鏄�" prop="isdeleted">
- <el-input v-model="searchForm.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀垹闄�0鍚� 1鏄�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鎵�灞炲垎绫荤紪锛堝叧鑱攃ategory)" prop="categoryId">
- <el-input v-model="searchForm.categoryId" placeholder="璇疯緭鍏ユ墍灞炲垎绫荤紪锛堝叧鑱攃ategory)" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="澶囨敞" prop="remark">
- <el-input v-model="searchForm.remark" placeholder="璇疯緭鍏ュ娉�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鐘舵�� 0鍚敤 1绂佺敤" prop="status">
- <el-input v-model="searchForm.status" placeholder="璇疯緭鍏ョ姸鎬� 0鍚敤 1绂佺敤" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鎺掑簭鐮�" prop="sortnum">
- <el-input v-model="searchForm.sortnum" placeholder="璇疯緭鍏ユ帓搴忕爜" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="绫诲瀷 0DCA璐d换浜�1瀹夊叏椋庨櫓鐗╀笟涓荤 2瀹夊叏椋庨櫓澶勭悊宸ョ▼甯� 4SHE璐熻矗浜� 5SHE宸ュ崟閭鎶勯�佷汉" prop="type">
- <el-input v-model="searchForm.type" placeholder="璇疯緭鍏ョ被鍨� 0DCA璐d换浜�1瀹夊叏椋庨櫓鐗╀笟涓荤 2瀹夊叏椋庨櫓澶勭悊宸ョ▼甯� 4SHE璐熻矗浜� 5SHE宸ュ崟閭鎶勯�佷汉" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="浜哄憳缂栫爜锛堝叧鑱攎ember)" prop="memberId">
- <el-input v-model="searchForm.memberId" placeholder="璇疯緭鍏ヤ汉鍛樼紪鐮侊紙鍏宠仈member)" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="" prop="column13">
- <el-input v-model="searchForm.column13" placeholder="璇疯緭鍏�" @keypress.enter.native="search"></el-input>
+ <el-form-item label="浜哄憳鎼滅储 " prop="memberName">
+ <el-input v-model="searchForm.memberName" placeholder="鍙緭鍏ュ鍚�/鎵嬫満鍙�/閮ㄩ棬" @keypress.enter.native="search"></el-input>
</el-form-item>
<section>
<el-button type="primary" @click="search">鎼滅储</el-button>
<el-button @click="reset">閲嶇疆</el-button>
</section>
</el-form>
- </SearchFormCollapse>
+ </div>
<!-- 琛ㄦ牸鍜屽垎椤� -->
<template v-slot:table-wrap>
<ul class="toolbar" v-permissions="['business:managers:create', 'business:managers:delete']">
- <li><el-button type="primary" @click="$refs.operaManagersWindow.open('鏂板缓璐d换浜轰俊鎭〃')" icon="el-icon-plus" v-permissions="['business:managers:create']">鏂板缓</el-button></li>
+ <li><el-button type="primary" @click="$refs.operaManagersWindow.open('鏂板缓DCA鎵嬪姩鎶勯�佷汉鍛樹俊鎭�',{type:1})" icon="el-icon-plus" v-permissions="['business:managers:create']">鏂板缓</el-button></li>
<li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:managers:delete']">鍒犻櫎</el-button></li>
</ul>
<el-table
@@ -61,19 +25,12 @@
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55"></el-table-column>
- <el-table-column prop="id" label="涓婚敭" min-width="100px"></el-table-column>
- <el-table-column prop="creator" label="鍒涘缓浜虹紪鐮�" min-width="100px"></el-table-column>
- <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="100px"></el-table-column>
- <el-table-column prop="editor" label="鏇存柊浜虹紪鐮�" min-width="100px"></el-table-column>
+ <el-table-column prop="memberName" label="浜哄憳濮撳悕" min-width="100px"></el-table-column>
+ <el-table-column prop="memberPhone" label="浜哄憳鎵嬫満鍙�" min-width="100px"></el-table-column>
+ <el-table-column prop="companyName" label="鎵�灞為儴闂�" min-width="100px"></el-table-column>
+ <el-table-column prop="editorName" label="鎿嶄綔浜�" min-width="100px"></el-table-column>
<el-table-column prop="editDate" label="鏇存柊鏃堕棿" min-width="100px"></el-table-column>
- <el-table-column prop="isdeleted" label="鏄惁鍒犻櫎0鍚� 1鏄�" min-width="100px"></el-table-column>
- <el-table-column prop="categoryId" label="鎵�灞炲垎绫荤紪锛堝叧鑱攃ategory)" min-width="100px"></el-table-column>
<el-table-column prop="remark" label="澶囨敞" min-width="100px"></el-table-column>
- <el-table-column prop="status" label="鐘舵�� 0鍚敤 1绂佺敤" min-width="100px"></el-table-column>
- <el-table-column prop="sortnum" label="鎺掑簭鐮�" min-width="100px"></el-table-column>
- <el-table-column prop="type" label="绫诲瀷 0DCA璐d换浜�1瀹夊叏椋庨櫓鐗╀笟涓荤 2瀹夊叏椋庨櫓澶勭悊宸ョ▼甯� 4SHE璐熻矗浜� 5SHE宸ュ崟閭鎶勯�佷汉" min-width="100px"></el-table-column>
- <el-table-column prop="memberId" label="浜哄憳缂栫爜锛堝叧鑱攎ember)" min-width="100px"></el-table-column>
- <el-table-column prop="column13" label="" min-width="100px"></el-table-column>
<el-table-column
v-if="containPermissions(['business:managers:update', 'business:managers:delete'])"
label="鎿嶄綔"
@@ -81,8 +38,10 @@
fixed="right"
>
<template slot-scope="{row}">
+<!--
<el-button type="text" @click="$refs.operaManagersWindow.open('缂栬緫璐d换浜轰俊鎭〃', row)" icon="el-icon-edit" v-permissions="['business:managers:update']">缂栬緫</el-button>
- <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:managers:delete']">鍒犻櫎</el-button>
+-->
+ <el-button type="text" style="color: red" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:managers:delete']">鍒犻櫎</el-button>
</template>
</el-table-column>
</el-table>
@@ -101,36 +60,24 @@
<script>
import BaseTable from '@/components/base/BaseTable'
import TableLayout from '@/layouts/TableLayout'
-import SearchFormCollapse from '@/components/common/SearchFormCollapse'
import Pagination from '@/components/common/Pagination'
import OperaManagersWindow from '@/components/business/OperaManagersWindow'
export default {
name: 'Managers',
extends: BaseTable,
- components: { SearchFormCollapse, TableLayout, Pagination, OperaManagersWindow },
+ components: { TableLayout, Pagination, OperaManagersWindow },
data () {
return {
// 鎼滅储
searchForm: {
- id: '',
- creator: '',
- createDate: '',
- editor: '',
- editDate: '',
- isdeleted: '',
- categoryId: '',
- remark: '',
- status: '',
- sortnum: '',
- type: '',
- memberId: '',
- column13: ''
+ memberName: '',
+ type: 1
}
}
},
created () {
this.config({
- module: '璐d换浜轰俊鎭〃',
+ module: 'DCA鎵嬪姩鎶勯�佷汉鍛樹俊鎭�',
api: '/business/managers',
'field.id': 'id',
'field.main': 'id'
diff --git a/admin/src/views/business/managersDcaAuth.vue b/admin/src/views/business/managersDcaAuth.vue
new file mode 100644
index 0000000..75767fa
--- /dev/null
+++ b/admin/src/views/business/managersDcaAuth.vue
@@ -0,0 +1,88 @@
+<template>
+ <TableLayout :permissions="['business:managers:query']">
+ <!-- 鎼滅储琛ㄥ崟 -->
+ <div slot="search-form">
+ <el-form ref="searchForm" :model="searchForm" label-width="100px" inline>
+ <el-form-item label="浜哄憳鎼滅储 " prop="memberName">
+ <el-input v-model="searchForm.memberName" placeholder="鍙緭鍏ュ鍚�/鎵嬫満鍙�/閮ㄩ棬" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <section>
+ <el-button type="primary" @click="search">鎼滅储</el-button>
+ <el-button @click="reset">閲嶇疆</el-button>
+ </section>
+ </el-form>
+ </div>
+ <!-- 琛ㄦ牸鍜屽垎椤� -->
+ <template v-slot:table-wrap>
+ <ul class="toolbar" v-permissions="['business:managers:create', 'business:managers:delete']">
+ <li><el-button type="primary" @click="$refs.operaManagersWindow.open('鏂板缓DCA涓婃姤鏉冮檺浜哄憳淇℃伅',{type:2})" icon="el-icon-plus" v-permissions="['business:managers:create']">鏂板缓</el-button></li>
+ <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:managers:delete']">鍒犻櫎</el-button></li>
+ </ul>
+ <el-table
+ v-loading="isWorking.search"
+ :data="tableData.list"
+ stripe
+ @selection-change="handleSelectionChange"
+ >
+ <el-table-column type="selection" width="55"></el-table-column>
+ <el-table-column prop="memberName" label="浜哄憳濮撳悕" min-width="100px"></el-table-column>
+ <el-table-column prop="memberPhone" label="浜哄憳鎵嬫満鍙�" min-width="100px"></el-table-column>
+ <el-table-column prop="companyName" label="鎵�灞為儴闂�" min-width="100px"></el-table-column>
+ <el-table-column prop="editorName" label="鎿嶄綔浜�" min-width="100px"></el-table-column>
+ <el-table-column prop="editDate" label="鏇存柊鏃堕棿" min-width="100px"></el-table-column>
+ <el-table-column prop="remark" label="澶囨敞" min-width="100px"></el-table-column>
+ <el-table-column
+ v-if="containPermissions(['business:managers:update', 'business:managers:delete'])"
+ label="鎿嶄綔"
+ min-width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+<!--
+ <el-button type="text" @click="$refs.operaManagersWindow.open('缂栬緫璐d换浜轰俊鎭〃', row)" icon="el-icon-edit" v-permissions="['business:managers:update']">缂栬緫</el-button>
+-->
+ <el-button type="text" style="color: red" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:managers:delete']">鍒犻櫎</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <pagination
+ @size-change="handleSizeChange"
+ @current-change="handlePageChange"
+ :pagination="tableData.pagination"
+ >
+ </pagination>
+ </template>
+ <!-- 鏂板缓/淇敼 -->
+ <OperaManagersWindow ref="operaManagersWindow" @success="handlePageChange"/>
+ </TableLayout>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import OperaManagersWindow from '@/components/business/OperaManagersWindow'
+export default {
+ name: 'Managers',
+ extends: BaseTable,
+ components: { TableLayout, Pagination, OperaManagersWindow },
+ data () {
+ return {
+ // 鎼滅储
+ searchForm: {
+ memberName: '',
+ type: 2
+ }
+ }
+ },
+ created () {
+ this.config({
+ module: 'DCA涓婃姤鏉冮檺浜哄憳淇℃伅',
+ api: '/business/managers',
+ 'field.id': 'id',
+ 'field.main': 'id'
+ })
+ this.search()
+ }
+}
+</script>
diff --git a/admin/src/views/business/managersShe.vue b/admin/src/views/business/managersShe.vue
index fedbdd7..621ae1f 100644
--- a/admin/src/views/business/managersShe.vue
+++ b/admin/src/views/business/managersShe.vue
@@ -1,21 +1,21 @@
<template>
<TableLayout :permissions="['business:managers:query']">
<!-- 鎼滅储琛ㄥ崟 -->
- <SearchFormCollapse slot="search-form">
+ <div slot="search-form">
<el-form ref="searchForm" :model="searchForm" label-width="100px" inline>
- <el-form-item label="浜哄憳濮撳悕 " prop="memberName">
- <el-input v-model="searchForm.memberName" placeholder="璇疯緭鍏ヤ汉鍛樺鍚�" @keypress.enter.native="search"></el-input>
+ <el-form-item label="浜哄憳鎼滅储 " prop="memberName">
+ <el-input v-model="searchForm.memberName" placeholder="鍙緭鍏ュ鍚�/鎵嬫満鍙�/閮ㄩ棬" @keypress.enter.native="search"></el-input>
</el-form-item>
<section>
<el-button type="primary" @click="search">鎼滅储</el-button>
<el-button @click="reset">閲嶇疆</el-button>
</section>
</el-form>
- </SearchFormCollapse>
+ </div>
<!-- 琛ㄦ牸鍜屽垎椤� -->
<template v-slot:table-wrap>
<ul class="toolbar" v-permissions="['business:managers:create', 'business:managers:delete']">
- <li><el-button type="primary" @click="$refs.operaManagersWindow.open('鏂板缓璐d换浜轰俊鎭〃')" icon="el-icon-plus" v-permissions="['business:managers:create']">鏂板缓</el-button></li>
+ <li><el-button type="primary" @click="$refs.operaManagersWindow.open('鏂板缓SHE璐d换浜�',{type:0})" icon="el-icon-plus" v-permissions="['business:managers:create']">鏂板缓</el-button></li>
<li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:managers:delete']">鍒犻櫎</el-button></li>
</ul>
<el-table
@@ -26,6 +26,7 @@
>
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column prop="memberName" label="浜哄憳濮撳悕" min-width="100px"></el-table-column>
+ <el-table-column prop="memberPhone" label="浜哄憳鎵嬫満鍙�" min-width="100px"></el-table-column>
<el-table-column prop="companyName" label="鎵�灞為儴闂�" min-width="100px"></el-table-column>
<el-table-column prop="editorName" label="鎿嶄綔浜�" min-width="100px"></el-table-column>
<el-table-column prop="editDate" label="鏇存柊鏃堕棿" min-width="100px"></el-table-column>
@@ -37,8 +38,10 @@
fixed="right"
>
<template slot-scope="{row}">
+<!--
<el-button type="text" @click="$refs.operaManagersWindow.open('缂栬緫璐d换浜轰俊鎭〃', row)" icon="el-icon-edit" v-permissions="['business:managers:update']">缂栬緫</el-button>
- <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:managers:delete']">鍒犻櫎</el-button>
+-->
+ <el-button type="text" style="color: red" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:managers:delete']">鍒犻櫎</el-button>
</template>
</el-table-column>
</el-table>
@@ -57,13 +60,12 @@
<script>
import BaseTable from '@/components/base/BaseTable'
import TableLayout from '@/layouts/TableLayout'
-import SearchFormCollapse from '@/components/common/SearchFormCollapse'
import Pagination from '@/components/common/Pagination'
import OperaManagersWindow from '@/components/business/OperaManagersWindow'
export default {
name: 'Managers',
extends: BaseTable,
- components: { SearchFormCollapse, TableLayout, Pagination, OperaManagersWindow },
+ components: { TableLayout, Pagination, OperaManagersWindow },
data () {
return {
// 鎼滅储
@@ -75,7 +77,7 @@
},
created () {
this.config({
- module: '璐d换浜轰俊鎭〃',
+ module: 'SHE璐d换浜轰俊鎭�',
api: '/business/managers',
'field.id': 'id',
'field.main': 'id'
diff --git a/server/src/main/java/com/doumee/api/business/MemberController.java b/server/src/main/java/com/doumee/api/business/MemberController.java
index 5d897aa..7770e56 100644
--- a/server/src/main/java/com/doumee/api/business/MemberController.java
+++ b/server/src/main/java/com/doumee/api/business/MemberController.java
@@ -75,6 +75,12 @@
public ApiResponse<PageData<Member>> findPage (@RequestBody PageWrap<Member> pageWrap) {
return ApiResponse.success(memberService.findPage(pageWrap));
}
+ @ApiOperation("鏌ヨ鍏ㄩ儴")
+ @PostMapping("/list")
+ @RequiresPermissions("business:member:query")
+ public ApiResponse<List<Member>> findList (@RequestBody Member pageWrap) {
+ return ApiResponse.success(memberService.findList(pageWrap));
+ }
@ApiOperation("瀵煎嚭Excel")
@PostMapping("/exportExcel")
diff --git a/server/src/main/java/com/doumee/dao/business/ManagersMapper.java b/server/src/main/java/com/doumee/dao/business/ManagersMapper.java
index 54dc238..cad52f4 100644
--- a/server/src/main/java/com/doumee/dao/business/ManagersMapper.java
+++ b/server/src/main/java/com/doumee/dao/business/ManagersMapper.java
@@ -2,11 +2,12 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.doumee.dao.business.model.Managers;
+import com.github.yulichang.base.MPJBaseMapper;
/**
* @author 姹熻箘韫�
* @since 2025/04/02 17:49
*/
-public interface ManagersMapper extends BaseMapper<Managers> {
+public interface ManagersMapper extends MPJBaseMapper<Managers> {
}
diff --git a/server/src/main/java/com/doumee/dao/business/model/Managers.java b/server/src/main/java/com/doumee/dao/business/model/Managers.java
index 1b1ca8a..b185271 100644
--- a/server/src/main/java/com/doumee/dao/business/model/Managers.java
+++ b/server/src/main/java/com/doumee/dao/business/model/Managers.java
@@ -80,5 +80,11 @@
@ApiModelProperty(value = "鍛樺伐濮撳悕")
@TableField(exist = false)
private String memberName;
+ @ApiModelProperty(value = "鍛樺伐鎵嬫満鍙�")
+ @TableField(exist = false)
+ private String memberPhone;
+ @ApiModelProperty(value = "濮撳悕/鎵嬫満鍙�/閮ㄩ棬")
+ @TableField(exist = false)
+ private String keyword;
}
diff --git a/server/src/main/java/com/doumee/service/business/impl/ManagersServiceImpl.java b/server/src/main/java/com/doumee/service/business/impl/ManagersServiceImpl.java
index 6d4430c..16e0170 100644
--- a/server/src/main/java/com/doumee/service/business/impl/ManagersServiceImpl.java
+++ b/server/src/main/java/com/doumee/service/business/impl/ManagersServiceImpl.java
@@ -1,19 +1,31 @@
package com.doumee.service.business.impl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.doumee.core.constants.Constants;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
+import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.ManagersMapper;
+import com.doumee.dao.business.MemberMapper;
import com.doumee.dao.business.model.Managers;
+import com.doumee.dao.business.model.Member;
+import com.doumee.dao.system.model.SystemUser;
import com.doumee.service.business.ManagersService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import io.swagger.models.auth.In;
+import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
+import java.util.Date;
import java.util.List;
/**
@@ -26,16 +38,42 @@
@Autowired
private ManagersMapper managersMapper;
+ @Autowired
+ private MemberMapper memberMapper;
@Override
public Integer create(Managers managers) {
+ Member member =memberMapper.selectById(managers.getMemberId());
+ if(member == null || Constants.equalsInteger(member.getIsdeleted(),Constants.ONE)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝璇ヨ礋璐d汉淇℃伅涓嶅瓨鍦紝璇峰埛鏂伴〉闈㈤噸璇曪紒");
+ }
+ Managers model =managersMapper.selectOne(new LambdaQueryWrapper<Managers>().eq(Managers::getMemberId,managers.getMemberId())
+ .eq(Managers::getType,managers.getType())
+ .eq(Managers::getIsdeleted,Constants.ZERO)
+ );
+ if(model !=null){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"璇ヤ汉鍛樹俊鎭凡璁剧疆锛屾棤闇�閲嶆柊娣诲姞");
+ }
+ LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+ managers.setCreator(user.getId());
+ managers.setCreateDate(new Date());
+ managers.setIsdeleted(Constants.ZERO);
+ managers.setEditor(managers.getCreator());
+ managers.setEditDate(managers.getCreateDate());
+ managers.setStatus(Constants.ZERO);
managersMapper.insert(managers);
return managers.getId();
}
@Override
public void deleteById(Integer id) {
- managersMapper.deleteById(id);
+ Managers managers = new Managers();
+ managers.setId(id);
+ LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+ managers.setEditor(user.getId());
+ managers.setEditDate(new Date());
+ managers.setIsdeleted(Constants.ONE);
+ managersMapper.updateById(managers);
}
@Override
@@ -49,11 +87,16 @@
if (CollectionUtils.isEmpty(ids)) {
return;
}
- managersMapper.deleteBatchIds(ids);
+ for(Integer id :ids){
+ deleteById(id);
+ }
}
@Override
public void updateById(Managers managers) {
+ LoginUserInfo user = new LoginUserInfo();
+ managers.setEditor(user.getId());
+ managers.setEditDate(new Date());
managersMapper.updateById(managers);
}
@@ -79,17 +122,53 @@
}
@Override
- public List<Managers> findList(Managers managers) {
- QueryWrapper<Managers> wrapper = new QueryWrapper<>(managers);
- return managersMapper.selectList(wrapper);
+ public List<Managers> findList(Managers pageWrap) {
+ MPJLambdaWrapper<Managers> queryWrapper = new MPJLambdaWrapper<>();
+ pageWrap.setIsdeleted(Constants.ZERO);
+ queryWrapper.selectAll(Managers.class )
+ .selectAs(Member::getPhone,Managers::getMemberPhone)
+ .selectAs(Member::getName,Managers::getMemberName)
+ .selectAs(Member::getCompanyName,Managers::getCompanyName)
+ .selectAs(SystemUser::getUsername,Managers::getEditorName)
+ .leftJoin(Member.class,Member::getId,Managers::getMemberId)
+ .leftJoin(SystemUser.class,SystemUser::getId,Managers::getEditor)
+ .eq(pageWrap.getId() != null, Managers::getId, pageWrap.getId())
+ .eq(pageWrap.getCreator() != null, Managers::getCreator, pageWrap.getCreator())
+ .ge(pageWrap.getCreateDate() != null, Managers::getCreateDate, Utils.Date.getStart(pageWrap.getCreateDate()))
+ .le(pageWrap.getCreateDate() != null, Managers::getCreateDate, Utils.Date.getEnd(pageWrap.getCreateDate()))
+ .eq(pageWrap.getEditor() != null, Managers::getEditor, pageWrap.getEditor())
+ .ge(pageWrap.getEditDate() != null, Managers::getEditDate, Utils.Date.getStart(pageWrap.getEditDate()))
+ .le(pageWrap.getEditDate() != null, Managers::getEditDate, Utils.Date.getEnd(pageWrap.getEditDate()))
+ .eq(pageWrap.getIsdeleted() != null, Managers::getIsdeleted, pageWrap.getIsdeleted())
+ .eq(pageWrap.getCategoryId() != null, Managers::getCategoryId, pageWrap.getCategoryId())
+ .eq(pageWrap.getRemark() != null, Managers::getRemark, pageWrap.getRemark())
+ .eq(pageWrap.getStatus() != null, Managers::getStatus, pageWrap.getStatus())
+ .eq(pageWrap.getSortnum() != null, Managers::getSortnum, pageWrap.getSortnum())
+ .eq(pageWrap.getType() != null, Managers::getType, pageWrap.getType())
+ .eq(pageWrap.getMemberId() != null, Managers::getMemberId, pageWrap.getMemberId())
+ .like(pageWrap.getMemberName() != null, Member::getName, pageWrap.getMemberName());
+ if (pageWrap.getKeyword() != null) {
+ queryWrapper.and( ms->ms.like(Member::getName,pageWrap.getKeyword())
+ .or().like(Member::getPhone,pageWrap.getKeyword())
+ .or().like(Member::getCompanyName,pageWrap .getKeyword()));
+ }
+ queryWrapper.orderByDesc(Managers::getEditDate);
+ return managersMapper.selectJoinList( Managers.class, queryWrapper);
}
@Override
public PageData<Managers> findPage(PageWrap<Managers> pageWrap) {
IPage<Managers> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
- QueryWrapper<Managers> queryWrapper = new QueryWrapper<>();
+ MPJLambdaWrapper<Managers> queryWrapper = new MPJLambdaWrapper<>();
Utils.MP.blankToNull(pageWrap.getModel());
- queryWrapper.lambda()
+ pageWrap.getModel().setIsdeleted(Constants.ZERO);
+ queryWrapper.selectAll(Managers.class )
+ .selectAs(Member::getPhone,Managers::getMemberPhone)
+ .selectAs(Member::getName,Managers::getMemberName)
+ .selectAs(Member::getCompanyName,Managers::getCompanyName)
+ .selectAs(SystemUser::getUsername,Managers::getEditorName)
+ .leftJoin(Member.class,Member::getId,Managers::getMemberId)
+ .leftJoin(SystemUser.class,SystemUser::getId,Managers::getEditor)
.eq(pageWrap.getModel().getId() != null, Managers::getId, pageWrap.getModel().getId())
.eq(pageWrap.getModel().getCreator() != null, Managers::getCreator, pageWrap.getModel().getCreator())
.ge(pageWrap.getModel().getCreateDate() != null, Managers::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()))
@@ -104,15 +183,14 @@
.eq(pageWrap.getModel().getSortnum() != null, Managers::getSortnum, pageWrap.getModel().getSortnum())
.eq(pageWrap.getModel().getType() != null, Managers::getType, pageWrap.getModel().getType())
.eq(pageWrap.getModel().getMemberId() != null, Managers::getMemberId, pageWrap.getModel().getMemberId())
- ;
- for(PageWrap.SortData sortData: pageWrap.getSorts()) {
- if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
- queryWrapper.orderByDesc(sortData.getProperty());
- } else {
- queryWrapper.orderByAsc(sortData.getProperty());
- }
+ .like(pageWrap.getModel().getMemberName() != null, Member::getName, pageWrap.getModel().getMemberName());
+ if (pageWrap.getModel().getKeyword() != null) {
+ queryWrapper.and( ms->ms.like(Member::getName,pageWrap.getModel().getKeyword())
+ .or().like(Member::getPhone,pageWrap.getModel().getKeyword())
+ .or().like(Member::getCompanyName,pageWrap.getModel().getKeyword()));
}
- return PageData.from(managersMapper.selectPage(page, queryWrapper));
+ queryWrapper.orderByDesc(Managers::getEditDate);
+ return PageData.from(managersMapper.selectJoinPage(page,Managers.class, queryWrapper));
}
@Override
diff --git a/server/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index 306647d..b35e7e0 100644
--- a/server/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/server/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -109,9 +109,53 @@
}
@Override
- public List<Member> findList(Member member) {
- QueryWrapper<Member> wrapper = new QueryWrapper<>(member);
- return memberMapper.selectList(wrapper);
+ public List<Member> findList(Member pageWrap) {
+ pageWrap.setIsdeleted(Constants.ZERO);
+ MPJLambdaWrapper<Member> queryWrapper = new MPJLambdaWrapper<>();
+ queryWrapper. selectAll(Member.class)
+ .selectAs(SystemUser::getUsername,Member::getEditorName)
+ .leftJoin(SystemUser.class,SystemUser::getId,Member::getEditor)
+ .eq(pageWrap.getId() != null, Member::getId, pageWrap.getId())
+ .eq(pageWrap.getCreator() != null, Member::getCreator, pageWrap.getCreator())
+ .ge(pageWrap.getCreateDate() != null, Member::getCreateDate, Utils.Date.getStart(pageWrap.getCreateDate()))
+ .le(pageWrap.getCreateDate() != null, Member::getCreateDate, Utils.Date.getEnd(pageWrap.getCreateDate()))
+ .eq(pageWrap.getEditor() != null, Member::getEditor, pageWrap.getEditor())
+ .ge(pageWrap.getEditDate() != null, Member::getEditDate, Utils.Date.getStart(pageWrap.getEditDate()))
+ .le(pageWrap.getEditDate() != null, Member::getEditDate, Utils.Date.getEnd(pageWrap.getEditDate()))
+ .eq(pageWrap.getIsdeleted() != null, Member::getIsdeleted, pageWrap.getIsdeleted())
+ .like(pageWrap.getName() != null, Member::getName, pageWrap.getName())
+ .eq(pageWrap.getRemark() != null, Member::getRemark, pageWrap.getRemark())
+ .eq(pageWrap.getStatus() != null, Member::getStatus, pageWrap.getStatus())
+ .eq(pageWrap.getSortnum() != null, Member::getSortnum, pageWrap.getSortnum())
+ .eq(pageWrap.getImgurl() != null, Member::getImgurl, pageWrap.getImgurl())
+ .eq(pageWrap.getType() != null, Member::getType, pageWrap.getType())
+ .eq(pageWrap.getCompanyName() != null, Member::getCompanyName, pageWrap.getCompanyName())
+ .eq(pageWrap.getPhone() != null, Member::getPhone, pageWrap.getPhone())
+ .eq(pageWrap.getEmail() != null, Member::getEmail, pageWrap.getEmail())
+ .eq(pageWrap.getSex() != null, Member::getSex, pageWrap.getSex())
+ .eq(pageWrap.getCode() != null, Member::getCode, pageWrap.getCode())
+ .eq(pageWrap.getQwId() != null, Member::getQwId, pageWrap.getQwId())
+ .eq(pageWrap.getIdcard() != null, Member::getIdcard, pageWrap.getIdcard())
+ .ge(pageWrap.getLastLoginDate() != null, Member::getLastLoginDate, Utils.Date.getStart(pageWrap.getLastLoginDate()))
+ .le(pageWrap.getLastLoginDate() != null, Member::getLastLoginDate, Utils.Date.getEnd(pageWrap.getLastLoginDate()))
+ .eq(pageWrap.getLoginCount() != null, Member::getLoginCount, pageWrap.getLoginCount());
+ if (pageWrap.getKeyword() != null) {
+ queryWrapper.and( ms->ms.like(Member::getName,pageWrap.getKeyword())
+ .or().like(Member::getPhone,pageWrap.getKeyword())
+ .or().like(Member::getCompanyName,pageWrap.getKeyword()));
+ }
+ if(pageWrap.getIncludeChild()!=null &&pageWrap.getIncludeChild() ){
+ if(pageWrap.getCompanyId() !=null){
+ //濡傛灉鍖呭惈涓嬬骇缁勭粐
+ Company company = companyMapper.selectById(pageWrap.getCompanyId());//鏌ヨ缁勭粐淇℃伅
+ queryWrapper.exists("select (cm.id) from company_member cm where cm.company_id_path like '"+company.getIdPath()+"%' and cm.member_id=t.id");
+// queryWrapper.likeRight(Company::getIdPath,company.getIdPath());
+ }
+ }else{
+ //涓嶅寘鍚笅绾х粍缁�
+ queryWrapper.exists(pageWrap.getCompanyId()!=null,"select (cm.id) from company_member cm where cm.company_id='"+pageWrap.getCompanyId()+"' and cm.member_id=t.id");
+ }
+ return memberMapper.selectJoinList(Member.class,queryWrapper);
}
@Override
@@ -137,7 +181,7 @@
.eq(pageWrap.getModel().getSortnum() != null, Member::getSortnum, pageWrap.getModel().getSortnum())
.eq(pageWrap.getModel().getImgurl() != null, Member::getImgurl, pageWrap.getModel().getImgurl())
.eq(pageWrap.getModel().getType() != null, Member::getType, pageWrap.getModel().getType())
-// .eq(pageWrap.getModel().getCompanyId() != null, Member::getCompanyId, pageWrap.getModel().getCompanyId())
+ .eq(pageWrap.getModel().getCompanyName() != null, Member::getCompanyName, pageWrap.getModel().getCompanyName())
.eq(pageWrap.getModel().getPhone() != null, Member::getPhone, pageWrap.getModel().getPhone())
.eq(pageWrap.getModel().getEmail() != null, Member::getEmail, pageWrap.getModel().getEmail())
.eq(pageWrap.getModel().getSex() != null, Member::getSex, pageWrap.getModel().getSex())
@@ -161,7 +205,7 @@
}
}else{
//涓嶅寘鍚笅绾х粍缁�
- queryWrapper.exists("select (cm.id) from company_member cm where cm.company_id='"+pageWrap.getModel().getCompanyId()+"' and cm.member_id=t.id");
+ queryWrapper.exists(pageWrap.getModel().getCompanyId()!=null,"select (cm.id) from company_member cm where cm.company_id='"+pageWrap.getModel().getCompanyId()+"' and cm.member_id=t.id");
}
queryWrapper.orderByAsc(Member::getCreateDate);
return PageData.from(memberMapper.selectJoinPage(page,Member.class, queryWrapper));
--
Gitblit v1.9.3