|
@ -3,43 +3,52 @@ |
|
|
<div class="scroll-box" ref="scroll-content"> |
|
|
<div class="scroll-box" ref="scroll-content"> |
|
|
<van-tabs :active="active" sticky @change="hadelChangeTab"> |
|
|
<van-tabs :active="active" sticky @change="hadelChangeTab"> |
|
|
<van-tab title="待接单"> |
|
|
<van-tab title="待接单"> |
|
|
<card :tableData="list" @handleCLickReceive="handleCLickReceive"></card> |
|
|
<card :tableData="list" @handleCLickReceive="handleCLickReceive"> |
|
|
|
|
|
</card> |
|
|
</van-tab> |
|
|
</van-tab> |
|
|
<van-tab title="待处理"> |
|
|
<van-tab title="待处理"> |
|
|
<card :tableData="list"></card> |
|
|
<card :tableData="list" @handelServiceConfirm="handelServiceConfirm"></card> |
|
|
</van-tab> |
|
|
</van-tab> |
|
|
<van-tab title="已完成">内容 3</van-tab> |
|
|
<van-tab title="已完成">内容 3</van-tab> |
|
|
</van-tabs> |
|
|
</van-tabs> |
|
|
</div> |
|
|
</div> |
|
|
<van-dialog v-model="showRole" title="请选择接单身份" show-cancel-button @confirm="receiveService"> |
|
|
<van-dialog v-model="showRole" title="请选择接单身份" show-cancel-button @confirm="receiveService"> |
|
|
<van-radio-group v-model="serviceOrgType"> |
|
|
<van-radio-group v-model="serviceOrgType"> |
|
|
<van-radio :name="item.serviceOrgType" v-for="(item) in roleList" :key="item.id">{{item.serviceOrgName}}</van-radio> |
|
|
<van-radio :name="item.serviceOrgType" v-for="(item) in roleList" :key="item.id">{{ item.serviceOrgName |
|
|
|
|
|
}}</van-radio> |
|
|
</van-radio-group> |
|
|
</van-radio-group> |
|
|
</van-dialog> |
|
|
</van-dialog> |
|
|
<van-dialog v-model="showScope" title="" show-cancel-button @confirm="receiveService"> |
|
|
<van-dialog v-model="showScope" title="" show-cancel-button @confirm="receiveService"> |
|
|
<van-datetime-picker |
|
|
<p>服务时间</p> |
|
|
v-model="serviceTimeStart" |
|
|
<span @click="showStart = true, showPopup = true" class="font-size13">{{ serviceTimeStart || '开始时间' |
|
|
type="datetime" |
|
|
}}</span><span class="tag-date">至</span><span @click="showEnd = true, showPopup = true" |
|
|
title="开始时间" |
|
|
class="font-size13">{{ serviceTimeEnd || '结束时间' }}</span> |
|
|
:min-date="minDate" |
|
|
<p>服务范围</p> |
|
|
:max-date="maxDate" |
|
|
<span class="font-size13" @click="showTree = true, showPopup = true">{{ serviceScopeName || '请选择范围' |
|
|
/> |
|
|
}}</span> |
|
|
至 |
|
|
<p>接单身份</p> |
|
|
<van-datetime-picker |
|
|
<van-radio-group v-model="serviceOrgType"> |
|
|
v-model="serviceTimeStart" |
|
|
<van-radio :name="item.serviceOrgType" v-for="(item) in roleList" :key="item.id" |
|
|
type="datetime" |
|
|
@click="handelChangeRole(item.serviceOrgId)">{{ item.serviceOrgName |
|
|
title="结束时间" |
|
|
}}</van-radio> |
|
|
:min-date="minDate" |
|
|
</van-radio-group> |
|
|
:max-date="maxDate" |
|
|
|
|
|
/> |
|
|
|
|
|
</van-dialog> |
|
|
</van-dialog> |
|
|
|
|
|
|
|
|
|
|
|
<van-popup v-model="showPopup" position="bottom"> |
|
|
|
|
|
<van-datetime-picker v-if="showStart" v-model="serviceTimeStart" type="datetime" title="开始时间" |
|
|
|
|
|
@confirm="handelCLickConfirmStart" @cancel="showPopup = false" :min-date="minDate" /> |
|
|
|
|
|
<van-datetime-picker v-if="showEnd" v-model="serviceTimeEnd" @confirm="handelCLickConfirmEnd" |
|
|
|
|
|
@cancel="showPopup = false" type="datetime" title="结束时间" :min-date="minDate" /> |
|
|
|
|
|
<van-cascader v-if="showTree" v-model="cascaderValue" title="请选择范围" :options="treeOptions" |
|
|
|
|
|
@close="showTree = false, showPopup = false" @finish="onFinish" |
|
|
|
|
|
:field-names="{ text: 'objectName', value: 'objectId' }" /> |
|
|
|
|
|
</van-popup> |
|
|
</div> |
|
|
</div> |
|
|
</template> |
|
|
</template> |
|
|
<script> |
|
|
<script> |
|
|
import card from './card.vue' |
|
|
import card from './card.vue' |
|
|
import throttle from 'lodash/debounce' |
|
|
import throttle from 'lodash/debounce' |
|
|
import { getServiceListRcv, getServiceListProcess , getServiceListCompleted,getCommonalityDetail,getMeasureDetail, getListMyIdentities,receiveService} from '@/api/service' |
|
|
import { getServiceListRcv, getServiceListProcess, getServiceListCompleted, getCommonalityDetail, getMeasureDetail, getListMyIdentities, receiveService, getServiceScopeTree, serviceConfirm } from '@/api/service' |
|
|
export default { |
|
|
export default { |
|
|
data() { |
|
|
data() { |
|
|
return { |
|
|
return { |
|
@ -50,17 +59,28 @@ export default { |
|
|
pageSize: 4, |
|
|
pageSize: 4, |
|
|
list: [], |
|
|
list: [], |
|
|
total: 0, |
|
|
total: 0, |
|
|
requestFlag:false, |
|
|
requestFlag: false, |
|
|
showRole:false, |
|
|
showRole: false, |
|
|
roleList:[], |
|
|
roleList: [], |
|
|
serviceOrgType:null, |
|
|
serviceOrgType: null, |
|
|
serviceOrgId:null, |
|
|
serviceOrgId: null, |
|
|
showScope:null |
|
|
showScope: false, |
|
|
|
|
|
serviceTimeStart: null, |
|
|
|
|
|
serviceTimeEnd: null, |
|
|
|
|
|
showStart: false, |
|
|
|
|
|
showEnd: false, |
|
|
|
|
|
showTree: false, |
|
|
|
|
|
showPopup: false, |
|
|
|
|
|
minDate: new Date(), |
|
|
|
|
|
treeOptions: null, |
|
|
|
|
|
cascaderValue: null, |
|
|
|
|
|
serviceScopeName: null |
|
|
}; |
|
|
}; |
|
|
}, |
|
|
}, |
|
|
created() { |
|
|
created() { |
|
|
this.getListMyIdentities() |
|
|
this.getListMyIdentities() |
|
|
this.getServiceListRcv() |
|
|
this.getServiceListRcv() |
|
|
|
|
|
this.getServiceScopeTree() |
|
|
}, |
|
|
}, |
|
|
mounted() { |
|
|
mounted() { |
|
|
this.clientHeight = document.documentElement.clientHeight; //可视高度 |
|
|
this.clientHeight = document.documentElement.clientHeight; //可视高度 |
|
@ -71,57 +91,101 @@ export default { |
|
|
}) |
|
|
}) |
|
|
}, |
|
|
}, |
|
|
methods: { |
|
|
methods: { |
|
|
|
|
|
onFinish(value) { |
|
|
|
|
|
this.showTree = false; |
|
|
|
|
|
this.showPopup = false; |
|
|
|
|
|
this.serviceScopeList = value.selectedOptions.map(item => ({ objectType: item.objectType, objectId: item.objectId, objectName: item.objectName })) |
|
|
|
|
|
this.serviceScopeName = value.selectedOptions.map(item => item.objectName).join('-') |
|
|
|
|
|
}, |
|
|
|
|
|
handelCLickConfirmStart(val) { |
|
|
|
|
|
this.serviceTimeStart = this.$dayjs(val).format('YYYY-MM-DD HH:mm:ss'); |
|
|
|
|
|
this.showPopup = false; |
|
|
|
|
|
this.showStart = false; |
|
|
|
|
|
}, |
|
|
|
|
|
handelCLickConfirmEnd(val) { |
|
|
|
|
|
this.serviceTimeEnd = this.$dayjs(val).format('YYYY-MM-DD HH:mm:ss'); |
|
|
|
|
|
this.showPopup = false; |
|
|
|
|
|
this.showEnd = false; |
|
|
|
|
|
}, |
|
|
//提交接单 |
|
|
//提交接单 |
|
|
async receiveService(){ |
|
|
async receiveService() { |
|
|
let parm = { |
|
|
let parm = { |
|
|
...this.formData, |
|
|
...this.formData, |
|
|
serviceOrgType:this.serviceOrgType, |
|
|
id: this.serverId, |
|
|
serviceOrgId:this.serviceOrgId, |
|
|
} |
|
|
id:this.serverId |
|
|
if (this.showScope) { |
|
|
|
|
|
parm.serviceScopeList = this.serviceScopeList; |
|
|
|
|
|
parm.serviceTimeStart = this.serviceTimeStart; |
|
|
|
|
|
parm.serviceTimeEnd = this.serviceTimeEnd; |
|
|
|
|
|
parm.serviceOrgType = this.serviceOrgType; |
|
|
|
|
|
parm.serviceOrgId = this.serviceOrgId; |
|
|
|
|
|
} else if (this.showRole) { |
|
|
|
|
|
parm.serviceOrgType = this.serviceOrgType; |
|
|
|
|
|
parm.serviceOrgId = this.serviceOrgId; |
|
|
} |
|
|
} |
|
|
console.log(parm); |
|
|
console.log(parm); |
|
|
// let {data,code,msg} = await receiveService(parm) |
|
|
let { data, code, msg } = await receiveService(parm) |
|
|
// if(code === 0){ |
|
|
if (code === 0) { |
|
|
// this.$toast.success('接单成功') |
|
|
this.$toast.success('接单成功') |
|
|
// this.showRole = false; |
|
|
this.showRole = false; |
|
|
// this.pageNo = 1; |
|
|
this.pageNo = 1; |
|
|
// this.getTableData(); |
|
|
this.list = []; |
|
|
// } |
|
|
this.getTableData(); |
|
|
}, |
|
|
} |
|
|
handleCLickReceive(item){ |
|
|
}, |
|
|
|
|
|
handelChangeRole(val) { |
|
|
|
|
|
this.serviceOrgId = val; |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
//接单 |
|
|
|
|
|
handleCLickReceive(item) { |
|
|
this.showRole = item.source === 4; |
|
|
this.showRole = item.source === 4; |
|
|
this.showScope = item.source === 0; |
|
|
this.showScope = item.source === 1; |
|
|
this.serverId = item.id; |
|
|
this.serverId = item.id; |
|
|
if(item.source === 4){ |
|
|
if (item.source === 4) { |
|
|
this.getMeasureDetail() |
|
|
this.getMeasureDetail() |
|
|
}else { |
|
|
} else { |
|
|
this.getCommonalityDetail() |
|
|
this.getCommonalityDetail() |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
async getListMyIdentities(){ |
|
|
//确认服务 |
|
|
let {data,code,msg} = await getListMyIdentities() |
|
|
async handelServiceConfirm(val) { |
|
|
if(code === 0){ |
|
|
let { data, code, msg } = await serviceConfirm({ id: val.id }) |
|
|
|
|
|
if (code === 0) { |
|
|
|
|
|
this.$toast.success('确认成功') |
|
|
|
|
|
this.pageNo = 1; |
|
|
|
|
|
this.list = []; |
|
|
|
|
|
this.getTableData(); |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
async getListMyIdentities() { |
|
|
|
|
|
let { data, code, msg } = await getListMyIdentities() |
|
|
|
|
|
if (code === 0) { |
|
|
this.roleList = data; |
|
|
this.roleList = data; |
|
|
this.serviceOrgId = data[0].id; |
|
|
|
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
|
|
|
async getMeasureDetail() { |
|
|
async getMeasureDetail(){ |
|
|
let { data, code, msg } = await getMeasureDetail({ id: this.serverId }) |
|
|
let {data,code,msg} = await getMeasureDetail({id:this.serverId}) |
|
|
if (code === 0) { |
|
|
if(code === 0){ |
|
|
|
|
|
this.formData = data; |
|
|
this.formData = data; |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
async getCommonalityDetail(){ |
|
|
async getCommonalityDetail() { |
|
|
let {data,code,msg} = await getCommonalityDetail({id:this.serverId}) |
|
|
let { data, code, msg } = await getCommonalityDetail({ id: this.serverId }) |
|
|
if(code === 0){ |
|
|
if (code === 0) { |
|
|
this.formData = data; |
|
|
this.formData = data; |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
hadelChangeTab(e){ |
|
|
async getServiceScopeTree() { |
|
|
|
|
|
let { data, code, msg } = await getServiceScopeTree({ id: this.serverId }) |
|
|
|
|
|
if (code === 0) { |
|
|
|
|
|
this.treeOptions = [data]; |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
|
|
|
hadelChangeTab(e) { |
|
|
this.list = []; |
|
|
this.list = []; |
|
|
this.pageNo = 1; |
|
|
this.pageNo = 1; |
|
|
this.active = e |
|
|
this.active = e; |
|
|
this.getTableData('tab') |
|
|
this.getTableData('tab') |
|
|
}, |
|
|
}, |
|
|
//滚动加载 |
|
|
//滚动加载 |
|
@ -135,15 +199,15 @@ export default { |
|
|
} |
|
|
} |
|
|
}, 500), |
|
|
}, 500), |
|
|
|
|
|
|
|
|
getTableData(tab){ |
|
|
getTableData(tab) { |
|
|
if ((this.active === 0 && this.requestFlag) || (tab && this.active === 0)) { |
|
|
if ((this.active === 0 && this.requestFlag) || (tab && this.active === 0)) { |
|
|
this.getServiceListRcv(); |
|
|
this.getServiceListRcv(); |
|
|
} else if ((this.active === 1 && this.requestFlag) || (tab && this.active === 1)) { |
|
|
} else if ((this.active === 1 && this.requestFlag) || (tab && this.active === 1)) { |
|
|
this.getServiceListProcess(); |
|
|
this.getServiceListProcess(); |
|
|
}else if((this.active === 2 && this.requestFlag ) || (tab && this.active === 2)){ |
|
|
} else if ((this.active === 2 && this.requestFlag) || (tab && this.active === 2)) { |
|
|
this.getServiceListCompleted() |
|
|
this.getServiceListCompleted() |
|
|
} |
|
|
} |
|
|
if(!this.requestFlag){ |
|
|
if (!this.requestFlag) { |
|
|
this.$toast({ |
|
|
this.$toast({ |
|
|
message: '没有更多数据了', |
|
|
message: '没有更多数据了', |
|
|
duration: 1000 |
|
|
duration: 1000 |
|
@ -156,7 +220,6 @@ export default { |
|
|
pageNo: this.pageNo, |
|
|
pageNo: this.pageNo, |
|
|
pageSize: this.pageSize |
|
|
pageSize: this.pageSize |
|
|
}).then(res => { |
|
|
}).then(res => { |
|
|
console.log(res); |
|
|
|
|
|
this.total = res.total; |
|
|
this.total = res.total; |
|
|
this.requestFlag = res.data.list.length === this.pageSize; |
|
|
this.requestFlag = res.data.list.length === this.pageSize; |
|
|
this.list = this.list.concat(res.data.list) |
|
|
this.list = this.list.concat(res.data.list) |
|
@ -171,20 +234,20 @@ export default { |
|
|
pageSize: this.pageSize |
|
|
pageSize: this.pageSize |
|
|
}).then(res => { |
|
|
}).then(res => { |
|
|
this.total = res.total; |
|
|
this.total = res.total; |
|
|
// this.requestFlag = res.length === this.pageSize; |
|
|
this.requestFlag = res.data.list.length === this.pageSize; |
|
|
this.list = res.data.list; |
|
|
this.list = res.data.list; |
|
|
|
|
|
|
|
|
}).catch(err => { |
|
|
}).catch(err => { |
|
|
}) |
|
|
}) |
|
|
}, |
|
|
}, |
|
|
// 获取已完成 |
|
|
// 获取已完成 |
|
|
getServiceListCompleted(){ |
|
|
getServiceListCompleted() { |
|
|
getServiceListCompleted({ |
|
|
getServiceListCompleted({ |
|
|
pageNo: this.pageNo, |
|
|
pageNo: this.pageNo, |
|
|
pageSize: this.pageSize |
|
|
pageSize: this.pageSize |
|
|
}).then(res => { |
|
|
}).then(res => { |
|
|
this.total = res.total; |
|
|
this.total = res.total; |
|
|
this.requestFlag = res.length === this.pageSize; |
|
|
this.requestFlag = res.data.list === this.pageSize; |
|
|
this.list = this.list.concat(...this.list, ...res.list); |
|
|
this.list = this.list.concat(...this.list, ...res.list); |
|
|
}).catch(err => { |
|
|
}).catch(err => { |
|
|
}) |
|
|
}) |
|
@ -200,12 +263,13 @@ export default { |
|
|
</script> |
|
|
</script> |
|
|
|
|
|
|
|
|
<style lang='less' scoped> |
|
|
<style lang='less' scoped> |
|
|
:deep(.van-tabs__content){ |
|
|
:deep(.van-tabs__content) { |
|
|
padding: 0 10px 20px; |
|
|
padding: 0 10px 20px; |
|
|
box-sizing: border-box; |
|
|
box-sizing: border-box; |
|
|
} |
|
|
} |
|
|
:deep(.van-dialog__content){ |
|
|
|
|
|
padding:10px; |
|
|
:deep(.van-dialog__content) { |
|
|
|
|
|
padding: 10px; |
|
|
box-sizing: border-box; |
|
|
box-sizing: border-box; |
|
|
} |
|
|
} |
|
|
</style> |
|
|
</style> |
|
|