提交 33615298 authored 作者: jinrongbin's avatar jinrongbin

后期管理模块修改,增加两个字段

上级 5ac3d2d3
...@@ -12,7 +12,6 @@ ...@@ -12,7 +12,6 @@
</template> </template>
</a-page-header> </a-page-header>
<a-collapse v-model:activeKey="activeKey"> <a-collapse v-model:activeKey="activeKey">
<a-collapse-panel key="1" header="环境监测基本信息"> <a-collapse-panel key="1" header="环境监测基本信息">
<Environment ref="mgst" :type="type" :data="data" :isRead="type == 'view'" /> <Environment ref="mgst" :type="type" :data="data" :isRead="type == 'view'" />
<template #extra><a-button type="primary" v-if="type != 'view'" @click.prevent="saveMgst($event)">保存</a-button></template> <template #extra><a-button type="primary" v-if="type != 'view'" @click.prevent="saveMgst($event)">保存</a-button></template>
...@@ -24,29 +23,38 @@ ...@@ -24,29 +23,38 @@
<a-button type="primary" class="ml-5" v-if="index != 0" @click.prevent="del($event, index)">删除</a-button> <a-button type="primary" class="ml-5" v-if="index != 0" @click.prevent="del($event, index)">删除</a-button>
</template> </template>
</a-collapse-panel> </a-collapse-panel>
<a-collapse-panel key="500" header="后期管理情况">
<Environmentqk ref="hqglqk" :type="type" :data="data" :isRead="type == 'view'" />
<template #extra><a-button type="primary" v-if="type != 'view'" @click.prevent="saveHqglqk($event)">保存</a-button></template>
</a-collapse-panel>
<a-collapse-panel header="后期监管监测数据" key="6">
<PointInfor ref="trwrjc" :type="type" :data="data?.jcsjList" />
</a-collapse-panel>
<a-collapse-panel header="意见" key="150"> <a-collapse-panel header="意见" key="150">
<hqglProgress :List="data.yjList" /> <hqglProgress :List="data.yjList" />
</a-collapse-panel> </a-collapse-panel>
</a-collapse> </a-collapse>
<AdviceModal @register="registerAdviceModal"></AdviceModal> <AdviceModal @register="registerAdviceModal"></AdviceModal>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { ref, nextTick } from 'vue'; import { ref, nextTick } from 'vue';
import Environment from './components/environment.vue'; import Environment from './components/environment.vue';
import Environmentqk from './components/environmentqk.vue';
import TestingUnit from './components/TestingUnit.vue'; import TestingUnit from './components/TestingUnit.vue';
import AdviceModal from '@/components/customComponent/AdviceModal.vue'; import AdviceModal from '@/components/customComponent/AdviceModal.vue';
import hqglProgress from '/@/components/customComponent/hqglProgress.vue'; import hqglProgress from '/@/components/customComponent/hqglProgress.vue';
import PointInfor from '/@/components/customComponent/jgdk/PointInfor.vue';
import { useRouter } from 'vue-router'; import { useRouter } from 'vue-router';
import { addGljl } from './api'; import { addGljl } from './api';
const activeKey = ref(['1', '2', '3', '4', '5', '150']); const activeKey = ref(['1', '2', '3', '4', '5', '6', '500', '150']);
let router = useRouter(); let router = useRouter();
const wrdkid = ref(router.currentRoute.value.query.wrdkid); const wrdkid = ref(router.currentRoute.value.query.wrdkid);
const data = ref<any>({}); const data = ref<any>({});
const type = ref(router.currentRoute.value.query.type); const type = ref(router.currentRoute.value.query.type);
const unitList = ref([{ id: null }]); const unitList = ref([{ id: null }]);
const trwrjc = ref<any>(null);
import { useModal } from '/@/components/Modal'; import { useModal } from '/@/components/Modal';
const [registerAdviceModal, { openModal: openAdviceModal }] = useModal(); const [registerAdviceModal, { openModal: openAdviceModal }] = useModal();
...@@ -56,6 +64,7 @@ ...@@ -56,6 +64,7 @@
} }
// 保存环境检测的 // 保存环境检测的
const mgst = ref<any>(null); const mgst = ref<any>(null);
const hqglqk = ref<any>(null);
async function saveMgst(e) { async function saveMgst(e) {
e.stopPropagation(); e.stopPropagation();
const res = await mgst?.value.getFormValue(); const res = await mgst?.value.getFormValue();
...@@ -68,6 +77,10 @@ ...@@ -68,6 +77,10 @@
res.jcdwList.push(resJcdw); res.jcdwList.push(resJcdw);
}); });
// 获取地下水和土壤污染导入的数据
const trwrData = await trwrjc?.value.getFormValue();
if (trwrData.length > 0) res.jcsjList = trwrData;
setTimeout(async () => { setTimeout(async () => {
if (res.jcdwList.length != unitS.value.length) return; if (res.jcdwList.length != unitS.value.length) return;
await addGljl(res); await addGljl(res);
...@@ -76,6 +89,18 @@ ...@@ -76,6 +89,18 @@
// 走接口 // 走接口
} }
async function saveHqglqk(e) {
e.stopPropagation();
const res = await hqglqk?.value.getFormValue();
res.wrdkid = wrdkid.value;
setTimeout(async () => {
await addGljl(res);
router.go(-1);
}, Math.random() * 1000);
// 走接口
}
// 保存检测单位 // 保存检测单位
const unitS = ref<any>([]); const unitS = ref<any>([]);
......
<template>
<BasicForm @register="registerForm"></BasicForm>
</template>
<script setup lang="ts">
import { useForm, BasicForm, FormSchema } from '/@/components/Form';
import { watch, nextTick } from 'vue';
import { useMessage } from '/@/hooks/web/useMessage';
const { createMessage } = useMessage();
const props = defineProps({
data: {
type: Object,
},
isRead: {
type: Boolean,
default: false,
},
});
const formSchemas: FormSchema[] = [
{
label: '污染地块id',
field: 'wrdkid',
component: 'Input',
show: false,
},
{
label: '备注',
field: 'bz',
// required: true,
component: 'InputTextArea',
componentProps: () => {
return {
allowClear: true,
disabled: props.isRead,
autoSize:{
//最小显示行数
minRows: 2,
},
};
},
},
{
label: '其他材料',
field: 'qtcl',
// required: true,
component: 'JUpload',
componentProps: () => {
return {
disabled: props.isRead,
showUploadList: false,
fileName: '其他材料',
accept: '.pdf,.zip',
beforeUpload: (file) => {
let isshow = false;
const isFile = file.name.split('.')[file.name.split('.').length - 1];
console.log(file, 'file');
if (isFile == 'pdf' || isFile == 'zip' || isFile == 'PDF') {
isshow = true;
} else {
createMessage.error('只能上传.pdf/.zip格式的文件');
isshow = false;
}
return isshow;
},
};
},
},
];
const [registerForm, { getFieldsValue, setFieldsValue, resetFields, validate, updateSchema }] = useForm({
//注册表单列
schemas: formSchemas,
//不显示查询和重置按钮
showActionButtonGroup: false,
//默认row行配置,当 layout 为 horizontal 生效
rowProps: { gutter: 24, justify: 'start', align: 'middle' },
//全局col列占比(每列显示多少位),和schemas中的colProps属性一致
baseColProps: { span: 12 },
//使用labelCol的样式参数来控制标题宽度
labelCol: { style: { width: '180px' } },
//row行的样式
baseRowStyle: { width: '100%' },
//表单布局属性,支持(vertical,horizontal),默认为horizontal
layout: 'horizontal',
});
watch(
() => props?.data,
async (val: any) => {
if (val) {
await nextTick();
await setFieldsValue({
...props.data,
});
} else {
await nextTick();
await resetFields();
}
},
{ deep: true, immediate: true }
);
watch(
() => props?.isRead,
async (val: any) => {
if (val) {
await nextTick();
handleChange(val);
}
},
{ deep: true, immediate: true }
);
function handleChange(val) {
console.log(val, 'val');
updateSchema({
label: '备注',
field: 'bz',
required: false,
component: 'InputTextArea',
componentProps: () => {
return {
allowClear: false,
disabled: val,
autoSize:{
//最小显示行数
minRows: 2,
},
};
},
},);
updateSchema({
label: '其他材料',
field: 'qtcl',
required: false,
component: 'JUpload',
componentProps: {
disabled: val,
showUploadList: false,
},
});
}
async function getFormValue() {
console.log('子组件执行');
//获取所有值
let fieldsValue = await getFieldsValue();
fieldsValue = await validate();
return fieldsValue;
}
defineExpose({
getFormValue,
});
</script>
<style scoped>
/** 时间和数字输入框样式 */
:deep(.ant-input-number) {
width: 100%;
}
:deep(.ant-picker) {
width: 100%;
}
</style>
...@@ -4,11 +4,6 @@ ...@@ -4,11 +4,6 @@
<template #backIcon> <template #backIcon>
<div><a-button type="primary">返回</a-button></div> <div><a-button type="primary">返回</a-button></div>
</template> </template>
<template #title>
<div>
</div>
</template>
</a-page-header> </a-page-header>
<a-collapse v-model:activeKey="activeKey"> <a-collapse v-model:activeKey="activeKey">
<a-collapse-panel key="1" header="环境监测基本信息"> <a-collapse-panel key="1" header="环境监测基本信息">
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论