Parcourir la source

Merge branch 'liuheng' into dev

刘恒 il y a 1 an
Parent
commit
a4e1e07427

+ 4 - 2
src/api/index.ts

@@ -14,9 +14,10 @@ import operationApi from './modules/operation.ts'
 import menuApi from './modules/menu.ts'
 import menuApi from './modules/menu.ts'
 import commonApi from "./modules/common.ts";
 import commonApi from "./modules/common.ts";
 import teamApi from "@/api/modules/team.ts";
 import teamApi from "@/api/modules/team.ts";
+
+import advertisementApi from "@/api/modules/advertisement.ts"
 import representativeApi from "@/api/modules/representative.ts";
 import representativeApi from "@/api/modules/representative.ts";
 import contentApi from "@/api/modules/content.ts";
 import contentApi from "@/api/modules/content.ts";
-import advertisementApi from "@/api/modules/advertisement.ts"
 // import { useRouter } from 'vue-router'
 // import { useRouter } from 'vue-router'
 // const router = useRouter()
 // const router = useRouter()
 import router from "@/router"
 import router from "@/router"
@@ -116,6 +117,7 @@ const api = {
   representativeApi: representativeApi(axiosInstance),
   representativeApi: representativeApi(axiosInstance),
   lotteryApi: lotteryApi(axiosInstance),
   lotteryApi: lotteryApi(axiosInstance),
   contentApi:contentApi(axiosInstance),
   contentApi:contentApi(axiosInstance),
-  advertisementApi:advertisementApi(axiosInstance)
+  advertisementApi:advertisementApi(axiosInstance),
+  lotteryApi: lotteryApi(axiosInstance),
 }
 }
 export default api
 export default api

+ 2 - 2
src/settings.default.ts

@@ -10,7 +10,7 @@ const globalSettingsDefault: RecursiveRequired<Settings.all> = {
     enablePermission: false,
     enablePermission: false,
     enableProgress: true,
     enableProgress: true,
     enableDynamicTitle: false,
     enableDynamicTitle: false,
-    routeBaseOn: 'frontend',
+    routeBaseOn: 'backend',
   },
   },
   home: {
   home: {
     enable: true,
     enable: true,
@@ -21,7 +21,7 @@ const globalSettingsDefault: RecursiveRequired<Settings.all> = {
     enableMobileAdaptation: false,
     enableMobileAdaptation: false,
   },
   },
   menu: {
   menu: {
-    baseOn: 'frontend',
+    baseOn: 'backend',
     mode: 'side',
     mode: 'side',
     switchMainMenuAndPageJump: false,
     switchMainMenuAndPageJump: false,
     subMenuUniqueOpened: true,
     subMenuUniqueOpened: true,

+ 57 - 22
src/views/personnel/memberManagement.vue

@@ -61,10 +61,10 @@
       >
       >
         <template v-slot:table-title-btn>
         <template v-slot:table-title-btn>
           <div>
           <div>
-            <el-select v-model="status" style="width: 100px;">
+            <el-select v-model="status" style="width: 100px;" @change="statusChange()">
               <!-- status -->
               <!-- status -->
               <el-option
               <el-option
-                :label="'全部'" :value="'all'"
+                :label="'全部'" :value="'-1'"
               ></el-option>
               ></el-option>
               <el-option v-for="item in statusList" :key="item.id"
               <el-option v-for="item in statusList" :key="item.id"
                 :label="item.label" :value="item.value"
                 :label="item.label" :value="item.value"
@@ -86,9 +86,9 @@
               </el-button>
               </el-button>
               <template #dropdown>
               <template #dropdown>
                 <el-dropdown-menu>
                 <el-dropdown-menu>
-                  <el-dropdown-item>批量删除</el-dropdown-item>
-                  <el-dropdown-item>批量禁用</el-dropdown-item>
-                  <el-dropdown-item>批量启用</el-dropdown-item>
+                  <el-dropdown-item :disabled="checkTableIdList.length>0  ? false:true" v-on:click="delsUser">批量删除</el-dropdown-item>
+                  <!-- <el-dropdown-item>批量禁用</el-dropdown-item>
+                  <el-dropdown-item>批量启用</el-dropdown-item> -->
                 </el-dropdown-menu>
                 </el-dropdown-menu>
               </template>
               </template>
             </el-dropdown>
             </el-dropdown>
@@ -269,7 +269,7 @@ onMounted(async () => {
 
 
 //状态字典
 //状态字典
 const statusList = ref<dictType[]>([]);
 const statusList = ref<dictType[]>([]);
-const status=ref('all')
+const status=ref('-1')
 //机构列表
 //机构列表
 
 
 type tableType = {
 type tableType = {
@@ -331,19 +331,9 @@ function expandTree(){
   }
   }
 }
 }
 
 
-const formAccessibility = reactive({
-  fullName: "",
-  firstName: "",
-  lastName: "",
-  phone: "",
-});
+
 const ruleFormRef = ref<FormInstance>();
 const ruleFormRef = ref<FormInstance>();
-const form = reactive({
-  name: "",
-  role: "",
-  password: "",
-  phone: "",
-});
+
 
 
 interface RuleForm {
 interface RuleForm {
   name: string;
   name: string;
@@ -439,8 +429,17 @@ const pageInfo =reactive( {
 });
 });
 function showAllMember(){
 function showAllMember(){
   deptItem.value={}
   deptItem.value={}
+  pageInfo.pageNum = 1;
+  pageInfo.pageSize = 10;
+  getUserList()
+}
+
+function statusChange(){
+  pageInfo.pageNum = 1;
+  pageInfo.pageSize = 10;
   getUserList()
   getUserList()
 }
 }
+
 const getList = (item: PageInfo) => {
 const getList = (item: PageInfo) => {
   pageInfo.pageNum = item.pageNum;
   pageInfo.pageNum = item.pageNum;
   pageInfo.pageSize = item.pageSize;
   pageInfo.pageSize = item.pageSize;
@@ -450,7 +449,9 @@ const getList = (item: PageInfo) => {
 const getUserList= () => {
 const getUserList= () => {
   api.userApi.memberList({
   api.userApi.memberList({
     ...pageInfo,
     ...pageInfo,
-    deptId:deptItem.value.id
+    deptId:deptItem.value.id,
+    status:status.value,
+    isMember:1
   }).then((res:any)=>{
   }).then((res:any)=>{
     
     
     if(res.code===200){
     if(res.code===200){
@@ -460,7 +461,7 @@ const getUserList= () => {
   })
   })
 };
 };
 const editor = (item: any) => {
 const editor = (item: any) => {
-  console.log(item)
+ 
   router.push({
   router.push({
     path:"/personnel/member/memberMessage",
     path:"/personnel/member/memberMessage",
     query:{
     query:{
@@ -647,13 +648,13 @@ function delUser(item:any) {
           .then(() => {
           .then(() => {
             api.userApi
             api.userApi
               .userDelete({
               .userDelete({
-                id: [operationForm.value.id],
+                ids: [operationForm.value.id],
                 
                 
               })
               })
               .then((res: any) => {
               .then((res: any) => {
                 if(res.code==200){
                 if(res.code==200){
                   ElMessage.success(res.msg)
                   ElMessage.success(res.msg)
-                  
+                  getUserList()
                 }
                 }
               });
               });
             // console.log(123);
             // console.log(123);
@@ -664,6 +665,40 @@ function delUser(item:any) {
       }
       }
     });
     });
 }
 }
+//批量删除成员
+function delsUser() {
+
+    ElMessageBox.confirm(
+      "账号删除后,该账号将无法使用访问本企业,请确定是否删除 ",
+      "确认要删除账号吗?",
+      {
+        confirmButtonText: "确认删除",
+        cancelButtonText: "取消",
+        type: "warning",
+        center:true
+      }
+    )
+      .then(() => {
+        api.userApi
+          .userDelete({
+            ids: checkTableIdList.value,
+
+          })
+          .then((res: any) => {
+            if(res.code==200){
+              ElMessage.success(res.msg)
+              
+            }
+          });
+        // console.log(123);
+      })
+      .catch(() => {
+        ElMessage.warning("用户取消操作");
+      });
+      
+    
+}
+
 //确认弹框提交信息
 //确认弹框提交信息
 const receiveInfo = ref<transfer>({});
 const receiveInfo = ref<transfer>({});
 function confirmDialogInfo(item: any) {
 function confirmDialogInfo(item: any) {

+ 169 - 22
src/views/personnel/modules/addOperation.vue

@@ -433,8 +433,8 @@
                   <el-icon class="btn-icon" @click="imageView(1)"
                   <el-icon class="btn-icon" @click="imageView(1)"
                     ><View
                     ><View
                   /></el-icon>
                   /></el-icon>
-                  <el-icon class="btn-icon"><Download /></el-icon>
-                  <el-icon class="btn-icon"><Delete /></el-icon>
+                  <el-icon class="btn-icon" @click="downloadImage(1)"><Download /></el-icon>
+                  <el-icon class="btn-icon" @click="deleteImage(1)"><Delete /></el-icon>
                 </div>
                 </div>
               </div>
               </div>
             </el-form-item>
             </el-form-item>
@@ -470,8 +470,8 @@
                   <el-icon class="btn-icon" @click="imageView(2)"
                   <el-icon class="btn-icon" @click="imageView(2)"
                     ><View
                     ><View
                   /></el-icon>
                   /></el-icon>
-                  <el-icon class="btn-icon"><Download /></el-icon>
-                  <el-icon class="btn-icon"><Delete /></el-icon>
+                  <el-icon class="btn-icon" @click="downloadImage(2)"><Download /></el-icon>
+                  <el-icon class="btn-icon" @click="deleteImage(2)"><Delete /></el-icon>
                 </div>
                 </div>
               </div>
               </div>
             </el-form-item>
             </el-form-item>
@@ -507,8 +507,8 @@
                   <el-icon class="btn-icon" @click="imageView(3)"
                   <el-icon class="btn-icon" @click="imageView(3)"
                     ><View
                     ><View
                   /></el-icon>
                   /></el-icon>
-                  <el-icon class="btn-icon"><Download /></el-icon>
-                  <el-icon class="btn-icon"><Delete /></el-icon>
+                  <el-icon class="btn-icon" @click="downloadImage(3)"><Download /></el-icon>
+                  <el-icon class="btn-icon" @click="deleteImage(3)"><Delete /></el-icon>
                 </div>
                 </div>
               </div>
               </div>
             </el-form-item>
             </el-form-item>
@@ -544,8 +544,8 @@
                   <el-icon class="btn-icon" @click="imageView(4)"
                   <el-icon class="btn-icon" @click="imageView(4)"
                     ><View
                     ><View
                   /></el-icon>
                   /></el-icon>
-                  <el-icon class="btn-icon"><Download /></el-icon>
-                  <el-icon class="btn-icon"><Delete /></el-icon>
+                  <el-icon class="btn-icon" @click="downloadImage(4)"><Download /></el-icon>
+                  <el-icon class="btn-icon" @click="deleteImage(4)"><Delete /></el-icon>
                 </div>
                 </div>
               </div>
               </div>
             </el-form-item>
             </el-form-item>
@@ -581,8 +581,8 @@
                   <el-icon class="btn-icon" @click="imageView(5)"
                   <el-icon class="btn-icon" @click="imageView(5)"
                     ><View
                     ><View
                   /></el-icon>
                   /></el-icon>
-                  <el-icon class="btn-icon"><Download /></el-icon>
-                  <el-icon class="btn-icon"><Delete /></el-icon>
+                  <el-icon class="btn-icon" @click="downloadImage(5)"><Download /></el-icon>
+                  <el-icon class="btn-icon" @click="deleteImage(5)"><Delete /></el-icon>
                 </div>
                 </div>
               </div>
               </div>
             </el-form-item>
             </el-form-item>
@@ -618,8 +618,8 @@
                   <el-icon class="btn-icon" @click="imageView(6)"
                   <el-icon class="btn-icon" @click="imageView(6)"
                     ><View
                     ><View
                   /></el-icon>
                   /></el-icon>
-                  <el-icon class="btn-icon"><Download /></el-icon>
-                  <el-icon class="btn-icon"><Delete /></el-icon>
+                  <el-icon class="btn-icon" @click="downloadImage(6)"><Download /></el-icon>
+                  <el-icon class="btn-icon" @click="deleteImage(6)"><Delete /></el-icon>
                 </div>
                 </div>
               </div>
               </div>
             </el-form-item>
             </el-form-item>
@@ -655,8 +655,8 @@
                   <el-icon class="btn-icon" @click="imageView(7)"
                   <el-icon class="btn-icon" @click="imageView(7)"
                     ><View
                     ><View
                   /></el-icon>
                   /></el-icon>
-                  <el-icon class="btn-icon"><Download /></el-icon>
-                  <el-icon class="btn-icon"><Delete /></el-icon>
+                  <el-icon class="btn-icon" @click="downloadImage(7)"><Download /></el-icon>
+                  <el-icon class="btn-icon" @click="deleteImage(7)"><Delete /></el-icon>
                 </div>
                 </div>
               </div>
               </div>
             </el-form-item>
             </el-form-item>
@@ -727,6 +727,71 @@ onMounted(async () => {
       // console.log(res);
       // console.log(res);
       if (res.code === 200) {
       if (res.code === 200) {
         operationForm.value = res.data;
         operationForm.value = res.data;
+        let formData = res.data
+        
+        if(formData.fileList) {
+          
+          
+          let sfz1 = formData.fileList.find(item => item.fileType == 'sfz1')
+          let sfz2 = formData.fileList.find(item => item.fileType == 'sfz2')
+          
+          let qualification = formData.fileList.find(item => item.fileType == 'bankCard')
+          let contractImg = formData.fileList.find(item => item.fileType == 'contract')
+          let applicantImg = formData.fileList.find(item => item.fileType == 'applicant')
+          let salaryTable = formData.fileList.find(item => item.fileType == 'salaryTable')
+          let leaveTable = formData.fileList.find(item => item.fileType == 'leaveTable')
+         
+         
+         
+
+          if(sfz1) {
+            operationForm.value.sfz1 = sfz1.id
+            IDCardFrontName.value = sfz1.fileName
+            IDCardFront.value = sfz1.fileUrl
+            sfz1.value=sfz1.id
+          }
+          if(sfz2) {
+            operationForm.value.sfz2 = sfz2.id
+            IDCardBackName.value = sfz2.fileName
+            IDCardBack.value = sfz2.fileUrl
+            sfz2.value=sfz2.id
+
+          }
+          if(qualification) {
+            operationForm.value.bankCard = qualification.id
+            bankName.value = qualification.fileName
+            bankSize.value = qualification.fileUrl
+            bankCard.value=qualification.id
+          }
+          if(contractImg) {
+            operationForm.value.contract = contract.id
+            contractName.value = contractImg.fileName
+            contract.value = contractImg.fileUrl
+            contractId.value=ontract.id
+
+
+          }
+          if(applicantImg) {
+            operationForm.value.applicant = applicant.id
+            applicantName.value = applicantImg.fileName
+            applicant.value = applicantImg.fileUrl
+            applicantId.value=applicant.id
+
+          }
+          if(salaryTable) {
+            operationForm.value.salaryTable = salaryTable.id
+            decidePayName.value = salaryTable.fileName
+            decidePay.value = salaryTable.fileUrl
+            salaryTable.value=salaryTable.id
+
+          }
+          if(leaveTable) {
+            operationForm.value.leaveTable = leaveTable.id
+            dimissionName.value = leaveTable.fileName
+            dimission.value = leaveTable.fileUrl
+            leaveTable.value = leaveTable.id;
+          }
+        }
         if(res.data.address==null){
         if(res.data.address==null){
           operationForm.value.address=[]
           operationForm.value.address=[]
         }
         }
@@ -901,10 +966,11 @@ function deptChange(e: any) {
   // console.log(e)
   // console.log(e)
   if (e != undefined) {
   if (e != undefined) {
     let deptId = e[e?.length - 1];
     let deptId = e[e?.length - 1];
-    operationForm.deptId = deptId;
+    operationForm.value.deptId = deptId;
   } else {
   } else {
-    operationForm.deptId = "";
+    operationForm.value.deptId = "";
   }
   }
+  // console.log(operationForm.value.deptId)
 }
 }
 
 
 //数组去重
 //数组去重
@@ -966,6 +1032,87 @@ const uploadImage = (file, type) => {
   });
   });
 };
 };
 
 
+
+// 图片下载
+const download = (url, name) => {
+  let image = new Image();
+  // 解决跨域 Canvas 污染问题
+  image.setAttribute("crossOrigin", "anonymous");
+  image.onload = function () {
+    let canvas = document.createElement("canvas");
+    canvas.width = image.width;
+    canvas.height = image.height;
+    let context = canvas.getContext("2d");
+    context.drawImage(image, 0, 0, image.width, image.height);
+    let url = canvas.toDataURL("image/png"); //得到图片的base64编码数据
+    let a = document.createElement("a"); // 生成一个a元素
+    let event = new MouseEvent("click"); // 创建一个单击事件
+    a.download = name; // 设置图片名称
+    a.href = url; // 将生成的URL设置为a.href属性
+    a.dispatchEvent(event); // 触发a的单击事件
+  }
+  image.src = url
+}
+
+const downloadImage = (type) => {
+  switch (type) {
+    case 1:
+      download(IDCardFront.value,IDCardFrontName.value)
+      break;
+    case 2:
+      download(IDCardBack.value,IDCardBackName.value)
+      break;
+    case 3:
+      download(bankSize.value,bankName.value)
+      break;
+    case 4:
+      download(contract.value,contractName.value)
+      break;
+    case 5:
+      download(applicant.value,applicantName.value)
+      break;
+    case 6:
+      download(decidePay.value,decidePayName.value)
+      break;
+    case 7:
+      download(dimission.value,dimissionName.value)
+      break;
+  }
+}
+// 图片删除
+const deleteImage = (type) => {
+  switch (type) {
+    case 1:
+      IDCardFront.value = ''
+      IDCardFrontName.value = ''
+      break;
+    case 2:
+      IDCardBack.value = ''
+      IDCardBackName.value = ''
+      break;
+    case 3:
+      bankSize.value = ''
+      bankName.value = ''
+      break;
+    case 4:
+      contract.value = ''
+      contractName.value = ''
+      break;
+    case 5:
+      applicant.value = ''
+      applicantName.value = ''
+      break;
+    case 6:
+      decidePay.value = ''
+      decidePayName.value = ''
+      break;
+    case 7:
+      dimission.value = ''
+      dimissionName.value = ''
+      break;
+  }
+}
+
 // 人事档案
 // 人事档案
 let recordShow = ref(false);
 let recordShow = ref(false);
 
 
@@ -1010,13 +1157,13 @@ const onSubmit = async (OperationFormRef: FormInstance, type: number) => {
         province:operationForm.value.address.length?operationForm.value.address[0]:'',
         province:operationForm.value.address.length?operationForm.value.address[0]:'',
         city:operationForm.value.address.length?operationForm.value.address[1]:'',
         city:operationForm.value.address.length?operationForm.value.address[1]:'',
         district:operationForm.value.address.length?operationForm.value.address[2]:'',
         district:operationForm.value.address.length?operationForm.value.address[2]:'',
-        deptId:operationForm.value.deptId[operationForm.value.deptId.length-1],
+        deptId:operationForm.value.deptId,
         typeAttr:2,
         typeAttr:2,
         sfz1:sfz1.value,
         sfz1:sfz1.value,
         sfz2:sfz2.value,
         sfz2:sfz2.value,
         bankCard:bankCard.value,
         bankCard:bankCard.value,
-        contractId:contractId.value,
-        applicantId:applicantId.value,
+        contract:contractId.value,
+        applicant:applicantId.value,
         salaryTable:salaryTable.value,
         salaryTable:salaryTable.value,
         leaveTable:leaveTable.value,
         leaveTable:leaveTable.value,
         
         
@@ -1033,13 +1180,13 @@ const onSubmit = async (OperationFormRef: FormInstance, type: number) => {
         province:operationForm.value.address.length?operationForm.value.address[0]:'',
         province:operationForm.value.address.length?operationForm.value.address[0]:'',
         city:operationForm.value.address.length?operationForm.value.address[1]:'',
         city:operationForm.value.address.length?operationForm.value.address[1]:'',
         district:operationForm.value.address.length?operationForm.value.address[2]:'',
         district:operationForm.value.address.length?operationForm.value.address[2]:'',
-        deptId:operationForm.value.deptId[operationForm.value.deptId.length-1],
+        deptId:operationForm.value.deptId,
         typeAttr:2,
         typeAttr:2,
         sfz1:sfz1.value,
         sfz1:sfz1.value,
         sfz2:sfz2.value,
         sfz2:sfz2.value,
         bankCard:bankCard.value,
         bankCard:bankCard.value,
-        contractId:contractId.value,
-        applicantId:applicantId.value,
+        contract:contractId.value,
+        applicant:applicantId.value,
         salaryTable:salaryTable.value,
         salaryTable:salaryTable.value,
         leaveTable:leaveTable.value,
         leaveTable:leaveTable.value,
         id:operationForm.value.id
         id:operationForm.value.id

+ 50 - 1
src/views/personnel/modules/memberMessage.vue

@@ -764,6 +764,55 @@ onMounted(async () => {
       console.log(res);
       console.log(res);
       if (res.code === 200) {
       if (res.code === 200) {
         operationForm.value = res.data;
         operationForm.value = res.data;
+        let formData = res.data
+        
+        if(formData.fileList) {
+          
+          
+          let sfz1 = formData.fileList.find(item => item.fileType == 'sfz1')
+          let sfz2 = formData.fileList.find(item => item.fileType == 'sfz2')
+          
+          let qualification = formData.fileList.find(item => item.fileType == 'bankCard')
+          let contractImg = formData.fileList.find(item => item.fileType == 'contract')
+          let applicantImg = formData.fileList.find(item => item.fileType == 'applicant')
+          let salaryTable = formData.fileList.find(item => item.fileType == 'salaryTable')
+          let leaveTable = formData.fileList.find(item => item.fileType == 'leaveTable')
+          if(sfz1) {
+            operationForm.value.sfz1 = sfz1.id
+            IDCardFrontName.value = sfz1.fileName
+            IDCardFront.value = sfz1.fileUrl
+          }
+          if(sfz2) {
+            operationForm.value.sfz2 = sfz2.id
+            IDCardBackName.value = sfz2.fileName
+            IDCardBack.value = sfz2.fileUrl
+          }
+          if(qualification) {
+            operationForm.value.qualification = qualification.id
+            bankName.value = qualification.fileName
+            bankSize.value = qualification.fileUrl
+          }
+          if(contractImg) {
+            operationForm.value.contract = contract.id
+            contractName.value = contractImg.fileName
+            contract.value = contractImg.fileUrl
+          }
+          if(applicantImg) {
+            operationForm.value.applicant = applicant.id
+            applicantName.value = applicantImg.fileName
+            applicant.value = applicantImg.fileUrl
+          }
+          if(salaryTable) {
+            operationForm.value.salaryTable = salaryTable.id
+            decidePayName.value = salaryTable.fileName
+            decidePay.value = salaryTable.fileUrl
+          }
+          if(leaveTable) {
+            operationForm.value.leaveTable = leaveTable.id
+            dimissionName.value = leaveTable.fileName
+            dimission.value = leaveTable.fileUrl
+          }
+        }
       }
       }
     });
     });
 });
 });
@@ -948,7 +997,7 @@ const uploadImage = (file: any, type: number) => {
   // params.append("multipartFile", files);
   // params.append("multipartFile", files);
   // params.append("type", "image");
   // params.append("type", "image");
   api.areaApi.fileUpload(params).then((res: any) => {
   api.areaApi.fileUpload(params).then((res: any) => {
-    console.log(res);
+    
     if (res.code === 200) {
     if (res.code === 200) {
       switch (type) {
       switch (type) {
         case 1:
         case 1: