cuiqian2004
2024-11-04 46a69ec5c8c6dde5249832d46659f988fe16ec3f
pages/selpsn/index.vue
@@ -1,50 +1,8 @@
<style>
   .content {
      width: 100vw;
      height: 93vh;
      background: #EAEAEA;
      padding: 14rpx 0rpx 0rpx 0rpx;
   }
   input{
      border: 1px solid #d5d5d5;
      width: 77%;
      height: 80rpx;
      border-radius: 60rpx!important;
      padding: 0 60rpx 0 66rpx;
      margin: 0rpx 20rpx 10rpx 20rpx;
      background: #FFF;
   }
   .dv_query_body {
       height: 91%;
      overflow: auto;
       background-color: #fff;
       border: 2rpx solid #d5d5d5;
       padding: 14rpx;
   }
   .psn {
       margin: 0 12rpx 12rpx 0;
       padding: 8rpx 20rpx 10rpx;
       background-color: #55a1dd;
       font-size: 30rpx;
       color: #fff;
       border-radius: 20rpx;
       display: inline-block;
       cursor: pointer;
   }
   button.btn_sava {
      margin-top: 47rpx;
      padding: 20rpx;
      line-height: 1.2;
      background: #27A6E1;
      border: none;
      color: #fff;
   }
</style>
<template>
   <view class="content">
   <view class="uni-page-selpsn">
      <view style="height:90%;">
         <input type="text" class="txt_search" v-model="searchVal" @input="onkeyup" placeholder="请输入人员姓名或简拼进行查询" >
         <input type="text" class="txt_search" v-model="searchVal" @input="onkeyup"
            :placeholder="translate('input_user_name_jp_query')">
         <!-- <div class="dv_query_body" >
            <div class="psn">
               <checkbox-group class="ischeck" @change="onchange" data-ischeck="false" data-index="0" >
@@ -57,7 +15,7 @@
         </div> -->
         <div class="dv_query_body">
            <div class="psn" v-for="(psn,index) in data">
               <checkbox-group class="ischeck" @change="onchange" :data-ischeck="psn.ischeck" :data-index="index" >
               <checkbox-group class="ischeck" @change="onchange" :data-ischeck="psn.ischeck" :data-index="index">
                  <label>
                     <checkbox :checked="psn.ischeck" />
                     <text>{{psn.Name}}</text>
@@ -65,103 +23,186 @@
               </checkbox-group>
            </div>
         </div>
         <button type="default" @tap="sava" class="btn_sava">确定</button>
         <button type="default" @tap="sava" class="btn_sava">{{translateSys("ok")}}</button>
      </view>
   </view>
</template>
</template>
<script>
   import {
      querySelPsn
   } from "@/api/index.js"
   export default {
      data() {
         return {
            title: '选择人员',
            mulit:'',
            param:{},
            searchVal:'',
            ischecked:false,
            data:[]
            title: this.translate('select_user'),
            mulit: '',
            param: {},
            searchVal: '',
            ischecked: false,
            data: []
         }
      },
      onLoad(options) {
         console.log(options);
         var param = JSON.parse(options.param);
         this.$data.param=param;
         this.$data.mulit=options.mulit;
         this.$data.param = param;
         this.$data.mulit = options.mulit;
         // console.log(this.$data.param);
      },
      methods: {
         setData(obj) {
            let that = this;
            let keys = [];
            let val, data;
            Object.keys(obj).forEach(function(key) {
               keys = key.split(".");
               val = obj[key];
               data = that.$data;
               keys.forEach(function(key2, index) {
                  if (index + 1 == keys.length) {
                     that.$set(data, key2, val);
                  } else {
                     if (!data[key2]) {
                        that.$set(data, key2, {});
                     }
                  }
                  data = data[key2];
               });
            });
         },
         onkeyup(e) {
            console.log(e);
            console.log(this.$data.searchVal);
            if(this.$data.searchVal){
               var datainfo ={ jp: this.$data.searchVal, dept_id: '' };
               // console.log(datainfo);
               this.$store.dispatch('querySelpsn',datainfo).then(success=>{
                  console.log(success);
                  if (success.code=='00000') { //Mobox2
                     for(var i in success.data){
                        success.data[i].ischeck=false;
                     }
                     this.$data.data = success.data;
                  } else if(success.err_code == 0){ //Mobox3
                     var json =[];
                     for(var i in success.result){
            if (this.$data.searchVal) {
               var datainfo = {
                  jp: this.$data.searchVal,
                  dept_id: ''
               };
               querySelPsn(datainfo).then(res => {
                     const result = res || []
                     var json = [];
                     for (var i in result) {
                        json.push({
                           Login: success.result[i].login,
                           Name: success.result[i].name,
                           NamePY: success.result[i].name_py,
                           Sex: success.result[i].gender,
                           State: success.result[i].status,
                           Level: success.result[i].level,
                           Login: result[i].login,
                           Name: result[i].name,
                           NamePY: result[i].name_py,
                           Sex: result[i].gender,
                           State: result[i].status,
                           Level: result[i].level,
                           Depart: "",
                           Unit: "",
                           ischeck:false
                           ischeck: false
                        })
                     }
                     this.$data.data = json;
                  } else{
                     uni.showModal({title:"错误",content:success.msg?success.msg:success.err_msg,showCancel:false,confirmText:"取消"});
                  }
               }).catch(ex=>{
                  // console.log(ex);
                  uni.showModal({title:"错误",content:ex.errMsg,showCancel:false,confirmText:"取消"});
               });
            } else
                  })
                  .catch(ex => {
                     // console.log(ex);
                     uni.showModal({
                        title: this.translateSys("error"),
                        content: ex.errMsg,
                        showCancel: false,
                        confirmText: this.translateSys("cancel")
                     });
                  });
            } else
               this.$data.data = [];
         },
         onchange(e) {
            // console.log(e.target);
            var data = this.$data.data;
            this.$data.data=[];
            if(this.$data.mulit=="false"){
               for(var i in data){
                  data[i].ischeck=false;
            this.$data.data = [];
            if (this.$data.mulit == "false") {
               for (var i in data) {
                  data[i].ischeck = false;
               }
            }
            data[e.target.dataset.index].ischeck=e.target.dataset.ischeck?false:true
            this.$data.data=data;
            data[e.target.dataset.index].ischeck = e.target.dataset.ischeck ? false : true
            this.$data.data = data;
         },
         sava(){ //点击功能点跳转页面
         sava() { //点击功能点跳转页面
            var data = [];
            for(var i in this.$data.data){
               if(this.$data.data[i].ischeck==true){
            for (var i in this.$data.data) {
               if (this.$data.data[i].ischeck == true) {
                  data.push(this.$data.data[i]);
               }
            }
            if(data.length==0){
               uni.showModal({title:"提示",content:'未选择人员!',showCancel:false,confirmText:"取消"});
            if (data.length == 0) {
               uni.showModal({
                  title: this.translateSys("tip"),
                  content: this.translate('tip_no_select_user'),
                  showCancel: false,
                  confirmText: this.translateSys("cancel")
               });
               return;
            }
            const eventChannel = this.$scope.eventChannel;
            // const eventChannel = this.getOpenerEventChannel();
            eventChannel.emit('AddPer',data,this.$data.param);
            eventChannel.emit('AddPer', data, this.$data.param);
            uni.navigateBack()
         }
         },
         translate(t) {
            if (typeof this.$t == "function") return this.$t(`page.${t}`)
            else return t;
         },
         translateSys(t) {
            if (typeof this.$t == "function") return this.$t(`sys.${t}`)
            else return t;
         },
      }
   }
</script>
<style lang="scss">
   .uni-page-selpsn {
      width: 100vw;
      height: 93vh;
      background: #EAEAEA;
      padding: 14rpx 0rpx 0rpx 0rpx;
      input {
         border: 1px solid #d5d5d5;
         width: 77%;
         height: 80rpx;
         border-radius: 60rpx !important;
         padding: 0 60rpx 0 66rpx;
         margin: 0rpx 20rpx 10rpx 20rpx;
         background: #FFF;
      }
      .dv_query_body {
         height: 91%;
         overflow: auto;
         background-color: #fff;
         border: 2rpx solid #d5d5d5;
         padding: 14rpx;
      }
      .psn {
         margin: 0 12rpx 12rpx 0;
         padding: 8rpx 20rpx 10rpx;
         background-color: #55a1dd;
         font-size: 30rpx;
         color: #fff;
         border-radius: 20rpx;
         display: inline-block;
         cursor: pointer;
      }
      button.btn_sava {
         margin-top: 47rpx;
         padding: 20rpx;
         line-height: 1.2;
         background: #27A6E1;
         border: none;
         color: #fff;
      }
   }
</style>