|
@@ -53,27 +53,16 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="bottom box">
|
|
|
- <z-b-t-j-common-title name="与我相关" />
|
|
|
- <div class="bottom-content">
|
|
|
- <ul class="ul-table">
|
|
|
- <!-- 表头 -->
|
|
|
- <li class="row header">
|
|
|
- <div>序号</div>
|
|
|
- <div>事项类型</div>
|
|
|
- <div>事项</div>
|
|
|
- <div>状态</div>
|
|
|
- <div>发布时间</div>
|
|
|
- </li>
|
|
|
-
|
|
|
- <!-- 表格数据 -->
|
|
|
- <li v-for="(row,index) in ywxgData" :key="row.id" class="row" :class="{ 'zebra': index % 2 !== 0 }">
|
|
|
- <div>{{ row.id }}</div>
|
|
|
- <div>{{ row.type }}</div>
|
|
|
- <div>{{ row.item }}</div>
|
|
|
- <div>{{ row.status }}</div>
|
|
|
- <div>{{ row.time }}</div>
|
|
|
- </li>
|
|
|
- </ul>
|
|
|
+ <z-b-t-j-common-title name="督办事项" />
|
|
|
+ <div class="bottom-content" v-loading="db_loading">
|
|
|
+ <div class="bottom-type">
|
|
|
+ <div v-for="(item,index) in dbType" :key="index" class="item" :class="{'item-active':item.chosen}" @click="handleTypeClick(item)">
|
|
|
+ {{item.name}}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div ref="dbsxRef" class="echart">
|
|
|
+
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -126,9 +115,10 @@ import usePermissionStore from '@/store/modules/permission';
|
|
|
import {ref,nextTick} from "vue";
|
|
|
import {getRouters} from "@/api/menu";
|
|
|
import useUserStore from "@/store/modules/user";
|
|
|
-import {getNewsDynamics, indexRegulation} from "@/api/cstj/index-833951/index-833951";
|
|
|
+import {getdbData, getNewsDynamics, indexRegulation} from "@/api/cstj/index-833951/index-833951";
|
|
|
import { NoticeForm, NoticeQuery, NoticeVO } from '@/api/system/notice/types';
|
|
|
import {getNotice} from "@/api/system/notice";
|
|
|
+import {dbOption} from "@/utils/echart/echartOption";
|
|
|
const userStore = useUserStore();
|
|
|
const router = useRouter();
|
|
|
const permissionStore = usePermissionStore();
|
|
@@ -136,6 +126,7 @@ const routes = computed<RouteRecordRaw[]>(() => permissionStore.getRoutes());
|
|
|
const currentTime = ref(new Date().toLocaleString('chinese',{hour12:false}).split(' ')[0]);
|
|
|
const dbsx_loading = ref(false);
|
|
|
const zcxc_loading = ref(false);
|
|
|
+const db_loading = ref(false);
|
|
|
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
|
|
let timeSlot = ref('');
|
|
|
let sjtjData = ref([
|
|
@@ -255,17 +246,23 @@ let firstRouteData = ref([
|
|
|
path:'/cstj/jobScheduling/dataDownload/dataBasePlate'
|
|
|
},
|
|
|
]);
|
|
|
-
|
|
|
-let ywxgData = ref([
|
|
|
- { id: 1, type: "指标值填报", item: "市级二级医院覆盖率", status: "审核通过", time: "2023-03-10 13:00" },
|
|
|
- { id: 2, type: "指标值填报", item: "市级二级医院覆盖率", status: "审核通过", time: "2023-03-10 13:00" },
|
|
|
- { id: 3, type: "指标值填报", item: "市级二级医院覆盖率", status: "审核通过", time: "2023-03-10 13:00" },
|
|
|
- { id: 4, type: "指标值填报", item: "市级二级医院覆盖率", status: "审核通过", time: "2023-03-10 13:00" },
|
|
|
- { id: 5, type: "指标值填报", item: "市级二级医院覆盖率", status: "审核通过", time: "2023-03-10 13:00" }
|
|
|
+let dbType = ref([
|
|
|
+ {
|
|
|
+ id:2,
|
|
|
+ name:'空间数据',
|
|
|
+ chosen: false,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ id:1,
|
|
|
+ name:'指标值',
|
|
|
+ chosen: true,
|
|
|
+ },
|
|
|
]);
|
|
|
+const dbsxRef = ref(null);
|
|
|
|
|
|
-let zcxcData = ref([
|
|
|
-]);
|
|
|
+let dbData = [];
|
|
|
+
|
|
|
+let zcxcData = ref([]);
|
|
|
const { sys_notice_status, sys_notice_type } = toRefs<any>(proxy?.useDict('sys_notice_status', 'sys_notice_type'));
|
|
|
const noticeFormRef = ref<ElFormInstance>();
|
|
|
const dialog = reactive<DialogOption>({
|
|
@@ -369,6 +366,38 @@ function getZCXCData(){
|
|
|
});
|
|
|
}
|
|
|
|
|
|
+function handleTypeClick(item){
|
|
|
+ dbType.value.forEach((item2)=>{
|
|
|
+ if(item2.id == item.id){
|
|
|
+ item2.chosen = true;
|
|
|
+ getDBData(item.id);
|
|
|
+ }else{
|
|
|
+ item2.chosen = false;
|
|
|
+ }
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
+function getDBData(type){
|
|
|
+ debugger
|
|
|
+ db_loading.value = true;
|
|
|
+ getdbData(type).then((res) => {
|
|
|
+ db_loading.value = false;
|
|
|
+ debugger
|
|
|
+ if (res.length > 0) {
|
|
|
+ dbData = res;
|
|
|
+ let dataX = [];
|
|
|
+ let dataY1 = [];
|
|
|
+ let dataY2 = [];
|
|
|
+ dbData.forEach((item)=>{
|
|
|
+ dataX.push(item.name);
|
|
|
+ dataY1.push(item.shouldValue);
|
|
|
+ dataY2.push(item.realityValue);
|
|
|
+ })
|
|
|
+ dbOption(dbsxRef.value, dataX,dataY1,dataY2);
|
|
|
+ }
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
|
|
|
onMounted(() => {
|
|
|
nextTick(async () => {
|
|
@@ -397,6 +426,8 @@ onMounted(() => {
|
|
|
getDBSXData();
|
|
|
getZCXCData();
|
|
|
timeSlot.value = getTimeGreeting();
|
|
|
+
|
|
|
+ getDBData(1);
|
|
|
})
|
|
|
})
|
|
|
|
|
@@ -591,48 +622,35 @@ onMounted(() => {
|
|
|
align-items: center;
|
|
|
.bottom-content{
|
|
|
width: 100%;
|
|
|
- padding: 10px 16px;
|
|
|
+ padding: 0px 10px 16px 10px;
|
|
|
height: calc(100% - 70px);
|
|
|
- .ul-table {
|
|
|
- width: 100%;
|
|
|
- height: 100%;
|
|
|
- border-collapse: collapse;
|
|
|
+ .bottom-type{
|
|
|
display: flex;
|
|
|
- flex-direction: column;
|
|
|
- list-style: none;
|
|
|
- padding: 0;
|
|
|
- margin: 0;
|
|
|
- }
|
|
|
-
|
|
|
- .row {
|
|
|
- display: flex;
|
|
|
- padding: 10px;
|
|
|
- background: #F1F5FB;
|
|
|
- border: 1px solid;
|
|
|
- border-image: linear-gradient(0deg, #FFFFFF, #FFFFFF, #FFFFFF) 10 10;
|
|
|
- }
|
|
|
-
|
|
|
- .row.header {
|
|
|
- font-family: Alimama ShuHeiTi;
|
|
|
- font-weight: bold;
|
|
|
- font-size: 18px;
|
|
|
- color: #3B4962;
|
|
|
- background: #D1DDF0;
|
|
|
- border-image: linear-gradient(0deg, #FFFFFF, #FFFFFF, #FFFFFF) 10 10;
|
|
|
- }
|
|
|
-
|
|
|
- .row div {
|
|
|
- flex: 1;
|
|
|
- text-align: center;
|
|
|
- font-family: Microsoft YaHei;
|
|
|
- font-weight: 400;
|
|
|
- font-size: 16px;
|
|
|
- color: #3B4962;
|
|
|
+ flex-direction: row-reverse;
|
|
|
+ .item{
|
|
|
+ cursor: pointer;
|
|
|
+ width: 100px;
|
|
|
+ height: 35px;
|
|
|
+ margin-right: 10px;
|
|
|
+ background: url("../assets/images/cstj/ypzl/item-unchosen.png") no-repeat;
|
|
|
+ background-size: cover;
|
|
|
+ display: flex;
|
|
|
+ justify-content: center;
|
|
|
+ align-items: center;
|
|
|
+ font-family: Alimama ShuHeiTi;
|
|
|
+ font-weight: bold;
|
|
|
+ font-size: 14px;
|
|
|
+ color: #333333;
|
|
|
+ }
|
|
|
+ .item-active{
|
|
|
+ background: url("../assets/images/cstj/ypzl/item-chosen.png") no-repeat;
|
|
|
+ background-size: cover;
|
|
|
+ color:#ffffff
|
|
|
+ }
|
|
|
}
|
|
|
- .zebra {
|
|
|
- background: #E9EFF9;
|
|
|
- border: 1px solid;
|
|
|
- border-image: linear-gradient(0deg, #FFFFFF, #FFFFFF, #FFFFFF) 10 10;
|
|
|
+ .echart{
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
}
|
|
|
}
|
|
|
}
|