瀏覽代碼

违法信息通报事项清单管理页面

Luka 4 天之前
父節點
當前提交
986e343cd1

+ 206 - 151
src/components/components/pageContent.vue

@@ -1,54 +1,106 @@
 <template>
-    <div class="contenBox">
-        <div class="table-action flex-b">
-            <div class="customList">{{ contentConfig.header.title ? contentConfig.header.title : '' }}</div>
-            <div class="btns">
-                <slot name="button"></slot>
-            </div>
-        </div>
-        <el-table :data="pageList" style="width: 100%; max-height: 55vh; overflow: auto"
-            @selection-change="handleSelectionChange" ref="multipleTableRef" v-bind="props.contentConfig?.tableProps"
-            :row-key="getRowKeys" v-loading="loading">
-            <template v-for="item in contentConfig.propsList">
-                <!-- 序号 -->
-                <el-table-column :fixed="item.fixed" v-if="item.type === 'index'" type="index" :key="item.prop" center>
-                </el-table-column>
-                <!-- 选择 -->
-                <el-table-column :fixed="item.fixed" type="selection" width="55" align="center" :key="item.prop"
-                    v-if="item.type === 'selection'" :reserve-selection="true" />
-                <!-- 操作类 -->
-                <el-table-column :key="item" :fixed="item.fixed" align="center" v-bind="item"
-                    v-else-if="item.type === 'handler'">
-                    <template #default="scope">
-                        <slot :name="item.slotName" v-bind="scope"></slot>
-                    </template>
-                </el-table-column>
-
-                <!-- 自定义类 -->
-                <el-table-column show-overflow-tooltip :fixed="item.fixed" :key="item.label"
-                    v-else-if="item.type === 'custom'" :label="item.label" :width="item.width" :prop="item.prop"
-                    :sortable="item.sortable || false" :column-key="item.prop">
-                    <template #default="scope">
-                        <slot :name="item.slotName" v-bind="scope"></slot>
-                    </template>
-                </el-table-column>
-                <!-- 时间类 -->
-                <el-table-column show-overflow-tooltip :fixed="item.fixed" :key="item.label"
-                    v-else-if="item.type === 'time'" align="center" :label="item.label" :width="item.width">
-                    <template #default="scope">
-                        {{ parseTime(scope.row[item.prop]) }}
-                    </template>
-                </el-table-column>
-                <!-- 普通渲染类 -->
-                <el-table-column :fixed="item.fixed" show-overflow-tooltip v-else-if="item.type === 'normal'"
-                    :key="item.label" v-bind="item" :prop="item.prop" :sortable="item.sortable || false"
-                    :column-key="item.prop" />
-                <!-- 倒序类 -->
-                <el-table-column :fixed="item.fixed" show-overflow-tooltip v-else-if="item.type === 'sortable'"
-                    :key="item.label" sortable v-bind="item" />
-            </template>
-        </el-table>
-    </div>
+	<div class="contenBox">
+		<div class="table-action flex-b">
+			<div class="customList">{{ contentConfig.header.title ? contentConfig.header.title : '' }}</div>
+			<div class="btns">
+				<slot name="button"></slot>
+			</div>
+		</div>
+		<el-table
+			:data="pageList"
+			style="width: 100%; max-height: 55vh; overflow: auto"
+			@selection-change="handleSelectionChange"
+			ref="multipleTableRef"
+			v-bind="props.contentConfig?.tableProps"
+			:row-key="getRowKeys"
+			v-loading="loading"
+		>
+			<template v-for="item in contentConfig.propsList">
+				<!-- 序号 -->
+				<el-table-column
+					:fixed="item.fixed"
+					v-if="item.type === 'index'"
+					type="index"
+					:key="item.prop"
+					center
+				>
+				</el-table-column>
+				<!-- 选择 -->
+				<el-table-column
+					:fixed="item.fixed"
+					type="selection"
+					width="55"
+					align="center"
+					:key="item.prop"
+					v-if="item.type === 'selection'"
+					:reserve-selection="true"
+				/>
+				<!-- 操作类 -->
+				<el-table-column
+					:key="item"
+					:fixed="item.fixed"
+					align="center"
+					v-bind="item"
+					v-else-if="item.type === 'handler'"
+				>
+					<template #default="scope">
+						<slot :name="item.slotName" v-bind="scope"></slot>
+					</template>
+				</el-table-column>
+
+				<!-- 自定义类 -->
+				<el-table-column
+					show-overflow-tooltip
+					:fixed="item.fixed"
+					:key="item.label"
+					v-else-if="item.type === 'custom'"
+					:label="item.label"
+					:width="item.width"
+					:prop="item.prop"
+					:sortable="item.sortable || false"
+					:column-key="item.prop"
+				>
+					<template #default="scope">
+						<slot :name="item.slotName" v-bind="scope"></slot>
+					</template>
+				</el-table-column>
+				<!-- 时间类 -->
+				<el-table-column
+					show-overflow-tooltip
+					:fixed="item.fixed"
+					:key="item.label"
+					v-else-if="item.type === 'time'"
+					align="center"
+					:label="item.label"
+					:width="item.width"
+				>
+					<template #default="scope">
+						{{ parseTime(scope.row[item.prop]) }}
+					</template>
+				</el-table-column>
+				<!-- 普通渲染类 -->
+				<el-table-column
+					:fixed="item.fixed"
+					show-overflow-tooltip
+					v-else-if="item.type === 'normal'"
+					:key="item.label"
+					v-bind="item"
+					:prop="item.prop"
+					:sortable="item.sortable || false"
+					:column-key="item.prop"
+				/>
+				<!-- 倒序类 -->
+				<el-table-column
+					:fixed="item.fixed"
+					show-overflow-tooltip
+					v-else-if="item.type === 'sortable'"
+					:key="item.label"
+					sortable
+					v-bind="item"
+				/>
+			</template>
+		</el-table>
+	</div>
 </template>
 
 <script setup lang="ts" name="content">
@@ -58,34 +110,34 @@ import useUserStore from '@/store/modules/user';
 const userStore = useUserStore().userInfo.userName === 'admin' ? '' : useUserStore().userInfo.userId;
 import { ref, watch } from 'vue';
 const props = withDefaults(
-    defineProps<{
-        contentConfig: {
-            pageName: string;
-            status: string;
-            createUser: string;
-            oneself: number;
-            header: {
-                title: string;
-            };
-            tableProps: any;
-            propsList: any[];
-            pageListParams?: {};
-            moneyTotal?: boolean;
-            energyConsumption?: boolean;
-            energyConsumptionType?: boolean;
-            energyMonery?: boolean;
-            moneyTotalType?: boolean;
-            customSubtotal?: boolean;
-        };
-        sizes?: number[];
-        showSummary?: boolean;
-        summaryMethod?: () => any;
-        subtotalNum?: number;
-    }>(),
-    {
-        sizes: [10, 50, 100, 300, 500],
-        customSubtotal: false,
-    }
+	defineProps<{
+		contentConfig: {
+			pageName: string;
+			status: string;
+			createUser: string;
+			oneself: number;
+			header: {
+				title: string;
+			};
+			tableProps: any;
+			propsList: any[];
+			pageListParams?: {};
+			moneyTotal?: boolean;
+			energyConsumption?: boolean;
+			energyConsumptionType?: boolean;
+			energyMonery?: boolean;
+			moneyTotalType?: boolean;
+			customSubtotal?: boolean;
+		};
+		sizes?: number[];
+		showSummary?: boolean;
+		summaryMethod?: () => any;
+		subtotalNum?: number;
+	}>(),
+	{
+		sizes: [10, 50, 100, 300, 500],
+		customSubtotal: false,
+	}
 );
 const emit = defineEmits(['handleSelect', 'pageChanged']);
 const loading = ref(true);
@@ -95,29 +147,32 @@ const systemStore = useSystemStore();
 
 // 获取列表
 async function fetchPageListData(queryInfo: any = {}) {
-    loading.value = true;
-    await systemStore
-        .getPageListDataAction(props.contentConfig.pageName, {
-            pageNum: systemStore.pageInfo.pageNum,
-            pageSize: systemStore.pageInfo.pageSize,
-            userId: userStore,
-            status: props.contentConfig.status,
-            createUser: props.contentConfig.createUser,
-            oneself: props.contentConfig.oneself,
-            ...queryInfo,
-            ...props.contentConfig.pageListParams,
-        })
-        .then(res => {
-            loading.value = false;
-        });
+	loading.value = true;
+	await systemStore
+		.getPageListDataAction(props.contentConfig.pageName, {
+			pageNum: systemStore.pageInfo.pageNum,
+			pageSize: systemStore.pageInfo.pageSize,
+			userId: userStore,
+			status: props.contentConfig.status,
+			createUser: props.contentConfig.createUser,
+			oneself: props.contentConfig.oneself,
+			...queryInfo,
+			...props.contentConfig.pageListParams,
+		})
+		.then(res => {
+			loading.value = false;
+		})
+		.finally(() => {
+			loading.value = false;
+		});
 }
 
 fetchPageListData();
 systemStore.$onAction(arg => {
-    if (arg.name === 'newPageDataAction' || arg.name === 'deletePageDataAction') {
-        systemStore.pageInfo.pageNum = 1;
-        systemStore.pageInfo.pageSize = 50;
-    }
+	if (arg.name === 'newPageDataAction' || arg.name === 'deletePageDataAction') {
+		systemStore.pageInfo.pageNum = 1;
+		systemStore.pageInfo.pageSize = 50;
+	}
 });
 
 const { pageList, pageTotalCount, resDate } = storeToRefs(systemStore);
@@ -133,94 +188,94 @@ const electricityTotalPrice = ref();
 const gasTotalPrice = ref();
 const waterTotalPrice = ref();
 watch(
-    () => resDate,
-    (newValue: any) => {
-        if (props.contentConfig?.energyConsumption === true) {
-            if (props.contentConfig?.energyConsumptionType === false) {
-                rowDate.value = newValue._object.resDate.otherEnergyList
-            } else {
-                electricityDosage.value = newValue._object.resDate.electricityDosage
-                gasDosage.value = newValue._object.resDate.gasDosage
-                waterDosage.value = newValue._object.resDate.waterDosage
-            }
-        } if (props.contentConfig?.energyMonery === true) {
-            electricityTotalPrice.value = newValue._object.resDate.electricityDosage
-            gasTotalPrice.value = newValue._object.resDate.gasDosage
-            waterTotalPrice.value = newValue._object.resDate.waterDosage
-        }
-
-    },
-    { deep: true }
+	() => resDate,
+	(newValue: any) => {
+		if (props.contentConfig?.energyConsumption === true) {
+			if (props.contentConfig?.energyConsumptionType === false) {
+				rowDate.value = newValue._object.resDate.otherEnergyList;
+			} else {
+				electricityDosage.value = newValue._object.resDate.electricityDosage;
+				gasDosage.value = newValue._object.resDate.gasDosage;
+				waterDosage.value = newValue._object.resDate.waterDosage;
+			}
+		}
+		if (props.contentConfig?.energyMonery === true) {
+			electricityTotalPrice.value = newValue._object.resDate.electricityDosage;
+			gasTotalPrice.value = newValue._object.resDate.gasDosage;
+			waterTotalPrice.value = newValue._object.resDate.waterDosage;
+		}
+	},
+	{ deep: true }
 );
 watch(
-    () => pageList,
-    (newValue: any) => {
-        if (clearFlag.value) {
-            multipleTableRef.value!.clearSelection();
-            subtotal.value = 0;
-            subNumber.value = 0;
-        }
-        clearFlag.value = true;
-    },
-    { deep: true }
+	() => pageList,
+	(newValue: any) => {
+		if (clearFlag.value) {
+			multipleTableRef.value!.clearSelection();
+			subtotal.value = 0;
+			subNumber.value = 0;
+		}
+		clearFlag.value = true;
+	},
+	{ deep: true }
 );
 // 处理选中状态
 const selectedItems = ref([] as any);
 
 const getRowKeys = row => {
-    return row.checkId;
+	return row.checkId;
 };
 
 // 清空多选
 function clearSelection() {
-    if (pageList) {
-        multipleTableRef.value!.clearSelection();
-    }
+	if (pageList) {
+		multipleTableRef.value!.clearSelection();
+	}
 }
 // 多选框切换
 function handleSelectionChange(e: any) {
-    emit('handleSelect', e);
+	emit('handleSelect', e);
 }
 
 // 暴露函数
 defineExpose({
-    clearSelection,
-    fetchPageListData,
+	clearSelection,
+	fetchPageListData,
 });
 </script>
 
 <style scoped lang="scss">
 .contenBox {
-    padding: 15px 20px 20px 20px;
-    margin-top: 20px;
-    background-color: #fff;
+	padding: 15px 20px 20px 20px;
+	margin-top: 20px;
+	background-color: #fff;
 
-    .table-action {
-        margin-bottom: 15px;
+	.table-action {
+		margin-bottom: 15px;
 
-        button {
-            margin-right: 10px;
-        }
-    }
+		button {
+			margin-right: 10px;
+		}
+	}
 
-    .ivu-table-header thead tr th {
-        background-color: #f0f9fe;
-    }
+	.ivu-table-header thead tr th {
+		background-color: #f0f9fe;
+	}
 }
 
 .customList {
-    color: #606266;
-    font-weight: 700;
+	color: #606266;
+	font-weight: 700;
 }
 
 .itemName {
-    margin: 0 10px 5px 10px;
+	margin: 0 10px 5px 10px;
 }
 
 .energyClass {
-    display: flex;
-    align-items: center;
-    flex-wrap: wrap;
-    flex: 1;
+	display: flex;
+	align-items: center;
+	flex-wrap: wrap;
+	flex: 1;
 }
 </style>

+ 162 - 142
src/components/components/pageSearch.vue

@@ -1,47 +1,69 @@
 <template>
-    <div class="search">
-        <!-- 1.1.表单输入 -->
-        <el-form :model="searchForm" ref="formRef"
-            :label-width="searchConfig.labelWidth ? searchConfig.labelWidth : 100" size="large">
-            <el-row :gutter="16">
-                <template v-for="item in searchConfig.formItems" :key="item.prop">
-                    <el-col :span="8">
-                        <el-form-item :label="item.label" :prop="item.prop">
-                            <template v-if="item.type === 'input'">
-                                <el-input v-model="searchForm[item.prop]" :placeholder="item.placeholder" />
-                            </template>
-                            <template v-if="item.type === 'select'">
-                                <el-select v-model="searchForm[item.prop]" :placeholder="item.placeholder"
-                                    :disabled="item.disabled">
-                                    <template v-for="i in item.options" :key="i.label">
-                                        <el-option :label="i.label" :value="i.value" />
-                                    </template>
-                                </el-select>
-                            </template>
-                            <template v-if="item.type === 'date-picker'">
-                                <el-date-picker type="daterange" range-separator="-" start-placeholder="开始时间"
-                                    end-placeholder="结束时间" v-model="searchForm[item.prop]"
-                                    @change="onDatePickerChange" />
-                            </template>
-                            <template v-if="item.type === 'date-month'">
-                                <el-date-picker v-model="searchForm[item.prop]" type="monthrange" range-separator="-"
-                                    :disabled-date="disabledDate" placeholder="请选择费用周期" start-placeholder="开始时间"
-                                    end-placeholder="结束时间" @change="getMonthDate($event, item.prop)" />
-                            </template>
-                        </el-form-item>
-                    </el-col>
-                </template>
-                <!-- 1.2.搜索按钮  -->
-                <el-col :span="spanLength" class="flex-b">
-                    <div></div>
-                    <div class="btns">
-                        <el-button size="default" @click="handleResetClick">重置</el-button>
-                        <el-button size="default" type="primary" @click="handleQueryClick">搜索</el-button>
-                    </div>
-                </el-col>
-            </el-row>
-        </el-form>
-    </div>
+	<div class="search">
+		<!-- 1.1.表单输入 -->
+		<el-form
+			:model="searchForm"
+			ref="formRef"
+			:label-width="searchConfig.labelWidth ? searchConfig.labelWidth : 100"
+			size="large"
+		>
+			<el-row :gutter="16">
+				<template v-for="item in searchConfig.formItems" :key="item.prop">
+					<el-col :span="8">
+						<el-form-item :label="item.label" :prop="item.prop">
+							<template v-if="item.type === 'input'">
+								<el-input v-model="searchForm[item.prop]" :placeholder="item.placeholder" />
+							</template>
+							<template v-if="item.type === 'select'">
+								<el-select
+									v-model="searchForm[item.prop]"
+									collapse-tags
+									filterable
+									:multiple="item.multiple ? true : false"
+									:placeholder="item.placeholder"
+									:disabled="item.disabled"
+								>
+									<template v-for="i in item.options" :key="i.label">
+										<el-option :label="i.label" :value="i.value" />
+									</template>
+								</el-select>
+							</template>
+							<template v-if="item.type === 'date-picker'">
+								<el-date-picker
+									type="daterange"
+									range-separator="-"
+									start-placeholder="开始时间"
+									end-placeholder="结束时间"
+									v-model="searchForm[item.prop]"
+									@change="onDatePickerChange"
+								/>
+							</template>
+							<template v-if="item.type === 'date-month'">
+								<el-date-picker
+									v-model="searchForm[item.prop]"
+									type="monthrange"
+									range-separator="-"
+									:disabled-date="disabledDate"
+									placeholder="请选择费用周期"
+									start-placeholder="开始时间"
+									end-placeholder="结束时间"
+									@change="getMonthDate($event, item.prop)"
+								/>
+							</template>
+						</el-form-item>
+					</el-col>
+				</template>
+				<!-- 1.2.搜索按钮  -->
+				<el-col :span="spanLength" class="flex-b">
+					<div></div>
+					<div class="btns">
+						<el-button size="default" @click="handleResetClick">重置</el-button>
+						<el-button size="default" type="primary" @click="handleQueryClick">查询</el-button>
+					</div>
+				</el-col>
+			</el-row>
+		</el-form>
+	</div>
 </template>
 
 <script setup lang="ts" name="page-search">
@@ -50,21 +72,21 @@ import { reactive, ref } from 'vue';
 import useSystemStore from '@/store/main';
 import useUserStore from '@/store/modules/user';
 import { parseTime } from '@/utils/ruoyi';
-import dayjs from "dayjs";
+import dayjs from 'dayjs';
 import { useSharedValueStore } from './sharedValueStore';
 
 const userStore = useUserStore().userInfo.userName === 'admin' ? '' : useUserStore().userInfo.userId;
 
 interface IProps {
-    searchConfig: {
-        pageName: string;
-        status: string;
-        createUser: string;
-        oneself: number;
-        formItems: any[];
-        labelWidth?: number;
-        pageListParams?: {};
-    };
+	searchConfig: {
+		pageName: string;
+		status: string;
+		createUser: string;
+		oneself: number;
+		formItems: any[];
+		labelWidth?: number;
+		pageListParams?: {};
+	};
 }
 const props = defineProps<IProps>();
 const emit = defineEmits(['datePickerChange', 'handleSure']);
@@ -73,7 +95,7 @@ const systemStore = useSystemStore();
 const sharedValueStore = useSharedValueStore();
 const { searchObj } = storeToRefs(systemStore);
 function updateValue(newVal: any) {
-    sharedValueStore.updateSharedValue(newVal);
+	sharedValueStore.updateSharedValue(newVal);
 }
 const pageNumValue = computed(() => sharedValueStore.pageNum);
 const pageSizeValue = computed(() => sharedValueStore.pageSize);
@@ -81,131 +103,129 @@ const pageNum = systemStore.pageInfo.pageNum;
 const pageSize = systemStore.pageInfo.pageSize;
 const energyDates = ref([]);
 // 禁用早于当前月份的选项
-const disabledDate = (date) => {
-    // 获取当前时间的年月
-    const current = new Date();
-    const currentYear = current.getFullYear();
-    const currentMonth = current.getMonth(); // 月份范围 0-11
-
-    // 传入的日期(月份选择器会传入该月的第一天,如 2023-10-01)
-    const year = date.getFullYear();
-    const month = date.getMonth();
-
-    // 判断逻辑:年份小于当前年,或同年且月份小于当前月
-    return year > currentYear || (year === currentYear && month >= currentMonth);
+const disabledDate = date => {
+	// 获取当前时间的年月
+	const current = new Date();
+	const currentYear = current.getFullYear();
+	const currentMonth = current.getMonth(); // 月份范围 0-11
+
+	// 传入的日期(月份选择器会传入该月的第一天,如 2023-10-01)
+	const year = date.getFullYear();
+	const month = date.getMonth();
+
+	// 判断逻辑:年份小于当前年,或同年且月份小于当前月
+	return year > currentYear || (year === currentYear && month >= currentMonth);
 };
 // 获取列表
 function fetchPageListData(queryInfo: any = {}) {
-
-    systemStore.pageInfo.pageNum = 1;
-    // 2.发生网络请求
-    systemStore.getPageListDataAction(props.searchConfig.pageName, {
-        pageNum: 1,
-        pageSize: pageSize,
-        userId: userStore,
-        status: props.searchConfig.status,
-        createUser: props.searchConfig.createUser,
-        oneself: props.searchConfig.oneself,
-        ...queryInfo,
-        ...props.searchConfig.pageListParams,
-    });
+	systemStore.pageInfo.pageNum = 1;
+	// 2.发生网络请求
+	systemStore.getPageListDataAction(props.searchConfig.pageName, {
+		pageNum: 1,
+		pageSize: pageSize,
+		userId: userStore,
+		status: props.searchConfig.status,
+		createUser: props.searchConfig.createUser,
+		oneself: props.searchConfig.oneself,
+		...queryInfo,
+		...props.searchConfig.pageListParams,
+	});
 }
 
 // 1.创建表单的数据
 const initialForm: any = {};
 for (const item of props.searchConfig.formItems) {
-    initialForm[item['prop']] = item['initialValue'] ?? '';
+	initialForm[item['prop']] = item['initialValue'] ?? '';
 }
 let searchForm = reactive(initialForm);
 
 if (props.searchConfig.status !== '') {
-    for (const item of props.searchConfig.formItems) {
-        if (item['prop'] === 'status') {
-            searchForm[item['prop']] = props.searchConfig.status;
-        }
-    }
+	for (const item of props.searchConfig.formItems) {
+		if (item['prop'] === 'status') {
+			searchForm[item['prop']] = props.searchConfig.status;
+		}
+	}
 }
 
 // 2.监听按钮的点击
 const formRef = ref<InstanceType<typeof ElForm>>();
 function handleResetClick() {
-    formRef.value?.resetFields();
-    fetchPageListData();
-    sharedValueStore.upDatePageNum(2);
+	formRef.value?.resetFields();
+	fetchPageListData();
+	sharedValueStore.upDatePageNum(2);
 }
 
 function parseTimeWithCheck(value) {
-    // 如果已经是期望的格式(8 位数字),则直接返回
-    if (/^\d{8}$/.test(value)) {
-        return value;
-    }
-    return parseTime(value)?.slice(0, 10).replaceAll('-', '');
+	// 如果已经是期望的格式(8 位数字),则直接返回
+	if (/^\d{8}$/.test(value)) {
+		return value;
+	}
+	return parseTime(value)?.slice(0, 10).replaceAll('-', '');
 }
 async function handleQueryClick() {
-    updateValue(searchForm);
-    props.searchConfig.formItems.forEach(item => {
-        if (item.type === 'date-picker' && searchForm[item.prop]) {
-            searchForm[item.prop][0] = parseTimeWithCheck(searchForm[item.prop][0]);
-            searchForm[item.prop][1] = parseTimeWithCheck(searchForm[item.prop][1]);
-        }
-    });
-    props.searchConfig.formItems.forEach(item => {
-        if (item.type === 'date-month' && searchForm[item.prop]) {
-            searchForm[item.prop][0] = dayjs(searchForm[item.prop][0]).format('YYYY-MM');
-            searchForm[item.prop][1] = dayjs(searchForm[item.prop][1]).format('YYYY-MM');
-        }
-    });
-    await fetchPageListData(searchForm);
-    searchObj.value = searchForm;
-    sharedValueStore.upDatePageNum(2);
-    emit('handleSure');
+	updateValue(searchForm);
+	props.searchConfig.formItems.forEach(item => {
+		if (item.type === 'date-picker' && searchForm[item.prop]) {
+			searchForm[item.prop][0] = parseTimeWithCheck(searchForm[item.prop][0]);
+			searchForm[item.prop][1] = parseTimeWithCheck(searchForm[item.prop][1]);
+		}
+	});
+	props.searchConfig.formItems.forEach(item => {
+		if (item.type === 'date-month' && searchForm[item.prop]) {
+			searchForm[item.prop][0] = dayjs(searchForm[item.prop][0]).format('YYYY-MM');
+			searchForm[item.prop][1] = dayjs(searchForm[item.prop][1]).format('YYYY-MM');
+		}
+	});
+	await fetchPageListData(searchForm);
+	searchObj.value = searchForm;
+	sharedValueStore.upDatePageNum(2);
+	emit('handleSure');
 }
 
 const spanLength = computed(() => {
-    const length = ref(0);
-    if (props.searchConfig.formItems.length % 3 === 0) {
-        length.value = 24;
-    } else if (props.searchConfig.formItems.length % 3 === 1) {
-        length.value = 16;
-    } else if (props.searchConfig.formItems.length % 3 === 2) {
-        length.value = 8;
-    }
-    return length.value;
+	const length = ref(0);
+	if (props.searchConfig.formItems.length % 3 === 0) {
+		length.value = 24;
+	} else if (props.searchConfig.formItems.length % 3 === 1) {
+		length.value = 16;
+	} else if (props.searchConfig.formItems.length % 3 === 2) {
+		length.value = 8;
+	}
+	return length.value;
 });
 
 const onDatePickerChange = (date: any) => {
-    emit('datePickerChange', date);
-};
-const getMonthDate = (ent: any, prop: any) => {
+	emit('datePickerChange', date);
 };
+const getMonthDate = (ent: any, prop: any) => {};
 defineExpose({
-    searchForm,
-    fetchPageListData,
-    handleResetClick,
-    handleQueryClick,
+	searchForm,
+	fetchPageListData,
+	handleResetClick,
+	handleQueryClick,
 });
 </script>
 
 <style scoped lang="scss">
 .search {
-    background-color: #fff;
-    // margin-top: 20px;
-    padding-bottom: 20px;
-    border-radius: 5px;
-
-    .el-form-item {
-        padding: 15px 20px;
-        margin-bottom: 0;
-    }
-
-    .el-select--large {
-        width: 22vw;
-    }
+	background-color: #fff;
+	// margin-top: 20px;
+	padding-bottom: 20px;
+	border-radius: 5px;
+
+	.el-form-item {
+		padding: 15px 20px;
+		margin-bottom: 0;
+	}
+
+	.el-select--large {
+		width: 22vw;
+	}
 }
 
 .btns {
-    margin-top: 19px;
-    text-align: right;
-    padding-right: 20px !important;
+	margin-top: 19px;
+	text-align: right;
+	padding-right: 20px !important;
 }
 </style>

+ 361 - 359
src/views/notificationListManage/components/detail.vue

@@ -1,190 +1,191 @@
 <template>
-    <div class="modal">
-        <el-dialog v-model="dialogVisible" :title="dialogTitle" :width="modalConfig.dialogWidth || '40%'" center
-            @close="handleExcel(ruleFormRef)" :close-on-click-modal="false">
-            <div class="form">
-                <el-form ref="ruleFormRef" :rules="modalConfig.formRules" :model="formData"
-                    :label-width="modalConfig.labelWidth || '100px'" size="large">
-                    <template v-for="item in modalConfig.formItems" :key="item.prop">
-                        <el-form-item :label="item.label" :prop="item.prop">
-                            <template v-if="item.type === 'input'">
-                                <el-input :disabled="item.disabled" v-model="formData[item.prop]"
-                                    :placeholder="item.placeholder" />
-                            </template>
-                            <template v-if="item.type === 'number'">
-                                <el-input v-model="formData[item.prop]" type="number" :min="0" :max="999999999999"
-                                    :disabled="item.disabled" :placeholder="item.placeholder"
-                                    @blur="onBlur(formData[item.prop], item.prop, item.numberType)" />
-                            </template>
-                            <template v-if="item.type === 'select'">
-                                <el-select v-model="formData[item.prop]" :placeholder="item.placeholder"
-                                    style="width: 100%" :disabled="item.disabled">
-                                    <template v-for="(val, index) in item.options" :key="index">
-                                        <el-option :value="val.value" :label="val.label" />
-                                    </template>
-                                </el-select>
-                            </template>
-                            <template v-if="item.type === 'date-picker'">
-                                <el-date-picker :type="item.dateType || 'daterange'" range-separator="-"
-                                    start-placeholder="开始时间" end-placeholder="结束时间" v-model="formData[item.prop]"
-                                    :disabled="item.disabled" />
-                            </template>
-                            <!-- 关联部门 -->
-                            <template v-if="item.type === 'deptId'">
-                                <el-tree-select v-model="formData.deptId" :data="deptOptions"
-                                    @change="dapartTreeChange(formData.deptId)"
-                                    :props="{ value: 'deptId', label: 'deptName', children: 'children' }"
-                                    value-key="deptId" placeholder="选择上级部门" style="width: 100%" check-strictly
-                                    clearable />
-                            </template>
-                            <!-- 能源单价标志 -->
-                            <template v-if="item.type === 'unitPriceSign'">
-                                <el-radio-group v-model="formData.unitPriceSign"
-                                    @change="unitPriceChange(formData.unitPriceSign)">
-                                    <el-radio v-for="item in unitPriceOptions" :value="item.value"
-                                        :label="item.value">{{ item.label }}</el-radio>
-                                </el-radio-group>
-                            </template>
-                            <!-- 能源列表 -->
-                            <template v-if="item.type === 'energyList'">
-                                <!-- 能源单价标志为否的时候 -->
-                                <el-tabs v-if="formData.unitPriceSign === '2'" v-model="customEnergy" type="card"
-                                    class="demo-tabs">
-                                    <el-tab-pane v-for="item in formData.energyList" :key="item.energyUnitPriceId"
-                                        :label="item.energyName" :name="item.energyUnitPriceId">
-                                        <!-- <el-input
-                                            v-model="item.valleyValueUnitPrice"
-                                            placeholder="请输入谷值单价"
-                                            type="number"
-                                            :min="0"
-                                            :max="999999999999"
-                                        >
-                                            <template #prepend>谷值单价(元)</template>
-</el-input>
-<el-input v-model="item.peakUnitPrice" placeholder="请输入峰值单价" type="number" :min="0" :max="999999999999">
-    <template #prepend>峰值单价(元)</template>
-</el-input> -->
-                                        <el-input v-model="item.averageUnitPrice" placeholder="请输入平均单价" type="number"
-                                            :min="0" :max="999999999999">
-                                            <template #prepend>平段单价(元)</template>
-                                        </el-input>
-                                    </el-tab-pane>
-                                </el-tabs>
+	<div class="modal">
+		<el-dialog
+			v-model="dialogVisible"
+			:title="dialogTitle"
+			:width="modalConfig.dialogWidth || '40%'"
+			center
+			@close="handleExcel(ruleFormRef)"
+			:close-on-click-modal="false"
+		>
+			<div class="form">
+				<el-form
+					ref="ruleFormRef"
+					:rules="modalConfig.formRules"
+					:model="formData"
+					:label-width="modalConfig.labelWidth || '100px'"
+					size="large"
+				>
+					<template v-for="item in modalConfig.formItems" :key="item.prop">
+						<el-form-item :label="item.label" :prop="item.prop">
+							<template v-if="item.type === 'release_unit'">
+								<el-input
+									:disabled="item.disabled"
+									v-model="formData[item.prop]"
+									:placeholder="item.placeholder"
+								/>
+							</template>
 
-                                <!-- 能源单价标志为是的时候 -->
-                                <el-tabs v-else v-model="initEnergy" type="card" class="demo-tabs">
-                                    <el-tab-pane v-for="item in initEnergyList" :key="item.energyUnitPriceId"
-                                        :label="item.energyName" :name="item.energyUnitPriceId">
-                                        <!-- <el-input
-                                            v-model="item.valleyValueUnitPrice"
-                                            placeholder="请输入谷值单价"
-                                            :disabled="true"
-                                        >
-                                            <template #prepend>谷值单价(元)</template>
-                                        </el-input>
-                                        <el-input v-model="item.peakUnitPrice" placeholder="请输入峰值单价" :disabled="true">
-                                            <template #prepend>峰值单价(元)</template>
-                                        </el-input> -->
-                                        <el-input v-model="item.averageUnitPrice" placeholder="请输入平均单价"
-                                            :disabled="true">
-                                            <template #prepend>平段单价(元)</template>
-                                        </el-input>
-                                    </el-tab-pane>
-                                </el-tabs>
-                            </template>
-                            <!-- 计算公式 -->
-                            <template v-if="item.type === 'calculationFormulaName'">
-                                <Formula :dictType="dictType" @getValue="getValue"></Formula>
-                            </template>
-                            <!-- 电能耗系统ID(加) -->
-                            <template v-if="item.type === 'energyElectricIds'">
-                                <el-select v-model="formData[item.prop]" multiple filterable remote reserve-keyword
-                                    :disabled="item.disabled" style="width: 100%">
-                                    <el-option v-for="item in elecEnerty" :key="item.value" :label="item.label"
-                                        :value="item.value" />
-                                </el-select>
-                            </template>
-                            <!-- 电能耗系统ID(减) -->
-                            <template v-if="item.type === 'energyElectricIdsMin'">
-                                <el-select v-model="formData[item.prop]" multiple filterable remote reserve-keyword
-                                    :disabled="item.disabled" style="width: 100%">
-                                    <el-option v-for="item in elecEnerty" :key="item.value" :label="item.label"
-                                        :value="item.value" />
-                                </el-select>
-                            </template>
-                            <!-- 气能耗系统ID(加) -->
-                            <template v-if="item.type === 'energyGasIds'">
-                                <el-select v-model="formData[item.prop]" multiple filterable remote reserve-keyword
-                                    :disabled="item.disabled" style="width: 100%">
-                                    <el-option v-for="item in gasEnerty" :key="item.value" :label="item.label"
-                                        :value="item.value" />
-                                </el-select>
-                            </template>
-                            <!-- 气能耗系统ID(减) -->
-                            <template v-if="item.type === 'energyGasIdsMin'">
-                                <el-select v-model="formData[item.prop]" multiple filterable remote reserve-keyword
-                                    :disabled="item.disabled" style="width: 100%">
-                                    <el-option v-for="item in gasEnerty" :key="item.value" :label="item.label"
-                                        :value="item.value" />
-                                </el-select>
-                            </template>
-                            <!-- 水能耗系统ID(加) -->
-                            <template v-if="item.type === 'energyWaterIds'">
-                                <el-select v-model="formData[item.prop]" multiple filterable remote reserve-keyword
-                                    :disabled="item.disabled" style="width: 100%">
-                                    <el-option v-for="item in waterEnerty" :key="item.value" :label="item.label"
-                                        :value="item.value" />
-                                </el-select>
-                            </template>
-                            <!-- 水能耗系统ID(减) -->
-                            <template v-if="item.type === 'energyWaterIdsMin'">
-                                <el-select v-model="formData[item.prop]" multiple filterable remote reserve-keyword
-                                    :disabled="item.disabled" style="width: 100%">
-                                    <el-option v-for="item in waterEnerty" :key="item.value" :label="item.label"
-                                        :value="item.value" />
-                                </el-select>
-                            </template>
-                        </el-form-item>
-                    </template>
-                </el-form>
-            </div>
-            <template #footer>
-                <span class="dialog-footer">
-                    <el-button @click="handleExcel(ruleFormRef)">取消</el-button>
-                    <el-button type="primary" @click="handleConfirmClick(ruleFormRef)">确定</el-button>
-                    <slot name="button"></slot>
-                </span>
-            </template>
-        </el-dialog>
-    </div>
+							<template v-if="item.type === 'input'">
+								<el-input
+									:disabled="item.disabled"
+									v-model="formData[item.prop]"
+									:placeholder="item.placeholder"
+								/>
+							</template>
+							<template v-if="item.type === 'textarea'">
+								<el-input
+									type="textarea"
+									:disabled="item.disabled"
+									v-model="formData[item.prop]"
+									:placeholder="item.placeholder"
+								/>
+							</template>
+							<template v-if="item.type === 'select'">
+								<el-select
+									v-model="formData[item.prop]"
+									:placeholder="item.placeholder"
+									style="width: 100%"
+									:disabled="item.disabled"
+								>
+									<template v-for="(val, index) in item.options" :key="index">
+										<el-option :value="val.value" :label="val.label" />
+									</template>
+								</el-select>
+							</template>
+							<template v-if="item.type === 'date-picker'">
+								<el-date-picker
+									:type="item.dateType || 'daterange'"
+									range-separator="-"
+									start-placeholder="开始时间"
+									end-placeholder="结束时间"
+									v-model="formData[item.prop]"
+									:disabled="item.disabled"
+								/>
+							</template>
+							<template v-if="item.type === 'date'">
+								<el-date-picker
+									type="date"
+									style="width: 100%"
+									:placeholder="item.placeholder"
+									v-model="formData[item.prop]"
+									:disabled="item.disabled"
+								/>
+							</template>
+
+							<!-- 通报类型 -->
+							<template v-if="item.type === 'report_type'">
+								<el-radio-group v-model="formData.report_type">
+									<el-radio v-for="item in reportTypeOptions" :value="item.value" :label="item.value">{{
+										item.label
+									}}</el-radio>
+								</el-radio-group>
+							</template>
+
+							<!-- 通报事项类型 -->
+							<template v-if="item.type === 'report_event_type'">
+								<el-radio-group v-model="formData.report_event_type">
+									<el-radio v-for="item in reportEventTypeOptions" :value="item.value" :label="item.value">{{
+										item.label
+									}}</el-radio>
+								</el-radio-group>
+							</template>
+
+							<!-- 发出单位 -->
+							<template v-if="item.type === 'send_unit'">
+								<el-select
+									v-model="formData[item.prop]"
+									:placeholder="item.placeholder"
+									filterable
+									style="width: 100%"
+									:disabled="item.disabled"
+								>
+									<template v-for="(val, index) in sendUnitOptions" :key="index">
+										<el-option :value="val.value" :label="val.label" />
+									</template>
+								</el-select>
+							</template>
+							<!-- 发布状态 -->
+							<template v-if="item.type === 'send_status'">
+								<el-select
+									v-model="formData[item.prop]"
+									:placeholder="item.placeholder"
+									style="width: 100%"
+									:disabled="item.disabled"
+								>
+									<template v-for="(val, index) in sendStatusOptions" :key="index">
+										<el-option :value="val.value" :label="val.label" />
+									</template>
+								</el-select>
+							</template>
+							<!-- 接收单位层级 -->
+							<template v-if="item.type === 'receive_unit_level'">
+								<el-select
+									v-model="formData[item.prop]"
+									:placeholder="item.placeholder"
+									style="width: 100%"
+									:disabled="item.disabled"
+								>
+									<template v-for="(val, index) in receiveUnitLevelOptions" :key="index">
+										<el-option :value="val.value" :label="val.label" />
+									</template>
+								</el-select>
+							</template>
+
+							<!-- 接收单位层级 -->
+							<template v-if="item.type === 'do_suggest'">
+								<el-select
+									v-model="formData[item.prop]"
+									:placeholder="item.placeholder"
+									filterable
+									style="width: 100%"
+									:disabled="item.disabled"
+								>
+									<template v-for="(val, index) in doSuggestOptions" :key="index">
+										<el-option :value="val.value" :label="val.label" />
+									</template>
+								</el-select>
+							</template>
+						</el-form-item>
+					</template>
+				</el-form>
+			</div>
+			<template #footer>
+				<span class="dialog-footer">
+					<el-button type="primary" @click="handleConfirmClick(ruleFormRef)">保存</el-button>
+					<el-button type="primary" @click="handleConfirmClick(ruleFormRef)">提交</el-button>
+					<el-button @click="handleExcel(ruleFormRef)">返回</el-button>
+					<slot name="button"></slot>
+				</span>
+			</template>
+		</el-dialog>
+	</div>
 </template>
 
 <script setup lang="ts" name="modal">
 import { reactive, ref } from 'vue';
-import type { FormInstance, FormRules } from 'element-plus';
+import type { FormInstance } from 'element-plus';
 import useSystemStore from '@/store/main';
 import { listDept } from '@/api/system/dept';
 import { ComponentInternalInstance } from 'vue';
-import cache from '@/plugins/cache';
-import Formula from '@/components/Formula/index.vue';
 import { outTypeList } from '@/libs/commonMeth';
 const elecEnerty = outTypeList('dh_ec_electricity');
 const gasEnerty = outTypeList('dh_ec_gas');
 const waterEnerty = outTypeList('dh_ec_water');
 // 定义props
 interface IProps {
-    modalConfig: {
-        pageName: string;
-        addTitle: string;
-        editTitle: string;
-        detailTitle: string;
-        dialogWidth: string;
-        labelWidth: string;
-        formItems: any[];
-        formRules: object;
-        pageListParams?: object; //新增一个对象,用来传给特殊的列表接口刷新页面(非必传)
-    };
-    otherInfo?: any;
+	modalConfig: {
+		pageName: string;
+		addTitle: string;
+		editTitle: string;
+		detailTitle: string;
+		dialogWidth: string;
+		labelWidth: string;
+		formItems: any[];
+		formRules: object;
+		pageListParams?: object; //新增一个对象,用来传给特殊的列表接口刷新页面(非必传)
+	};
+	otherInfo?: any;
 }
 
 const props = defineProps<IProps>();
@@ -197,245 +198,246 @@ const ruleFormRef = ref<FormInstance>();
 const systemStore = useSystemStore();
 
 const { pageDetailInfo, pageOperateType } = storeToRefs(systemStore);
-import { energyUnitPrice } from '@/api/leasingCompany';
 import { matchStringAndFormat } from '@/utils/commonMeth';
 
-// 获取字段
-const dictType = 'dh_company_independent_energy_costs_calculation_formula_value';
 // 组合两个字典数组
 let fieldNameList = ref([] as any);
-// 获取费用计算公式组件的数据
-const getValue = (calculationFormulaName, dictList, globalList) => {
-    formData.value.calculationFormulaName = calculationFormulaName;
-    fieldNameList.value = [...dictList.value, ...globalList.value];
-};
+
 // 父组件的值
 const formulaValue = ref('初始值') as any;
 provide('calculationFormulaName', formulaValue);
 
-// 重置数据
-const handleClearDate = () => {
-    // 重置父组件的值
-    formData.value.calculationFormulaName = '';
-    // 重置子组件的值
-    formulaValue.value = +new Date();
-};
-// ---------------------费用总计 结束----------------------
-
 onMounted(async () => {
-    await getListDept();
-    await getEnergyUnitPrice();
+	await getListDept();
 });
 
-// 获取能源单价
-const getEnergyUnitPrice = () => {
-    energyUnitPrice().then((res: any) => {
-        initEnergyList.value = res.rows;
-        initEnergy.value = res.rows[0].energyUnitPriceId;
-    });
-};
-
 // 部门树形数据
 const deptOptions = ref<any[]>([]);
 const departTree = ref([]);
 const { proxy } = getCurrentInstance() as ComponentInternalInstance;
 const getListDept = async () => {
-    // 获取关联部门列表
-    await listDept().then(response => {
-        departTree.value = response.data;
-        deptOptions.value = proxy!.handleTree(response.data, 'deptId');
-    });
-};
-// 部门树形的chang事件
-const dapartTreeChange = id => {
-    departTree.value.forEach((item: any) => {
-        if (item.deptId === id) {
-            formData.value.numberOfPersonnel = item.numberOfPersonnel;
-        }
-    });
-    console.log(formData.value.numberOfPersonnel);
+	// 获取关联部门列表
+	await listDept().then(response => {
+		departTree.value = response.data;
+		deptOptions.value = proxy!.handleTree(response.data, 'deptId');
+	});
 };
-// 能源单价标志
-const unitPriceOptions = [
-    {
-        label: '是',
-        value: '0',
-    },
-    {
-        label: '否',
-        value: '2',
-    },
+
+// 通报类型
+const reportTypeOptions = [
+	{
+		label: '内部',
+		value: 'inner',
+	},
+	{
+		label: '外部',
+		value: 'outer',
+	},
+];
+// 通报事项类型
+const reportEventTypeOptions = [
+	{
+		label: '信息告知类',
+		value: 'msg',
+	},
+	{
+		label: '协助处理类',
+		value: 'assist',
+	},
+];
+// 发布状态
+const sendStatusOptions = [
+	{
+		label: '待提交',
+		value: 'inner',
+	},
+	{
+		label: '可用',
+		value: 'outer',
+	},
+	{
+		label: '已废止',
+		value: 'outer',
+	},
+];
+// 发出单位
+const sendUnitOptions = [
+	{
+		label: '上海海事',
+		value: 'msg',
+	},
+	{
+		label: '广州海事',
+		value: 'assist',
+	},
+];
+// 接收单位层级
+const receiveUnitLevelOptions = [
+	{
+		label: '全部',
+		value: 'all',
+	},
+	{
+		label: '部级',
+		value: '1',
+	},
+	{
+		label: '省级',
+		value: '2',
+	},
+	{
+		label: '市级',
+		value: '3',
+	},
 ];
+// 接收单位层级
+const doSuggestOptions = [
+	{
+		label: '全部',
+		value: 'all',
+	},
+	{
+		label: '纳入诚信管理档案',
+		value: '1',
+	},
+	{
+		label: '按照规定处理并反馈',
+		value: '2',
+	},
+	{
+		label: '依法开展失信惩戒、纳入诚信管理档案',
+		value: '3',
+	},
+	{
+		label: '协助办理,并反馈结果',
+		value: '4',
+	},
+	{
+		label: '依法处置,并反馈结果',
+		value: '5',
+	},
+];
+
 // 水电燃气单价
 const customEnergy = ref('1');
 const initEnergyList = ref([] as any);
 const initEnergy = ref('1');
-// 能源单价标志的change事件
-const unitPriceChange = async (e: string) => {
-    customEnergy.value = '1';
-    initEnergy.value = '1';
-    console.log(formData.value.energyList);
 
-    await getEnergyUnitPrice();
-};
 // ----------------------------------------------------------------
 // 定义数据绑定
 const initialForm: any = {};
 for (const item of props.modalConfig.formItems) {
-    initialForm[item.prop] = item.initialValue ?? '';
+	initialForm[item.prop] = item.initialValue ?? '';
 }
 
 let formData = ref(JSON.parse(JSON.stringify(initialForm)));
 
 const dialogTitle = ref();
-const initData = ref({});
 // 新建或者编辑
 async function setDialogVisible(isNew: boolean = true, check: boolean = false) {
-    await getEnergyUnitPrice();
-    dialogVisible.value = true;
-    ruleFormRef.value?.resetFields();
-    // 清空数据
-    handleClearDate();
-    await nextTick();
-    if (!isNew) {
-        watch(pageDetailInfo, newVal => {
-            formData.value = pageDetailInfo.value;
-            console.log(formData.value);
-            // 赋值
-            formulaValue.value = formData.value.calculationFormulaName;
-        });
+	dialogVisible.value = true;
+	ruleFormRef.value?.resetFields();
+	await nextTick();
+	if (!isNew) {
+		watch(pageDetailInfo, newVal => {
+			formData.value = pageDetailInfo.value;
+			console.log(formData.value);
+			// 赋值
+			formulaValue.value = formData.value.calculationFormulaName;
+		});
 
-        customEnergy.value = '1';
-        initEnergy.value = '1';
+		customEnergy.value = '1';
+		initEnergy.value = '1';
 
-        // 判断如果不是新增的话就获取store中的详情
-        if (check) {
-            dialogTitle.value = props.modalConfig.detailTitle;
-            systemStore.getDetailType('detail');
-        } else {
-            dialogTitle.value = props.modalConfig.editTitle;
-            systemStore.getDetailType('edit');
-        }
-    } else {
-        props.modalConfig.formItems.map((m: any) => {
-            if (m.numberType === '2') {
-                if (m.porp === initialForm[m.porp]) {
-                    initialForm[m.prop] = (0.0).toFixed(2);
-                }
-            } else if (m.numberType === '1') {
-                if (m.porp === initialForm[m.porp]) {
-                    initialForm[m.prop] = Math.trunc(0);
-                }
-            }
-        });
-        formData.value = JSON.parse(JSON.stringify(initialForm));
-        await nextTick();
-        setTimeout(() => {
-            formData.value.energyList = initEnergyList.value;
-        }, 500);
-        customEnergy.value = '1';
-        initEnergy.value = '1';
-        dialogTitle.value = props.modalConfig.addTitle;
-        systemStore.detailPageEval(initialForm);
-        systemStore.getDetailType('add');
-    }
-    isEdit.value = !isNew;
+		// 判断如果不是新增的话就获取store中的详情
+		if (check) {
+			dialogTitle.value = props.modalConfig.detailTitle;
+			systemStore.getDetailType('detail');
+		} else {
+			dialogTitle.value = props.modalConfig.editTitle;
+			systemStore.getDetailType('edit');
+		}
+	} else {
+		props.modalConfig.formItems.map((m: any) => {
+			if (m.numberType === '2') {
+				if (m.porp === initialForm[m.porp]) {
+					initialForm[m.prop] = (0.0).toFixed(2);
+				}
+			} else if (m.numberType === '1') {
+				if (m.porp === initialForm[m.porp]) {
+					initialForm[m.prop] = Math.trunc(0);
+				}
+			}
+		});
+		formData.value = JSON.parse(JSON.stringify(initialForm));
+		await nextTick();
+		setTimeout(() => {
+			formData.value.energyList = initEnergyList.value;
+		}, 500);
+		dialogTitle.value = props.modalConfig.addTitle;
+		systemStore.detailPageEval(initialForm);
+		systemStore.getDetailType('add');
+	}
+	isEdit.value = !isNew;
 }
 // 点击确定
 function handleConfirmClick(formEl: FormInstance | undefined) {
-    if (!formEl) return;
-    formEl.validate((valid, fields) => {
-        if (valid) {
-            // 费用计算公式数据处理
-            // formData.value.calculationFormula = formData.value.calculationFormulaName
-            formData.value.calculationFormula = matchStringAndFormat(
-                formData.value.calculationFormulaName,
-                fieldNameList.value
-            );
-            dialogVisible.value = false;
-            let data = { ...formData.value };
-            data.energyList.forEach((item, index) => {
-                initEnergyList.value.forEach((row, d) => {
-                    if (index === d) {
-                        item.energyUnitPriceId = row.energyUnitPriceId;
-                    }
-                });
-            });
-            if (props.otherInfo) {
-                data = { ...data, ...props.otherInfo };
-            }
-            if (!isEdit.value) {
-                systemStore.newPageDataAction(
-                    props.modalConfig.pageName,
-                    data,
-                    props.modalConfig.pageListParams
-                );
-            } else {
-                if (pageOperateType.value === 'edit') {
-                    systemStore.editPageDataAction(
-                        props.modalConfig.pageName,
-                        data,
-                        props.modalConfig.pageListParams
-                    );
-                }
-            }
-        } else {
-            console.log('error submit!', fields);
-        }
-    });
+	if (!formEl) return;
+	formEl.validate((valid, fields) => {
+		if (valid) {
+			// 费用计算公式数据处理
+			// formData.value.calculationFormula = formData.value.calculationFormulaName
+			formData.value.calculationFormula = matchStringAndFormat(
+				formData.value.calculationFormulaName,
+				fieldNameList.value
+			);
+			dialogVisible.value = false;
+			let data = { ...formData.value };
+			data.energyList.forEach((item, index) => {
+				initEnergyList.value.forEach((row, d) => {
+					if (index === d) {
+						item.energyUnitPriceId = row.energyUnitPriceId;
+					}
+				});
+			});
+			if (props.otherInfo) {
+				data = { ...data, ...props.otherInfo };
+			}
+			if (!isEdit.value) {
+				systemStore.newPageDataAction(props.modalConfig.pageName, data, props.modalConfig.pageListParams);
+			} else {
+				if (pageOperateType.value === 'edit') {
+					systemStore.editPageDataAction(props.modalConfig.pageName, data, props.modalConfig.pageListParams);
+				}
+			}
+		} else {
+			console.log('error submit!', fields);
+		}
+	});
 }
 // 取消
 function handleExcel(formEl: FormInstance | undefined) {
-    dialogVisible.value = false;
-    if (!formEl) return;
-    formEl.resetFields();
+	dialogVisible.value = false;
+	if (!formEl) return;
+	formEl.resetFields();
 }
 
 // 获取详情
 function onPageDetail(urlId: number | [] | string) {
-    systemStore.detailPageDataAction(props.modalConfig.pageName, urlId);
+	systemStore.detailPageDataAction(props.modalConfig.pageName, urlId);
 }
 
-function onBlur(e: any, prop: any, type: any) {
-    let a = 0;
-    if (type === '1') {
-        if (e < 0) {
-            e = 0;
-        } else if (e > 999999999999999) {
-            e = 999999999999999;
-        }
-        a = Math.trunc(e);
-        for (const item of props.modalConfig.formItems) {
-            if (item.type === 'number') {
-                if (prop === item.prop) {
-                    formData.value[item.prop] = a;
-                }
-            }
-        }
-    } else if (type === '2') {
-        if (e < 0) {
-            e = 0.0;
-        } else if (e > 999999999999999) {
-            e = 999999999999999.0;
-        }
-        a = Number(Number(e).toFixed(2));
-        for (const item of props.modalConfig.formItems) {
-            if (item.type === 'number') {
-                if (prop === item.prop) {
-                    formData.value[item.prop] = a;
-                }
-            }
-        }
-    }
-}
 defineExpose({
-    setDialogVisible,
-    onPageDetail,
+	setDialogVisible,
+	onPageDetail,
 });
 </script>
 
-<style scoped lang="scss">
+<style>
 .form {
-    padding: 10px 30px;
+	padding: 10px 30px;
+}
+.form .el-input__wrapper {
+	width: 100% !important;
 }
 </style>

+ 19 - 28
src/views/notificationListManage/config/content.config.ts

@@ -1,32 +1,23 @@
 const contentConfig = {
-    pageName: 'rentalCompany',
-    header: {
-        title: '费用输入列表',
-    },
-    propsList: [
-        // { type: 'index', label: '序号' },
-        { type: 'normal', label: '公司编码', prop: 'rentalCompanyCode', fixed: true },
-        { type: 'normal', label: '公司名称', prop: 'rentalCompanyName', width: 140 },
-        { type: 'normal', label: '关联部门', prop: 'deptName', width: 140 },
-        // { type: 'normal', label: '人员数', prop: 'numberOfPersonnel', width: 80 },
-        // { type: 'normal', label: '密集架节数', prop: 'shelving', width: 90 },
-        // { type: 'custom', label: '水单价(元)', slotName: 'water', prop: 'water', width: 220 },
-        // { type: 'custom', label: '电单价(元)', slotName: 'electric', prop: 'electric', width: 220 },
-        // { type: 'custom', label: '燃气单价(元)', slotName: 'coal', prop: 'coal', width: 220 },
-        { type: 'normal', label: '电能耗系统(加)', prop: 'energyElectricName', width: 140 },
-        { type: 'normal', label: '电能耗系统(减)', prop: 'energyElectricNameMin', width: 140 },
-        // { type: 'normal', label: '电能耗占比(%)', prop: 'energyElectricExpense', width: 140 },
-        { type: 'normal', label: '气能耗系统(加)', prop: 'energyGasName', width: 140 },
-        { type: 'normal', label: '气能耗系统(减)', prop: 'energyGasNameMin', width: 140 },
-        // { type: 'normal', label: '气能耗占比(%)', prop: 'energyGasExpense', width: 140 },
-        { type: 'normal', label: '水能耗系统(加)', prop: 'energyWaterName', width: 140 },
-        { type: 'normal', label: '水能耗系统(减)', prop: 'energyWaterNameMin', width: 140 },
-        // { type: 'normal', label: '水能耗占比(%)', prop: 'energyWaterExpense', width: 140 },
-        { type: 'normal', label: '创建时间', prop: 'createTime', width: 180 },
-        { type: 'normal', label: '修改时间', prop: 'updateTime', width: 180 },
-        { type: 'normal', label: '备注', prop: 'notes', width: 140 },
-        { type: 'handler', label: '操作', slotName: 'operate', width: 180 },
-    ],
+	pageName: 'rentalCompany',
+	header: {
+		title: '违法信息通报事项清单列表',
+	},
+	propsList: [
+		{ type: 'index', label: '序号' },
+		{ type: 'normal', label: '发布单位', prop: 'release_unit', fixed: true },
+		{ type: 'normal', label: '通报类型', prop: 'report_type', width: 140 },
+		{ type: 'normal', label: '通报事项类别', prop: 'report_event_type', width: 140 },
+		{ type: 'normal', label: '通报事项', prop: 'report_event', width: 80 },
+		{ type: 'normal', label: '通报依据', prop: 'report_base', width: 90 },
+		{ type: 'custom', label: '处置建议', prop: 'do_suggest', width: 220 },
+		{ type: 'custom', label: '发出单位', prop: 'send_unit', width: 220 },
+		{ type: 'custom', label: '接收单位', prop: 'receive_unit', width: 220 },
+		{ type: 'normal', label: '发布状态', prop: 'send_status', width: 140 },
+		{ type: 'normal', label: '创建日期', prop: 'create_date', width: 140 },
+		{ type: 'normal', label: '创建人员', prop: '创建人员', width: 140 },
+		{ type: 'handler', label: '操作', slotName: 'operate', width: 180 },
+	],
 };
 
 export default contentConfig;

+ 95 - 130
src/views/notificationListManage/config/detail.config.ts

@@ -1,134 +1,99 @@
 const modalConfig = {
-    pageName: 'rentalCompany',
-    addTitle: '新建租赁公司',
-    editTitle: '编辑租赁公司',
-    labelWidth: '150px',
-    formRules: {
-        rentalCompanyCode: [{ required: true, message: '请输入公司编码', trigger: 'change' }],
-        rentalCompanyName: [{ required: true, message: '请输入公司名称', trigger: 'change' }],
-        deptId: [{ required: true, message: '请选择关联部门', trigger: 'change' }],
-        calculationFormulaName: [{ required: true, message: '请输入费用计算公式', trigger: 'change' }],
-        // energyElectricIds: [{ required: true, message: '电能耗系统ID不能为空', trigger: 'select' }],
-        // energyGasIds: [{ required: true, message: '气能耗系统ID不能为空', trigger: 'select' }],
-        // energyWaterIds: [{ required: true, message: '水能耗系统ID不能为空', trigger: 'select' }],
-    },
-    formItems: [
-        {
-            label: '公司编码',
-            prop: 'rentalCompanyCode',
-            type: 'input',
-            placeholder: '请输入公司编码',
-        },
-        {
-            label: '公司名称',
-            prop: 'rentalCompanyName',
-            type: 'input',
-            placeholder: '请输入公司名称',
-        },
-        {
-            label: '关联部门',
-            prop: 'deptId',
-            type: 'deptId',
-            placeholder: '请选择关联部门',
-        },
-        // {
-        //     label: '公司人员数',
-        //     prop: 'numberOfPersonnel',
-        //     type: 'number',
-        //     numberType: '1',
-        //     placeholder: '请输入人员数',
-        // },
-        // {
-        //     label: '密集架节数',
-        //     prop: 'shelving',
-        //     type: 'number',
-        //     numberType: '1',
-        //     initialValue: 0,
-        //     placeholder: '请输入密集架节数',
-        // },
-        // {
-        //     label: '能源单价标志',
-        //     prop: 'unitPriceSign',
-        //     type: 'unitPriceSign',
-        //     initialValue: '0',
-        // },
-        // {
-        //     label: '能源列表',
-        //     prop: 'energyList',
-        //     type: 'energyList',
-        // },
-        {
-            label: '电能耗系统ID(加)',
-            prop: 'energyElectricIds',
-            type: 'energyElectricIds',
-            placeholder: '请输入电能耗系统ID',
-        },
-        {
-            label: '电能耗系统ID(减)',
-            prop: 'energyElectricIdsMin',
-            type: 'energyElectricIdsMin',
-            placeholder: '请输入电能耗系统ID',
-        },
-        // {
-        //     label: '电能耗占比(%)',
-        //     prop: 'energyElectricExpense',
-        //     type: 'number',
-        //     numberType: '1',
-        //     initialValue: 100,
-        //     placeholder: '请输入电能耗占比',
-        // },
-        {
-            label: '气能耗系统ID(加)',
-            prop: 'energyGasIds',
-            type: 'energyGasIds',
-            placeholder: '请输入气能耗系统ID',
-        },
-        {
-            label: '气能耗系统ID(减)',
-            prop: 'energyGasIdsMin',
-            type: 'energyGasIdsMin',
-            placeholder: '请输入气能耗系统ID',
-        },
-        // {
-        //     label: '气能耗占比(%)',
-        //     prop: 'energyGasExpense',
-        //     type: 'number',
-        //     initialValue: 100,
-        //     numberType: '1',
-        //     placeholder: '请输入气能耗占比',
-        // },
-        {
-            label: '水能耗系统ID(加)',
-            prop: 'energyWaterIds',
-            type: 'energyWaterIds',
-            placeholder: '请输入水能耗系统ID',
-        },
-        {
-            label: '水能耗系统ID(减)',
-            prop: 'energyWaterIdsMin',
-            type: 'energyWaterIdsMin',
-            placeholder: '请输入水能耗系统ID',
-        },
-        // {
-        //     label: '水能耗占比(%)',
-        //     prop: 'energyWaterExpense',
-        //     type: 'number',
-        //     numberType: '1',
-        //     initialValue: 100,
-        //     placeholder: '请输入水能耗占比',
-        // },
-        {
-            label: '备注',
-            prop: 'notes',
-            type: 'input',
-            placeholder: '请输入备注',
-        },
-        {
-            label: '天费用计算公式',
-            prop: 'calculationFormulaName',
-            type: 'calculationFormulaName',
-        },
-    ],
+	pageName: 'rentalCompany',
+	addTitle: '新建违法信息通报事项清单管理',
+	editTitle: '编辑违法信息通报事项清单管理',
+	labelWidth: '150px',
+	dialogWidth: '60%',
+	formRules: {
+		report_type: [{ required: true, message: '请选择通报类型', trigger: 'select' }],
+		report_event_type: [{ required: true, message: '请选择通报类型', trigger: 'select' }],
+		report_event: [{ required: true, message: '请输入通报事项', trigger: 'change' }],
+		report_base: [{ required: true, message: '请输入通报依据', trigger: 'change' }],
+		base_content: [{ required: true, message: '请输入依据内容', trigger: 'change' }],
+		send_unit: [{ required: true, message: '请选择发出单位', trigger: 'select' }],
+		receive_unit: [{ required: true, message: '请选择接收单位', trigger: 'change' }],
+		receive_unit_level: [{ required: true, message: '请选择接收单位层级', trigger: 'select' }],
+		do_suggest: [{ required: true, message: '请选择处置建议', trigger: 'select' }],
+	},
+	formItems: [
+		{
+			label: '发布单位',
+			prop: 'release_unit',
+			type: 'release_unit',
+			placeholder: '请输入发布单位',
+		},
+		{
+			label: '创建时间',
+			prop: 'create_data',
+			type: 'date',
+			placeholder: '请选择创建时间',
+		},
+		{
+			label: '创建人员',
+			prop: 'creater',
+			type: 'input',
+			placeholder: '请输入创建人员',
+		},
+		{
+			label: '通报类型',
+			prop: 'report_type',
+			type: 'report_type',
+			placeholder: '请选择通报类型',
+		},
+		{
+			label: '通报事项类别',
+			prop: 'report_event_type',
+			type: 'report_event_type',
+			placeholder: '请选择通报事项类别',
+		},
+		{
+			label: '发布状态',
+			prop: 'send_status',
+			type: 'send_status',
+		},
+		{
+			label: '通报事项',
+			prop: 'report_event',
+			type: 'textarea',
+			placeholder: '根据要求,请输入通报内容,内容200字以内。',
+		},
+		{
+			label: '通报依据',
+			prop: 'report_base',
+			type: 'textarea',
+			placeholder: '根据要求,请输入通报依据,内容200字以内。',
+		},
+		{
+			label: '依据内容',
+			prop: 'base_content',
+			type: 'textarea',
+			placeholder: '根据要求,请输入通报内容,内容1000字以内',
+		},
+		{
+			label: '发出单位',
+			prop: 'send_unit',
+			type: 'send_unit',
+			placeholder: '请选择发出单位',
+		},
+		{
+			label: '接收单位',
+			prop: 'receive_unit',
+			type: 'input',
+			placeholder: ' 请输入接收单位',
+		},
+		{
+			label: '接收单位层级',
+			prop: 'receive_unit_level',
+			type: 'receive_unit_level',
+			placeholder: '请选择接收单位层级',
+		},
+		{
+			label: '处置建议',
+			prop: 'do_suggest',
+			type: 'do_suggest',
+			placeholder: '请选择处置建议',
+		},
+	],
 };
 
 export default modalConfig;

+ 165 - 19
src/views/notificationListManage/config/search.config.ts

@@ -8,35 +8,181 @@ const searchConfig = {
 	formItems: [
 		{
 			label: '通报类型',
-			prop: 'status',
+			prop: 'report_type',
 			type: 'select',
-			options: [] as Array<Inew>,
-			placeholder: '请选择状态',
+			multiple: true,
+			options: [
+				{
+					label: '全部',
+					value: 'all',
+				},
+				{
+					label: '内部',
+					value: 'inner',
+				},
+				{
+					label: '外部',
+					value: 'outer',
+				},
+			] as Array<Inew>,
+			placeholder: '请选择通报类型',
 		},
 		{
-			label: '公司编码',
-			prop: 'rentalCompanyCode',
-			type: 'input',
-			placeholder: '请输入公司编码',
+			label: '通报事项类别',
+			prop: 'report_event_type',
+			type: 'select',
+			multiple: true,
+			options: [
+				{
+					label: '全部',
+					value: 'all',
+				},
+				{
+					label: '信息告知类',
+					value: 'msg',
+				},
+				{
+					label: '协助处理类',
+					value: 'assist',
+				},
+			] as Array<Inew>,
+			placeholder: '请选择通报事项类别',
+		},
+		{
+			label: '通报事项',
+			prop: 'report_event',
+			type: 'select',
+			multiple: true,
+			options: [
+				{
+					label: '全部',
+					value: 'all',
+				},
+				{
+					label: '信息告知类',
+					value: 'msg',
+				},
+				{
+					label: '协助处理类',
+					value: 'assist',
+				},
+			] as Array<Inew>,
+			placeholder: '请选择通报事项',
+		},
+		{
+			label: '通报依据',
+			prop: 'report_base',
+			type: 'select',
+			multiple: true,
+			options: [
+				{
+					label: '全部',
+					value: 'all',
+				},
+				{
+					label: '信息告知类',
+					value: 'msg',
+				},
+				{
+					label: '协助处理类',
+					value: 'assist',
+				},
+			] as Array<Inew>,
+			placeholder: '请选择通报依据',
 		},
 		{
-			label: '公司名称',
-			prop: 'rentalCompanyName',
-			type: 'input',
-			placeholder: '请输入公司名称',
+			label: '处置建议',
+			prop: 'do_suggest',
+			type: 'select',
+			multiple: true,
+			options: [
+				{
+					label: '全部',
+					value: 'all',
+				},
+				{
+					label: '纳入诚信管理档案',
+					value: '1',
+				},
+				{
+					label: '按照规定处理并反馈',
+					value: '2',
+				},
+				{
+					label: '依法开展失信惩戒、纳入诚信管理档案',
+					value: '3',
+				},
+				{
+					label: '协助办理,并反馈结果',
+					value: '4',
+				},
+				{
+					label: '依法处置,并反馈结果',
+					value: '5',
+				},
+			] as Array<Inew>,
+			placeholder: '请选择处置建议',
 		},
 		{
-			label: '关联部门',
-			prop: 'deptName',
-			type: 'input',
-			placeholder: '请输入关联部门',
+			label: '发出单位',
+			prop: 'send_unit',
+			type: 'select',
+			multiple: true,
+			options: [
+				{
+					label: '全部',
+					value: 'all',
+				},
+				{
+					label: '上海海事',
+					value: 'msg',
+				},
+				{
+					label: '广州海事',
+					value: 'assist',
+				},
+			] as Array<Inew>,
+			placeholder: '请选择发出单位',
 		},
 		{
-			label: '创建时间',
-			prop: 'createDate',
-			type: 'date-picker',
-			placeholder: '请选择创建时间',
+			label: '接收单位',
+			prop: 'receive_unit',
+			type: 'select',
+			multiple: true,
+			options: [
+				{
+					label: '全部',
+					value: 'all',
+				},
+				{
+					label: '上海海事',
+					value: 'msg',
+				},
+				{
+					label: '广州海事',
+					value: 'assist',
+				},
+			] as Array<Inew>,
+			placeholder: '请选择接收单位',
 		},
+		// {
+		// 	label: '公司名称',
+		// 	prop: 'rentalCompanyName',
+		// 	type: 'input',
+		// 	placeholder: '请输入公司名称',
+		// },
+		// {
+		// 	label: '关联部门',
+		// 	prop: 'deptName',
+		// 	type: 'input',
+		// 	placeholder: '请输入关联部门',
+		// },
+		// {
+		// 	label: '创建时间',
+		// 	prop: 'createDate',
+		// 	type: 'date-picker',
+		// 	placeholder: '请选择创建时间',
+		// },
 	],
 };
 

+ 91 - 103
src/views/notificationListManage/index.vue

@@ -1,73 +1,61 @@
 <template>
-    <div class="sensitive-words">
-        <pageSearch ref="searchTableRef" :searchConfig="searchConfig" />
+	<div class="sensitive-words">
+		<pageSearch ref="searchTableRef" :searchConfig="searchConfig" />
 
-        <pageContent ref="tableListRef" :total="total" :contentConfig="contentConfig" :pageList="tableData">
-            <template #button>
-                <el-button type="primary" @click="handleAdd()"
-                    v-hasPermi="['business:rentalCompany:add']">新增</el-button>
-            </template>
-            <!-- 水 -->
-            <template #water="scope">
-                <div class="flex">
-                    <!-- <div class="mr5">
-                        谷值:<span>{{ scope.row.energyList[0].peakUnitPrice }}</span>
-                    </div>
-                    <div class="mr5">
-                        峰值:<span>{{ scope.row.energyList[0].valleyValueUnitPrice }}</span>
-                    </div> -->
-                    <div>
-                        平段单价:<span>{{ scope.row.energyList[0].averageUnitPrice }}</span>
-                    </div>
-                </div>
-            </template>
-            <!-- 电 -->
-            <template #electric="scope">
-                <div class="flex">
-                    <!-- <div class="mr5">
-                        谷值:<span>{{ scope.row.energyList[1].peakUnitPrice }}</span>
-                    </div>
-                    <div class="mr5">
-                        峰值:<span>{{ scope.row.energyList[1].valleyValueUnitPrice }}</span>
-                    </div> -->
-                    <div>
-                        平段单价:<span>{{ scope.row.energyList[1].averageUnitPrice }}</span>
-                    </div>
-                </div>
-            </template>
-            <!-- 燃气 -->
-            <template #coal="scope">
-                <div class="flex">
-                    <!-- <div class="mr5">
-                        谷值:<span>{{ scope.row.energyList[2].peakUnitPrice }}</span>
-                    </div>
-                    <div class="mr5">
-                        峰值:<span>{{ scope.row.energyList[2].valleyValueUnitPrice }}</span>
-                    </div> -->
-                    <div>
-                        平段单价:<span>{{ scope.row.energyList[2].averageUnitPrice }}</span>
-                    </div>
-                </div>
-            </template>
-            <template #operate="scope">
-                <el-button type="primary" link @click="handleEdit(scope.row.rentalCompanyId)"
-                    v-hasPermi="['business:rentalCompany:edit']">
-                    编辑
-                </el-button>
-                <el-button type="primary" link @click="handleDelete(scope.row.rentalCompanyId)"
-                    v-hasPermi="['business:rentalCompany:remove']">
-                    删除
-                </el-button>
-            </template>
-        </pageContent>
-        <pageDetail :modalConfig="detailConfig" ref="modalRef"> </pageDetail>
-    </div>
+		<pageContent ref="tableListRef" :total="total" :contentConfig="contentConfig" :pageList="tableData">
+			<template #button>
+				<el-button type="primary" @click="handleAdd()">新增</el-button>
+			</template>
+			<template #operate="scope">
+				<el-button
+					type="primary"
+					link
+					@click="handleEdit(scope.row.rentalCompanyId)"
+					v-hasPermi="['business:rentalCompany:edit']"
+				>
+					查看
+				</el-button>
+				<el-button
+					type="primary"
+					link
+					@click="handleEdit(scope.row.rentalCompanyId)"
+					v-hasPermi="['business:rentalCompany:edit']"
+				>
+					编辑
+				</el-button>
+				<el-button
+					type="primary"
+					link
+					@click="handleDelete(scope.row.rentalCompanyId)"
+					v-hasPermi="['business:rentalCompany:remove']"
+				>
+					删除
+				</el-button>
+				<el-button
+					type="primary"
+					link
+					@click="handleDelete(scope.row.rentalCompanyId)"
+					v-hasPermi="['business:rentalCompany:remove']"
+				>
+					启用
+				</el-button>
+				<el-button
+					type="primary"
+					link
+					@click="handleDelete(scope.row.rentalCompanyId)"
+					v-hasPermi="['business:rentalCompany:remove']"
+				>
+					废止
+				</el-button>
+			</template>
+		</pageContent>
+		<pageDetail :modalConfig="detailConfig" ref="modalRef"> </pageDetail>
+	</div>
 </template>
 
 <script setup lang="ts">
 import { ComponentInternalInstance } from 'vue';
 // import { useRouter } from 'vue-router';
-import router from '@/router';
 import contentConfig from './config/content.config';
 import pageContent from '@/components/components/pageContent.vue';
 import searchConfig from './config/search.config';
@@ -87,74 +75,74 @@ const tableListRef = ref();
 // 操作弹框
 import usePageModal from '@/components/components/hooks/usePageDetails';
 const { modalRef, handleNewDataClick, handleEditDataClick, handleCheckDataClick, handlePageDetail } =
-    usePageModal();
+	usePageModal();
 
 const handleEdit = async (id: string) => {
-    await handlePageDetail(id);
-    await handleEditDataClick();
+	await handlePageDetail(id);
+	await handleEditDataClick();
 };
 
 // 新增按钮
 const handleAdd = () => {
-    handleNewDataClick();
+	handleNewDataClick();
 };
 const searchTableRef = ref();
 const onClickDeleta = async (row: any) => {
-    ElMessageBox.confirm('确认删除此条数据吗?', '删除', {
-        confirmButtonText: '确认',
-        cancelButtonText: '取消',
-        type: 'warning',
-    }).then(() => {
-        // 删除后的回调
-    });
+	ElMessageBox.confirm('确认删除此条数据吗?', '删除', {
+		confirmButtonText: '确认',
+		cancelButtonText: '取消',
+		type: 'warning',
+	}).then(() => {
+		// 删除后的回调
+	});
 };
 // 删除按钮
 function handleDelete(value: any) {
-    ElMessageBox.confirm('是否删除这条数据?', '删除提示', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        type: 'warning',
-    })
-        .then(() => {
-            systemStore.deletePageDataAction(contentConfig.pageName, value);
-        })
-        .catch(() => {
-            ElMessage({
-                type: 'info',
-                message: '取消删除',
-            });
-        });
+	ElMessageBox.confirm('是否删除这条数据?', '删除提示', {
+		confirmButtonText: '确定',
+		cancelButtonText: '取消',
+		type: 'warning',
+	})
+		.then(() => {
+			systemStore.deletePageDataAction(contentConfig.pageName, value);
+		})
+		.catch(() => {
+			ElMessage({
+				type: 'info',
+				message: '取消删除',
+			});
+		});
 }
 
 // 筛选-状态赋值
 async function searchItem() {
-    searchConfig.formItems.forEach(item => {
-        if (item.prop === 'status') {
-            // item.options = searchList.value;
-        }
-    });
+	searchConfig.formItems.forEach(item => {
+		if (item.prop === 'status') {
+			// item.options = searchList.value;
+		}
+	});
 }
 searchItem();
 </script>
 
 <style scoped lang="scss">
 .sensitive-words {
-    margin: 20px;
-    // background-color: #fff;
+	margin: 20px;
+	// background-color: #fff;
 }
 
 .status {
-    cursor: pointer;
-    position: relative;
+	cursor: pointer;
+	position: relative;
 
-    .status-tip {
-        position: absolute;
-        top: 2px;
-        left: 60px;
-    }
+	.status-tip {
+		position: absolute;
+		top: 2px;
+		left: 60px;
+	}
 }
 
 .dialog-tip {
-    text-align: center;
+	text-align: center;
 }
 </style>