Ver código fonte

宅基地手机端优化

wulanhaote
Xyq123* 2 anos atrás
pai
commit
087ff52b5e
12 arquivos alterados com 1318 adições e 90 exclusões
  1. +8
    -1
      src/api/onlineHome/homestead/reporting.js
  2. +1
    -2
      src/api/onlineHome/homestead/supervision.js
  3. +154
    -0
      src/api/sunVillage_info/homestead/arbitration.js
  4. +3
    -0
      src/components/Map/MapGisObtainTc.vue
  5. +2
    -0
      src/permission.js
  6. +36
    -0
      src/router/index.js
  7. +701
    -0
      src/views/sunVillage_info/arbitration/arbitrationDetail.vue
  8. +270
    -0
      src/views/sunVillage_info/arbitration/arbitrationList.vue
  9. +10
    -0
      src/views/sunVillage_info/index_code_rights.vue
  10. +110
    -86
      src/views/yinnong/homestead/supervision/supervisionAdd.vue
  11. +1
    -1
      src/views/yinnong/homestead/supervision/supervisionList.vue
  12. +22
    -0
      src/views/yinnong/workbench.vue

+ 8
- 1
src/api/onlineHome/homestead/reporting.js Ver arquivo

@@ -16,7 +16,14 @@ export function getTaskList(id){
method:'get'
})
}

// 查询权利人列表
export function getShyqrs(query) {
return request({
url: '/home/mobile/getShyqrs',
method: 'get',
params: query
})
}
//宅基地流转详情
export function getZjdly(id){
return request({


+ 1
- 2
src/api/onlineHome/homestead/supervision.js Ver arquivo

@@ -4,7 +4,7 @@ import da from "element-ui/src/locale/lang/da";
//查询列表
export function getList(data){
return request({
url:'/house/mobile/zjdjg/list',
url:'/home/mobile/zjdjg/list',
method:'get',
params:data
})
@@ -17,7 +17,6 @@ export function registerOn(id){
method:'post'
})
}

//违法监管修改接口
export function supervisionAdd(data){
return request({


+ 154
- 0
src/api/sunVillage_info/homestead/arbitration.js Ver arquivo

@@ -0,0 +1,154 @@
import request from '@/utils/request'

//查询列表
export function getArbitrationList(data){
return request({
url:'/home/mobile/arbitration/list',
method:'get',
params:data
})
}

// 新增
export function addArbitration(data){
return request({
url:'/home/mobile/disputeAdd',
method:'post',
data:data
})
}

// 查看
export function getArbitrationDetail(id, data){
return request({
url:`/home/mobile/arbitrationGet/${id}`,
method:'get',
data:data
})
}

// 更新
export function editArbitration(data){
return request({
url:'/home/mobile/disputeEdit',
method:'post',
data:data
})
}
// 查询权利人列表
export function getShyqrs(query) {
return request({
url: '/home/mobile/getShyqrs',
method: 'get',
params: query
})
}
// 删除
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 getList(data){
return request({
url:'/home/mobile/proposer/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
})
}

+ 3
- 0
src/components/Map/MapGisObtainTc.vue Ver arquivo

@@ -121,6 +121,7 @@ export default {
var minYMap = hc_land.values_.source.featuresRtree_.rbush_.data.minY;
//定位查询位置
var center = ol.extent.getCenter([maxXMap, maxYMap, minXMap, minYMap]); //获取边界区域的中心位置
console.info(center)
that.map.getView().animate({
// 只设置需要的属性即可
center: center, // 中心点
@@ -138,12 +139,14 @@ export default {
if (InsertCode != null) {
let lat = InsertCode.lat;
let lng = InsertCode.lng;
console.info(lat);
let center;
if(lat !=null && lng !=null && lat !="" && lng !=""){
center = [lng,lat];
}else {
center = [115.452752, 31.789033];
}
console.info(center);
that.map.getView().animate({
// 只设置需要的属性即可
center: ol.proj.fromLonLat(center), // 中心点


+ 2
- 0
src/permission.js Ver arquivo

@@ -134,6 +134,8 @@ const whiteList = [
'/sunVillage_info/paidExitAdd',
'/sunVillage_info/paidExitModify',
'/sunVillage_info/paidExitDetail',
'/sunVillage_info/arbitrationList',
'/sunVillage_info/arbitrationDetail',

// 新型经营主体
'newBusinessEntity/newsBulletin', //新闻公告


+ 36
- 0
src/router/index.js Ver arquivo

@@ -2461,6 +2461,24 @@ export const constantRoutes = [
},
component: (resolve) => require(['@/views/yinnong/voucher'], resolve)
},
{
path: '/yinnong/supervisionList',
name: 'yinnongSupervisionList',
meta: {
title: '违法监管',
hidden: true,
},
component: (resolve) => require(['@/views/yinnong/homestead/supervision/supervisionList'], resolve)
},
{
path: '/yinnong/supervisionAdd',
name: 'yinnongSupervisionAdd',
meta: {
title: '增加违法监管',
hidden: true,
},
component: (resolve) => require(['@/views/yinnong/homestead/supervision/supervisionAdd'], resolve)
},
{
path: '/lawEnforcement',
name: 'lawEnforcement',
@@ -3578,6 +3596,24 @@ export const constantRoutes = [
},
component: (resolve) => require(['@/views/sunVillage_info/paidExit/paidExitDetail'], resolve)
},
{
path: '/sunVillage_info/arbitrationList',
name: 'sunVillageInfoArbitrationList',
meta: {
title: '纠纷调解',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/arbitration/arbitrationList'], resolve)
},
{
path: '/sunVillage_info/arbitrationDetail',
name: 'sunVillageInfoArbitrationDetail',
meta: {
title: '纠纷调解',
hidden: true,
},
component: (resolve) => require(['@/views/sunVillage_info/arbitration/arbitrationDetail'], resolve)
},
{ ////阳光村务(新)-- 合同信息
path: '/sunVillage_info/list_vote_detail',
name: 'sunVillageInfoListVoteDetail',


+ 701
- 0
src/views/sunVillage_info/arbitration/arbitrationDetail.vue Ver arquivo

@@ -0,0 +1,701 @@
<template>
<div class="app-container">
<van-nav-bar
:title="(operationIntent == 3 ? '添加' : '') + '纠纷调解'"
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="allowCUD && formEnabled.baseFormEnabled ? '' : 'noModify'">
<!-- <p class="topTit">纠纷调解</p>-->
<template> <!-- 申请 基本信息 -->
<div>
<p class="main_title">基本信息</p>
<div class="main_box">
<van-field v-model="arbitrationData.shyqrdbxm" label="申请人姓名" placeholder="申请人姓名" input-align="right" label-width="auto" :rules="[{ required: true }]" required @input="remoteTransfereeMethod" />
<div id="dropList" v-show="showDropList" style="width: 92vw; position: absolute; z-index: 99; left: 50%; margin-left: -46vw; border: 1px solid #E2E0E0;" >
<van-cell id="vanCell" v-for="(item, index) in getObligeeOptions" :key="index" @click="shyqrdmxmChange(item)" style="position: relative; z-index: 999;">
{{item.sqrxm}}
</van-cell>
</div>
<van-field
v-model="arbitrationData.zjddm"
label="宅基地代码"
input-align="right"
>
<template #button>
<van-button size="small" @click="mapLook" type="primary">选择宅基地</van-button>
</template>
</van-field>
<field-select
v-model="arbitrationData.shyqrzjlx"
label="证件类型"
value-key="dictLabel"
data-key="dictValue"
placeholder="选择证件类型"
:rules="[{ required: true }]"
required
:readonly="!formEnabled.baseFormEnabled"
remote-url="/system/dict/data/type/zjlx"
:on-remote-response="'data'"
/>
<van-field v-model="arbitrationData.shyqrzjhm" label="申请人证件号码" placeholder="申请人证件号码" input-align="right" label-width="auto" :rules="[{ required: true }]" required/>
<van-field required :readonly="true" v-model="arbitrationData.shyqrdh" label="联系电话" placeholder="联系电话" input-align="right" type="digit" :rules="[{pattern: /(^\d{7}(\d{4})?$)/}]"/>
</div>
</div>
<div>
<p class="main_title"><span style="color: red;">*</span>纠纷人</p>
<van-field :readonly="!allowCUD || !formEnabled.baseFormEnabled" v-model="arbitrationData.disputesName" label="纠纷人" placeholder="纠纷人" input-align="right" required :rules="[{ required: true }]"/>
<van-field required v-model="arbitrationData.disputesPhone" label="联系电话" placeholder="联系电话" input-align="right" type="digit" :rules="[{pattern: /(^\d{7}(\d{4})?$)/}]"/>
</div>
<div>
<p class="main_title"><span style="color: red;">*</span>纠纷事项</p>
<field-date-picker
v-model="arbitrationData.disputeAt"
label="纠纷时间"
placeholder="请选择纠纷时间"
:rules="[{ required: true }]"
formatter="yyyy-MM-dd"
required
:readonly="!allowCUD || !formEnabled.baseFormEnabled"
/>
<van-field :readonly="!allowCUD || !formEnabled.baseFormEnabled" v-model="arbitrationData.disputeAddress" label="事件地址" placeholder="事件地址" input-align="right" required :rules="[{ required: true }]"/>
<van-field
rows="3"
autosize
label="事件描述"
type="textarea"
placeholder="事件描述"
input-align="right"
v-model="arbitrationData.disputeRemark"
:readonly="!allowCUD || !formEnabled.baseFormEnabled"
/>
</div>
<div v-if="cljgInfoShow">
<p class="main_title"><span style="color: red;">*</span>处理结果</p>
<van-field :readonly="!allowCUD || !formEnabled.baseFormEnabled" v-model="arbitrationData.handleBy" label="处理人" placeholder="处理人" input-align="right" required :rules="[{ required: true }]"/>
<van-field :readonly="!allowCUD || !formEnabled.baseFormEnabled" required v-model="arbitrationData.handlePhone" label="处理人电话" placeholder="处理人电话" input-align="right" type="digit" :rules="[{pattern: /(^\d{7}(\d{4})?$)/}]"/>
<field-date-picker
v-model="arbitrationData.handleAt"
label="处理时间"
placeholder="请选择处理时间"
:rules="[{ required: true }]"
formatter="yyyy-MM-dd"
required
:readonly="!allowCUD || !formEnabled.baseFormEnabled"
/>
<van-field
rows="3"
autosize
label="处理结果"
type="textarea"
placeholder="处理结果"
input-align="right"
v-model="arbitrationData.handleRemark"
:readonly="!allowCUD || !formEnabled.baseFormEnabled"
/>
</div>
<van-dialog v-model="mapShow" show-cancel-button>
<MapGisObtainTc ref="zjdProductResh" :shqrxm="arbitrationData.shyqrdbxm" :landStatus="landStatus" :deptId="sysFarmer.deptId" @closeMoule="closeMoule"></MapGisObtainTc>
</van-dialog>
</template>
</div>

</van-form>
</div>

<!-- 底部按钮 -->
<van-goods-action style="z-index: 999;" v-if="allowCUD && (formVisible.editVisible || formVisible.operationVisible || formVisible.approvalVisible)">
<template v-if="formVisible.editVisible">
<van-goods-action-button type="info" text="保存" @click="onSubmit('add')" :disabled="!formEnabled.baseFormEnabled" v-if="formEnabled.baseFormEnabled"/>
</template>
<!-- <template v-if="formVisible.approvalVisible">-->
<!-- <van-goods-action-button type="info" 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="info" 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="info" text="归档" @click="onSubmit('archive')" v-if="formEnabled.archiveEnabled"/>-->
<!-- </template>-->
</van-goods-action>

<van-action-sheet v-model="menuVisible" :actions="menuActions" @select="onActionSelect"
cancel-text="取消"
title="详细信息"
close-on-click-action>
</van-action-sheet>
</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 {Notify} from "vant";
import Cookies from "js-cookie";
import { getShyqrs,addArbitration, getArbitrationDetail, editArbitration,getList} from "@/api/sunVillage_info/homestead/arbitration";
import MapGisObtainTc from "@/components/Map/MapGisObtainTc";

// 意图
const INTENT_VIEW = 1;
const INTENT_EDIT = 2;
const INTENT_ADD = 3;

export default {
name: "ArbitrationDetail",
components: {
FieldDatePicker, FieldSelect,MapGisObtainTc},
data() {
return {
// 申请ID
id: '',
cljgInfoShow:false,
// 表单数据
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: [],
getObligeeOptions:[],//下拉框列表
landStatus:"1",
menuVisible: false,
mapShow:false,
sysFarmer:JSON.parse(Cookies.get('user')),
showDropList:false,
menuActions: [
{name: '调解/冲裁员', route: {name:'arbitrationHandlerList', query: {}}},
{name: '处理过程', route: {name:'arbitrationProcessList', query: {}}},
]
};
},
created() {
this.id = this.$route.query.id;
this.type = this.$route.query.type;
this.getFormIntent();
this.getDetail();
this.getUserHouseApplyProposer();
},
computed: {
allowCUD: function () {
return this.$store.getters.businessLevel == '2' || true
},
},
methods: {
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;
this.cljgInfoShow = true;
switch(value.status)
{
case '0': // 待处理
this.formEnabled.submitEnabled = true;
this.formVisible.editVisible = true;
break;
case '1': // 已处理
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;
this.formEnabled.submitEnabled = 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 '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(){
this.$set(this.arbitrationData, 'createBy', this.sysFarmer.memberName);
this.$set(this.arbitrationData, 'applicantPhone', this.sysFarmer.phone);
this.$set(this.arbitrationData, 'applicant', this.sysFarmer.memberName);
},
/** 模糊查询人员信息 */
remoteTransfereeMethod(query) {
if (query !== "") {
getShyqrs({shyqrdbxm:query,status:1}).then((response) => {
if (response.code == 200) {
this.getObligeeOptions = response.rows.map(function (item) {
return {
sqrxm:item.shyqrdbxm,
sqrxb:item.xb,
sqrzjhm:item.shyqrdbzjhm,
shyqrdm:item.shyqrdm,
sqrzjlx:item.shyqrdbzjlx,
zjddm:item.zjddm,
sqrdh:item.dh,
gyfs:item.gyfs,
dz:item.dz,
deptId:item.deptId,
deptName:item.deptName,
}
})
//设置模糊查询的下拉框和滚动条
if (this.getObligeeOptions.length > 0) {
this.showDropList = true; // div显示会阻挡下边的选择框和输入框,showDropList控制下拉框是否显示
//设置模糊查询的和滚动条
this.$nextTick(() => {
if (this.getObligeeOptions.length > 4) {
let height = document.getElementById("vanCell").offsetHeight * 4;
document.getElementById("dropList").style.height = height + "px";
document.getElementById("dropList").style.overflow = "scroll";
} else {
document.getElementById("dropList").style.height = "";
document.getElementById("dropList").style.overflow = "visible";
}
});
} else {
this.showDropList = false;
}
}
});
} else {
this.getObligeeOptions = [];
this.showDropList = false;
}
},
shyqrdmxmChange(val){
console.info(val);
this.$set(this.arbitrationData, "shyqrdbxm", val.sqrxm);
this.$set(this.arbitrationData, "deptId", val.deptId);
this.$set(this.arbitrationData, "deptName", val.deptId);
this.$set(this.arbitrationData, "shyqrzjhm", val.sqrzjhm);
this.$set(this.arbitrationData, "shyqrzjlx", val.sqrzjlx);
this.$set(this.arbitrationData, "shyqrdm", val.shyqrdm);
this.$set(this.arbitrationData, "shyqrdh", val.sqrdh);
this.$set(this.arbitrationData, "zjddm", val.zjddm);
this.getObligeeOptions=[];
this.showDropList = false;
},
// 检查字符串, 不符合返回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;
},
mapLook(){
this.mapShow = true;
setTimeout(() => {
this.$refs.zjdProductResh.drawingLyPaceCountryDarw();
},1000);
},
// 保存申请(是否提交)
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) => {
this.notify("保存成功", 'success');
this.goBack();
}).catch((e) => {
this.notify("保存失败!", 'danger');
}).finally(() => {
});
}).catch(e => {
this.notify('请填写完整表单', 'danger');
return;
});
},
/** 查找地图中宅基地 */
closeMoule: function (data) {
this.arbitrationData.zjddm = data;
},
submitArbitration() {
this.setArbitrationStatus('2', '提交');
},
agreeArbitration() {
this.setArbitrationStatus('3', '受理');
},
rejectArbitration() {
this.setArbitrationStatus('4', '驳回');
},
mediateArbitration() {
this.setArbitrationStatus('5', '调解');
},
arbitrateArbitration() {
this.setArbitrationStatus('6', '仲裁');
},
// 请求结果提示工具函数
notify(message, type) {
Notify.clear();
Notify({ type: type || 'primary', message: message });
},
getUserHouseApplyProposer()
{
getList().then((resp) => {
this.userHouseApplyProposer = resp.rows;
});
},
openMenu() {
this.menuVisible = true;
},
onActionSelect(a, index) {
a.route.query.arbitrationId = this.arbitrationData.id;
this.$router.push(a.route);
},
},
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;
}
.van-goods-action-button--first {
border-radius: 0.053333rem;
}
.van-goods-action-button--last {
border-radius: 0.053333rem;
}
.van-goods-action-button {
margin-left: 0.1rem;
}
</style>

+ 270
- 0
src/views/sunVillage_info/arbitration/arbitrationList.vue Ver arquivo

@@ -0,0 +1,270 @@
<template>
<div>
<van-nav-bar
left-arrow
title="纠纷调解"
fixed
placeholder
@click-left="$router.back()"
>
<template #right>
<van-icon name="add" size="20" @click="addArbitration" v-if="allowCUD"/>
</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.disputeAt}}</p>
</template>
<template #title>
<p style="font-weight: bold;">{{item.disputeRemark}}</p>
</template>
<template #right-icon>
<p :style="{'font-weight': 'bold',
color: {
'0': '#000000',
'1': '#00FF00',
}[item.status],
}">{{formatDict(options.jfcl_status, item.status)}}</p>
</template>
</van-cell>
<template #right>
<van-row style="height: 100%;">
<van-col style="height: 100%;">
<van-button v-if="!cljgShow && allowCUD && item.status == '0'" square text="修改" type="info" style="height: 100%;" @click="editItem(item)"/>
</van-col>
<van-col style="height: 100%;">
<van-button v-if="cljgShow && item.status == '0'" square text="处理结果" type="primary" style="height: 100%;" @click="cljgItem(item)"/>
</van-col>
<van-col style="height: 100%;">
<van-button v-if="!cljgShow && allowCUD && item.status == '0'" square text="删除" type="danger" style="height: 100%;" @click="removeItem(item)"/>
</van-col>
</van-row>
</template>
</van-swipe-cell>
</van-list>
</van-pull-refresh>

<van-dialog v-model="cljgInfoShow" title="处理结果" show-cancel-button confirmButtonText="保存" cancelButtonText="关闭" @confirm="confirmn" @cancel="cancel">
<van-field :readonly="!allowCUD" v-model="arbitrationData.handleBy" label="处理人" placeholder="处理人" input-align="right" required :rules="[{ required: true }]"/>
<van-field required v-model="arbitrationData.handlePhone" label="处理人电话" placeholder="处理人电话" input-align="right" type="digit" :rules="[{pattern: /(^\d{7}(\d{4})?$)/}]"/>
<field-date-picker
v-model="arbitrationData.handleAt"
label="处理时间"
placeholder="请选择处理时间"
:rules="[{ required: true }]"
formatter="yyyy-MM-dd"
required
:readonly="!allowCUD"
/>
<van-field
rows="3"
autosize
label="处理结果"
type="textarea"
placeholder="处理结果"
input-align="right"
v-model="arbitrationData.handleRemark"
:readonly="!allowCUD"
/>
</van-dialog>

<!-- <onlineHomeIndex :current="1"></onlineHomeIndex>-->

</div>
</template>

<script>
import {getArbitrationList, removeArbitration,editArbitration} from "@/api/sunVillage_info/homestead/arbitration";
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: {onlineHomeIndex,FieldDatePicker},
name: "ArbitrationList",

data() {
return {
list: [],
total: 0,
queryParams: {
pageNum: 1,
pageSize: 10,
orderByColumn: 'createTime',
isAsc: 'desc',
disputeStatus: null,
},
refreshing: false,
loading: false,
finished: false,
cljgShow:false,
cljgInfoShow:false,
arbitrationData:{},
options: {
jfcl_status: [],
},
}
},
created() {
if(this.$route.query.status === "0"){
this.$set(this.queryParams, 'status', '0');
this.cljgShow = true;

}
this.initOptions();
this.getList();
},
computed: {
allowCUD: function () {
return this.$store.getters.businessLevel == '2' || true;
},
},
methods: {
getList(target) {
let type = typeof (target);
console.log(type, target);
if (target === 0) {
this.refreshing = true;
this.finished = true;
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 = true;
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;
this.finished = this.total >= response.total;
}).finally(() => {
this.loading = false;
this.refreshing = false;
});
},
viewItem(item) {
this.$router.push({name:'sunVillageInfoArbitrationDetail', query: {
type: 'view',
id: item.id,
}});
},
editItem(item) {
this.$router.push({name:'sunVillageInfoArbitrationDetail', 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;
});
}
},
confirmn(){
this.$set(this.arbitrationData, 'status', '1');
editArbitration(this.arbitrationData).then((response) => {
this.notify("保存成功", 'success');
this.cljgInfoShow = false;
}).catch((e) => {
this.notify("保存失败!", 'danger');
this.cljgInfoShow = false;
}).finally(() => {
});
},
formatDict(dict, value) {
return this.selectDictLabel(dict, value);
},
addArbitration() {
this.$router.push({name:'sunVillageInfoArbitrationDetail', query: {
type: 'add',
}});
},
cljgItem(item){
this.cljgInfoShow = true;
this.arbitrationData = item;
},
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>

+ 10
- 0
src/views/sunVillage_info/index_code_rights.vue Ver arquivo

@@ -31,6 +31,12 @@
<router-link :to="{name:'sunVillageInfoPaidExitList',query:{type:'code'}}" class="nav_item n_6">宅基地退出</router-link>
</div>
</div>
<div class="nav_box" style="margin-top: 3vh;">
<p class="nav_tit">请求帮助</p>
<div class="nav_list">
<router-link :to="{name:'sunVillageInfoArbitrationList',query:{type:'code'}}" class="nav_item n_77">纠纷调解</router-link>
</div>
</div>
</div>
<div class="footer">
技术支持:北京农燊高科信息技术有限公司
@@ -239,6 +245,10 @@
background: url('../../assets/images/sunVillage_info/index_block_06.png') no-repeat center top;
background-size: 34.5PX;
}
&.n_77 {
background: url('../../assets/images/sunVillage_info/index_block_77.png') no-repeat center top;
background-size: 34.5PX;
}
}
}
}


+ 110
- 86
src/views/yinnong/homestead/supervision/supervisionAdd.vue Ver arquivo

@@ -11,92 +11,33 @@
</template>
</van-nav-bar>
<div class="main_box">
<van-field v-model="jgList.shyqrdbxm" label="申请人姓名" placeholder="申请人姓名" input-align="right" label-width="auto" :rules="[{ required: true }]" required @input="remoteTransfereeMethod" />
<div id="dropList" v-show="showDropList" style="width: 92vw; position: absolute; z-index: 99; left: 50%; margin-left: -46vw; border: 1px solid #E2E0E0;" >
<van-cell id="vanCell" v-for="(item, index) in getObligeeOptions" :key="index" @click="shyqrdmxmChange(item)" style="position: relative; z-index: 999;">
{{item.sqrxm}}
</van-cell>
</div>
<van-field
readonly
clickable
label="是否在建建筑物"
placeholder="请选择"
v-model="sfzjjzw"
@click="showSys = true"
v-model="jgList.zjddm"
label="宅基地代码"
input-align="right"
right-icon="arrow-down"
label-width="auto"
>
<template #button>
<van-button size="small" @click="mapLook" type="primary">选择宅基地</van-button>
</template>
</van-field>
<field-select
v-model="jgList.shyqrzjlx"
label="证件类型"
value-key="dictLabel"
data-key="dictValue"
placeholder="选择证件类型"
:rules="[{ required: true }]"
required
remote-url="/system/dict/data/type/zjlx"
:on-remote-response="'data'"
/>
<van-popup v-model="showSys" position="bottom">
<van-picker
show-toolbar
:columns="sysDictionaries"
@confirm="onConfirmSys"
@cancel="showSys = false"
/>
</van-popup>
<van-field label="宅基地代码" v-model="jgList.zjddm" placeholder="请输入宅基地代码" input-align="right" />
<!-- <van-popup v-model="showZjd" position="bottom">-->
<!-- <van-picker-->
<!-- show-toolbar-->
<!-- @cancel="showZjd = false"-->
<!-- />-->
<!-- </van-popup>-->
<van-field
readonly
clickable
label="监管类型"
placeholder="请选择"
v-model="jglx"
@click="showjglx = true"
input-align="right"
right-icon="arrow-down"
/>
<van-popup v-model="showjglx" position="bottom">
<van-picker
show-toolbar
:columns="jglxDictionaries"
@confirm="onConfirmJglx"
@cancel="showjglx = false"
/>
</van-popup>
<van-field
readonly
clickable
v-model="jgList.lasj"
label="立案时间"
placeholder="请选择立案时间"
@click="showlasj = true"
input-align="right"
right-icon="arrow-down"
/>
<van-popup v-model="showlasj" position="bottom">
<van-datetime-picker
v-model="currentDate"
type="date"
title="选择年月日"
:min-date="minDate"
:max-date="maxDate"
@confirm="onConfirmLasj"
/>
</van-popup>
<van-field label="巡查人" v-model="jgList.inspector" placeholder="请输入巡查人" input-align="right" label-width="auto"/>
<van-field
readonly
clickable
label="巡查时间"
v-model="jgList.inspectorTime"
placeholder="请选择巡查时间"
@click="showinspectorTime = true"
input-align="right"
right-icon="arrow-down"
/>
<van-popup v-model="showinspectorTime" position="bottom">
<van-datetime-picker
v-model="currentDate"
type="date"
title="选择年月日"
:min-date="minDate"
:max-date="maxDate"
@confirm="onConfirmInspectorTime"
/>
</van-popup>
<van-field label="备注" v-model="jgList.bz" placeholder="填写备注" input-align="right" label-width="auto"/>
<van-field v-model="jgList.shyqrzjhm" label="申请人证件号码" placeholder="申请人证件号码" input-align="right" label-width="auto" :rules="[{ required: true }]" required/>
</div>

<p class="main_title">违法信息</p>
@@ -143,6 +84,9 @@
@confirm="onConfirmReformDeadline"
/>
</van-popup>
<van-dialog v-model="mapShow" show-cancel-button>
<MapGisObtainTc ref="zjdProductResh" :shqrxm="jgList.shyqrdbxm" :landStatus="landStatus" :deptId="sysFarmer.deptId" @closeMoule="closeMoule"></MapGisObtainTc>
</van-dialog>
</div>
<div style="padding: 16px 0;">
<van-row>
@@ -159,9 +103,13 @@
</template>

<script>
import { jgAdd } from "@/api/onlineHome/homestead/reporting";
import { jgAdd,getShyqrs } from "@/api/onlineHome/homestead/reporting";
import FieldSelect from "@/components/form/FieldSelect";
import MapGisObtainTc from "@/components/Map/MapGisObtainTc";
import Cookies from "js-cookie";
export default {
name: "supervisionAdd",
components: { MapGisObtainTc,FieldSelect },
data() {
return {
showSys:false,
@@ -170,12 +118,15 @@
showinspectorTime:false,
showwfydlx:false,
showReformDeadline:false,

showDropList:false,
mapShow:false,
landStatus:"1",
minDate: new Date(),
maxDate: new Date(2025, 10, 1),
currentDate: new Date(),
sysFarmer:JSON.parse(Cookies.get('user')),
jgList:{},
getObligeeOptions:[],
sfzjjzw:'',
jglx:'',
wfydlx:'',
@@ -211,6 +162,79 @@
});

},
/** 模糊查询人员信息 */
remoteTransfereeMethod(query) {
if (query !== "") {
getShyqrs({shyqrdbxm:query,status:1}).then((response) => {
if (response.code == 200) {
this.getObligeeOptions = response.rows.map(function (item) {
return {
sqrxm:item.shyqrdbxm,
sqrxb:item.xb,
sqrzjhm:item.shyqrdbzjhm,
sqrnhdm:item.nhdm,
sqrzjlx:item.shyqrdbzjlx,
sqrdh:item.dh,
gyfs:item.gyfs,
dz:item.dz,
deptId:item.deptId,
deptName:item.deptName,
}
})
//设置模糊查询的下拉框和滚动条
if (this.getObligeeOptions.length > 0) {
this.showDropList = true; // div显示会阻挡下边的选择框和输入框,showDropList控制下拉框是否显示
//设置模糊查询的和滚动条
this.$nextTick(() => {
if (this.getObligeeOptions.length > 4) {
let height = document.getElementById("vanCell").offsetHeight * 4;
document.getElementById("dropList").style.height = height + "px";
document.getElementById("dropList").style.overflow = "scroll";
} else {
document.getElementById("dropList").style.height = "";
document.getElementById("dropList").style.overflow = "visible";
}
});
} else {
this.showDropList = false;
}
}
});
} else {
this.getObligeeOptions = [];
this.showDropList = false;
}
},
shyqrdmxmChange(val){
console.info(val);
this.$set(this.jgList, "sqrxm", val.sqrxm);
this.$set(this.jgList, "deptId", val.deptId);
this.$set(this.jgList, "deptName", val.deptId);
this.$set(this.jgList, "sqrzjhm", val.sqrzjhm);
this.$set(this.jgList, "sqrzjlx", val.sqrzjlx);
this.$set(this.jgList, "sqrnhdm", val.sqrnhdm);
this.$set(this.jgList, "gyqk", val.gyfs);
this.$set(this.jgList, "xb", val.sqrxb);
this.$set(this.jgList, "lxdh", val.sqrdh);
this.$set(this.jgList, "hkszd", val.dz);
this.getObligeeOptions=[];
this.showDropList = false;
},
/** 查找地图中宅基地 */
closeMoule: function (data) {
this.jgList.zjddm = data;
let _this = this;
let handlerTime = this.getDate();
this.$set(this.jgList, "sqrq", handlerTime);
this.$set(this.jgList, "pzrq", handlerTime);
this.$set(this.jgList, "barq", handlerTime);
},
mapLook(){
this.mapShow = true;
setTimeout(() => {
this.$refs.zjdProductResh.drawingLyPaceCountryDarw();
},1000);
},
onConfirmSys(data){
this.sfzjjzw = data.text;
this.jgList.sfzjjzw = data.value;


+ 1
- 1
src/views/yinnong/homestead/supervision/supervisionList.vue Ver arquivo

@@ -87,7 +87,7 @@ export default {
},
methods: {
goAdd(){
window.location = 'supervisionAdd';
this.$router.push({name:'yinnongSupervisionAdd'})
},
getList(){
setTimeout(() => {


+ 22
- 0
src/views/yinnong/workbench.vue Ver arquivo

@@ -146,6 +146,28 @@
</van-grid>
</van-row>

<van-row class="indexCard">
<van-cell style="border-radius: 6px;">
<template #title>
<p style="font-weight: bold;font-size: 18px;display: inline-block">执法监管</p>
</template>
</van-cell>
<van-grid :border="false">
<van-grid-item text="纠纷处理" :to="{name:'sunVillageInfoArbitrationList',query: {status:'0'}}" >
<div class="icon all" slot="default" >
<img src="../../../static/images/66.png" alt />
</div>
<p style="margin-top: 5px;color: #666666;">纠纷处理</p>
</van-grid-item>
<van-grid-item text="巡查执法" :to="{name:'yinnongSupervisionList',query: {status:'0'}}" >
<div class="icon all" slot="default" style="background:#1D6FE9;" >
<img src="../../../static/images/onlineHome/icon_Z12.png" alt />
</div>
<p style="margin-top: 5px;color: #666666;">巡查执法</p>
</van-grid-item>
</van-grid>
</van-row>

<yinnongIndex></yinnongIndex>
</div>
</template>


Carregando…
Cancelar
Salvar