【举证审核】

dianlixunjian
Zhufu 2024-07-09 17:27:40 +08:00
parent 1f555160d8
commit 091c9ff929
4 changed files with 253 additions and 250 deletions

View File

@ -8,10 +8,26 @@
style="flex: 1"
v-model:value="props.year"
:options="yearOptions"
@change="changeParam"
@change=" (value) => {
emits('auditProgressScreenChange', value, 'year');
}"
/>
</div>
<!-- <div class="screen-item">
<div class="screen-item">
<div class="screen-item-label" style="width: 85px;">图斑来源</div>
<a-select
allowClear
style="flex: 1"
v-model:value="props.patchSource"
:options="patchSourceOptions"
@change="
(value) => {
emits('auditProgressScreenChange', value, 'patchSource');
}
"
/>
</div>
<div class="screen-item">
<div class="screen-item-label">批次</div>
<a-select
allowClear
@ -24,7 +40,7 @@
}
"
/>
</div> -->
</div>
</div>
</div>
<div class="data-list">
@ -43,42 +59,42 @@
<div class="progress-div">
<div class="progress-label progress-color">进度</div>
<div class="progress-data" style="width:97px">
<span style="color: #086DEC;">226</span>/300
<span style="color: #086DEC;">{{item.verificatedtask}}</span>/{{item.totaltask}}
</div>
</div>
<div class="progress-div">
<div class="progress-label extended-color">超期</div>
<div class="progress-data" style="width:50px">
<span style="color: #D03542">15</span>
<span style="color: #D03542">{{item.overduetask}}</span>
</div>
</div>
<div class="progress-div">
<div class="progress-label reviewed-color" style="width:70px;">待审核</div>
<div class="progress-data" style="width:50px">
<span style="color: #EC7908;">7</span>
<span style="color: #EC7908;">{{item.verifytask}}</span>
</div>
</div>
</div>
<div class="info-data-div">
<div class="info-data-item">
<div class="info-data-label">合法</div>
<div class="info-data-data">150</div>
<div class="info-data-data">{{item.legalcase}}</div>
</div>
<div class="info-data-item">
<div class="info-data-label">其他</div>
<div class="info-data-data">20</div>
<div class="info-data-data">{{item.ilegalcase}}</div>
</div>
<div class="info-data-item">
<div class="info-data-label">非粮化</div>
<div class="info-data-data">30</div>
<div class="info-data-data">{{item.nonfoodcase}}</div>
</div>
<div class="info-data-item">
<div class="info-data-label">复耕</div>
<div class="info-data-data">50</div>
<div class="info-data-data">{{item.rehabilitationcase}}</div>
</div>
<div class="info-data-item">
<div class="info-data-label">补手续</div>
<div class="info-data-data">26</div>
<div class="info-data-data">{{item.makeupcase}}</div>
</div>
</div>
<!-- <div class="data-div">
@ -96,14 +112,15 @@
import { ref, defineProps, defineEmits, toRefs } from 'vue';
import Icon from '@/components/Icon/Icon.vue';
import { Empty } from 'ant-design-vue';
import {patchSourceOptions} from '../util.ts'
const props = defineProps(['year', 'batch', 'batchOptions', 'yearOptions', 'dataList']);
const props = defineProps(['year', 'batch','patchSource', 'batchOptions', 'yearOptions', 'dataList']);
const emits = defineEmits(['auditProgressScreenChange', 'showInfo']);
const simpleImage = Empty.PRESENTED_IMAGE_SIMPLE;
function changeParam(val) {
emits('auditProgressScreenChange', val, 'year');
}
// function changeParam(val,type) {
// emits('auditProgressScreenChange', val, type);
// }
</script>
<style lang="less" scoped>
@ -113,14 +130,17 @@
.screen-row {
display: flex;
.screen-item {
flex: 1;
font-family: Alibaba PuHuiTi;
font-weight: 500;
font-size: 17px;
color: #000000;
width: 33.3%;
display: flex;
.screen-item-label {
width: 55px;
width: 56px;
padding-left: 10px;
display: flex;
align-items: center;
font-size: 15px;
}
}
}

View File

@ -15,8 +15,8 @@
<a-select
allowClear
style="flex: 1"
v-model:value="params.year"
:options="patchSource"
v-model:value="params.patchSource"
:options="patchSourceOptions"
/>
</div>
<div class="screen-item">
@ -24,8 +24,8 @@
<a-select
allowClear
style="flex: 1"
v-model:value="params.year"
:options="props.yearOptions"
v-model:value="params.batch"
:options="props.batchOptions"
/>
</div>
<div class="screen-item">
@ -49,38 +49,38 @@
<div class="layout-div">
<RollbackOutlined class="back-button" @click="emits('changeShowParent')"/>
<div class="interval-div"></div>
<div class="sift-item">
<div class="sift-item" @click="dataListSort('area')">
<div class="sift-label">总面积</div>
<div class="sift-icon">
<div>&#9650</div>
<div>&#9660</div>
<div :style="`${showSortMark('area',1)? 'color: #086DEC;': ''}`">&#9650</div>
<div :style="`${showSortMark('area',2)? 'color: #086DEC;': ''}`">&#9660</div>
</div>
</div>
<div class="sift-item">
<div class="sift-item" @click="dataListSort('gengdi_area')">
<div class="sift-label">耕地面积</div>
<div class="sift-icon">
<div>&#9650</div>
<div>&#9660</div>
<div :style="`${showSortMark('gengdi_area',1)? 'color: #086DEC;': ''}`">&#9650</div>
<div :style="`${showSortMark('gengdi_area',2)? 'color: #086DEC;': ''}`">&#9660</div>
</div>
</div>
<div class="sift-item">
<div class="sift-item" @click="dataListSort('area')">
<div class="sift-label">基本农田</div>
<div class="sift-icon">
<div>&#9650</div>
<div>&#9660</div>
</div>
</div>
<div class="sift-item">
<div class="sift-item" @click="dataListSort('CreateDate')">
<div class="sift-label">下发时间</div>
<div class="sift-icon">
<div style="color:#086DEC;opacity:1;">&#9650</div>
<div>&#9660</div>
<div :style="`${showSortMark('CreateDate',1)? 'color: #086DEC;': ''}`">&#9650</div>
<div :style="`${showSortMark('CreateDate',2)? 'color: #086DEC;': ''}`">&#9660</div>
</div>
</div>
</div>
<div class="collect-div">
<Icon
style="font-size: 30px; color: #0a6dea; cursor: pointer"
:style="`font-size: 30px; cursor: pointer;${openCollect? 'color:#F7710F': ''}`"
icon="mdi:folder-star"
@click="getCollectList"
/>
@ -93,122 +93,60 @@
class="data-list-item"
v-if="dataList.length > 0"
>
<div class="select-mark"></div>
<Icon
style="font-size: 30px; color: #0a6dea; cursor: pointer"
icon="gis:poi-alt"
@click="locationFun(item)"
/>
<div class="data-list-item-content">
<div class="item-info-div">
<div class="item-info-id">{{ item.case_no }}</div>
<div class="item-info-layout">
<div class="item-info-address" :title="item.address">
<a-tag color="processing" v-if="item.address">{{ item.address }}</a-tag>
</div>
<div class="item-info-batch">
<a-tag :color="`${item.supervisestate === 0? 'success': item.supervisestate === 1? 'warning': 'error'}`">{{ item.unitname }}</a-tag>
<div class="data-list-layout-div">
<div class="data-list-title-div">
<img src="/positioning.png" class="map-mark"/>
<div class="label-div">
<div class="item-label">{{item.countyname}}</div>
<div class="item-sub-label">
<span style="margin-right:12px;">{{item.streetname}}</span>
<span>{{item.case_no}}</span>
</div>
</div>
<div class="item-mark" v-if="item.is_build_name">{{item.is_build_name}}</div>
</div>
<div class="item-data-div">
<div class="item-data-item" v-if="item.area">
<div class="item-mark-div sum-mark"></div>
<div class="area-data">{{ item.area }}</div>
</div>
<div class="item-data-item" v-if="item.gengdi_area">
<div class="item-mark-div plowland-mark"></div>
<div class="area-data">{{ item.gengdi_area }}</div>
</div>
<div class="item-data-item" v-if="item.yongjiujibennongtian_area">
<div class="item-mark-div farmland-mark"></div>
<div class="area-data">{{ item.yongjiujibennongtian_area }}</div>
</div>
<div class="item-data-item" v-if="item.zhongdianquyu_area">
<div class="item-mark-div focus-area"></div>
<div class="area-data">{{ item.zhongdianquyu_area }}</div>
</div>
<div class="item-data-item" v-if="item.guotukongjianguihua_area">
<div class="item-mark-div padding-mark"></div>
<div class="area-data">{{ item.guotukongjianguihua_area }}</div>
</div>
<div class="item-data-item" v-if="item.shengtaibaohuhongxian_area">
<div class="item-mark-div adjust-mark"></div>
<div class="area-data">{{ item.shengtaibaohuhongxian_area }}</div>
</div>
</div>
</div>
<div class="data-list-item-control">
<!-- <a-button
size="small"
:class="`reminders-button ${item.issupervise && 'reminder-button-select'}`"
@click="changeSupervise(item)">
{{item.issupervise? '已督办': '督办'}}
</a-button> -->
<StarFilled v-if="item.fid" style="font-size: 22px;color: #F20C00;cursor: pointer;" @click="cancelCollectItem(item)"/>
<StarOutlined v-else class="collect-button" @click="collectItem(item)"/>
<div class="button-div">
<Icon
style="font-size: 20px; color: #0960bd; cursor: pointer"
icon="ant-design:audit-outlined"
@click="goAudit(item)"
/>
</div>
</div>
</div>
<div style="background:#fff;padding:10px;border-radius:6px;margin-bottom:10px;">
<div style="display:flex;justify-content: space-between;padding-bottom: 8px;border-bottom: 1px solid #E5E5E5;">
<div style="display:flex;align-items: center;">
<img src="/positioning.png" style="width:17px;height:17px;"/>
<div style="display: flex;align-items: baseline;margin-right: 12px">
<div style="font-family: Alibaba PuHuiTi;font-weight: 500;font-size: 23px;color: #000000;margin-left: 9px;margin-right:10px">兰山区</div>
<div style="font-family: Alibaba PuHuiTi;font-weight: 500;font-size: 17px;color: #000000;">
<span style="margin-right:12px;">义堂镇</span>
<span>202407031400476651</span>
</div>
</div>
<div style="font-family: Alibaba PuHuiTi;font-weight: 500;font-size: 13px;color: #FFFFFF;background: rgba(0,0,0,0.59);padding: 5px 8px;border-radius: 14px;">已建成</div>
</div>
<div style="font-family: Alibaba PuHuiTi;font-weight: 500;font-size: 15px;color: #000000;border: 1px solid #086DEC;width: 37px;height: 37px;border-radius: 4px;">
<div class="data-item-type-div" :style="`border-color:${item.is_illegal === 0? '#086DEC': item.is_illegal === 1? '#D03542': '#F7710F'}`">
<div>
<div style="display:flex;align-items:center;justify-content: center;">举证</div>
<div style="background:#086DEC;color:#fff;display:flex;align-items:center;justify-content: center;">合法</div>
<div class="type-title">举证</div>
<div class="type-data" :style="`background:${item.is_illegal === 0? '#086DEC': item.is_illegal === 1? '#D03542': '#F7710F'};`">
{{item.is_illegal === 0? '合法': item.is_illegal === 1? '违法': '其他'}}
</div>
</div>
</div>
</div>
<div style="display: flex;justify-content: space-between;padding-top: 10px">
<div style="display:flex">
<div style="display:flex;background: rgba(237, 237, 237, 0.55);align-items: center;width: 80px;border-radius: 7px;margin-right: 8px;">
<div style="font-family: Alibaba PuHuiTi;font-weight: 400;font-size: 16px;color: #959494;width:45%;display: flex;justify-content: center;"></div>
<div style="font-family: HarmonyOS Sans;font-weight: 500;font-size: 16px;color: #000000;">3</div>
<div class="data-list-info-div">
<div class="info-layout-div">
<div class="info-item">
<div class="info-label"></div>
<div class="info-data">{{item.area}}</div>
</div>
<div style="display:flex;background: rgba(237, 237, 237, 0.55);align-items: center;width: 80px;border-radius: 7px;margin-right: 8px;">
<div style="font-family: Alibaba PuHuiTi;font-weight: 400;font-size: 16px;color: #959494;width:45%;display: flex;justify-content: center;"></div>
<div style="font-family: HarmonyOS Sans;font-weight: 500;font-size: 16px;color: #000000;">1</div>
<div class="info-item">
<div class="info-label"></div>
<div class="info-data">{{item.gengdi_area}}</div>
</div>
<div style="display:flex;background: rgba(237, 237, 237, 0.55);align-items: center;width: 80px;border-radius: 7px;margin-right: 8px;">
<div style="font-family: Alibaba PuHuiTi;font-weight: 400;font-size: 16px;color: #959494;width:45%;display: flex;justify-content: center;"></div>
<div style="font-family: HarmonyOS Sans;font-weight: 500;font-size: 16px;color: #000000;">0.8</div>
<div class="info-item">
<div class="info-label"></div>
<div class="info-data">{{item.yongjiujibennongtian_area}}</div>
</div>
<div style="display:flex;background: rgba(237, 237, 237, 0.55);align-items: center;width: 80px;border-radius: 7px;margin-right: 8px;">
<div style="font-family: Alibaba PuHuiTi;font-weight: 400;font-size: 16px;color: #959494;width:45%;display: flex;justify-content: center;"></div>
<div style="font-family: HarmonyOS Sans;font-weight: 500;font-size: 16px;color: #000000;">0.2</div>
<div class="info-item">
<div class="info-label"></div>
<div class="info-data">{{item.nongyongdi_area}}</div>
</div>
</div>
<div style="display:flex;">
<div class="info-layout-div">
<div>
<Icon
style="font-size: 30px; color: #314A8C; cursor: pointer"
:style="`font-size: 30px; color: #314A8C; cursor: pointer;${item.isouttime === 0? 'color: #314A8C;': item.isouttime === 1? 'color: #F7710F;': 'color: #D03542;'}`"
icon="icon-park-solid:timer"
@click="getCollectList"
@click="()=>{}"
/>
</div>
<div style="background: rgb(237, 237, 237);width: 1px;height: 100%;margin-right: 10px;margin-left: 10px;"></div>
<div>
<Icon
style="font-size: 30px; cursor: pointer"
:style="`font-size: 30px; cursor: pointer;${item.Fid? 'color:#F7710F': ''}`"
icon="mdi:folder-star-outline"
@click="getCollectList"
@click="collectItem(item)"
/>
</div>
</div>
@ -271,7 +209,7 @@
import { message } from 'ant-design-vue';
import { useUserStore } from '@/store/modules/user.ts'
import { SearchOutlined, RollbackOutlined } from '@ant-design/icons-vue';
import { patchSource } from '../util.ts'
import { patchSourceOptions } from '../util.ts'
const userStore = useUserStore()
@ -280,11 +218,12 @@
const flowWfDataStore = flowStore();
const props = defineProps(['areaId', 'yearOptions', 'year','level']);
const props = defineProps(['areaId', 'yearOptions', 'year','level','batch','patchSource','batchOptions']);
const processId = ref('');
const taskId = ref('');
const isRead: any = ref(0);
const type = ref('');
const order = ref(0)
const auditOpen = ref(false);
const showDataIndex = ref()
const handoffShow = ref(true)
@ -299,8 +238,12 @@
areaid: props.areaId,
geomid: null,
year: props.year,
is_build_complete: null,
picihao: props.batch,
tubanlaiyuan: props.patchSource,
is_build_name: null,
type: null,
sort: null,
order: null,
});
const markTypeOptions = ref([
{ label: '在建', value: 0 },
@ -415,12 +358,16 @@
handoffShow.value = true
}
const cancelCollectItem = (item) => {
deleteTaskCase(item.fid).then(res => {
deleteTaskCase(item.Fid).then(res => {
message.success('取消收藏成功')
getTaskList();
})
}
const collectItem = (item) => {
if(item.Fid){
cancelCollectItem(item)
return
}
let userInfo = userStore.getUserInfo
let params = {
taskId: item.taskeid,
@ -441,6 +388,35 @@
pageNumber.value = 1
getTaskList();
}
const showSortMark = (key, sort) => {
if(params.value.sort === key && sort === order.value){
return true
}
return false
}
const dataListSort = (type) => {
if(params.value.sort === null || params.value.sort === type){
order.value = (order.value + 1) % 3
}else{
order.value = 1
}
// emits('infoDataListSort', type, order.value)
switch(order.value){
case 0:
params.value.sort = null
params.value.order = null
break
case 1:
params.value.sort = type
params.value.order = 'asc'
break
case 2:
params.value.sort = type
params.value.order = 'desc'
break
}
getTaskList();
}
</script>
<style lang="less">
.full-modal {
@ -481,12 +457,16 @@
width: 33.3%;
display: flex;
margin-bottom: 3px;
font-family: Alibaba PuHuiTi;
font-weight: 500;
font-size: 17px;
color: #000000;
.screen-item-label {
width: 75px;
width: 83px;
padding-left: 10px;
display: flex;
align-items: center;
font-size: 15px;
// font-size: 15px;
}
}
.screen-button-div {
@ -545,126 +525,121 @@
flex: 1;
overflow: auto;
padding: 10px;
margin-top: 10px;
// margin-top: 10px;
height: 60vh;
.data-list-item {
display: flex;
height: 90px;
align-items: center;
border-bottom: 1px solid #cdcccc;
.select-mark {
width: 3px;
height: 100%;
}
.data-list-item-content {
padding-left: 5px;
width: 80%;
.item-info-div {
display: flex;
align-items: center;
margin-bottom: 5px;
.item-info-id {
width: 185px;
border-radius: 11px;
display: flex;
align-items: center;
// justify-content: center;
height: 22px;
font-weight: 500;
font-size: 15px;
}
.item-info-layout {
padding-left: 15px;
display: flex;
flex: 1;
justify-content: space-between;
}
.item-info-address {
// width: 120px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.item-info-batch {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
.item-data-div {
display: flex;
justify-content: space-between;
.item-data-item {
display: flex;
align-items: center;
border-radius: 6px 6px 0px 6px;
border: 1px solid #dddddd;
margin-right: 10px;
.item-mark-div {
width: 20px;
height: 20px;
color: #fff;
border-radius: 4px 4px 0px 4px;
display: flex;
align-items: center;
justify-content: center;
margin-right: 7px;
}
.sum-mark {
background: rgb(46 90 173);
}
.plowland-mark {
background: #01692a;
}
.adjust-mark {
background: #c06b1a;
}
.farmland-mark {
background: #7d2bb1;
}
.focus-area {
background: rgb(225 91 91);
}
.padding-mark {
background: #36afa4;
}
.area-data {
width: 55px;
}
}
}
}
.data-list-item-control{
display: flex;
margin-left:10px;
.data-list-item{
background:#fff;
padding:10px;
border-radius:6px;
margin-bottom:10px;
.data-list-layout-div{
display:flex;
justify-content: space-between;
padding-bottom: 8px;
border-bottom: 1px solid #E5E5E5;
height: 45px;
.data-list-title-div{
display:flex;
align-items: center;
.reminders-button{
width: 58px;
background: #086DEC;
color: #FFF;
.map-mark{
width:17px;
height:17px;
}
.reminder-button-select{
background: rgb(242, 12, 0);
.label-div{
display: flex;
align-items: baseline;
margin-right: 12px
}
.item-label{
font-family: Alibaba PuHuiTi;
font-weight: 500;
font-size: 23px;
color: #000000;
margin-left: 9px;
margin-right:10px;
}
.item-sub-label{
font-family: Alibaba PuHuiTi;
font-weight: 500;
font-size: 17px;
color: #000000;
}
.item-mark{
font-family: Alibaba PuHuiTi;
font-weight: 500;
font-size: 13px;
color: #FFFFFF;
background: rgba(0,0,0,0.59);
padding: 5px 8px;
border-radius: 14px;
}
}
.collect-button:hover {
color: rgb(255, 205, 42);
}
.collect-button{
color:#086DEC;
font-size: 22px;
}
.button-div {
height: 30px;
width: 30px;
display: flex;
justify-content: space-evenly;
font-size: 20px;
border: 1px solid #d9d9d9;
border-radius: 50%;
margin-left: 10px;
.data-item-type-div{
font-family: Alibaba PuHuiTi;
font-weight: 500;
font-size: 15px;
color: #000000;
border: 1px solid;
width: 37px;
height: 37px;
border-radius: 4px;
.type-title{
display:flex;
align-items:center;
justify-content: center;
}
.type-data{
background:#086DEC;
color:#fff;
display:flex;
align-items:center;
justify-content: center;
}
}
}
.data-list-info-div{
display: flex;
justify-content: space-between;
padding-top: 10px;
.info-layout-div{
display:flex;
align-items: center;
.info-time{
font-family: HarmonyOS Sans;
font-weight: 500;
font-size: 15px;
color: #000000;
margin-right: 5px;
}
}
.info-item{
display:flex;
background: rgba(237, 237, 237, 0.55);
align-items: center;
width: 80px;
border-radius: 7px;
margin-right: 8px;
height: 30px;
justify-content: center;
.info-label{
font-family: Alibaba PuHuiTi;
font-weight: 400;
font-size: 16px;
color: #959494;
// width:45%;
display: flex;
justify-content: center;
padding-right: 5px;
}
.info-data{
font-family: HarmonyOS Sans;
font-weight: 500;
font-size: 16px;
color: #000000;
}
}
}
}
}
.pagination-div {
background: @component-background;

View File

@ -17,7 +17,10 @@
:areaId="areaId"
:level="level"
:year="year"
:batch="batch"
:patchSource="patchSource"
:yearOptions="yearOptions"
:batchOptions="batchOptions"
v-else
/>
</div>
@ -57,7 +60,8 @@
const showParent = ref(true);
const year = ref();
const batch = ref('');
const batch = ref();
const patchSource = ref()
const batchOptions = ref([
{ value: '第一批', label: '第一批' },
{ value: '第二批', label: '第二批' },
@ -74,7 +78,6 @@
const areaId = ref('');
const level = ref()
const auditProgressScreenChange = (value, type) => {
console.log(value, type);
switch (type) {
case 'year':
year.value = value;
@ -82,6 +85,9 @@
case 'batch':
batch.value = value;
break;
case 'patchSource':
patchSource.value = value;
break;
}
getCountList();
};
@ -98,6 +104,8 @@
async function getCountList() {
const data = await getLoadTaskCount({
year: year.value,
tubanlaiyuan: patchSource.value,
picihao: batch.value,
});
dataList.value = data;
}

View File

@ -1,4 +1,4 @@
export const patchSource = [
export const patchSourceOptions = [
{
label: '全域巡查',
value: '全域巡查',