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