fix:系统调整

This commit is contained in:
HH 2025-05-08 15:09:21 +08:00
parent 64a9c62dab
commit 53081c5ccf
15 changed files with 172 additions and 79 deletions

View File

@ -15,6 +15,8 @@ VITE_SCREEN = /prod-api
# 访问服务器文件地址 # 访问服务器文件地址
VITE_UPLOAD_IMG_URL = /dev-img-api VITE_UPLOAD_IMG_URL = /dev-img-api
# Cross-domain proxy, you can configure multiple # Cross-domain proxy, you can configure multiple
VITE_PROXY = [ ["/prod-api", "http://192.168.110.10:8017" ],["/dev-img-api", "http://42.193.40.239:8017" ] ] # VITE_PROXY = [ ["/prod-api", "http://42.193.40.239:6111" ],["/dev-img-api", "http://42.193.40.239:8017" ] ]
VITE_PROXY = [ ["/prod-api", "http://192.168.2.179:8017" ],["/dev-img-api", "http://42.193.40.239:8017" ] ]
# VITE_PROXY = [ ["/prod-api", "http://42.193.40.239:8017" ],["/dev-img-api", "http://42.193.40.239:8017" ] ]
VITE_UPLOAD_URL = http://42.193.40.239:8888/ VITE_UPLOAD_URL = http://42.193.40.239:8888/
# VITE_PROXY = [ ["/prod-api", "http://42.193.40.239:8017" ] ] # VITE_PROXY = [ ["/prod-api", "http://42.193.40.239:8017" ] ]

View File

@ -9,10 +9,10 @@ export function areaTree() {
method: "GET", method: "GET",
}); });
} }
/** /**
* *
*/ */
export function riskTypeList() { export function riskTypeList() {
return request({ return request({
url: `/admin/risk/riskTypeList`, url: `/admin/risk/riskTypeList`,
method: "GET", method: "GET",
@ -21,7 +21,7 @@ export function areaTree() {
/** /**
* *
*/ */
export function emerEventType() { export function emerEventType() {
return request({ return request({
url: `/admin/emerEvent/emerEventType`, url: `/admin/emerEvent/emerEventType`,
method: "GET", method: "GET",
@ -31,9 +31,20 @@ export function areaTree() {
/** /**
* *
*/ */
export function sysUserInfo() { export function sysUserInfo() {
return request({ return request({
url: `/screen/index/getSysUserInfo`, url: `/screen/index/getSysUserInfo`,
method: "GET", method: "GET",
}); });
} }
/**
*
*/
export function getFile(otcid: string, otctype: string) {
return request({
url: `/common/upload/getFile`,
method: "GET",
params: { otcid, otctype }
});
}

View File

@ -22,8 +22,9 @@ export function wkTypes(params) {
//工作动态分类型开展情况-前五条 //工作动态分类型开展情况-前五条
export function workProgress(params) { export function workProgress(params) {
return request({ return request({
url: `/screen/index/workProgress/${params.typeId}`, url: `/screen/index/workProgress`,
method: "GET", method: "GET",
params: params
}); });
} }
/** /**

BIN
src/assets/images/null.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

View File

@ -426,7 +426,7 @@ const datatext4 = ref("xxxxxxx地址");
*/ */
const loadAreaChild = (attrTemp: any) => { const loadAreaChild = (attrTemp: any) => {
graphicLayer.value.bindPopup((event: any) => { graphicLayer.value.bindPopup((event: any) => {
console.log(event.graphic, "event====>"); console.log(event.graphic.objectsToExclude?.item, "event====>");
let attr = event.graphic.attr || {}; let attr = event.graphic.attr || {};
let title = "点位"; let title = "点位";
let item = event.graphic.objectsToExclude?.item let item = event.graphic.objectsToExclude?.item
@ -471,8 +471,19 @@ const loadAreaChild = (attrTemp: any) => {
break; break;
case 5: case 5:
title = "户籍信息"; title = "户籍信息";
attr["上报标题:"] = item.name; attr["姓名:"] = item.name;
attr["性别:"] = item.sex == 1 ? "男" : "女";
attr["所属地区:"] = item.areaName; attr["所属地区:"] = item.areaName;
attr["婚姻状态:"] = item.marriageState == 1 ? '已婚': item.marriageState == 2 ?'未婚' : item.marriageState == 3 ?'离婚' : item.marriageState == 4 ?'丧偶' : '单亲';
attr["是否脱贫户:"] = item.poorState == 1 ? '是': '否';
attr["出生日期:"] = item.birthday;
attr["现居地址:"] = item.address;
attr["跳转:"] = `<button
onclick="
window.open(\`https://dfxs.sczysoft.com/#/base/resident/resident-detail?id=${item.domicileId}\`, '_blank');
"
>详情</button>`;
break; break;
default: default:

View File

@ -6,6 +6,8 @@ export const useModelStore = defineStore("model", {
model: true, model: true,
layerType: {},//图层显示 layerType: {},//图层显示
checkednum: [],//选中图层 checkednum: [],//选中图层
tanchuang: false,//弹窗
tandetails: {},//弹窗详情
}), }),
getters: { getters: {
@ -18,6 +20,12 @@ export const useModelStore = defineStore("model", {
getcheckednum(): any { getcheckednum(): any {
return this.checkednum return this.checkednum
}, },
gettanchuang(): boolean {
return this.tanchuang
},
gettandetails(): object {
return this.tandetails
}
}, },
actions: { actions: {
@ -30,6 +38,12 @@ export const useModelStore = defineStore("model", {
setcheckednum(value: any) { setcheckednum(value: any) {
this.checkednum = value; this.checkednum = value;
}, },
settanchuang(value: any) {
this.tanchuang = value;
},
settandetails(value: any) {
this.tandetails = value;
}
}, },
}); });

View File

@ -11,7 +11,7 @@
<el-table-column type="index" label="序号" align="center" width="60" /> <el-table-column type="index" label="序号" align="center" width="60" />
<el-table-column prop="areaName" label="值班地点" align="center"> <el-table-column prop="areaName" label="值班地点" align="center">
<template #default="scope"> <template #default="scope">
<span> {{ scope.row.areaName }}-{{ scope.row.postName }} </span> <span>{{ scope.row.postName }} </span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="name" label="值班人员" align="center" /> <el-table-column prop="name" label="值班人员" align="center" />

View File

@ -21,7 +21,8 @@
<div :style="'background-color:' + item.color"></div> <div :style="'background-color:' + item.color"></div>
<div>{{ item.lable }}</div> <div>{{ item.lable }}</div>
<div></div> <div></div>
<div>{{ item.value }}</div> <div>{{ item.value }}()</div>
<div>{{ item.houseNum }}()</div>
</div> </div>
</div> </div>
</div> </div>
@ -72,6 +73,7 @@ const setData = () => {
{ {
value: populationList.value[index].value, value: populationList.value[index].value,
name: populationList.value[index].lable, name: populationList.value[index].lable,
houseNum: populationList.value[index].houseNum,
}, },
{ {
value: "0", value: "0",
@ -91,10 +93,12 @@ const getPersonnelTypeStatistic = () => {
populationList.value.push({ populationList.value.push({
lable: item.typeName, lable: item.typeName,
value: item.typeNum, value: item.typeNum,
houseNum:item.houseNum,
color: color(), color: color(),
}); });
population.value += item.typeNum; // population.value += item.typeNum;
}); });
population.value = res.data[0].peopleNum
setData(); setData();
}); });
}; };
@ -184,7 +188,7 @@ onMounted(() => {
display: flex; display: flex;
align-items: center; align-items: center;
height: 27px; height: 27px;
width: 45%; width: 100%;
> div:nth-child(1) { > div:nth-child(1) {
width: 8px; width: 8px;
height: 8px; height: 8px;
@ -196,11 +200,12 @@ onMounted(() => {
font-family: Source Han Sans CN, Source Han Sans CN; font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 400; font-weight: 400;
color: #a4a6ab; color: #a4a6ab;
flex: 1; // flex: 1;
width: 130px;
} }
> div:nth-child(3) { > div:nth-child(3) {
border-top: 1px #707070 dashed; border-top: 1px #707070 dashed;
width: 50px; width: 100px;
margin-right: 5px; margin-right: 5px;
} }
> div:nth-child(4) { > div:nth-child(4) {
@ -210,5 +215,14 @@ onMounted(() => {
font-weight: 500; font-weight: 500;
color: #ffc97a; color: #ffc97a;
} }
> div:nth-child(5) {
width: 50px;
margin-left: 10px;
font-size: 14px;
font-family: Source Han Sans CN, Source Han Sans CN;
font-weight: 500;
color: #ffc97a;
flex: 1;
}
} }
</style> </style>

View File

@ -4,40 +4,25 @@
<TitleC title="工作动态"></TitleC> <TitleC title="工作动态"></TitleC>
<TitleD width="100"> <TitleD width="100">
<div class="module_top_title_con"> <div class="module_top_title_con">
<div <div class="module_top_title" v-for="(item, index) in label" :key="index" @click="clickMenuOption(item.typeId)"
class="module_top_title" :class="item.check == true
v-for="(item, index) in label"
:key="index"
@click="clickMenuOption(item.typeId)"
:class="
item.check == true
? 'module_menu_selected' ? 'module_menu_selected'
: 'module_menu_notSelected' : 'module_menu_notSelected'
" ">
>
{{ item.typeName }} {{ item.typeName }}
</div> </div>
</div> </div>
</TitleD> </TitleD>
<div class="_1"> <div class="_1">
<div <div v-if="tableData.length != 0" class="block text-center" style="height: 300px">
v-if="tableData.length != 0" <el-carousel height="206px" indicator-position="none">
class="block text-center" <el-carousel-item v-for="item in tableData" :key="item" style="height: 206px;cursor: pointer;" @click="details(item)">
style="height: 300px" <img v-if="item.filePath" class="trends_img" :src="baseImgUrl + item.filePath" alt="" srcset="" />
> <img v-else class="trends_img" src="@/assets/images/null.png" alt="" />
<el-carousel height="156px" indicator-position="none"> <div class="trends_title">
<el-carousel-item <div style="font-size: 20px;">{{ item.title }}</div>
v-for="item in tableData" <div>{{ item.detail }}</div>
:key="item" </div>
style="height: 156px"
>
<img
class="trends_img"
:src="baseImgUrl + item.filePath"
alt=""
srcset=""
/>
<div class="trends_title">{{ item.title }}</div>
</el-carousel-item> </el-carousel-item>
</el-carousel> </el-carousel>
</div> </div>
@ -46,12 +31,7 @@
</div> </div>
</div> </div>
<!-- 工作开展情况详情 --> <!-- 工作开展情况详情 -->
<WorkSituationDetails <WorkSituationDetails :visible="dialogVisible" :form="form" :readonly="readonly" @close="onclone" />
:visible="dialogVisible"
:form="form"
:readonly="readonly"
@close="onclone"
/>
</div> </div>
</template> </template>
@ -70,6 +50,8 @@ export default defineComponent({
</script> </script>
<script setup lang='ts'> <script setup lang='ts'>
import { wkTypes, workProgress } from "@/api/homePage"; import { wkTypes, workProgress } from "@/api/homePage";
import { useModelStore } from "@/store";
const store = useModelStore();
// //
const baseImgUrl = ref(import.meta.env.VITE_UPLOAD_URL); const baseImgUrl = ref(import.meta.env.VITE_UPLOAD_URL);
const visible = ref(false); const visible = ref(false);
@ -100,6 +82,7 @@ const getWkTypes = () => {
}; };
wkTypes(params).then((res: any) => { wkTypes(params).then((res: any) => {
label.value = res.data; label.value = res.data;
label.value.unshift({ typeName:'近期工作',typeId:''});
label.value.forEach((item) => { label.value.forEach((item) => {
item.check = false; item.check = false;
}); });
@ -129,8 +112,13 @@ const onclone = () => {
dialogVisible.value = false; dialogVisible.value = false;
form.value = {}; form.value = {};
}; };
const details = (item:any) => {
// dialogVisible.value = true;
// form.value = item;
store.settandetails(item);
}
onMounted(() => {}); onMounted(() => { });
onBeforeMount(() => { onBeforeMount(() => {
getWkTypes(); getWkTypes();
}); });
@ -140,24 +128,28 @@ onBeforeMount(() => {
.side-bg { .side-bg {
// height: 45%; // height: 45%;
} }
.work_title { .work_title {
font-size: 16px; font-size: 16px;
font-family: Source Han Sans SC, Source Han Sans SC; font-family: Source Han Sans SC, Source Han Sans SC;
font-weight: 400; font-weight: 400;
color: #ffe7cd; color: #ffe7cd;
} }
.work_con { .work_con {
width: 100%; width: 100%;
height: 244px; height: 244px;
padding: 12px 8px; padding: 12px 8px;
overflow-y: scroll; overflow-y: scroll;
.tabsOne { .tabsOne {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
height: 68px; height: 68px;
padding: 10px 13px; padding: 10px 13px;
> div:nth-of-type(1) {
>div:nth-of-type(1) {
width: 24px; width: 24px;
height: 16px; height: 16px;
box-sizing: border-box; box-sizing: border-box;
@ -170,7 +162,8 @@ onBeforeMount(() => {
font-weight: 400; font-weight: 400;
color: #ff7734; color: #ff7734;
} }
> div:nth-child(2) {
>div:nth-child(2) {
width: 100px; width: 100px;
height: 100%; height: 100%;
background-color: rgba(72, 77, 86, 0.6); background-color: rgba(72, 77, 86, 0.6);
@ -179,11 +172,13 @@ onBeforeMount(() => {
flex-direction: column; flex-direction: column;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
> div {
>div {
color: #ffe7cd; color: #ffe7cd;
} }
} }
> div:nth-of-type(3) {
>div:nth-of-type(3) {
width: 408px; width: 408px;
height: 48px; height: 48px;
font-size: 12px; font-size: 12px;
@ -200,12 +195,14 @@ onBeforeMount(() => {
-webkit-box-orient: vertical; -webkit-box-orient: vertical;
} }
} }
.tabsTwo {
} .tabsTwo {}
} }
.work_con::-webkit-scrollbar { .work_con::-webkit-scrollbar {
display: none; display: none;
} }
// //
.infinite-list { .infinite-list {
height: 300px; height: 300px;
@ -213,6 +210,7 @@ onBeforeMount(() => {
margin: 0; margin: 0;
list-style: none; list-style: none;
} }
.infinite-list .infinite-list-item { .infinite-list .infinite-list-item {
display: flex; display: flex;
align-items: center; align-items: center;
@ -222,32 +220,40 @@ onBeforeMount(() => {
margin: 10px; margin: 10px;
color: var(--el-color-primary); color: var(--el-color-primary);
} }
.infinite-list .infinite-list-item + .list-item {
.infinite-list .infinite-list-item+.list-item {
margin-top: 10px; margin-top: 10px;
} }
.infinite-list::-webkit-scrollbar { .infinite-list::-webkit-scrollbar {
/*隐藏滚轮*/ /*隐藏滚轮*/
display: none !important; display: none !important;
} }
.module_top_title_con { .module_top_title_con {
overflow: hidden; overflow: hidden;
max-height: 70px; max-height: 70px;
overflow-y: scroll; overflow-y: scroll;
} }
.module_top_title_con::-webkit-scrollbar { .module_top_title_con::-webkit-scrollbar {
display: none; display: none;
} }
::v-deep .el-input__inner { ::v-deep .el-input__inner {
color: white !important; color: white !important;
} }
.body_body { .body_body {
background-color: rgba(0, 61, 123, 0.353) !important; background-color: rgba(0, 61, 123, 0.353) !important;
border-radius: 0 0 10px 10px; border-radius: 0 0 10px 10px;
} }
._1 { ._1 {
padding: 20px; padding: 20px;
height: 200px; height: 250px;
} }
.carousel-item { .carousel-item {
color: #475669; color: #475669;
opacity: 0.75; opacity: 0.75;
@ -269,9 +275,10 @@ onBeforeMount(() => {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
.trends_title { .trends_title {
width: 100%; width: 100%;
height: 32px; height: 64px;
background: #000000a2; background: #000000a2;
border-radius: 0px 0px 0px 0px; border-radius: 0px 0px 0px 0px;
position: absolute; position: absolute;
@ -283,10 +290,12 @@ onBeforeMount(() => {
color: #d0deee; color: #d0deee;
line-height: 32px; line-height: 32px;
} }
.block_1 { .block_1 {
display: flex; display: flex;
justify-content: center; justify-content: center;
> img {
>img {
width: 200px; width: 200px;
height: 100px; height: 100px;
} }

View File

@ -31,7 +31,11 @@
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="工作附件:" style="width: 100%"> <el-form-item label="工作附件:" style="width: 100%">
<el-upload <div style="color: #fff;" v-if="afterList.length == 0">暂无附件</div>
<div v-for="(item,index) in afterList" :key="index">
<div @click="handleDownload(item)" style="background: #fff;padding: 0px 20px;border-radius: 5px;cursor: pointer;">{{ item.realfilename }}</div>
</div>
<!-- <el-upload
class="avatar-uploader" class="avatar-uploader"
ref="uploadAfter" ref="uploadAfter"
action="#" action="#"
@ -52,18 +56,10 @@
<el-icon> </el-icon> <el-icon> </el-icon>
<span>{{ file.realfilename }}</span> <span>{{ file.realfilename }}</span>
</span> </span>
<!-- <span
class="el-upload-list__item-preview"
@click="handleDownload(file)"
>
<el-icon>
<Download />
</el-icon>
</span> -->
</span> </span>
</div> </div>
</template> </template>
</el-upload> </el-upload> -->
</el-form-item> </el-form-item>
</el-form> </el-form>
</BaseDialog> </BaseDialog>
@ -72,8 +68,8 @@
<script setup lang="ts" > <script setup lang="ts" >
import { reactive, ref, onMounted, watch } from "vue"; import { reactive, ref, onMounted, watch } from "vue";
import { ElMessage, FormInstance, FormRules } from "element-plus"; import { ElMessage, FormInstance, FormRules } from "element-plus";
import { areaTree, riskTypeList } from "@/api/account"; import { areaTree, riskTypeList,getFile } from "@/api/account";
import { uploadFile, getFile, delFile } from "@/api/file"; import { uploadFile, delFile } from "@/api/file";
import { FileType } from "@/utils/common"; import { FileType } from "@/utils/common";
import type { UploadUserFile } from "element-plus"; import type { UploadUserFile } from "element-plus";
const formRef = ref<FormInstance>(); const formRef = ref<FormInstance>();

View File

@ -42,6 +42,11 @@
show-overflow-tooltip show-overflow-tooltip
> >
<el-table-column type="index" label="序号" align="center" width="60" /> <el-table-column type="index" label="序号" align="center" width="60" />
<el-table-column
prop="teamname"
label="队伍名称"
align="left"
/>
<el-table-column <el-table-column
prop="principal" prop="principal"
label="联系人" label="联系人"
@ -54,11 +59,11 @@
align="center" align="center"
width="110" width="110"
/> />
<el-table-column <!-- <el-table-column
prop="areaName" prop="areaName"
label="所属镇/村(社区)" label="所属镇/村(社区)"
align="center" align="center"
/> /> -->
<el-table-column <el-table-column
prop="personnum" prop="personnum"
label="应急队伍人数" label="应急队伍人数"
@ -226,11 +231,17 @@
:readonly="emeEventDetalisReadonly" :readonly="emeEventDetalisReadonly"
@close="emeEventDetalisOnclone" @close="emeEventDetalisOnclone"
/> />
<WorkSituationDetails
:visible="dialogVisibleWork"
:form="formWork"
:readonly="readonlyWork"
@close="oncloneWork"
/>
</div> </div>
</template> </template>
<script lang="ts"> <script lang="ts">
import { defineComponent, onMounted, ref, watchEffect } from "vue"; import { defineComponent, onMounted, ref, computed,watch } from "vue";
export default defineComponent({ export default defineComponent({
name: "WorkSituation", name: "WorkSituation",
}); });
@ -247,6 +258,11 @@ import EmeRanksDetails from "../dialog/emeRanksDetails.vue";
import EmeMaterialsDetails from "../dialog/emeMaterialsDetails.vue"; import EmeMaterialsDetails from "../dialog/emeMaterialsDetails.vue";
import EmeSystemDetails from "../dialog/emeSystemDetails.vue"; import EmeSystemDetails from "../dialog/emeSystemDetails.vue";
import EmeEventDetalis from "../dialog/emeEventDetalis.vue"; import EmeEventDetalis from "../dialog/emeEventDetalis.vue";
import WorkSituationDetails from "../../left-side/dialog/workSituationDetails.vue"
import { useModelStore } from "@/store";
const store = useModelStore();
const tandetails = computed(() => store.gettandetails);
// //
const tableData = ref([]); const tableData = ref([]);
@ -254,6 +270,25 @@ const currentPage = ref(1);
const pageSize = ref(10); const pageSize = ref(10);
const total = ref(0); const total = ref(0);
const search = ref(""); const search = ref("");
const dialogVisibleWork = ref(false);
const formWork = ref({});
const readonlyWork = ref(false);
const oncloneWork = () => {
dialogVisibleWork.value = false;
formWork.value = {};
store.settandetails({});
}
const Workdetails = (item:any) => {
dialogVisibleWork.value = true;
formWork.value = item;
}
watch((tandetails), (val: any) => {
if (val.title) {
Workdetails(val)
}
})
// //
const dialogVisible = ref(false); const dialogVisible = ref(false);
const form = ref({}); const form = ref({});

View File

@ -27,7 +27,7 @@
> >
<el-table-column type="index" label="序号" align="center" width="60" /> <el-table-column type="index" label="序号" align="center" width="60" />
<el-table-column <el-table-column
prop="typeName" prop="name"
label="预警类型" label="预警类型"
align="center" align="center"
width="80" width="80"
@ -87,8 +87,8 @@
<!-- 分页 --> <!-- 分页 -->
<el-pagination <el-pagination
class="pagination" class="pagination"
@size-change="getList" @size-change="getRiskPoolPage"
@current-change="getList" @current-change="getRiskPoolPage"
v-model:current-page.sync="currentPage" v-model:current-page.sync="currentPage"
v-model:page-size.sync="pageSize" v-model:page-size.sync="pageSize"
:page-sizes="[10, 15, 20, 30]" :page-sizes="[10, 15, 20, 30]"

View File

@ -103,7 +103,7 @@ onMounted(() => {
height: 35px; height: 35px;
display: flex; display: flex;
align-items: center; align-items: center;
background-image: url("@/assets/images/top/top-option-bg.png"); // background-image: url("@/assets/images/top/top-option-bg.png");
background-size: 100% 100%; background-size: 100% 100%;
background-repeat: no-repeat; background-repeat: no-repeat;
cursor: pointer; cursor: pointer;

Binary file not shown.

Binary file not shown.