Compare commits

..

2 Commits

Author SHA1 Message Date
lcw
1b567a8e75 lcw 2025-07-09 19:27:03 +08:00
lcw
e54185f48b lcw 2025-07-09 18:02:06 +08:00
20 changed files with 568 additions and 605 deletions

View File

@ -157,7 +157,7 @@ export const jczdeleteList = (id) => {
return request({
// url: api + "/tbQwXfll/deleteList",
url: api + `/tbQwXfll/delXfll/${id}`,
method: "post"
method: "delete"
});
};
/*
@ -306,7 +306,7 @@ export const Ttbgetupdate = (data) => {
// 新增人员、车辆布控
export const BkrwinsertEntity = (data) => {
return request({
url: api + `/jczBkrw/insertEntity`,
url: api + `/jczBkry/insertEntity`,
method: "POST",
data
});
@ -314,7 +314,7 @@ export const BkrwinsertEntity = (data) => {
// 查询人员、车辆布控
export const BkrwselectPage = (params) => {
return request({
url: api + `/jczBkrw/selectPage`,
url: api + `/jczBkry/selectPage`,
method: "get",
params
});
@ -322,19 +322,55 @@ export const BkrwselectPage = (params) => {
// 修改查询人员、车辆布控
export const BkrweditEntity = (data) => {
return request({
url: api + `/jczBkrw/editEntity`,
url: api + `/jczBkry/editEntity`,
method: "post",
data
});
};
// 删除查询人员、车辆布控
export const BkrwdeleteById = (data) => {
export const BkrwdeleteById = (id) => {
return request({
url: api + `/jczBkrw/deleteById`,
url: api + `/jczBkry/deleteById/${id}`,
method: "delete",
});
};
export const jczBkclInsertEntity = (data) => {
return request({
url: api + `/jczBkcl/insertEntity`,
method: "POST",
data
});
};
// 查询人员、车辆布控
export const jczBkclSelectPage = (params) => {
return request({
url: api + `/jczBkcl/selectPage`,
method: "get",
params
});
};
// 修改查询人员、车辆布控
export const jczBkclEntity = (data) => {
return request({
url: api + `/jczBkcl/editEntity`,
method: "post",
data
});
};
// 删除查询人员、车辆布控
export const jczBkclDeleteById = (id) => {
return request({
url: api + `/jczBkcl/deleteById/${id}`,
method: "delete",
});
};
// 检查站
// 查询检查站

View File

@ -1,39 +1,26 @@
<template>
<!-- :class="{show:listImg.length==limit}" -->
<div class="form-item-box" :style="{ width: width }">
<el-upload
v-bind="$attrs"
:headers="headers"
:multiple="false"
:disabled="disableds"
class="avatar-uploader"
:limit="props.limit"
:action="actionUrl"
list-type="picture-card"
:file-list="fileList"
show-file-list
:on-exceed="handleExceed"
:on-success="handlerSuccess"
:before-upload="beforeImgUpload"
>
<template #default v-if="props.limit>=fileList.length">
<el-icon> <Plus /> </el-icon>
<el-upload :class="{ 'hide-upload': fileList.length == limit }" v-bind="$attrs" :headers="headers" :multiple="false"
:disabled="disableds" class="avatar-uploader" :limit="props.limit" :action="actionUrl" list-type="picture-card"
:file-list="fileList" show-file-list :on-exceed="handleExceed" :on-success="handlerSuccess"
:before-upload="beforeImgUpload">
<template #default>
<el-icon>
<Plus />
</el-icon>
</template>
<template #file="{ file }">
<div v-if="props.isImg">
<img class="el-upload-list__item-thumbnail" :src="file.url" alt="" />
<span class="el-upload-list__item-actions">
<span
class="el-upload-list__item-preview"
@click="handlePictureCardPreview(file)"
>
<span class="el-upload-list__item-preview" @click="handlePictureCardPreview(file)">
<el-icon> <zoom-in /> </el-icon>
</span>
<span
v-if="!disabled"
class="el-upload-list__item-delete"
@click="handleRemove(file, fileList)"
>
<el-icon><Delete /></el-icon>
<span v-if="!disabled" class="el-upload-list__item-delete" @click="handleRemove(file, fileList)">
<el-icon>
<Delete />
</el-icon>
</span>
</span>
</div>
@ -43,19 +30,15 @@
<span class="file-name">{{ file.name }}</span>
</div>
<span class="el-upload-list__item-actions">
<span
v-if="!disabled"
class="el-upload-list__item-delete"
@click="handleDownload(file)"
>
<el-icon> <Download /> </el-icon>
<span v-if="!disabled" class="el-upload-list__item-delete" @click="handleDownload(file)">
<el-icon>
<Download />
</el-icon>
</span>
<span
v-if="!disabled"
class="el-upload-list__item-delete"
@click="handleRemove(file, fileList)"
>
<el-icon> <Delete /> </el-icon>
<span v-if="!disabled" class="el-upload-list__item-delete" @click="handleRemove(file, fileList)">
<el-icon>
<Delete />
</el-icon>
</span>
</span>
</div>
@ -181,13 +164,19 @@ const headers = ref({
});
const listImg = ref([]);
onMounted(() => {
console.log(props.modelValue);
if (props.modelValue) {
if (props.modelValue&&props.modelValue.length>0) {
if (Array.isArray(props.modelValue)) {
listImg.value = props.modelValue;
fileList.value = props.modelValue.map((el) => {
return { url: `/mosty-api/mosty-base/minio/image/download/` + el };
});
} else {
listImg.value = props.modelValue.split(",");
fileList.value = props.modelValue.split(",").map((el) => {
return { url: `/mosty-api/mosty-base/minio/image/download/` + el };
});
}
} else {
listImg.value = [];
fileList.value = [];
@ -199,10 +188,10 @@ const handlerSuccess = (res, file) => {
file.url = `/mosty-api/mosty-base/minio/image/download/` + res.data;
fileList.value.push(file);
listImg.value.push(res.data);
emits("handleChange", listImg.value);
emits("update:modelValue", listImg.value);
emits("handleChange", listImg.value.toString());
emits("update:modelValue", listImg.value.toString());
};
const handlePreview = (file) => {};
const handlePreview = (file) => { };
const handleExceed = (files, fileList) => {
ElMessage.warning(`限制,只能上传${props.limit}个文件或图片`);
};
@ -242,14 +231,18 @@ const handleRemove = (file) => {
});
fileList.value.splice(index, 1);
listImg.value.splice(index, 1);
emits("handleChange", listImg.value);
emits("update:modelValue", listImg.value);
emits("handleChange", listImg.value.toString());
emits("update:modelValue", listImg.value.toString());
};
onUnmounted(() => {
listImg.value = [];
});
</script>
<style>
.hide-upload .el-upload--picture-card {
display: none;
}
</style>
<style lang="scss" scoped>
.avatar-uploader .el-upload {
border: 1px dashed #d9d9d9;

View File

@ -48,6 +48,19 @@
车牌号{{ item.cph }}
</div>
</div>
<div class="line mt6 mb6"></div>
<div class="warning-card">
<div class="title flex align-center">
<img src="@/assets/images/icon_06.png" alt="" /> 智能设备
</div>
<div
class="cardItem"
v-for="(item, index) in warningList.sbList"
:key="index"
>
名称{{ item.sbmc }}
</div>
</div>
</div>
<Empty :show="warningList == null && show == 2" />
<div class="warning-list" v-if="show == 1 && warningList">
@ -78,7 +91,7 @@ import { ref } from "vue";
import Empty from "@/components/MyComponents/Empty/index.vue";
import { jczqueryById } from "@/api/mosty-jcz";
import emitter from "@/utils/eventBus.js";
const warningList = ref({ qxList: [], ryList: [], clList: [] });
const warningList = ref({ qxList: [], ryList: [], clList: [] ,sbList:[]});
const show = ref(1);
const props = defineProps({
@ -101,6 +114,7 @@ const getjczqueryById = () => {
: [];
warningList.value.ryList = res.ryList ? res.ryList : [];
warningList.value.clList = res.clList ? res.clList : [];
warningList.value.sbList = [...res.tcList,...res.zdList]
} else {
warningList.value = res;
}

View File

@ -10,7 +10,7 @@
<div class="cntinfo">
<div class="flex align-center">
报备单位
<MOSTY.Department v-model="listQuery.ssbmdm" placeholder="请选择部门" @getDepValue="changeDep" />
<MOSTY.Department v-model="listQuery.ssbmdm" placeholder="请选择部门" @getDepValue="changeDep" v-if="!showDetails" />
</div>
<el-form ref="formRef" class="info" :model="listQuery" :inline="true" :rules="rules">
@ -43,7 +43,7 @@
value-format="HH:mm:ss" />
</el-form-item>
<el-form-item prop="bcKts">
<el-select clearable v-model="listQuery.bcKtsDict" placeholder="请选择" style="width: 100%">
<el-select clearable v-model="listQuery.bcKtsDict" placeholder="请选择" style="width: 100%" :disabled="isDetail">
<el-option v-for="(item, index) in dic.D_QW_BC_KTS" :key="index" :label="item.label"
:value="item.value"></el-option>
</el-select>
@ -204,7 +204,7 @@
<div v-for="(item, index) in listQuery.qxList" :key="index" style="width: 30%; margin-bottom: 10px">
<div class="flex">
<div style="width: 30%">{{ item.qxmc }}</div>
<el-input-number v-model="item.qxsl" :step="1" />
<el-input-number :disabled="isDetail" v-model="item.qxsl" :step="1" />
</div>
</div>
</el-form-item>
@ -227,10 +227,10 @@ const props = defineProps({
type: Object,
default: () => { }
},
isDetail: {
type: Boolean,
default: false
}
// isDetail: {
// type: Boolean,
// default: true
// }
});
const emit = defineEmits(["getjczgetXfllList"]);
const formRef = ref(null);
@ -252,11 +252,13 @@ const pageInfo = {
let pageType = ref("add");
const mjData = ref([]);
const fjData = ref([]);
const isDetail=ref(false)
// 初始化数据
const init = (type, row) => {
pageType.value = type;
dialogForm.value = true;
// 根据type和row初始化表单数据
isDetail.value=type=="detail"
if (row) {
listQuery.value = { ...row };
if (row.ryList.length > 0) {
@ -291,8 +293,6 @@ const rules = ref({
const _onSave = () => {
const data = [...mjData.value, ...fjData.value];
console.log(data, "-------------------------------------");
listQuery.value.ryList = ChegeMj(data);
const time = new Date();
listQuery.value.bbSjBbrq = timeValidate(time);

View File

@ -24,6 +24,7 @@
<template #controls="{ row }">
<el-link type="primary" @click="addEdit('edit', row)">编辑</el-link>
<el-link type="primary" @click="delDictItem(row.id)">删除</el-link>
<el-link type="primary" @click="addEdit('detail', row)">详情</el-link>
</template>
</MyTable>
<Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
@ -133,6 +134,7 @@ const getjczgetXfllList = () => {
XfbbselectPage(params).then((res) => {
pageData.tableData = res.records || [];
pageData.total = res.total;
}).finally(() => {
pageData.tableConfiger.loading = false;
});
};

View File

@ -49,6 +49,7 @@ import Pages from "@/components/aboutTable/Pages.vue";
import Search from "@/components/aboutTable/Search.vue";
import EditAddForm from "./components/editAddForm.vue";
import { GjcltxselectPage, GjcltxdeleteById } from "@/api/mosty-jcz.js";
import { ElMessage } from "element-plus";
import { isAuth } from '@/utils/tools.js'
import { reactive, ref, onMounted, getCurrentInstance } from "vue";
const { proxy } = getCurrentInstance();

View File

@ -89,7 +89,8 @@ import PageTitle from "@/components/aboutTable/PageTitle.vue";
import MyTable from "@/components/aboutTable/MyTable.vue";
import Pages from "@/components/aboutTable/Pages.vue";
import Search from "@/components/aboutTable/Search.vue";
import {isAuth }from '@/utils/tools.js'
import { isAuth } from '@/utils/tools.js'
import { ElMessage } from "element-plus";
import EditAddForm from "./components/editAddForm.vue";
import { GjrytxselectPage, GjrytxdeleteById } from "@/api/mosty-jcz.js";
import { reactive, ref, onMounted, getCurrentInstance } from "vue";

View File

@ -36,7 +36,7 @@
/>
</el-form-item>
<el-form-item prop="sydwdm" label="使用单位">
<MOSTY.Department :disabled="sydwmc"
<MOSTY.Department :disabled="forbidden"
:placeholder="listQuery.ssbm"
style="width: 100%"
ref="cascader"
@ -45,6 +45,7 @@
filterable
:options="depList"
:props="props"
v-model:modelValue="listQuery.sydwdm"
/>
</el-form-item>

View File

@ -9,45 +9,31 @@
</div>
<div class="cntinfo">
<el-form ref="formRef" :model="listQuery" :inline="true" label-position="top" :rules="rules">
<div style="
width: 25%;
display: flex;
justify-content: center;
margin-bottom: 10px;
">
<div style="position: relative; width: 90px; height: 100px">
<el-upload :disabled="forbidden" action="/mosty-api/mosty-base/minio/image/upload/id" :on-success="upImg"
:show-file-list="false">
<el-image v-if="imgUrl" :src="imgUrl" fit="cover" />
<el-icon v-else>
<Plus></Plus>
</el-icon>
<span v-if="imgUrl" style="position: absolute; top: -52px; right: -20px">
<el-icon size="20" @click.stop="deletImg">
<Close />
</el-icon>
</span>
</el-upload>
<div style=" width: 100%; ">
<MOSTY.Upload width="100%" :limit="1" :isImg="true" v-model="listQuery.zp" :disableds="forbidden"/>
</div>
</div>
<el-form-item style="width: 20%" prop="ssbmdm" label="所属部门">
<MOSTY.Department :disabled="forbidden" width="100%" clearable v-model="listQuery.ssbmdm"
:placeholder="listQuery.ssbm ? listQuery.ssbm : '请选择所属部门'" />
<el-form-item style="width: 40%" prop="xm" label="姓名">
<el-input :disabled="forbidden" v-model="listQuery.xm" placeholder="请输入姓名" style="width: 100%" clearable />
</el-form-item>
<el-form-item style="width: 40%" prop="bkmc" label="布控名称">
<el-input :disabled="forbidden" v-model="listQuery.bkmc" placeholder="请输入布控名称" style="width: 100%"
<el-form-item style="width: 40%" prop="zjhm" label="身份证号">
<el-input :disabled="forbidden" v-model="listQuery.zjhm" placeholder="请输入布控人身份证号" style="width: 100%"
clearable />
</el-form-item>
<el-form-item style="width: 40%" prop="bksfzh" label="身份证号">
<el-input :disabled="forbidden" v-model="listQuery.bksfzh" placeholder="请输入布控人身份证号" style="width: 100%"
clearable />
</el-form-item>
<el-form-item style="width: 40%" prop="bklb" label="布控类别">
<el-select :disabled="forbidden" v-model="listQuery.bklb" placeholder="请选择布控类别">
<el-option v-for="dict in dict.D_BZ_RYBKLX" :key="dict.value" :value="dict.value"
<el-form-item style="width: 40%" prop="yjys" label="布控颜色">
<el-select :disabled="forbidden" v-model="listQuery.yjys" placeholder="请选择布控颜色">
<el-option v-for="dict in dict.D_BZ_BKYS" :key="dict.value" :value="dict.value"
:label="dict.label"></el-option>
</el-select>
</el-form-item>
<el-form-item style="width: 40%" prop="bkyy" label="布控原因">
<el-input :disabled="forbidden" v-model="listQuery.bkyy" type="textarea" placeholder="请输入布控原因" clearable />
</el-form-item>
<el-form-item style="width:100%" prop="bkfs" label="布控方式">
<el-radio-group v-model="listQuery.bkfs">
<el-radio label="01">全省布控</el-radio>
<el-radio label="02">精准布控</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item style="width: 40%" prop="bkkssj" label="开始时间">
<el-date-picker :disabled="forbidden" v-model="listQuery.bkkssj" type="datetime" placeholder="请选中开始时间"
format="YYYY-MM-DD hh:mm:ss" value-format="YYYY-MM-DD hh:mm:ss" />
@ -56,50 +42,29 @@
<el-date-picker :disabled="forbidden" v-model="listQuery.bkjssj" type="datetime" placeholder="请选中结束时间"
format="YYYY-MM-DD hh:mm:ss" value-format="YYYY-MM-DD hh:mm:ss" />
</el-form-item>
<el-form-item style="width: 40%" prop="bkqy" label="布控区域">
<el-input :disabled="forbidden" v-model="listQuery.bkqy" placeholder="请输入布控区域" style="width: 100%"
clearable />
</el-form-item>
<el-form-item style="width: 40%" prop="bkzt" label="布控状态">
<el-select :disabled="forbidden" v-model="listQuery.bkzt" placeholder="请选择布控状态">
<el-option v-for="dict in dict.D_BZ_RCBKZT" :key="dict.value" :value="dict.value"
<el-form-item style="width: 40%" prop="czcs" label="处置措施">
<el-select :disabled="forbidden" v-model="listQuery.czcs" placeholder="请选择布控颜色">
<el-option v-for="dict in dict.D_BZ_CZCS" :key="dict.value" :value="dict.value"
:label="dict.label"></el-option>
</el-select>
</el-form-item>
<el-form-item style="width: 40%" prop="bkfw" label="布控范围">
<el-select :disabled="forbidden" v-model="listQuery.bkfw" placeholder="请选择布控状态">
<el-option v-for="dict in dict.D_BZ_RCBKFW" :key="dict.value" :value="dict.value"
:label="dict.label"></el-option>
</el-select>
</el-form-item>
<el-form-item style="width: 40%" prop="bkczlx" label="布控操作类型">
<el-input :disabled="forbidden" v-model="listQuery.bkczlx" placeholder="请输入布控区域" style="width: 100%"
clearable />
</el-form-item>
<el-form-item style="width: 40%" prop="bkdxtzm" label="布控对象特征码">
<el-input :disabled="forbidden" v-model="listQuery.bkdxtzm" placeholder="请输入布控区域" style="width: 100%"
clearable />
</el-form-item>
<el-form-item style="width: 40%" prop="bkkk" label="布控卡口">
<el-form-item style="width: 40%" prop="jczid" label="布控卡口" v-if="listQuery.bkfs=='02'">
<div class="diviput" @click="openJcz">
<span v-if="listQuery.bkkk">{{ listQuery.bkkk }}</span>
<span v-if="listQuery.jczid">{{ listQuery.jczmc }}</span>
<span class="placeholder" v-else> 请选择布控卡口</span>
</div>
</el-form-item>
</el-form>
</div>
</div>
<Jczloder v-model="showJcz" :Single="true" @choosedJcz="JczMsg" :data="[]" />
<Jczloder v-model="showJcz" :Single="false" @choosedJcz="JczMsg" :data="[]" />
</template>
<script setup>
import { ref, reactive, onMounted } from "vue";
import { BkrwinsertEntity, BkrweditEntity } from "@/api/mosty-jcz.js";
import * as MOSTY from "@/components/MyComponents/index";
import emitter from "@/utils/eventBus.js";
import { BkrwinsertEntity, BkrweditEntity } from "@/api/mosty-jcz.js";
import Jczloder from "@/components/loder/Jczloder.vue";
import GdMap from "@/components/GdMap/index.vue";
import { ElMessage } from "element-plus";
const props = defineProps({
dict: {
@ -108,16 +73,16 @@ const props = defineProps({
}
});
const rules = reactive({
bkdxtzm: [
xm: [
{
required: true,
message: "请输入布控对象特征码"
message: "请输入布控姓名"
}
],
bkbsm: [
zjhm: [
{
required: true,
message: "请输入布控标识码"
message: "请输入布控人身份证号"
}
],
bkkk: [
@ -126,10 +91,10 @@ const rules = reactive({
message: "请选择布控卡口"
}
],
bkjssj: [
yjys: [
{
required: true,
message: "请选择布控结束时间"
message: "请选择预警颜色"
}
],
bkkssj: [
@ -138,37 +103,28 @@ const rules = reactive({
message: "请选择布控开始时间"
}
],
bkzt: [
{
required: true,
message: "请选择布控状态"
}
],
bksfzh: [
bkjssj: [
{
required: true,
message: "请输入布控身份证号"
}
],
bkqy: [
bkfs: [
{
required: true,
message: "请输入布控区域",
trigger: "change"
message: "请输入布控方式"
}
], bkcs: [
{
required: true,
message: "请输选择布控措施"
}
],
bkmc: [
{
bkyy: {
required: true,
message: "请输入布控名称"
message: "请输入布控原因"
}
],
bklb: [
{
required: true,
message: "请选择布控类别"
}
]
});
const formRef = ref(null);
const emit = defineEmits(["getjczgetXfllList"]);
@ -198,7 +154,7 @@ const init = (type, row) => {
// 根据type和row初始化表单数据
tabHeightFn();
if (type == "edit" || type == "detail") {
listQuery.value = { ...row };
listQuery.value = { ...row};
if (type == "detail") {
forbidden.value = true
}
@ -211,7 +167,8 @@ const _onSave = () => {
if (!formRef) return;
formRef.value.validate((valid, fields) => {
if (valid) {
const promes = { ...listQuery.value, bklx: "01" };
const promes = { ...listQuery.value };
// promes.zp=listQuery.value.zp&&Array.isArray(listQuery.value.zp)? listQuery.value.zp.join(","):""
if (pageType.value == "add") {
BkrwinsertEntity(promes).then((res) => {
ElMessage({ message: "新增成功", type: "success" });
@ -231,25 +188,21 @@ const _onSave = () => {
});
console.log();
};
// 图片上传
const imgUrl = ref();
const urlImg = "/mosty-api/mosty-base/minio/image/download/";
const upImg = (row) => {
listQuery.value.bkzp = row.data;
imgUrl.value = urlImg + row.data;
};
//打开弹窗
const showJcz = ref(false);
const openJcz = () => {
if (!forbidden) {
if (!forbidden.value) {
showJcz.value = true
}
};
const JczMsg = (val) => {
listQuery.value.bkkk = val.jczmc;
listQuery.value.kkId = val.id;
listQuery.value.jczmc = val.map(item => {
return item.jczmc
}).toString()
listQuery.value.jczid =val.map(item => {
return item.id
}).toString()
};
//页面关闭
const close = () => {

View File

@ -1,12 +1,12 @@
<template>
<div>
<div class="titleBox" >
<div class="titleBox">
<PageTitle title="人员布控">
<el-button type="primary" @click="addEdit('add', '')" v-if="Auth">
<el-icon style="vertical-align: middle"><CirclePlus /></el-icon>
<span style="vertical-align: middle" @click="addEdit('add', row)"
>新增</span
>
<el-icon style="vertical-align: middle">
<CirclePlus />
</el-icon>
<span style="vertical-align: middle" @click="addEdit('add', row)">新增</span>
</el-button>
</PageTitle>
</div>
@ -15,24 +15,24 @@
<Search :searchArr="searchConfiger" @submit="onSearch" />
</div>
<div class="tabBox">
<MyTable
:tableData="pageData.tableData"
:tableColumn="pageData.tableColumn"
:tableHeight="pageData.tableHeight"
:key="pageData.keyCount"
:tableConfiger="pageData.tableConfiger"
:controlsWidth="pageData.controlsWidth"
@chooseData="chooseData"
>
<template #bklb="{ row }">
<dict-tag :value="row.bklb" :options="D_BZ_RYBKLX" :tag="false" />
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth"
@chooseData="chooseData">
<template #yjys="{ row }">
<dict-tag :value="row.yjys" :options="D_BZ_BKYS" :tag="false" />
</template>
<template #bkzt="{ row }">
<template #bkfs="{ row }">
{{ row.bkfs=='01'?"全省布控":"精准布控" }}
</template>
<template #bkcs="{ row }">
<dict-tag :value="row.yjys" :options="D_BZ_CZCS" :tag="false" />
</template>
<!-- <template #bkzt="{ row }">
<dict-tag :value="row.bkzt" :options="D_BZ_RCBKZT" :tag="false" />
</template>
<template #bkfw="{ row }">
<dict-tag :value="row.bkfw" :options="D_BZ_RCBKFW" :tag="false" />
</template>
</template> -->
<!-- 操作 -->
<template #controls="{ row }">
@ -43,26 +43,15 @@
<el-link type="primary" @click="addEdit('detail', row)">详情</el-link>
</template>
</MyTable>
<Pages
@changeNo="changeNo"
@changeSize="changeSize"
:tableHeight="pageData.tableHeight"
:pageConfiger="{
<Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
...pageData.pageConfiger,
total: pageData.total
}"
></Pages>
}"></Pages>
</div>
<!-- 编辑详情 -->
<EditAddForm
ref="detailDiloag"
:dict="{
D_BZ_RCBKZT,
D_BZ_RCBKFW,
D_BZ_RYBKLX
}"
@getjczgetXfllList="getjczgetXfllList"
/>
<EditAddForm ref="detailDiloag" :dict="{
D_BZ_BKYS,D_BZ_CZCS
}" @getjczgetXfllList="getjczgetXfllList" />
</div>
</template>
@ -71,16 +60,15 @@ import PageTitle from "@/components/aboutTable/PageTitle.vue";
import MyTable from "@/components/aboutTable/MyTable.vue";
import Pages from "@/components/aboutTable/Pages.vue";
import Search from "@/components/aboutTable/Search.vue";
import { ElMessage } from "element-plus";
import EditAddForm from "./components/editAddForm.vue";
import { BkrwselectPage, BkrwdeleteById } from "@/api/mosty-jcz.js";
import {isAuth} from '@/utils/tools.js'
import { isAuth } from '@/utils/tools.js'
import { reactive, ref, onMounted, getCurrentInstance } from "vue";
const { proxy } = getCurrentInstance();
const urlImg = "/mosty-api/mosty-base/minio/image/download/";
const { D_BZ_RCBKZT, D_BZ_RCBKFW, D_BZ_RYBKLX } = proxy.$dict(
"D_BZ_RCBKZT",
"D_BZ_RCBKFW",
"D_BZ_RYBKLX"
const { D_BZ_BKYS,D_BZ_CZCS } = proxy.$dict(
"D_BZ_BKYS","D_BZ_CZCS"
);
const searchConfiger = ref([
{
@ -95,26 +83,15 @@ const searchConfiger = ref([
placeholder: "请输入证件号码",
showType: "input"
},
{
label: "布控状态",
prop: "bkzt",
placeholder: "布控状态",
label: "布控颜色",
prop: "yjys",
placeholder: "布控颜色",
showType: "select",
options: D_BZ_RCBKZT
options: D_BZ_BKYS
},
{
label: "布控类别",
prop: "bklb",
placeholder: "布控类别",
showType: "select",
options: D_BZ_RYBKLX
},
{
showType: "department",
prop: "ssbmdm",
placeholder: "请选择所属部门",
label: "所属部门"
}
]);
const detailDiloag = ref();
@ -133,52 +110,48 @@ const pageData = reactive({
}, //分页
controlsWidth: 250, //操作栏宽度
tableColumn: [
{ label: "所属部门", prop: "ssbm", showOverflowTooltip: true },
{
label: "布控区域",
prop: "bkqy",
label: "布控姓名",
prop: "xm",
showOverflowTooltip: true
// showSolt: true
},
{
label: "布控名称",
prop: "bkmc",
label: "布控人身份证号",
prop: "zjhm",
showOverflowTooltip: true
},
{
label: "布控类别",
prop: "bklb",
label: "预警颜色",
prop: "yjys",
showSolt: true,
showOverflowTooltip: true
},
{
label: "布控状态",
prop: "bkzt",
showSolt: true,
showOverflowTooltip: true
},
{
label: "布控范围",
prop: "bkfw",
showSolt: true,
showOverflowTooltip: true
},
{ label: "布控开始时间", prop: "bkkssj", showOverflowTooltip: true },
{
label: "布控结束时间",
prop: "bkjssj",
showOverflowTooltip: true
},
{
label: "布控方式",
prop: "bkfs",
showSolt: true,
},
{
label: "布控措施",
prop: "bkcs",
showSolt: true,
}
]
});
const Auth = ref(false)
onMounted(() => {
tabHeightFn();
Auth.value=isAuth()
Auth.value = isAuth()
});
//查询条件
const queryCondition = ref({ bklx: "01" });
const queryCondition = ref();
// 获取数据
const getjczgetXfllList = () => {
pageData.tableConfiger.loading = true;
@ -195,7 +168,7 @@ const getjczgetXfllList = () => {
getjczgetXfllList();
// 搜索
const onSearch = (val) => {
queryCondition.value = { ...queryCondition.value, ...val };
queryCondition.value = { ...val };
getjczgetXfllList();
};
@ -212,7 +185,7 @@ const delDictItem = (ids) => {
proxy
.$confirm("确定删除该数据?", "警告", { type: "warning" })
.then(() => {
BkrwdeleteById({ ids: ids })
BkrwdeleteById( ids)
.then((res) => {
ElMessage({ message: "删除成功", type: "success" });
pageData.pageConfiger.pageCurrent = 1;

View File

@ -3,192 +3,95 @@
<div class="head_box">
<span class="title">{{ pageInfo[pageType].title }}</span>
<div>
<el-button
size="small"
type="primary"
v-if="['add', 'edit'].includes(pageType)"
@click="_onSave"
>保存</el-button
>
<el-button size="small" type="primary" v-if="['add', 'edit'].includes(pageType)" @click="_onSave">保存</el-button>
<el-button size="small" @click="close">关闭</el-button>
</div>
</div>
<div class="cntinfo">
<el-form
ref="formRef"
:model="listQuery"
:inline="true"
label-position="top"
:rules="rules"
>
<div
style="
width: 25%;
display: flex;
justify-content: center;
margin-bottom: 10px;
"
>
<div style="position: relative; width: 90px; height: 100px">
<el-upload :disabled="forbidden"
action="/mosty-api/mosty-base/minio/image/upload/id"
:on-change="upImgFile"
:on-success="upImg"
:show-file-list="false"
>
<el-image v-if="imgUrl" :src="imgUrl" fit="cover" />
<el-icon v-else>
<Plus></Plus>
</el-icon>
<span
v-if="imgUrl"
style="position: absolute; top: -52px; right: -20px"
>
<el-icon size="20" @click.stop="deletImg">
<Close />
</el-icon>
</span>
</el-upload>
</div>
</div>
<el-form-item style="width: 20%" prop="ssbmdm" label="所属部门">
<MOSTY.Department
width="100%" :disabled="forbidden"
clearable
v-model="listQuery.ssbmdm"
:placeholder="listQuery.ssbm ? listQuery.ssbm : '请选择所属部门'"
/>
<el-form ref="formRef" :model="listQuery" :inline="true" label-position="top" :rules="rules">
<el-form-item style="width: 40%" prop="cph" label="车牌号">
<el-input :disabled="forbidden" v-model="listQuery.cph" placeholder="请输入车牌号" style="width: 100%" clearable />
</el-form-item>
<el-form-item style="width: 40%" prop="bklb" label="布控类别">
<el-select v-model="listQuery.bklb" placeholder="请选择布控类别">
<el-option :disabled="forbidden"
v-for="dict in dict.D_BZ_CLBKLX"
:key="dict.value"
:value="dict.value"
:label="dict.label"
></el-option>
<el-form-item style="width: 40%" prop="cpys" label="车牌颜色">
<el-select :disabled="forbidden" v-model="listQuery.cpys" placeholder="请选择车牌颜色" filterable>
<el-option v-for="dict in dict.D_BZ_CPHYS" :key="dict.value" :value="dict.value"
:label="dict.label"></el-option>
</el-select>
</el-form-item>
<el-form-item style="width: 40%" prop="bkcph" label="车牌号">
<el-input :disabled="forbidden"
v-model="listQuery.bkcph"
placeholder="请输入布控车辆车牌号"
style="width: 100%"
clearable
/>
<el-form-item style="width: 40%" prop="yjys" label="布控颜色">
<el-select :disabled="forbidden" v-model="listQuery.yjys" placeholder="请选择布控颜色" filterable>
<el-option v-for="dict in dict.D_BZ_BKYS" :key="dict.value" :value="dict.value"
:label="dict.label"></el-option>
</el-select>
</el-form-item>
<el-form-item style="width: 40%" prop="bkyy" label="布控原因">
<el-input :disabled="forbidden" v-model="listQuery.bkyy" type="textarea" placeholder="请输入布控原因" clearable />
</el-form-item>
<el-form-item style="width:100%" prop="bkfs" label="布控方式">
<el-radio-group v-model="listQuery.bkfs">
<el-radio label="01">全省布控</el-radio>
<el-radio label="02">精准布控</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item style="width: 40%" prop="bkkssj" label="开始时间">
<el-date-picker :disabled="forbidden"
v-model="listQuery.bkkssj"
type="datetime"
placeholder="请选中开始时间"
format="YYYY-MM-DD hh:mm:ss"
value-format="YYYY-MM-DD hh:mm:ss"
/>
<el-date-picker :disabled="forbidden" v-model="listQuery.bkkssj" type="datetime" placeholder="请选中开始时间"
format="YYYY-MM-DD hh:mm:ss" value-format="YYYY-MM-DD hh:mm:ss" />
</el-form-item>
<el-form-item style="width: 40%" prop="bkjssj" label="结束时间">
<el-date-picker :disabled="forbidden"
v-model="listQuery.bkjssj"
type="datetime"
placeholder="请选中结束时间"
format="YYYY-MM-DD hh:mm:ss"
value-format="YYYY-MM-DD hh:mm:ss"
/>
<el-date-picker :disabled="forbidden" v-model="listQuery.bkjssj" type="datetime" placeholder="请选中结束时间"
format="YYYY-MM-DD hh:mm:ss" value-format="YYYY-MM-DD hh:mm:ss" />
</el-form-item>
<el-form-item style="width: 40%" prop="bkqy" label="布控区域">
<el-input :disabled="forbidden"
v-model="listQuery.bkqy"
placeholder="请输入布控区域"
style="width: 100%"
clearable
/>
</el-form-item>
<el-form-item style="width: 40%" prop="bkzt" label="布控状态">
<el-select :disabled="forbidden" v-model="listQuery.bkzt" placeholder="请选择布控状态">
<el-option
v-for="dict in dict.D_BZ_RCBKZT"
:key="dict.value"
:value="dict.value"
:label="dict.label"
></el-option>
<el-form-item style="width: 40%" prop="czcs" label="处置措施">
<el-select :disabled="forbidden" v-model="listQuery.czcs" placeholder="请选择布控颜色">
<el-option v-for="dict in dict.D_BZ_CZCS" :key="dict.value" :value="dict.value"
:label="dict.label"></el-option>
</el-select>
</el-form-item>
<el-form-item style="width: 40%" prop="bkfw" label="布控范围">
<el-select :disabled="forbidden" v-model="listQuery.bkfw" placeholder="请选择布控状态">
<el-option
v-for="dict in dict.D_BZ_RCBKFW"
:key="dict.value"
:value="dict.value"
:label="dict.label"
></el-option>
</el-select>
</el-form-item>
<el-form-item style="width: 40%" prop="bkczlx" label="布控操作类型">
<el-input :disabled="forbidden"
v-model="listQuery.bkczlx"
placeholder="请输入布控区域"
style="width: 100%"
clearable
/>
</el-form-item>
<el-form-item style="width: 40%" prop="bkdxtzm" label="布控对象特征码">
<el-input :disabled="forbidden"
v-model="listQuery.bkdxtzm"
placeholder="请输入布控区域"
style="width: 100%"
clearable
/>
</el-form-item>
<el-form-item style="width: 40%" prop="bkkk" label="布控卡口">
<div class="diviput" @click="forbidden ? '' : showJcz = true">
<span v-if="listQuery.bkkk">{{ listQuery.bkkk }}</span>
<el-form-item style="width: 40%" prop="jczid" label="布控卡口" v-if="listQuery.bkfs=='02'">
<div class="diviput" @click="openJcz">
<span v-if="listQuery.jczid">{{ listQuery.jczmc }}</span>
<span class="placeholder" v-else> 请选择布控卡口</span>
</div>
</el-form-item>
</el-form>
</div>
</div>
<Jczloder v-model="showJcz" :Single="true" @choosedJcz="JczMsg" :data="[]" />
<Jczloder v-model="showJcz" :Single="false" @choosedJcz="JczMsg" :data="[]" />
</template>
<script setup>
import { ref, reactive, onMounted } from "vue";
import { BkrwinsertEntity, BkrweditEntity } from "@/api/mosty-jcz.js";
import * as MOSTY from "@/components/MyComponents/index";
import { jczBkclEntity, jczBkclInsertEntity } from "@/api/mosty-jcz.js";
import Jczloder from "@/components/loder/Jczloder.vue";
import { ElMessage } from "element-plus";
const props = defineProps({
dict: {
type: Object,
default: () => {}
default: () => { }
}
});
const rules = reactive({
bkdxtzm: [
cph: [
{
required: true,
message: "请输入布控对象特征码"
}
],
bkbsm: [
{
required: true,
message: "请输入布控标识码"
message: "请输入布控姓名"
}
],
bkkk: [
{
required: true,
message: "请选择布控卡口"
}
],
bkjssj: [
],cpys:[{
required: true,
message: "请选择车牌颜色"
}],
yjys: [
{
required: true,
message: "请选择布控结束时间"
message: "请选择预警颜色"
}
],
bkkssj: [
@ -197,38 +100,28 @@ const rules = reactive({
message: "请选择布控开始时间"
}
],
bkzt: [
bkjssj: [
{
required: true,
message: "请选择布控状态"
message: "请输入布控身份证号"
}
],
bkcph: [
bkfs: [
{
required: true,
message: "请输入布控车辆车牌号"
message: "请输入布控方式"
}
], czcs: [
{
required: true,
message: "请输选择布控措施"
}
],
bkqy: [
{
bkyy: {
required: true,
message: "请输入布控区域",
trigger: "change"
message: "请输入布控原因"
}
],
bklb: [
{
required: true,
message: "请输入布控类别",
trigger: "change"
}
],
bkmc: [
{
required: true,
message: "请输入布控名称"
}
]
});
const formRef = ref(null);
const emit = defineEmits(["getjczgetXfllList"]);
@ -249,17 +142,18 @@ const pageInfo = {
};
let pageType = ref("add");
const forbidden=ref(false);
// 初始化数据
const forbidden = ref(false)
const init = (type, row) => {
pageType.value = type;
dialogForm.value = true;
// 根据type和row初始化表单数据
tabHeightFn();
if (type == "edit"||type == "detail") {
listQuery.value = { ...row };
if (type == "edit" || type == "detail") {
listQuery.value = { ...row};
if (type == "detail") {
forbidden.value=true
forbidden.value = true
}
} else {
listQuery.value = {};
@ -270,15 +164,15 @@ const _onSave = () => {
if (!formRef) return;
formRef.value.validate((valid, fields) => {
if (valid) {
const promes = { ...listQuery.value, bklx: "02" };
const promes = { ...listQuery.value };
if (pageType.value == "add") {
BkrwinsertEntity(promes).then((res) => {
jczBkclInsertEntity(promes).then((res) => {
ElMessage({ message: "新增成功", type: "success" });
emit("getjczgetXfllList");
close();
});
} else {
BkrweditEntity(promes).then((res) => {
jczBkclEntity(promes).then((res) => {
ElMessage({ message: "修改成功", type: "success" });
emit("getjczgetXfllList");
close();
@ -290,27 +184,27 @@ const _onSave = () => {
});
console.log();
};
// 图片上传
const imgUrl = ref();
const urlImg = "/mosty-api/mosty-base/minio/image/download/";
const upImg = (row) => {
listQuery.value.bkzp = row.data;
imgUrl.value = urlImg.value + row.data;
};
//打开弹窗
const showJcz = ref(false);
const openJcz = () => {
if (!forbidden.value) {
showJcz.value = true
}
};
const JczMsg = (val) => {
listQuery.value.bkkk = val.jczmc;
listQuery.value.kkId = val.id;
listQuery.value.jczmc = val.map(item => {
return item.jczmc
}).toString()
listQuery.value.jczid =val.map(item => {
return item.id
}).toString()
};
//页面关闭
const close = () => {
dialogForm.value = false;
forbidden.value=false;
forbidden.value = false
listQuery.value = {};
};
// 表格高度计算
const tableHeight1 = ref();
@ -324,21 +218,25 @@ defineExpose({ init });
<style lang="scss" scoped>
.dialog {
padding: 20px;
.head_box {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 20px;
}
.cntinfo {
height: calc(100% - 70px);
overflow: hidden;
overflow-y: auto;
}
}
.my_transfer {
height: calc(100% - 50px);
display: flex;
.btn {
width: 50px;
display: flex;
@ -346,58 +244,71 @@ defineExpose({ init });
justify-content: center;
margin: 0 10px;
}
.left {
margin: 12px;
flex: 1;
position: relative;
.tableBox {
position: absolute;
width: 100%;
}
.serch {
position: relative;
width: 100%;
// height: 96px;
> .el-form--inline {
>.el-form--inline {
display: block;
width: 100%;
padding: 0;
> .el-form-item--default {
>.el-form-item--default {
width: 31%;
}
}
}
.tableBox {
width: 100%;
}
}
.right {
width: 380px;
margin: 12px;
}
}
.phone {
width: 95px;
height: 120px;
.el-image {
width: 95px;
max-height: 120px;
}
}
::v-deep .el-upload {
width: 90px;
height: 100px;
border: 1px dashed #000000;
margin-bottom: 14px;
.el-icon {
margin-top: 34px;
font-size: 26px;
}
.el-image {
width: 100%;
height: 100%;
}
}
.mapbox {
width: 1000px;
padding: 0 10px;
@ -405,6 +316,7 @@ defineExpose({ init });
box-sizing: border-box;
background: #000;
}
.diviput {
width: 100%;
background-color: #ffffff;
@ -414,10 +326,12 @@ defineExpose({ init });
line-height: 32px;
padding: 0 10px;
border-radius: 5px;
.placeholder {
color: #b5b5b5;
}
}
::v-deep .el-icon svg {
color: #000000 !important;
}

View File

@ -3,10 +3,10 @@
<div class="titleBox">
<PageTitle title="车辆布控">
<el-button type="primary" @click="addEdit('add', '')" v-if="Auth">
<el-icon style="vertical-align: middle"><CirclePlus /></el-icon>
<span style="vertical-align: middle" @click="addEdit('add', row)"
>新增</span
>
<el-icon style="vertical-align: middle">
<CirclePlus />
</el-icon>
<span style="vertical-align: middle" @click="addEdit('add', row)">新增</span>
</el-button>
</PageTitle>
</div>
@ -15,24 +15,27 @@
<Search :searchArr="searchConfiger" @submit="onSearch" />
</div>
<div class="tabBox">
<MyTable
:tableData="pageData.tableData"
:tableColumn="pageData.tableColumn"
:tableHeight="pageData.tableHeight"
:key="pageData.keyCount"
:tableConfiger="pageData.tableConfiger"
:controlsWidth="pageData.controlsWidth"
@chooseData="chooseData"
>
<template #bklb="{ row }">
<dict-tag :value="row.bklb" :options="D_BZ_CLBKLX" :tag="false" />
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth"
@chooseData="chooseData">
<template #yjys="{ row }">
<dict-tag :value="row.yjys" :options="D_BZ_BKYS" :tag="false" />
</template>
<template #bkzt="{ row }">
<template #cpys="{ row }">
<dict-tag :value="row.cpys" :options="D_BZ_CPHYS" :tag="false" />
</template>
<template #bkfs="{ row }">
{{ row.bkfs == '01' ? "全省布控" : "精准布控" }}
</template>
<template #bkcs="{ row }">
<dict-tag :value="row.yjys" :options="D_BZ_CZCS" :tag="false" />
</template>
<!-- <template #bkzt="{ row }">
<dict-tag :value="row.bkzt" :options="D_BZ_RCBKZT" :tag="false" />
</template>
<template #bkfw="{ row }">
<dict-tag :value="row.bkfw" :options="D_BZ_RCBKFW" :tag="false" />
</template>
</template> -->
<!-- 操作 -->
<template #controls="{ row }">
@ -40,30 +43,18 @@
<el-link type="primary" @click="addEdit('edit', row)">修改</el-link>
<el-link type="primary" @click="delDictItem(row.id)">删除</el-link>
</template>
<el-link type="primary" @click="addEdit('detail', row)">详情</el-link>
</template>
</MyTable>
<Pages
@changeNo="changeNo"
@changeSize="changeSize"
:tableHeight="pageData.tableHeight"
:pageConfiger="{
<Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
...pageData.pageConfiger,
total: pageData.total
}"
></Pages>
}"></Pages>
</div>
<!-- 编辑详情 -->
<EditAddForm
ref="detailDiloag"
:dict="{
D_BZ_RCBKZT,
D_BZ_RCBKFW,
D_BZ_CLBKLX
}"
@getjczgetXfllList="getjczgetXfllList"
/>
<EditAddForm ref="detailDiloag" :dict="{
D_BZ_BKYS, D_BZ_CZCS, D_BZ_CPHYS
}" @getjczgetXfllList="getjczgetXfllList" />
</div>
</template>
@ -73,36 +64,37 @@ import MyTable from "@/components/aboutTable/MyTable.vue";
import Pages from "@/components/aboutTable/Pages.vue";
import Search from "@/components/aboutTable/Search.vue";
import EditAddForm from "./components/editAddForm.vue";
import{isAuth} from '@/utils/tools.js'
import { BkrwselectPage, BkrwdeleteById } from "@/api/mosty-jcz.js";
import { ElMessage } from "element-plus";
import { jczBkclSelectPage, jczBkclDeleteById } from "@/api/mosty-jcz.js";
import { isAuth } from '@/utils/tools.js'
import { reactive, ref, onMounted, getCurrentInstance } from "vue";
const { proxy } = getCurrentInstance();
const urlImg = "/mosty-api/mosty-base/minio/image/download/";
const { D_BZ_RCBKZT, D_BZ_RCBKFW, D_BZ_CLBKLX } = proxy.$dict(
"D_BZ_RCBKZT",
"D_BZ_RCBKFW",
"D_BZ_CLBKLX"
const { D_BZ_BKYS, D_BZ_CZCS, D_BZ_CPHYS } = proxy.$dict(
"D_BZ_BKYS", "D_BZ_CZCS", "D_BZ_CPHYS"
);
const searchConfiger = ref([
{
label: "车牌号",
prop: "bkcph",
placeholder: "请输入车牌号",
label: "布控名称",
prop: "bkmc",
placeholder: "请输入布控名称",
showType: "input"
},
{
label: "布控状态",
prop: "bkzt",
placeholder: "布控状态",
showType: "select",
options: D_BZ_RCBKZT
label: "证件号码",
prop: "bksfzh",
placeholder: "请输入证件号码",
showType: "input"
},
{
showType: "department",
prop: "ssbmdm",
placeholder: "请选择所属部门",
label: "所属部门"
}
label: "布控颜色",
prop: "yjys",
placeholder: "布控颜色",
showType: "select",
options: D_BZ_BKYS
},
]);
const detailDiloag = ref();
@ -121,60 +113,59 @@ const pageData = reactive({
}, //分页
controlsWidth: 250, //操作栏宽度
tableColumn: [
{ label: "所属部门", prop: "ssbm", showOverflowTooltip: true },
{
label: "布控区域",
prop: "bkqy",
showOverflowTooltip: true
// showSolt: true
},
{
label: "布控车牌号",
prop: "bkcph",
label: "车牌号",
prop: "cph",
showOverflowTooltip: true
},
{
label: "布控类别",
prop: "bklb",
label: "车牌颜色",
prop: "cpys",
showSolt: true,
showOverflowTooltip: true
},
{
label: "布控状态",
prop: "bkzt",
label: "预警颜色",
prop: "yjys",
showSolt: true,
showOverflowTooltip: true
},
{
label: "布控范围",
prop: "bkfw",
showSolt: true,
showOverflowTooltip: true
},
{ label: "布控开始时间", prop: "bkkssj", showOverflowTooltip: true },
{
label: "布控结束时间",
prop: "bkjssj",
showOverflowTooltip: true
},
{
label: "布控方式",
prop: "bkfs",
showSolt: true,
},
{
label: "布控措施",
prop: "bkcs",
showSolt: true,
}
]
});
const Auth=ref(true)
const Auth = ref(false)
onMounted(() => {
Auth.value=isAuth()
tabHeightFn();
Auth.value = isAuth()
});
//查询条件
const queryCondition = ref({ bklx: "02" });
const queryCondition = ref();
// 获取数据
const getjczgetXfllList = () => {
pageData.tableConfiger.loading = true;
const promes = { ...queryCondition.value, ...pageData.pageConfiger };
BkrwselectPage(promes)
jczBkclSelectPage(promes)
.then((res) => {
pageData.tableData = res.records;
pageData.total = res.total;
}).catch((err) => {
console.log(err);
})
.finally(() => {
pageData.tableConfiger.loading = false;
@ -183,7 +174,7 @@ const getjczgetXfllList = () => {
getjczgetXfllList();
// 搜索
const onSearch = (val) => {
queryCondition.value = { ...queryCondition.value, ...val };
queryCondition.value = { ...val };
getjczgetXfllList();
};
@ -200,8 +191,7 @@ const delDictItem = (ids) => {
proxy
.$confirm("确定删除该数据?", "警告", { type: "warning" })
.then(() => {
BkrwdeleteById({ ids: ids })
.then((res) => {
jczBkclDeleteById(ids).then((res) => {
ElMessage({ message: "删除成功", type: "success" });
pageData.pageConfiger.pageCurrent = 1;
getjczgetXfllList();
@ -229,6 +219,7 @@ const tabHeightFn = () => {
tabHeightFn();
};
};
</script>
<style>

View File

@ -8,28 +8,30 @@
</div>
</div>
<div class="cntinfo">
<el-form ref="formRef" :model="listQuery" :rules="rules" :inline="true" label-position="top">
<div style="
<el-form
ref="formRef"
:model="listQuery"
:rules="rules"
:inline="true"
label-position="top"
>
<!-- <div
style="
width: 25%;
display: flex;
justify-content: center;
margin-bottom: 10px;
">
<div style="position: relative; width: 90px; height: 100px">
<el-upload action="/mosty-api/mosty-base/minio/image/upload/id" :on-change="upImgFile" :on-success="upImg"
:show-file-list="false">
<el-image v-if="imgUrl" :src="imgUrl" fit="cover" />
<el-icon v-else>
<Plus></Plus>
</el-icon>
<span v-if="imgUrl" style="position: absolute; top: -52px; right: -20px">
<el-icon size="20" @click.stop="deletImg">
<Close />
</el-icon>
</span>
</el-upload>
</div>
"
>
<div >
</div>
</div> -->
<el-form-item>
{{ listQuery.tp }}
<MOSTY.Upload width="100%" :limit="1" :isImg="true" v-model="listQuery.tp" :disableds="forbidden"/>
</el-form-item>
<el-form-item label="身份证号码" prop="sfzh">
<el-input v-model="listQuery.sfzh" placeholder="请输入身份证号码" clearable style="width: 100%" />
</el-form-item>
@ -139,6 +141,7 @@ import { jcztbQwXfll, jcztbQwXfllUpdete } from "@/api/mosty-jcz.js";
import { Right, Back } from "@element-plus/icons-vue";
import { baseselectPage } from "@/api/mosty-base";
import { ElMessage } from "element-plus";
const props = defineProps({
dict: {
type: Object,
@ -182,6 +185,11 @@ const rules = reactive({
required: true,
message: "请选择婚姻状况"
}
],jh:[
{
required: true,
message: "请填写辅警编号"
}
],
whcddm: [
{
@ -236,16 +244,18 @@ const init = (type, row) => {
//保存
const _onSave = () => {
if (!formRef) return;
const promes = { ...listQuery.value ,fl:'02'};
// promes.tp=listQuery.value.tp&&Array.isArray(listQuery.value.tp)? listQuery.value.tp.join(","):""
formRef.value.validate((valid, fields) => {
if (valid) {
if (pageType.value == "add") {
jcztbQwXfll(listQuery.value).then((res) => {
jcztbQwXfll(promes).then((res) => {
ElMessage({ message: "新增成功", type: "success" });
emit("getjczgetXfllList");
close();
});
} else {
jcztbQwXfllUpdete(listQuery.value).then((res) => {
jcztbQwXfllUpdete(promes).then((res) => {
ElMessage({ message: "修改成功", type: "success" });
emit("getjczgetXfllList");
close();
@ -257,17 +267,10 @@ const _onSave = () => {
});
console.log();
};
// 图片上传
const imgUrl = ref();
const urlImg = "/mosty-api/mosty-base/minio/image/download/";
const upImg = (row) => {
listQuery.value.tp = row.data;
imgUrl.value = urlImg.value + row.data;
};
//页面关闭
const close = () => {
dialogForm.value = false;
listQuery.value = {};
};
// 表格高度计算
@ -355,16 +358,15 @@ defineExpose({ init });
max-height: 120px;
}
}
// ::v-deep .el-upload {
// width: 90px;
// height: 100px;
// border: 1px dashed #000000 !important;
// margin-bottom: 14px;
::v-deep .el-upload {
width: 90px;
height: 100px;
border: 1px dashed #000000 !important;
margin-bottom: 14px;
.el-image {
width: 100%;
height: 100%;
}
}
// .el-image {
// width: 100%;
// height: 100%;
// }
// }
</style>

View File

@ -52,6 +52,7 @@ import MyTable from "@/components/aboutTable/MyTable.vue";
import Pages from "@/components/aboutTable/Pages.vue";
import Search from "@/components/aboutTable/Search.vue";
import EditAddForm from "./components/editAddForm.vue";
import { ElMessage } from "element-plus";
import { jczgetXfllList, jczdeleteList } from "@/api/mosty-jcz.js";
import { reactive, ref, onMounted, getCurrentInstance } from "vue";
const { proxy } = getCurrentInstance();

View File

@ -2,7 +2,6 @@
<div>
<div class="titleBox">
<PageTitle title="环林卡口管理">
{{ Auth }}
<el-button type="primary" @click="addEdit('add', '')" v-if="Auth">
<el-icon style="vertical-align: middle">
<CirclePlus />

View File

@ -74,7 +74,9 @@ import EditAddForm from "./components/editAddForm.vue";
import { isAuth } from '@/utils/tools.js'
import { WjwpselectPage, WjwpdeleteById } from "@/api/mosty-jcz.js";
import { reactive, ref, onMounted, getCurrentInstance } from "vue";
import { ElMessage } from "element-plus";
const { proxy } = getCurrentInstance();
const urlImg = "/mosty-api/mosty-base/minio/image/download/";
const { D_BZ_SBLX, D_BZ_SF, D_BZ_DWFL, D_BZ_GZSBLX } = proxy.$dict(
"D_BZ_SBLX",

View File

@ -10,56 +10,125 @@
<div class="cntinfo">
<el-form ref="formRef" :model="listQuery" :rules="rules" :inline="true" label-position="top">
<el-form-item prop="ssbmdm" label="所属部门">
<MOSTY.Department :placeholder="listQuery.ssbm" style="width: 100%" ref="cascader" clearable filterable
:props="props" v-model:modelValue="listQuery.ssbmdm" />
<MOSTY.Department
:placeholder="listQuery.ssbm"
style="width: 100%"
ref="cascader"
clearable
:disabled="forbidden"
filterable
:props="props"
v-model:modelValue="listQuery.ssbmdm"
/>
</el-form-item>
<el-form-item label="设备编号" prop="qxbh">
<el-input v-model="listQuery.qxbh" placeholder="请输入设备编号" clearable style="width: 100%" />
<el-input
:disabled="forbidden"
v-model="listQuery.qxbh"
placeholder="请输入设备编号"
clearable
style="width: 100%"
/>
</el-form-item>
<el-form-item label="装备类型" prop="qxlx">
<el-select v-model="listQuery.qxlx" placeholder="请选择性别">
<el-option v-for="item in dict.D_JCGL_JYQX_QXLX" :key="item" :label="item.zdmc"
:value="item.dm"></el-option>
<el-select v-model="listQuery.qxlx" placeholder="请选择装备类型" :disabled="forbidden">
<el-option
v-for="item in dict.D_JCGL_JYQX_QXLX"
:key="item"
:label="item.zdmc"
:value="item.dm"
></el-option>
</el-select>
</el-form-item>
<!-- <el-form-item label="设备分类" prop="scode">
<el-select v-model="listQuery.scode" placeholder="请选择设备分类">
<el-option v-for="item in dict.D_BZ_JYQXFL" :key="item" :label="item.label" :value="item.dm"></el-option>
<el-form-item label="设备分类" prop="scode">
<el-select v-model="listQuery.scode" placeholder="请选择设备分类" :disabled="forbidden">
<el-option
v-for="item in dict.D_BZ_JYQXFL"
:key="item"
:label="item.label"
:value="item.dm"
></el-option>
</el-select>
</el-form-item> -->
</el-form-item>
<el-form-item prop="qxMc" label="装备名称">
<el-input v-model="listQuery.qxMc" placeholder="请输入装备名称" clearable style="width: 100%" />
<el-input :disabled="forbidden"
v-model="listQuery.qxMc"
placeholder="请输入装备名称"
clearable
style="width: 100%"
/>
</el-form-item>
<el-form-item label="装备型号">
<el-input v-model="listQuery.xh" placeholder="请输入装备型号" clearable style="width: 100%" />
<el-input :disabled="forbidden"
v-model="listQuery.xh"
placeholder="请输入装备型号"
clearable
style="width: 100%"
/>
</el-form-item>
<el-form-item label="数量" prop="sl">
<el-input-number v-model="listQuery.sl" :step="1" :min="0" />
<el-input-number v-model="listQuery.sl" :step="1" :min="0" :disabled="forbidden"/>
</el-form-item>
<el-form-item label="计量单位" prop="jsdw">
<el-input v-model="listQuery.jsdw" placeholder="请输入单位" clearable style="width: 100%" />
<el-input :disabled="forbidden"
v-model="listQuery.jsdw"
placeholder="请输入单位"
clearable
style="width: 100%"
/>
</el-form-item>
<el-form-item label="装备状态">
<el-select clearable v-model="listQuery.zbzt" placeholder="请选择" style="width: 100%">
<el-option v-for="(item, index) in dict.D_ZDY_SBZT" :key="index" :label="item.label"
:value="item.value"></el-option>
<el-select :disabled="forbidden"
clearable
v-model="listQuery.zbzt"
placeholder="请选择"
style="width: 100%"
>
<el-option
v-for="(item, index) in dict.D_ZDY_SBZT"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="装备厂商">
<el-input v-model="listQuery.sccs" placeholder="请输入装备厂商" clearable style="width: 100%" />
<el-input
v-model="listQuery.sccs" :disabled="forbidden"
placeholder="请输入装备厂商"
clearable
style="width: 100%"
/>
</el-form-item>
<el-form-item prop="cgrq" label="购置日期">
<el-date-picker style="width: 100%" format="YYYY/MM/DD" value-format="YYYY-MM-DD" v-model="listQuery.cgrq"
type="date" placeholder="请选择日期" />
<el-date-picker :disabled="forbidden"
style="width: 100%"
format="YYYY/MM/DD"
value-format="YYYY-MM-DD"
v-model="listQuery.cgrq"
type="date"
placeholder="请选择日期"
/>
</el-form-item>
<el-form-item prop="dqsj" label="到期日期">
<el-date-picker format="YYYY/MM/DD" value-format="YYYY-MM-DD" v-model="listQuery.dqsj" type="date"
placeholder="请选择日期" style="width: 100%" />
<el-date-picker :disabled="forbidden"
format="YYYY/MM/DD"
value-format="YYYY-MM-DD"
v-model="listQuery.dqsj"
type="date"
placeholder="请选择日期"
style="width: 100%"
/>
</el-form-item>
<el-form-item label="备注" style="width: 100%">
<el-input v-model="listQuery.bz" placeholder="请输入关键字" show-word-limit type="textarea" />
<el-input
v-model="listQuery.bz" :disabled="forbidden"
placeholder="请输入备注"
show-word-limit
type="textarea"
/>
</el-form-item>
</el-form>
</div>
@ -160,14 +229,18 @@ const propsTree = ref({
emitPath: false,
multiple: false
});
const forbidden=ref(false)
// 初始化数据
const init = (type, row) => {
pageType.value = type;
dialogForm.value = true;
// 根据type和row初始化表单数据
tabHeightFn();
if (type == "edit") {
if (type == "edit"||type == "detail") {
listQuery.value = { ...row };
if (type == "detail") {
forbidden.value=true
}
} else {
listQuery.value = {};
}

View File

@ -50,7 +50,10 @@
display: flex;
margin-bottom: 10px;
">
<div style="position: relative; height: 100px">
<div style=" width: 100%; ">
<MOSTY.Upload width="100%" :limit="1" :isImg="true" v-model="addForm.tp" :disableds="forbidden"/>
</div>
<!-- <div style="position: relative; height: 100px">
<el-upload class="avatar-uploader" action="/mosty-api/mosty-base/minio/image/upload/id" :on-success="upImg"
:show-file-list="false">
<el-image v-if="imgUrl" :src="imgUrl" fit="cover" />
@ -63,7 +66,7 @@
</el-icon>
</span>
</el-upload>
</div>
</div> -->
</div>
<el-form-item label="民警姓名" prop="xm">
<el-input v-model="addForm.xm" placeholder="请输入民警姓名" clearable style="width: 100%" />

View File

@ -15,7 +15,7 @@
</div>
<div class="leftMag">
<div class="ld">值班领导</div>
<div class="name">{{ BbMag.fzrXm }}</div>
<div class="name">{{ BbMag?.fzrXm }}</div>
</div>
</div>
<div class="flex">
@ -24,7 +24,7 @@
</div>
<div class="leftMag">
<div class="ld">联系电话</div>
<div class="name">{{ BbMag.fzrLxdh }}</div>
<div class="name">{{ BbMag?.fzrLxdh }}</div>
</div>
</div>
<div class="dutyList flex just-between align-center">
@ -32,7 +32,7 @@
<img src="@/assets/images/tc/zbfj.png" alt="" srcset="" />
</div>
<div class="occupation">
值班民警<span class="number">{{ BbMag.ryList.length }}</span>
值班民警<span class="number">{{ BbMag?.ryList.length }}</span>
</div>
</div>
<div class="dutyList flex just-between align-center">
@ -40,7 +40,7 @@
<img src="@/assets/images/tc/zbfj.png" alt="" srcset="" />
</div>
<div class="occupation">
值班武警<span class="number">{{ BbMag.ryList.length }}</span>
值班武警<span class="number">{{ BbMag?.ryList.length }}</span>
</div>
</div>
<div class="dutyList flex just-between align-center">
@ -48,7 +48,7 @@
<img src="@/assets/images/tc/zbfj.png" alt="" srcset="" />
</div>
<div class="occupation">
值班民警<span class="number">{{ BbMag.ryList.length }}</span>
值班民警<span class="number">{{ BbMag?.ryList.length }}</span>
</div>
</div>
</div>

View File

@ -21,7 +21,7 @@
:inline="true"
:rules="rules"
>
<div class="bblxItem">
<!-- <div class="bblxItem">
<div class="btItem">环林卡口设置</div>
<div class="info">
<el-form-item>
@ -47,7 +47,7 @@
</div>
</el-form-item>
</div>
</div>
</div> -->
<div class="bblxItem">
<div class="btItem">班次设置</div>
<div class="info">
@ -311,6 +311,7 @@ import { jczsavel, Xfbbupdate } from "@/api/mosty-jcz.js";
import { ElMessage } from "element-plus";
import ChooseTable from "@/components/chooseList/chooseTable.vue";
import { timeValidate } from "@/utils/tools.js";
import { useRoute } from "vue-router";
const { proxy } = getCurrentInstance();
// const { D_BZ_JYQXFL } = proxy.$dict("D_BZ_JYQXFL");
const props = defineProps({
@ -324,7 +325,7 @@ const props = defineProps({
},
row: { type: Object, default: () => {} }
});
const route = useRoute();
const emit = defineEmits(["close"]);
const formRef = ref(null);
const dialogForm = ref(false);
@ -371,6 +372,7 @@ const fz = (val) => {
});
return data;
};
// 初始化数据
const init = (type) => {
pageType.value = type;
@ -405,8 +407,12 @@ watch(
},
{ deep: true, immediate: true }
);
const routerList=ref({})
onMounted(() => {
init();
console.log(route.query );
routerList.value=route.query
});
// 验证规则
const rules = ref({
@ -443,11 +449,9 @@ const _onSave = () => {
case "07":
listQuery.value.bcKts = 8;
}
if (listQuery.value.jczList) {
listQuery.value.jczid = listQuery.value.jczList.id;
listQuery.value.jczmc = listQuery.value.jczList.jczmc;
}
listQuery.value.jczid = routerList.value.id?routerList.value.id:"";
listQuery.value.jczmc = routerList.value.name?routerList.value.name:"";
if (pageType.value == "add") {
jczsavel(listQuery.value).then((res) => {
ElMessage({ message: "新增成功", type: "success" });