@@ -0,0 +1,149 @@ | |||||
import request from '@/utils/request' | |||||
//查询列表 | |||||
export function getArbitrationList(data){ | |||||
return request({ | |||||
url:'/house/mobile/arbitration/list', | |||||
method:'get', | |||||
params:data | |||||
}) | |||||
} | |||||
// 新增 | |||||
export function addArbitration(data){ | |||||
return request({ | |||||
url:'/house/arbitration/add', | |||||
method:'post', | |||||
data:data | |||||
}) | |||||
} | |||||
// 查看 | |||||
export function getArbitrationDetail(id, data){ | |||||
return request({ | |||||
url:`/house/arbitration/get/${id}`, | |||||
method:'get', | |||||
params:data | |||||
}) | |||||
} | |||||
// 提交 | |||||
export function submitArbitration(id, status, data){ | |||||
return request({ | |||||
url:`/house/arbitration/do/${id}/${status}`, | |||||
method:'get', | |||||
params:data | |||||
}) | |||||
} | |||||
// 更新 | |||||
export function editArbitration(data){ | |||||
return request({ | |||||
url:'/house/arbitration/edit', | |||||
method:'post', | |||||
data:data | |||||
}) | |||||
} | |||||
// 删除 | |||||
export function removeArbitration(id, data){ | |||||
return request({ | |||||
url: `/house/arbitration/remove/${id}`, | |||||
method:'get', | |||||
params:data | |||||
}) | |||||
} | |||||
/* ************************* 处理过程 ************************* */ | |||||
//查询处理过程列表 | |||||
export function getArbitrationProcessList(data){ | |||||
return request({ | |||||
url:'/house/process/list', | |||||
method:'get', | |||||
params:data | |||||
}) | |||||
} | |||||
// 新增处理过程 | |||||
export function addArbitrationProcess(data){ | |||||
return request({ | |||||
url:'/house/process/add', | |||||
method:'post', | |||||
data:data | |||||
}) | |||||
} | |||||
// 更新处理过程 | |||||
export function editArbitrationProcess(data){ | |||||
return request({ | |||||
url:'/house/process/edit', | |||||
method:'post', | |||||
data:data | |||||
}) | |||||
} | |||||
// 处理过程详情 | |||||
export function getArbitrationProcessDetail(id, data){ | |||||
return request({ | |||||
url: `/house/process/get/${id}`, | |||||
method:'get', | |||||
params:data | |||||
}) | |||||
} | |||||
// 删除处理过程 | |||||
export function removeArbitrationProcess(id, data){ | |||||
return request({ | |||||
url: `/house/process/remove/${id}`, | |||||
method:'get', | |||||
params:data | |||||
}) | |||||
} | |||||
/* ************************* 调解员 ************************* */ | |||||
//查询调解员列表 | |||||
export function getArbitrationHandlerList(data){ | |||||
return request({ | |||||
url:'/house/handler/list', | |||||
method:'get', | |||||
params:data | |||||
}) | |||||
} | |||||
// 新增调解员 | |||||
export function addArbitrationHandler(data){ | |||||
return request({ | |||||
url:'/house/handler/add', | |||||
method:'post', | |||||
data:data | |||||
}) | |||||
} | |||||
// 更新调解员 | |||||
export function editArbitrationHandler(data){ | |||||
return request({ | |||||
url:'/house/handler/edit', | |||||
method:'post', | |||||
data:data | |||||
}) | |||||
} | |||||
// 处理调解员 | |||||
export function getArbitrationHandlerDetail(id, data){ | |||||
return request({ | |||||
url: `/house/handler/get/${id}`, | |||||
method:'get', | |||||
params:data | |||||
}) | |||||
} | |||||
// 删除调解员 | |||||
export function removeArbitrationHandler(id, data){ | |||||
return request({ | |||||
url: `/house/handler/remove/${id}`, | |||||
method:'get', | |||||
params:data | |||||
}) | |||||
} |
@@ -2751,11 +2751,61 @@ export const constantRoutes = [ | |||||
hidden: true, | hidden: true, | ||||
}, | }, | ||||
component: (resolve) => require(['@/views/sunVillage/user/cooperative'], resolve) | component: (resolve) => require(['@/views/sunVillage/user/cooperative'], resolve) | ||||
} | |||||
}, | |||||
{ | |||||
path: '/onlineHome/arbitrationList', | |||||
name: 'arbitrationList', | |||||
meta: { | |||||
title: '纠纷调请', | |||||
hidden: true, | |||||
}, | |||||
component: (resolve) => require(['@/views/onlineHome/homestead/arbitration/arbitrationList'], resolve) | |||||
}, | |||||
{ | |||||
path: '/onlineHome/arbitrationDetail', | |||||
name: 'arbitrationDetail', | |||||
meta: { | |||||
title: '纠纷调请', | |||||
hidden: true, | |||||
}, | |||||
component: (resolve) => require(['@/views/onlineHome/homestead/arbitration/arbitrationDetail'], resolve) | |||||
}, | |||||
{ | |||||
path: '/onlineHome/arbitrationProcessList', | |||||
name: 'arbitrationProcessList', | |||||
meta: { | |||||
title: '纠纷处理', | |||||
hidden: true, | |||||
}, | |||||
component: (resolve) => require(['@/views/onlineHome/homestead/arbitration/arbitrationProcessList'], resolve) | |||||
}, | |||||
{ | |||||
path: '/onlineHome/arbitrationProcessDetail', | |||||
name: 'arbitrationProcessDetail', | |||||
meta: { | |||||
title: '纠纷处理过程', | |||||
hidden: true, | |||||
}, | |||||
component: (resolve) => require(['@/views/onlineHome/homestead/arbitration/arbitrationProcessDetail'], resolve) | |||||
}, | |||||
{ | |||||
path: '/onlineHome/arbitrationHandlerList', | |||||
name: 'arbitrationHandlerList', | |||||
meta: { | |||||
title: '调解/仲裁员', | |||||
hidden: true, | |||||
}, | |||||
component: (resolve) => require(['@/views/onlineHome/homestead/arbitration/arbitrationHandlerList'], resolve) | |||||
}, | |||||
{ | |||||
path: '/onlineHome/arbitrationHandlerDetail', | |||||
name: 'arbitrationHandlerDetail', | |||||
meta: { | |||||
title: '纠纷处理员', | |||||
hidden: true, | |||||
}, | |||||
component: (resolve) => require(['@/views/onlineHome/homestead/arbitration/arbitrationHandlerDetail'], resolve) | |||||
}, | |||||
]; | ]; | ||||
@@ -0,0 +1,623 @@ | |||||
<template> | |||||
<div class="app-container"> | |||||
<van-nav-bar | |||||
title="纠纷调请" | |||||
left-arrow | |||||
fixed | |||||
placeholder | |||||
@click-left="goBack()" | |||||
z-index="998" | |||||
> | |||||
<template #right> | |||||
<van-icon name="../../../static/images/icon/icon_flow.png" size="20" @click="openMenu" v-if="!!id"/> | |||||
</template> | |||||
</van-nav-bar> | |||||
<div class="main" style="padding-bottom: 1rem;"> | |||||
<van-form ref="form"> | |||||
<div :class="formEnabled.baseFormEnabled ? '' : 'noModify'"> | |||||
<p class="topTit">纠纷调请</p> | |||||
<template> <!-- 申请 基本信息 --> | |||||
<div> | |||||
<p class="main_title">基本信息</p> | |||||
<div class="main_box"> | |||||
<van-field :readonly="true" v-model="arbitrationData.applicant" label="申请人" placeholder="申请人" input-align="right" required :rules="[{ required: true }]"/> | |||||
<van-field required :readonly="true" v-model="arbitrationData.applicantPhone" label="联系电话" placeholder="联系电话" input-align="right" type="digit" :rules="[{pattern: /(^\d{7}(\d{4})?$)/}]"/> | |||||
<field-select | |||||
v-model="arbitrationData.applyProposerId" | |||||
label="宅基地申请" | |||||
value-key="projectName" | |||||
data-key="id" | |||||
placeholder="选择宅基地申请" | |||||
:rules="[{ required: true }]" | |||||
required | |||||
:readonly="!formEnabled.baseFormEnabled" | |||||
:columns="userHouseApplyProposer" | |||||
/> | |||||
<van-field :readonly="!formEnabled.baseFormEnabled" v-model="arbitrationData.disputant" label="纠纷人" placeholder="纠纷人" input-align="right" required :rules="[{ required: true }]"/> | |||||
<field-date-picker | |||||
v-model="arbitrationData.applyTime" | |||||
label="申请时间" | |||||
placeholder="请选择申请时间" | |||||
:rules="[{ required: true }]" | |||||
formatter="yyyy-MM-dd" | |||||
required | |||||
:readonly="!formEnabled.baseFormEnabled" | |||||
/> | |||||
</div> | |||||
</div> | |||||
<div> | |||||
<p class="main_title">纠纷事项</p> | |||||
<div class="main_box"> | |||||
<van-field | |||||
rows="3" | |||||
autosize | |||||
type="textarea" | |||||
placeholder="纠纷事项" | |||||
input-align="left" | |||||
v-model="arbitrationData.disputes" | |||||
:readonly="!formEnabled.baseFormEnabled" | |||||
:rules="[{ required: true }]" required | |||||
/> | |||||
</div> | |||||
</div> | |||||
<div> | |||||
<p class="main_title">备注说明</p> | |||||
<div class="main_box"> | |||||
<van-field | |||||
rows="3" | |||||
autosize | |||||
type="textarea" | |||||
placeholder="备注说明" | |||||
input-align="left" | |||||
v-model="arbitrationData.remark" | |||||
:readonly="!formEnabled.baseFormEnabled" | |||||
:rules="[{ required: true }]" required | |||||
/> | |||||
</div> | |||||
</div> | |||||
</template> | |||||
</div> | |||||
</van-form> | |||||
</div> | |||||
<!-- 底部按钮 --> | |||||
<van-goods-action style="z-index: 999;" v-if="formVisible.editVisible || formVisible.operationVisible || formVisible.approvalVisible"> | |||||
<template v-if="formVisible.editVisible"> | |||||
<van-goods-action-button type="primary" text="保存" @click="onSubmit('add')" :disabled="!formEnabled.baseFormEnabled" v-if="formEnabled.baseFormEnabled"/> | |||||
<van-goods-action-button type="primary" :text="formEnabled.baseFormEnabled ? '保存并提交' : '提交'" @click="onSubmit(formEnabled.baseFormEnabled ? 'save_and_submit' : 'submit')" v-if="formEnabled.submitEnabled"/> | |||||
</template> | |||||
<template v-if="formVisible.approvalVisible"> | |||||
<van-goods-action-button type="primary" text="受理" @click="onSubmit('agree')" :disabled="!formEnabled.approvalEnabled"/> | |||||
<van-goods-action-button type="danger" text="驳回" @click="onSubmit('reject')" v-if="formEnabled.rejectEnabled"/> | |||||
</template> | |||||
<template v-if="formVisible.operationVisible"> | |||||
<van-goods-action-button type="primary" text="调解" @click="onSubmit('mediate')" v-if="formEnabled.mediateEnabled"/> | |||||
<van-goods-action-button type="danger" text="仲裁" @click="onSubmit('arbitrate')" v-if="formEnabled.arbitrateEnabled"/> | |||||
<van-goods-action-button type="primary" text="归档" @click="onSubmit('archive')" v-if="formEnabled.archiveEnabled"/> | |||||
</template> | |||||
</van-goods-action> | |||||
<van-popup | |||||
v-model="menuVisible" | |||||
closeable | |||||
position="bottom" | |||||
:close-on-click-overlay="true" | |||||
:lazy-render="false" | |||||
> | |||||
<van-cell title="菜单"></van-cell> | |||||
<van-cell-group inset> | |||||
<van-cell title="调解/冲裁员" is-link @click="openArbitrationHandlerPage()"/> | |||||
<van-cell title="处理过程" is-link @click="openArbitrationProcessPage()"/> | |||||
</van-cell-group> | |||||
</van-popup> | |||||
</div> | |||||
</template> | |||||
<script> | |||||
import FieldSelect from "@/components/form/FieldSelect"; | |||||
import FieldDatePicker from "@/components/form/FieldDatePicker"; | |||||
import {formatDate} from "element-ui/src/utils/date-util.js"; | |||||
import {getInfo} from '@/api/login/index' | |||||
import {Notify} from "vant"; | |||||
import { getList } from "@/api/onlineHome/homestead/application"; | |||||
import { addArbitration, getArbitrationDetail, submitArbitration, editArbitration } from "@/api/onlineHome/homestead/arbitration"; | |||||
// 意图 | |||||
const INTENT_VIEW = 1; | |||||
const INTENT_EDIT = 2; | |||||
const INTENT_ADD = 3; | |||||
export default { | |||||
name: "ArbitrationDetail", | |||||
components: { | |||||
FieldDatePicker, FieldSelect}, | |||||
data() { | |||||
return { | |||||
// 申请ID | |||||
id: '', | |||||
// 表单数据 | |||||
arbitrationData: { | |||||
applicantPhone: '', | |||||
applyProposerId: '', | |||||
applicant: '', | |||||
disputant: '', | |||||
disputes: '', | |||||
remark: '', | |||||
applyTime: '', | |||||
deptName: '', | |||||
disputeStatus: '1', | |||||
}, | |||||
// 表单意图 | |||||
operationIntent: INTENT_ADD, | |||||
// 显示控制 | |||||
formVisible: { | |||||
editVisible: false, | |||||
approvalVisible: false, | |||||
operationVisible: false, | |||||
finishVisible: false, | |||||
}, | |||||
// 表单启用控制 | |||||
formEnabled: { | |||||
baseFormEnabled: false, | |||||
submitEnabled: false, | |||||
approvalEnabled: false, | |||||
rejectEnabled: false, | |||||
mediateEnabled: false, | |||||
arbitrateEnabled: false, | |||||
archiveEnabled: false, | |||||
}, | |||||
currentUserRole: null, | |||||
userHouseApplyProposer: [], | |||||
menuVisible: false, | |||||
}; | |||||
}, | |||||
created() { | |||||
this.id = this.$route.query.id; | |||||
this.type = this.$route.query.type; | |||||
this.getFormIntent(); | |||||
this.getDetail(); | |||||
this.getUserHouseApplyProposer(); | |||||
}, | |||||
methods: { | |||||
// 初始化当前数据, 有ID则查询, 否则新增 | |||||
getDetail(){ | |||||
this.reset(); | |||||
if(this.id) | |||||
{ | |||||
getArbitrationDetail(this.id).then(response => { | |||||
this.init(response.data); | |||||
}); | |||||
} | |||||
else | |||||
{ | |||||
this.init(); | |||||
this.getApplyerDetail(); | |||||
} | |||||
}, | |||||
// 全局初始化 | |||||
init(value) { | |||||
const role = this.$store.getters.roles; | |||||
this.currentUserRole = role[0]; | |||||
// 默认状态 | |||||
this.formVisible.editVisible = false; | |||||
this.formVisible.approvalVisible = false; | |||||
this.formVisible.operationVisible = false; | |||||
this.formEnabled.baseFormEnabled = false; | |||||
this.formEnabled.submitEnabled = false; | |||||
this.formEnabled.approvalEnabled = false; | |||||
this.formEnabled.rejectEnabled = false; | |||||
this.formEnabled.mediateEnabled = false; | |||||
this.formEnabled.arbitrateEnabled = false; | |||||
this.formEnabled.archiveEnabled = false; | |||||
switch (this.operationIntent) { | |||||
// 查看 | |||||
case INTENT_VIEW: | |||||
this.arbitrationData = value; | |||||
switch(value.disputeStatus) | |||||
{ | |||||
case '1': // 草稿 | |||||
this.formEnabled.submitEnabled = true; | |||||
this.formVisible.editVisible = true; | |||||
break; | |||||
case '2': // 待审 | |||||
this.formVisible.approvalVisible = true; | |||||
this.formEnabled.approvalEnabled = true; | |||||
this.formEnabled.rejectEnabled = true; | |||||
break; | |||||
case '3': // 受理 | |||||
this.formVisible.operationVisible = true; | |||||
this.formEnabled.mediateEnabled = true; | |||||
this.formEnabled.arbitrateEnabled = true; | |||||
break; | |||||
case '4': // 驳回 | |||||
this.formVisible.approvalVisible = true; | |||||
this.formEnabled.approvalEnabled = true; | |||||
break; | |||||
case '5': // 调解 | |||||
this.formVisible.operationVisible = true; | |||||
this.formEnabled.arbitrateEnabled = true; | |||||
this.formEnabled.archiveEnabled = true; | |||||
break; | |||||
case '6': // 仲裁 | |||||
this.formVisible.operationVisible = true; | |||||
this.formEnabled.archiveEnabled = true; | |||||
break; | |||||
case '7': // 归档 | |||||
break; | |||||
default: | |||||
break; | |||||
} | |||||
break; | |||||
// 编辑/审批 | |||||
case INTENT_EDIT: | |||||
this.arbitrationData = value; | |||||
this.formEnabled.baseFormEnabled = true; | |||||
this.formVisible.editVisible = true; | |||||
this.formEnabled.submitEnabled = true; | |||||
break; | |||||
// 新建 | |||||
case INTENT_ADD: | |||||
this.formEnabled.baseFormEnabled = true; | |||||
this.formVisible.editVisible = true; | |||||
break; | |||||
} | |||||
}, | |||||
// 获取query的意图 | |||||
getFormIntent() { | |||||
console.log(this.type); | |||||
switch (this.type) { | |||||
case 'done': | |||||
case 'view': | |||||
this.operationIntent = INTENT_VIEW; | |||||
break; | |||||
case 'modify': | |||||
case 'audit': | |||||
case 'todo': | |||||
this.operationIntent = INTENT_EDIT; | |||||
break; | |||||
case 'add': | |||||
default: | |||||
this.operationIntent = INTENT_ADD; | |||||
break; | |||||
} | |||||
return this.operationIntent; | |||||
}, | |||||
// 获取日期, yyyy-MM-dd | |||||
getDate(d) { | |||||
return formatDate(d ? d : new Date(), 'yyyy-MM-dd'); | |||||
}, | |||||
// 初始化基础表单 | |||||
reset() { | |||||
this.$set(this.arbitrationData, 'applicantPhone', ''); | |||||
this.$set(this.arbitrationData, 'applyProposerId', ''); | |||||
this.$set(this.arbitrationData, 'applicant', ''); | |||||
this.$set(this.arbitrationData, 'disputant', ''); | |||||
this.$set(this.arbitrationData, 'disputes', ''); | |||||
this.$set(this.arbitrationData, 'remark', ''); | |||||
this.$set(this.arbitrationData, 'deptName', ''); | |||||
this.$set(this.arbitrationData, 'disputeStatus', 1); | |||||
this.$set(this.arbitrationData, 'applyTime', this.getDate()); | |||||
}, | |||||
//返回上一步操作 | |||||
goBack(){ | |||||
this.$router.push({name: this.$router.back(-1)}); | |||||
}, | |||||
// 全局提交 | |||||
onSubmit(intent){ | |||||
console.log(this.arbitrationData, intent); | |||||
switch (intent) { | |||||
case 'add': | |||||
case 'modify': | |||||
this.saveArbitration(); | |||||
break; | |||||
case 'submit': | |||||
this.submitArbitration(); | |||||
break; | |||||
case 'save_and_submit': | |||||
this.saveArbitration(true); | |||||
break; | |||||
case 'agree': | |||||
this.agreeArbitration(); | |||||
break; | |||||
case 'reject': | |||||
this.rejectArbitration(); | |||||
break; | |||||
case 'mediate': | |||||
this.mediateArbitration(); | |||||
break; | |||||
case 'arbitrate': | |||||
this.arbitrateArbitration(); | |||||
break; | |||||
case 'archive': | |||||
this.archiveArbitration(); | |||||
break; | |||||
default: | |||||
console.error('Unknown intent! ', intent); | |||||
break; | |||||
} | |||||
}, | |||||
// 获取申请人信息 | |||||
getApplyerDetail(){ | |||||
getInfo().then(res => { | |||||
let user = res.user; | |||||
console.log(user); | |||||
this.$set(this.arbitrationData, 'applicantPhone', user.phonenumber); | |||||
this.$set(this.arbitrationData, 'applicant', user.nickName); | |||||
}); | |||||
}, | |||||
// 检查字符串, 不符合返回true | |||||
checkString(value, regexp) { | |||||
let res = value === undefined || value === null || value === '' || value.toString().trim().length === 0; | |||||
if(res) | |||||
return true; | |||||
if(regexp) | |||||
res = !value.match(regexp); | |||||
return res; | |||||
}, | |||||
// 保存申请(是否提交) | |||||
saveArbitration(submit) { | |||||
this.$refs.form.validate().then(() => { | |||||
/*if(this.checkString(this.arbitrationData.tHouseApplyProposedSituation.theGeom)) | |||||
{ | |||||
this.notify("请标注宅基地位置!", 'danger'); | |||||
return; | |||||
}*/ | |||||
console.log("进行保存", this.arbitrationData); | |||||
(this.arbitrationData.id ? editArbitration : addArbitration)(this.arbitrationData).then((response) => { | |||||
if(submit && this.arbitrationData.id) | |||||
{ | |||||
this.submitArbitration(); | |||||
} | |||||
else | |||||
{ | |||||
this.notify("保存成功", 'success'); | |||||
this.goBack(); | |||||
} | |||||
}).catch((e) => { | |||||
this.notify("保存失败!", 'danger'); | |||||
}).finally(() => { | |||||
}); | |||||
}).catch(e => { | |||||
this.notify('请填写完整表单', 'danger'); | |||||
return; | |||||
}); | |||||
}, | |||||
submitArbitration() { | |||||
this.setArbitrationStatus('2', '提交'); | |||||
}, | |||||
agreeArbitration() { | |||||
this.setArbitrationStatus('3', '受理'); | |||||
}, | |||||
rejectArbitration() { | |||||
this.setArbitrationStatus('4', '驳回'); | |||||
}, | |||||
mediateArbitration() { | |||||
this.setArbitrationStatus('5', '调解'); | |||||
}, | |||||
arbitrateArbitration() { | |||||
this.setArbitrationStatus('6', '仲裁'); | |||||
}, | |||||
archiveArbitration() { | |||||
this.setArbitrationStatus('7', '归档'); | |||||
}, | |||||
setArbitrationStatus(status, reason) { | |||||
submitArbitration(this.arbitrationData.id, status).then((response) => { | |||||
this.notify(`${reason}成功`, 'success'); | |||||
this.goBack(); | |||||
}).catch((e) => { | |||||
this.notify(`${reason}成功失败!`, 'danger'); | |||||
}).finally(() => { | |||||
}); | |||||
}, | |||||
// 请求结果提示工具函数 | |||||
notify(message, type) { | |||||
Notify.clear(); | |||||
Notify({ type: type || 'primary', message: message }); | |||||
}, | |||||
getUserHouseApplyProposer() | |||||
{ | |||||
getList().then((resp) => { | |||||
this.userHouseApplyProposer = resp.rows; | |||||
}); | |||||
}, | |||||
openMenu() { | |||||
this.menuVisible = true; | |||||
}, | |||||
openArbitrationProcessPage() | |||||
{ | |||||
this.$router.push({name:'arbitrationProcessList', query: { | |||||
arbitrationId: this.arbitrationData.id, | |||||
}}); | |||||
}, | |||||
openArbitrationHandlerPage() | |||||
{ | |||||
this.$router.push({name:'arbitrationHandlerList', query: { | |||||
arbitrationId: this.arbitrationData.id, | |||||
}}); | |||||
}, | |||||
}, | |||||
watch: { | |||||
} | |||||
} | |||||
</script> | |||||
<style scoped lang="scss"> | |||||
.app-container { | |||||
padding-bottom: 5%; | |||||
} | |||||
.examine_box{ | |||||
background-color: #1D6FE9!important; | |||||
padding: 0.18rem!important; | |||||
padding-left: 0!important; | |||||
border-radius: 0.15rem!important; | |||||
margin-top: 0.3rem!important; | |||||
} | |||||
.examine_box .van-col:first-child{ | |||||
color: #FFF!important; | |||||
font-size: 0.45rem!important; | |||||
text-align: center!important; | |||||
} | |||||
.examine_box .van-col:last-child{ | |||||
background-color: #FFF!important; | |||||
border-radius: 0.15rem!important; | |||||
overflow: hidden!important; | |||||
.van-radio-group--horizontal{ | |||||
padding: 0.2rem 0; | |||||
border-bottom: 1px solid #eee; | |||||
} | |||||
} | |||||
#mapWrap{ | |||||
width: 96%; | |||||
margin: 0 auto; | |||||
border-bottom-left-radius: 12px; | |||||
border-bottom-right-radius: 12px; | |||||
overflow: hidden; | |||||
} | |||||
.mapBox{ | |||||
position: relative; | |||||
.mapBox_button{ | |||||
position: absolute; | |||||
top: 0.2rem; | |||||
right: 2%; | |||||
} | |||||
} | |||||
.van-steps{ | |||||
padding: 2% 6% 0; | |||||
} | |||||
.topTit{ | |||||
font-size: 0.45rem; | |||||
background-color: #1D6FE9; | |||||
color: #FFFFFF; | |||||
line-height: 58px; | |||||
text-align: center; | |||||
padding: 15px 0; | |||||
box-shadow: 0px 3px 6px 0px rgba(15,67,145,0.40); | |||||
} | |||||
.main_title{ | |||||
font-size: 0.4rem; | |||||
color: #1D6FE9; | |||||
margin: 0.2rem 6%; | |||||
position: relative; | |||||
} | |||||
.main_box{ | |||||
width: 96%; | |||||
margin: 0 auto; | |||||
border-radius: 6px; | |||||
box-shadow: 0px 3px 6px 0px rgba(0,0,0,0.16); | |||||
overflow: hidden; | |||||
background-color: #FFF; | |||||
} | |||||
.collapse{ | |||||
width: 96%; | |||||
margin: 0 auto; | |||||
border-radius: 6px; | |||||
box-shadow: 0px 3px 6px 0px rgba(0,0,0,0.16); | |||||
overflow: hidden; | |||||
margin-bottom: 15px; | |||||
} | |||||
/deep/.van-radio--horizontal{ | |||||
margin-left: 20px; | |||||
margin-right: 0; | |||||
} | |||||
.file-box{ | |||||
padding: 2% 5% 0; | |||||
} | |||||
.submitButton{ | |||||
width: 80%; | |||||
margin: 0 auto; | |||||
border-radius: 14px; | |||||
} | |||||
.timeTit{ | |||||
text-align: center; | |||||
font-size: 16px; | |||||
line-height: 27px; | |||||
} | |||||
.action-box{ | |||||
padding: 15px 0!important; | |||||
margin-top: 0.4rem; | |||||
} | |||||
.check-box{ | |||||
margin-top: 0.4rem; | |||||
} | |||||
.addFamily{ | |||||
position: absolute; | |||||
top: -2px; | |||||
right: 0; | |||||
border-radius: 50%; | |||||
display: inline-block; | |||||
width: 0.7rem; | |||||
height: 0.7rem; | |||||
} | |||||
.deleteFamily{ | |||||
position: absolute; | |||||
top: -0.35rem; | |||||
right: 6%; | |||||
z-index: 9; | |||||
border-radius: 50%; | |||||
display: inline-block; | |||||
width: 0.7rem; | |||||
height: 0.7rem; | |||||
} | |||||
.familyList{ | |||||
margin-top: 0.4rem; | |||||
position: relative; | |||||
} | |||||
.noModify{ | |||||
.topTit{ | |||||
background-color:#ABABAB ; | |||||
box-shadow: 0px 3px 6px 0px rgba(171,171,171,0.40); | |||||
} | |||||
.van-cell__title{ | |||||
color: #B4B0B0; | |||||
} | |||||
} | |||||
.flow_main_box{ | |||||
width: 96%; | |||||
margin: 0 auto; | |||||
border-radius: 6px; | |||||
box-shadow: 0px 3px 6px 0px rgba(0,0,0,0.16); | |||||
overflow: hidden; | |||||
background-color: #FFF; | |||||
margin-top: 2%; | |||||
padding: 5% 1%; | |||||
.van-col{ | |||||
text-align: center; | |||||
} | |||||
.tit{ | |||||
background: #1d6fe9; | |||||
border-radius: 12px; | |||||
font-size: 0.4rem; | |||||
font-family: Source Han Sans CN, Source Han Sans CN-Regular; | |||||
font-weight: 400; | |||||
color: #ffffff; | |||||
line-height: 0.65rem; | |||||
letter-spacing: 0px; | |||||
width: 70%; | |||||
margin: 0 auto; | |||||
} | |||||
.van-step--vertical{ | |||||
padding-right: 0; | |||||
text-align: left; | |||||
} | |||||
.van-step--vertical:not(:last-child)::after{ | |||||
border: none; | |||||
} | |||||
.van-step--finish{ | |||||
color: #1d6fe9; | |||||
} | |||||
} | |||||
.van-goods-action { | |||||
justify-content: center; | |||||
} | |||||
</style> |
@@ -0,0 +1,426 @@ | |||||
<template> | |||||
<div class="app-container"> | |||||
<van-nav-bar | |||||
title="纠纷调请" | |||||
left-arrow | |||||
fixed | |||||
placeholder | |||||
@click-left="goBack()" | |||||
z-index="998" | |||||
> | |||||
</van-nav-bar> | |||||
<div class="main" style="padding-bottom: 1rem;"> | |||||
<van-form ref="form"> | |||||
<div :class="formEnabled.baseFormEnabled ? '' : 'noModify'"> | |||||
<p class="topTit">纠纷处理员</p> | |||||
<template> <!-- 申请 基本信息 --> | |||||
<div> | |||||
<p class="main_title">基本信息</p> | |||||
<div class="main_box"> | |||||
<van-field :readonly="!formEnabled.baseFormEnabled" v-model="arbitrationData.handlerName" label="调解/仲裁员" placeholder="调解/仲裁员" input-align="right" required :rules="[{ required: true }]"/> | |||||
<field-radio | |||||
v-model="arbitrationData.handlerType" | |||||
label="身份类型" | |||||
value-key="dictLabel" | |||||
data-key="dictValue" | |||||
:rules="[{ required: true }]" | |||||
required | |||||
:readonly="!formEnabled.baseFormEnabled" | |||||
:columns="options.handler_type" | |||||
/> | |||||
<van-field :readonly="!formEnabled.baseFormEnabled" v-model="arbitrationData.handlerPost" label="职务" placeholder="职务" input-align="right" required :rules="[{ required: true }]"/> | |||||
<van-field :readonly="!formEnabled.baseFormEnabled" v-model="arbitrationData.handlerPhone" label="联系方式" placeholder="联系方式" input-align="right" required :rules="[{pattern: /(^\d{7}(\d{4})?$)/}]"/> | |||||
</div> | |||||
</div> | |||||
</template> | |||||
</div> | |||||
</van-form> | |||||
</div> | |||||
<!-- 底部按钮 --> | |||||
<van-goods-action style="z-index: 999;"> | |||||
<van-goods-action-button type="primary" text="保存" @click="onSubmit('add')" v-if="formEnabled.baseFormEnabled" /> | |||||
<van-goods-action-button type="danger" text="删除" @click="onSubmit('del')" v-if="formEnabled.removeEnabled" /> | |||||
</van-goods-action> | |||||
</div> | |||||
</template> | |||||
<script> | |||||
import FieldDatePicker from "@/components/form/FieldDatePicker"; | |||||
import FieldRadio from "@/components/form/FieldRadio"; | |||||
import {formatDate} from "element-ui/src/utils/date-util.js"; | |||||
import {Dialog, Notify} from "vant"; | |||||
import { addArbitrationHandler, getArbitrationHandlerDetail, editArbitrationHandler, removeArbitrationHandler } from "@/api/onlineHome/homestead/arbitration"; | |||||
// 意图 | |||||
const INTENT_VIEW = 1; | |||||
const INTENT_EDIT = 2; | |||||
const INTENT_ADD = 3; | |||||
export default { | |||||
name: "ArbitrationHandlerDetail", | |||||
components: { | |||||
FieldRadio, FieldDatePicker,}, | |||||
data() { | |||||
return { | |||||
// 申请ID | |||||
id: '', | |||||
// 表单数据 | |||||
arbitrationData: { | |||||
arbitrationId: this.$route.query.arbitrationId, | |||||
handlerPhone: '', | |||||
handlerPost: '', | |||||
handlerType: '1', | |||||
handlerName: '', | |||||
}, | |||||
// 表单意图 | |||||
operationIntent: INTENT_ADD, | |||||
// 显示控制 | |||||
formVisible: { | |||||
}, | |||||
// 表单启用控制 | |||||
formEnabled: { | |||||
baseFormEnabled: false, | |||||
removeEnabled: false, | |||||
}, | |||||
currentUserRole: null, | |||||
options: { | |||||
handler_type: [], | |||||
}, | |||||
}; | |||||
}, | |||||
created() { | |||||
this.id = this.$route.query.id; | |||||
this.type = this.$route.query.type; | |||||
this.getFormIntent(); | |||||
this.initOptions(); | |||||
this.getDetail(); | |||||
}, | |||||
methods: { | |||||
// 初始化当前数据, 有ID则查询, 否则新增 | |||||
getDetail(){ | |||||
this.reset(); | |||||
if(this.id) | |||||
{ | |||||
getArbitrationHandlerDetail(this.id).then(response => { | |||||
this.init(response.data); | |||||
}); | |||||
} | |||||
else | |||||
{ | |||||
this.init(); | |||||
} | |||||
}, | |||||
// 全局初始化 | |||||
init(value) { | |||||
const role = this.$store.getters.roles; | |||||
this.currentUserRole = role[0]; | |||||
// 默认状态 | |||||
this.formEnabled.baseFormEnabled = false; | |||||
this.formEnabled.removeEnabled = false; | |||||
switch (this.operationIntent) { | |||||
// 查看 | |||||
case INTENT_VIEW: | |||||
this.arbitrationData = value; | |||||
this.formEnabled.removeEnabled = true; | |||||
break; | |||||
// 编辑 | |||||
case INTENT_EDIT: | |||||
this.arbitrationData = value; | |||||
this.formEnabled.baseFormEnabled = true; | |||||
this.formEnabled.removeEnabled = true; | |||||
break; | |||||
// 新建 | |||||
case INTENT_ADD: | |||||
this.formEnabled.baseFormEnabled = true; | |||||
break; | |||||
} | |||||
}, | |||||
// 获取query的意图 | |||||
getFormIntent() { | |||||
console.log(this.type); | |||||
switch (this.type) { | |||||
case 'view': | |||||
this.operationIntent = INTENT_VIEW; | |||||
break; | |||||
case 'modify': | |||||
this.operationIntent = INTENT_EDIT; | |||||
break; | |||||
case 'add': | |||||
default: | |||||
this.operationIntent = INTENT_ADD; | |||||
break; | |||||
} | |||||
return this.operationIntent; | |||||
}, | |||||
// 获取日期, yyyy-MM-dd | |||||
getDate(d) { | |||||
return formatDate(d ? d : new Date(), 'yyyy-MM-dd'); | |||||
}, | |||||
// 初始化基础表单 | |||||
reset() { | |||||
this.$set(this.arbitrationData, 'handlerPhone', ''); | |||||
this.$set(this.arbitrationData, 'arbitrationId', this.$route.query.arbitrationId); | |||||
this.$set(this.arbitrationData, 'handlerName', ''); | |||||
this.$set(this.arbitrationData, 'handlerPost', ''); | |||||
this.$set(this.arbitrationData, 'handlerType', '1'); | |||||
}, | |||||
//返回上一步操作 | |||||
goBack(){ | |||||
this.$router.push({name: this.$router.back(-1)}); | |||||
}, | |||||
// 全局提交 | |||||
onSubmit(intent){ | |||||
console.log(this.arbitrationData, intent); | |||||
switch (intent) { | |||||
case 'add': | |||||
case 'modify': | |||||
this.saveArbitrationHandler(); | |||||
break; | |||||
case 'del': | |||||
this.removeArbitrationHandler(); | |||||
break; | |||||
default: | |||||
console.error('Unknown intent! ', intent); | |||||
break; | |||||
} | |||||
}, | |||||
// 检查字符串, 不符合返回true | |||||
checkString(value, regexp) { | |||||
let res = value === undefined || value === null || value === '' || value.toString().trim().length === 0; | |||||
if(res) | |||||
return true; | |||||
if(regexp) | |||||
res = !value.match(regexp); | |||||
return res; | |||||
}, | |||||
// 保存申请(是否提交) | |||||
saveArbitrationHandler() { | |||||
this.$refs.form.validate().then(() => { | |||||
console.log("进行保存", this.arbitrationData); | |||||
(this.arbitrationData.id ? editArbitrationHandler : addArbitrationHandler)(this.arbitrationData).then((response) => { | |||||
this.notify("保存成功", 'success'); | |||||
this.goBack(); | |||||
}).catch((e) => { | |||||
this.notify("保存失败!", 'danger'); | |||||
}).finally(() => { | |||||
}); | |||||
}).catch(e => { | |||||
this.notify('请填写完整表单', 'danger'); | |||||
return; | |||||
}); | |||||
}, | |||||
// 请求结果提示工具函数 | |||||
notify(message, type) { | |||||
Notify.clear(); | |||||
Notify({ type: type || 'primary', message: message }); | |||||
}, | |||||
initOptions() { | |||||
this.arbitrationData.arbitrationId = this.$route.query.arbitrationId; | |||||
for(let k in this.options) | |||||
{ | |||||
this.houseGetDicts(k).then((res) => { | |||||
this.options[k] = res.data; | |||||
}); | |||||
} | |||||
}, | |||||
// 删除 | |||||
removeArbitrationHandler() { | |||||
Dialog.confirm({ | |||||
title: '警告', | |||||
message: '确定删除?', | |||||
}) | |||||
.then(() => { | |||||
removeArbitrationHandler(this.arbitrationData.id).then((response) => { | |||||
this.notify("删除成功", 'success'); | |||||
this.goBack(); | |||||
}).catch((e) => { | |||||
this.notify("删除失败!", 'danger'); | |||||
}).finally(() => { | |||||
}); | |||||
}) | |||||
.catch(() => { | |||||
}); | |||||
}, | |||||
}, | |||||
watch: { | |||||
} | |||||
} | |||||
</script> | |||||
<style scoped lang="scss"> | |||||
.app-container { | |||||
padding-bottom: 5%; | |||||
} | |||||
.examine_box{ | |||||
background-color: #1D6FE9!important; | |||||
padding: 0.18rem!important; | |||||
padding-left: 0!important; | |||||
border-radius: 0.15rem!important; | |||||
margin-top: 0.3rem!important; | |||||
} | |||||
.examine_box .van-col:first-child{ | |||||
color: #FFF!important; | |||||
font-size: 0.45rem!important; | |||||
text-align: center!important; | |||||
} | |||||
.examine_box .van-col:last-child{ | |||||
background-color: #FFF!important; | |||||
border-radius: 0.15rem!important; | |||||
overflow: hidden!important; | |||||
.van-radio-group--horizontal{ | |||||
padding: 0.2rem 0; | |||||
border-bottom: 1px solid #eee; | |||||
} | |||||
} | |||||
#mapWrap{ | |||||
width: 96%; | |||||
margin: 0 auto; | |||||
border-bottom-left-radius: 12px; | |||||
border-bottom-right-radius: 12px; | |||||
overflow: hidden; | |||||
} | |||||
.mapBox{ | |||||
position: relative; | |||||
.mapBox_button{ | |||||
position: absolute; | |||||
top: 0.2rem; | |||||
right: 2%; | |||||
} | |||||
} | |||||
.van-steps{ | |||||
padding: 2% 6% 0; | |||||
} | |||||
.topTit{ | |||||
font-size: 0.45rem; | |||||
background-color: #1D6FE9; | |||||
color: #FFFFFF; | |||||
line-height: 58px; | |||||
text-align: center; | |||||
padding: 15px 0; | |||||
box-shadow: 0px 3px 6px 0px rgba(15,67,145,0.40); | |||||
} | |||||
.main_title{ | |||||
font-size: 0.4rem; | |||||
color: #1D6FE9; | |||||
margin: 0.2rem 6%; | |||||
position: relative; | |||||
} | |||||
.main_box{ | |||||
width: 96%; | |||||
margin: 0 auto; | |||||
border-radius: 6px; | |||||
box-shadow: 0px 3px 6px 0px rgba(0,0,0,0.16); | |||||
overflow: hidden; | |||||
background-color: #FFF; | |||||
} | |||||
.collapse{ | |||||
width: 96%; | |||||
margin: 0 auto; | |||||
border-radius: 6px; | |||||
box-shadow: 0px 3px 6px 0px rgba(0,0,0,0.16); | |||||
overflow: hidden; | |||||
margin-bottom: 15px; | |||||
} | |||||
/deep/.van-radio--horizontal{ | |||||
margin-left: 20px; | |||||
margin-right: 0; | |||||
} | |||||
.file-box{ | |||||
padding: 2% 5% 0; | |||||
} | |||||
.submitButton{ | |||||
width: 80%; | |||||
margin: 0 auto; | |||||
border-radius: 14px; | |||||
} | |||||
.timeTit{ | |||||
text-align: center; | |||||
font-size: 16px; | |||||
line-height: 27px; | |||||
} | |||||
.action-box{ | |||||
padding: 15px 0!important; | |||||
margin-top: 0.4rem; | |||||
} | |||||
.check-box{ | |||||
margin-top: 0.4rem; | |||||
} | |||||
.addFamily{ | |||||
position: absolute; | |||||
top: -2px; | |||||
right: 0; | |||||
border-radius: 50%; | |||||
display: inline-block; | |||||
width: 0.7rem; | |||||
height: 0.7rem; | |||||
} | |||||
.deleteFamily{ | |||||
position: absolute; | |||||
top: -0.35rem; | |||||
right: 6%; | |||||
z-index: 9; | |||||
border-radius: 50%; | |||||
display: inline-block; | |||||
width: 0.7rem; | |||||
height: 0.7rem; | |||||
} | |||||
.familyList{ | |||||
margin-top: 0.4rem; | |||||
position: relative; | |||||
} | |||||
.noModify{ | |||||
.topTit{ | |||||
background-color:#ABABAB ; | |||||
box-shadow: 0px 3px 6px 0px rgba(171,171,171,0.40); | |||||
} | |||||
.van-cell__title{ | |||||
color: #B4B0B0; | |||||
} | |||||
} | |||||
.flow_main_box{ | |||||
width: 96%; | |||||
margin: 0 auto; | |||||
border-radius: 6px; | |||||
box-shadow: 0px 3px 6px 0px rgba(0,0,0,0.16); | |||||
overflow: hidden; | |||||
background-color: #FFF; | |||||
margin-top: 2%; | |||||
padding: 5% 1%; | |||||
.van-col{ | |||||
text-align: center; | |||||
} | |||||
.tit{ | |||||
background: #1d6fe9; | |||||
border-radius: 12px; | |||||
font-size: 0.4rem; | |||||
font-family: Source Han Sans CN, Source Han Sans CN-Regular; | |||||
font-weight: 400; | |||||
color: #ffffff; | |||||
line-height: 0.65rem; | |||||
letter-spacing: 0px; | |||||
width: 70%; | |||||
margin: 0 auto; | |||||
} | |||||
.van-step--vertical{ | |||||
padding-right: 0; | |||||
text-align: left; | |||||
} | |||||
.van-step--vertical:not(:last-child)::after{ | |||||
border: none; | |||||
} | |||||
.van-step--finish{ | |||||
color: #1d6fe9; | |||||
} | |||||
} | |||||
.van-goods-action { | |||||
justify-content: center; | |||||
} | |||||
</style> |
@@ -0,0 +1,199 @@ | |||||
<template> | |||||
<div> | |||||
<van-nav-bar | |||||
left-arrow | |||||
title="调解/仲裁员" | |||||
fixed | |||||
placeholder | |||||
@click-left="$router.back()" | |||||
> | |||||
<template #right> | |||||
<van-icon name="add" size="20" @click="addArbitrationHandler"/> | |||||
</template> | |||||
</van-nav-bar> | |||||
<van-pull-refresh v-model="refreshing" @refresh="getList()"> | |||||
<van-list | |||||
v-model="loading" | |||||
:finished="finished" | |||||
:immediate-check="false" | |||||
finished-text="没有更多了" | |||||
@load="getList('+1')" | |||||
> | |||||
<van-swipe-cell v-for="(item,index) in list" :key="index" class="delegate"> | |||||
<van-cell :title="item.disputes" center @click="viewItem(item)"> | |||||
<template #label> | |||||
<p style="font-weight: bold;">{{item.handlerPost}} {{item.handlerPhone}}</p> | |||||
</template> | |||||
<template #title> | |||||
<p style="font-weight: bold;">{{item.handlerName}}</p> | |||||
</template> | |||||
<template #right-icon> | |||||
<p :style="{'font-weight': 'bold', | |||||
color: { | |||||
'1': '#00FF00', | |||||
'2': '#FF0000', | |||||
}[item.handlerType], | |||||
}">{{formatDict(options.handler_type, item.handlerType)}}</p> | |||||
</template> | |||||
</van-cell> | |||||
<template #right> | |||||
<van-row style="height: 100%;"> | |||||
<van-col style="height: 100%;"> | |||||
<van-button square text="编辑" type="info" style="height: 100%;" @click="editItem(item)"/> | |||||
</van-col> | |||||
<van-col style="height: 100%;"> | |||||
<van-button square text="删除" type="danger" style="height: 100%;" @click="removeItem(item)"/> | |||||
</van-col> | |||||
</van-row> | |||||
</template> | |||||
</van-swipe-cell> | |||||
</van-list> | |||||
</van-pull-refresh> | |||||
<!-- <onlineHomeIndex :current="1"></onlineHomeIndex>--> | |||||
</div> | |||||
</template> | |||||
<script> | |||||
import {getArbitrationHandlerList, removeArbitrationHandler} from "@/api/onlineHome/homestead/arbitration"; | |||||
import FieldSelect from "@/components/form/FieldSelect"; | |||||
import { formatDate } from "element-ui/src/utils/date-util.js" | |||||
import {Dialog, ImagePreview, Notify} from 'vant'; | |||||
import onlineHomeIndex from "@/views/onlineHomeIndex"; | |||||
import FieldDatePicker from "@/components/form/FieldDatePicker"; | |||||
export default { | |||||
components: {FieldSelect, onlineHomeIndex, FieldDatePicker}, | |||||
name: "ArbitrationHandlerList", | |||||
data() { | |||||
return { | |||||
list: [], | |||||
total: 0, | |||||
queryParams: { | |||||
arbitrationId: null, | |||||
pageNum: 1, | |||||
pageSize: 10, | |||||
orderByColumn: 'createTime', | |||||
isAsc: 'desc', | |||||
}, | |||||
refreshing: false, | |||||
loading: false, | |||||
finished: false, | |||||
options: { | |||||
handler_type: [], | |||||
}, | |||||
} | |||||
}, | |||||
created() { | |||||
this.initOptions(); | |||||
this.getList(); | |||||
}, | |||||
methods: { | |||||
getList(target) { | |||||
if(this.loading) return; | |||||
let type = typeof (target); | |||||
console.log(type, target); | |||||
if (target === 0) { | |||||
this.refreshing = true; | |||||
this.finished = false; | |||||
this.total = 0; | |||||
this.queryParams.pageNum = 1; | |||||
this.list = []; | |||||
this.filterVisible = false; | |||||
} | |||||
else if (type === 'number') | |||||
this.queryParams.pageNum = target; | |||||
else if (type === 'string') { | |||||
this.queryParams.pageNum = eval(this.queryParams.pageNum + target) | |||||
} | |||||
else | |||||
{ | |||||
this.refreshing = true; | |||||
this.finished = false; | |||||
this.total = 0; | |||||
this.queryParams.pageNum = 1; | |||||
this.list = [] | |||||
} | |||||
getArbitrationHandlerList(this.queryParams).then((response) => { | |||||
console.log(response) | |||||
if (response.rows.length === 0) { | |||||
this.finished = true; | |||||
return; | |||||
} | |||||
response.rows.forEach((e) => { | |||||
this.list.push(e); | |||||
}); | |||||
this.total += response.rows.length; | |||||
if (this.total >= response.total) { | |||||
this.finished = true; | |||||
} | |||||
}).finally(() => { | |||||
this.loading = false; | |||||
this.refreshing = false; | |||||
}); | |||||
}, | |||||
viewItem(item) { | |||||
this.$router.push({name:'arbitrationHandlerDetail', query: { | |||||
type: 'view', | |||||
id: item.id, | |||||
}}); | |||||
}, | |||||
editItem(item) { | |||||
this.$router.push({name:'arbitrationHandlerDetail', query: { | |||||
type: 'modify', | |||||
id: item.id, | |||||
}}); | |||||
}, | |||||
removeItem(item) { | |||||
Dialog.confirm({ | |||||
title: '警告', | |||||
message: '确定删除?', | |||||
}) | |||||
.then(() => { | |||||
removeArbitrationHandler(item.id).then((response) => { | |||||
this.notify("删除成功", 'success'); | |||||
this.getList(); | |||||
}).catch((e) => { | |||||
this.notify("删除失败!", 'danger'); | |||||
}).finally(() => { | |||||
}); | |||||
}) | |||||
.catch(() => { | |||||
}); | |||||
}, | |||||
notify(message, type) { | |||||
Notify.clear(); | |||||
Notify({ type: type || 'primary', message: message }); | |||||
}, | |||||
initOptions() { | |||||
this.queryParams.arbitrationId = this.$route.query.arbitrationId; | |||||
for(let k in this.options) | |||||
{ | |||||
this.houseGetDicts(k).then((res) => { | |||||
this.options[k] = res.data; | |||||
}); | |||||
} | |||||
}, | |||||
formatDict(dict, value) { | |||||
return this.selectDictLabel(dict, value); | |||||
}, | |||||
addArbitrationHandler() { | |||||
this.$router.push({name:'arbitrationHandlerDetail', query: { | |||||
arbitrationId: this.queryParams.arbitrationId, | |||||
}}); | |||||
}, | |||||
}, | |||||
} | |||||
</script> | |||||
<style scoped> | |||||
.delegate { | |||||
width: 96%; | |||||
margin: 3% 2% 3% 2%; | |||||
border-radius: 0.18rem; | |||||
overflow: hidden; | |||||
box-shadow: 0.1rem 0.1rem 0.15rem 0.02rem rgba(0,0,0,0.16); | |||||
} | |||||
</style> |
@@ -0,0 +1,224 @@ | |||||
<template> | |||||
<div> | |||||
<van-nav-bar | |||||
left-arrow | |||||
title="纠纷调请" | |||||
fixed | |||||
placeholder | |||||
@click-left="$router.back()" | |||||
> | |||||
<template #right> | |||||
<van-icon name="add" size="20" @click="addArbitration"/> | |||||
</template> | |||||
</van-nav-bar> | |||||
<van-pull-refresh v-model="refreshing" @refresh="getList()"> | |||||
<van-list | |||||
v-model="loading" | |||||
:finished="finished" | |||||
:immediate-check="false" | |||||
finished-text="没有更多了" | |||||
@load="getList('+1')" | |||||
> | |||||
<van-swipe-cell v-for="(item,index) in list" :key="index" class="delegate"> | |||||
<van-cell :title="item.disputes" center @click="viewItem(item)"> | |||||
<template #label> | |||||
<p style="font-weight: bold;">{{item.applyTime}}</p> | |||||
</template> | |||||
<template #title> | |||||
<p style="font-weight: bold;">{{item.disputes}}</p> | |||||
</template> | |||||
<template #right-icon> | |||||
<p :style="{'font-weight': 'bold', | |||||
color: { | |||||
'1': '#000000', | |||||
'2': '#000000', | |||||
'3': '#00FF00', | |||||
'4': '#FF0000', | |||||
'5': '#00FF00', | |||||
'6': '#00FF00', | |||||
'7': '#00FF00', | |||||
}[item.dispute_status], | |||||
}">{{formatDict(options.dispute_status, item.disputeStatus)}}</p> | |||||
</template> | |||||
</van-cell> | |||||
<template #right> | |||||
<van-row style="height: 100%;"> | |||||
<van-col style="height: 100%;"> | |||||
<van-button v-if="item.disputeStatus == '1'" square text="编辑" type="info" style="height: 100%;" @click="editItem(item)"/> | |||||
</van-col> | |||||
<van-col style="height: 100%;"> | |||||
<van-button v-if="item.disputeStatus == '1'" square text="提交" type="primary" style="height: 100%;" @click="submitItem(item)"/> | |||||
</van-col> | |||||
<van-col style="height: 100%;"> | |||||
<van-button v-if="item.disputeStatus == '1'" square text="删除" type="danger" style="height: 100%;" @click="removeItem(item)"/> | |||||
</van-col> | |||||
</van-row> | |||||
</template> | |||||
</van-swipe-cell> | |||||
</van-list> | |||||
</van-pull-refresh> | |||||
<!-- <onlineHomeIndex :current="1"></onlineHomeIndex>--> | |||||
</div> | |||||
</template> | |||||
<script> | |||||
import {getArbitrationList, submitArbitration, removeArbitration} from "@/api/onlineHome/homestead/arbitration"; | |||||
import { formatDate } from "element-ui/src/utils/date-util.js" | |||||
import {Dialog, ImagePreview, Notify} from 'vant'; | |||||
import onlineHomeIndex from "@/views/onlineHomeIndex"; | |||||
export default { | |||||
components: {onlineHomeIndex, }, | |||||
name: "ArbitrationList", | |||||
data() { | |||||
return { | |||||
list: [], | |||||
total: 0, | |||||
queryParams: { | |||||
pageNum: 1, | |||||
pageSize: 10, | |||||
orderByColumn: 'createTime', | |||||
isAsc: 'desc', | |||||
disputeStatus: null, | |||||
}, | |||||
refreshing: false, | |||||
loading: false, | |||||
finished: false, | |||||
options: { | |||||
dispute_status: [], | |||||
}, | |||||
} | |||||
}, | |||||
created() { | |||||
this.initOptions(); | |||||
this.getList(); | |||||
}, | |||||
methods: { | |||||
getList(target) { | |||||
if(this.loading) return; | |||||
let type = typeof (target); | |||||
console.log(type, target); | |||||
if (target === 0) { | |||||
this.refreshing = true; | |||||
this.finished = false; | |||||
this.total = 0; | |||||
this.queryParams.pageNum = 1; | |||||
this.list = []; | |||||
this.filterVisible = false; | |||||
} | |||||
else if (type === 'number') | |||||
this.queryParams.pageNum = target; | |||||
else if (type === 'string') { | |||||
this.queryParams.pageNum = eval(this.queryParams.pageNum + target) | |||||
} | |||||
else | |||||
{ | |||||
this.refreshing = true; | |||||
this.finished = false; | |||||
this.total = 0; | |||||
this.queryParams.pageNum = 1; | |||||
this.list = [] | |||||
} | |||||
getArbitrationList(this.queryParams).then((response) => { | |||||
console.log(response) | |||||
if (response.rows.length === 0) { | |||||
this.finished = true; | |||||
return; | |||||
} | |||||
response.rows.forEach((e) => { | |||||
this.list.push(e); | |||||
}); | |||||
this.total += response.rows.length; | |||||
if (this.total >= response.total) { | |||||
this.finished = true; | |||||
} | |||||
}).finally(() => { | |||||
this.loading = false; | |||||
this.refreshing = false; | |||||
}); | |||||
}, | |||||
viewItem(item) { | |||||
this.$router.push({name:'arbitrationDetail', query: { | |||||
type: 'view', | |||||
id: item.id, | |||||
}}); | |||||
}, | |||||
editItem(item) { | |||||
this.$router.push({name:'arbitrationDetail', query: { | |||||
type: 'modify', | |||||
id: item.id, | |||||
}}); | |||||
}, | |||||
submitItem(item) { | |||||
if(item.disputeStatus != '1') | |||||
{ | |||||
this.notify('只有草稿才可提交', 'danger'); | |||||
return; | |||||
} | |||||
submitArbitration(item.id, '2').then((response) => { | |||||
this.notify("提交成功", 'success'); | |||||
this.getList(); | |||||
}).catch((e) => { | |||||
this.notify("提交失败!", 'danger'); | |||||
}).finally(() => { | |||||
}); | |||||
}, | |||||
notify(message, type) { | |||||
Notify.clear(); | |||||
Notify({ type: type || 'primary', message: message }); | |||||
}, | |||||
initOptions() { | |||||
for(let k in this.options) | |||||
{ | |||||
this.houseGetDicts(k).then((res) => { | |||||
this.options[k] = res.data; | |||||
}); | |||||
} | |||||
}, | |||||
formatDict(dict, value) { | |||||
return this.selectDictLabel(dict, value); | |||||
}, | |||||
addArbitration() { | |||||
this.$router.push({name:'arbitrationDetail', query: { | |||||
type: 'add', | |||||
}}); | |||||
}, | |||||
removeItem(item) { | |||||
if(item.disputeStatus != '1') | |||||
{ | |||||
this.notify("只允许删除草稿!", 'danger'); | |||||
return; | |||||
} | |||||
Dialog.confirm({ | |||||
title: '警告', | |||||
message: '确定删除?', | |||||
}) | |||||
.then(() => { | |||||
removeArbitration(item.id).then((response) => { | |||||
this.notify("删除成功", 'success'); | |||||
this.getList(); | |||||
}).catch((e) => { | |||||
this.notify("删除失败!", 'danger'); | |||||
}).finally(() => { | |||||
}); | |||||
}) | |||||
.catch(() => { | |||||
}); | |||||
}, | |||||
}, | |||||
} | |||||
</script> | |||||
<style scoped> | |||||
.delegate { | |||||
width: 96%; | |||||
margin: 3% 2% 3% 2%; | |||||
border-radius: 0.18rem; | |||||
overflow: hidden; | |||||
box-shadow: 0.1rem 0.1rem 0.15rem 0.02rem rgba(0,0,0,0.16); | |||||
} | |||||
</style> |
@@ -0,0 +1,451 @@ | |||||
<template> | |||||
<div class="app-container"> | |||||
<van-nav-bar | |||||
title="纠纷调请" | |||||
left-arrow | |||||
fixed | |||||
placeholder | |||||
@click-left="goBack()" | |||||
z-index="998" | |||||
> | |||||
</van-nav-bar> | |||||
<div class="main" style="padding-bottom: 1rem;"> | |||||
<van-form ref="form"> | |||||
<div :class="formEnabled.baseFormEnabled ? '' : 'noModify'"> | |||||
<p class="topTit">纠纷处理过程</p> | |||||
<template> <!-- 申请 基本信息 --> | |||||
<div> | |||||
<p class="main_title">基本信息</p> | |||||
<div class="main_box"> | |||||
<van-field :readonly="!formEnabled.baseFormEnabled" v-model="arbitrationData.handlerName" label="负责人" placeholder="负责人" input-align="right" required :rules="[{ required: true }]"/> | |||||
<field-date-picker | |||||
v-model="arbitrationData.handleTime" | |||||
label="申请时间" | |||||
placeholder="请选择申请时间" | |||||
:rules="[{ required: true }]" | |||||
formatter="yyyy-MM-dd" | |||||
required | |||||
:readonly="!formEnabled.baseFormEnabled" | |||||
/> | |||||
<field-radio | |||||
v-model="arbitrationData.handlerType" | |||||
label="处理方式" | |||||
value-key="dictLabel" | |||||
data-key="dictValue" | |||||
:rules="[{ required: true }]" | |||||
required | |||||
:readonly="!formEnabled.baseFormEnabled" | |||||
:columns="options.handler_type" | |||||
/> | |||||
</div> | |||||
</div> | |||||
<div> | |||||
<p class="main_title">处理结果</p> | |||||
<div class="main_box"> | |||||
<van-field | |||||
rows="3" | |||||
autosize | |||||
type="textarea" | |||||
placeholder="请输入处理结果" | |||||
input-align="left" | |||||
v-model="arbitrationData.handleResult" | |||||
:readonly="!formEnabled.baseFormEnabled" | |||||
:rules="[{ required: true }]" required | |||||
/> | |||||
</div> | |||||
</div> | |||||
</template> | |||||
</div> | |||||
</van-form> | |||||
</div> | |||||
<!-- 底部按钮 --> | |||||
<van-goods-action style="z-index: 999;"> | |||||
<van-goods-action-button type="primary" text="保存" @click="onSubmit('add')" v-if="formEnabled.baseFormEnabled" /> | |||||
<van-goods-action-button type="danger" text="删除" @click="onSubmit('del')" v-if="formEnabled.removeEnabled" /> | |||||
</van-goods-action> | |||||
</div> | |||||
</template> | |||||
<script> | |||||
import FieldDatePicker from "@/components/form/FieldDatePicker"; | |||||
import FieldRadio from "@/components/form/FieldRadio"; | |||||
import {formatDate} from "element-ui/src/utils/date-util.js"; | |||||
import {Dialog, Notify} from "vant"; | |||||
import { addArbitrationProcess, getArbitrationProcessDetail, editArbitrationProcess, removeArbitrationProcess } from "@/api/onlineHome/homestead/arbitration"; | |||||
// 意图 | |||||
const INTENT_VIEW = 1; | |||||
const INTENT_EDIT = 2; | |||||
const INTENT_ADD = 3; | |||||
export default { | |||||
name: "ArbitrationProcessDetail", | |||||
components: { | |||||
FieldRadio, FieldDatePicker,}, | |||||
data() { | |||||
return { | |||||
// 申请ID | |||||
id: '', | |||||
// 表单数据 | |||||
arbitrationData: { | |||||
arbitrationId: this.$route.query.arbitrationId, | |||||
handleResult: '', | |||||
handleTime: '', | |||||
handlerType: '1', | |||||
handlerName: '', | |||||
}, | |||||
// 表单意图 | |||||
operationIntent: INTENT_ADD, | |||||
// 显示控制 | |||||
formVisible: { | |||||
}, | |||||
// 表单启用控制 | |||||
formEnabled: { | |||||
baseFormEnabled: false, | |||||
removeEnabled: false, | |||||
}, | |||||
currentUserRole: null, | |||||
options: { | |||||
handler_type: [], | |||||
}, | |||||
}; | |||||
}, | |||||
created() { | |||||
this.id = this.$route.query.id; | |||||
this.type = this.$route.query.type; | |||||
this.getFormIntent(); | |||||
this.initOptions(); | |||||
this.getDetail(); | |||||
}, | |||||
methods: { | |||||
// 初始化当前数据, 有ID则查询, 否则新增 | |||||
getDetail(){ | |||||
this.reset(); | |||||
if(this.id) | |||||
{ | |||||
getArbitrationProcessDetail(this.id).then(response => { | |||||
this.init(response.data); | |||||
}); | |||||
} | |||||
else | |||||
{ | |||||
this.init(); | |||||
} | |||||
}, | |||||
// 全局初始化 | |||||
init(value) { | |||||
const role = this.$store.getters.roles; | |||||
this.currentUserRole = role[0]; | |||||
// 默认状态 | |||||
this.formEnabled.baseFormEnabled = false; | |||||
this.formEnabled.removeEnabled = false; | |||||
switch (this.operationIntent) { | |||||
// 查看 | |||||
case INTENT_VIEW: | |||||
this.arbitrationData = value; | |||||
this.formEnabled.removeEnabled = true; | |||||
break; | |||||
// 编辑 | |||||
case INTENT_EDIT: | |||||
this.arbitrationData = value; | |||||
this.formEnabled.baseFormEnabled = true; | |||||
this.formEnabled.removeEnabled = true; | |||||
break; | |||||
// 新建 | |||||
case INTENT_ADD: | |||||
this.formEnabled.baseFormEnabled = true; | |||||
break; | |||||
} | |||||
}, | |||||
// 获取query的意图 | |||||
getFormIntent() { | |||||
console.log(this.type); | |||||
switch (this.type) { | |||||
case 'view': | |||||
this.operationIntent = INTENT_VIEW; | |||||
break; | |||||
case 'modify': | |||||
this.operationIntent = INTENT_EDIT; | |||||
break; | |||||
case 'add': | |||||
default: | |||||
this.operationIntent = INTENT_ADD; | |||||
break; | |||||
} | |||||
return this.operationIntent; | |||||
}, | |||||
// 获取日期, yyyy-MM-dd | |||||
getDate(d) { | |||||
return formatDate(d ? d : new Date(), 'yyyy-MM-dd'); | |||||
}, | |||||
// 初始化基础表单 | |||||
reset() { | |||||
this.$set(this.arbitrationData, 'handleResult', ''); | |||||
this.$set(this.arbitrationData, 'arbitrationId', this.$route.query.arbitrationId); | |||||
this.$set(this.arbitrationData, 'handlerName', ''); | |||||
this.$set(this.arbitrationData, 'handlerType', '1'); | |||||
this.$set(this.arbitrationData, 'handleTime', this.getDate()); | |||||
}, | |||||
//返回上一步操作 | |||||
goBack(){ | |||||
this.$router.push({name: this.$router.back(-1)}); | |||||
}, | |||||
// 全局提交 | |||||
onSubmit(intent){ | |||||
console.log(this.arbitrationData, intent); | |||||
switch (intent) { | |||||
case 'add': | |||||
case 'modify': | |||||
this.saveArbitrationProcess(); | |||||
break; | |||||
case 'del': | |||||
this.removeArbitrationProcess(); | |||||
break; | |||||
default: | |||||
console.error('Unknown intent! ', intent); | |||||
break; | |||||
} | |||||
}, | |||||
// 检查字符串, 不符合返回true | |||||
checkString(value, regexp) { | |||||
let res = value === undefined || value === null || value === '' || value.toString().trim().length === 0; | |||||
if(res) | |||||
return true; | |||||
if(regexp) | |||||
res = !value.match(regexp); | |||||
return res; | |||||
}, | |||||
// 保存申请(是否提交) | |||||
saveArbitrationProcess() { | |||||
this.$refs.form.validate().then(() => { | |||||
console.log("进行保存", this.arbitrationData); | |||||
(this.arbitrationData.id ? editArbitrationProcess : addArbitrationProcess)(this.arbitrationData).then((response) => { | |||||
this.notify("保存成功", 'success'); | |||||
this.goBack(); | |||||
}).catch((e) => { | |||||
this.notify("保存失败!", 'danger'); | |||||
}).finally(() => { | |||||
}); | |||||
}).catch(e => { | |||||
this.notify('请填写完整表单', 'danger'); | |||||
return; | |||||
}); | |||||
}, | |||||
// 请求结果提示工具函数 | |||||
notify(message, type) { | |||||
Notify.clear(); | |||||
Notify({ type: type || 'primary', message: message }); | |||||
}, | |||||
initOptions() { | |||||
this.arbitrationData.arbitrationId = this.$route.query.arbitrationId; | |||||
for(let k in this.options) | |||||
{ | |||||
this.houseGetDicts(k).then((res) => { | |||||
this.options[k] = res.data; | |||||
}); | |||||
} | |||||
}, | |||||
// 删除 | |||||
removeArbitrationProcess() { | |||||
Dialog.confirm({ | |||||
title: '警告', | |||||
message: '确定删除?', | |||||
}) | |||||
.then(() => { | |||||
removeArbitrationProcess(this.arbitrationData.id).then((response) => { | |||||
this.notify("删除成功", 'success'); | |||||
this.goBack(); | |||||
}).catch((e) => { | |||||
this.notify("删除失败!", 'danger'); | |||||
}).finally(() => { | |||||
}); | |||||
}) | |||||
.catch(() => { | |||||
}); | |||||
}, | |||||
}, | |||||
watch: { | |||||
} | |||||
} | |||||
</script> | |||||
<style scoped lang="scss"> | |||||
.app-container { | |||||
padding-bottom: 5%; | |||||
} | |||||
.examine_box{ | |||||
background-color: #1D6FE9!important; | |||||
padding: 0.18rem!important; | |||||
padding-left: 0!important; | |||||
border-radius: 0.15rem!important; | |||||
margin-top: 0.3rem!important; | |||||
} | |||||
.examine_box .van-col:first-child{ | |||||
color: #FFF!important; | |||||
font-size: 0.45rem!important; | |||||
text-align: center!important; | |||||
} | |||||
.examine_box .van-col:last-child{ | |||||
background-color: #FFF!important; | |||||
border-radius: 0.15rem!important; | |||||
overflow: hidden!important; | |||||
.van-radio-group--horizontal{ | |||||
padding: 0.2rem 0; | |||||
border-bottom: 1px solid #eee; | |||||
} | |||||
} | |||||
#mapWrap{ | |||||
width: 96%; | |||||
margin: 0 auto; | |||||
border-bottom-left-radius: 12px; | |||||
border-bottom-right-radius: 12px; | |||||
overflow: hidden; | |||||
} | |||||
.mapBox{ | |||||
position: relative; | |||||
.mapBox_button{ | |||||
position: absolute; | |||||
top: 0.2rem; | |||||
right: 2%; | |||||
} | |||||
} | |||||
.van-steps{ | |||||
padding: 2% 6% 0; | |||||
} | |||||
.topTit{ | |||||
font-size: 0.45rem; | |||||
background-color: #1D6FE9; | |||||
color: #FFFFFF; | |||||
line-height: 58px; | |||||
text-align: center; | |||||
padding: 15px 0; | |||||
box-shadow: 0px 3px 6px 0px rgba(15,67,145,0.40); | |||||
} | |||||
.main_title{ | |||||
font-size: 0.4rem; | |||||
color: #1D6FE9; | |||||
margin: 0.2rem 6%; | |||||
position: relative; | |||||
} | |||||
.main_box{ | |||||
width: 96%; | |||||
margin: 0 auto; | |||||
border-radius: 6px; | |||||
box-shadow: 0px 3px 6px 0px rgba(0,0,0,0.16); | |||||
overflow: hidden; | |||||
background-color: #FFF; | |||||
} | |||||
.collapse{ | |||||
width: 96%; | |||||
margin: 0 auto; | |||||
border-radius: 6px; | |||||
box-shadow: 0px 3px 6px 0px rgba(0,0,0,0.16); | |||||
overflow: hidden; | |||||
margin-bottom: 15px; | |||||
} | |||||
/deep/.van-radio--horizontal{ | |||||
margin-left: 20px; | |||||
margin-right: 0; | |||||
} | |||||
.file-box{ | |||||
padding: 2% 5% 0; | |||||
} | |||||
.submitButton{ | |||||
width: 80%; | |||||
margin: 0 auto; | |||||
border-radius: 14px; | |||||
} | |||||
.timeTit{ | |||||
text-align: center; | |||||
font-size: 16px; | |||||
line-height: 27px; | |||||
} | |||||
.action-box{ | |||||
padding: 15px 0!important; | |||||
margin-top: 0.4rem; | |||||
} | |||||
.check-box{ | |||||
margin-top: 0.4rem; | |||||
} | |||||
.addFamily{ | |||||
position: absolute; | |||||
top: -2px; | |||||
right: 0; | |||||
border-radius: 50%; | |||||
display: inline-block; | |||||
width: 0.7rem; | |||||
height: 0.7rem; | |||||
} | |||||
.deleteFamily{ | |||||
position: absolute; | |||||
top: -0.35rem; | |||||
right: 6%; | |||||
z-index: 9; | |||||
border-radius: 50%; | |||||
display: inline-block; | |||||
width: 0.7rem; | |||||
height: 0.7rem; | |||||
} | |||||
.familyList{ | |||||
margin-top: 0.4rem; | |||||
position: relative; | |||||
} | |||||
.noModify{ | |||||
.topTit{ | |||||
background-color:#ABABAB ; | |||||
box-shadow: 0px 3px 6px 0px rgba(171,171,171,0.40); | |||||
} | |||||
.van-cell__title{ | |||||
color: #B4B0B0; | |||||
} | |||||
} | |||||
.flow_main_box{ | |||||
width: 96%; | |||||
margin: 0 auto; | |||||
border-radius: 6px; | |||||
box-shadow: 0px 3px 6px 0px rgba(0,0,0,0.16); | |||||
overflow: hidden; | |||||
background-color: #FFF; | |||||
margin-top: 2%; | |||||
padding: 5% 1%; | |||||
.van-col{ | |||||
text-align: center; | |||||
} | |||||
.tit{ | |||||
background: #1d6fe9; | |||||
border-radius: 12px; | |||||
font-size: 0.4rem; | |||||
font-family: Source Han Sans CN, Source Han Sans CN-Regular; | |||||
font-weight: 400; | |||||
color: #ffffff; | |||||
line-height: 0.65rem; | |||||
letter-spacing: 0px; | |||||
width: 70%; | |||||
margin: 0 auto; | |||||
} | |||||
.van-step--vertical{ | |||||
padding-right: 0; | |||||
text-align: left; | |||||
} | |||||
.van-step--vertical:not(:last-child)::after{ | |||||
border: none; | |||||
} | |||||
.van-step--finish{ | |||||
color: #1d6fe9; | |||||
} | |||||
} | |||||
.van-goods-action { | |||||
justify-content: center; | |||||
} | |||||
</style> |
@@ -0,0 +1,199 @@ | |||||
<template> | |||||
<div> | |||||
<van-nav-bar | |||||
left-arrow | |||||
title="纠纷处理" | |||||
fixed | |||||
placeholder | |||||
@click-left="$router.back()" | |||||
> | |||||
<template #right> | |||||
<van-icon name="add" size="20" @click="addArbitrationProcess"/> | |||||
</template> | |||||
</van-nav-bar> | |||||
<van-pull-refresh v-model="refreshing" @refresh="getList()"> | |||||
<van-list | |||||
v-model="loading" | |||||
:finished="finished" | |||||
:immediate-check="false" | |||||
finished-text="没有更多了" | |||||
@load="getList('+1')" | |||||
> | |||||
<van-swipe-cell v-for="(item,index) in list" :key="index" class="delegate"> | |||||
<van-cell :title="item.disputes" center @click="viewItem(item)"> | |||||
<template #label> | |||||
<p style="font-weight: bold;">{{item.handleTime}}</p> | |||||
</template> | |||||
<template #title> | |||||
<p style="font-weight: bold;">{{item.handlerName}}</p> | |||||
</template> | |||||
<template #right-icon> | |||||
<p :style="{'font-weight': 'bold', | |||||
color: { | |||||
'1': '#00FF00', | |||||
'2': '#FF0000', | |||||
}[item.handlerType], | |||||
}">{{formatDict(options.handler_type, item.handlerType)}}</p> | |||||
</template> | |||||
</van-cell> | |||||
<template #right> | |||||
<van-row style="height: 100%;"> | |||||
<van-col style="height: 100%;"> | |||||
<van-button square text="编辑" type="info" style="height: 100%;" @click="editItem(item)"/> | |||||
</van-col> | |||||
<van-col style="height: 100%;"> | |||||
<van-button square text="删除" type="danger" style="height: 100%;" @click="removeItem(item)"/> | |||||
</van-col> | |||||
</van-row> | |||||
</template> | |||||
</van-swipe-cell> | |||||
</van-list> | |||||
</van-pull-refresh> | |||||
<!-- <onlineHomeIndex :current="1"></onlineHomeIndex>--> | |||||
</div> | |||||
</template> | |||||
<script> | |||||
import {getArbitrationProcessList, removeArbitrationProcess} from "@/api/onlineHome/homestead/arbitration"; | |||||
import FieldSelect from "@/components/form/FieldSelect"; | |||||
import { formatDate } from "element-ui/src/utils/date-util.js" | |||||
import {Dialog, ImagePreview, Notify} from 'vant'; | |||||
import onlineHomeIndex from "@/views/onlineHomeIndex"; | |||||
import FieldDatePicker from "@/components/form/FieldDatePicker"; | |||||
export default { | |||||
components: {FieldSelect, onlineHomeIndex, FieldDatePicker}, | |||||
name: "ArbitrationProcessList", | |||||
data() { | |||||
return { | |||||
list: [], | |||||
total: 0, | |||||
queryParams: { | |||||
arbitrationId: null, | |||||
pageNum: 1, | |||||
pageSize: 10, | |||||
orderByColumn: 'createTime', | |||||
isAsc: 'desc', | |||||
}, | |||||
refreshing: false, | |||||
loading: false, | |||||
finished: false, | |||||
options: { | |||||
handler_type: [], | |||||
}, | |||||
} | |||||
}, | |||||
created() { | |||||
this.initOptions(); | |||||
this.getList(); | |||||
}, | |||||
methods: { | |||||
getList(target) { | |||||
if(this.loading) return; | |||||
let type = typeof (target); | |||||
console.log(type, target); | |||||
if (target === 0) { | |||||
this.refreshing = true; | |||||
this.finished = false; | |||||
this.total = 0; | |||||
this.queryParams.pageNum = 1; | |||||
this.list = []; | |||||
this.filterVisible = false; | |||||
} | |||||
else if (type === 'number') | |||||
this.queryParams.pageNum = target; | |||||
else if (type === 'string') { | |||||
this.queryParams.pageNum = eval(this.queryParams.pageNum + target) | |||||
} | |||||
else | |||||
{ | |||||
this.refreshing = true; | |||||
this.finished = false; | |||||
this.total = 0; | |||||
this.queryParams.pageNum = 1; | |||||
this.list = [] | |||||
} | |||||
getArbitrationProcessList(this.queryParams).then((response) => { | |||||
console.log(response) | |||||
if (response.rows.length === 0) { | |||||
this.finished = true; | |||||
return; | |||||
} | |||||
response.rows.forEach((e) => { | |||||
this.list.push(e); | |||||
}); | |||||
this.total += response.rows.length; | |||||
if (this.total >= response.total) { | |||||
this.finished = true; | |||||
} | |||||
}).finally(() => { | |||||
this.loading = false; | |||||
this.refreshing = false; | |||||
}); | |||||
}, | |||||
viewItem(item) { | |||||
this.$router.push({name:'arbitrationProcessDetail', query: { | |||||
type: 'view', | |||||
id: item.id, | |||||
}}); | |||||
}, | |||||
editItem(item) { | |||||
this.$router.push({name:'arbitrationProcessDetail', query: { | |||||
type: 'modify', | |||||
id: item.id, | |||||
}}); | |||||
}, | |||||
removeItem(item) { | |||||
Dialog.confirm({ | |||||
title: '警告', | |||||
message: '确定删除?', | |||||
}) | |||||
.then(() => { | |||||
removeArbitrationProcess(item.id).then((response) => { | |||||
this.notify("删除成功", 'success'); | |||||
this.getList(); | |||||
}).catch((e) => { | |||||
this.notify("删除失败!", 'danger'); | |||||
}).finally(() => { | |||||
}); | |||||
}) | |||||
.catch(() => { | |||||
}); | |||||
}, | |||||
notify(message, type) { | |||||
Notify.clear(); | |||||
Notify({ type: type || 'primary', message: message }); | |||||
}, | |||||
initOptions() { | |||||
this.queryParams.arbitrationId = this.$route.query.arbitrationId; | |||||
for(let k in this.options) | |||||
{ | |||||
this.houseGetDicts(k).then((res) => { | |||||
this.options[k] = res.data; | |||||
}); | |||||
} | |||||
}, | |||||
formatDict(dict, value) { | |||||
return this.selectDictLabel(dict, value); | |||||
}, | |||||
addArbitrationProcess() { | |||||
this.$router.push({name:'arbitrationProcessDetail', query: { | |||||
arbitrationId: this.queryParams.arbitrationId, | |||||
}}); | |||||
}, | |||||
}, | |||||
} | |||||
</script> | |||||
<style scoped> | |||||
.delegate { | |||||
width: 96%; | |||||
margin: 3% 2% 3% 2%; | |||||
border-radius: 0.18rem; | |||||
overflow: hidden; | |||||
box-shadow: 0.1rem 0.1rem 0.15rem 0.02rem rgba(0,0,0,0.16); | |||||
} | |||||
</style> |
@@ -547,6 +547,14 @@ | |||||
</div> | </div> | ||||
<p style="margin-top: 5px;color: #666666;">违法监管</p> | <p style="margin-top: 5px;color: #666666;">违法监管</p> | ||||
</van-grid-item> | </van-grid-item> | ||||
<van-grid-item text="纠纷调请" :to="{name:'arbitrationList'}" > | |||||
<div slot="default"> | |||||
<div class="icon" style="background:#1D6FE9;"> | |||||
<img src="../../../static/images/onlineHome/icon_Z12.png" alt /> | |||||
</div> | |||||
</div> | |||||
<p style="margin-top: 5px;color: #666666;">纠纷调请</p> | |||||
</van-grid-item> | |||||
</van-grid> | </van-grid> | ||||
</van-row> | </van-row> | ||||