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
# 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_PROXY = [ ["/prod-api", "http://42.193.40.239:8017" ] ]

View File

@ -37,3 +37,14 @@ export function areaTree() {
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) {
return request({
url: `/screen/index/workProgress/${params.typeId}`,
url: `/screen/index/workProgress`,
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) => {
graphicLayer.value.bindPopup((event: any) => {
console.log(event.graphic, "event====>");
console.log(event.graphic.objectsToExclude?.item, "event====>");
let attr = event.graphic.attr || {};
let title = "点位";
let item = event.graphic.objectsToExclude?.item
@ -471,8 +471,19 @@ const loadAreaChild = (attrTemp: any) => {
break;
case 5:
title = "户籍信息";
attr["上报标题:"] = item.name;
attr["姓名:"] = item.name;
attr["性别:"] = item.sex == 1 ? "男" : "女";
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;
default:

View File

@ -6,6 +6,8 @@ export const useModelStore = defineStore("model", {
model: true,
layerType: {},//图层显示
checkednum: [],//选中图层
tanchuang: false,//弹窗
tandetails: {},//弹窗详情
}),
getters: {
@ -18,6 +20,12 @@ export const useModelStore = defineStore("model", {
getcheckednum(): any {
return this.checkednum
},
gettanchuang(): boolean {
return this.tanchuang
},
gettandetails(): object {
return this.tandetails
}
},
actions: {
@ -30,6 +38,12 @@ export const useModelStore = defineStore("model", {
setcheckednum(value: any) {
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 prop="areaName" label="值班地点" align="center">
<template #default="scope">
<span> {{ scope.row.areaName }}-{{ scope.row.postName }} </span>
<span>{{ scope.row.postName }} </span>
</template>
</el-table-column>
<el-table-column prop="name" label="值班人员" align="center" />

View File

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

View File

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

View File

@ -31,7 +31,11 @@
></el-input>
</el-form-item>
<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"
ref="uploadAfter"
action="#"
@ -52,18 +56,10 @@
<el-icon> </el-icon>
<span>{{ file.realfilename }}</span>
</span>
<!-- <span
class="el-upload-list__item-preview"
@click="handleDownload(file)"
>
<el-icon>
<Download />
</el-icon>
</span> -->
</span>
</div>
</template>
</el-upload>
</el-upload> -->
</el-form-item>
</el-form>
</BaseDialog>
@ -72,8 +68,8 @@
<script setup lang="ts" >
import { reactive, ref, onMounted, watch } from "vue";
import { ElMessage, FormInstance, FormRules } from "element-plus";
import { areaTree, riskTypeList } from "@/api/account";
import { uploadFile, getFile, delFile } from "@/api/file";
import { areaTree, riskTypeList,getFile } from "@/api/account";
import { uploadFile, delFile } from "@/api/file";
import { FileType } from "@/utils/common";
import type { UploadUserFile } from "element-plus";
const formRef = ref<FormInstance>();

View File

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

View File

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

View File

@ -103,7 +103,7 @@ onMounted(() => {
height: 35px;
display: flex;
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-repeat: no-repeat;
cursor: pointer;

Binary file not shown.

Binary file not shown.