| @@ -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> | |||