LiGuang 2 年之前
父節點
當前提交
9ba5e5ae85

+ 1 - 1
src/components/page/GlobalLayout.vue

@@ -109,7 +109,7 @@
     mixins: [mixin, mixinDevice],
     data() {
       return {
-        collapsed: false,
+        collapsed: true,
         activeMenu:{},
         menus: []
       }

+ 9 - 9
src/views/system/AttendanceRuleList.vue

@@ -43,7 +43,7 @@
       <a-tabs default-active-key="2" @change="callback">
         <a-tab-pane key="2" tab="按班次上下班">
           <a-table bordered rowKey="id" :loading="loading" :data-source="dataSource" :columns="columns"
-            :scroll="{ x:300,y:400}" :pagination="ipagination" @change="handleTableChange"
+            :scroll="{ x:300,y:550}" :pagination="ipagination" @change="handleTableChange"
             :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}">
             <template v-for='(dayobject,i) in days' :slot="dayobject.day.getDate()" style="color: #ff6b81">
               <div style="height: 35px;">
@@ -63,9 +63,10 @@
             </template>
 
             <span v-for='(d,i) in tpdata' style="margin-left: -6px;" :slot="d" slot-scope="text, record, index">
-              <span style="margin-left: -7px;">
-                <a-tag color="blue" v-if="text=='休息'">{{text}}</a-tag>
-                <a-tag color="#87d068" v-else-if="text!=''&&text!=null">{{text}}</a-tag>
+              <span >
+                <a-tag color="blue" v-if="text=='休息'">{{text.substring(0,1)}}</a-tag>
+                <a-tag color="red" v-if="text=='法'">{{text.substring(0,1)}}</a-tag>
+                <a-tag color="#87d068" v-if="text!=''&&text!=null&&text!='法'&&text!='休息'">{{text.substring(0,1)}}</a-tag>
               </span>
             </span>
           </a-table>
@@ -332,7 +333,6 @@
         this.queryMothByCount()
         this.$options.methods.searchQuery.call(this)
         this.initData(this.queryParam.ShiftDate)
-
       },
       handleTableChanges(pagination, filters, sorter) {
         //分页、排序、筛选变化时触发
@@ -377,19 +377,19 @@
         this.columns.push({
           title: '名称',
           dataIndex: 'realname',
-          width: '100px',
+          width: '80px',
           fixed: 'left'
         })
         this.columnst.push({
           title: '班次名称',
           dataIndex: 'name',
-          width: '100px',
+          width: '70px',
           fixed: 'left'
         })
         this.columns.push({
           title: '部门',
           dataIndex: 'deptName',
-          width: '140px',
+          width: '120px',
           fixed: 'left'
         })
         if (this.queryParam.type == "1" || this.queryParam.type == "2" || this.queryParam.type == "3") {
@@ -510,7 +510,7 @@
             this.columns.push(dayobjectSelf) // 将日期放入data 中的days数组 供页面渲染使用
           }
         }
-
+        
       },
       queryShift() {
         httpAction(this.url.shift, "", "get").then((res) => {

+ 9 - 3
src/views/system/StatutoryLeaveList.vue

@@ -130,21 +130,27 @@
 
           },
           {
-            title: '假期开始时间',
+            title: '是否法节',
+            align: "center",
+            dataIndex: 'isF',
+          
+          },
+          {
+            title: '假期时间',
             align: "center",
             dataIndex: 'startDate',
             customRender: function(t, r, index) {
               return moment(t).format('YYYY-MM-DD');
             }
           },
-          {
+          /* {
             title: '假期结束时间',
             align: "center",
             dataIndex: 'endDate',
             customRender: function(t, r, index) {
               return moment(t).format('YYYY-MM-DD');
             }
-          },
+          }, */
           {
             title: '日薪资倍数',
             align: "center",

+ 60 - 8
src/views/system/UserList.vue

@@ -5,7 +5,7 @@
     <div class="table-page-search-wrapper">
       <a-form layout="inline" @keyup.enter.native="searchQuery">
         <a-row :gutter="24">
-          <a-col :md="6" :sm="12">
+          <a-col :md="6" :sm="8">
             <a-form-item label="真实名字">
               <a-input @change="clearSpace" placeholder="请输入真实名字" v-model="queryParam.realname"></a-input>
             </a-form-item>
@@ -43,6 +43,41 @@
           </a-col>
         </a-row>
         <template v-if="toggleSearchStatus">
+          <!-- <a-row :gutter="24">
+          
+            <a-col :md="6" :sm="8">
+              <a-form-item label="性别">
+                <a-select placeholder="请选择性别"
+                v-model="queryParam.sex"
+                  :getPopupContainer="(target) => target.parentNode">
+                  <a-select-option :value="1">男</a-select-option>
+                  <a-select-option :value="2">女</a-select-option>
+                </a-select>
+              </a-form-item>
+            </a-col>
+            <a-col :md="6" :sm="8">
+                <a-form-item label="入职日期">
+                  <a-range-picker
+                    style="width: 210px"
+                    format="YYYY-MM-DD"
+                    :placeholder="['开始时间', '结束时间']"
+                    @change="onDateChange"
+                    
+                  />
+                </a-form-item>
+              </a-col>
+              <a-col :md="6" :sm="8">
+                  <a-form-item label="试用结束日期">
+                    <a-range-picker
+                      style="width: 210px"
+                      format="YYYY-MM-DD"
+                      :placeholder="['开始时间', '结束时间']"
+                      @change="onDateChanges"
+                      
+                    />
+                  </a-form-item>
+                </a-col>
+          </a-row> -->
           <a-row :gutter="24">
           <a-col :md="6" :sm="12" style="width: 50%;">
             <a-form-item label="人员类别">
@@ -224,9 +259,11 @@ import JSelectDepart from '@/components/jeecgbiz/JSelectDepart'
         description: '这是用户管理页面',
         queryParam: {
           empStatus:"10",
-          categorys:"101",
+          categorys:null,
           orgCodeTxt:null,
+          entryDate
         },
+       
         departNames:null,
         recycleBinVisible: false,
         selectedRowKeys:[],
@@ -247,13 +284,15 @@ import JSelectDepart from '@/components/jeecgbiz/JSelectDepart'
             align: "center",
             dataIndex: 'workNo',
             width: 100,
+            sorter: true
           },
           {
             title: '员工姓名',
             align: "center",
             width: 100,
             dataIndex: 'realname',
-            scopedSlots: {customRender: "userRealname"}
+            scopedSlots: {customRender: "userRealname"},
+            sorter: true
           },
           // {
           //   title: '头像',
@@ -267,6 +306,7 @@ import JSelectDepart from '@/components/jeecgbiz/JSelectDepart'
             align: "center",
             width: 80,
             dataIndex: 'sex_dictText',
+            sorter: true
            
           },
           
@@ -296,16 +336,17 @@ import JSelectDepart from '@/components/jeecgbiz/JSelectDepart'
             title: '邮箱',
             align: "center",
             width: 120,
-            dataIndex: 'email'
+            dataIndex: 'email',
+            sorter: true
           },
           {
             title: '一级部门',
             align: "center",
             width: 120,
-            dataIndex: 'del2'
+            dataIndex: 'del2',
           },
           {
-            title: '级部门',
+            title: '级部门',
             align: "center",
             width: 120,
             dataIndex: 'del3'
@@ -320,13 +361,15 @@ import JSelectDepart from '@/components/jeecgbiz/JSelectDepart'
             title: '职位',
             align: "center",
             width: 120,
-            dataIndex: 'post_dictText'
+            dataIndex: 'post_dictText',
+            sorter: true
           },
           {
             title: '入职时间',
             align: "center",
             width: 120,
-            dataIndex: 'entryDate'
+            dataIndex: 'entryDate',
+            sorter: true
           },
           {
             title: '人员类别',
@@ -334,6 +377,7 @@ import JSelectDepart from '@/components/jeecgbiz/JSelectDepart'
             width: 100,
             dataIndex: 'category_dictText',
             scopedSlots: {customRender: "categorys"},
+            sorter: true
            
           },
           {
@@ -342,6 +386,7 @@ import JSelectDepart from '@/components/jeecgbiz/JSelectDepart'
             width: 100,
             dataIndex: 'employmentStatus',
             scopedSlots: {customRender: "employmentStatuss"},
+            sorter: true
             
           },
           // {
@@ -391,6 +436,13 @@ import JSelectDepart from '@/components/jeecgbiz/JSelectDepart'
       //   this.selectedRowKeys = selectedRowKeys;
       //   this.selectionRows = selectionRows;
       // },
+      onDateChange: function (value, dateString) {
+        this.queryParam.entryDate=dateString[0]+","+dateString[1];
+      },
+      onDateChanges: function (value, dateString) {
+        this.queryParam.trialEndDate=dateString[0]+","+dateString[1];
+      
+      },
       handleExportXltx(){
         this.queryParam.orgCodeTxt="空白模板";
         this.$options.methods.handleExportXls.call(this)

+ 16 - 11
src/views/system/modules/AttendanceRuleModal.vue

@@ -78,11 +78,11 @@
         </div>
 
         <div>
-          <a-table bordered :data-source="dataSource" :loading="loading" :columns="columns" :scroll="{ x:1500,y:500}" :pagination="ipagination"
+          <a-table bordered :data-source="dataSource" :loading="loading" :columns="columns" :scroll="{ x:1000,y:600}" :pagination="ipagination"
             @change="handleTableChange">
             <template v-for='(dayobject,i) in days' :slot="dayobject.day.getDate()" style="color: #ff6b81">
               <div style="height: 35px;">
-                <div style="text-align: center;margin-top: -13px;margin-left: 10px;">
+                <div style="text-align: center;margin-top: -13px;">
                   <p>{{dayobject.day.getDate()}}</p>
                   <div style="margin-top: -10px;">
                     <p v-if='dayobject.day.getDay()==0'>日</p>
@@ -97,13 +97,14 @@
               </div>
             </template>
       
-            <span v-for='(d,i) in tpdata' style="margin-left: -11px;" :slot="d" slot-scope="text, record, index">
+            <span v-for='(d,i) in tpdata' style="margin-left: -13px;" :slot="d" slot-scope="text, record, index">
               <a-dropdown :trigger="['click']">
-                <a-tag closable @close="(e) => log(e,d,record)" color="blue" v-if="text=='休息'" @click="UserType(d,record,index)">{{text}}</a-tag>
-                <a-tag closable @close="(e) => log(e,d,record)" color="#87d068" v-else-if="text!='休息'&&text!=''&&text!=null" @click="UserType(d,record,index)">
-                  {{text}}
+                <a-tag closable @close="(e) => log(e,d,record)" color="blue" v-if="text=='休息'" @click="UserType(d,record,index,text)">{{text.substring(0,1)}}</a-tag>
+                <a-tag  color="red" style="margin-left: 10px;" v-if="text=='法'" @click="UserType(d,record,index,text)">{{text.substring(0,1)}}</a-tag>
+                <a-tag closable @close="(e) => log(e,d,record)" color="#87d068" v-if="text!='休息'&&text!=''&&text!=null" @click="UserType(d,record,index,text)">
+                  {{text.substring(0,1)}}
                 </a-tag>
-                <a-tag color="#FFFFFF" v-else @click="UserType(d,record,index)" style="width: 60px;height: 22px;"> </a-tag>
+                <a-tag color="#FFFFFF" v-else @click="UserType(d,record,index,text)" style="width: 40px;height: 20px;margin-left: 4px;"> </a-tag>
                 <a-menu slot="overlay" v-if="record.isColse" :style="isShow?'height:300px;overflow-y: scroll;':''">
                   <a-menu-item key="0" v-if="isShows">
                     <a @click="shiftOks(0,d,record,index)">休息</a>
@@ -391,10 +392,14 @@
         const tags = this.selectUsers.filter(tag => tag !== e);
         this.selectUsers = tags;
       },
-      UserType(e, a, index) {
+      UserType(e, a, index,text) {
         if(!a.isColse){
           this.$message.warning("当月已关账无法操作!");
           return;
+        }else if(text!=null&&text=='法'){
+          this.isShow = false;
+          this.isShows = false;
+          return;
         }
         this.isShow = true;
         this.isShows = true;
@@ -471,7 +476,7 @@
               }
               ).then((res) => {
               if (res.success) {
-                if(res.result!=0&&res.result!='0'){
+                if(res.result!=0&&res.result!='0'&&res.result!='1'&&res.result!=1){
                   sum++;
                 }else if(res.result==0||res.result=='0'){
                   xsum++;
@@ -494,7 +499,7 @@
                 xsum++;
               }
             }else if(t == "shiftid" + list[o].split("-")[2]){
-              if(obj[t]!=0&&obj[t]!="0"&&obj[t]!=null){
+              if(obj[t]!=0&&obj[t]!="0"&&obj[t]!=null&&obj[t]!=1&&obj[t]!="1"){
                 sum++;
               } if(obj[t]!=null&&obj[t]=="0"){
                 xsum++;
@@ -697,7 +702,7 @@
           var d = new Date(this.formatDate(this.currentYear, this.currentMonth, i))
           this.tpdata.push(i)
           var dayobjectSelf = {
-            width: '70px',
+            width: '50px',
             slots: {
               title: d.getDate()
             },

+ 19 - 10
src/views/system/modules/StatutoryLeaveModal.vue

@@ -30,19 +30,28 @@
         <a-form-item
           :labelCol="labelCol"
           :wrapperCol="wrapperCol"
-          label="假期开始时间">
-          <a-date-picker  format='YYYY-MM-DD' v-decorator="[ 'startDate', validatorRules.startDate]" />
+          label="是否为法">
+          <a-select  placeholder="请选择假期类型" v-model="isF" :getPopupContainer= "(target) => target.parentNode">
+            <a-select-option value="1">是</a-select-option>
+            <a-select-option value="2">否</a-select-option>
+          </a-select>
         </a-form-item>
         <a-form-item
+          :labelCol="labelCol"
+          :wrapperCol="wrapperCol"
+          label="假期时间">
+          <a-date-picker  format='YYYY-MM-DD' v-decorator="[ 'startDate', validatorRules.startDate]" />
+        </a-form-item>
+        <!-- <a-form-item
           :labelCol="labelCol"
           :wrapperCol="wrapperCol"
           label="假期结束时间">
           <a-date-picker  :disabled-date="disabledDate" format='YYYY-MM-DD' v-decorator="[ 'endDate', validatorRules.endDate]" />
-        </a-form-item>
+        </a-form-item> -->
         <a-form-item
           :labelCol="labelCol"
           :wrapperCol="wrapperCol"
-          label="日薪资倍数" v-if="type=='1'||type==1">
+          label="日薪资倍数" >
           <a-input-number id="inputNumber" :min="1" placeholder="请输入日薪资倍数" v-decorator="['sum',{}]" style="width: 180px;"/>
         </a-form-item>
 		
@@ -64,6 +73,7 @@
         visible: false,
         type:"2",
         id:null,
+        isF:"1",
         model: {},
         date:null,
         labelCol: {
@@ -111,7 +121,7 @@
     methods: {
       disabledDate(current) {
         var startDate= this.form.getFieldValue('startDate');
-        return current && current < moment(startDate).endOf('day');
+        return current < moment(startDate).subtract(0, 'day');
       },
       add () {
         this.edit({});
@@ -188,6 +198,7 @@
         this.$emit('close');
         this.visible = false;
         this.type="2";
+        this.isF='1';
       },
       handleOk () {
         const that = this;
@@ -207,12 +218,10 @@
             let formData = Object.assign(this.model, values);
             //时间格式化
             formData.startDate = formData.startDate?formData.startDate.format('YYYY-MM-DD HH:mm:ss'):null;
-            formData.endDate = formData.endDate?formData.endDate.format('YYYY-MM-DD HH:mm:ss'):null;
+            //formData.endDate = formData.endDate?formData.endDate.format('YYYY-MM-DD HH:mm:ss'):null;
             formData.type=this.type;
-            if(this.type=="2"){
-              formData.sum="";
-            }
-            console.log(formData)
+            formData.isF=this.isF;
+          
             httpAction(httpurl,formData,method).then((res)=>{
               if(res.success){
                 that.$message.success(res.message);

+ 11 - 3
src/views/system/modules/UserModal.vue

@@ -276,7 +276,7 @@
           </a-col>
           <a-col :md="6" :sm="8" :lg="8">
             <a-form-item v-if="!isEdit" label="合同结束日期" :labelCol="labelCol" :wrapperCol="wrapperCol">
-             <a-date-picker disabled style="width: 70%" placeholder="请选择试合同结束日期"
+             <a-date-picker  style="width: 70%" placeholder="请选择试合同结束日期"
                v-model="cEndDate"
                />
             </a-form-item>
@@ -371,6 +371,7 @@
         roleDisabled: false, //是否是角色维护调用该页面
         modalWidth: 800,
         drawerWidth: 700,
+        statet:true,
         titles: "新增员工",
         visibles: false,
         isEdit:false,
@@ -1016,6 +1017,7 @@
         this.workMoth=0;
         this.moth=0;
         this.cEndDate=null;
+        this.statet=true;
       },
       moment,
       handleSubmit() {
@@ -1023,8 +1025,10 @@
         //   this.$message.warning('请选择部门!');
         //   return;
         // }
+        this.statet=false;
         const that = this;
         // 触发表单验证
+        
         this.form.validateFields((err, values) => {
           if (!err) {
             that.confirmLoading = true;
@@ -1191,7 +1195,7 @@
           var date = new Date(value);
           var da=new Date(value);
           var type= this.form.getFieldValue('contractType');
-          if(type!=null){
+          if(type!=null&&this.statet==true){
             if(type==1){
               da.setFullYear(da.getFullYear()+3)
               this.cEndDate=moment(da).subtract(1, "days");
@@ -1238,7 +1242,7 @@
           callback()
         } else {
          var date= this.form.getFieldValue('entryDate');
-         if(date!=null){
+         if(date!=null&&this.statet==true){
            var da=new Date(date);
            if(value==1){
              da.setFullYear(da.getFullYear()+3)
@@ -1275,6 +1279,10 @@
           callback()
         } else {
           this.egName = value.substr(0, 1).toLowerCase() + value.substr(1, value.length);
+          this.form.setFieldsValue({
+            egName: value.substr(0, 1).toUpperCase()+ value.substr(1, value.length)
+          }) 
+    
           if (this.realname != null && this.realname != "") {
             var emil = "@gksports.com.cn";
             var name = py.chineseToPinYin(this.realname.substr(0, 1))

+ 5 - 1
src/views/system/schedulingInformation/BdWorkOverTimeList.vue

@@ -37,7 +37,10 @@
             <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
               <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
               <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
-           <a-button type="primary" icon="download" @click="handleExportXls('加班信息')" style="margin-left: 8px" v-has='"work:export"'>导出</a-button>
+           <a-button type="primary" icon="download" @click="handleExportXls('加班信息')" style="margin-left: 8px" >导出</a-button>
+            <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel" >
+              <a-button type="primary" icon="import">导入</a-button>
+            </a-upload>
             </span>
           </a-col>
 
@@ -167,6 +170,7 @@
         url: {
           list: '/workOvertime/workOvertime/lists',
           exportXlsUrl: "/workOvertime/workOvertime/exportXls",
+          importExcelUrl:"/workOvertime/workOvertime/importExcel"
         },
       }
     },