|
@@ -18,40 +18,23 @@
|
|
class="selectgxbtn"
|
|
class="selectgxbtn"
|
|
type="default"
|
|
type="default"
|
|
size="mini"
|
|
size="mini"
|
|
- @click="switchWeek(item,index)">{{weekArr[index]}}</van-button>
|
|
|
|
|
|
+ @click="switchWeek(item,index)"
|
|
|
|
+ :disabled="canSelect(item)">{{weekArr[index]}}</van-button>
|
|
</van-grid-item>
|
|
</van-grid-item>
|
|
|
|
+ <div class="kaoqin" v-if="kaoqinText"><span>当日考勤记录:</span><span>{{kaoqinText}}</span></div>
|
|
<div class="submitClear">
|
|
<div class="submitClear">
|
|
<van-button type="default" size="small" @click="submitClear">清空</van-button>
|
|
<van-button type="default" size="small" @click="submitClear">清空</van-button>
|
|
</div>
|
|
</div>
|
|
</van-grid>
|
|
</van-grid>
|
|
|
|
|
|
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- <!-- <van-field readonly clickable name="datetimePicker" :value="form.createDate" label="时间选择" placeholder="点击选择时间"
|
|
|
|
- @click="showPicker = true" :rules="rules.createDate" />
|
|
|
|
- <van-popup v-model="showPicker" position="bottom">
|
|
|
|
- <van-datetime-picker v-model="currentDate" type="date" :min-date="minDate" :max-date="maxDate" @confirm="changeTime" @cancel="showPicker = false"/>
|
|
|
|
- </van-popup>
|
|
|
|
- <van-cell title="总时长(h)" v-if="reportTimeType.type == 3">
|
|
|
|
- <template>
|
|
|
|
- <van-stepper :disabled="!canEdit" v-model="reportTimeType.allday" @change="changeAllTime" min="0.5" max="12" step="0.5" :decimal-length="1" />
|
|
|
|
- </template>
|
|
|
|
- </van-cell> -->
|
|
|
|
-
|
|
|
|
- <!-- <van-cell title="待分配时长" :value="report.time + 'h'" size="large"></van-cell> -->
|
|
|
|
-
|
|
|
|
<div class="form_domains" v-for="(item,index) in currentForm.domains" :key="item.id">
|
|
<div class="form_domains" v-for="(item,index) in currentForm.domains" :key="item.id">
|
|
<div style="float:right;margin-top:10px;margin-right:10px;">
|
|
<div style="float:right;margin-top:10px;margin-right:10px;">
|
|
- <!-- <van-tag v-if="canEdit&&item.projectName.length>0" color="#fff"
|
|
|
|
- @click="copyProject(index)" style="border: 1px solid #20a0ff;padding:5px;"
|
|
|
|
- icon="plus" type="default" ><span style="color:#666;padding: 0 5px;">复制项目</span></van-tag> -->
|
|
|
|
|
|
|
|
<van-tag v-if="index>0" color="#fff"
|
|
<van-tag v-if="index>0" color="#fff"
|
|
@click="delPro(index)" style="border: 1px solid #ff0000;padding:5px;margin-left:10px;"
|
|
@click="delPro(index)" style="border: 1px solid #ff0000;padding:5px;margin-left:10px;"
|
|
icon="plus" type="default" ><span style="color:#666;padding: 0 5px;">删除</span></van-tag>
|
|
icon="plus" type="default" ><span style="color:#666;padding: 0 5px;">删除</span></van-tag>
|
|
</div>
|
|
</div>
|
|
- <!-- <van-icon v-if="index>0&&canEdit" class="form_del" name="delete" @click="delPro(index)" /> -->
|
|
|
|
|
|
|
|
<van-cell-group :title="(user.companyId==781?'任务':'项目') + (index+1)">
|
|
<van-cell-group :title="(user.companyId==781?'任务':'项目') + (index+1)">
|
|
<!-- <div>请选择投入项目</div> -->
|
|
<!-- <div>请选择投入项目</div> -->
|
|
@@ -127,9 +110,6 @@
|
|
<van-popup v-model="item.showPickerTask" position="bottom">
|
|
<van-popup v-model="item.showPickerTask" position="bottom">
|
|
<van-picker show-toolbar :columns="item.taskList" value-key="taskName" @confirm="choseTask" @cancel="item.showPickerTask = false;$forceUpdate()" />
|
|
<van-picker show-toolbar :columns="item.taskList" value-key="taskName" @confirm="choseTask" @cancel="item.showPickerTask = false;$forceUpdate()" />
|
|
</van-popup>
|
|
</van-popup>
|
|
- <!-- <van-field readonly clickable class="form_input" :value="item.workingTime" name="workingTime" label="工作时长" placeholder="请输入工作时长(单位:小时)"
|
|
|
|
- :rules="[{ required: true, message: '请输入工作时长(单位:小时)' }]" @touchstart.native.stop="showNumberKey = true"/>
|
|
|
|
- <van-number-keyboard v-model="item.workingTime" :show="showNumberKey" close-button-text="完成" extra-key="." :maxlength="4" @blur="showNumberKey = false" /> -->
|
|
|
|
|
|
|
|
<!-- 常规选择时间的方式 -->
|
|
<!-- 常规选择时间的方式 -->
|
|
<!-- 全天上下午模式 -->
|
|
<!-- 全天上下午模式 -->
|
|
@@ -257,8 +237,6 @@
|
|
<span :class="'overListTime'">小时</span>
|
|
<span :class="'overListTime'">小时</span>
|
|
</div>
|
|
</div>
|
|
<van-tag style="position:absolute;right:10px;" v-if="isCorpWX" type="primary" size="large" @click="takePhoto(index)">拍照上传</van-tag>
|
|
<van-tag style="position:absolute;right:10px;" v-if="isCorpWX" type="primary" size="large" @click="takePhoto(index)">拍照上传</van-tag>
|
|
- <!-- <van-tag style="position:absolute;right:10px;" type="primary" size="large" @click="takePhoto(index)">拍照上传</van-tag> -->
|
|
|
|
- <!-- <van-tag style="position:absolute;right:10px;" type="primary" size="large" @click="takePhoto(index)">拍照上传</van-tag> -->
|
|
|
|
</div>
|
|
</div>
|
|
<div style="padding:5px;text-align:center;" v-if="!isIOSystem">
|
|
<div style="padding:5px;text-align:center;" v-if="!isIOSystem">
|
|
<span v-for="(p, index) in item.pics" :key="p" style="margin-right:15px;">
|
|
<span v-for="(p, index) in item.pics" :key="p" style="margin-right:15px;">
|
|
@@ -295,32 +273,16 @@
|
|
<div style="padding-bottom:10px;">
|
|
<div style="padding-bottom:10px;">
|
|
<van-button square block type="info" @click="submitReport" native-type="submit" style="width:100%;float:left;">
|
|
<van-button square block type="info" @click="submitReport" native-type="submit" style="width:100%;float:left;">
|
|
<div>提交</div>
|
|
<div>提交</div>
|
|
- <!-- <van-loading type="spinner" /> -->
|
|
|
|
</van-button>
|
|
</van-button>
|
|
- <!-- <van-button v-if="canEdit" square block type="default" @click="isDraft=1" native-type="submit" style="width:50%;float:left;">
|
|
|
|
- <div v-if="flgLg">暂存</div>
|
|
|
|
- <van-loading type="spinner" v-if="!flgLg" />
|
|
|
|
- </van-button> -->
|
|
|
|
</div>
|
|
</div>
|
|
- <!-- <van-button v-if="canEdit&¤tForm.domains.length>0 && currentForm.domains[0].id != null"
|
|
|
|
- square block type="default" @click="deleteReport" native-type="button"
|
|
|
|
- style=""> 删除 </van-button> -->
|
|
|
|
- <!-- <div v-if="canEdit&&form.domains.length>0 && form.domains[0].id != null"
|
|
|
|
- style="display:block;padding-top:30px;font-size:15px;color:#666;margin:0 auto;text-align:center;padding-bottom:10px;background:#ffffff;"
|
|
|
|
- @click="deleteReport"> 删除 </div> -->
|
|
|
|
- <!-- <van-button v-if="canEdit" square block type="default" @click="deleteReport" native-type="button"
|
|
|
|
- style="margin-top:10px;"> 删除 </van-button> -->
|
|
|
|
</div>
|
|
</div>
|
|
</van-form>
|
|
</van-form>
|
|
<div style="position:fixed; bottom:0px;width:100%;">
|
|
<div style="position:fixed; bottom:0px;width:100%;">
|
|
<van-button v-if="canCancel" block type="default" @click="cancel"> 撤销 </van-button>
|
|
<van-button v-if="canCancel" block type="default" @click="cancel"> 撤销 </van-button>
|
|
</div>
|
|
</div>
|
|
-
|
|
|
|
- <!-- <div class="form_tip" v-if="!canEdit && !canCancel"> 已审核无法修改 </div> -->
|
|
|
|
|
|
|
|
<!-- 选择项目弹窗 -->
|
|
<!-- 选择项目弹窗 -->
|
|
<van-popup v-model="showPickerUserddp" position="bottom" style="height: 80%">
|
|
<van-popup v-model="showPickerUserddp" position="bottom" style="height: 80%">
|
|
- <!-- <van-search v-model="userName" placeholder="输入项目名称搜索" @clear="sea()" @blur="sea()" @search="sea()"></van-search> -->
|
|
|
|
<van-search v-model="userName" placeholder="请输入项目名称/编号" @clear="sea()" @blur="sea()" @search="sea()" @input="sea()"/>
|
|
<van-search v-model="userName" placeholder="请输入项目名称/编号" @clear="sea()" @blur="sea()" @search="sea()" @input="sea()"/>
|
|
<div style="minHeight:300px;">
|
|
<div style="minHeight:300px;">
|
|
<div v-for="(item, index) in projectss" :key="item.id" class="ryuan" @click="fZr(item, index)">
|
|
<div v-for="(item, index) in projectss" :key="item.id" class="ryuan" @click="fZr(item, index)">
|
|
@@ -413,7 +375,8 @@
|
|
weekArr: ['周一','周二','周三','周四','周五','周六'],
|
|
weekArr: ['周一','周二','周三','周四','周五','周六'],
|
|
inbtn: 0,
|
|
inbtn: 0,
|
|
weekIndex: 5,
|
|
weekIndex: 5,
|
|
- weekSwitchIndex: 1
|
|
|
|
|
|
+ weekSwitchIndex: 1,
|
|
|
|
+ kaoqinText: false
|
|
};
|
|
};
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
@@ -428,16 +391,37 @@
|
|
this.form[this.inbtn] = this.currentForm
|
|
this.form[this.inbtn] = this.currentForm
|
|
this.inbtn = index
|
|
this.inbtn = index
|
|
this.currentForm = this.form[this.inbtn]
|
|
this.currentForm = this.form[this.inbtn]
|
|
|
|
+ this.getKaoqin()
|
|
|
|
+ },
|
|
|
|
+ // 获取日考勤记录
|
|
|
|
+ getKaoqin(){
|
|
|
|
+ this.$axios.post('/report/getCardTime',{
|
|
|
|
+ date: this.currentForm.createDate
|
|
|
|
+ }).then(res => {
|
|
|
|
+ if(res.code == 'ok'){
|
|
|
|
+ if(res.data){
|
|
|
|
+ this.kaoqinText = res.data.startTime + '-' + res.data.endTime + ',' + res.data.workHours + '小时'
|
|
|
|
+ }else {
|
|
|
|
+ this.kaoqinText = false
|
|
|
|
+ }
|
|
|
|
+ }else {
|
|
|
|
+ this.$toast.clear();
|
|
|
|
+ this.$toast.fail(err);
|
|
|
|
+ }
|
|
|
|
+ }).catch(err => {
|
|
|
|
+ this.$toast.clear();
|
|
|
|
+ this.$toast.fail(err);
|
|
|
|
+ })
|
|
},
|
|
},
|
|
// 获取周填报时间数据
|
|
// 获取周填报时间数据
|
|
getDateRange(){
|
|
getDateRange(){
|
|
if(this.user.companyId == 817){
|
|
if(this.user.companyId == 817){
|
|
this.weekIndex = 6
|
|
this.weekIndex = 6
|
|
}
|
|
}
|
|
- let nowDate = new Date()
|
|
|
|
|
|
+ let nowDate = new Date(2022,4,25)
|
|
let nowWeekday = nowDate.getDay()
|
|
let nowWeekday = nowDate.getDay()
|
|
let shuldDate
|
|
let shuldDate
|
|
- if(nowWeekday < 5){
|
|
|
|
|
|
+ if(nowWeekday == 0){
|
|
// 取上周日期
|
|
// 取上周日期
|
|
shuldDate = new Date(nowDate.getFullYear(),nowDate.getMonth(),nowDate.getDate() - 7*this.weekSwitchIndex)
|
|
shuldDate = new Date(nowDate.getFullYear(),nowDate.getMonth(),nowDate.getDate() - 7*this.weekSwitchIndex)
|
|
}else{
|
|
}else{
|
|
@@ -464,6 +448,7 @@
|
|
let startDateStr = startDate.getFullYear() + '-' + (startDateM < 10 ? '0' + startDateM : startDateM) + '-' + (startDateD < 10 ? '0' + startDateD : startDateD)
|
|
let startDateStr = startDate.getFullYear() + '-' + (startDateM < 10 ? '0' + startDateM : startDateM) + '-' + (startDateD < 10 ? '0' + startDateD : startDateD)
|
|
let endDateStr = endDate.getFullYear() + '-' + (endDateM < 10 ? '0' + endDateM : endDateM) + '-' + (endDateD < 10 ? '0' + endDateD : endDateD)
|
|
let endDateStr = endDate.getFullYear() + '-' + (endDateM < 10 ? '0' + endDateM : endDateM) + '-' + (endDateD < 10 ? '0' + endDateD : endDateD)
|
|
this.dateText = [startDateStr,endDateStr]
|
|
this.dateText = [startDateStr,endDateStr]
|
|
|
|
+
|
|
this.form = []
|
|
this.form = []
|
|
for(let i=0;i<this.weekIndex;i++){
|
|
for(let i=0;i<this.weekIndex;i++){
|
|
let formItem = {
|
|
let formItem = {
|
|
@@ -483,6 +468,20 @@
|
|
this.form.push(formItem)
|
|
this.form.push(formItem)
|
|
}
|
|
}
|
|
this.currentForm = this.form[0]
|
|
this.currentForm = this.form[0]
|
|
|
|
+ this.getKaoqin()
|
|
|
|
+ },
|
|
|
|
+ // 周日期按钮状态
|
|
|
|
+ canSelect(item){
|
|
|
|
+ if(this.weekSwitchIndex < 2){
|
|
|
|
+ let date = new Date()
|
|
|
|
+ if(date.getTime() > item.getTime()){
|
|
|
|
+ return false
|
|
|
|
+ }else{
|
|
|
|
+ return true
|
|
|
|
+ }
|
|
|
|
+ }else {
|
|
|
|
+ return false
|
|
|
|
+ }
|
|
},
|
|
},
|
|
|
|
|
|
|
|
|
|
@@ -499,9 +498,10 @@
|
|
}
|
|
}
|
|
this.$forceUpdate();
|
|
this.$forceUpdate();
|
|
} else {
|
|
} else {
|
|
|
|
+ this.$toast.clear();
|
|
this.$toast.fail('获取失败:'+res.msg);
|
|
this.$toast.fail('获取失败:'+res.msg);
|
|
}
|
|
}
|
|
- }).catch(err=> {this.$toast.clear();});
|
|
|
|
|
|
+ }).catch(err=> {this.$toast.clear();this.$toast.fail(err);});
|
|
},
|
|
},
|
|
|
|
|
|
updateTxt() {
|
|
updateTxt() {
|
|
@@ -528,16 +528,6 @@
|
|
sea() {
|
|
sea() {
|
|
// console.log(this.userName.length)
|
|
// console.log(this.userName.length)
|
|
if(this.userName.length > 0) {
|
|
if(this.userName.length > 0) {
|
|
- // console.log(123)
|
|
|
|
- // let text = this.userName
|
|
|
|
- // let reg = new RegExp(text)
|
|
|
|
- // // let data = this.proads.filter(item => reg.test(item.projectName)) //返回
|
|
|
|
- // let data = this.proads.filter(item => reg.test(item.projectName)) //返回
|
|
|
|
- // let datas = this.proads.filter(item => reg.test(item.projectCode))
|
|
|
|
- // let dataTree = data.concat(datas)
|
|
|
|
- // let arrList = Array.from(new Set(dataTree))
|
|
|
|
- // // this.projectss = data
|
|
|
|
- // this.projectss = arrList
|
|
|
|
let data = this.proads.filter(item => {return item.projectName.indexOf(this.userName.toUpperCase()) != '-1'});
|
|
let data = this.proads.filter(item => {return item.projectName.indexOf(this.userName.toUpperCase()) != '-1'});
|
|
let dataList = this.proads.filter(item => {return item.projectCode.indexOf(this.userName.toUpperCase()) != '-1'});
|
|
let dataList = this.proads.filter(item => {return item.projectCode.indexOf(this.userName.toUpperCase()) != '-1'});
|
|
let dataTree = data.concat(dataList)
|
|
let dataTree = data.concat(dataList)
|
|
@@ -1813,5 +1803,19 @@
|
|
bottom: -0.95rem;
|
|
bottom: -0.95rem;
|
|
z-index: 1;
|
|
z-index: 1;
|
|
}
|
|
}
|
|
|
|
+ .kaoqin{
|
|
|
|
+ width: 100%;
|
|
|
|
+ padding: 0.1rem 0;
|
|
|
|
+ background-color: #fff;
|
|
|
|
+ color: #969799;
|
|
|
|
+ display: flex;
|
|
|
|
+ align-items: center;
|
|
|
|
+ font-size: 0.35rem;
|
|
|
|
+ line-height: 0.64rem;
|
|
|
|
+ }
|
|
|
|
+ .kaoqin span{
|
|
|
|
+ width: 50%;
|
|
|
|
+ text-align: center;
|
|
|
|
+ }
|
|
</style>
|
|
</style>
|
|
|
|
|