Bläddra i källkod

1.3 八爪鱼筛选

ggooalice 2 år sedan
förälder
incheckning
dee9ee27ef

+ 3 - 3
fhKeeper/formulahousekeeper/octopus/src/views/customer/list.vue

@@ -210,7 +210,7 @@
                 <el-form-item><el-checkbox v-model="dialogData.reportAutoApprove">是否开启日报自动审核</el-checkbox></el-form-item>
                 <el-form-item><el-checkbox v-model="dialogData.notAllowedNoAttendance">是否开启考勤为0不可填报</el-checkbox></el-form-item>
                 <el-form-item><el-checkbox v-model="dialogData.stageHasEvtime">是否开启预估工时</el-checkbox></el-form-item>
-                <el-form-item><el-checkbox v-model="dialogData.pushReportData">是否开通【推送工时数据】</el-checkbox></el-form-item>
+                <!-- <el-form-item><el-checkbox v-model="dialogData.pushReportData">是否开通【推送工时数据】</el-checkbox></el-form-item> -->
                 <el-form-item><el-checkbox v-model="dialogData.financeAudit">财务导入是否需要审核</el-checkbox></el-form-item>
                 <el-form-item><el-checkbox v-model="dialogData.includeWeekends">批量填报是否包含周末</el-checkbox></el-form-item>
                 <el-form-item><el-checkbox v-model="dialogData.multiWorktime">一个项目下可填报多个时间段工时</el-checkbox></el-form-item>
@@ -376,7 +376,7 @@
                             this.$set(this.dialogData,'reportAutoApprove',res.data.reportAutoApprove ? true : false)
                             this.$set(this.dialogData,'notAllowedNoAttendance',res.data.notAllowedNoAttendance ? true : false)
                             this.$set(this.dialogData,'stageHasEvtime',res.data.stageHasEvtime ? true : false)
-                            this.$set(this.dialogData,'pushReportData',res.data.pushReportData ? true : false)
+                            // this.$set(this.dialogData,'pushReportData',res.data.pushReportData ? true : false)
                             this.$set(this.dialogData,'financeAudit',res.data.financeAudit ? true : false)
                             this.$set(this.dialogData,'includeWeekends',res.data.includeWeekends ? true : false)
                             this.$set(this.dialogData,'multiWorktime',res.data.multiWorktime ? true : false)
@@ -656,7 +656,7 @@
                     reportAutoApprove: this.dialogData.reportAutoApprove ? 1 : 0,
                     notAllowedNoAttendance: this.dialogData.notAllowedNoAttendance ? 1 : 0,
                     stageHasEvtime: this.dialogData.stageHasEvtime ? 1 : 0,
-                    pushReportData: this.dialogData.pushReportData ? 1 : 0,
+                    // pushReportData: this.dialogData.pushReportData ? 1 : 0,
                     includeWeekends: this.dialogData.includeWeekends ? 1 : 0,
                     multiWorktime: this.dialogData.multiWorktime ? 1 : 0,
                     reportAuditType: this.dialogData.reportAuditType

+ 10 - 3
fhKeeper/formulahousekeeper/octopus/src/views/workReport/list_import.vue

@@ -1,6 +1,11 @@
 <template>
 <!-- 操作记录 -->
     <section>
+        <el-col :span="24" class="toolbar" style="">
+            <div style="height:32px;line-height:32px;margin-left:20px">
+                <el-checkbox v-model="personKey" @change="getList">人数变更</el-checkbox>
+            </div>
+        </el-col>
         <!-- 列表 -->
             
             <el-table :data="list" style="width: 100%" v-loading="listLoading" :height="tableHeight" highlight-current-row>
@@ -36,6 +41,7 @@
                 page: 1,
                 size: 20,
                 list: [],
+                personKey: false
             }
         },
         methods: {
@@ -54,7 +60,8 @@
                 this.listLoading = true;
                 this.http.post('/operation-log/list', {
                     pageIndex: this.page,
-                    pageSize: this.size
+                    pageSize: this.size,
+                    personKey: this.personKey ? 1 : 0
                 },
                 res => {
                     this.listLoading = false;
@@ -81,10 +88,10 @@
         },
         created() {
             let height = window.innerHeight;
-            this.tableHeight = height - 120;
+            this.tableHeight = height - 172;
             const that = this;
             window.onresize = function temp() {
-                that.tableHeight = window.innerHeight - 120;
+                that.tableHeight = window.innerHeight - 172;
             };
         },
         mounted() {

+ 26 - 3
fhKeeper/formulahousekeeper/timesheet/src/assets/iconfont/demo_index.html

@@ -54,6 +54,12 @@
       <div class="content unicode" style="display: block;">
           <ul class="icon_lists dib-box">
           
+            <li class="dib">
+              <span class="icon iconfont">&#xe625;</span>
+                <div class="name">推送</div>
+                <div class="code-name">&amp;#xe625;</div>
+              </li>
+          
             <li class="dib">
               <span class="icon iconfont">&#xe675;</span>
                 <div class="name">合同7</div>
@@ -486,9 +492,9 @@
 <pre><code class="language-css"
 >@font-face {
   font-family: 'iconfont';
-  src: url('iconfont.woff2?t=1671700473139') format('woff2'),
-       url('iconfont.woff?t=1671700473139') format('woff'),
-       url('iconfont.ttf?t=1671700473139') format('truetype');
+  src: url('iconfont.woff2?t=1672729800404') format('woff2'),
+       url('iconfont.woff?t=1672729800404') format('woff'),
+       url('iconfont.ttf?t=1672729800404') format('truetype');
 }
 </code></pre>
           <h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3>
@@ -514,6 +520,15 @@
       <div class="content font-class">
         <ul class="icon_lists dib-box">
           
+          <li class="dib">
+            <span class="icon iconfont firerock-icontuisong"></span>
+            <div class="name">
+              推送
+            </div>
+            <div class="code-name">.firerock-icontuisong
+            </div>
+          </li>
+          
           <li class="dib">
             <span class="icon iconfont firerock-iconhetong7"></span>
             <div class="name">
@@ -1162,6 +1177,14 @@
       <div class="content symbol">
           <ul class="icon_lists dib-box">
           
+            <li class="dib">
+                <svg class="icon svg-icon" aria-hidden="true">
+                  <use xlink:href="#firerock-icontuisong"></use>
+                </svg>
+                <div class="name">推送</div>
+                <div class="code-name">#firerock-icontuisong</div>
+            </li>
+          
             <li class="dib">
                 <svg class="icon svg-icon" aria-hidden="true">
                   <use xlink:href="#firerock-iconhetong7"></use>

+ 7 - 3
fhKeeper/formulahousekeeper/timesheet/src/assets/iconfont/iconfont.css

@@ -1,8 +1,8 @@
 @font-face {
   font-family: "iconfont"; /* Project id 2390497 */
-  src: url('iconfont.woff2?t=1671700473139') format('woff2'),
-       url('iconfont.woff?t=1671700473139') format('woff'),
-       url('iconfont.ttf?t=1671700473139') format('truetype');
+  src: url('iconfont.woff2?t=1672729800404') format('woff2'),
+       url('iconfont.woff?t=1672729800404') format('woff'),
+       url('iconfont.ttf?t=1672729800404') format('truetype');
 }
 
 .iconfont {
@@ -13,6 +13,10 @@
   -moz-osx-font-smoothing: grayscale;
 }
 
+.firerock-icontuisong:before {
+  content: "\e625";
+}
+
 .firerock-iconhetong7:before {
   content: "\e675";
 }

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 1 - 1
fhKeeper/formulahousekeeper/timesheet/src/assets/iconfont/iconfont.js


+ 7 - 0
fhKeeper/formulahousekeeper/timesheet/src/assets/iconfont/iconfont.json

@@ -5,6 +5,13 @@
   "css_prefix_text": "firerock-icon",
   "description": "",
   "glyphs": [
+    {
+      "icon_id": "10936691",
+      "name": "推送",
+      "font_class": "tuisong",
+      "unicode": "e625",
+      "unicode_decimal": 58917
+    },
     {
       "icon_id": "774469",
       "name": "合同7",

BIN
fhKeeper/formulahousekeeper/timesheet/src/assets/iconfont/iconfont.ttf


BIN
fhKeeper/formulahousekeeper/timesheet/src/assets/iconfont/iconfont.woff


BIN
fhKeeper/formulahousekeeper/timesheet/src/assets/iconfont/iconfont.woff2


+ 1 - 1
fhKeeper/formulahousekeeper/timesheet/src/views/contract/index.vue

@@ -208,7 +208,7 @@
           <el-form-item :label="$t('scheduleendtime')">
             {{contractForm.endDate}}
           </el-form-item>
-          <el-form-item :label="$t('bei-zhu')">
+          <el-form-item style="width:100%" :label="$t('bei-zhu')">
             {{contractForm.remarks}}
           </el-form-item>
           <el-form-item label-width="0" class="contractFiles">

+ 69 - 35
fhKeeper/formulahousekeeper/timesheet/src/views/settings/timetype.vue

@@ -10,41 +10,47 @@
             </el-form>
         </el-col>
         <p style="padding-top:80px;margin: 0 0 10px 10px;color:#666;">{{ $t('employeehourlywage') }}</p>
-        <div class="panel" style="height:190px;margin-left:20px;margin-right:20px;">
-        <el-radio v-model="timeType.hourCostInputType" :label="0" style="width:100%;margin-left:10px;">{{ $t('methodsa') }}<span class="tip">{{ $t('suitableforfulltimeemployees') }}</span>
-            <el-form ref="form0" :inline="true" :model="timeType" label-width="150px" style="margin-top:10px;">
-            <el-form-item :label="$t('workingdayspermonth')" prop="monthDays">
-            <el-input v-model="timeType.monthDays"  type="number" style="width:120px;"></el-input>
-            {{ $t('time.day') }} 
-            </el-form-item>    
-            <el-form-item :label="$t('dailyworkinghours')" prop="allday">
-                <el-select v-model="timeType.allday" :placeholder="$t('defaultText.pleaseSelectWorkingHours')" style="width:120px;" @change="timeAlldayChange">
-                    <el-option v-for="item in times" :key="item" :label="item.toFixed(1)" :value="item"></el-option>
-                </el-select>
-                {{ $t('time.hour') }} 
-                <span class="lockworktime"><el-checkbox v-model="timeType.lockWorktime" @change="lockChange" :label="$t('lockingworkinghours')" />
-                <el-tooltip effect="dark" :content="$t('hoursreporteperday')" placement="top-start">
-                    <i class="el-icon-question" style="color:#606266"></i>
-                </el-tooltip>
-                <span style="margin-left:25px">{{ $t('imitillingtime') }}</span>
-                <el-select :disabled="timeType.lockWorktime" v-model="timeType.maxReportTime" type="number" style="width:120px;margin-left:10px">
-                    <el-option v-for="item in maxReportTimeRange" :key="item" :label="item.toFixed(1)" :value="item"></el-option>
-                </el-select><span style="margin-left:5px;color:#409eff">{{ $t('time.hour') }}</span>
-                </span>
-                
-            </el-form-item><br>
-            <el-form-item :label="$t('workSettings')" prop="allday" v-if="!timeType.lockWorktime">
-                <el-checkbox v-model="timeType.fillOvertime" :label="$t('hourscanbereported')" />
-                <template v-if="timeType.fillOvertime">
-                <el-checkbox v-model="timeType.payOvertime" :label="$t('chargedtocost')" />
-                <!-- <el-checkbox v-model="timeType.doubleOvertime" label="加班双倍成本" :disabled="!timeType.payOvertime"/> -->
-                <el-input v-model="timeType.overtimeRatio" placeholder="" clearable style="width: 100px;margin: 0 10px 0 20px" v-if="timeType.payOvertime" @keyup.native="timeType.overtimeRatio = oninput(timeType.overtimeRatio, 1)"></el-input> <span v-if="timeType.payOvertime">{{ $t('bei-gong-zi') }}</span>
-                </template>
-            </el-form-item>
-            </el-form>
-            
-        </el-radio>
-        <el-radio v-model="timeType.hourCostInputType" :label="1" style="width:100%;margin-left:10px;">{{ $t('visittwo') }}<span class="tip">{{ $t('timeemployees') }}</span></el-radio>
+        <div class="panel clearfix" style="height:auto;margin-left:20px;margin-right:20px;">
+            <div style="width:100%;float:left">
+                <el-radio v-model="timeType.hourCostInputType" :label="0" style="width:100%;margin-left:10px;">{{ $t('methodsa') }}<span class="tip">{{ $t('suitableforfulltimeemployees') }}</span></el-radio>
+            </div>
+            <div style="width:100%;float:left"> 
+                <el-form ref="form0" :inline="true" :model="timeType" label-width="150px" style="margin-top:10px">
+                    <el-form-item :label="$t('workingdayspermonth')" prop="monthDays">
+                    <el-input v-model="timeType.monthDays"  type="number" style="width:120px;"></el-input>
+                    {{ $t('time.day') }} 
+                    </el-form-item>    
+                    <el-form-item :label="$t('dailyworkinghours')" prop="allday">
+                        <el-select v-model="timeType.allday" :placeholder="$t('defaultText.pleaseSelectWorkingHours')" style="width:120px;" @change="timeAlldayChange">
+                            <el-option v-for="item in times" :key="item" :label="item.toFixed(1)" :value="item"></el-option>
+                        </el-select>
+                        {{ $t('time.hour') }} 
+                    </el-form-item>
+                    <el-form-item>
+                        <span class="lockworktime"><el-checkbox v-model="timeType.lockWorktime" @change="lockChange" :label="$t('lockingworkinghours')" />
+                        <el-tooltip effect="dark" :content="$t('hoursreporteperday')" placement="top-start">
+                            <i class="el-icon-question" style="color:#606266"></i>
+                        </el-tooltip>
+                        </span>
+                    </el-form-item>
+                    <el-form-item :label="$t('imitillingtime')">
+                        <el-select :disabled="timeType.lockWorktime" v-model="timeType.maxReportTime" type="number" style="width:120px;">
+                            <el-option v-for="item in maxReportTimeRange" :key="item" :label="item.toFixed(1)" :value="item"></el-option>
+                        </el-select><span style="margin-left:5px;color:#409eff">{{ $t('time.hour') }}</span>
+                    </el-form-item><br>
+                    <el-form-item :label="$t('workSettings')" prop="allday" v-if="!timeType.lockWorktime">
+                        <el-checkbox v-model="timeType.fillOvertime" :label="$t('hourscanbereported')" />
+                        <template v-if="timeType.fillOvertime">
+                        <el-checkbox v-model="timeType.payOvertime" :label="$t('chargedtocost')" />
+                        <!-- <el-checkbox v-model="timeType.doubleOvertime" label="加班双倍成本" :disabled="!timeType.payOvertime"/> -->
+                        <el-input v-model="timeType.overtimeRatio" placeholder="" clearable style="width: 100px;margin: 0 10px 0 20px" v-if="timeType.payOvertime" @keyup.native="timeType.overtimeRatio = oninput(timeType.overtimeRatio, 1)"></el-input> <span v-if="timeType.payOvertime">{{ $t('bei-gong-zi') }}</span>
+                        </template>
+                    </el-form-item>
+                </el-form>
+            </div>
+            <div style="width:100%;float:left">
+                <el-radio v-model="timeType.hourCostInputType" :label="1" style="width:100%;margin-left:10px;">{{ $t('visittwo') }}<span class="tip">{{ $t('timeemployees') }}</span></el-radio>
+            </div>
         </div>
         <!--设置时长样式内容-->
         <p style="margin-left:10px;color:#666;">{{ $t('employeeworkinghours') }}</p>
@@ -246,6 +252,28 @@
             </div>
         </el-col>
         </el-row>
+
+        <!-- <p style="margin-left:10px;color:#666;" v-if="user.timeType.pushReportData == 1">推送工时设置</p>
+        <el-row :gutter="20" style="padding-top:10px;width:100%;margin:0 auto;padding-left:10px;padding-right:10px;" v-if="user.timeType.pushReportData == 1">
+            <el-col :span="24" >
+                <div class="panel" style="height:70px;color:#606266">
+                    <el-form :inline="true" :model="timeType"  style="margin-top:10px;">
+                    <el-form-item :label="'每月'" prop="fillMonths">
+                        <el-select v-model="pushParam.day" style="width:80px">
+                            <el-option v-for="item in pushParam.dayList" :key="item" :label="item" :value="item">
+                            </el-option>
+                        </el-select>
+                        <span>日</span>
+                        <el-select v-model="pushParam.hour" style="width:80px;margin-left:20px">
+                            <el-option v-for="item in pushParam.hourList" :key="item" :label="item" :value="item">
+                            </el-option>
+                        </el-select>
+                        <span>时推送一次工时</span>
+                    </el-form-item>
+                    </el-form>
+                </div>
+            </el-col>
+        </el-row> -->
         <!-- 设置研究中心 -->
         <div class="yanjiu">
             <p style="margin-left:10px;color:#666;">{{ $t('dailyfilling') }}</p>
@@ -457,6 +485,12 @@
     export default {
         data() {
             return {
+                pushParam:{
+                    day:'05',
+                    hour:'01',
+                    dayList:['01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30'],
+                    hourList:['00','01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16','17','18','19','20','21','22','23']
+                },
                 monthTimeList:[{id:0, name:this.$t('donlimit')},{id:1, name:this.$t('canbefilled')},{id:2, name:this.$t('lastmonth')},{id:3, name:this.$t('lastlastmonth')},{id:4, name:this.$t('newspaperwithin')},{id:5, name:this.$t('previousdaydaily')}],
                 progress:30,
                 startTime:null,

+ 41 - 0
fhKeeper/formulahousekeeper/timesheet/src/views/workReport/daily.vue

@@ -8,6 +8,7 @@
                             <el-date-picker size="small" v-model="date" :editable="false" format="yyyy-MM" value-format="yyyy-MM"
                             style="width:190px;"
                             @change="changeMonthOut" :clearable="false" type="month" :placeholder="$t('Selectmonth')" :picker-options="getPickerOptions"></el-date-picker>
+                            <!-- <el-button v-if="user.timeType.pushReportData == 1" style="margin-left:10px;" icon="iconfont firerock-icontuisong" size="mini" @click="pushWorkTime"></el-button> -->
                             <el-button style="margin-left:10px;" icon="iconfont firerock-icongongshitongji" size="mini"  @click="showWorkTime"></el-button>
                         </div>
                     <div slot="header" class="clearfix" id="clearfix" style="padding-left: 255px;">
@@ -2672,6 +2673,46 @@
                 this.selectProject(itemDomain, newIndex);
             },
 
+    pushWorkTime(){
+        this.$confirm('确认推送'+this.date+'月的工时?', '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'info'
+        }).then(() => {
+            const loading = this.$loading({
+                lock: true,
+                text: '正在推送中,请耐心等待。',
+                spinner: 'el-icon-loading',
+                background: 'rgba(0, 0, 0, 0.7)'
+            });
+            
+            this.http.post('/report/pushReportDataToThird',{
+                yearMonth: this.date
+            },res => {
+                loading.close();
+                if(res.code == 'ok'){
+                    this.$message({
+                        type: 'success',
+                        message: '推送成功!'
+                    });
+                }else{
+                    this.$message({
+                        type: 'error',
+                        message: res.msg
+                    })
+                }
+            },err => {
+                loading.close();
+                this.$message({
+                    type: 'error',
+                    message: err
+                })
+            })
+          
+        }).catch(() => {
+        });
+    },
+
     showWorkTime(){
       this.monthWorkTimeDialog = true;
       this.searchKeyword = ''

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 742 - 15761
fhKeeper/formulahousekeeper/timesheet_h5/package-lock.json


+ 2 - 2
fhKeeper/formulahousekeeper/timesheet_h5/src/views/expense/details.vue

@@ -53,7 +53,7 @@
             <!-- 发票张数 -->
             <van-field label="发票张数" :readonly="!canEdit">
                 <template #input>
-                    <van-stepper v-model="editForm.ticketNum" disable-input @plus="ticNumChange(1)" @minus="ticNumChange(0)" />
+                    <van-stepper v-model="editForm.ticketNum" :disabled="!canEdit" disable-input @plus="ticNumChange(1)" @minus="ticNumChange(0)" />
                 </template>
             </van-field>
             <!-- 费用类型 -->
@@ -179,7 +179,7 @@
                     </van-field>
                 </div>
             </div>
-            <div class="addinvoice"><van-button size="small" icon="plus" type="info" plain hairline @click="addInvoice">添加发票</van-button></div>
+            <div class="addinvoice" v-if="canEdit"><van-button size="small" icon="plus" type="info" plain hairline @click="addInvoice">添加发票</van-button></div>
             <!-- 发票-popup -->
             <span>
                 <!-- 所属项目 -->