更新
This commit is contained in:
@ -0,0 +1,187 @@
|
||||
<template>
|
||||
<div class="dialog" v-if="dialogForm">
|
||||
<div class="head_box">
|
||||
<span class="title">{{ title }}标签布控</span>
|
||||
<div>
|
||||
<el-button type="primary" size="small" v-if="!disabled" :loading="loading" @click="submit">保存</el-button>
|
||||
<el-button size="small" @click="close">关闭</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form_cnt">
|
||||
<FormMessage
|
||||
ref="elform"
|
||||
:disabled="disabled"
|
||||
v-model="listQuery"
|
||||
:formList="formData"
|
||||
labelWidth="100px"
|
||||
:rules="rules">
|
||||
<template #yjgz>
|
||||
<div class="zdy-taf"></div>
|
||||
</template>
|
||||
<template #tjqy>
|
||||
<div class="ww100">
|
||||
<div class="ww100 flex align-center">
|
||||
<div class="zdy-taf"></div>
|
||||
<el-button type="primary">选择</el-button>
|
||||
</div>
|
||||
<div class="map relative">
|
||||
<GdMap></GdMap>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</FormMessage>
|
||||
</div>
|
||||
</div>
|
||||
<ChooseMarks v-model="chooseMarksVisible" @choosed="choosed" :roleIds="roleIds" />
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import GdMap from "@/components/GdMap/index.vue";
|
||||
import * as rule from "@/utils/rules.js";
|
||||
import * as MOSTY from "@/components/MyComponents/index";
|
||||
import ChooseMarks from "@/components/ChooseList/ChooseMarks/index.vue";
|
||||
import FormMessage from "@/components/aboutTable/FormMessage.vue";
|
||||
import { qcckGet, qcckPost, qcckPut } from "@/api/qcckApi.js";
|
||||
import { ref, defineExpose, reactive, onMounted, defineEmits, getCurrentInstance, watch } from "vue";
|
||||
const emit = defineEmits(["updateDate"]);
|
||||
const props = defineProps({
|
||||
dic: Object
|
||||
});
|
||||
const { proxy } = getCurrentInstance();
|
||||
const roleIds = ref([]);
|
||||
const chooseMarksVisible = ref(false);
|
||||
const dialogForm = ref(false); //弹窗
|
||||
const rules = reactive({
|
||||
ryXm: [{ required: true, message: "请输入姓名", trigger: "blur" }],
|
||||
...rule.identityCardRule({ validator: true },'rySfzh'), //身份证校验
|
||||
...rule.phoneRule({ validator: true }, "ryLxdh"), // 是否必填 是否进行校验,
|
||||
});
|
||||
const obj = {
|
||||
bqlist:[
|
||||
{ label: "布控标签", value: "01" },
|
||||
{ label: "历史标签", value: "02" },
|
||||
{ label: "数据源", value: "03" },
|
||||
],
|
||||
sjy:[
|
||||
{ label: "网吧", value: "01" },
|
||||
{ label: "卡口", value: "02" },
|
||||
{ label: "市综平台", value: "03" },
|
||||
]
|
||||
}
|
||||
const listQuery = ref({}); //表单
|
||||
const formData = ref([
|
||||
{ label: "任务名称", prop: "rwmc", type: "input" },
|
||||
{ label: "布控人电话", prop: "bkysDh", type: "input" },
|
||||
{ label: "人员等级", prop: "ryJb", type: "input" },
|
||||
{ label: "人员类型", prop: "ryJl", type: "input" },
|
||||
{ label: "处置措施", prop: "czcs", type: "input" },
|
||||
{ label: "布控事由", prop: "bksy", type: "input" },
|
||||
{ label: "报警方式", prop: "bjfs", type: "input" },
|
||||
{ label: "报警接收人", prop: "bjjsr", type: "input" },
|
||||
{ label: "任务布控时限", prop: "rwBkzs", type: "datetimerange" },
|
||||
{ label: "布控标签", prop: "bkbq", type: "select",options: obj.bqlist ,multiple:true},
|
||||
{ label: "数据源", prop: "sjy", type: "select",options: obj.sjy },
|
||||
{ label: "数据源", prop: "sjy", type: "select",options: obj.sjy },
|
||||
{ label: "预警规则", prop: "yjgz", type: "slot" ,width:'100%'}, //选择多个标签
|
||||
{ label: "添加区域", prop: "tjqy", type: "slot" ,width:'100%'}, //选择多个标签
|
||||
]);
|
||||
const loading = ref(false);
|
||||
const elform = ref();
|
||||
const title = ref("");
|
||||
const disabled = ref(false);
|
||||
|
||||
// 初始化数据
|
||||
const init = (type, row) => {
|
||||
dialogForm.value = true;
|
||||
title.value = type == "add" ? "新增" : type == "detail" ? "详情" : "编辑";
|
||||
disabled.value = type == "detail" ? true : false;
|
||||
if (row) getDataById(row.id);
|
||||
};
|
||||
// 根据id查询详情
|
||||
const getDataById = (id) => {
|
||||
// qcckGet({id}, "/mosty-gsxt/tbGsxtZdcl/selectByid").then((res) => {
|
||||
// listQuery.value = res;
|
||||
// listQuery.value.fjdz = listQuery.value.fjdz?.split(",");
|
||||
// });
|
||||
};
|
||||
|
||||
// 提交
|
||||
const submit = () => {
|
||||
elform.value.submit((data) => {
|
||||
// data.fjdz = data.fjdz?.join(",");
|
||||
// let url = title.value == "新增" ? "/mosty-gsxt/tbGsxtZdcl/add" : "/mosty-gsxt/tbGsxtZdcl/update";
|
||||
// let params = { ...data };
|
||||
// loading.value = true;
|
||||
// qcckPost(params, url).then(() => {
|
||||
// loading.value = false;
|
||||
// proxy.$message({ type: "success", message: title.value + "成功" });
|
||||
// emit("updateDate");
|
||||
// close();
|
||||
// }).catch(() => {
|
||||
// loading.value = false;
|
||||
// });
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
// 关闭
|
||||
const close = () => {
|
||||
listQuery.value = {};
|
||||
dialogForm.value = false;
|
||||
loading.value = false;
|
||||
};
|
||||
|
||||
defineExpose({ init });
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import "~@/assets/css/layout.scss";
|
||||
@import "~@/assets/css/element-plus.scss";
|
||||
|
||||
::v-deep .el-tabs--card>.el-tabs__header .el-tabs__item.is-active {
|
||||
color: #0072ff;
|
||||
background: rgba(0, 114, 255, 0.3);
|
||||
}
|
||||
|
||||
.boxlist {
|
||||
width: calc(99% - 50px);
|
||||
margin-top: 10px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.depBox {
|
||||
border: 1px solid #e9e9e9;
|
||||
width: 305px;
|
||||
padding: 0 0 0 4px;
|
||||
border-radius: 4px;
|
||||
|
||||
::v-deep .el-input__inner {
|
||||
border: none;
|
||||
}
|
||||
|
||||
::v-deep .el-cascader .el-input.is-focus .el-input__inner {
|
||||
border-color: transparent !important;
|
||||
}
|
||||
|
||||
::v-deep .el-input__inner:focus {
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
::v-deep .el-input.is-disabled .el-input__inner {
|
||||
border-color: transparent !important;
|
||||
}
|
||||
}
|
||||
.zdy-taf{
|
||||
width: 100%;
|
||||
width: 100%;
|
||||
min-height: 32px;
|
||||
border: 1px solid #e9e9e9;
|
||||
border-radius: 4px;
|
||||
padding: 0px 5px;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.map{
|
||||
height: 520px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
</style>
|
||||
@ -1,7 +1,12 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="titleBox">
|
||||
<PageTitle title="标签布控" ></PageTitle>
|
||||
<PageTitle title="标签布控" >
|
||||
<el-button type="primary" size="small" @click="handleItem('add', '')">
|
||||
<el-icon style="vertical-align: middle"><CirclePlus /></el-icon>
|
||||
<span style="vertical-align: middle">新增</span>
|
||||
</el-button>
|
||||
</PageTitle>
|
||||
</div>
|
||||
<!-- 搜索 -->
|
||||
<div ref="searchBox">
|
||||
@ -18,48 +23,11 @@
|
||||
:controlsWidth="pageData.controlsWidth"
|
||||
@chooseData="chooseData"
|
||||
>
|
||||
<template #bkZt="{ row }">
|
||||
<DictTag :tag="false" :value="row.bkZt" :options="D_GS_BK_ZT" />
|
||||
</template>
|
||||
<template #bkDj="{ row }">
|
||||
<DictTag :tag="false" :value="row.bkDj" :options="D_GS_BK_DJ" />
|
||||
</template>
|
||||
<template #bkdxList="{ row }">
|
||||
<span v-if="row.bkdxList"><span class="nowrap" v-for="(it,idx) in row.bkdxList" :key="idx"> {{ it.ryXm }} <span v-if="idx < row.bkdxList.length-1">、</span></span></span>
|
||||
<span v-else>暂无</span>
|
||||
</template>
|
||||
<template #sjrs="{ row }">
|
||||
<span v-if="row.bkdxList"> {{ row.bkdxList.length }} </span>
|
||||
<span v-else>0</span>
|
||||
</template>
|
||||
<template #qyList="{ row }">
|
||||
<span v-for="(it,idx) in row.qyList" :key="idx"> {{ it.qymc }} 、</span>
|
||||
</template>
|
||||
<template #yjcs="{row}">
|
||||
<span @click="openWarning(row)" style="color: #00ffff;" class="mr5 pointer">{{ row.yjcs || 0}}</span>次
|
||||
</template>
|
||||
|
||||
<!-- 操作 -->
|
||||
<template #controls="{ row }">
|
||||
<el-popover placement="left" :visible="row.visible" :width="400" trigger="manual">
|
||||
<template #reference>
|
||||
<el-link size="small" type="success" v-if="row.bkZt == '04'" @click="row.visible = !row.visible,chooseRow.id = row.id">审批</el-link>
|
||||
</template>
|
||||
<el-form :model="chooseRow" ref="elRowForm" v-if="row.visible" :inline="true" label-width="100px" :rules="rules">
|
||||
<el-form-item label="是否通过" prop="sftg" class="mt10 mb10" style="width: 100%;">
|
||||
<MOSTY.Select filterable v-model="chooseRow.sftg" :dictEnum="D_BZ_SF" width="100%" clearable placeholder="请选择是否通过"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="不通过原因" prop="bkspBtgyy" v-if="chooseRow.sftg == 0" style="width: 100%;">
|
||||
<MOSTY.Other style="width: 100%;" clearable v-model="chooseRow.bkspBtgyy" type="textarea" placeholder="请输入不通过原因"/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div class="flex just-center mt10">
|
||||
<el-button @click.stop="cancelRow(row)">取消</el-button>
|
||||
<el-button type="primary" @click.stop="handleSend(row)" v-loading="btnloading">确定</el-button>
|
||||
</div>
|
||||
</el-popover>
|
||||
|
||||
<el-link type="primary" size="small" @click="handleAdd('detail',row)">详情</el-link>
|
||||
<el-link type="primary" size="small" @click="handleItem('edit',row)">编辑</el-link>
|
||||
<el-link type="primary" size="small" @click="handleItem('detail',row)">详情</el-link>
|
||||
<el-link type="danger" size="small" @click="handleItem('deleite',row)">删除</el-link>
|
||||
</template>
|
||||
</MyTable>
|
||||
<Pages
|
||||
@ -72,29 +40,23 @@
|
||||
}"
|
||||
></Pages>
|
||||
</div>
|
||||
<!-- 新增 -->
|
||||
<AddForm ref="addForm" @updateDate="getList"></AddForm>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import * as MOSTY from "@/components/MyComponents/index";
|
||||
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 AddForm from './components/addForm.vue'
|
||||
import { qcckGet, qcckPost } from "@/api/qcckApi.js";
|
||||
import { reactive, ref, onMounted, getCurrentInstance } from "vue";
|
||||
const { proxy } = getCurrentInstance();
|
||||
const { D_BZ_SF,D_GS_BK_BKYS,D_BZ_XB,D_GS_BK_SJLX,D_GS_BK_DJ, D_GS_BK_DX, D_GS_BK_ZT,D_GS_BK_CZYQ,D_GS_BK_CZJSDWLX,D_GS_BK_TJFS } = proxy.$dict("D_BZ_SF","D_GS_BK_BKYS","D_BZ_XB","D_GS_BK_SJLX","D_GS_BK_DJ","D_GS_BK_DX","D_GS_BK_ZT","D_GS_BK_CZYQ","D_GS_BK_CZJSDWLX","D_GS_BK_TJFS"); //获取字典数据
|
||||
const { D_BZ_SF } = proxy.$dict("D_BZ_SF"); //获取字典数据
|
||||
const searchBox = ref();
|
||||
const chooseRow = ref({})
|
||||
const btns = ref();
|
||||
const elRowForm = ref()
|
||||
const rules = reactive({
|
||||
sftg: [{ required: true, message: "请选择是否通过", trigger: "change" }],
|
||||
bkspBtgyy: [{ required: true, message: "请输入不通过原因", trigger: "blur" }]
|
||||
});
|
||||
const btnloading = ref(false)
|
||||
const addBkdxForm = ref(null); //布控对象组件
|
||||
const addForm = ref()
|
||||
const searchConfiger = ref([
|
||||
{
|
||||
label: "任务名称",
|
||||
@ -124,7 +86,7 @@ const pageData = reactive({
|
||||
{ label: "布控人电话", prop: "bkysDh" },
|
||||
{ label: "人员等级", prop: "bkysDj" },
|
||||
{ label: "处置措施", prop: "czcs" },
|
||||
{ label: "布控事由", prop: "bkspBtgyy" },
|
||||
{ label: "布控事由", prop: "bksy" },
|
||||
]
|
||||
});
|
||||
onMounted(() => {
|
||||
@ -164,32 +126,13 @@ const getList = () => {
|
||||
// });
|
||||
};
|
||||
|
||||
const handleAdd = (type,row) => {
|
||||
addBkdxForm.value.init(type,row);
|
||||
};
|
||||
const cancelRow = (row) => {
|
||||
row.visible = false;
|
||||
chooseRow.value = {};
|
||||
btnloading.value = false;
|
||||
elRowForm.value.resetFields()
|
||||
};
|
||||
const handleItem = (type,row) => {
|
||||
if(type == 'delete'){
|
||||
|
||||
// 审核
|
||||
const handleSend = (val) =>{
|
||||
elRowForm.value.validate((valid) => {
|
||||
if(!valid) return;
|
||||
btnloading.value = true;
|
||||
qcckPost(chooseRow.value, "/mosty-gsxt/tbGsxtBk/audits").then(() => {
|
||||
proxy.$message({ type: "success", message: "审批成功" });
|
||||
val.visible = false;
|
||||
btnloading.value = false;
|
||||
chooseRow.value = {};
|
||||
getList();
|
||||
}).catch(()=>{
|
||||
btnloading.value = false;
|
||||
});
|
||||
})
|
||||
}
|
||||
}else{
|
||||
addForm.value.init(type,row);
|
||||
}
|
||||
};
|
||||
|
||||
// 表格高度计算
|
||||
const tabHeightFn = () => {
|
||||
|
||||
Reference in New Issue
Block a user