提交 58cbe12b authored 作者: lsj's avatar lsj

提交代码

上级 1226468d
<template>
<Card v-bind="$attrs" :bodyStyle="{ 'padding': 0, 'overflow': 'hidden', }">
<Card v-bind="$attrs" :bodyStyle="{ 'padding': 0, 'overflow': 'hidden','margin-top':'15px' }">
<!-- <template #extra v-if="title !== '更多内容'">
<a-button type="link" size="small" @click="more">更多</a-button>
</template> -->
......@@ -9,16 +9,16 @@
<span class="title-hd title-move" @click="more">更多</span>
</div>
</template>
<VScroll :itemHeight="41" :items="dynamicInfoItems" :height="700">
<VScroll :itemHeight="41" :items="dynamicInfoItems" :height="650">
<template #default="{ item }">
<a-row @click="toPage(item.wrdkid)" class="listBox">
<a-row @click="toPage(item)" class="listBox">
<a-col :span="2" class="listItem">
<span class="listRadio"></span>
</a-col>
<a-col :span="9" class="listItem listBody" :title="item.wrdkmc">{{ item.wrdkmc }}</a-col>
<a-col :span="4" class="listItem" :title="item.scjdmc">{{ item.scjdmc }}</a-col>
<a-col :span="4" class="listItem" :title="item.scjdmc" style="text-align: left;">{{ item.scjdmc }}</a-col>
<a-col :span="3" class="listItem" :title="item.tbjdmc">{{ item.tbjdmc }}</a-col>
<a-col :span="6" class="listItem listTime" :title="item.createTsamp">{{ item.createTsamp ? item.createTsamp :
<a-col :span="6" class="listItem listTime" :title="item.createTsamp" style="text-align: left;">{{ item.createTsamp ? item.createTsamp :
'暂无时间'
}}</a-col>
</a-row>
......@@ -31,9 +31,11 @@ import { defineProps, defineEmits, ref } from 'vue';
import { Card } from 'ant-design-vue';
import { VScroll } from '/@/components/VirtualScroll/index';
import { useRouter } from 'vue-router';
import { useMessage } from '/@/hooks/web/useMessage';
import titleBg from '/@/assets/images/title_bg.png';
let router = useRouter();
const { createMessage } = useMessage();
const emit = defineEmits(['moreClck'])
const props = defineProps({
......@@ -53,16 +55,161 @@ const props = defineProps({
function more() {
emit('moreClck', props.urls)
}
function toPage(val) {
// 增加传参id 跳转评审页面打开新窗口
// const url = router.resolve({
// path: `/directory/mlzk/land/modules/Plans`,
// query:{
// id:val,
// scjdbm:'S2'
// }
// })
// window.open(url.href, '_blank')
// function toPage(val) {
// if (val.scjdmc == '地块调查') {
// const url = router.resolve({
// path: `dkgl/investigate/modal/DataFilling?wrdkid=${val.wrdkid}`,
// })
// window.open(url.href, '_blank')
// }
// if (val.scjdmc == '风险评估') {
// const url = router.resolve({
// path: `dkgl/fxpg/UpFilling?wrdkid=${val.wrdkid}`,
// })
// window.open(url.href, '_blank')
// }
// if (val.scjdmc == '风险管控') {
// if (!val.tbjdmc && !val.tbjdbm) {
// createMessage.info('暂未开展调查');
// }
// const url = router.resolve({
// path: `dkgl/fxgk/DetailList?wrdkid=${val.wrdkid}&type=${val.tbjdmc}&jdnzt=${val.tbjdbm}`,
// })
// window.open(url.href, '_blank')
// }
// if (val.scjdmc == '风险管控效果评估') {
// if (!val.tbjdmc && !val.tbjdbm) {
// createMessage.info('暂未开展调查');
// }
// const url = router.resolve({
// path: `dkgl/gkpg/DetailList?wrdkid=${val.wrdkid}&type=${val.tbjdmc}&jdnzt=${val.tbjdbm}`,
// })
// window.open(url.href, '_blank')
// }
// if (val.scjdmc == '修复') {
// if (!val.tbjdmc && !val.tbjdbm) {
// createMessage.info('暂未开展调查');
// }
// const url = router.resolve({
// path: `dkgl/repair/DetailList?wrdkid=${val.wrdkid}&type=${val.tbjdmc}&jdnzt=${val.tbjdbm}`,
// })
// window.open(url.href, '_blank')
// }
// if (val.scjdmc == '修复效果评估') {
// if (!val.tbjdmc && !val.tbjdbm) {
// createMessage.info('暂未开展调查');
// }
// const url = router.resolve({
// path: `dkgl/xfpg/DetailList?wrdkid=${val.wrdkid}&type=${val.tbjdmc}&jdnzt=${val.tbjdbm}`,
// })
// window.open(url.href, '_blank')
// }
// if (val.scjdmc == '风险管控及修复') {
// if (!val.tbjdmc && !val.tbjdbm && !val.scjdmc) {
// createMessage.info('暂未开展调查');
// }
// const url = router.resolve({
// path: `dkgl/gkxf/DetailList?wrdkid=${val.wrdkid}&type=${val.tbjdmc}&scjdmc=${val.scjdmc}&jdnzt=${val.tbjdbm}`,
// })
// window.open(url.href, '_blank')
// }
// if (val.scjdmc == '风险管控及修复效果评估') {
// if (!val.tbjdmc && !val.tbjdbm) {
// createMessage.info('暂未开展调查');
// }
// const url = router.resolve({
// path: `dkgl/gkxfpg/DetailList?wrdkid=${val.wrdkid}&type=${val.tbjdmc}&jdnzt=${val.tbjdbm}`,
// })
// window.open(url.href, '_blank')
// }
// }
function toPage(val) {
const actions = {
'地块调查': {
path: `/dkgl/investigate/modal/ViewData`,
condition: val => !!val.wrdkid,
query: {
wrdkid: val.wrdkid
}
},
'风险评估': {
path: `/dkgl/fxpg/ViewDetail`,
condition: val => !!val.wrdkid,
query:{
wrdkid:val.wrdkid
}
},
'风险管控': {
path: `/dkgl/fxgk/DetailList`,
condition: val => !!val.tbjdmc && !!val.tbjdbm,
query:{
wrdkid:val.wrdkid,
type:val.tbjdmc,
jdnzt:val.tbjdbm,
}
},
'风险管控效果评估': {
path: `/dkgl/gkpg/DetailList`,
condition: val => !!val.tbjdmc && !!val.tbjdbm,
query:{
wrdkid:val.wrdkid,
type:val.tbjdmc,
jdnzt:val.tbjdbm,
}
},
'修复': {
path: `/dkgl/repair/DetailList`,
condition: val => !!val.tbjdmc && !!val.tbjdbm,
query:{
wrdkid:val.wrdkid,
type:val.tbjdmc,
jdnzt:val.tbjdbm,
}
},
'修复效果评估': {
path: `/dkgl/xfpg/DetailList`,
condition: val => !!val.tbjdmc && !!val.tbjdbm,
query:{
wrdkid:val.wrdkid,
type:val.tbjdmc,
jdnzt:val.tbjdbm,
}
},
'管控及修复': {
path: `/dkgl/gkxf/DetailList`,
condition: val => !!val.tbjdmc && !!val.tbjdbm && !!val.scjdmc,
query:{
wrdkid:val.wrdkid,
type:val.tbjdmc,
jdnzt:val.tbjdbm,
scjdmc:val.scjdmc
}
},
'管控及修复效果评估': {
path: `/dkgl/gkxfpg/DetailList`,
condition: val => !!val.tbjdmc && !!val.tbjdbm,
query:{
wrdkid:val.wrdkid,
type:val.tbjdmc,
jdnzt:val.tbjdbm,
}
}
};
const action = val.scjdmc;
if (actions[action]) {
if (actions[action].condition(val)) {
const url = router.resolve({
path: actions[action].path,
query:actions[action].query
})
window.open(url.href, '_blank')
} else {
createMessage.info('暂未开展调查');
}
} else {
createMessage.info('暂未开展调查');
}
}
</script>
<style lang="less" scoped>
......@@ -76,7 +223,7 @@ function toPage(val) {
.title {
width: 100%;
height: 60px;
height: 55px;
background: rgba(255, 255, 255, .5);
background: url('/@/assets/images/title_bg.png') no-repeat;
......@@ -109,7 +256,7 @@ function toPage(val) {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
font-size: 13px;
font-size: 15px;
color: #272727;
cursor: pointer;
padding: 10px 0;
......
<template>
<BasicModal @register="registerModal" :title="title" width="50%" :showOkBtn="false">
<a-spin :spinning="loading">
<VScroll :itemHeight="41" :items="dynamicInfoItems" :height="333" @scroll="simpleDebounce(scrolling($event),3000)">
<template #default="{ item }">
<a-row @click="toPage(item.wrdkid)" class="listBox">
<a-col :span="2" class="listItem">
<span class="listRadio"></span>
</a-col>
<a-col :span="9" class="listItem listBody" :title=" item.wrdkmc">{{ item.wrdkmc }}</a-col>
<a-col :span="4" class="listItem" :title="item.scjdmc">{{ item.scjdmc}}</a-col>
<a-col :span="3" class="listItem" :title="item.tbjdmc">{{ item.tbjdmc }}</a-col>
<a-col :span="6" class="listItem listTime" :title="item.createTsamp">{{ item.createTsamp?item.createTsamp:'暂无时间' }}</a-col>
</a-row>
</template>
<BasicModal @register="registerModal" :title="title" width="50%" :showOkBtn="false">
<a-spin :spinning="loading">
<VScroll :itemHeight="41" :items="dynamicInfoItems" :height="333" @scroll="simpleDebounce(scrolling($event), 3000)">
<template #default="{ item }">
<a-row @click="toPage(item)" class="listBox">
<a-col :span="2" class="listItem">
<span class="listRadio"></span>
</a-col>
<a-col :span="9" class="listItem listBody" :title="item.wrdkmc">{{ item.wrdkmc }}</a-col>
<a-col :span="4" class="listItem" :title="item.scjdmc">{{ item.scjdmc }}</a-col>
<a-col :span="3" class="listItem" :title="item.tbjdmc">{{ item.tbjdmc }}</a-col>
<a-col :span="6" class="listItem listTime" :title="item.createTsamp">{{
item.createTsamp ? item.createTsamp : '暂无时间' }}</a-col>
</a-row>
</template>
</VScroll>
<a-divider dashed="true" v-if="bottom" style="border-color: #999999;color:#99999;font-size:12px">我也是有底线的</a-divider>
</a-spin>
</BasicModal>
</template>
<script lang="ts" setup>
import { defineComponent,ref,reactive } from 'vue';
import { BasicModal,useModalInner } from '/@/components/Modal';
import { VScroll } from '/@/components/VirtualScroll/index';
import { useRouter } from 'vue-router';
import { getDblist } from "../api";
import { simpleDebounce } from '/@/utils/common/compUtils';
</a-spin>
</BasicModal>
</template>
<script lang="ts" setup>
import { defineComponent, ref, reactive } from 'vue';
import { BasicModal, useModalInner } from '/@/components/Modal';
import { VScroll } from '/@/components/VirtualScroll/index';
import { useRouter } from 'vue-router';
import { getDblist } from "../api";
import { simpleDebounce } from '/@/utils/common/compUtils';
let router = useRouter();
let dynamicInfoItems = ref([])
const loading = ref(true);
let pageNo = ref(1)
let type = ref(0)
let pages = ref(0)
const props = defineProps({
title:{
type:String,
default:'更多',
},
})
const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) =>{
switch (data.record.val) {
case '待办事项':
type.value = 1
break;
case '已办事项':
type.value = 2
break;
case '通知消息':
type.value = 3
break;
}
// 重置状态
loading.value = true
pageNo.value = 1
dynamicInfoItems.value = []
// 请求接口赋值
let result = await getDblist({type:type.value,pageNo:pageNo.value,pageSize:15})
dynamicInfoItems.value = result?.records
pages.value = result?.pages
loading.value = false
});
function toPage(val) {
// 增加传参id 跳转评审页面打开新窗口
// const url = router.resolve({
// path: `/directory/mlzk/land/modules/Plans`,
// query:{
// id:val,
// scjdbm:'S2'
// }
// })
// window.open(url.href, '_blank')
}
const bottom = ref(false)
async function scrolling(e) {
const clientHeight = e.target.clientHeight
const scrollHeight = e.target.scrollHeight
const scrollTop = e.target.scrollTop
if (scrollTop + clientHeight >= scrollHeight - 5) {
bottom.value = true
loading.value = true
if(pageNo.value >= pages.value){
// bottom.value = true
loading.value = false
}else{
pageNo.value = pageNo.value + 1
let result = await getDblist({type:type.value,pageNo:pageNo.value,pageSize:15})
dynamicInfoItems.value = dynamicInfoItems.value.concat(result?.records)
loading.value = false
bottom.value = false
let router = useRouter();
let dynamicInfoItems = ref([])
const loading = ref(true);
let pageNo = ref(1)
let type = ref(0)
let pages = ref(0)
const props = defineProps({
title: {
type: String,
default: '更多',
},
})
const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
switch (data.record.val) {
case '待办事项':
type.value = 1
break;
case '已办事项':
type.value = 2
break;
case '通知消息':
type.value = 3
break;
}
// 重置状态
loading.value = true
pageNo.value = 1
dynamicInfoItems.value = []
// 请求接口赋值
let result = await getDblist({ type: type.value, pageNo: pageNo.value, pageSize: 15 })
dynamicInfoItems.value = result?.records
pages.value = result?.pages
loading.value = false
});
function toPage(val) {
const actions = {
'地块调查': {
path: `/dkgl/investigate/modal/ViewData`,
condition: val => !!val.wrdkid,
query: {
wrdkid: val.wrdkid
}
} else {
bottom.value = false
}
}
</script>
},
'风险评估': {
path: `/dkgl/fxpg/ViewDetail`,
condition: val => !!val.wrdkid,
query: {
wrdkid: val.wrdkid
}
},
'风险管控': {
path: `/dkgl/fxgk/DetailList`,
condition: val => !!val.tbjdmc && !!val.tbjdbm,
query: {
wrdkid: val.wrdkid,
type: val.tbjdmc,
jdnzt: val.tbjdbm,
}
},
'风险管控效果评估': {
path: `/dkgl/gkpg/DetailList`,
condition: val => !!val.tbjdmc && !!val.tbjdbm,
query: {
wrdkid: val.wrdkid,
type: val.tbjdmc,
jdnzt: val.tbjdbm,
}
},
'修复': {
path: `/dkgl/repair/DetailList`,
condition: val => !!val.tbjdmc && !!val.tbjdbm,
query: {
wrdkid: val.wrdkid,
type: val.tbjdmc,
jdnzt: val.tbjdbm,
}
},
'修复效果评估': {
path: `/dkgl/xfpg/DetailList`,
condition: val => !!val.tbjdmc && !!val.tbjdbm,
query: {
wrdkid: val.wrdkid,
type: val.tbjdmc,
jdnzt: val.tbjdbm,
}
},
'管控及修复': {
path: `/dkgl/gkxf/DetailList`,
condition: val => !!val.tbjdmc && !!val.tbjdbm && !!val.scjdmc,
query: {
wrdkid: val.wrdkid,
type: val.tbjdmc,
jdnzt: val.tbjdbm,
scjdmc: val.scjdmc
}
},
'管控及修复效果评估': {
path: `/dkgl/gkxfpg/DetailList`,
condition: val => !!val.tbjdmc && !!val.tbjdbm,
query: {
wrdkid: val.wrdkid,
type: val.tbjdmc,
jdnzt: val.tbjdbm,
}
}
};
const action = val.scjdmc;
if (actions[action]) {
if (actions[action].condition(val)) {
const url = router.resolve({
path: actions[action].path,
query: actions[action].query
})
window.open(url.href, '_blank')
} else {
createMessage.info('暂未开展调查');
}
} else {
createMessage.info('暂未开展调查');
}
}
const bottom = ref(false)
async function scrolling(e) {
const clientHeight = e.target.clientHeight
const scrollHeight = e.target.scrollHeight
const scrollTop = e.target.scrollTop
if (scrollTop + clientHeight >= scrollHeight - 5) {
bottom.value = true
loading.value = true
if (pageNo.value >= pages.value) {
// bottom.value = true
loading.value = false
} else {
pageNo.value = pageNo.value + 1
let result = await getDblist({ type: type.value, pageNo: pageNo.value, pageSize: 15 })
dynamicInfoItems.value = dynamicInfoItems.value.concat(result?.records)
loading.value = false
bottom.value = false
}
} else {
bottom.value = false
}
}
</script>
<style scoped>
.listBox:nth-child(2n){
background: rgba(232,232,232,.27);
.listBox:nth-child(2n) {
background: rgba(232, 232, 232, .27);
}
.listBox:hover{
background: rgba(232,232,232,.27);
.listBox:hover {
background: rgba(232, 232, 232, .27);
}
.listItem{
text-align:center;
.listItem {
text-align: center;
overflow: hidden;
text-overflow: ellipsis;
white-space:nowrap;
white-space: nowrap;
font-size: 13px;
color: #272727;
cursor:pointer;
cursor: pointer;
padding: 10px 0;
}
.listRadio{
.listRadio {
display: inline-block;
background-color: #1CA4FF;
border-radius: 50%;
width: 8px;
height: 8px;
}
.listBody{
text-align:left;
.listBody {
text-align: left;
}
.listTime{
.listTime {
color: #999999;
}
</style>
}</style>
\ No newline at end of file
......@@ -31,9 +31,9 @@
let title = ref('')
async function init() {
// 请求接口
let result1 = await getDblist({type:1,pageNo:1,pageSize:15});//代办事项
let result2 = await getDblist({type:2,pageNo:1,pageSize:15});//已办事项
let result3 = await getDblist({type:3,pageNo:1,pageSize:15});//通知消息
let result1 = await getDblist({type:1,pageNo:1,pageSize:12});//代办事项
let result2 = await getDblist({type:2,pageNo:1,pageSize:12});//已办事项
let result3 = await getDblist({type:3,pageNo:1,pageSize:12});//通知消息
dbData = result1?.records
ybData = result2?.records
tzData = result3?.records
......
......@@ -18,41 +18,56 @@
</template>
<!--插槽:table标题-->
<template #tableTitle>
<!-- <a-button type="primary" preIcon="ant-design:export-outlined" @click="onExportXls">名录导出</a-button> -->
<!-- <a-button type="primary" preIcon="ant-design:edit-outlined" @click="handleEdit">编辑</a-button> -->
<a-button type="primary" @click="handleEdit" v-auth="'qdml-baml-wsxx'">修改</a-button>
</template>
<!--操作栏-->
<template #action="{ record }">
<TableAction :actions="getTableAction(record)" />
<a-button type="primary" @click="handleEdit" v-auth="'qdml-baml-wsxx'">完善信息</a-button>
<a-button type="primary" @click="handleView" v-auth="'qdml-baml-ckxx'">查看基本信息</a-button>
<!-- <a-button type="primary" @click="showDetail" v-auth="'qdml-baml-zltb'">资料填报</a-button> -->
<a-popconfirm title="是否确认提交?" ok-text="是" cancel-text="否" @confirm="tiji">
<a href="#"> <a-button type="primary" v-auth="'qdml-baml-tj'">提交</a-button></a>
</a-popconfirm>
<a-popconfirm title="是否确认删除?" ok-text="是" cancel-text="否" @confirm="del">
<a href="#"> <a-button type="primary" v-auth="'qdml-baml-del'">删除</a-button></a>
</a-popconfirm>
</template>
</BasicTable>
<DelModal @register="registerDelModal" @success="handleSuccess"></DelModal>
<GWrdkjbxxbModal @register="registerModal" @success="handleSuccess"></GWrdkjbxxbModal>
<a-modal v-model:visible="open" :centered="true" title="信息">
<template #footer>
<a-button key="submit" type="primary" @click="open = false">确定</a-button>
</template>
<div class="py-10 ml-6">该地块还未进行填报,没有详情可以查看</div>
</a-modal>
<!-- 资料填报前置 -->
<!-- <a-modal v-model:visible="visible" title="请选择土壤污染状态调查填报方式:" centered @ok="handleOk"
:bodyStyle="{ 'padding-left': '30px' }" :width="500" :height="400" :okText="'确定'" :cancelText="'取消'">
<a-radio-group v-model:value="selectdclx">
<a-radio :style="radioStyle" value="1">初步调查(没有超标)</a-radio>
<a-radio :style="radioStyle" value="2">详细调查</a-radio>
<a-radio :style="radioStyle" value="3">初步调查+详细调查</a-radio>
</a-radio-group>
</a-modal> -->
</div>
</template>
<script lang="ts" name="directory-baml-baml" setup>
import { ref, computed, unref } from 'vue';
import { BasicTable, useTable, TableAction, TableActionType } from '/@/components/Table';
import { BasicTable, TableActionType } from '/@/components/Table';
import { useModal } from '/@/components/Modal';
import { useListPage } from '/@/hooks/system/useListPage';
import { columns, searchFormSchema, useSuspectsData, useCategoryData } from './data';
import { BahygzList, deleteOne, batchDelete, getImportUrl, getExportUrl } from './api';
import { BahygzList, batchDelete, getImportUrl, getExportUrl } from './api';
import GWrdkjbxxbModal from '../components/GWrdkjbxxbModal.vue'
import DelModal from '../components/DelModal.vue'
import { useMessage } from '/@/hooks/web/useMessage';
import { useRouter } from 'vue-router';
import { submitWrdkdc, existDclx } from '/@/api/common/api';
const { createMessage } = useMessage()
//注册model
const [registerModal, { openModal }] = useModal();
const [registerDelModal, { openModal: openDelModal }] = useModal();
const tableRef = ref<Nullable<TableActionType>>(null);
function getTableActionRef() {
const tableAction = unref(tableRef);
if (!tableAction) {
throw new Error('tableAction is null');
}
return tableAction;
}
const open = ref(false)
let router = useRouter();
//注册table数据
const { prefixCls, tableContext, onExportXls, onImportXls } = useListPage({
tableProps: {
......@@ -64,6 +79,7 @@ const { prefixCls, tableContext, onExportXls, onImportXls } = useListPage({
rowKey: "wrdkid",
rowSelection: { type: 'radio' },
clickToRowSelect: true,
showActionColumn: false,
formConfig: {
labelWidth: 120,
schemas: searchFormSchema,
......@@ -87,88 +103,84 @@ const isSuspectOptions = useSuspectsData().data; // 行业分类
const useCategory = useCategoryData();
const treeData = useCategory.data; // 行业类别-数据
const changeSuspect = useCategory.changeIsSuspect; // 行业类别-方法
const [registerTable, { reload }, { rowSelection,selectedRows, selectedRowKeys }] = tableContext;
/**
* 新增事件
*/
function handleAdd() {
const [registerTable, { reload }, { rowSelection, selectedRows, selectedRowKeys }] = tableContext;
//编辑事件
function handleEdit() {
if (selectedRowKeys.value.length == 0) {
createMessage.info('请选择要修改的地块');
return
}
openModal(true, {
isUpdate: false,
record: selectedRows.value[0],
isUpdate: true,
showFooter: true,
});
}
/**
* 编辑事件
*/
function handleEdit() {
if (selectedRowKeys.value.length == 0) {
createMessage.info('请选择要修改的地块');
return
}
openModal(true, {
record: selectedRows.value[0],
isUpdate: true,
showFooter: true,
// 提交事件
async function tiji() {
if (selectedRowKeys.value.length == 0) {
createMessage.info('请选择需要处理的内容,每次只能选中一条');
return
}
if (selectedRows.value[0].jxsmdc && selectedRows.value[0].sfthxg) {
createMessage.info('数据还未进行填报');
return
}
try {
await submitWrdkdc({
wrdkid: selectedRows.value[0].wrdkid,
jxsmdc: selectedRows.value[0].jxsmdc,
sfthxg: selectedRows.value[0].sfthxg,
});
} catch (error) {
handleSuccess()
}
}
/**
* 详情
*/
function handleDetail(record: Recordable) {
openModal(true, {
record,
isUpdate: true,
showFooter: false,
});
}
/**
* 删除事件
*/
async function handleDelete(record) {
await deleteOne({ id: record.id }, reload);
}
/**
* 批量删除事件
*/
async function batchHandleDelete() {
await batchDelete({ ids: selectedRowKeys.value }, reload);
// 删除
async function del() {
if (selectedRowKeys.value.length == 0) {
createMessage.info('请选择需要处理的内容,每次只能选中一条');
return
}
openDelModal(
true,
{
record: selectedRows.value[0],
isUpdate: true,
showFooter: true,
});
}
/**
* 成功回调
*/
//成功回调
function handleSuccess() {
selectedRows.value = []
selectedRowKeys.value = []
reload();
}
/**
* 操作栏
*/
function getTableAction(record) {
return [
{
label: '详情',
onClick: handleEdit.bind(null, record),
},
];
}
/**
* 下拉操作栏
*/
function getDropDownAction(record) {
return [
// {
// label: '详情',
// onClick: handleDetail.bind(null, record),
// },
// {
// label: '删除',
// popConfirm: {
// title: '是否确认删除',
// confirm: handleDelete.bind(null, record),
// },
// },
];
function handleView() {
if (selectedRowKeys.value.length == 0) {
createMessage.info('请选择需要处理的内容,每次只能选中一条');
return
}
const record: any = selectedRows.value[0]
if (!record.dclx) {
open.value = true
return
}
router.push(`/dkgl/investigate/modal/lookDataFilling?wrdkid=${selectedRowKeys.value[0]}`)
}
// // 点击填报资料
// async function showDetail() {
// if (selectedRowKeys.value.length == 0) {
// createMessage.info('请选择需要处理的内容,每次只能选中一条');
// return;
// }
// const res = await existDclx({ wrdkid: selectedRowKeys.value[0] });
// if (res) {
// router.push(`/dkgl/investigate/modal/DataFilling?wrdkid=${selectedRowKeys.value[0]}`);
// } else {
// visible.value = true;
// }
// }
</script>
<style scoped></style>
......@@ -18,37 +18,59 @@
</template>
<!--插槽:table标题-->
<template #tableTitle>
<a-button type="primary" @click="move" v-auth="'qdml-gzml-ycygz'">移出预关注</a-button>
<a-button type="primary" @click="showDetail" v-auth="'qdml-gzml-zltb'">资料填报</a-button>
<a-button type="primary" @click="handleView" v-auth="'qdml-gzml-ckxx'">查看基本信息</a-button>
</template>
<!--操作栏-->
<template #action="{ record }">
<TableAction :actions="getTableAction(record)" />
<a-button type="primary" @click="showModal(2)" v-auth="'qdml-gzml-tbfsbg'">填报方式变更</a-button>
<a-button type="primary" @click="move" v-auth="'qdml-gzml-ycygz'">移出预关注</a-button>
</template>
</BasicTable>
</div>
<MoveinModal @register="registerMoveModal" @success="handleSuccess" />
<!--查看详情前置 -->
<a-modal v-model:visible="open" :centered="true" title="信息">
<template #footer>
<a-button key="submit" type="primary" @click="open = false">确定</a-button>
</template>
<div class="py-10 ml-6">该地块还未进行填报,没有详情可以查看</div>
</a-modal>
<template #footer>
<a-button key="submit" type="primary" @click="open = false">确定</a-button>
</template>
<div class="py-10 ml-6">该地块还未进行填报,没有详情可以查看</div>
</a-modal>
<!-- 填报方式变更前置 -->
<a-modal v-model:visible="noChange" title="信息" centered @ok="noChange = false" :bodyStyle="{ 'padding-left': '30px' }"
:width="400" :okText="'确定'" :cancelText="'取消'">
<template #footer>
<a-button type="primary" @click="noChange = false">确定</a-button>
</template>
<div class="py-10 pl-5"> 还没有选定调查类型,不能变更 </div>
</a-modal>
<!-- 资料填报前置 -->
<a-modal v-model:visible="visible" title="请选择土壤污染状态调查填报方式:" centered @ok="handleOk"
:bodyStyle="{ 'padding-left': '30px' }" :width="500" :height="400" :okText="'确定'" :cancelText="'取消'">
<a-radio-group v-model:value="selectdclx">
<a-radio :style="{display: 'block',height: '30px',lineHeight: '30px'}" value="1">初步调查(没有超标)</a-radio>
<a-radio :style="{display: 'block',height: '30px',lineHeight: '30px'}" value="2">详细调查</a-radio>
<a-radio :style="{display: 'block',height: '30px',lineHeight: '30px'}" value="3">初步调查+详细调查</a-radio>
</a-radio-group>
</a-modal>
<!-- 点击确定出现的弹框变更的时候 -->
<a-modal v-model:visible="bgvisible" title="信息" centered @ok="handlebg" :bodyStyle="{ 'padding-left': '30px' }"
:width="400" :okText="'确定'" :cancelText="'取消'">
<div class="py-10 pl-5"> 本次变更,将会丢失地块调查填报的信息。请确认 </div>
</a-modal>
</template>
<script lang="ts" name="directory-gzml-gzml" setup>
import { ref, computed, unref } from 'vue';
import { BasicTable, useTable, TableAction } from '/@/components/Table';
import { ref, } from 'vue';
import { BasicTable } from '/@/components/Table';
import { useModal } from '/@/components/Modal';
import { useListPage } from '/@/hooks/system/useListPage';
import { columns, searchFormSchema, useSuspectsData, useCategoryData } from './data';
import { BahygzList, deleteOne, batchDelete, getImportUrl, getExportUrl } from './api';
import { BahygzList, getImportUrl, getExportUrl } from './api';
import { existDclx, updateDclx, } from '/@/api/common/api';
import MoveinModal from '../components/MoveinModal.vue'
import { useMessage } from '/@/hooks/web/useMessage';
import { useRouter } from 'vue-router';
const { createMessage } = useMessage();
let router = useRouter();
//注册model
const [registerModal, { openModal }] = useModal();
const [registerMoveModal, { openModal: openMoveModal }] = useModal();
//注册table数据
const { prefixCls, tableContext, onExportXls, onImportXls } = useListPage({
......@@ -61,6 +83,7 @@ const { prefixCls, tableContext, onExportXls, onImportXls } = useListPage({
//定义rowSelection的类型,默认是checkbox多选,可以设置成radio单选
rowKey: "wrdkid",
rowSelection: { type: 'radio' },
showActionColumn: false,
formConfig: {
labelWidth: 120,
schemas: searchFormSchema,
......@@ -81,63 +104,33 @@ const { prefixCls, tableContext, onExportXls, onImportXls } = useListPage({
},
});
const open = ref(false)
const noChange = ref<boolean>(false);
const selectdclx = ref<number>(1);
const flg = ref(1);
const visible = ref<boolean>(false);
const bgvisible = ref<boolean>(false);
const isSuspectOptions = useSuspectsData().data; // 行业分类
const useCategory = useCategoryData();
const treeData = useCategory.data; // 行业类别-数据
const changeSuspect = useCategory.changeIsSuspect; // 行业类别-方法
const [registerTable, { reload }, { rowSelection,selectedRows, selectedRowKeys }] = tableContext;
const [registerTable, { reload }, { rowSelection, selectedRows, selectedRowKeys }] = tableContext;
/**
* 新增事件
*/
function handleAdd() {
openModal(true, {
isUpdate: false,
showFooter: true,
});
}
/**
* 编辑事件
*/
function handleEdit(record: Recordable) {
openModal(true, {
record,
isUpdate: true,
showFooter: true,
});
}
// 移入关注
function move() {
if (selectedRowKeys.value.length == 0) {
createMessage.info('请选择要移入关注的数据');
return
}
openMoveModal(true, {
record: {
...selectedRows.value[0],
type:'mouse'
},
isUpdate: true,
showFooter: true,
});
}
/**
* 详情
*/
function handleDetail(record: Recordable) {
openModal(true, {
record,
if (selectedRowKeys.value.length == 0) {
createMessage.info('请选择要移入关注的数据');
return
}
openMoveModal(true, {
record: {
...selectedRows.value[0],
type: 'mouse'
},
isUpdate: true,
showFooter: false,
showFooter: true,
});
}
/**
* 删除事件
*/
async function handleDelete(record) {
await deleteOne({ id: record.id }, reload);
}
let router = useRouter();
//查看基本信息
function handleView() {
if (selectedRowKeys.value.length == 0) {
createMessage.info('请选择需要处理的内容,每次只能选中一条');
......@@ -148,51 +141,56 @@ function handleView() {
open.value = true
return
}
// router.push(`/directory/mlzk/land/modules/ViewModal?wrdkid=${record.wrdkid}`)
router.push(`/dkgl/investigate/modal/lookDataFilling?wrdkid=${selectedRowKeys.value[0]}`)
}
/**
* 批量删除事件
*/
async function batchHandleDelete() {
await batchDelete({ ids: selectedRowKeys.value }, reload);
router.push(`/dkgl/investigate/modal/ViewData?wrdkid=${selectedRowKeys.value[0]}`)
}
/**
* 成功回调
*/
function handleSuccess() {
selectedRows.value = []
selectedRowKeys.value = []
reload();
//成功回调
function handleSuccess() {
selectedRows.value = []
selectedRowKeys.value = []
reload();
}
/**
* 操作栏
*/
function getTableAction(record) {
return [
{
label: '详情',
onClick: handleEdit.bind(null, record),
},
];
}
/**
* 下拉操作栏
*/
// function getDropDownAction(record) {
// return [
// {
// label: '详情',
// onClick: handleDetail.bind(null, record),
// },
// {
// label: '删除',
// popConfirm: {
// title: '是否确认删除',
// confirm: handleDelete.bind(null, record),
// },
// },
// ];
// }
//填报方式变更
const showModal = async (v) => {
if (selectedRowKeys.value.length == 0) {
createMessage.info('请选择需要处理的内容,每次只能选中一条');
return;
}
if (!selectedRows.value[0].dclx) {
noChange.value = true;
} else {
selectdclx.value = selectedRows.value[0].dclx;
flg.value = v;
visible.value = true;
}
};
const handleOk = async () => {
if (flg.value != 2) {
visible.value = false;
await updateDclx({ wrdkid: selectedRowKeys.value[0], dclx: selectdclx.value });
router.push(`/dkgl/investigate/modal/DataFilling?wrdkid=${selectedRowKeys.value[0]}`);
} else {
bgvisible.value = true;
}
};
// 点击填报资料
async function showDetail() {
if (selectedRowKeys.value.length == 0) {
createMessage.info('请选择需要处理的内容,每次只能选中一条');
return;
}
const res = await existDclx({ wrdkid: selectedRowKeys.value[0] });
if (res) {
router.push(`/dkgl/investigate/modal/DataFilling?wrdkid=${selectedRowKeys.value[0]}`);
} else {
visible.value = true;
}
}
// 点击变更确认提示弹框
async function handlebg() {
const res = await updateDclx({ wrdkid: selectedRowKeys.value[0], dclx: selectdclx.value });
visible.value = false;
bgvisible.value = false;
createMessage.info(res);
}
</script>
<style scoped></style>
......@@ -245,7 +245,7 @@ function handleView() {
return
}
// router.push(`/directory/mlzk/land/modules/ViewModal?wrdkid=${record.wrdkid}`)
router.push(`/dkgl/investigate/modal/lookDataFilling?wrdkid=${selectedRowKeys.value[0]}`)
router.push(`/dkgl/investigate/modal/ViewData?wrdkid=${selectedRowKeys.value[0]}`)
}
......
......@@ -174,7 +174,7 @@
createMessage.info('请选择需要处理的内容,每次只能选中一条');
return;
}
router.push(`/dkgl/investigate/modal/lookDataFilling?wrdkid=${selectedRowKeys.value[0]}`);
router.push(`/dkgl/investigate/modal/ViewData?wrdkid=${selectedRowKeys.value[0]}`);
}
//注册table数据
......
<template>
<!-- <BasicDrawer v-bind="$attrs" @register="registerDrawer" title="资料填报" width="80%" @ok="handleSubmit" destroyOnClose> -->
<div class="bg-[#fff]">
<a-page-header style="border: 1px solid rgb(235, 237, 240)" @back="router.go(-1)">
<template #backIcon>
<div><a-button type="primary">返回</a-button></div>
</template>
<template #title>
<div></div>
</template>
</a-page-header>
<a-collapse v-model:activeKey="activeKey" :bordered="false">
<a-collapse-panel key="1" header="地块信息" v-if="data.wrdkjbxxb">
<DkTable :data="data.wrdkjbxxb" />
</a-collapse-panel>
<a-collapse-panel key="2" v-if="data?.wrdkjbxxb?.dclx == 3 || data?.wrdkjbxxb?.dclx == 1" header="初步调查报告基本信息">
<suBainTable :data="data.cbdc" />
</a-collapse-panel>
<a-collapse-panel header="初步调查报告编制单位基本信息" v-if="data?.wrdkjbxxb?.dclx == 3 || data?.wrdkjbxxb?.dclx == 1"
v-for="(item, index) in cbdcBzdw" :key="'6-' + index">
<unitMessageTable :data="item" />
</a-collapse-panel>
<a-collapse-panel header="初步调查检测单位信息" v-if="data?.wrdkjbxxb?.dclx == 3 || data?.wrdkjbxxb?.dclx == 1"
v-for="(item, index) in cbjcdw" :key="'7-' + index">
<unitMessageTable :data="item" />
</a-collapse-panel>
<a-collapse-panel key="3" v-if="data?.wrdkjbxxb?.dclx == 3 || data?.wrdkjbxxb?.dclx == 2" header="详细调查报告基本信息">
<suBainTable :data="data.xxdc" :text-lable="'详细'"/>
</a-collapse-panel>
<a-collapse-panel header="详细调查报告编制单位基本信息" v-if="data?.wrdkjbxxb?.dclx == 3 || data?.wrdkjbxxb?.dclx == 2"
v-for="(item, index) in xxdcBzdw" :key="'8-' + index">
<unitMessageTable :data="item" />
</a-collapse-panel>
<a-collapse-panel header="详细调查检测单位信息" v-if="data?.wrdkjbxxb?.dclx == 3 || data?.wrdkjbxxb?.dclx == 2"
v-for="(item, index) in xxjcdw" :key="'9-' + index">
<unitMessageTable :labelFirst="'详细'" :data="item" />
</a-collapse-panel>
<a-collapse-panel header="土壤环境质量信息" key="10" v-if="data.trhjzlxx">
<soilMessageTable :data="data.trhjzlxx" />
</a-collapse-panel>
<a-collapse-panel header="敏感受体信息" key="11" v-if="data.mgst">
<sensitivityTable :data="data.mgst" />
</a-collapse-panel>
<!-- <a-collapse-panel header="修复方案基本信息" key="10">
<repairBainTable />
</a-collapse-panel> -->
<!-- <a-collapse-panel header="技术路线" key="11">
<technicalLines />
</a-collapse-panel> -->
<!-- <a-collapse-panel key="12" header="修复方案编制单位基本信息">
<suBainTable />
</a-collapse-panel> -->
<!-- <a-collapse-panel key="13" header="修复方案编制单位基本信息">
</a-collapse-panel> -->
<a-collapse-panel key="13" header="初步调查文件上传" v-if="data?.wrdkjbxxb?.dclx == 3 || data?.wrdkjbxxb?.dclx == 1 || data.cbdc">
<CdUpload :data="data.cbdc" :objec="[{ name: '公式照片' }, { name: '初步调查报告' }]" />
</a-collapse-panel>
<a-collapse-panel key="14" header="详细调查文件上传" v-if="data?.wrdkjbxxb?.dclx == 3 || data?.wrdkjbxxb?.dclx == 2 || data.xxdc">
<CdUpload labelFirst="详细调查" :objec="[{ name: '公式照片' }, { name: '详细调查报告' }]" :data="data.xxdc" />
</a-collapse-panel>
<a-collapse-panel header="填报进度" key="15">
<fillProgress :List="data.lzjd" />
</a-collapse-panel>
</a-collapse>
</div>
<!-- </BasicDrawer> -->
</template>
<script lang="ts" setup>
import { ref, watch, } from 'vue';
// import { BasicDrawer, useDrawerInner } from '/src/components/Drawer';
// import DkTable from "/src/components/customComponent/DkTable.vue";
import DkTable from "/@/components/customComponent/DkTable.vue"
import suBainTable from '/@/components/customComponent/suBainTable.vue';
import unitMessageTable from '/@/components/customComponent/unitMessageTable.vue'; // 单位检测信息请传不同的obj
import soilMessageTable from '/@/components/customComponent/soilMessageTable.vue'
import sensitivityTable from '/@/components/customComponent/sensitivityTable.vue'
import CdUpload from '/@/components/customComponent/CdUpload.vue';
import fillProgress from '/@/components/customComponent/fillProgress.vue'
import { useRouter } from 'vue-router';
import { plotDetails, } from '/@/api/common/api'
let router = useRouter();// 注册路由
const data = ref<any>({})
const param = ref<any>(router.currentRoute.value.query)
// const [registerDrawer, { }] = useDrawerInner();
let cbdcBzdw = ref([
{ id: null },
]);
let xxdcBzdw = ref([
{ id: null },
])
let cbjcdw = ref([
{ id: null },
]);
let xxjcdw = ref([
{ id: null },
]);
//手风琴
const activeKey = ref(['1', '2', '3', '10', '11', '13', '14', '15']);
watch(activeKey, val => {
console.log(val);
});
function init() {
getInfor()
// getRecord()
}
init()
// 获取地块基本信息
async function getInfor() {
data.value = await plotDetails({
wrdkid: param.value.wrdkid,
scjdbm: 'S2'
})
// 判断是详细调查的还是初步调查的
cbdcBzdw.value = []
xxdcBzdw.value = []
data.value.bzdw.forEach(item => {
if (item.scjdbm == 'S1') {
cbdcBzdw.value.push(item)
} else if (item.scjdbm == 'S2') {
xxdcBzdw.value.push(item)
}
})
cbjcdw.value = []
xxjcdw.value = []
data.value.jcdw.forEach(item => {
if (item.scjdbm == 'S1') {
cbjcdw.value.push(item)
} else if (item.scjdbm == 'S2') {
xxjcdw.value.push(item)
}
})
// 默认展开所有面板
const prefixes = ['6-', '7-', '8-', '9-'];
const arrays = [cbdcBzdw.value, cbjcdw.value, xxdcBzdw.value, xxjcdw.value];
for (let i = 0; i < arrays.length; i++) {
arrays[i].forEach((el, index) => {
activeKey.value.push(prefixes[i] + index);
});
}
}
</script>
<style scoped>
:deep(.ant-collapse-borderless) {
width: 100%;
}
</style>
\ No newline at end of file
......@@ -92,7 +92,7 @@ async function loadRootTreeData() {
loading.value = true;
treeData.value = [];
const result = await treeXzbm();
console.log(result);
// console.log(result);
if (Array.isArray(result)) {
treeData.value = result;
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论