fix:系统调整

This commit is contained in:
HH 2024-06-18 09:53:29 +08:00
parent aa17d609b7
commit 3d38a94be7
30 changed files with 716 additions and 451 deletions

View File

@ -16,10 +16,10 @@ VITE_PROXY_API = /dev-api
# VITE_PROXY = [ ["/dev-api", "http://42.193.40.239:8017" ],["/dev-img-api", "http://file.sczysoft.com" ]]
# VITE_UPLOAD_URL = http://42.193.40.239:8888
# 东哥
# VITE_PROXY = [ ["/dev-api", "http://192.168.110.186:8017" ],["/dev-img-api", "http://42.193.40.239:8017" ]]
VITE_PROXY = [ ["/dev-api", "http://192.168.110.186:8017" ],["/dev-img-api", "http://42.193.40.239:8017" ]]
# VITE_UPLOAD_URL = http://192.168.110.186
# 陈游
VITE_PROXY = [ ["/dev-api", "http://192.168.110.10:8017" ],["/dev-img-api", "http://42.193.40.239:8017" ]]
# VITE_PROXY = [ ["/dev-api", "http://192.168.110.10:8017" ],["/dev-img-api", "http://42.193.40.239:8017" ]]
VITE_UPLOAD_URL = http://42.193.40.239:8888/
# VITE_UPLOAD_URL = https://city.sczysoft.com/dffile/
#

View File

@ -377,7 +377,7 @@ export function saveUser(data) {
});
}
/**
*-
*-
*/
export function getWorkTypePage(params) {
return request({
@ -387,7 +387,7 @@ export function saveUser(data) {
});
}
/**
*--
*--
*/
export function saveWorkType(params) {
return request({
@ -397,7 +397,7 @@ export function saveUser(data) {
});
}
/**
*-
*-
*/
export function delWorkType(params) {
return request({

View File

@ -1,5 +1,5 @@
import request from "@/utils/request";
//工作管理
//工作发布
/**
*
*/

View File

@ -91,6 +91,35 @@ export function domicilePeoplePageList(params) {
});
}
/**
*-
*/
export function papersPage(params) {
return request({
url: `/admin/people/papersPage`,
method: "GET",
params:params,
});
}
/**
*-
*/
export function papersAdd(params) {
return request({
url: `/admin/people/papersAdd`,
method: "POST",
data:params,
});
}
/**
*
*/
export function papersDel(params) {
return request({
url: `/admin/people/papersDel/${params.papersId}`,
method: "POST",
});
}
/**
*
*/
export function crTypeList(params) {

View File

@ -195,6 +195,7 @@ export function deleteEquip(data) {
return request({
url: `/admin/emerEvent/emerEventPage`,
method: "GET",
params: params
});
}
/**

View File

@ -116,6 +116,9 @@
width: 100%;
}
}
.el-select {
width: 200px;
}
/** .el-input-group__append */
.search-input {

View File

@ -71,7 +71,7 @@ export default {
meta: {
auth: 'system.data.work',
icon: 'point',
title: '工作管理',
title: '工作发布',
breadcrumb: true,
}
},

View File

@ -7,7 +7,7 @@ export default {
redirect: '/work/w-index',
meta: {
auth: "daily",
title: '工作管理',
title: '工作发布',
icon: 'icon-work',
},
children: [
@ -18,7 +18,7 @@ export default {
meta: {
auth: "daily.index",
icon: 'point',
title: '工作管理',
title: '工作发布',
sidebar: false
},
children: [

View File

@ -324,12 +324,12 @@ export {
// ]
// },
// {
// title:'工作管理',
// title:'工作发布',
// auth:'daily',
// sort:6,
// children:[
// {
// title:'工作管理',
// title:'工作发布',
// auth:'daily.index',
// sort:1,
// children:[
@ -385,7 +385,7 @@ export {
// sort:4,
// },
// {
// title:'工作管理',
// title:'工作发布',
// auth:'system.data.work',
// sort:5,
// },

View File

@ -25,8 +25,8 @@ export enum FileType {
enterpriseAfterImg = "enterpriseAfterImg", //企业自查-整改后
//道孚
workManagement = 'workManagement',//工作管理
workDynamics = 'workDynamics',//工作管理
workManagement = 'workManagement',//工作发布
workDynamics = 'workDynamics',//工作发布
message = 'message',//消息管理富文本
messageCover = 'messageCover',//消息管理封面
system = 'system',//系统设置Logo
@ -39,6 +39,7 @@ export enum FileType {
demands = 'demands',//群众诉求处置
eventAcs = 'eventAcs',//应急统计
resumptionAcs = 'WorkFile', // 工作动态/履职附件
WorkFile = 'WorkFile'
}
// 文件接口类型
export enum ApiFile {

View File

@ -102,7 +102,7 @@
</el-form-item>
</el-form>
<el-dialog v-model="upVisible">
<img w-full :src="upImageUrl" alt="Preview Image" />
<img style="width: 100%;" w-full :src="upImageUrl" alt="Preview Image" />
</el-dialog>
</div>
<TitleC titleName="完成情况"></TitleC>
@ -290,19 +290,19 @@ const completehandleUploadAfter = (file: any) => {
newFile.append("file", file.file);
uploadFile(
userId.value,
completeform.value.workId || uuid.value,
FileType.workManagement,
form.value.wkUserId,
FileType.WorkFile,
newFile
).then((res) => {
if (res) {
ElMessage.success("上传成功!");
completegetCheckDangers(completeform.value.workId || uuid.value);
completegetCheckDangers(form.value.wkUserId);
}
});
};
//getCheckDangers
const completegetCheckDangers = (id) => {
getFile(id, FileType.workManagement).then((res: any) => {
getFile(id, FileType.WorkFile).then((res: any) => {
completeafterList.value = res.data.map((item) => {
let arr = item;
let index = item.filepath.indexOf("."); //"_"
@ -334,7 +334,7 @@ const completehandleRemove = (file) => {
if (res) {
ElMessage.success("删除成功!");
}
completegetCheckDangers(completeform.value.workId || uuid.value);
completegetCheckDangers(completeform.value.workId);
});
};
//
@ -513,7 +513,8 @@ const handleRemove = (file) => {
if (res) {
ElMessage.success("删除成功!");
}
getCheckDangers(form.value.workId || uuid.value);
// getCheckDangers(form.value.workId || uuid.value);
completegetCheckDangers(form.value.wkUserId);
});
};
//
@ -571,6 +572,7 @@ const getReceiveWorkDetail = (id) =>{
receiveWorkDetail(params).then((res: any) => {
console.log(res,'res====>');
completeform.value = res.data;
completegetCheckDangers(completeform.value.wkUserId);
});
}
@ -586,11 +588,10 @@ watch(
form.value.listperformid = props.form.listPerformId;
form.value.time = [form.value.startTime, form.value.endTime];
getCheckDangers(form.value.workId || uuid.value);
completegetCheckDangers(completeform.value.workId || uuid.value);
completegetCheckDangers(form.value.wkUserId);
console.log(props.type,'props.type===>');
if (props.type == 2) {
console.log(11111);
getReceiveWorkDetail(props.form.wkUserId);
}

View File

@ -9,11 +9,7 @@
<svg-icon name="refurbish" class="icon" />
<span class="span">刷新</span>
</div>
<div
class="h-layout h-titlec"
@click="resetPwd"
v-if="formEnable"
>
<div class="h-layout h-titlec" @click="resetPwd" v-if="formEnable">
<svg-icon name="save-yellow" class="icon" />
<span class="span">编辑</span>
</div>
@ -29,123 +25,56 @@
</template>
</TitleC>
<div class="detailForm-content">
<el-form
ref="formRef"
label-width="150px"
:rules="ruleForm"
:model="detailForm"
>
<el-form ref="formRef" label-width="150px" :rules="ruleForm" :model="detailForm">
<el-form-item label="姓名" prop="name">
<el-input
:disabled="formEnable"
placeholder="请输入"
type="input"
v-model="detailForm.name"
/>
<el-input :disabled="formEnable" placeholder="请输入" type="input" v-model="detailForm.name" />
</el-form-item>
<el-form-item label="性别" prop="sortId">
<el-select
:disabled="formEnable"
placeholder="请选择"
v-model="detailForm.sex"
>
<el-select :disabled="formEnable" placeholder="请选择" v-model="detailForm.sex">
<el-option label="男" :value="1"></el-option>
<el-option label="女" :value="0"></el-option>
</el-select>
</el-form-item>
<el-form-item prop="areaCode" label="所属区域">
<el-cascader
:disabled="formEnable"
ref="cascader"
v-model="detailForm.areaCode"
placeholder="请选择地区"
:options="orgList"
:props="{
checkStrictly: true,
label: 'orgname',
value: 'orgcode',
}"
clearable
></el-cascader>
<el-cascader :disabled="formEnable" ref="cascader" v-model="detailForm.areaCode" placeholder="请选择地区"
:options="orgList" :props="{
checkStrictly: true,
label: 'orgname',
value: 'orgcode',
}" clearable></el-cascader>
</el-form-item>
<el-form-item label="婚姻状态" prop="marriageState">
<el-select
:disabled="formEnable"
placeholder="请选择"
v-model="detailForm.marriageState"
>
<el-select :disabled="formEnable" placeholder="请选择" v-model="detailForm.marriageState">
<el-option label="已婚" :value="1">已婚</el-option>
<el-option label="未婚" :value="2">未婚</el-option>
<el-option label="离婚" :value="3">离婚</el-option>
</el-select>
</el-form-item>
<el-form-item label="出生日期" prop="birthday">
<el-date-picker
:disabled="formEnable"
v-model="detailForm.birthday"
type="date"
placeholder="请选择出生日期"
size="default"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
/>
<el-date-picker :disabled="formEnable" v-model="detailForm.birthday" type="date" placeholder="请选择出生日期"
size="default" format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
</el-form-item>
<el-form-item label="户籍创建时间" prop="changeTime">
<el-date-picker
:disabled="formEnable"
v-model="detailForm.changeTime"
type="date"
placeholder="请选择户籍创建时间"
size="default"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
/>
<el-date-picker :disabled="formEnable" v-model="detailForm.changeTime" type="date" placeholder="请选择户籍创建时间"
size="default" format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
</el-form-item>
<el-form-item label="身份证号" prop="idCard">
<el-input
:disabled="formEnable"
placeholder="请输入身份证号"
type="input"
v-model="detailForm.idCard"
/>
<el-input :disabled="formEnable" placeholder="请输入身份证号" type="input" v-model="detailForm.idCard" />
</el-form-item>
<el-form-item label="现居地址" prop="address">
<el-input
:disabled="formEnable"
placeholder="请输入"
type="input"
v-model="detailForm.address"
/>
<el-input :disabled="formEnable" placeholder="请输入" type="input" v-model="detailForm.address" />
</el-form-item>
<el-form-item label="经度" prop="lon">
<el-input
:disabled="formEnable"
placeholder="请输入"
type="input"
v-model="detailForm.lon"
/>
<el-input :disabled="formEnable" placeholder="请输入" type="input" v-model="detailForm.lon" />
</el-form-item>
<el-form-item label="纬度" prop="lat">
<el-input
:disabled="formEnable"
placeholder="请输入"
type="input"
v-model="detailForm.lat"
/>
<el-input :disabled="formEnable" placeholder="请输入" type="input" v-model="detailForm.lat" />
</el-form-item>
<el-form-item
v-if="formEnable ? false : true"
label="地图:"
style="width: 94%;"
>
<Map
@change="handleMapChange"
:longlat="
detailForm.lon && detailForm.lat
? [detailForm.lon, detailForm.lat]
: latAndLon
"
></Map>
<el-form-item v-if="formEnable ? false : true" label="地图:" style="width: 94%;">
<Map @change="handleMapChange" :longlat="detailForm.lon && detailForm.lat
? [detailForm.lon, detailForm.lat]
: latAndLon
"></Map>
</el-form-item>
</el-form>
</div>
@ -159,174 +88,143 @@
<span class="span">刷新</span>
</div>
<div class="tool-item" @click="fileExport">
<svg-icon name="export" class="icon" />
<span>导出</span>
</div>
<div
v-if="detailForm.domicileState == 1?true:false"
class="h-layout h-titlec"
@click="(detailDialogVisible = true), (form = {}), (readonly = false)"
>
<svg-icon name="export" class="icon" />
<span>导出</span>
</div>
<div v-if="detailForm.domicileState == 1 ? true : false" class="h-layout h-titlec"
@click="(detailDialogVisible = true), (form = {}), (readonly = false)">
<svg-icon name="add" class="icon" />
<span class="span">新建</span>
</div>
</div>
</template>
</TitleC>
<el-table
ref="loading"
v-loading="tableDataloading"
:data="detailTableData"
header-row-class-name="el-one-header"
border
>
<el-table-column
type="index"
align="center"
label="序列"
width="60"
></el-table-column>
<el-table-column
:resizable="true"
align="center"
label="姓名"
prop="name"
width="130"
>
</el-table-column>
<el-table-column
:resizable="true"
align="center"
label="联系电话"
prop="phoneNumber"
width="130"
>
</el-table-column>
<el-table-column
:resizable="true"
align="center"
label="性别"
prop="sex"
width="100"
>
<template #default="scope">
<span>{{ scope.row.sex == 1? '男':'女'}}</span>
</template>
</el-table-column>
<el-table-column
:resizable="true"
align="center"
label="人员标签"
prop="peopleTag"
width="100"
>
<template #default="scope">
<span>{{ scope.row.peopleTag == 1? '常住人口':'流动人口'}}</span>
</template>
</el-table-column>
<el-table-column
:resizable="true"
align="center"
label="当前地址"
prop="nowAddress"
>
</el-table-column>
<el-table-column
:resizable="true"
align="center"
label="所属地区"
prop="areaName"
>
</el-table-column>
<el-table-column
:resizable="true"
align="center"
label="关系"
prop="relationName"
width="100"
>
</el-table-column>
<el-table-column
:resizable="true"
align="center"
label="人员状态"
prop="deathState"
width="100"
>
<template #default="scope">
<span class="table_ormal" v-if="scope.row.deathState == 1"
>正常</span
>
<span class="table_cancel" v-else-if="scope.row.deathState == 2"
>死亡</span
>
<span v-else>--</span>
</template>
</el-table-column>
<el-table-column
:resizable="true"
align="center"
label="操作"
width="250"
>
<template #default="scope">
<span
v-if="detailForm.domicileState == 1?true:false"
class="operate"
@click="
<el-table ref="loading" v-loading="tableDataloading" :data="detailTableData"
header-row-class-name="el-one-header" border>
<el-table-column type="index" align="center" label="序列" width="60"></el-table-column>
<el-table-column :resizable="true" align="center" label="姓名" prop="name" width="130">
</el-table-column>
<el-table-column :resizable="true" align="center" label="联系电话" prop="phoneNumber" width="130">
</el-table-column>
<el-table-column :resizable="true" align="center" label="性别" prop="sex" width="100">
<template #default="scope">
<span>{{ scope.row.sex == 1 ? '男' : '女' }}</span>
</template>
</el-table-column>
<el-table-column :resizable="true" align="center" label="人员标签" prop="peopleTag" width="100">
<template #default="scope">
<span>{{ scope.row.peopleTag == 1 ? '常住人口' : '流动人口' }}</span>
</template>
</el-table-column>
<el-table-column :resizable="true" align="center" label="当前地址" prop="nowAddress">
</el-table-column>
<el-table-column :resizable="true" align="center" label="所属地区" prop="areaName">
</el-table-column>
<el-table-column :resizable="true" align="center" label="关系" prop="relationName" width="100">
</el-table-column>
<el-table-column :resizable="true" align="center" label="人员状态" prop="deathState" width="100">
<template #default="scope">
<span class="table_ormal" v-if="scope.row.deathState == 1">正常</span>
<span class="table_cancel" v-else-if="scope.row.deathState == 2">死亡</span>
<span v-else>--</span>
</template>
</el-table-column>
<el-table-column :resizable="true" align="center" label="操作" width="280">
<template #default="scope">
<span v-if="detailForm.domicileState == 1 ? true : false" class="operate" @click="
(form = scope.row),
(detailDialogVisible = true),
(readonly = false)
"
>
<svg-icon name="edit" class="icon"></svg-icon>
<span class="edit">编辑</span>
</span>
<span
class="operate"
@click="(detailDialogVisible = true), (form = scope.row), (readonly = true)"
>
<svg-icon name="detail" class="icon"></svg-icon>
<span class="detail">详情</span>
</span>
<span v-if="detailForm.domicileState == 1?true:false" class="operate" @click="del(scope.row.peopleId)">
<svg-icon name="delete" class="icon"></svg-icon>
<span class="func">删除</span>
</span>
</template>
</el-table-column>
</el-table>
(detailDialogVisible = true),
(readonly = false)
">
<svg-icon name="edit" class="icon"></svg-icon>
<span class="edit">编辑</span>
</span>
<span class="operate" @click="(detailDialogVisible = true), (form = scope.row), (readonly = true)">
<svg-icon name="detail" class="icon"></svg-icon>
<span class="detail">详情</span>
</span>
<span v-if="detailForm.domicileState == 1 ? true : false" class="operate" @click="del(scope.row.peopleId)">
<svg-icon name="delete" class="icon"></svg-icon>
<span class="func">删除</span>
</span>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<el-pagination
class="pagination"
@size-change="getList"
@current-change="getList"
v-model:current-page.sync="currentPage"
:page-sizes="[10, 15, 20, 30]"
v-model:page-size.sync="pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
background
>
<el-pagination class="pagination" @size-change="getList" @current-change="getList"
v-model:current-page.sync="currentPage" :page-sizes="[10, 15, 20, 30]" v-model:page-size.sync="pageSize"
layout="total, sizes, prev, pager, next, jumper" :total="total" background>
</el-pagination>
<TitleC titleName="证件信息">
<template v-slot:option>
<div class="h-layout option">
<div class="h-layout h-titlec" @click="getcertlist">
<svg-icon name="refurbish" class="icon" />
<span class="span">刷新</span>
</div>
<div v-if="detailForm.domicileState == 1 ? true : false" class="h-layout h-titlec"
@click="(certificateDialogVisible = true), (cerform = {}), (certreadonly = false)">
<svg-icon name="add" class="icon" />
<span class="span">新建</span>
</div>
</div>
</template>
</TitleC>
<el-table ref="loading" v-loading="certloading" :data="certTableData"
header-row-class-name="el-one-header" border>
<el-table-column type="index" align="center" label="序列" width="60"></el-table-column>
<el-table-column :resizable="true" align="center" label="证件号" prop="papersCard" width="130">
</el-table-column>
<el-table-column :resizable="true" align="center" label="类型" prop="papersType" width="100">
<template #default="scope">
<span>{{ scope.row.papersType == 1 ? '不动产证' : '土地使用证' }}</span>
</template>
</el-table-column>
<el-table-column :resizable="true" align="center" label="备注" prop="remarks">
</el-table-column>
<el-table-column :resizable="true" align="center" label="操作" width="280">
<template #default="scope">
<span v-if="detailForm.domicileState == 1 ? true : false" class="operate" @click="
(cerform = scope.row),
(certificateDialogVisible = true),
(certreadonly = false)
">
<svg-icon name="edit" class="icon"></svg-icon>
<span class="edit">编辑</span>
</span>
<span class="operate" @click="(certificateDialogVisible = true), (cerform = scope.row), (certreadonly = true)">
<svg-icon name="detail" class="icon"></svg-icon>
<span class="detail">详情</span>
</span>
<span v-if="detailForm.domicileState == 1 ? true : false" class="operate" @click="delpapersDel(scope.row.papersId)">
<svg-icon name="delete" class="icon"></svg-icon>
<span class="func">删除</span>
</span>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<el-pagination class="pagination" @size-change="getcertlist" @current-change="getcertlist"
v-model:current-page.sync="cretcurrentPage" :page-sizes="[10, 15, 20, 30]" v-model:page-size.sync="cretpageSize"
layout="total, sizes, prev, pager, next, jumper" :total="crettotal" background>
</el-pagination>
</div>
</div>
<!-- 户籍人员新增/修改弹窗 -->
<DetailAddPersonnel
:visible="detailDialogVisible"
:form="form"
:readonly="readonly"
:id="domicileId"
@close="onclone"
/>
<DetailAddPersonnel :visible="detailDialogVisible" :form="form" :readonly="readonly" :id="domicileId"
@close="onclone" />
<!-- 证件信息新增/修改弹窗 -->
<DetailAddcertificate :visible="certificateDialogVisible" :form="cerform" :readonly="certreadonly" :id="domicileId"
@close="cerclone" />
</div>
</template>
<script lang='ts' setup>
<script lang='ts' setup>
import { onMounted, reactive, ref } from "vue";
import { ElMessage, FormInstance, FormRules, ElMessageBox } from "element-plus";
import DetailAddPersonnel from "./dialog/detail-addPersonnel.vue";
import DetailAddcertificate from "./dialog/detail-addcertificate.vue";
import { areaTree } from "@/api/account";
import { domicileAdd, domicileDetail, domicilePeoplePageList, peopleDel } from "@/api/base";
import { domicileAdd, domicileDetail, domicilePeoplePageList, peopleDel,papersPage,papersDel } from "@/api/base";
import { useRoute } from "vue-router";
import { useRouter } from "vue-router";
import useUserStore from "@/store/modules/user";
@ -380,12 +278,20 @@ const form = ref({});
//
const detailDialogVisible = ref(false);
const readonly = ref(false);
//
const certificateDialogVisible = ref(false);
const certreadonly = ref(false);
const cerform = ref({});
//table
const tableDataloading = ref(false);
const certloading = ref(false);
const tableData = ref([]);
const currentPage = ref(1);
const pageSize = ref(10);
const total = ref(0);
const cretcurrentPage = ref(1);
const cretpageSize = ref(10);
const crettotal = ref(0);
//
@ -398,8 +304,8 @@ const handleSumit = () => {
if (valid) {
let params = {
...detailForm.value,
areaCode:"",
domicileId:detailForm.value.domicileId
areaCode: "",
domicileId: detailForm.value.domicileId
? detailForm.value.domicileId
: null,
};
@ -439,7 +345,7 @@ const clone = () => {
};
//
const getDetail = () => {
domicileDetail({domicileId:route.query.id}).then((res: any) => {
domicileDetail({ domicileId: route.query.id }).then((res: any) => {
detailForm.value = res.data;
});
};
@ -477,7 +383,7 @@ const del = (id) => {
cancelButtonText: "否",
type: "warning",
}).then(() => {
peopleDel({peopleId:id}).then((res: any) => {
peopleDel({ peopleId: id }).then((res: any) => {
if (res.code == 1) {
ElMessage.success({
message: "删除成功",
@ -492,6 +398,44 @@ const del = (id) => {
});
};
/**
*删除人员
*/
const delpapersDel = (id) => {
ElMessageBox.confirm("是否确认删除?", "提示", {
confirmButtonText: "是",
cancelButtonText: "否",
type: "warning",
}).then(() => {
papersDel({ papersId: id }).then((res: any) => {
if (res.code == 1) {
ElMessage.success({
message: "删除成功",
});
} else {
ElMessage.error({
message: res.message,
});
}
getcertlist();
});
});
};
//
const certTableData = ref([])
const getcertlist = () => {
certloading.value = true;
let params = {
limit: pageSize.value,
page: currentPage.value,
domicileId: route.query.id,
};
papersPage(params).then((res: any) => {
certTableData.value = res.data.list;
crettotal.value = res.data.total;
certloading.value = false;
});
};
//
const refurbish = () => {
getDetail();
@ -499,55 +443,65 @@ const refurbish = () => {
//
const onclone = () => {
detailDialogVisible.value = false;
detailDialogVisible.value = false;
form.value = {};
getList();
};
const cerclone = () => {
certificateDialogVisible.value = false;
cerform.value = {};
getcertlist();
}
const fileExport = () => {
const params = {
domicileId:domicileId.value,
}
exportFileRequest(`/admin/export/exportDomicilePeople/${params.domicileId}`, '户籍人员统计.xlsx', params).then(res => {
})
domicileId: domicileId.value,
}
exportFileRequest(`/admin/export/exportDomicilePeople/${params.domicileId}`, '户籍人员统计.xlsx', params).then(res => {
})
};
onMounted(() => {
domicileId.value = route.query.id || "";
domicileId.value = route.query.id || "";
refurbish();
getAreaTree();
getList();
getcertlist();
});
</script>
<style lang="scss" scoped>
<style lang="scss" scoped>
.content {
width: 100%;
background: #fff;
border-radius: 0.26042vw;
box-shadow: 0 0 0.41667vw 0 rgb(8 33 85 / 10%);
height: 100%;
padding: 0.83333vw;
overflow-y: scroll;
overflow-x: hidden !important;
/* stylelint-disable-next-line property-no-vendor-prefix */
-moz-box-sizing: border-box;
/* stylelint-disable-next-line property-no-vendor-prefix */
-webkit-box-sizing: border-box;
/* stylelint-disable-next-line property-no-vendor-prefix */
-o-box-sizing: border-box;
/* stylelint-disable-next-line property-no-vendor-prefix */
-ms-box-sizing: border-box;
box-sizing: border-box;
width: 100%;
background: #fff;
border-radius: 0.26042vw;
box-shadow: 0 0 0.41667vw 0 rgb(8 33 85 / 10%);
height: 100%;
padding: 0.83333vw;
overflow-y: scroll;
overflow-x: hidden !important;
/* stylelint-disable-next-line property-no-vendor-prefix */
-moz-box-sizing: border-box;
/* stylelint-disable-next-line property-no-vendor-prefix */
-webkit-box-sizing: border-box;
/* stylelint-disable-next-line property-no-vendor-prefix */
-o-box-sizing: border-box;
/* stylelint-disable-next-line property-no-vendor-prefix */
-ms-box-sizing: border-box;
box-sizing: border-box;
}
.detailForm-content {
margin-right: 30px;
margin-right: 30px;
}
:deep(.el-form) {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
:deep(.el-form-item) {
width: 45%;
width: 45%;
}
</style>

View File

@ -43,21 +43,6 @@
<el-option label="女" :value="0"></el-option>
</el-select>
</el-form-item>
<el-form-item prop="areaCode" label="所属区域">
<el-cascader
:disabled="readonly"
ref="cascader"
v-model="formData.areaCode"
placeholder="请选择地区"
:options="orgList"
:props="{
checkStrictly: true,
label: 'orgname',
value: 'orgcode',
}"
clearable
></el-cascader>
</el-form-item>
<el-form-item label="人员标签" prop="peopleTag">
<el-select
:disabled="readonly"
@ -93,17 +78,6 @@
value-format="YYYY-MM-DD"
/>
</el-form-item>
<el-form-item label="创建时间" prop="createTime">
<el-date-picker
:disabled="readonly"
v-model="formData.createTime"
type="date"
placeholder="请选择创建时间"
size="default"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
/>
</el-form-item>
<el-form-item label="类型" prop="typeId" style="width: 100%;">
<el-select
multiple
@ -226,12 +200,10 @@ let isCardId = (rule, value, callback) => {
const ruleForm = reactive<FormRules>({
name: [{ required: true, message: "请输入姓名", trigger: "blur" }],
phoneNumber: [{ required: true, message: "请输入电话", trigger: "blur" }],
areaCode: [{ required: true, message: "请选择地区", trigger: "blur" }],
idCard: [
{ required: true, message: "请输入身份证号", trigger: "blur" },
{ validator: isCardId, trigger: "blur" },
],
createTime: [{ required: true, message: "请选择创建时间", trigger: "blur" }],
sex: [{ required: true, message: "请选择性别", trigger: "blur" }],
nowAddress: [{ required: true, message: "请输入地址", trigger: "blur" }],
peopleTag: [{ required: true, message: "请选择人员标签", trigger: "blur" }],
@ -252,16 +224,9 @@ const handleSubmit = () => {
} else {
let params = {
...formData.value,
areaCode: "",
peopleId: formData.value.peopleId ? formData.value.peopleId : null,
domicileId:props.id
};
if (formData.value.areaCode instanceof Array) {
params.areaCode =
formData.value.areaCode[formData.value.areaCode.length - 1];
} else {
params.areaCode = formData.value.areaCode;
}
peopleAdd(params).then((res: any) => {
if (res.code == 1) {
ElMessage.success({
@ -281,13 +246,6 @@ const handleSubmit = () => {
return false;
});
};
//
const orgList = ref([]);
const getareaTree = () => {
areaTree(userId.value).then((res: any) => {
orgList.value = res.data;
});
};
//
const typeList = ref([]);
const getCrTypeList = () => {
@ -331,7 +289,6 @@ const getPeopleIdCard = () =>{
});
}
onMounted(() => {
getareaTree();
getCrTypeList();
getCrRelationList();
});

View File

@ -0,0 +1,170 @@
<template>
<BaseDialog :dialogVisible="props.visible" @close="onclone" :titleName="titleName + '证件'" width="50%"
@onSubmit="handleSubmit" :footerclosed="true" :footerkeepnaem="readonly ? false : true" :diafooter="true">
<div class="detailForm-content">
<el-form ref="formRef" label-width="120" :rules="ruleForm" :model="formData">
<el-form-item label="证件号" prop="papersCard">
<el-input :disabled="readonly" placeholder="请输入证件号" type="input" v-model="formData.papersCard" />
</el-form-item>
<el-form-item label="类型" prop="papersType">
<el-select :disabled="readonly" placeholder="请选择类型" v-model="formData.papersType">
<el-option label="不动产证" :value='1'></el-option>
<el-option label="土地使用证" :value='2'></el-option>
</el-select>
</el-form-item>
<el-form-item label="备注" prop="remarks" style="width: 100%;">
<el-input :disabled="readonly" placeholder="请输入证件号" type="textarea"
:autosize="{ minRows: 2, maxRows: 4 }" v-model="formData.remarks" />
</el-form-item>
<el-form-item label="文件" prop="fileUrl" style="width: 100%;">
<el-image style="margin-right: 10px;border-radius: 6px;" v-if="imageUrl" :src="baseUrl + imageUrl" :zoom-rate="1.2" :max-scale="7" :min-scale="0.2"
:preview-src-list="[baseUrl + imageUrl]" :initial-index="4" fit="cover" class="avatar" />
<el-upload v-if="!readonly" class="avatar-uploader" action="#" accept=".png,.jpg" :show-file-list="false"
:http-request="handleUploadAfter">
<el-icon class="avatar-uploader-icon">
<Plus />
</el-icon>
</el-upload>
</el-form-item>
</el-form>
</div>
</BaseDialog>
</template>
<script setup lang='ts'>
import { reactive, ref, onMounted, watch } from "vue";
import { ElMessage, FormInstance, FormRules } from "element-plus";
import type { UploadProps } from 'element-plus'
import { papersAdd, peopleDetail } from "@/api/base";
import { uploadFile, getFile, delFile } from "@/api/file";
import { getUUID, FileType } from "@/utils/common";
import useUserStore from "@/store/modules/user";
const userStore = useUserStore();
const user = ref(JSON.parse(userStore.userInfo));
const userId = ref(user.value.userId);
const uuid = ref('');
const props = defineProps({
visible: {
type: Boolean,
default: false,
},
readonly: {
type: Boolean,
default: false,
},
id: {
type: String,
default: "",
},
form: Object,
});
const emits = defineEmits(["close"]);
const titleName = ref("新增");
//
const formRef = ref<FormInstance>();
const ruleForm = reactive<FormRules>({
papersCard: [{ required: true, message: "请输入证件号", trigger: "blur" }],
papersType: [{ required: true, message: "请选择类型", trigger: "blur" }],
fileUrl: [{ required: true, message: "请上传文件", trigger: "blur" }],
});
const formData = ref<any>({});
//退
const handleSubmit = () => {
formRef.value?.validate((valid) => {
if (valid) {
let params = {
...formData.value,
papersId: formData.value.papersId ? formData.value.papersId : uuid.value,
fileUrl: imageUrl.value,
domicileId: props.id
};
papersAdd(params).then((res: any) => {
if (res.code == 1) {
ElMessage.success({
message: "操作成功",
type: "success",
});
onclone();
} else {
ElMessage.error({
message: res.message,
type: "error",
});
}
});
}
return false;
});
};
//
const imageUrl = ref('');
const baseUrl = ref(import.meta.env.VITE_UPLOAD_URL);
const handleUploadAfter = (file: any) => {
const newFile = new FormData();
newFile.append("file", file.file);
uploadFile(userId.value, formData.value.papersId || uuid.value, FileType.workManagement, newFile).then((res) => {
if (res) {
ElMessage.success("上传成功!");
imageUrl.value = res.data.filepath;
formData.value.fileUrl = res.data.filepath;
}
})
};
//
const onclone = () => {
formRef.value?.clearValidate();
formData.value = {};
imageUrl.value = '';
emits("close");
};
onMounted(() => {
});
//
watch(
() => props.form,
(val: any) => {
titleName.value = val.papersId ? "编辑" : "新增";
uuid.value = getUUID();
if (val.papersId) {
imageUrl.value = val.fileUrl;
formData.value = val;
}
}
);
</script>
<style scoped lang="scss">
.detailForm-content {
margin-right: 30px;
}
.idCardButton {
margin-top: 10px;
}
::v-deep(.el-upload-list__item-actions) {
display: flex;
>span:nth-child(2) {
margin-left: 10px;
}
}
::v-deep(.el-upload-list__item-preview) {
margin-right: 10px;
display: flex;
align-items: center;
>span {
margin-left: 10px;
}
}
::v-deep(.avatar-uploader-icon) {
width: 100px;
height: 100px;
}
</style>

View File

@ -110,7 +110,7 @@
</el-form-item>
</el-form>
<el-dialog v-model="upVisible">
<img w-full :src="upImageUrl" alt="Preview Image" />
<img style="width: 100%;" w-full :src="upImageUrl" alt="Preview Image" />
</el-dialog>
</div>
</BaseDialog>

View File

@ -33,6 +33,22 @@
</el-option>
</el-select>
</div>
<div class="label-select filter-tab">
<label>地区</label>
<el-cascader
@change="getList"
ref="cascader"
v-model="areaCode"
placeholder="请选择地区"
:options="orgList"
:props="{
checkStrictly: true,
label: 'orgname',
value: 'orgcode',
}"
clearable
></el-cascader>
</div>
</div>
</div>
<div style="width: 30%;">
@ -170,6 +186,7 @@
import { onMounted, reactive, ref } from "vue";
import { ElMessage, ElMessageBox } from "element-plus";
import { riskPoolPage, riskTypeList, riskPoolDel } from "@/api/emergency";
import { areaTree } from "@/api/account";
import AddEdit from "./dialog/add-edit.vue";
import Adddynamic from "./dialog/add-dynamic.vue";
@ -182,6 +199,7 @@ const types = ref([]);
const type = ref("");
const search = ref("");
const areaCode = ref([])
const tableData = ref([]);
const currentPage = ref(1);
const pageSize = ref(10);
@ -204,6 +222,7 @@ const getList = () => {
userId: userId.value,
limit: pageSize.value,
page: currentPage.value,
areaCode: areaCode.value?areaCode.value[areaCode.value.length - 1]:'',
};
riskPoolPage(params).then((res: any) => {
tableData.value = res.data.list;
@ -257,9 +276,17 @@ const adddynamic = (id:any) => {
dialogdynamic.value = true;
dynamicid.value = id;
}
//
const orgList = ref([]);
const getareaTree = () => {
areaTree(userId.value).then((res: any) => {
orgList.value = res.data;
});
};
onMounted(() => {
getList();
getRiskTypeList();
getareaTree();
});
</script>

View File

@ -45,7 +45,7 @@
></el-cascader>
</el-form-item>
<el-form-item label="值班地点" prop="postName">
<el-select
<!-- <el-select
v-model="formData.postName"
placeholder="请选择值班地点"
size="large"
@ -56,7 +56,12 @@
:label="item"
:value="item"
/>
</el-select>
</el-select> -->
<el-input
placeholder="请输入值班地点"
type="input"
v-model="formData.postName"
/>
</el-form-item>
<el-form-item label="值班时间" prop="dutyTime">
<el-date-picker

View File

@ -3,7 +3,7 @@
<div class="content">
<div style="margin-bottom: 16px;" class="h-layout space-between h-center">
<div>
<div class="h-layout">
<div class="h-layout h-center">
<div
class="tool-item"
@click="(dialogVisible = true), (form = {}), (readonly = false)"
@ -15,6 +15,22 @@
<svg-icon name="refurbish" class="icon" />
<span>刷新</span>
</div>
<div class="label-select filter-tab">
<label>地区</label>
<el-cascader
@change="getList"
ref="cascader"
v-model="areaCode"
placeholder="请选择地区"
:options="orgList"
:props="{
checkStrictly: true,
label: 'orgname',
value: 'orgcode',
}"
clearable
></el-cascader>
</div>
</div>
</div>
<div style="width: 30%;">
@ -138,6 +154,7 @@
import { onMounted, reactive, ref } from "vue";
import { ElMessage, ElMessageBox } from "element-plus";
import { getOtheWareHousePage, delOtheWareHouse } from "@/api/Othteam";
import { areaTree } from "@/api/account";
import AddDetails from "./dialog/add-house-dialog.vue";
import useUserStore from "@/store/modules/user";
@ -148,6 +165,7 @@ const userStore = useUserStore();
const user = ref(JSON.parse(userStore.userInfo));
const userId = ref(user.value.userId);
const search = ref([]);
const areaCode = ref([])
const tableData = ref([]);
const currentPage = ref(1);
const pageSize = ref(10);
@ -165,6 +183,7 @@ const getList = () => {
houseName: search.value,
limit: pageSize.value,
page: currentPage.value,
areaCode: areaCode.value?areaCode.value[areaCode.value.length - 1]:'',
};
getOtheWareHousePage(params).then((res: any) => {
tableData.value = res.data.list;
@ -212,8 +231,16 @@ const toDetail = (id) => {
query: { id: id },
});
};
//
const orgList = ref([]);
const getareaTree = () => {
areaTree(userId.value).then((res: any) => {
orgList.value = res.data;
});
};
onMounted(() => {
getList();
getareaTree();
});
</script>
<style lang="scss" scoped>

View File

@ -108,6 +108,12 @@
align="center"
label="备注"
></el-table-column>
<el-table-column
prop="createTime"
:resizable="true"
align="center"
label="时间"
></el-table-column>
</el-table>
<!-- 分页 -->
<el-pagination

View File

@ -37,6 +37,22 @@
</el-option>
</el-select>
</div>
<div class="label-select filter-tab">
<label>地区</label>
<el-cascader
@change="getList"
ref="cascader"
v-model="areaCode"
placeholder="请选择地区"
:options="orgList"
:props="{
checkStrictly: true,
label: 'orgname',
value: 'orgcode',
}"
clearable
></el-cascader>
</div>
</div>
</div>
<div style="width: 30%;">
@ -151,6 +167,7 @@
<script lang='ts' setup>
import { onMounted, reactive, ref } from "vue";
import { getOthplanPage, othplanemerEventType, delOthplan } from "@/api/emergency";
import { areaTree } from "@/api/account";
import Adddetails from "./details.vue";
import { ElMessage, ElMessageBox } from "element-plus";
import useUserStore from "@/store/modules/user";
@ -158,6 +175,7 @@ const userStore = useUserStore();
const user = ref(JSON.parse(userStore.userInfo));
const userId = ref(user.value.userId);
const search = ref([]);
const areaCode = ref([])
const tableData = ref([]);
const currentPage = ref(1);
const pageSize = ref(10);
@ -179,10 +197,9 @@ const getList = () => {
othtypeid: type.value,
limit: pageSize.value,
page: currentPage.value,
areaCode: areaCode.value?areaCode.value[areaCode.value.length - 1]:'',
};
getOthplanPage(params).then((res: any) => {
console.log(res,'res==>');
tableData.value = res.data.list;
total.value = res.data.total;
tableDataloading.value = false;
@ -191,8 +208,6 @@ const getList = () => {
//
const OthtypeList = () => {
othplanemerEventType().then((res: any) => {
console.log(res.data , '获取预案类型==>');
option.value = res.data;
});
};
@ -229,9 +244,17 @@ const del = (id) => {
});
});
};
//
const orgList = ref([]);
const getareaTree = () => {
areaTree(userId.value).then((res: any) => {
orgList.value = res.data;
});
};
onMounted(() => {
getList();
OthtypeList();
getareaTree();
});
</script>
<style lang="scss" scoped>

View File

@ -3,7 +3,7 @@
<div class="content">
<div style="margin-bottom: 16px;" class="h-layout space-between h-center">
<div>
<div class="h-layout">
<div class="h-layout h-center">
<div class="tool-item" @click="(dialogVisible = true), (form = {})">
<svg-icon name="add" class="icon" />
<span>新增</span>
@ -12,7 +12,24 @@
<svg-icon name="refurbish" class="icon" />
<span>刷新</span>
</div>
<div class="label-select filter-tab">
<label>地区</label>
<el-cascader
@change="getList"
ref="cascader"
v-model="areaCode"
placeholder="请选择地区"
:options="orgList"
:props="{
checkStrictly: true,
label: 'orgname',
value: 'orgcode',
}"
clearable
></el-cascader>
</div>
</div>
</div>
<div style="width: 30%;">
<div>
@ -113,6 +130,7 @@ import { onMounted, reactive, ref } from "vue";
import { ElMessage, ElMessageBox } from "element-plus";
import { useRouter } from "vue-router";
import { getOthteamPage, delOthteam } from "@/api/Othteam";
import { areaTree } from "@/api/account";
import Adddetails from "./add-team-dialog.vue";
import useUserStore from "@/store/modules/user";
const userStore = useUserStore();
@ -121,6 +139,7 @@ const user = ref(JSON.parse(userStore.userInfo));
const userId = ref(user.value.userId);
const router = useRouter();
const search = ref([]);
const areaCode = ref([])
const tableDataloading = ref(false);
const dialogVisible = ref(false);
const form = ref({});
@ -137,6 +156,7 @@ const getList = () => {
page: currentPage.value,
possession: null,
teamname: search.value,
areaCode: areaCode.value?areaCode.value[areaCode.value.length - 1]:'',
};
getOthteamPage(params).then((res: any) => {
tableData.value = res.data.list;
@ -185,8 +205,16 @@ const onclone = () => {
form.value = {};
getList();
};
//
const orgList = ref([]);
const getareaTree = () => {
areaTree(userId.value).then((res: any) => {
orgList.value = res.data;
});
};
onMounted(() => {
getList();
getareaTree();
});
</script>
<style lang="scss" scoped>

View File

@ -4,7 +4,7 @@
<div class="content">
<div style="margin-bottom: 16px;" class="h-layout space-between h-center">
<div>
<div class="h-layout">
<div class="h-layout h-center">
<div
class="tool-item"
@click="(dialogVisible = true), (form = {}), (readonly = false)"
@ -20,6 +20,22 @@
<svg-icon name="delete" class="icon" />
<span>删除</span>
</div> -->
<div class="label-select filter-tab">
<label>地区</label>
<el-cascader
@change="getList"
ref="cascader"
v-model="areaCode"
placeholder="请选择地区"
:options="orgList"
:props="{
checkStrictly: true,
label: 'orgname',
value: 'orgcode',
}"
clearable
></el-cascader>
</div>
</div>
</div>
<div style="width: 30%;">
@ -133,6 +149,7 @@
import { onMounted, reactive, ref } from "vue";
import { ElMessage, ElMessageBox } from "element-plus";
import { refugePage, refugeDel } from "@/api/emergency";
import { areaTree } from "@/api/account";
import AddEdit from "./dialog/add-edit-dialog.vue";
import useUserStore from "@/store/modules/user";
@ -141,6 +158,7 @@ const user = ref(JSON.parse(userStore.userInfo));
const userId = ref(user.value.userId);
const search = ref("");
const areaCode = ref([])
const tableData = ref([]);
const currentPage = ref(1);
const pageSize = ref(10);
@ -158,7 +176,8 @@ const getList = () => {
let params = {
limit: pageSize.value,
page: currentPage.value,
condition:search.value
condition:search.value,
areaCode: areaCode.value?areaCode.value[areaCode.value.length - 1]:'',
};
refugePage(params).then((res: any) => {
console.log(res,'res====>');
@ -200,8 +219,16 @@ const onclone = () => {
form.value = {};
getList();
};
//
const orgList = ref([]);
const getareaTree = () => {
areaTree(userId.value).then((res: any) => {
orgList.value = res.data;
});
};
onMounted(() => {
getList();
getareaTree();
});
</script>

View File

@ -25,6 +25,22 @@
</el-option>
</el-select>
</div>
<div class="label-select filter-tab">
<label>地区</label>
<el-cascader
@change="getList"
ref="cascader"
v-model="areaCode"
placeholder="请选择地区"
:options="orgList"
:props="{
checkStrictly: true,
label: 'orgname',
value: 'orgcode',
}"
clearable
></el-cascader>
</div>
</div>
</div>
<div style="width: 30%;">
@ -141,6 +157,7 @@
import { onMounted, reactive, ref } from "vue";
import { ElMessage, ElMessageBox } from "element-plus";
import { emerEventType, emerEventPage } from "@/api/emergency";
import { areaTree } from "@/api/account";
import AddDetails from "./dialog/details.vue";
import useUserStore from "@/store/modules/user";
@ -151,6 +168,7 @@ const userStore = useUserStore();
const user = ref(JSON.parse(userStore.userInfo));
const userId = ref(user.value.userId);
const search = ref({});
const areaCode = ref([])
const tableData = ref([]);
const currentPage = ref(1);
const pageSize = ref(10);
@ -170,9 +188,9 @@ const getList = () => {
type:search.value.type,
limit: pageSize.value,
page: currentPage.value,
areaCode: areaCode.value?areaCode.value[areaCode.value.length - 1]:'',
};
emerEventPage(params).then((res: any) => {
console.log(res,'获取列表res===>');
tableData.value = res.data.list;
total.value = res.data.total;
tableDataloading.value = false;
@ -224,9 +242,17 @@ const toDetail = (id) => {
query: { id: id },
});
};
//
const orgList = ref([]);
const getareaTree = () => {
areaTree(userId.value).then((res: any) => {
orgList.value = res.data;
});
};
onMounted(() => {
getEmerEventType();
getList();
getareaTree();
});
</script>
<style lang="scss" scoped>

View File

@ -99,7 +99,7 @@
</el-form-item>
</el-form>
<el-dialog v-model="upVisible">
<img w-full :src="upImageUrl" alt="Preview Image" />
<img style="width: 100%;" w-full :src="upImageUrl" alt="Preview Image" />
</el-dialog>
</div>
</BaseDialog>

View File

@ -102,7 +102,7 @@
</el-form-item>
</el-form>
<el-dialog v-model="upVisible">
<img w-full :src="upImageUrl" alt="Preview Image" />
<img style="width: 100%;" w-full :src="upImageUrl" alt="Preview Image" />
</el-dialog>
</div>
<div v-if="props.readonly">

View File

@ -102,7 +102,7 @@
</el-form-item>
</el-form>
<el-dialog v-model="upVisible">
<img w-full :src="upImageUrl" alt="Preview Image" />
<img style="width: 100%;" w-full :src="upImageUrl" alt="Preview Image" />
</el-dialog>
</div>
</BaseDialog>

View File

@ -9,28 +9,39 @@
<span>刷新</span>
</div>
<div class="label-select filter-tab">
<label>时间</label>
<el-date-picker
v-model="search.date"
type="daterange"
range-separator="至"
start-placeholder="起始时间"
end-placeholder="结束时间"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
@change="refresh"
/>
<label>开始时间</label>
<el-date-picker v-model="search.startTime" type="date" placeholder="选择开始时间" format="YYYY/MM/DD"
value-format="YYYY-MM-DD" @change="refresh" />
</div>
<div class="label-select filter-tab">
<label>j结束时间</label>
<el-date-picker v-model="search.endTime" type="date" placeholder="选择结束时间" format="YYYY/MM/DD"
value-format="YYYY-MM-DD" @change="refresh" />
</div>
<div class="label-select filter-tab">
<label>地区</label>
<el-cascader
@change="refresh"
ref="cascader"
v-model="search.areaCode"
placeholder="请选择地区"
:options="orgList"
:props="{
checkStrictly: true,
label: 'orgname',
value: 'orgcode',
}"
clearable
></el-cascader>
</div>
</div>
</div>
<div style="width: 30%;">
<div>
<el-input
v-model="search.condition"
@keydown.enter.native="refresh"
placeholder="请输入关键字"
class="search-input"
>
<el-input v-model="search.condition" @keydown.enter.native="refresh" placeholder="请输入关键字"
class="search-input">
<template #append>
<span @click="refresh" class="search-bottom">
<svg-icon name="search" class="icon_class" />
@ -41,86 +52,37 @@
</div>
</div>
</div>
<el-table
ref="loading"
class="table"
:data="tableData"
v-loading="tableDataloading"
header-row-class-name="el-one-header"
border
>
<el-table-column
align="center"
:resizable="true"
width="100"
label="序列"
type="index"
>
<el-table ref="loading" class="table" :data="tableData" v-loading="tableDataloading"
header-row-class-name="el-one-header" border>
<el-table-column align="center" :resizable="true" width="100" label="序列" type="index">
<template #default="scope">
{{ scope.$index + 1 + (currentPage - 1) * pageSize }}
</template>
</el-table-column>
<el-table-column
prop="nickname"
:resizable="true"
align="center"
label="操作用户"
width="150"
>
<el-table-column prop="nickname" :resizable="true" align="center" label="操作用户" width="150">
</el-table-column>
<el-table-column
prop="targetType"
:resizable="true"
align="center"
label="模块"
width="80"
>
<template #default="scope">
{{scope.row.targetType == 1?'户籍信息':'人员信息'}}
</template>
<el-table-column prop="targetType" :resizable="true" align="center" label="模块" width="80">
<template #default="scope">
{{ scope.row.targetType == 1 ? '户籍信息' : '人员信息' }}
</template>
</el-table-column>
<el-table-column
prop="operationType"
:resizable="true"
align="center"
label="模块"
width="80"
>
<template #default="scope">
{{scope.row.operationType == 1?'新增':scope.row.operationType == 2?'修改':scope.row.operationType == 3?'删除':scope.row.operationType == 4?'注销':'恢复'}}
</template>
<el-table-column prop="operationType" :resizable="true" align="center" label="模块" width="80">
<template #default="scope">
{{ scope.row.operationType == 1 ? '新增' : scope.row.operationType == 2 ? '修改' : scope.row.operationType ==
3 ? '删除' : scope.row.operationType == 4 ? '注销' : '恢复' }}
</template>
</el-table-column>
<el-table-column
prop="url"
:resizable="true"
align="center"
label="请求地址"
width="200"
>
<el-table-column prop="url" :resizable="true" align="center" label="请求地址" width="200">
</el-table-column>
<el-table-column prop="params" :resizable="true" label="请求参数">
</el-table-column>
<el-table-column
prop="createTime"
:resizable="true"
align="center"
label="操作时间"
width="150"
>
<el-table-column prop="createTime" :resizable="true" align="center" label="操作时间" width="150">
</el-table-column>
</el-table>
<!-- 分页 -->
<el-pagination
class="pagination"
@size-change="getList"
@current-change="getList"
v-model:current-page.sync="currentPage"
:page-sizes="[10, 15, 20, 30]"
v-model:page-size.sync="pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
background
>
<el-pagination class="pagination" @size-change="getList" @current-change="getList"
v-model:current-page.sync="currentPage" :page-sizes="[10, 15, 20, 30]" v-model:page-size.sync="pageSize"
layout="total, sizes, prev, pager, next, jumper" :total="total" background>
</el-pagination>
</div>
</div>
@ -129,9 +91,17 @@
<script lang='ts' setup>
import { onMounted, reactive, ref } from "vue";
import { crLogPageList } from "@/api/Sys";
import { areaTree } from "@/api/account";
import useUserStore from "@/store/modules/user";
const userStore = useUserStore();
const user = ref(JSON.parse(userStore.userInfo));
const userId = ref(user.value.userId);
const search = ref({
condition: "",
date: "",
startTime: '',
endTime: '',
areaCode:'',
});
const tableData = ref<any>([]);
const currentPage = ref(1);
@ -146,8 +116,9 @@ const getList = () => {
condition: search.value.condition,
limit: pageSize.value,
page: currentPage.value,
startTime: search.value.date ? search.value.date[0] : "",
endTime: search.value.date ? search.value.date[1] : "",
startTime: search.value.startTime,
endTime: search.value.endTime,
areaCode: search.value.areaCode?search.value.areaCode[search.value.areaCode.length - 1]:'',
};
crLogPageList(params).then((res: any) => {
tableData.value = res.data.list;
@ -155,12 +126,20 @@ const getList = () => {
tableDataloading.value = false;
});
};
const refresh = ()=>{
currentPage.value = 1;
getList();
const refresh = () => {
currentPage.value = 1;
getList();
}
//
const orgList = ref([]);
const getareaTree = () => {
areaTree(userId.value).then((res: any) => {
orgList.value = res.data;
});
};
onMounted(() => {
getList();
getareaTree();
});
</script>
@ -184,6 +163,7 @@ onMounted(() => {
-ms-box-sizing: border-box;
/* stylelint-disable-next-line indentation */
box-sizing: border-box;
.table {
margin-top: 16px;
}

View File

@ -102,7 +102,7 @@
</el-form-item>
</el-form>
<el-dialog v-model="upVisible">
<img w-full :src="upImageUrl" alt="Preview Image" />
<img style="width: 100%;" w-full :src="upImageUrl" alt="Preview Image" />
</el-dialog>
</div>
<div v-if="props.readonly">

View File

@ -210,7 +210,7 @@
</div>
</div>
<el-dialog v-model="upVisible">
<img w-full :src="upImageUrl" alt="Preview Image" />
<img style="width: 100%;" w-full :src="upImageUrl" alt="Preview Image" />
</el-dialog>
<PlanDetail
:visible="dialogVisible"

View File

@ -99,7 +99,7 @@
</el-form-item>
</el-form>
<el-dialog v-model="upVisible">
<img w-full :src="upImageUrl" alt="Preview Image" />
<img style="width: 100%;" w-full :src="upImageUrl" alt="Preview Image" />
</el-dialog>
</div>
</BaseDialog>