Merge branch 'main' into 'stg'

Main

See merge request cloud-mediate/mediate-manage-web!9
This commit is contained in:
刘翕 2025-02-11 02:59:41 +00:00
commit 3139e51619
25 changed files with 410 additions and 62 deletions

View File

@ -129,6 +129,9 @@ html{
.color-4E5969{
color: #4E5969;
}
.color-48b928{
color: #48b928 !important;
}
.color-text-primary{
color: $color-text-primary;

View File

@ -342,7 +342,7 @@ import apipack from "@/services/casePackageManagement";
userList:chooseUser
}
apipack.postpkgdispatchCase(data).then(res => {
api.dispatchCase(data).then(res => {
this.$message({
showClose: true,
message: '调解案件分配成功!',

View File

@ -316,7 +316,7 @@
<el-table-column label="操作" width="170">
<template slot-scope="scope">
<div class="flex-row align-items-center">
<!-- <el-button size="mini" @click="handleCaseDelete(scope)">删除</el-button> -->
<el-button size="mini" @click="handleCaseDelete(scope)">删除</el-button>
<el-button size="mini" @click="handleCaseShow(scope,fileList)">查看</el-button>
</div>
</template>

View File

@ -211,7 +211,7 @@
</div>
</div>
<div class="height-56 flex-row align-items-center justify-content-between" style="height: 22px;margin-left: 10px;margin-top: -10px;margin-bottom: 5px">
<div class="f22 color-text-primary"><el-checkbox :indeterminate="indeterminate" @change="handleCheckAllChange">全选</el-checkbox></div>
<div class="f22 color-text-primary"><el-checkbox :indeterminate="indeterminate" v-model="checkedCheckAll" @change="handleCheckAllChange">全选</el-checkbox></div>
</div>
<div class="case-table">
@ -233,7 +233,7 @@
<el-checkbox-group v-model="selectionData">
<!-- 此处的label是复选框右边显示的值也是选中后的值如果要一行的数据直接使用row即可 -->
<!-- label的内容会显示在页面上需要配合css把label的内容隐藏掉 -->
<el-checkbox :disabled="scope.row.caseStatus == 1 ? true :false" :key="scope.row.id" :label="scope.row.id"></el-checkbox>
<el-checkbox :disabled="scope.row.caseStatus == 0 || scope.row.caseStatus == 1 ? false :true" :key="scope.row.id" :label="scope.row.id"></el-checkbox>
</el-checkbox-group>
</span>
<span class="f-weight500 color-000 f16">被申请人
@ -366,6 +366,7 @@ import { values } from "lodash";
},
data() {
return {
checkedCheckAll:false,
CaseTraceDialog:null,//
isCheck: false,//
indeterminate: false,//selectionDatalength 0 < selectionData.length < enabledDataList.length true
@ -473,9 +474,13 @@ import { values } from "lodash";
},
//
handleCheckAllChange(value){
this.selectionData = value ? this.enabledDataList.map(el=>el.id) : [];
// this.selectionData = value ? this.enabledDataList.map(el=>el.id) : [];
// this.indeterminate = false;
let chooseData = this.enabledDataList.filter(el=>(el.caseStatus == 0 || el.caseStatus == 1))
console.log(chooseData,'chooseData')
this.selectionData = value ? chooseData.map(el=>el.id) : [];
this.indeterminate = false;
},
//
@ -574,6 +579,10 @@ import { values } from "lodash";
},
//
getCaseInfoList(val){
//
this.selectionData = []
this.checkedCheckAll = false
this.queryParam.current = val
api.getCaseInfoList(this.queryParam).then(res => {
if (!res.code) {

View File

@ -7,7 +7,7 @@
</div>
<el-collapse-transition>
<el-row :gutter="56">
<el-col :span="8">
<!-- <el-col :span="8">
<div class="flex-row-center align-items-center height-40 mb-24">
<span class="tabs__search-criteria-title flex-shrink-0 pr-16">案件包名称</span>
<el-input v-model.trim="queryParam.pkgName"
@ -15,7 +15,7 @@
@keydown.enter.native="handleSearch">
</el-input>
</div>
</el-col>
</el-col> -->
<el-col :span="12">
<div class="justify-content-start align-items-center height-40 mb-24">
<span class="tabs__search-criteria-title flex-shrink-0 pr-16">操作时间</span>
@ -30,7 +30,7 @@
</el-date-picker>
</div>
</el-col>
<el-col :span="4">
<el-col :span="12">
<div class="flex-row align-items-center justify-content-end">
<el-button @click="hanldeReset">重置</el-button>
<el-button type="primary" @click="handleSearch">搜索</el-button>
@ -54,17 +54,23 @@
<!-- <el-table-column type="selection" width="55" ></el-table-column> -->
<!-- <el-table-column prop="pkgName" label="案件包名称" show-overflow-tooltip ></el-table-column> -->
<!-- <el-table-column prop="queueName" label="队列名称" show-overflow-tooltip ></el-table-column> -->
<el-table-column prop="objectCount" label="外呼对象数" show-overflow-tooltip ></el-table-column>
<el-table-column prop="calledCount" label="已呼数" show-overflow-tooltip ></el-table-column>
<el-table-column prop="connectedCount" label="接通数" show-overflow-tooltip ></el-table-column>
<el-table-column prop="notConnectedCount" label="未接通数" show-overflow-tooltip ></el-table-column>
<el-table-column prop="notCalledCount" label="未呼数" show-overflow-tooltip ></el-table-column>
<el-table-column prop="createByName" label="操作人" show-overflow-tooltip ></el-table-column>
<el-table-column label="操作时间" show-overflow-tooltip >
<template slot-scope="scope">
<span >{{ scope.row.createAt | formaDate("yyyy-MM-dd hh:mm:ss") }}</span>
</template>
</el-table-column>
<el-table-column prop="createByName" label="操作人" show-overflow-tooltip ></el-table-column>
<el-table-column prop="objectCount" label="外呼对象数" show-overflow-tooltip ></el-table-column>
<el-table-column prop="calledCount" label="已呼数" show-overflow-tooltip ></el-table-column>
<el-table-column prop="connectedCount" label="接通数" show-overflow-tooltip ></el-table-column>
<el-table-column prop="notConnectedCount" label="未接通数" show-overflow-tooltip ></el-table-column>
<el-table-column prop="notCalledCount" label="未呼数" show-overflow-tooltip ></el-table-column>
<!-- <el-table-column prop="createByName" label="操作人" show-overflow-tooltip ></el-table-column> -->
<!-- <el-table-column label="操作时间" show-overflow-tooltip >
<template slot-scope="scope">
<span >{{ scope.row.createAt | formaDate("yyyy-MM-dd hh:mm:ss") }}</span>
</template>
</el-table-column> -->
<el-table-column label="操作" width="160">
<template slot-scope="scope">
@ -130,7 +136,9 @@ import { size } from "lodash";
handleChangeDate() {
this.activeUsage = ''
if(this.queryDate === null) {
this.setDateFast()
this.queryParam.beginTime = ''
this.queryParam.endTime = ''
this.queryDate = ''
}else {
this.queryParam.beginTime = this.$util.getDayStart(this.queryDate[0])
this.queryParam.endTime = this.$util.getDayEnd(this.queryDate[1])
@ -167,8 +175,9 @@ import { size } from "lodash";
},
//
getList(val){
this.queryParam.planBegin = this.queryParam.beginTime
this.queryParam.planEnd = this.queryParam.endTime
// this.queryParam.planBegin = this.queryParam.beginTime
// this.queryParam.planEnd = this.queryParam.endTime
this.queryParam.startTime = this.queryParam.beginTime
this.queryParam.current = val
api.posttrace_calling(this.queryParam).then(res => {
if (!res.code) {

View File

@ -153,7 +153,9 @@ import api from "@/services/eventTracingApi";
handleChangeDate() {
this.activeUsage = ''
if(this.queryDate === null) {
this.setDateFast()
this.queryParam.beginTime = ''
this.queryParam.endTime = ''
this.queryDate = ''
}else {
this.queryParam.beginTime = this.$util.getDayStart(this.queryDate[0])
this.queryParam.endTime = this.$util.getDayEnd(this.queryDate[1])
@ -177,8 +179,7 @@ import api from "@/services/eventTracingApi";
},
//
getList(val){
this.queryParam.planBegin = this.queryParam.beginTime
this.queryParam.planEnd = this.queryParam.endTime
this.queryParam.startTime = this.queryParam.beginTime
this.queryParam.current = val
api.posttrace_served(this.queryParam).then(res => {
if (!res.code) {

View File

@ -149,7 +149,9 @@ import api from "@/services/eventTracingApi";
handleChangeDate() {
this.activeUsage = ''
if(this.queryDate === null) {
this.setDateFast()
this.queryParam.beginTime = ''
this.queryParam.endTime = ''
this.queryDate = ''
}else {
this.queryParam.beginTime = this.$util.getDayStart(this.queryDate[0])
this.queryParam.endTime = this.$util.getDayEnd(this.queryDate[1])
@ -173,8 +175,7 @@ import api from "@/services/eventTracingApi";
},
//
getList(val){
this.queryParam.planBegin = this.queryParam.beginTime
this.queryParam.planEnd = this.queryParam.endTime
this.queryParam.startTime = this.queryParam.beginTime
this.queryParam.current = val
api.posttrace_generate(this.queryParam).then(res => {
if (!res.code) {

View File

@ -147,7 +147,9 @@ import caseManagementapi from "@/services/caseManagement";
handleChangeDate() {
this.activeUsage = ''
if(this.queryDate === null) {
this.setDateFast()
this.queryParam.beginTime = ''
this.queryParam.endTime = ''
this.queryDate = ''
}else {
this.queryParam.beginTime = this.$util.getDayStart(this.queryDate[0])
this.queryParam.endTime = this.$util.getDayEnd(this.queryDate[1])
@ -170,8 +172,7 @@ import caseManagementapi from "@/services/caseManagement";
},
//
getList(val){
this.queryParam.planBegin = this.queryParam.beginTime
this.queryParam.planEnd = this.queryParam.endTime
this.queryParam.startTime = this.queryParam.beginTime
this.queryParam.current = val
api.posttrace_seal(this.queryParam).then(res => {
if (!res.code) {

View File

@ -154,7 +154,9 @@ import api from "@/services/eventTracingApi";
handleChangeDate() {
this.activeUsage = ''
if(this.queryDate === null) {
this.setDateFast()
this.queryParam.beginTime = ''
this.queryParam.endTime = ''
this.queryDate = ''
}else {
this.queryParam.beginTime = this.$util.getDayStart(this.queryDate[0])
this.queryParam.endTime = this.$util.getDayEnd(this.queryDate[1])
@ -177,8 +179,7 @@ import api from "@/services/eventTracingApi";
},
//
getList(val){
this.queryParam.planBegin = this.queryParam.beginTime
this.queryParam.planEnd = this.queryParam.endTime
this.queryParam.startTime = this.queryParam.beginTime
this.queryParam.current = val
api.posttrace_sign(this.queryParam).then(res => {
if (!res.code) {

View File

@ -161,7 +161,9 @@ import caseapi from "@/services/caseManagement";
handleChangeDate() {
this.activeUsage = ''
if(this.queryDate === null) {
this.setDateFast()
this.queryParam.beginTime = ''
this.queryParam.endTime = ''
this.queryDate = ''
}else {
this.queryParam.beginTime = this.$util.getDayStart(this.queryDate[0])
this.queryParam.endTime = this.$util.getDayEnd(this.queryDate[1])
@ -184,8 +186,7 @@ import caseapi from "@/services/caseManagement";
},
//
getProofList(val){
this.queryParam.planBegin = this.queryParam.beginTime
this.queryParam.planEnd = this.queryParam.endTime
this.queryParam.startTime = this.queryParam.beginTime
this.queryParam.current = val
api.posttrace_proof(this.queryParam).then(res => {
if (!res.code) {

View File

@ -149,7 +149,9 @@ import api from "@/services/eventTracingApi";
handleChangeDate() {
this.activeUsage = ''
if(this.queryDate === null) {
this.setDateFast()
this.queryParam.beginTime = ''
this.queryParam.endTime = ''
this.queryDate = ''
}else {
this.queryParam.beginTime = this.$util.getDayStart(this.queryDate[0])
this.queryParam.endTime = this.$util.getDayEnd(this.queryDate[1])
@ -162,6 +164,8 @@ import api from "@/services/eventTracingApi";
}
this.queryParam.current = 1
this.queryParam.size = 10
this.activeUsage = ''
this.queryDate = ''
},
handleSearch() {
this.queryParam.size = 10;
@ -170,8 +174,8 @@ import api from "@/services/eventTracingApi";
},
//
getList(val){
this.queryParam.planBegin = this.queryParam.beginTime
this.queryParam.planEnd = this.queryParam.endTime
this.queryParam.startTime = this.queryParam.beginTime
// this.queryParam.planEnd = this.queryParam.endTime
this.queryParam.current = val
api.posttrace_sms(this.queryParam).then(res => {
if (!res.code) {

View File

@ -155,7 +155,9 @@ export default {
handleChangeDate() {
this.activeUsage = ''
if (this.queryDate === null) {
this.setDateFast()
this.queryParam.beginTime = ''
this.queryParam.endTime = ''
this.queryDate = ''
} else {
this.queryParam.beginTime = this.$util.getDayStart(this.queryDate[0])
this.queryParam.endTime = this.$util.getDayEnd(this.queryDate[1])
@ -178,8 +180,7 @@ export default {
},
//
getList(val) {
this.queryParam.planBegin = this.queryParam.beginTime
this.queryParam.planEnd = this.queryParam.endTime
this.queryParam.startTime = this.queryParam.beginTime
this.queryParam.current = val ? val : this.queryParam.current;
api.posttrace_video(this.queryParam).then(res => {
if (!res.code) {

View File

@ -134,7 +134,9 @@ import api from "@/services/eventTracingApi";
handleChangeDate() {
this.activeUsage = ''
if(this.queryDate === null) {
this.setDateFast()
this.queryParam.beginTime = ''
this.queryParam.endTime = ''
this.queryDate = ''
}else {
this.queryParam.beginTime = this.$util.getDayStart(this.queryDate[0])
this.queryParam.endTime = this.$util.getDayEnd(this.queryDate[1])
@ -157,8 +159,7 @@ import api from "@/services/eventTracingApi";
},
//
getList(val){
this.queryParam.planBegin = this.queryParam.beginTime
this.queryParam.planEnd = this.queryParam.endTime
this.queryParam.startTime = this.queryParam.beginTime
this.queryParam.current = val
api.posttrace_served_detail(this.queryParam).then(res => {
if (!res.code) {

View File

@ -118,7 +118,9 @@ import api from "@/services/eventTracingApi";
handleChangeDate() {
this.activeUsage = ''
if(this.queryDate === null) {
this.setDateFast()
this.queryParam.beginTime = ''
this.queryParam.endTime = ''
this.queryDate = ''
}else {
this.queryParam.beginTime = this.$util.getDayStart(this.queryDate[0])
this.queryParam.endTime = this.$util.getDayEnd(this.queryDate[1])
@ -141,8 +143,7 @@ import api from "@/services/eventTracingApi";
},
//
getList(val){
this.queryParam.planBegin = this.queryParam.beginTime
this.queryParam.planEnd = this.queryParam.endTime
this.queryParam.startTime = this.queryParam.beginTime
this.queryParam.current = val
api.posttrace_generate_detail(this.queryParam).then(res => {
if (!res.code) {

View File

@ -115,7 +115,9 @@ import api from "@/services/eventTracingApi";
handleChangeDate() {
this.activeUsage = ''
if(this.queryDate === null) {
this.setDateFast()
this.queryParam.beginTime = ''
this.queryParam.endTime = ''
this.queryDate = ''
}else {
this.queryParam.beginTime = this.$util.getDayStart(this.queryDate[0])
this.queryParam.endTime = this.$util.getDayEnd(this.queryDate[1])
@ -138,8 +140,7 @@ import api from "@/services/eventTracingApi";
},
//
getList(val){
this.queryParam.planBegin = this.queryParam.beginTime
this.queryParam.planEnd = this.queryParam.endTime
this.queryParam.startTime = this.queryParam.beginTime
this.queryParam.current = val
api.posttrace_sign_detail(this.queryParam).then(res => {
if (!res.code) {

View File

@ -9,7 +9,7 @@
<el-col :span="6">
<div class="flex-row-center align-items-center height-40 mb-24">
<span class="tabs__search-criteria-title flex-shrink-0 pr-16">短信接收人</span>
<el-input v-model.trim="queryParam.pkgName"
<el-input v-model.trim="queryParam.contact"
clearable placeholder="请输入短信接收人"
@keydown.enter.native="handleSearch">
</el-input>
@ -78,7 +78,7 @@
<el-table-column prop="createByName" label="操作人" show-overflow-tooltip></el-table-column>
<el-table-column label="操作时间" show-overflow-tooltip>
<template slot-scope="scope">
<span>{{ scope.row.createAt | formaDate("yyyy-MM-dd hh:mm:ss") }}</span>
<span>{{ scope.row.updateAt | formaDate("yyyy-MM-dd hh:mm:ss") }}</span>
</template>
</el-table-column>
@ -123,6 +123,7 @@ export default {
return {
queryDate: '',
queryParam: {
contact:'',
traceId: '',
phone: '',
beginTime: '',
@ -146,7 +147,9 @@ export default {
handleChangeDate() {
this.activeUsage = ''
if (this.queryDate === null) {
this.setDateFast()
this.queryParam.beginTime = ''
this.queryParam.endTime = ''
this.queryDate = ''
} else {
this.queryParam.beginTime = this.$util.getDayStart(this.queryDate[0])
this.queryParam.endTime = this.$util.getDayEnd(this.queryDate[1])
@ -169,8 +172,9 @@ export default {
},
//
getList(val) {
this.queryParam.planBegin = this.queryParam.beginTime
this.queryParam.planEnd = this.queryParam.endTime
this.queryParam.startTime = this.queryParam.beginTime
// this.queryParam.planBegin = this.queryParam.beginTime
// this.queryParam.planEnd = this.queryParam.endTime
this.queryParam.current = val
api.posttrace_sms_detail(this.queryParam).then(res => {
if (!res.code) {

View File

@ -695,6 +695,8 @@ import { values } from "lodash";
this.queryParam.size = 10
this.activeUsage = ''
this.queryDate = ''
this.activeName = 'all'
this.getCaseInfoList(1)
},
handleSearch() {
this.queryParam.size = 10;

View File

@ -340,12 +340,7 @@ export default {
caseId:'',
linkedWay:''
},
materialTypeOptions: [
{label:'承诺账户',value:'1'},{label:'重点账户',value:'2'},{label:'拒联账户',value:'3'},{label:'已结清客户',value:'4'},
{label:'疑难账户',value:'5'},{label:'失联账户',value:'6'},{label:'半失联账户',value:'7'},{label:'部分还款账户',value:'8'},
{label:'适诉案件',value:'9'},{label:'可联账户',value:'10'},{label:'投诉倾向客户',value:'11'},{label:'分期客户',value:'12'},
{label:'其他/无标签',value:'13'}
],
materialTypeOptions: this.$util.getMediationprogress(),
queue: false,
queueList: [],

View File

@ -0,0 +1,144 @@
<template>
<div>
<el-dialog
title="坐席绑定"
:visible="true"
width="400px"
append-to-body
:close-on-click-modal="false"
@close="handleClose">
<div class="dialog-content">
<el-form ref="ruleForm"
:model="userInfo"
:rules="rulesClient"
label-width="80px"
class="demo-ruleForm">
<el-row type="flex" align="middle">
<el-col :span="24">
<el-form-item label="用户" prop="userId">
<el-select v-model="userInfo.userId" placeholder="请选择">
<el-option
v-for="item in userList"
:key="item.id"
:label="item.realName"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row type="flex" align="middle">
<el-col :span="24">
<el-form-item label="坐席电话" prop="seatTelephone">
<el-select v-model="userInfo.seatTelephone" placeholder="请选择">
<el-option
v-for="item in phoneList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="handleClose()">取消</el-button>
<el-button type="primary" @click="handleSubmit()">确认</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import systemManageApi from "@/services/systemManage";
export default {
name: 'addOrEditRoleDialog',
props: {
addOrEditRoleConfig: {
type: Boolean,
default: () => {
return false
}
},
},
data() {
return {
userInfo:{
userId:'',//
seatTelephone:'',//
},
rulesClient: {
userId: [
{ required: true, message: '请选择用户', trigger: 'change',},
],
seatTelephone: [
{ required: true, message: '请选择坐席电话', trigger: 'change',},
],
},
phoneList: [],
userList: [],
}
},
mounted () {
this.getSeatPhone()
this.getSeatUnbindUser()
},
methods: {
getSeatPhone() {
systemManageApi.getSeatPhone({}).then(res => {
if (!res.code) {
this.phoneList = res || []
}
})
},
getSeatUnbindUser() {
systemManageApi.getSeatUnbindUser({}).then(res => {
if (!res.code) {
this.userList = res || []
}
})
},
handleSubmit() {
if(!this.$clickThrottle()) { return }
let _this=this;
this.$refs.ruleForm.validate((valid) => {
if(valid) {
systemManageApi.seatUnbind(_this.userInfo).then(res => {
this.$message({
showClose: true,
message: '绑定成功!',
type: 'success'
});
this.$parent.getSeatList(1)
this.handleClose()
})
}
})
},
handleClose() {
this.$emit('update:addOrEditRoleConfig', false)
},
}
}
</script>
<style lang="scss" scoped>
.dialog-content{
padding: $size16;
max-height:500px
}
::v-deep .el-dialog__header{
border-bottom: 1px solid $border-color-lighter !important;
}
::v-deep .el-dialog__footer{
border-top: 1px solid $border-color-lighter !important;
}
</style>

View File

@ -0,0 +1,140 @@
<template>
<div class="layout-content-wrap background-color-fff border-radius-8">
<div class="border-b-solid-lighter-1 p-h-24">
<div class="flex-row justify-content-between height-56 align-items-center">
<div class="color-text-primary f22">坐席列表</div>
<div class="color-text-regular f14" >
<el-button type="primary" @click="handleAddForm" size="small">新增</el-button>
</div>
</div>
</div>
<div class="layout-tabs-content-box">
<div class="">
<el-table ref="monthlyPlanTable"
:data="tableData"
:header-cell-style="{background:'#F5F7FA'}"
row-key="id"
:tree-props="{children: 'children', hasChildren: 'hasChildren'}"
>
<el-table-column
v-for="(item, i) in tableHead"
:key="i"
:prop="item.prop"
:label="item.label"
:width="item.width"
:show-overflow-tooltip="item.showOverflowTooltip"
:formatter="item.formatter"
>
</el-table-column>
<el-table-column label="操作" width="100">
<template slot-scope="scope">
<div class="flex-row">
<div class="f14 color-1960F4 cursor-pointer mr-8" @click="handleAddForm(scope)">解绑</div>
</div>
</template>
</el-table-column>
</el-table>
<div class="text-center p-v-24">
<el-pagination
@size-change="getRoleList"
@current-change="getRoleList"
:current-page="queryData.current"
:page-size="queryData.size"
layout="total, prev, pager, next, jumper"
:total="total">
</el-pagination>
</div>
</div>
</div>
<!-- 新增-编辑 -->
<addOrEditRoleDialog v-if="addOrEditRoleConfig" :addOrEditRoleConfig.sync="addOrEditRoleConfig" />
</div>
</template>
<script>
import systemManageApi from "@/services/systemManage";
export default {
components: {
addOrEditRoleDialog: () => import('./components/addOrEditRoleDialog.vue'),
},
data() {
return {
tableData:[],
tableHead: [
{
prop: "userShowName",
label: "用户名称",
showOverflowTooltip: false,
formatter: this.formatTable,
},
{
prop: "seatTelephone",
label: "座席电话",
showOverflowTooltip: false,
formatter: this.formatTable,
},
{
prop: "bindTime",
label: "绑定时间",
showOverflowTooltip: false,
formatter: this.formatTable,
},
],
queryData: {
current: 1,
size: 10,
},
total: 0,
addOrEditRoleConfig:null,//
}
},
created() {
this.getSeatList(1)
},
methods: {
getSeatList(val){
if(val!=undefined){this.queryData.current = val}
systemManageApi.getSeatList(this.queryData).then(res => {
if (!res.code) {
this.tableData = res.records;
this.total = res.total;
}
})
},
//
handleAddForm(){
this.addOrEditRoleConfig = true
},
//
handleDelete(scope){
this.$confirm("确定解绑坐席电话, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}).then(() => {
if(!this.$clickThrottle()) { return }//
systemManageApi.seatUnbind({ id: scope.row.id }).then((res) => {
this.$message.success("解绑成功");
this.getSeatList(1)
});
}).catch(() => {});
},
formatTable(row, column, cellValue, index) {
return cellValue || "-";
},
}
}
</script>
<style lang="scss" scoped>
.el-table--fit {
border:1px solid $border-color-lighter !important;
border-bottom: 0!important;
}
</style>

View File

@ -171,7 +171,7 @@
<span>文书送达追踪</span><span><a>{{traceData.documentDeliveryTrackingCount.failed}}</a>/<a>{{traceData.documentDeliveryTrackingCount.total}}</a></span>
</div>
<div class="flex-row justify-content-between cursor-pointer" @click="eventTraDialog={traceType:7,title:'还款凭证登记'}">
<span>还款凭证登记</span><span><a>{{traceData.repaymentRecordTrackingCount.failed}}</a>/<a>{{traceData.repaymentRecordTrackingCount.total}}</a></span>
<span>还款凭证登记</span><span><a class="color-48b928">{{traceData.repaymentRecordTrackingCount.failed}}</a>/<a>{{traceData.repaymentRecordTrackingCount.total}}</a></span>
</div>
</div>
</div>

View File

@ -99,6 +99,12 @@ const routes = [
component: () => import("@/pages/system-management/department-management"),
meta: { title: "团队管理", icon: 'menu-department-management' },
},
{
path: "/system-management/take-management",
name: "/system-management/take-management",
component: () => import("@/pages/system-management/take-management"),
meta: { title: "坐席管理", icon: 'menu-take-management' },
},
]
},

View File

@ -24,7 +24,6 @@ const caseManagementApi = {
postpkgdispatchCase: data => {
return service.service.post(`${apiMediate}case_pkg/dispatchCase`, data)
},
// 金融机构
postorgs: data => {
return service.service.post(`${apiMediate}case_pkg/orgs`, data)

View File

@ -77,6 +77,30 @@ const systemLogApi = {
//========================end::角色相关======================================
//========================start::坐席相关======================================
// 角色列表
getSeatList: data => {
return service.service.post(`${apiAdmin}system/user/seat/page`, data)
},
// 座席绑定
seatBind: data => {
return service.service.post(`${apiAdmin}system/user/seat/bind`, data)
},
// 座席解绑
seatUnbind: data => {
return service.service.post(`${apiAdmin}system/user/seat/unbind`, data)
},
// 获取坐席电话
getSeatPhone: data => {
return service.service.get(`${apiAdmin}system/user/seat/phone`, data)
},
// 获取未绑定坐席用户
getSeatUnbindUser: data => {
return service.service.post(`${apiAdmin}system/user/seat/unbind/user`, data)
},
//========================end::坐席相关======================================
//========================start::菜单管理======================================
// 菜单列表
getResourceList: data => {

View File

@ -449,7 +449,7 @@ const util = {
return [
{label:'承诺账户',value:1},{label:'重点账户',value:2},{label:'拒联账户',value:3},{label:'已结清客户',value:4},
{label:'疑难账户',value:5},{label:'失联账户',value:6},{label:'半失联账户',value:7},{label:'部分还款账户',value:8},
{label:'适诉案件',value:9},{label:'可联账户',value:11},{label:'投诉倾向客户',value:11},{label:'分期客户',value:12},
{label:'适诉案件',value:9},{label:'可联账户',value:10},{label:'投诉倾向客户',value:11},{label:'分期客户',value:12},
{label:'其他/无标签',value:13}
]
},