|
@@ -0,0 +1,143 @@
|
|
|
|
|
+<template>
|
|
|
|
|
+ <div class="sensitive-words flex">
|
|
|
|
|
+ <div class="table-box">
|
|
|
|
|
+ <pageSearch ref="searchTableRef" :searchConfig="searchDetailConfig" />
|
|
|
|
|
+ <pageContent
|
|
|
|
|
+ ref="tableListRef"
|
|
|
|
|
+ :total="total"
|
|
|
|
|
+ v-loading="loading"
|
|
|
|
|
+ :contentConfig="contentDetailConfig"
|
|
|
|
|
+ :pageList="tableData"
|
|
|
|
|
+ >
|
|
|
|
|
+ <template #operate="scope">
|
|
|
|
|
+ <el-button type="primary" link @click="handleCheck(scope.row.liaisonId)"> 查看 </el-button>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </pageContent>
|
|
|
|
|
+ <!-- <pageDetail :modalConfig="detailConfig" ref="modalRef"> </pageDetail> -->
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+</template>
|
|
|
|
|
+
|
|
|
|
|
+<script setup lang="ts">
|
|
|
|
|
+import pageContent from '@/components/components/pageContent.vue';
|
|
|
|
|
+import contentDetailConfig from '../mattersStatistics/config/content.detail.config';
|
|
|
|
|
+import searchDetailConfig from './config/search.config.detail';
|
|
|
|
|
+import pageSearch from '@/components/components/pageSearch.vue';
|
|
|
|
|
+import pageDetail from './components/detail.detail.vue';
|
|
|
|
|
+// import detailConfig from './config/detail.config';
|
|
|
|
|
+import useSystemStore from '@/store/main';
|
|
|
|
|
+import { useRoute, useRouter } from 'vue-router';
|
|
|
|
|
+import {
|
|
|
|
|
+ bj_notification_type,
|
|
|
|
|
+ overdueStatus,
|
|
|
|
|
+ notificationStatus,
|
|
|
|
|
+ bj_lssuing_unit,
|
|
|
|
|
+ categoryOnm,
|
|
|
|
|
+ isFeedback,
|
|
|
|
|
+ takeMeasures,
|
|
|
|
|
+} from '@/plugins/dictData';
|
|
|
|
|
+
|
|
|
|
|
+// 使用pinia数据
|
|
|
|
|
+const systemStore = useSystemStore();
|
|
|
|
|
+const { pageDetailInfo, searchObj } = storeToRefs(systemStore);
|
|
|
|
|
+
|
|
|
|
|
+const total = ref(0);
|
|
|
|
|
+const pageSize = ref([10, 20, 30]);
|
|
|
|
|
+const tableData = ref([]);
|
|
|
|
|
+const tableListRef: any = ref<InstanceType<typeof pageContent>>();
|
|
|
|
|
+
|
|
|
|
|
+// --- 路由与Store ---
|
|
|
|
|
+const route = useRoute();
|
|
|
|
|
+const router = useRouter();
|
|
|
|
|
+
|
|
|
|
|
+const activeTab = ref('1');
|
|
|
|
|
+const searchTableRef: any = ref<InstanceType<typeof pageSearch>>();
|
|
|
|
|
+// 操作弹框
|
|
|
|
|
+import usePageModal from '@/components/components/hooks/usePageDetails';
|
|
|
|
|
+const { modalRef, handleNewDataClick, handleEditDataClick, handleCheckDataClick, handlePageDetail } =
|
|
|
|
|
+ usePageModal();
|
|
|
|
|
+
|
|
|
|
|
+const handleCheck = async (id: string) => {
|
|
|
|
|
+ await handlePageDetail(id);
|
|
|
|
|
+ await handleCheckDataClick();
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+onMounted(async () => {});
|
|
|
|
|
+
|
|
|
|
|
+const loading = ref(false);
|
|
|
|
|
+
|
|
|
|
|
+// 筛选-状态赋值 bj_notification_status
|
|
|
|
|
+async function searchItem() {
|
|
|
|
|
+ searchDetailConfig.formItems.forEach(item => {
|
|
|
|
|
+ if (item.prop === 'deliveryUnit') {
|
|
|
|
|
+ item.options = bj_lssuing_unit;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (item.prop === 'releasedUnit') {
|
|
|
|
|
+ item.options = bj_lssuing_unit;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (item.prop === 'notificationStatus') {
|
|
|
|
|
+ item.options = notificationStatus;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (item.prop === 'overdueStatus') {
|
|
|
|
|
+ item.options = overdueStatus;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (item.prop === 'notificationType') {
|
|
|
|
|
+ item.options = bj_notification_type;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (item.prop === 'conm') {
|
|
|
|
|
+ item.options = categoryOnm;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (item.prop === 'wfir') {
|
|
|
|
|
+ item.options = isFeedback;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (item.prop === 'takeMeasures') {
|
|
|
|
|
+ item.options = takeMeasures;
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+}
|
|
|
|
|
+searchItem();
|
|
|
|
|
+</script>
|
|
|
|
|
+
|
|
|
|
|
+<style scoped lang="scss">
|
|
|
|
|
+.sensitive-words {
|
|
|
|
|
+ height: calc(100vh - 95px);
|
|
|
|
|
+ margin-top: 0;
|
|
|
|
|
+ overflow-y: auto;
|
|
|
|
|
+ overflow-x: hidden;
|
|
|
|
|
+ scrollbar-width: none; /* 可选:隐藏滚动条 */
|
|
|
|
|
+ &::-webkit-scrollbar {
|
|
|
|
|
+ display: none;
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.status {
|
|
|
|
|
+ cursor: pointer;
|
|
|
|
|
+ position: relative;
|
|
|
|
|
+
|
|
|
|
|
+ .status-tip {
|
|
|
|
|
+ position: absolute;
|
|
|
|
|
+ top: 2px;
|
|
|
|
|
+ left: 60px;
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.dialog-tip {
|
|
|
|
|
+ text-align: center;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.table-box {
|
|
|
|
|
+ width: 55%;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ flex: 3;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+:deep .el-tabs__item.is-active {
|
|
|
|
|
+ color: #fff;
|
|
|
|
|
+ background-color: #409eff;
|
|
|
|
|
+}
|
|
|
|
|
+:deep .el-tabs__header {
|
|
|
|
|
+ padding-left: 20px;
|
|
|
|
|
+ background-color: #fff;
|
|
|
|
|
+}
|
|
|
|
|
+</style>
|