部分追踪

This commit is contained in:
liuxi 2024-12-19 18:04:51 +08:00
parent 79d1901f8c
commit 7152372dca
23 changed files with 1734 additions and 270 deletions

View File

@ -0,0 +1,692 @@
<template>
<div>
<el-dialog
:title="addCaseDialog.title"
:visible="true"
width="880px"
append-to-body
:close-on-click-modal="false"
@close="handleClose"
>
<div >
<el-steps :active="presentStep" align-center class="mt-16">
<el-step v-for="(item,inx) in transferStep" :key="inx" :title="item.title" :description="item.description"></el-step>
</el-steps>
<!-- 基本信息 -->
<div v-if="presentStep === 1">
<div>
<div class="height-48 line-height-48 f18 color-000 m-v-16 p-h-24">基本信息</div>
<div class="p-h-24">
<el-form ref="ruleFormBase"
:model="baseInfo"
:rules="rulesClient"
label-width="150px"
class="demo-ruleForm">
<el-row type="flex" align="middle">
<el-col :span="12">
<el-form-item label="案件包" prop="financialOrgName">
<el-select v-model="baseInfo.pkgId"
clearable placeholder="请选择案件包"
class="width100" @change="apkChange">
<el-option
v-for="item in CasepackageList"
:key="item.id"
:label="item.pkgName"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="金融机构名称" prop="financialOrgName">
<el-input
v-model.trim="baseInfo.financialOrgName"
placeholder="请输入金融机构名称"
disabled
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row type="flex" align="middle">
<el-col :span="12">
<el-form-item label="社会统一信用代码" prop="financialOrgCode">
<el-input
v-model.trim="baseInfo.financialOrgCode"
placeholder="请输入社会统一信用代码"
clearable
maxlength="18"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="案件名称" prop="caseName">
<el-input
clearable
placeholder="请输入案件名称"
v-model="baseInfo.caseName">
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row type="flex" align="middle">
<el-col :span="12">
<el-form-item label="案件编号" prop="caseNo">
<el-input
clearable
placeholder="请输入案件编号"
v-model="baseInfo.caseNo">
</el-input>
</el-form-item>
</el-col>
<!-- <el-col :span="12">
<el-form-item label="金融产品类型" prop="productTypeId">
<el-select v-model="baseInfo.productTypeId"
clearable placeholder="请选择金融产品类型"
class="width100">
<el-option
v-for="item in financialProductsTypeOptions"
:key="item.code"
:label="item.codeName"
:value="item.code">
</el-option>
</el-select>
</el-form-item>
</el-col> -->
<el-col :span="12">
<el-form-item label="标的金额" prop="moneyAmount">
<el-input
clearable
placeholder="请输入内容"
v-model="baseInfo.moneyAmount">
<template slot="append"></template>
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row type="flex" align="middle">
<el-col :span="12">
<el-form-item label="逾期次数" prop="overdueTimes">
<el-input-number v-model="baseInfo.overdueTimes" :min="0" :max="100" class="width100"></el-input-number>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="案件描述" prop="caseDescr">
<el-input
clearable
placeholder="请输入内容"
v-model="baseInfo.caseDescr">
</el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</div>
</div>
<!-- 当事人信息 -->
<div v-else-if="presentStep === 2">
<div>
<div class="height-48 line-height-48 f18 color-000 m-v-16 p-h-24">案件当事人</div>
<div class="p-h-24">
<div class="border-solid-lighter-1 p-h-24 mb-16">
<div class="flex-row justify-content-between height-48 line-height-48 f14 border-b-solid-lighter-1 mb-16">
<div class="color-000">申请人</div>
<div class="color-text-regular cursor-pointer" @click="handleReset">清空<i class="el-icon-close"></i></div>
</div>
<el-form ref="ruleFormCreditor"
:model="creditorInfo"
:rules="rulesClientCreditor"
label-width="150px"
class="demo-ruleForm">
<el-row type="flex" align="middle">
<el-col :span="12">
<el-form-item label="申请人名称" prop="creditorName">
<el-input
v-model.trim="creditorInfo.creditorName"
placeholder="请输入申请人名称"
clearable
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="社会统一信用代码" prop="creditorOrgCode">
<el-input
v-model.trim="creditorInfo.creditorOrgCode"
placeholder="请输入社会统一信用代码"
clearable
maxlength="18"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row type="flex" align="middle">
<el-col :span="12">
<el-form-item label="法人姓名" prop="creditorLegal">
<el-input
clearable
placeholder="请输入法人姓名"
v-model="creditorInfo.creditorLegal">
</el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="法人身份证号" prop="creditorIdcard">
<el-input
clearable
placeholder="请输入法人身份证号"
v-model="creditorInfo.creditorIdcard"
maxlength="18">
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row type="flex" align="middle">
<el-col :span="12">
<el-form-item label="法人手机号" prop="creditorPhone">
<el-input
clearable
placeholder="请输入法人手机号"
v-model="creditorInfo.creditorPhone"
maxlength="11"
>
</el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="公司地址" prop="creditorAddr">
<el-input
clearable
placeholder="请输入公司地址"
v-model="creditorInfo.creditorAddr">
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row type="flex" align="middle">
<el-col :span="12">
<el-form-item label="邮编" prop="creditorMail">
<el-input
clearable
placeholder="请输入邮编"
v-model="creditorInfo.creditorMail"
maxlength="6"
>
</el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="代理人" prop="creditorAgent">
<el-input
clearable
placeholder="请输入代理人"
v-model="creditorInfo.creditorAgent">
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row type="flex" align="middle">
<el-col :span="12">
<el-form-item label="代理人手机号" prop="creditorAgentTelephone">
<el-input
clearable
placeholder="请输入代理人手机号"
v-model="creditorInfo.creditorAgentTelephone"
maxlength="11"
>
</el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="代理人身份证号" prop="creditorAgentIdcard">
<el-input
clearable
placeholder="请输入代理人身份证号"
v-model="creditorInfo.creditorAgentIdcard"
maxlength="18">
</el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<div class="border-solid-lighter-1 p-h-24">
<div class="flex-row justify-content-between f14 border-b-solid-lighter-1 mb-8 p-v-8 align-items-center">
<div class="color-000">被申请人</div>
<el-button size="small" type="primary" @click="handleAdd">新增被申请人<i class="el-icon-plus"></i></el-button>
</div>
<div>
<el-form ref="ruleFormObligor"
:model="obligorInfoForm"
label-width="150px"
class="demo-ruleForm">
<div v-for="(item,inx) in obligorInfoForm.debtorEntityList" :key="inx">
<div class="flex-row justify-content-between align-items-center height-40 f14 mb-16">
<div class="color-text-primary">被申请人{{inx+1}}</div>
<div class="color-text-regular cursor-pointer" @click="handleRemoveDomain(item)">删除<i class="el-icon-close"></i></div>
</div>
<el-row type="flex" align="middle">
<el-col :span="12">
<el-form-item label="被申请人姓名" :prop="'debtorEntityList.' + inx + '.name'" :rules="{required: true, message: '请输入债权人姓名', trigger: 'blur'}">
<el-input
v-model.trim="obligorInfoForm.debtorEntityList[inx].name"
placeholder="请输入被申请人姓名"
clearable
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="证件类型" :prop="'debtorEntityList.' + inx + '.cardTypeId'" :rules="{required: true, message: '请选择证件类型', trigger: 'blur'}">
<el-select v-model="obligorInfoForm.debtorEntityList[inx].cardTypeId"
clearable placeholder="请选择证件类型"
class="width100">
<el-option
v-for="item in idTypeOptions"
:key="item.code"
:label="item.codeName"
:value="item.code">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row type="flex" align="middle">
<el-col :span="12">
<el-form-item label="证件号码" :prop="'debtorEntityList.' + inx + '.cardNo'"
:rules=" [
{ required: true, message: '请输入证件号', trigger: 'change',},
{ pattern: /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/, message: '请输入正确的身份证号', trigger: ['blur', 'change']}
]">
<el-input
clearable
placeholder="请输入证件号码"
v-model="obligorInfoForm.debtorEntityList[inx].cardNo"
maxlength="18"
>
</el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="手机号码" :prop="'debtorEntityList.' + inx + '.phone'" :rules="[
{ required: true, message: '请输入法人手机号', trigger: 'change',},
{ pattern: /^(13[0-9]{9})|(18[0-9]{9})|(14[0-9]{9})|(17[0-9]{9})|(15[0-9]{9})|(19[0-9]{9})$/, message: '请输入正确的手机号码', trigger: ['blur', 'change']}
]">
<el-input
clearable
placeholder="请输入手机号码"
v-model="obligorInfoForm.debtorEntityList[inx].phone"
maxlength="11"
>
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row type="flex" align="middle">
<el-col :span="12">
<el-form-item label="地址" :prop="'debtorEntityList.' + inx + '.addr'" :rules="{ required: true, message: '请输入地址', trigger: 'change',}">
<el-input
clearable
placeholder="请输入地址"
v-model="obligorInfoForm.debtorEntityList[inx].addr">
</el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="邮编" :prop="'debtorEntityList.' + inx + '.mail'" :rules="{ required: true, message: '请输入邮编', trigger: 'change',}">
<el-input
clearable
placeholder="请输入邮编"
v-model="obligorInfoForm.debtorEntityList[inx].mail"
maxlength="6">
</el-input>
</el-form-item>
</el-col>
</el-row>
</div>
</el-form>
</div>
</div>
</div>
</div>
</div>
<!-- 材料上传 -->
<div v-else-if="presentStep === 3">
<div class="height-48 line-height-48 f18 color-000 m-v-16 p-h-24">证据材料</div>
<div class="p-h-24">
<upload-file-name :file-list="fileList" :max-count="20"
:show-file-name="true"
@handleUploadFile="handleUploadFile">
</upload-file-name>
</div>
</div>
<!-- 完成 -->
<div v-else-if="presentStep === 4">
<el-result icon="success" title="案件创建完成" subTitle="案件创建完成,继续处理其他案件">
<template slot="extra">
<el-button type="primary" size="medium" @click="handleClose">好的</el-button>
</template>
</el-result>
</div>
</div>
<span slot="footer" class="dialog-footer" v-if="presentStep<5">
<el-button @click="handleClose">取消</el-button>
<el-button
v-if="presentStep > 1 "
type="primary"
@click="presentStep--">上一步</el-button>
<el-button
type="primary"
v-show="presentStep<4"
@click="handleNextStep">下一步</el-button>
<el-button
type="primary"
v-show="presentStep === 4"
@click="handleSubmit">确认
</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import api from "@/services/caseManagement";
import cpkapi from "@/services/casePackageManagement";
export default {
components: {
uploadFileName: () => import('@/components/uploadFileName.vue'),//
},
props: {
addCaseDialog: {
type: Object,
default: () => {
return {}
},
},
},
data() {
const moneyAmountValidate = (rule,value,callback)=>{
if (!value){
callback(new Error('请输入标的金额'));
}else if (!/^[1-9]\d*(,\d{3})*(\.\d{1,2})?$|^0.\d{1,2}$/.test(value)){
callback(new Error('只能输入两位小数的金额!'));
}else if(!(0<parseInt(value)&&parseInt(value)<100000000)){
callback(new Error('只能输入大于1小于1亿的金额!'));
}else{
callback()
}
};
return {
transferStep:[
{id:1,title:'基本信息',description:'录入案件基本信息'},
{id:2,title:'当事人信息',description:'录入当事人信息'},
{id:3,title:'材料上传',description:'上传案件材料'},
{id:4,title:'完成',description:'完成案件创建'},
],
presentStep:1,
//------------------------------------------------------
baseInfo:{
pkgId:'',
financialOrgName:'',//
financialOrgCode:'',//
caseName:'',//
caseNo:'',//
productTypeId:'',//
moneyAmount:'',//
overdueTimes:0,//
caseDescr:'',//
},
rulesClient: {
financialOrgName: [
{ required: true, message: '请输入机构名称', trigger: 'change',},
],
// financialOrgCode: [
// { required: true, message: '', trigger: 'change',},
// ],
caseName: [
{ required: true, message: '请输入案件名称', trigger: 'change',},
],
caseNo: [
{ required: true, message: '请输入案件编号', trigger: 'change',},
],
// productTypeId: [
// { required: true, message: '', trigger: 'change',},
// ],
moneyAmount: [
{ required: true, validator: moneyAmountValidate, trigger: 'change',},
],
caseDescr:[
{ required: true, message: '请输入案件描述', trigger: 'change',},
]
},
financialProductsTypeOptions:[],//
//-----------------------------------------------
//
creditorInfo:{
creditorName:'',//
creditorOrgCode:'',//
creditorLegal:'',//
creditorIdcard:'',//
creditorPhone:'',//
creditorAddr:'',//
creditorMail:'',//
creditorAgent:'',//
},
rulesClientCreditor: {
creditorName: [
{ required: true, message: '请输入申请人名称', trigger: 'change',},
],
creditorOrgCode: [
{ required: true, message: '请输入申请人机构代码', trigger: 'change',},
],
// creditorLegal: [
// { required: true, message: '', trigger: 'change',},
// ],
// creditorIdcard: [
// { required: true, message: '', trigger: 'change',},
// { pattern: /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/, message: '', trigger: ['blur', 'change']}
// ],
// creditorPhone: [
// { required: true, message: '', trigger: 'change',},
// { pattern: /^(13[0-9]{9})|(18[0-9]{9})|(14[0-9]{9})|(17[0-9]{9})|(15[0-9]{9})|(19[0-9]{9})$/, message: '', trigger: ['blur', 'change']}
// ],
creditorAddr: [
{ required: true, message: '请输入公司地址', trigger: 'change',},
],
// creditorAgent: [
// { required: true, message: '', trigger: 'change',},
// ],
},
//
idTypeOptions:[],
obligorInfoForm:{
debtorEntityList:[
{
name:'',//
phone:'',//
cardTypeId:'',//
addr:'',//
cardNo:'',//
mail:'',//
}
],
},
obligorRulesClient:{
name: [
{ required: true, message: '请输入被申请人姓名', trigger: 'change',},
],
phone: [
{ required: true, message: '请输入法人手机号', trigger: 'change',},
{ pattern: /^(13[0-9]{9})|(18[0-9]{9})|(14[0-9]{9})|(17[0-9]{9})|(15[0-9]{9})|(19[0-9]{9})$/, message: '请输入正确的手机号码', trigger: ['blur', 'change']}
],
cardTypeId: [
{ required: true, message: '请选择证件类型', trigger: 'change',},
],
addr: [
{ required: true, message: '请输入地址', trigger: 'change',},
],
cardNo: [
{ required: true, message: '请输入证件号', trigger: 'change',},
{ pattern: /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/, message: '请输入正确的身份证号', trigger: ['blur', 'change']}
],
mail: [
{ required: true, message: '请输入邮编', trigger: 'change',},
{ pattern: /^\d{6}$/, message: '请输入正确的邮编', trigger: ['blur', 'change']}
],
},
fileList:[],//
CasepackageList:[]
};
},
mounted () {
this.getDict();//
this.getDictIdType();
this.getCasepkgList();
},
methods: {
//
getCasepkgList(){
cpkapi.getCasePkgQuery({current:1,size:500}).then(res => {
if (!res.code) {
this.CasepackageList = res.records;
}
})
},
apkChange(){
let changeApk = this.CasepackageList.find(item =>{
return this.baseInfo.pkgId == item.id
})
this.baseInfo.financialOrgName = changeApk.entrustingAgencyName
this.baseInfo.financialOrgCode = changeApk.entrustingAgencyCode
},
//
getDict(){
let data = {
type:'financial'
}
api.getDict(data).then(res => {
if (!res.code) {
this.financialProductsTypeOptions = res;
}
})
},
//
getDictIdType(){
let data = {
type:'certificates'
}
api.getDict(data).then(res => {
if (!res.code) {
this.idTypeOptions = res;
}
})
},
//
handleAdd(){
this.obligorInfoForm.debtorEntityList.push({
name:'',//
phone:'',//
cardTypeId:'',//
addr:'',//
cardNo:'',//
mail:'',//
});
},
//
handleRemoveDomain(item) {
var index = this.obligorInfoForm.debtorEntityList.indexOf(item)
if (index !== -1) {
this.obligorInfoForm.debtorEntityList.splice(index, 1)
}
},
//
handleReset(){
for (let key in this.creditorInfo) {
this.creditorInfo[key] = ''
}
},
//
handleNextStep(){
if(this.presentStep === 1){
this.$refs.ruleFormBase.validate((valid) => {
if (valid){this.presentStep++}
})
}else if(this.presentStep === 2){
this.$refs.ruleFormCreditor.validate((valid) => {
if (valid){
this.$refs.ruleFormObligor.validate((valid) => {
if (valid){this.presentStep++}
})
}
})
}else{
this.presentStep++
}
},
handleSubmit(){
if(!this.$clickThrottle()) { return }//
let data = {
...this.baseInfo,//
...this.creditorInfo,//
...this.obligorInfoForm,//
caseFileEntityList:this.fileList//
}
console.log('获取传给后台的信息',data)
api.addCaseInfo(data).then(res => {
this.presentStep++
this.$parent.getCaseInfoList(1)
// this.$parent.getCaseCount()
})
},
//
handleUploadFile(fileList){
console.log('获取上传文件信息',fileList)
fileList = JSON.parse(JSON.stringify(fileList))
this.fileList = fileList.map((item,i) => {
return {
url: item.url,
fileName:item.fileName,
name:item.fileName
}
})
},
handleClose() {
this.$emit('update:addCaseDialog', null)
},
}
};
</script>
<style scoped lang="scss">
.dialog-content{
padding: 16px 24px;
// max-height:500px
}
</style>

View File

@ -29,10 +29,10 @@
@keydown.enter.native="handleSearch"
class="width100">
<el-option
v-for="item in financialProductsTypeOptions"
:key="item.code"
:label="item.codeName"
:value="item.code">
v-for="item in orglist"
:key="item.entrustingAgencyName"
:label="item.entrustingAgencyName"
:value="item.entrustingAgencyName">
</el-option>
</el-select>
</div>
@ -52,7 +52,6 @@
<el-select v-model="queryParam.willEnd"
clearable placeholder="请选择案件是否即将到期"
@keydown.enter.native="handleSearch"
:disabled="deptDisabled"
class="width100">
<el-option label="是" value="true"></el-option>
<el-option label="否" value="false"></el-option>
@ -153,7 +152,8 @@
<!-- 导入 -->
<importPackageDialog v-if="importCaseDialog" :importCaseDialog.sync="importCaseDialog" />
<!-- 新增 -->
<!-- <addCaseDialog v-if="addCaseDialog" :addCaseDialog.sync="addCaseDialog" /> -->
<addCaseDialog v-if="addCaseDialog" :addCaseDialog.sync="addCaseDialog" />
<!-- 编辑 -->
<!-- <editCaseDrawer v-if="editCaseDrawer" :editCaseDrawer.sync="editCaseDrawer"/> -->
<!-- 案件分配-->
@ -166,7 +166,7 @@ import api from "@/services/casePackageManagement";
export default {
components: {
importPackageDialog: () => import('./components/importPackageDialog'),//
// addCaseDialog: () => import('./components/addCaseDialog'),//
addCaseDialog: () => import('./components/addCaseDialog'),//
// editCaseDrawer: () => import('./components/editCaseDrawer'),//
caseAllocationDialog: () => import('./components/caseAllocationDialog'),//
@ -198,21 +198,15 @@ import api from "@/services/casePackageManagement";
importCaseDialog:null,//
addCaseDialog:null,//
editCaseDrawer:null,//
deptDisabled:false,//
orglist:[],//
}
},
created() {
//
let identifier = this.$store.state.userinfo.identifier
if(identifier=='mediator'){
this.deptDisabled = true
this.queryParam.deptId = this.$store.state.userinfo.deptId
}else{
this.deptDisabled = false
}
this.getOrgList()
this.getCaseInfoList(1)
},
computed:{
@ -231,6 +225,13 @@ import api from "@/services/casePackageManagement";
jumpUrl (url) {
this.$router.push(url);
},
getOrgList(){
api.postorgs({current:1,size:500}).then(res => {
if (!res.code) {
this.orglist = res.records;
}
})
},
//
handleImport(){
this.importCaseDialog={

View File

@ -53,12 +53,12 @@
<el-table-column type="index" label="序号" width="55"></el-table-column>
<!-- <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="entrustingAgencyName" label="队列名称" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="外呼对象数" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="已呼数" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="接通数" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="未接通数" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" 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="channel" label="操作人" show-overflow-tooltip ></el-table-column>
<el-table-column prop="planStartTime" label="操作时间" show-overflow-tooltip >
<template slot-scope="scope">
@ -66,7 +66,7 @@
</template>
</el-table-column>
<el-table-column label="操作" width="120">
<el-table-column label="操作" width="190">
<template slot-scope="scope">
<div class="flex-row align-items-center">
<el-button size="mini" @click="handleDelete(scope)">进入外呼队列</el-button>
@ -79,8 +79,8 @@
<div class="text-center pt-16">
<el-pagination
@size-change="getCaseInfoList"
@current-change="getCaseInfoList"
@size-change="getList"
@current-change="getList"
:current-page="queryParam.current"
:page-size="queryParam.size"
layout="total, prev, pager, next, jumper"
@ -95,8 +95,8 @@
</template>
<script>
import api from "@/services/caseManagement";
import apipack from "@/services/casePackageManagement";
import api from "@/services/eventTracingApi";
import { size } from "lodash";
export default {
components: {
smsDialogDetail: () => import('../dtraceDetail/smsDialogDetail.vue'),//
@ -113,13 +113,18 @@ import apipack from "@/services/casePackageManagement";
return {
DialogDetail:null,
queryDate: '',
queryParam:{},
queryParam:{
pkgName:'',
size:10,
current:1
},
tableData:[],
total:0,
};
},
mounted () {
this.getList(1)
},
methods: {
handleChangeDate() {
@ -142,19 +147,19 @@ import apipack from "@/services/casePackageManagement";
handleSearch() {
this.queryParam.size = 10;
this.queryParam.current = 1;
// this.getList(1)
this.getList(1)
},
//
getList(val){
this.queryParam.planBegin = this.queryParam.beginTime
this.queryParam.planEnd = this.queryParam.endTime
this.queryParam.current = val
// api.getCasePkgQuery(this.queryParam).then(res => {
// if (!res.code) {
// this.tableData = res.records;
// this.total = res.total;
// }
// })
api.posttrace_calling(this.queryParam).then(res => {
if (!res.code) {
this.tableData = res.records;
this.total = res.total;
}
})
},
}
};

View File

@ -58,14 +58,14 @@
</div>
<div class="case-table">
<el-table :data="tableData" :height="`${contentHeight}`" >
<el-table :data="tableData" height="330" >
<el-table-column type="index" label="序号" width="55"></el-table-column>
<!-- <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="entrustingAgencyName" label="案件编号" show-overflow-tooltip ></el-table-column>
<el-table-column prop="caseNo" label="案件编号" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="发起方式" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="文书送达范围" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="送达状态" show-overflow-tooltip ></el-table-column>
<el-table-column prop="documentType" label="文书送达范围" show-overflow-tooltip ></el-table-column>
<el-table-column prop="status" label="送达状态" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="操作人" show-overflow-tooltip ></el-table-column>
<el-table-column prop="planStartTime" label="操作时间" show-overflow-tooltip >
<template slot-scope="scope">
@ -87,8 +87,8 @@
<div class="text-center pt-16">
<el-pagination
@size-change="getCaseInfoList"
@current-change="getCaseInfoList"
@size-change="getList"
@current-change="getList"
:current-page="queryParam.current"
:page-size="queryParam.size"
layout="total, prev, pager, next, jumper"
@ -103,8 +103,7 @@
</template>
<script>
import api from "@/services/caseManagement";
import apipack from "@/services/casePackageManagement";
import api from "@/services/eventTracingApi";
export default {
components: {
officeDeliveryDialogDetail: () => import('../dtraceDetail/officeDeliveryDialogDetail.vue'),//
@ -122,7 +121,10 @@ import apipack from "@/services/casePackageManagement";
DialogDetail:null,
queryDate: '',
queryParam:{
caseNo:''
caseNo:'',
pkgName:'',
size:10,
current:1
},
tableData:[],
total:0,
@ -130,6 +132,7 @@ import apipack from "@/services/casePackageManagement";
},
mounted () {
this.queryParam.caseNo = this.eventTraDialog.caseNo
this.getList(1)
},
methods: {
handleChangeDate() {
@ -152,19 +155,19 @@ import apipack from "@/services/casePackageManagement";
handleSearch() {
this.queryParam.size = 10;
this.queryParam.current = 1;
// this.getList(1)
this.getList(1)
},
//
getList(val){
this.queryParam.planBegin = this.queryParam.beginTime
this.queryParam.planEnd = this.queryParam.endTime
this.queryParam.current = val
// api.getCasePkgQuery(this.queryParam).then(res => {
// if (!res.code) {
// this.tableData = res.records;
// this.total = res.total;
// }
// })
api.posttrace_generate(this.queryParam).then(res => {
if (!res.code) {
this.tableData = res.records;
this.total = res.total;
}
})
},
handleDetail(scope){
this.DialogDetail = scope.row

View File

@ -62,11 +62,11 @@
<el-table-column type="index" label="序号" width="55"></el-table-column>
<!-- <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="entrustingAgencyName" label="案件编号" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="文书类型" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="生成文书数" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="生成状态" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="失败原因" show-overflow-tooltip ></el-table-column>
<el-table-column prop="caseNo" label="案件编号" show-overflow-tooltip ></el-table-column>
<el-table-column prop="documentType" label="文书类型" show-overflow-tooltip ></el-table-column>
<el-table-column prop="documentNum" label="生成文书数" show-overflow-tooltip ></el-table-column>
<el-table-column prop="status" label="生成状态" show-overflow-tooltip ></el-table-column>
<el-table-column prop="failureReason" label="失败原因" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="操作人" show-overflow-tooltip ></el-table-column>
<el-table-column prop="planStartTime" label="操作时间" show-overflow-tooltip >
<template slot-scope="scope">
@ -74,7 +74,7 @@
</template>
</el-table-column>
<el-table-column label="操作" width="120">
<el-table-column label="操作" width="220">
<template slot-scope="scope">
<div class="flex-row align-items-center">
<el-button size="mini" @click="handleDetail(scope)">明细</el-button>
@ -88,8 +88,8 @@
<div class="text-center pt-16">
<el-pagination
@size-change="getCaseInfoList"
@current-change="getCaseInfoList"
@size-change="getList"
@current-change="getList"
:current-page="queryParam.current"
:page-size="queryParam.size"
layout="total, prev, pager, next, jumper"
@ -104,8 +104,7 @@
</template>
<script>
import api from "@/services/caseManagement";
import apipack from "@/services/casePackageManagement";
import api from "@/services/eventTracingApi";
export default {
components: {
officeDialogDetail: () => import('../dtraceDetail/officeDialogDetail.vue'),//
@ -123,7 +122,10 @@ import apipack from "@/services/casePackageManagement";
DialogDetail:null,
queryDate: '',
queryParam:{
caseNo:''
caseNo:'',
pkgName:'',
size:10,
current:1
},
tableData:[],
total:0,
@ -131,6 +133,7 @@ import apipack from "@/services/casePackageManagement";
},
mounted () {
this.queryParam.caseNo = this.eventTraDialog.caseNo
this.getList(1)
},
methods: {
handleChangeDate() {
@ -153,19 +156,19 @@ import apipack from "@/services/casePackageManagement";
handleSearch() {
this.queryParam.size = 10;
this.queryParam.current = 1;
// this.getList(1)
this.getList(1)
},
//
getList(val){
this.queryParam.planBegin = this.queryParam.beginTime
this.queryParam.planEnd = this.queryParam.endTime
this.queryParam.current = val
// api.getCasePkgQuery(this.queryParam).then(res => {
// if (!res.code) {
// this.tableData = res.records;
// this.total = res.total;
// }
// })
api.posttrace_generate(this.queryParam).then(res => {
if (!res.code) {
this.tableData = res.records;
this.total = res.total;
}
})
},
handleDetail(scope){
this.DialogDetail = scope.row

View File

@ -58,15 +58,14 @@
</div>
<div class="case-table">
<el-table :data="tableData" :height="`${contentHeight}`" >
<el-table :data="tableData" height="330" >
<el-table-column type="index" label="序号" width="55"></el-table-column>
<!-- <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="entrustingAgencyName" label="案件编号" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="文书类型" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="签章状态" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="失败原因" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="获取回执中" show-overflow-tooltip ></el-table-column>
<el-table-column prop="caseNo" label="案件编号" show-overflow-tooltip ></el-table-column>
<el-table-column prop="documentType" label="文书类型" show-overflow-tooltip ></el-table-column>
<el-table-column prop="status" label="签章状态" show-overflow-tooltip ></el-table-column>
<el-table-column prop="failureReason" label="失败原因" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="操作人" show-overflow-tooltip ></el-table-column>
<el-table-column prop="planStartTime" label="操作时间" show-overflow-tooltip >
<template slot-scope="scope">
@ -74,7 +73,7 @@
</template>
</el-table-column>
<el-table-column label="操作" width="120">
<el-table-column label="操作" width="180">
<template slot-scope="scope">
<div class="flex-row align-items-center">
<el-button size="mini" @click="handleDelete(scope)">重试</el-button>
@ -87,8 +86,8 @@
<div class="text-center pt-16">
<el-pagination
@size-change="getCaseInfoList"
@current-change="getCaseInfoList"
@size-change="getList"
@current-change="getList"
:current-page="queryParam.current"
:page-size="queryParam.size"
layout="total, prev, pager, next, jumper"
@ -102,8 +101,7 @@
</template>
<script>
import api from "@/services/caseManagement";
import apipack from "@/services/casePackageManagement";
import api from "@/services/eventTracingApi";
export default {
components: {
@ -121,7 +119,10 @@ import apipack from "@/services/casePackageManagement";
DialogDetail:null,
queryDate: '',
queryParam:{
caseNo:''
caseNo:'',
pkgName:'',
size:10,
current:1
},
tableData:[],
total:0,
@ -129,6 +130,7 @@ import apipack from "@/services/casePackageManagement";
},
mounted () {
this.queryParam.caseNo = this.eventTraDialog.caseNo
this.getList(1)
},
methods: {
handleChangeDate() {
@ -151,19 +153,19 @@ import apipack from "@/services/casePackageManagement";
handleSearch() {
this.queryParam.size = 10;
this.queryParam.current = 1;
// this.getList(1)
this.getList(1)
},
//
getList(val){
this.queryParam.planBegin = this.queryParam.beginTime
this.queryParam.planEnd = this.queryParam.endTime
this.queryParam.current = val
// api.getCasePkgQuery(this.queryParam).then(res => {
// if (!res.code) {
// this.tableData = res.records;
// this.total = res.total;
// }
// })
api.posttrace_seal(this.queryParam).then(res => {
if (!res.code) {
this.tableData = res.records;
this.total = res.total;
}
})
},
handleDetail(scope){
this.DialogDetail = scope.row

View File

@ -58,20 +58,20 @@
</div>
<div class="case-table">
<el-table :data="tableData" :height="`${contentHeight}`" >
<el-table :data="tableData" height="330" >
<el-table-column type="index" label="序号" width="55"></el-table-column>
<!-- <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="entrustingAgencyName" label="案件编号" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="文书类型" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="签字文书数" show-overflow-tooltip ></el-table-column>
<el-table-column prop="caseNo" label="案件编号" show-overflow-tooltip ></el-table-column>
<el-table-column prop="documentType" label="文书类型" show-overflow-tooltip ></el-table-column>
<el-table-column prop="signatureFileCount" label="签字文书数" show-overflow-tooltip ></el-table-column>
<el-table-column prop="planStartTime" label="签字截止时间" show-overflow-tooltip >
<template slot-scope="scope">
<span >{{ scope.row.planStartTime | formaDate("yyyy-MM-dd hh:mm:ss") }}</span>
</template>
</el-table-column>
<el-table-column prop="channel" label="签字状态" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="失败原因" show-overflow-tooltip ></el-table-column>
<el-table-column prop="signatureStatus" label="签字状态" show-overflow-tooltip ></el-table-column>
<el-table-column prop="failureReason" label="失败原因" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="操作人" show-overflow-tooltip ></el-table-column>
<el-table-column prop="planStartTime" label="操作时间" show-overflow-tooltip >
<template slot-scope="scope">
@ -79,7 +79,7 @@
</template>
</el-table-column>
<el-table-column label="操作" width="120">
<el-table-column label="操作" width="220">
<template slot-scope="scope">
<div class="flex-row align-items-center">
<el-button size="mini" @click="handleDetail(scope)">明细</el-button>
@ -93,8 +93,8 @@
<div class="text-center pt-16">
<el-pagination
@size-change="getCaseInfoList"
@current-change="getCaseInfoList"
@size-change="getList"
@current-change="getList"
:current-page="queryParam.current"
:page-size="queryParam.size"
layout="total, prev, pager, next, jumper"
@ -104,16 +104,15 @@
</div>
</div>
<!-- 追踪明细 -->
<officewriteDialogDetail v-else :DialogDetail="DialogDetail" />
<officeWDialogDetail v-else :DialogDetail="DialogDetail" />
</div>
</template>
<script>
import api from "@/services/caseManagement";
import apipack from "@/services/casePackageManagement";
import api from "@/services/eventTracingApi";
export default {
components: {
officeWriteDialogDetail: () => import('../dtraceDetail/officeWDialogDetail.vue'),//
officeWDialogDetail: () => import('../dtraceDetail/officeWDialogDetail.vue'),//
},
props: {
eventTraDialog: {
@ -128,7 +127,10 @@ import apipack from "@/services/casePackageManagement";
DialogDetail:null,
queryDate: '',
queryParam:{
caseNo:''
caseNo:'',
pkgName:'',
size:10,
current:1,
},
tableData:[],
total:0,
@ -136,6 +138,7 @@ import apipack from "@/services/casePackageManagement";
},
mounted () {
this.queryParam.caseNo = this.eventTraDialog.caseNo
this.getList(1)
},
methods: {
handleChangeDate() {
@ -158,19 +161,19 @@ import apipack from "@/services/casePackageManagement";
handleSearch() {
this.queryParam.size = 10;
this.queryParam.current = 1;
// this.getList(1)
this.getList(1)
},
//
getList(val){
this.queryParam.planBegin = this.queryParam.beginTime
this.queryParam.planEnd = this.queryParam.endTime
this.queryParam.current = val
// api.getCasePkgQuery(this.queryParam).then(res => {
// if (!res.code) {
// this.tableData = res.records;
// this.total = res.total;
// }
// })
api.posttrace_sign(this.queryParam).then(res => {
if (!res.code) {
this.tableData = res.records;
this.total = res.total;
}
})
},
handleDetail(scope){
this.DialogDetail = scope.row

View File

@ -104,8 +104,7 @@
</template>
<script>
import api from "@/services/caseManagement";
import apipack from "@/services/casePackageManagement";
import api from "@/services/eventTracingApi";
export default {
components: {

View File

@ -58,30 +58,30 @@
</div>
<div class="case-table">
<el-table :data="tableData" :height="`${contentHeight}`" >
<el-table :data="tableData" height="340" >
<el-table-column type="index" label="序号" width="55"></el-table-column>
<!-- <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="entrustingAgencyName" label="案件编号" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="短信模板" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="短信接收对象" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="记录数量" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="发送成功" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="发送失败" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="获取回执中" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="操作人" show-overflow-tooltip ></el-table-column>
<el-table-column prop="caseNo" label="案件编号" show-overflow-tooltip ></el-table-column>
<el-table-column prop="templateId" label="短信模板" show-overflow-tooltip ></el-table-column>
<el-table-column prop="sendObjectType" label="短信接收对象" show-overflow-tooltip ></el-table-column>
<el-table-column prop="countInit" label="记录数量" show-overflow-tooltip ></el-table-column>
<el-table-column prop="countOk" label="发送成功" show-overflow-tooltip ></el-table-column>
<el-table-column prop="countFail" label="发送失败" show-overflow-tooltip ></el-table-column>
<el-table-column prop="countPending" label="获取回执中" show-overflow-tooltip ></el-table-column>
<el-table-column prop="updateAt" label="操作人" show-overflow-tooltip ></el-table-column>
<el-table-column prop="planStartTime" label="操作时间" show-overflow-tooltip >
<template slot-scope="scope">
<span >{{ scope.row.planStartTime | formaDate("yyyy-MM-dd hh:mm:ss") }}</span>
</template>
</el-table-column>
<el-table-column label="操作" width="120">
<el-table-column label="操作" width="220">
<template slot-scope="scope">
<div class="flex-row align-items-center">
<el-button size="mini" @click="handleDetail(scope)">明细</el-button>
<el-button size="mini" @click="handleDelete(scope)">重试</el-button>
<el-button size="mini" @click="handleBackCase(scope)">取消</el-button>
<el-button size="mini" @click="handleAgain(scope)">重试</el-button>
<el-button size="mini" @click="handleDelete(scope)">取消</el-button>
</div>
</template>
</el-table-column>
@ -90,8 +90,8 @@
<div class="text-center pt-16">
<el-pagination
@size-change="getCaseInfoList"
@current-change="getCaseInfoList"
@size-change="getList"
@current-change="getList"
:current-page="queryParam.current"
:page-size="queryParam.size"
layout="total, prev, pager, next, jumper"
@ -106,8 +106,7 @@
</template>
<script>
import api from "@/services/caseManagement";
import apipack from "@/services/casePackageManagement";
import api from "@/services/eventTracingApi";
export default {
components: {
smsDialogDetail: () => import('../dtraceDetail/smsDialogDetail.vue'),//
@ -125,7 +124,14 @@ import apipack from "@/services/casePackageManagement";
DialogDetail:null,
queryDate: '',
queryParam:{
caseNo:''
pkgName:'',
caseNo:'',
beginTime:'',
endTime:'',
current:1,
size:10
},
tableData:[],
total:0,
@ -133,6 +139,7 @@ import apipack from "@/services/casePackageManagement";
},
mounted () {
this.queryParam.caseNo = this.eventTraDialog.caseNo
this.getList(1)
},
methods: {
handleChangeDate() {
@ -155,19 +162,19 @@ import apipack from "@/services/casePackageManagement";
handleSearch() {
this.queryParam.size = 10;
this.queryParam.current = 1;
// this.getList(1)
this.getList(1)
},
//
getList(val){
this.queryParam.planBegin = this.queryParam.beginTime
this.queryParam.planEnd = this.queryParam.endTime
this.queryParam.current = val
// api.getCasePkgQuery(this.queryParam).then(res => {
// if (!res.code) {
// this.tableData = res.records;
// this.total = res.total;
// }
// })
api.posttrace_sms(this.queryParam).then(res => {
if (!res.code) {
this.tableData = res.records;
this.total = res.total;
}
})
},
handleDetail(scope){
this.DialogDetail = scope.row

View File

@ -58,15 +58,14 @@
</div>
<div class="case-table">
<el-table :data="tableData" :height="`${contentHeight}`" >
<el-table :data="tableData" height="330" >
<el-table-column type="index" label="序号" width="55"></el-table-column>
<!-- <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="entrustingAgencyName" label="案件编号" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="预约开始时间" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="预约结束时间" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="状态" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="受邀人" show-overflow-tooltip ></el-table-column>
<el-table-column prop="caseNo" label="案件编号" show-overflow-tooltip ></el-table-column>
<el-table-column prop="bookingTime" label="预约开始时间" show-overflow-tooltip ></el-table-column>
<el-table-column prop="bookingEndTime" label="预约结束时间" show-overflow-tooltip ></el-table-column>
<el-table-column prop="status" label="状态" show-overflow-tooltip ></el-table-column>
<el-table-column prop="invitee" label="受邀人" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="操作人" show-overflow-tooltip ></el-table-column>
<el-table-column prop="planStartTime" label="操作时间" show-overflow-tooltip >
<template slot-scope="scope">
@ -74,7 +73,7 @@
</template>
</el-table-column>
<el-table-column label="操作" width="120">
<el-table-column label="操作" width="240">
<template slot-scope="scope">
<div class="flex-row align-items-center">
<el-button size="mini" @click="handleDelete(scope)">进入视频间</el-button>
@ -88,8 +87,8 @@
<div class="text-center pt-16">
<el-pagination
@size-change="getCaseInfoList"
@current-change="getCaseInfoList"
@size-change="getList"
@current-change="getList"
:current-page="queryParam.current"
:page-size="queryParam.size"
layout="total, prev, pager, next, jumper"
@ -104,8 +103,7 @@
</template>
<script>
import api from "@/services/caseManagement";
import apipack from "@/services/casePackageManagement";
import api from "@/services/eventTracingApi";
export default {
components: {
smsDialogDetail: () => import('../dtraceDetail/smsDialogDetail.vue'),//
@ -123,7 +121,10 @@ import apipack from "@/services/casePackageManagement";
DialogDetail:null,
queryDate: '',
queryParam:{
caseNo:''
caseNo:'',
pkgName:'',
size:10,
current:1
},
tableData:[],
total:0,
@ -131,6 +132,7 @@ import apipack from "@/services/casePackageManagement";
},
mounted () {
this.queryParam.caseNo = this.eventTraDialog.caseNo
this.getList
},
methods: {
handleChangeDate() {
@ -153,19 +155,19 @@ import apipack from "@/services/casePackageManagement";
handleSearch() {
this.queryParam.size = 10;
this.queryParam.current = 1;
// this.getList(1)
this.getList(1)
},
//
getList(val){
this.queryParam.planBegin = this.queryParam.beginTime
this.queryParam.planEnd = this.queryParam.endTime
this.queryParam.current = val
// api.getCasePkgQuery(this.queryParam).then(res => {
// if (!res.code) {
// this.tableData = res.records;
// this.total = res.total;
// }
// })
api.posttrace_video(this.queryParam).then(res => {
if (!res.code) {
this.tableData = res.records;
this.total = res.total;
}
})
},
}

View File

@ -51,16 +51,16 @@
<el-table :data="tableData" :height="`${contentHeight}`" >
<el-table-column type="index" label="序号" width="55"></el-table-column>
<el-table-column prop="pkgName" label="案件包名称" show-overflow-tooltip ></el-table-column>
<el-table-column prop="entrustingAgencyName" label="案件编号" show-overflow-tooltip ></el-table-column>
<el-table-column prop="caseNo" label="案件编号" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="文书接收人" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="文书类型" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="送达状态" show-overflow-tooltip ></el-table-column>
<el-table-column prop="documentType" label="文书类型" show-overflow-tooltip ></el-table-column>
<el-table-column prop="status" label="送达状态" show-overflow-tooltip ></el-table-column>
<el-table-column prop="planStartTime" label="送达时间" show-overflow-tooltip >
<template slot-scope="scope">
<span >{{ scope.row.planStartTime | formaDate("yyyy-MM-dd hh:mm:ss") }}</span>
</template>
</el-table-column>
<el-table-column prop="channel" label="未送达原因" show-overflow-tooltip ></el-table-column>
<el-table-column prop="failureReason" label="未送达原因" show-overflow-tooltip ></el-table-column>
<el-table-column label="操作" width="120">
<template slot-scope="scope">
<div class="flex-row align-items-center">
@ -74,8 +74,8 @@
<div class="text-center pt-16">
<el-pagination
@size-change="getCaseInfoList"
@current-change="getCaseInfoList"
@size-change="getList"
@current-change="getList"
:current-page="queryParam.current"
:page-size="queryParam.size"
layout="total, prev, pager, next, jumper"
@ -86,14 +86,13 @@
</div>
</template>
<script>
import api from "@/services/caseManagement";
import apipack from "@/services/casePackageManagement";
import api from "@/services/eventTracingApi";
export default {
components: {
},
props: {
eventTraDialog: {
DialogDetail: {
type: Object,
default: () => {
return {}
@ -103,13 +102,20 @@ import apipack from "@/services/casePackageManagement";
data() {
return {
queryDate: '',
queryParam:{},
queryParam:{
caseNo:'',
pkgName:'',
size:10,
current:1,
traceId:''
},
tableData:[],
total:0,
};
},
mounted () {
this.queryParam.traceId = this.DialogDetail.id
this.getList(1)
},
methods: {
handleChangeDate() {
@ -132,19 +138,19 @@ import apipack from "@/services/casePackageManagement";
handleSearch() {
this.queryParam.size = 10;
this.queryParam.current = 1;
// this.getList(1)
this.getList(1)
},
//
getList(val){
this.queryParam.planBegin = this.queryParam.beginTime
this.queryParam.planEnd = this.queryParam.endTime
this.queryParam.current = val
// api.getCasePkgQuery(this.queryParam).then(res => {
// if (!res.code) {
// this.tableData = res.records;
// this.total = res.total;
// }
// })
api.posttrace_generate_detail(this.queryParam).then(res => {
if (!res.code) {
this.tableData = res.records;
this.total = res.total;
}
})
},
}
};

View File

@ -48,20 +48,20 @@
</div>
<div class="case-table">
<el-table :data="tableData" :height="`${contentHeight}`" >
<el-table :data="tableData" height="330" >
<el-table-column type="index" label="序号" width="55"></el-table-column>
<el-table-column prop="pkgName" label="案件包名称" show-overflow-tooltip ></el-table-column>
<el-table-column prop="entrustingAgencyName" label="案件编号" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="文书类型" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="生成状态" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="失败原因" show-overflow-tooltip ></el-table-column>
<el-table-column prop="caseNo" label="案件编号" show-overflow-tooltip ></el-table-column>
<el-table-column prop="documentType" label="文书类型" show-overflow-tooltip ></el-table-column>
<el-table-column prop="status" label="生成状态" show-overflow-tooltip ></el-table-column>
<el-table-column prop="failureReason" label="失败原因" show-overflow-tooltip ></el-table-column>
</el-table>
</div>
<div class="text-center pt-16">
<el-pagination
@size-change="getCaseInfoList"
@current-change="getCaseInfoList"
@size-change="getList"
@current-change="getList"
:current-page="queryParam.current"
:page-size="queryParam.size"
layout="total, prev, pager, next, jumper"
@ -72,14 +72,13 @@
</div>
</template>
<script>
import api from "@/services/caseManagement";
import apipack from "@/services/casePackageManagement";
import api from "@/services/eventTracingApi";
export default {
components: {
},
props: {
eventTraDialog: {
DialogDetail: {
type: Object,
default: () => {
return {}
@ -89,13 +88,20 @@ import apipack from "@/services/casePackageManagement";
data() {
return {
queryDate: '',
queryParam:{},
queryParam:{
caseNo:'',
pkgName:'',
size:10,
current:1,
traceId:''
},
tableData:[],
total:0,
};
},
mounted () {
this.queryParam.traceId = this.DialogDetail.id
this.getList(1)
},
methods: {
handleChangeDate() {
@ -118,19 +124,19 @@ import apipack from "@/services/casePackageManagement";
handleSearch() {
this.queryParam.size = 10;
this.queryParam.current = 1;
// this.getList(1)
this.getList(1)
},
//
getList(val){
this.queryParam.planBegin = this.queryParam.beginTime
this.queryParam.planEnd = this.queryParam.endTime
this.queryParam.current = val
// api.getCasePkgQuery(this.queryParam).then(res => {
// if (!res.code) {
// this.tableData = res.records;
// this.total = res.total;
// }
// })
api.posttrace_generate_detail(this.queryParam).then(res => {
if (!res.code) {
this.tableData = res.records;
this.total = res.total;
}
})
},
}
};

View File

@ -48,21 +48,21 @@
</div>
<div class="case-table">
<el-table :data="tableData" :height="`${contentHeight}`" >
<el-table :data="tableData" height="330" >
<el-table-column type="index" label="序号" width="55"></el-table-column>
<el-table-column prop="pkgName" label="案件包名称" show-overflow-tooltip ></el-table-column>
<el-table-column prop="entrustingAgencyName" label="案件编号" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="文书类型" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="签字当事人" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="已签字当事人" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="未签字当事人" show-overflow-tooltip ></el-table-column>
<el-table-column prop="caseNo" label="案件编号" show-overflow-tooltip ></el-table-column>
<el-table-column prop="documentType" label="文书类型" show-overflow-tooltip ></el-table-column>
<el-table-column prop="signName" label="签字当事人" show-overflow-tooltip ></el-table-column>
<el-table-column prop="signed" label="已签字当事人" show-overflow-tooltip ></el-table-column>
<el-table-column prop="unsign" label="未签字当事人" show-overflow-tooltip ></el-table-column>
</el-table>
</div>
<div class="text-center pt-16">
<el-pagination
@size-change="getCaseInfoList"
@current-change="getCaseInfoList"
@size-change="getList"
@current-change="getList"
:current-page="queryParam.current"
:page-size="queryParam.size"
layout="total, prev, pager, next, jumper"
@ -73,14 +73,13 @@
</div>
</template>
<script>
import api from "@/services/caseManagement";
import apipack from "@/services/casePackageManagement";
import api from "@/services/eventTracingApi";
export default {
components: {
},
props: {
eventTraDialog: {
DialogDetail: {
type: Object,
default: () => {
return {}
@ -90,13 +89,20 @@ import apipack from "@/services/casePackageManagement";
data() {
return {
queryDate: '',
queryParam:{},
queryParam:{
caseNo:'',
pkgName:'',
size:10,
current:1,
traceId:''
},
tableData:[],
total:0,
};
},
mounted () {
this.queryParam.traceId = this.DialogDetail.id
this.getList(1)
},
methods: {
handleChangeDate() {
@ -119,19 +125,19 @@ import apipack from "@/services/casePackageManagement";
handleSearch() {
this.queryParam.size = 10;
this.queryParam.current = 1;
// this.getList(1)
this.getList(1)
},
//
getList(val){
this.queryParam.planBegin = this.queryParam.beginTime
this.queryParam.planEnd = this.queryParam.endTime
this.queryParam.current = val
// api.getCasePkgQuery(this.queryParam).then(res => {
// if (!res.code) {
// this.tableData = res.records;
// this.total = res.total;
// }
// })
api.posttrace_sign_detail(this.queryParam).then(res => {
if (!res.code) {
this.tableData = res.records;
this.total = res.total;
}
})
},
}
};

View File

@ -10,7 +10,7 @@
<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"
clearable placeholder="请输入案件包名称"
clearable placeholder="请输入短信接收人"
@keydown.enter.native="handleSearch">
</el-input>
</div>
@ -18,8 +18,8 @@
<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"
clearable placeholder="请输入案件包名称"
<el-input v-model.trim="queryParam.phone"
clearable placeholder="请输入电话号码"
@keydown.enter.native="handleSearch">
</el-input>
</div>
@ -57,16 +57,16 @@
</div>
<div class="case-table">
<el-table :data="tableData" :height="`${contentHeight}`" >
<el-table :data="tableData" height="340" >
<el-table-column type="index" label="序号" width="55"></el-table-column>
<el-table-column prop="pkgName" label="案件包名称" show-overflow-tooltip ></el-table-column>
<el-table-column prop="entrustingAgencyName" label="案件编号" show-overflow-tooltip ></el-table-column>
<el-table-column prop="caseNo" label="案件编号" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="短信模板" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="短信接收人" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="电话号码" show-overflow-tooltip ></el-table-column>
<el-table-column prop="receiver" label="短信接收人" show-overflow-tooltip ></el-table-column>
<el-table-column prop="phone" label="电话号码" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="短信接收对象" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="发送状态" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="失败原因" show-overflow-tooltip ></el-table-column>
<el-table-column prop="status" label="发送状态" show-overflow-tooltip ></el-table-column>
<el-table-column prop="failureReason" label="失败原因" show-overflow-tooltip ></el-table-column>
<el-table-column prop="channel" label="操作人" show-overflow-tooltip ></el-table-column>
<el-table-column prop="planStartTime" label="操作时间" show-overflow-tooltip >
<template slot-scope="scope">
@ -74,7 +74,7 @@
</template>
</el-table-column>
<el-table-column label="操作" width="120">
<el-table-column label="操作" width="150">
<template slot-scope="scope">
<div class="flex-row align-items-center">
<el-button size="mini" @click="handleDelete(scope)">重试</el-button>
@ -87,8 +87,8 @@
<div class="text-center pt-16">
<el-pagination
@size-change="getCaseInfoList"
@current-change="getCaseInfoList"
@size-change="getList"
@current-change="getList"
:current-page="queryParam.current"
:page-size="queryParam.size"
layout="total, prev, pager, next, jumper"
@ -99,14 +99,13 @@
</div>
</template>
<script>
import api from "@/services/caseManagement";
import apipack from "@/services/casePackageManagement";
import api from "@/services/eventTracingApi";
export default {
components: {
},
props: {
eventTraDialog: {
DialogDetail: {
type: Object,
default: () => {
return {}
@ -116,13 +115,21 @@ import apipack from "@/services/casePackageManagement";
data() {
return {
queryDate: '',
queryParam:{},
queryParam:{
traceId:'',
phone:'',
beginTime:'',
endTime:'',
current:1,
size:10
},
tableData:[],
total:0,
};
},
mounted () {
this.queryParam.traceId = this.DialogDetail.id
this.getList(1)
},
methods: {
handleChangeDate() {
@ -145,19 +152,19 @@ import apipack from "@/services/casePackageManagement";
handleSearch() {
this.queryParam.size = 10;
this.queryParam.current = 1;
// this.getList(1)
this.getList(1)
},
//
getList(val){
this.queryParam.planBegin = this.queryParam.beginTime
this.queryParam.planEnd = this.queryParam.endTime
this.queryParam.current = val
// api.getCasePkgQuery(this.queryParam).then(res => {
// if (!res.code) {
// this.tableData = res.records;
// this.total = res.total;
// }
// })
api.posttrace_sms_detail(this.queryParam).then(res => {
if (!res.code) {
this.tableData = res.records;
this.total = res.total;
}
})
},
}
};

View File

@ -20,7 +20,7 @@
<officeDialogDetail v-if="eventTraDialog.traceType == 3 &&eventTraDialog.component == 'officeDialogDetail'" :eventTraDialog="eventTraDialog" />
<!-- 文书签字追踪 -->
<officeWriteDialog v-if="eventTraDialog.traceType == 4 &&eventTraDialog.component == 'officeWriteDialog'" :eventTraDialog="eventTraDialog" />
<officeWriteDialog v-if="eventTraDialog.traceType == 4 &&eventTraDialog.component == undefined" :eventTraDialog="eventTraDialog" />
<!-- 文书签字追踪明细 -->
<officeWDialogDetail v-if="eventTraDialog.traceType == 4 &&eventTraDialog.component == 'officeWDialogDetail'" :eventTraDialog="eventTraDialog" />
@ -91,8 +91,8 @@ import api from "@/services/caseManagement";
</script>
<style scoped lang="scss">
.dialog-trace{
padding: 16px 20px;
max-height:500px
padding: 16px 20px 0px 20px;
min-height:590px
}
</style>

View File

@ -46,7 +46,18 @@
}
if(this.menuTree.length>0)
{
this.menuTree.unshift({children:[],id:0,menuIcon:"menu-home",name:"调解首页",nameEn:"",pid:0,prefix:"mediate",sort:0,type:1,typeName:"",url:"/workbench"})
//
let identifier = this.$store.state.userinfo.identifier
if(identifier=='mediator'){
//
this.menuTree.unshift({children:[],id:0,menuIcon:"menu-home",name:"调解首页",nameEn:"",pid:0,prefix:"mediate",sort:0,type:1,typeName:"",url:"/workbench"})
}
else
{
//
this.menuTree.unshift({children:[],id:0,menuIcon:"menu-home",name:"调解首页",nameEn:"",pid:0,prefix:"mediate",sort:0,type:1,typeName:"",url:"/workbenchcm"})
}
}
else
{

View File

@ -109,7 +109,7 @@
<el-row type="flex" align="middle">
<el-col :span="24">
<el-form-item label="选择团队" prop="teamId">
<el-select v-model="userInfo.teamId" placeholder="请选择" class="width100">
<el-select v-model="userInfo.teamId" clear placeholder="请选择" class="width100">
<el-option
v-for="item in teamOptions"
:key="item.id"

View File

@ -0,0 +1,602 @@
<template>
<div>
<!-- <el-scrollbar :style="'height:'+`${contentHeight}`+'px'"> -->
<div class="layout-content-wrap flex-column">
<div class="work-hello">
<span>你好李德生</span>
</div>
<div class="flex-row justify-content-between work-main p-16">
<div class="border-radius-4 flex-column casework1">
<div class="flex-row justify-content-between case-title">
<span>案件进展情况</span>
<span>
<el-select v-model="queryParam.id"
clearable placeholder="请选择案件包"
class="width100" size="mini">
<el-option
v-for="item in casePkOptions"
:key="item.id"
:label="item.pkgName"
:value="item.id">
</el-option>
</el-select>
</span>
</div>
<div class="p-16 case-progress-cont">
<div class="case-progress">
<span class="case-pro1">
<p>案件总量</p>
<p><a>99</a></p>
</span>
<span class="case-pro2">
<p>案件待分</p>
<p><a>99</a></p>
</span>
<span class="case-pro3">
<p>未触达</p>
<p><a>99</a></p>
</span>
<span class="case-pro1">
<p>调解中</p>
<p><a>99</a></p>
</span>
<span class="case-pro2">
<p>调解成功</p>
<p><a>99</a></p>
</span>
<span class="case-pro3">
<p>已签署协议</p>
<p><a>99</a></p>
</span>
<span class="case-pro1">
<p>已司法确认</p>
<p><a>99</a></p>
</span>
<span class="case-pro2">
<p>已赋强公证</p>
<p><a>99</a></p>
</span>
</div>
</div>
</div>
<div class="border-radius-4 flex-column casework2">
<div class="flex-row justify-content-between case-pk-title">
<span>待分配案件包</span>
<div class="flex-row">
<span>
<el-select v-model="queryParam.pkgName"
clearable placeholder="请选择案件包"
@change="handleSearch()"
class="width100" size="mini">
<el-option
v-for="item in casePkOptions"
:key="item.pkgName"
:label="item.pkgName"
:value="item.pkgName">
</el-option>
</el-select>
</span>
<span class="case-pk-btn ml-16" @click="handleImport"><i class="el-icon-upload2"></i>批量导入</span>
<span class="case-pk-btn"><i class="el-icon-plus"></i>添加案件</span>
</div>
</div>
<div class="case-pk-cont flex-column">
<div v-for="(item,index) in tableData" :key="index" class="case-pk-list">
<div class="flex-row justify-content-between mb-8">
<span class="f20 f-weight500">{{item.pkgName}}</span>
<span class="cursor-pointer" @click="jumpUrl(`/case-management?dataKey=casepack&pkgId=${item.id}`)">查看详情&nbsp;></span>
</div>
<div class="flex-row mb-16">
<span>{{item.entrustingAgencyName}}</span>
<span class="ml-16">委案日期{{item.planStartTime | formaDate('yyyy-MM-dd')}}</span>
</div>
<div class="flex-row justify-content-between case-pk-num mb-16">
<span>
<p><a>{{item.caseTotal}}</a></p>
案件总量
</span>
<span>
<p><a>{{item.assignTotal}}</a></p>
已分案件数
</span>
<span>
<p><a>{{item.caseTotal - item.assignTotal}}</a></p>
待分案件数
</span>
<span>
<p><a>{{item.months}}</a>个月</p>
委案期限
</span>
</div>
<div class="flex-row justify-content-end mb-8">
<el-button size="mini" type="primary" @click="handleCaseAllocation(item)">案件分配</el-button>
<!-- <el-button size="mini" @click="handleEdit(scope)">预设还款方案</el-button> -->
<el-button size="mini" @click="handleDelete(item)">删除</el-button>
</div>
</div>
</div>
</div>
<div class="border-radius-4 flex-column casework3">
<div class="flex-column pie-chart">
<div class="flex-row justify-content-between case-pk-title">
<span>调解成功率</span>
<div class="flex-row">
<span>
<el-select v-model="queryParam.id"
clearable placeholder="请选择案件包"
class="width100" size="mini">
<el-option
v-for="item in casePkOptions"
:key="item.id"
:label="item.pkgName"
:value="item.id">
</el-option>
</el-select>
</span>
</div>
</div>
<div class="case-pk-cont flex-column">
<div>
<div id="echartsSankey" style="width: 370px; height: 270px; margin-left: 10px">
</div>
<span class="resultplan">31%</span>
</div>
<div class="flex-row justify-content-between">
<span class="flex-column align-items-center color-86909C"><a class="color-000 f16">27</a><a>总案件数</a></span>
<span class="flex-column align-items-center color-86909C"><a class="color-000 f16">10</a><a>调解成功</a></span>
<span class="flex-column align-items-center color-86909C"><a class="color-000 f16">17</a><a>调解失败</a></span>
</div>
</div>
</div>
<div class="flex-column item-trace">
<div class="flex-row justify-content-between case-pk-title">
<span>事项追踪</span>
</div>
<div class="case-pk-cont">
<div class="flex-row justify-content-between cursor-pointer" @click="eventTraDialog={traceType:0,title:'短信发送追踪'}">
<span>短信发送追踪</span><span><a>1</a>/<a>{{traceData.smsTrackingCount}}</a></span>
</div>
<div class="flex-row justify-content-between cursor-pointer" @click="eventTraDialog={traceType:1,title:'外呼事项追踪'}">
<span>外呼事项追踪</span><span><a>1</a>/<a>{{traceData.intelligentCallTrackingCount}}</a></span>
</div>
<div class="flex-row justify-content-between cursor-pointer" @click="eventTraDialog={traceType:2,title:'视频调解追踪'}">
<span>视频调解追踪</span><span><a>1</a>/<a>{{traceData.videoAppointmentTrackingCount}}</a></span>
</div>
<div class="flex-row justify-content-between cursor-pointer" @click="eventTraDialog={traceType:3,title:'文书生成追踪'}">
<span>文书生成追踪</span><span><a>1</a>/<a>{{traceData.documentGenerationTrackingCount}}</a></span>
</div>
<div class="flex-row justify-content-between cursor-pointer" @click="eventTraDialog={traceType:4,title:'文书签字追踪'}">
<span>文书签字追踪</span><span><a>1</a>/<a>{{traceData.documentSignatureTrackingCount}}</a></span>
</div>
<div class="flex-row justify-content-between cursor-pointer" @click="eventTraDialog={traceType:5,title:'文书签章追踪'}">
<span>文书签章追踪</span><span><a>1</a>/<a>{{traceData.electronicSealTrackingCount}}</a></span>
</div>
<div class="flex-row justify-content-between cursor-pointer" @click="eventTraDialog={traceType:6,title:'文书送达追踪'}">
<span>文书送达追踪</span><span><a>1</a>/<a>{{traceData.documentDeliveryTrackingCount}}</a></span>
</div>
<div class="flex-row justify-content-between cursor-pointer" @click="eventTraDialog={traceType:7,title:'还款凭证登记'}">
<span>还款凭证登记</span><span><a>1</a>/<a>{{traceData.repaymentRecordTrackingCount}}</a></span>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- </el-scrollbar> -->
<!-- 导入 -->
<importPackageDialog v-if="importCaseDialog" :importCaseDialog.sync="importCaseDialog" />
<!-- 案件分配-->
<caseAllocationDialog v-if="caseAllocationDialog" :caseAllocationDialog.sync="caseAllocationDialog" />
<!-- 事项追踪 -->
<eventTracingDialog v-if="eventTraDialog" :eventTraDialog.sync="eventTraDialog" />
</div>
</template>
<script>
import api from "@/services/caseManagement";
import workApi from "@/services/workbenchApi";
import pkapi from "@/services/casePackageManagement";
export default {
components: {
importPackageDialog: () => import('../../case-package/components/importPackageDialog'),//
caseAllocationDialog: () => import('../../case-package/components/caseAllocationDialog'),//
eventTracingDialog: () => import('../../event-tracing/index.vue'),//
},
data() {
return {
eventTraDialog:null,//
casePkOptions:[],//
queryParam: {
pkgName:'',//
id:'',
},
identifier:this.$store.state.userinfo.identifier,
detailDrawer:null,
editCaseDrawer:null,//
tableData: [],
caseAllocationDialog:null,//
importCaseDialog:null,//
myEcharts: null,
traceData:{},
};
},
watch: {
},
computed:{
// drawer
contentHeight(){
let oh = document.documentElement.clientHeight;
return oh-66
}
},
mounted(){
//
let identifier = this.$store.state.userinfo.identifier
if(identifier=='mediator'){
this.deptDisabled = true
this.queryParam.deptId = this.$store.state.userinfo.deptId
}else{
this.deptDisabled = false
}
this.getCaseapkList()
this.getCaseInfoList()
this.drawCharts()
this.getstatisticcases()
this.getstatistic_trace()
},
methods: {
jumpUrl (url) {
this.$router.push(url);
},
//
handleSearch(){
this.getCaseInfoList();
},
//
getCaseapkList(){
pkapi.getCasePkgQuery({current:1,size:100,pkgName:''}).then(res => {
if (!res.code) {
this.casePkOptions = res.records;
}
})
},
//
getCaseInfoList(){
pkapi.getCasePkgQuery({current:1,size:100,pkgName:this.queryParam.pkgName}).then(res => {
if (!res.code) {
this.tableData = res.records;
}
})
},
//
getstatisticcases(){
workApi.statistic_cases({current:1,size:100}).then(res => {
if (!res.code) {
this.tableData = res.records;
}
})
},
//
getstatistic_trace(){
workApi.statistic_trace({current:1,size:100}).then(res => {
if (!res.code) {
this.traceData = res;
}
})
},
//
handleImport(){
this.importCaseDialog={
title:'批量导入案件',
}
},
//
handleCaseAllocation(row){
if((row.caseTotal - row.assignTotal) <= 0)
{
this.$message({
showClose: true,
message: '该案件包没有待分配的案件!',
type: 'warning'
});
return false
}
this.caseAllocationDialog={
title:'案件分配',
ObjectInfo:row
}
},
//
handleDelete(row){
this.$confirm("请确定是否删除此条数据?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}).then(() => {
if(!this.$clickThrottle()) { return }//
pkapi.CasePkgdeleteById({id:row.id}).then((res) => {
this.$message.success("删除成功");
this.getCaseInfoList(1)
});
}).catch(() => {});
},
//
drawCharts () {
if (this.myEcharts) {
this.myEcharts.clear();
}
this.myEcharts = this.$echarts.init(
document.getElementById("echartsSankey")
);
let _that = this;
var option = {
tooltip: {
trigger: "item",
axisPointer: {
type: "shadow",
},
textStyle: {
fontSize: 22,
},
},
legend: {
top: "5%",
left: "center",
show: false, //
},
series: [
{
name: 'Access From',
type: 'pie',
radius: ['40%', '70%'],
avoidLabelOverlap: false,
label: {
show: false,
position: 'center'
},
emphasis: {
label: {
show: false, //hover
fontSize: 40,
fontWeight: 'bold'
}
},
labelLine: {
show: false
},
data: [
{ value: 1048, name: 'Search Engine' },
{ value: 735, name: 'Direct' },
{ value: 580, name: 'Email' },
{ value: 484, name: 'Union Ads' },
{ value: 300, name: 'Video Ads' }
]
}
]
};
_that.myEcharts.setOption(option, true);
},
},
};
</script>
<style scoped lang="scss">
.work-hello{
background:url(../../../assets/image/workbench/work-bg.png) no-repeat;
background-size: 100% 100%;
height: 96px;
padding: 25px 0 0 40px;
span{font-size:28px;color: #4E5969;}
}
.work-main{
background-color: #f6f4f4;
border-radius: 15px;
margin-top: -10px;
}
.casework1{
background:url(../../../assets/image/workbench/work-left-bg.png) no-repeat;
background-size: 100% 100%;
// min-height:496px;
width: 400px;
padding: 20px;
.case-title{
height: 60px;
padding-top: 10px;
font-size: 18px;
color:#1D2129;
font-weight: 500;
}
.case-progress-cont{
background-color: #fff;
border-radius: 5px;
}
.case-progress{
background:url(../../../assets/image/workbench/icon-bg.png) no-repeat;
background-size: 100% 100%;
height: 460px;
margin: auto;
color: #4E5969;
span{
padding: 15px 0 0px 15px;
width: 153px;
height: 105px;
display: inline-block;
margin-bottom: 13px;
line-height: 30px;
}
span:nth-child(even){
margin-left: 20px;
}
span p{padding: 0;margin: 0;}
span a{color: #1D2129;font-size: 22px;}
}
.case-pro1{width: 155px;height: 105px;}
}
.casework2{
background-color: #E1EDF4;
min-height:496px;
margin:4px 0 0 0;
width: calc(100% - 830px);
padding: 18px;
color: #4E5969;
.case-pk-title{
span:first-child{
font-size: 18px;
color:#1D2129;
font-weight: 500;
}
.case-pk-btn{
width: 90px;
font-size: 14px;
text-align: center;
line-height: 30px;
display: inline-block;
cursor: pointer;
}
}
.case-pk-cont{
.case-pk-list{
background-color: #fff;
padding: 16px;
border-radius: 8px;
margin-top: 20px;
.case-pk-num{
background-color: #F7F8FA;
height:85px ;
padding-top: 20px;
span{
width: 25%;
text-align: center;
border-right: solid 2px #e5e6e8;
height: 45px;
p{margin: 0;
a{
font-size: 22px;
}
}
}
span:last-child{border-right: 0;}
}
}
}
}
.casework3{
min-height:496px;
width: 400px;
margin:4px 0 0 0;
color: #4E5969;
.pie-chart{
padding: 18px;
background-color: #fff;
border-radius: 8px;
.case-pk-title{
span:first-child{
font-size: 18px;
color:#1D2129;
font-weight: 500;
}
}
.case-pk-cont{
padding: 20px 0;
position: relative;
.resultplan{
font-size: 32px;
position: absolute;
left: 115px;
top: 130px;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
width: 165px;
text-align: center;
}
}
}
.item-trace{
margin-top: 20px;
padding: 18px;
background-color: #fff;
border-radius: 8px;
.case-pk-title{
span:first-child{
font-size: 18px;
color:#1D2129;
font-weight: 500;
}
}
.case-pk-cont{
padding: 10px 0 0px 0;
position: relative;
.resultplan{
font-size: 32px;
position: absolute;
left: 115px;
top: 130px;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
width: 165px;
text-align: center;
}
div{
margin-top:5px;
margin-bottom:10px;
color: #4E5969;
background-color:#F7F8FA ;
padding: 12px;
border-radius: 2px;
a{
font-weight: 600;
}
a:first-child{
color: #E8535A;
}
}
}
}
}
.casework4{
background: linear-gradient(101.33deg, #0FBEAF 0.46%, #079D87 100%);
box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.12), 0px 4px 4px rgba(0, 0, 0, 0.04);
position: relative;
}
.caseworkicon1{background: linear-gradient(165.96deg, #FFFFFF 0%, rgba(255, 255, 255, 0) 100%);
opacity: 0.1;width: 80px;
}
.casework1 img,.casework2 img,.casework3 img,.casework4 img{position: absolute;right:25px;top:45px}
</style>

View File

@ -10,15 +10,14 @@
<div class="flex-row justify-content-between case-title">
<span>案件进展情况</span>
<span>
<el-select v-model="queryParam.entrustingAgencyName"
<el-select v-model="queryParam.id"
clearable placeholder="请选择案件包"
@keydown.enter.native="handleSearch"
class="width100" size="mini">
<el-option
v-for="item in casePkOptions"
:key="item.code"
:label="item.codeName"
:value="item.code">
:key="item.id"
:label="item.pkgName"
:value="item.id">
</el-option>
</el-select>
</span>
@ -65,15 +64,15 @@
<span>待分配案件包</span>
<div class="flex-row">
<span>
<el-select v-model="queryParam.entrustingAgencyName"
<el-select v-model="queryParam.pkgName"
clearable placeholder="请选择案件包"
@keydown.enter.native="handleSearch"
@change="handleSearch()"
class="width100" size="mini">
<el-option
v-for="item in casePkOptions"
:key="item.code"
:label="item.codeName"
:value="item.code">
:key="item.pkgName"
:label="item.pkgName"
:value="item.pkgName">
</el-option>
</el-select>
</span>
@ -124,15 +123,14 @@
<span>调解成功率</span>
<div class="flex-row">
<span>
<el-select v-model="queryParam.entrustingAgencyName"
<el-select v-model="queryParam.id"
clearable placeholder="请选择案件包"
@keydown.enter.native="handleSearch"
class="width100" size="mini">
<el-option
v-for="item in casePkOptions"
:key="item.code"
:label="item.codeName"
:value="item.code">
:key="item.id"
:label="item.pkgName"
:value="item.id">
</el-option>
</el-select>
</span>
@ -215,13 +213,9 @@
casePkOptions:[],//
queryParam: {
pkgName:'',//
entrustingAgencyName: '',//
endTime: '',//
beginTime:'',//
willEnd:'',
current:1,
size:100,
id:'',
},
identifier:this.$store.state.userinfo.identifier,
detailDrawer:null,
editCaseDrawer:null,//
@ -246,24 +240,55 @@
}
},
mounted(){
this.getCaseInfoList(1)
this.getCaseapkList()
this.getCaseInfoList()
this.drawCharts()
this.getstatisticcases()
this.getstatistic_trace()
},
methods: {
jumpUrl (url) {
this.$router.push(url);
},
//
handleSearch(){
this.getCaseInfoList();
},
//
getCaseapkList(){
pkapi.getCasePkgQuery({current:1,size:100,pkgName:''}).then(res => {
if (!res.code) {
this.casePkOptions = res.records;
}
})
},
//
getCaseInfoList(val){
this.queryParam.planBegin = this.queryParam.beginTime
this.queryParam.planEnd = this.queryParam.endTime
this.queryParam.current = val
pkapi.getCasePkgQuery(this.queryParam).then(res => {
getCaseInfoList(){
pkapi.getCasePkgQuery({current:1,size:100,pkgName:this.queryParam.pkgName}).then(res => {
if (!res.code) {
this.tableData = res.records;
}
})
},
//
getstatisticcases(){
workApi.statistic_cases({current:1,size:100}).then(res => {
if (!res.code) {
this.tableData = res.records;
}
})
},
//
getstatistic_trace(){
workApi.statistic_trace({current:1,size:100}).then(res => {
if (!res.code) {
this.tableData = res.records;
}
})
},
//
handleImport(){
this.importCaseDialog={

View File

@ -25,6 +25,12 @@ const routes = [
component: () => import("@/pages/workbench"),
meta: { title: "调解首页", icon: 'menu-home' },
},
{
path: "/workbenchcm",
name: "/workbenchcm",
component: () => import("@/pages/workbench/case-manage"),
meta: { title: "调解首页", icon: 'menu-home' },
},
{
path: "/case-package",
name: "/case-package",

View File

@ -25,6 +25,12 @@ const caseManagementApi = {
return service.service.post(`${apiMediate}case_pkg/dispatchCase`, data)
},
// 委案机构
postorgs: data => {
return service.service.post(`${apiMediate}case_pkg/orgs`, data)
},
//========================end::案件包管理======================================
}
export default caseManagementApi;

View File

@ -0,0 +1,63 @@
import service from "./index";
const apiMediate = '/mediate/'
const traceApi = {
//========================start::事项追踪 ======================================
// 短信追踪记录
posttrace_sms: data => {
return service.service.post(`${apiMediate}workbench/trace-sms`, data)
},
// 短信追踪明细
posttrace_sms_detail: data => {
return service.service.post(`${apiMediate}workbench/trace-sms-detail`, data)
},
// 视频预约追踪记录
posttrace_video: data => {
return service.service.post(`${apiMediate}workbench/trace-video`, data)
},
// 还款凭证追踪记录
posttrace_proof: data => {
return service.service.post(`${apiMediate}workbench/trace-proof`, data)
},
// 签字追踪记录
posttrace_sign: data => {
return service.service.post(`${apiMediate}workbench/trace-sign`, data)
},
// 签字追踪明细
posttrace_sign_detail: data => {
return service.service.post(`${apiMediate}workbench/trace-sign-detail`, data)
},
// 盖章追踪记录
posttrace_seal: data => {
return service.service.post(`${apiMediate}workbench/trace-seal`, data)
},
// 文书生成追踪记录
posttrace_generate: data => {
return service.service.post(`${apiMediate}workbench/trace-generate`, data)
},
// 文书生成追踪明细
posttrace_generate_detail: data => {
return service.service.post(`${apiMediate}workbench/trace-generate-detail`, data)
},
// 送达追踪记录
posttrace_served: data => {
return service.service.post(`${apiMediate}workbench/trace-served`, data)
},
// 送达追踪明细
posttrace_served_detail: data => {
return service.service.post(`${apiMediate}workbench/trace-served-detail`, data)
},
// 外呼追踪记录
posttrace_calling: data => {
return service.service.post(`${apiMediate}workbench/trace-calling`, data)
},
//========================end::事项追踪======================================
}
export default traceApi;

View File

@ -1,5 +1,4 @@
import service from "./index";
const apiAdmin = '/manage-center/'
const apiMediate = '/mediate/'
const systemLogApi = {
@ -23,6 +22,16 @@ const systemLogApi = {
return service.service.post(`${apiMediate}statistics/workbench/rankingStatistics`, data, {hideLoading:true})
},
// 待办汇总
statistic_cases: data => {
return service.service.post(`${apiMediate}workbench/statistic-cases`, data, {hideLoading:true})
},
// 追踪汇总
statistic_trace: data => {
return service.service.post(`${apiMediate}workbench/statistic-trace`, data, {hideLoading:true})
},
//========================end::工作台管理======================================