@@ -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, | |||
}, | |||
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> | |||
<p style="margin-top: 5px;color: #666666;">违法监管</p> | |||
</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-row> | |||