Browse Source

perf: 完善提醒通知

main
wxc 1 year ago
parent
commit
b8c02994bc
  1. 150
      src/components/alarm/dialog.vue
  2. 0
      src/components/alarm/reply.vue
  3. 150
      src/views/sensitivePerception/DepartNegative.vue
  4. 4
      src/views/sensitivePerception/Model.vue
  5. 184
      src/views/sensitivePerception/PoliceNegative.vue
  6. 208
      src/views/sensitivePerception/RiskClue.vue
  7. 175
      src/views/sensitivePerception/RiskPersonnel.vue

150
src/components/alarm/dialog.vue

@ -0,0 +1,150 @@
<template>
<el-dialog title="创建提醒" width="700px">
<el-form
label-width="148"
:model="formData"
ref="formRef"
class="mr-40"
>
<el-form-item
label="提醒类型"
prop="alarmTypeId"
:rules="{
required: true,
message: '请选择提醒类型',
trigger: ['blur'],
}"
>
<el-select v-model="formData.alarmTypeId" style="width: 280px">
<el-option :value="1" label="预警问题" />
<el-option :value="2" label="风险问题" />
<el-option :value="3" label="提醒通知" />
</el-select>
</el-form-item>
<el-form-item
label="被通知单位"
prop="notificationDepartId"
:rules="{
required: true,
message: '请选择被通知单位',
trigger: ['blur'],
}"
>
<div>
<depart-tree-select
v-model="formData.notificationDepartId"
:check-strictly="true"
style="width: 280px"
/>
</div>
</el-form-item>
<el-form-item
label="提醒内容"
prop="alarmContent"
:rules="{
required: true,
message: '请输入提醒内容',
trigger: ['blur'],
}"
>
<el-input
type="textarea"
v-model="formData.alarmContent"
:autosize="{ minRows: 6 }"
:rules="{
message: '请填写提醒内容',
trigger: ['blur'],
}"
/>
</el-form-item>
<el-form-item
label="是否要求回复"
prop="requestReply"
:rules="{
required: true,
message: '请选择是否要求回复',
trigger: ['blur'],
}"
>
<el-switch
v-model="formData.requestReply"
inline-prompt
active-text="必须回复"
inactive-text="无需回复"
:active-value="true"
:inactive-value="false"
/>
</el-form-item>
<el-form-item
label="时限设置"
prop="replyLimit"
:rules="{
required: true,
message: '请选择时限设置',
}"
v-if="formData.requestReply === true"
>
<div class="flex gap">
<el-input
style="width: 100px"
type="number"
v-model="formData.replyLimit"
/><span></span>
</div>
</el-form-item>
</el-form>
<footer class="flex end">
<el-button @click="showNotification = false" size="large"
>取消</el-button
>
<el-button type="primary" @click="handleNotification" size="large"
>提交
</el-button>
</footer>
</el-dialog>
</template>
<script setup>
import feedback from "~/utils/feedback";
import { alarmNotificationCommit } from "~/api/work/alarm";
const props = defineProps({
show: {
type: Boolean,
default: false,
},
departId: {
type: String,
},
});
const emit = defineEmits(["close"]);
let formData = ref({
requestReply: true,
replyLimit: 3
});
const formRef = ref();
onMounted(() => {
formData.value.notificationDepartId = props.departId;
});
watch(
() => props.departId,
() => {
formData.value.notificationDepartId = props.departId;
}
);
const handleNotification = async () => {
await formRef.value.validate();
await alarmNotificationCommit(formData.value);
feedback.msgSuccess("提醒成功!");
emit("close");
formData.value = {
requestReply: true,
replyLimit: 3
};
};
</script>
<style lang="scss" scoped>
</style>

0
src/components/alarm/reply.vue

150
src/views/sensitivePerception/DepartNegative.vue

@ -6,12 +6,30 @@
<el-col :span="6"> <el-col :span="6">
<el-form-item label="单位类型"> <el-form-item label="单位类型">
<el-select v-model="query.departGroupId" clearable> <el-select v-model="query.departGroupId" clearable>
<el-option value="10" label="派出所"></el-option> <el-option
<el-option value="11" label="交警大队"></el-option> value="10"
<el-option value="13" label="刑侦大队"></el-option> label="派出所"
<el-option value="14" label="禁毒大队"></el-option> ></el-option>
<el-option value="15" label="治安大队"></el-option> <el-option
<el-option value="16" label="人境大队"></el-option> value="11"
label="交警大队"
></el-option>
<el-option
value="13"
label="刑侦大队"
></el-option>
<el-option
value="14"
label="禁毒大队"
></el-option>
<el-option
value="15"
label="治安大队"
></el-option>
<el-option
value="16"
label="人境大队"
></el-option>
<el-option value="12" label="其他"></el-option> <el-option value="12" label="其他"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -91,11 +109,15 @@
/> />
<el-table-column label="风险指数" align="center" width="160"> <el-table-column label="风险指数" align="center" width="160">
<template #default="{ row }"> <template #default="{ row }">
<span :style="{color: getColor(score)}" v-if="row.score">{{ Math.round(row.score) }}</span> <span
:style="{ color: getColor(score) }"
v-if="row.score"
>{{ Math.round(row.score) }}</span
>
<span v-else>-</span> <span v-else>-</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作"> <el-table-column label="操作" width="240">
<template #default="{ row }"> <template #default="{ row }">
<el-button <el-button
type="primary" type="primary"
@ -106,7 +128,7 @@
<el-button <el-button
type="primary" type="primary"
link link
@click="handleShowNotification" @click="handleShowNotification(row)"
>预警提醒</el-button >预警提醒</el-button
> >
</template> </template>
@ -350,7 +372,6 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<h5>突出问题排名</h5> <h5>突出问题排名</h5>
<el-scrollbar max-height="300px"> <el-scrollbar max-height="300px">
<datav-chart-bar <datav-chart-bar
size="small" size="small"
@ -417,62 +438,7 @@
</el-scrollbar> </el-scrollbar>
</el-dialog> </el-dialog>
<el-dialog v-model="showNotification" title="创建提醒" width="600px"> <alarm-dialog v-model="showNotification" :departId="activeDepartId" @close="showNotification = false" />
<el-form label-width="148" :model="formData2" ref="formRef">
<el-form-item label="提醒类型">
<div class="flex gap">
<el-select
v-model="formData2.alarmTypeId"
style="min-width: 185px"
>
<el-option :value="1" label="预警问题"/>
<el-option :value="2" label="风险问题"/>
<el-option :value="3" label="提醒通知"/>
</el-select>
</div>
</el-form-item>
<el-form-item
style="width: 333px"
label="被通知单位"
prop="involveDepartId"
:rules="{
message: '请选择问题涉及单位',
trigger: ['blur'],
}"
>
<depart-tree-select
v-model="formData2.involveDepartId"
:check-strictly="true"
@node-click="
(row) =>
(formData2.involveDepartName =
row.shortName)
"
/>
</el-form-item>
<el-form-item
label="提醒内容"
>
<el-input
type="textarea"
v-model="formData2.alarmContent"
:autosize="{ minRows: 12 }"
:rules="{
message: '请填写提醒内容',
trigger: ['blur'],
}"
style="width: 280px"
/>
</el-form-item>
</el-form>
<footer class="flex end">
<el-button @click="showNotification = false" size="large">取消</el-button>
<el-button type="primary" @click="handleNotification" size="large"
>提交
</el-button
>
</footer>
</el-dialog>
<negative-dialog <negative-dialog
v-model="negativeShow" v-model="negativeShow"
@ -487,7 +453,10 @@ import {
getDepartProfile, getDepartProfile,
listNegativeMonthly, listNegativeMonthly,
} from "@/api/sensitivePerception/profileDepart"; } from "@/api/sensitivePerception/profileDepart";
import {alarmNotificationCommit, alarmNotificationReply} from "@/api/work/alarm" import {
alarmNotificationCommit,
alarmNotificationReply,
} from "@/api/work/alarm";
import { listNegative } from "@/api/work/negative"; import { listNegative } from "@/api/work/negative";
import { InspectCase } from "@/enums/dictEnums"; import { InspectCase } from "@/enums/dictEnums";
import moment from "moment"; import moment from "moment";
@ -505,13 +474,6 @@ const query = ref({
}); });
const list = ref<any[]>([]); const list = ref<any[]>([]);
const total = ref(0); const total = ref(0);
let showNotification = ref(false)
let formData2 = ref({
alarmTypeId: 1,
involveDepartId: '',
involveDepartName: '',
alarmContent: ''
})
const mainLoading = ref(false); const mainLoading = ref(false);
function getList() { function getList() {
@ -523,14 +485,6 @@ function getList() {
}); });
} }
const initFormData2 = () => {
formData2.value ={
alarmTypeId: 1,
involveDepartId: '',
involveDepartName: '',
alarmContent: ''
}
}
function reset() { function reset() {
query.value = { query.value = {
@ -545,30 +499,13 @@ function reset() {
getList(); getList();
} }
const handleShowNotification = () => { let showNotification = ref(false);
showNotification.value = true const activeDepartId = ref('')
} const handleShowNotification = (row) => {
showNotification.value = true;
activeDepartId.value = row.departId
};
const handleNotification = async () => {
if(formData2.value.involveDepartId == '') {
feedback.msgWarning("请选择被提醒单位");
return;
}
if(formData2.value.alarmContent == '') {
feedback.msgWarning("请填写提醒内容");
return;
}
let data = {
alarmTypeId: formData2.value.alarmTypeId,
notificationDepartCode: formData2.value.involveDepartId,
notificationDepartName: formData2.value.involveDepartName,
alarmContent: formData2.value.alarmContent
}
await alarmNotificationCommit(data);
showNotification.value = false;
feedback.msgSuccess("操作成功");
initFormData2();
}
onMounted(() => { onMounted(() => {
getList(); getList();
@ -690,7 +627,7 @@ async function getProfileData() {
radarOption.value.radar.indicator = data.problemTypeRadarIndicator; radarOption.value.radar.indicator = data.problemTypeRadarIndicator;
radarOption.value.series[0].data[0].value = data.problemTypeRadarData; radarOption.value.series[0].data[0].value = data.problemTypeRadarData;
problemTypeBarList.value = data.problemTypeBarList; // problemTypeBarList.value = data.problemTypeBarList;
loading.value = false; loading.value = false;
} }
@ -751,7 +688,6 @@ function getColor(val) {
} }
return "var(--danger-color)"; return "var(--danger-color)";
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
main { main {

4
src/views/sensitivePerception/Model.vue

@ -554,7 +554,7 @@
</el-form-item> </el-form-item>
<el-form-item <el-form-item
label="时限设置" label="时限设置"
prop="" prop="replyLimit"
:rules="{ :rules="{
required: true, required: true,
message: '请选择时限设置', message: '请选择时限设置',
@ -564,7 +564,7 @@
<el-input <el-input
style="width: 100px" style="width: 100px"
type="number" type="number"
v-model="form" v-model="form.replyLimit"
/><span></span> /><span></span>
</div> </div>
</el-form-item> </el-form-item>

184
src/views/sensitivePerception/PoliceNegative.vue

@ -76,8 +76,7 @@
<icon name="el-icon-Search" /> <icon name="el-icon-Search" />
</template> </template>
查询 查询
</el-button </el-button>
>
<el-button @click="reset">重置</el-button> <el-button @click="reset">重置</el-button>
</div> </div>
</div> </div>
@ -138,15 +137,13 @@
link link
@click="handleShowProfile(row)" @click="handleShowProfile(row)"
>问题详情 >问题详情
</el-button </el-button>
>
<el-button <el-button
type="primary" type="primary"
link link
@click="handleShowNotification" @click="handleShowNotification(row)"
>预警提醒 >预警提醒
</el-button </el-button>
>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -430,8 +427,7 @@
link link
@click="handleAction(row)" @click="handleAction(row)"
>查看详情 >查看详情
</el-button </el-button>
>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -452,82 +448,7 @@
</el-scrollbar> </el-scrollbar>
</el-dialog> </el-dialog>
<el-dialog v-model="showNotification" title="创建提醒" width="600px"> <alarm-dialog v-model="showNotification" :departId="activeDepartId" @close="showNotification = false" />
<el-form label-width="148" :model="formData2" ref="formRef">
<el-form-item label="提醒类型">
<div class="flex gap">
<el-select
v-model="formData2.alarmTypeId"
style="min-width: 185px"
>
<el-option :value="1" label="预警问题"/>
<el-option :value="2" label="风险问题"/>
<el-option :value="3" label="提醒通知"/>
</el-select>
</div>
</el-form-item>
<el-form-item
style="width: 333px"
label="被通知单位"
prop="involveDepartId"
:rules="{
message: '请选择问题涉及单位',
trigger: ['blur'],
}"
>
<depart-tree-select
v-model="formData2.involveDepartId"
:check-strictly="true"
@node-click=" (row) => changeDepart(row)"
/>
</el-form-item>
<el-form-item
label="被提醒民警"
prop="blameEmpNo"
:rules="{
required: true,
message: '请选择提醒民警',
trigger: ['blur'],
}"
>
<el-select
v-model="police"
value-key="idCode"
placeholder="请选择提醒民警"
@change="changePolice"
style="width: 240px"
>
<el-option
v-for="item in polices"
:key="item.idCode"
:label="item.name"
:value="item"
/>
</el-select>
</el-form-item>
<el-form-item
label="提醒内容"
>
<el-input
type="textarea"
v-model="formData2.alarmContent"
:autosize="{ minRows: 12 }"
:rules="{
message: '请填写提醒内容',
trigger: ['blur'],
}"
style="width: 280px"
/>
</el-form-item>
</el-form>
<footer class="flex end">
<el-button @click="showNotification = false" size="large">取消</el-button>
<el-button type="primary" @click="handleNotification" size="large"
>提交
</el-button
>
</footer>
</el-dialog>
<negative-dialog <negative-dialog
v-model="negativeShow" v-model="negativeShow"
@ -548,96 +469,17 @@ import {getDictLable, getGenderFromIdCode} from "@/utils/util";
import moment from "moment"; import moment from "moment";
import useCatchStore from "@/stores/modules/catch"; import useCatchStore from "@/stores/modules/catch";
import {ref} from "vue";
import {alarmNotificationCommit} from "~/api/work/alarm";
import feedback from "~/utils/feedback"; import feedback from "~/utils/feedback";
import {listPoliceAll, listPoliceLeader} from "~/api/system/police";
const catchStore = useCatchStore(); const catchStore = useCatchStore();
const dict = catchStore.getDicts(["personType"]); const dict = catchStore.getDicts(["personType"]);
let showNotification = ref(false) let showNotification = ref(false);
let formData2 = ref({ const activeDepartId = ref('')
alarmTypeId: 1, const handleShowNotification = (row) => {
involveDepartId: '', showNotification.value = true;
involveDepartName: '', activeDepartId.value = row.departId
alarmContent: '', };
blameName: '',
blameIdCode: '',
blameEmpNo: '',
blames: {},
level: -1
})
let police = ref({})
let polices = ref([])
const handleShowNotification = () => {
showNotification.value = true
}
const handleNotification = async () => {
if(formData2.value.involveDepartId == '') {
feedback.msgWarning("请选择被提醒单位");
return;
}
if(formData2.value.alarmContent == '') {
feedback.msgWarning("请填写提醒内容");
return;
}
if(formData2.value.policeIdCode == '') {
feedback.msgWarning("请选择被提醒民警");
return;
}
let data = {
alarmTypeId: formData2.value.alarmTypeId,
notificationDepartCode: formData2.value.involveDepartId,
notificationDepartName: formData2.value.involveDepartName,
alarmContent: formData2.value.alarmContent,
policeName: police.value.name,
policeIdCode: police.value.idCode,
policeNo: police.value.empNo
}
await alarmNotificationCommit(data);
showNotification.value = false;
feedback.msgSuccess("操作成功");
}
const initFormData2 = () => {
formData2.value ={
alarmTypeId: 1,
involveDepartId: '',
involveDepartName: '',
alarmContent: '',
blameName: '',
blameIdCode: '',
blameEmpNo: '',
blames: {},
level: -1
}
}
const changeDepart = (row) => {
formData2.value.involveDepartName = row.shortName;
formData2.value.level = row.level
police.value = {}
getPolices(row.id);
}
const changePolice = (data) => {
police.value = {
idCode: data.idCode,
empNo: data.empNo,
name: data.name
}
}
function getPolices(departId) {
if(departId=='') {
return;
}
listPoliceLeader(departId).then(res => {
polices.value = res
})
}
const query = ref({ const query = ref({
current: 1, current: 1,

208
src/views/sensitivePerception/RiskClue.vue

@ -90,16 +90,6 @@
</el-scrollbar> </el-scrollbar>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" width="100">
<template #default="{ row }">
<el-button
type="primary"
link
@click="handleShowNotification(row.id)"
>预警提醒
</el-button>
</template>
</el-table-column>
</el-table> </el-table>
</div> </div>
<div class="flex end mt-8"> <div class="flex end mt-8">
@ -118,75 +108,6 @@
</div> </div>
</el-col> </el-col>
</el-row> </el-row>
<el-dialog v-model="showNotification" title="创建提醒" width="700px">
<el-form
label-width="148"
:model="formData2"
ref="formRef2"
class="mr-40"
>
<el-form-item label="提醒类型">
<el-select
v-model="formData2.alarmTypeId"
style="width: 280px"
>
<el-option :value="1" label="预警问题" />
<el-option :value="2" label="风险问题" />
<el-option :value="3" label="提醒通知" />
</el-select>
</el-form-item>
<el-form-item
label="被通知单位"
prop="involveDepartId"
:rules="{
message: '请选择问题涉及单位',
trigger: ['blur'],
}"
>
<div>
<depart-tree-select
v-model="formData2.involveDepartId"
:check-strictly="true"
@node-click="(row) => changeDepart(row)"
style="width: 280px"
/>
</div>
</el-form-item>
<el-form-item label="提醒内容">
<el-input
type="textarea"
v-model="formData2.alarmContent"
:autosize="{ minRows: 6 }"
:rules="{
message: '请填写提醒内容',
trigger: ['blur'],
}"
/>
</el-form-item>
<el-form-item label="是否要求回复">
<el-switch
v-model="formData2.requestReply"
inline-prompt
active-text="必须回复"
inactive-text="无需回复"
:active-value="true"
:inactive-value="false"
/>
</el-form-item>
</el-form>
<footer class="flex end">
<el-button @click="showNotification = false" size="large"
>取消</el-button
>
<el-button
type="primary"
@click="handleNotification"
size="large"
>提交
</el-button>
</footer>
</el-dialog>
</div> </div>
<el-dialog v-model="showAdd" title="风险问题录入" width="900px"> <el-dialog v-model="showAdd" title="风险问题录入" width="900px">
@ -334,7 +255,7 @@ import { listPoliceAll } from "~/api/system/police";
import { listQueryRiskPersonnel } from "@/api/sensitivePerception/riskPersonnel"; import { listQueryRiskPersonnel } from "@/api/sensitivePerception/riskPersonnel";
import { listRiskScoreRuleTreeOld } from "@/api/sensitivePerception/riskScoreRule"; import { listRiskScoreRuleTreeOld } from "@/api/sensitivePerception/riskScoreRule";
import { disabledDate } from "@/utils/util"; import { disabledDate } from "@/utils/util";
import { alarmNotificationCommit } from "~/api/work/alarm";
import feedback from "~/utils/feedback"; import feedback from "~/utils/feedback";
const query = ref({}); const query = ref({});
@ -353,6 +274,7 @@ onMounted(() => {
treeOptions.value = data; treeOptions.value = data;
}); });
}); });
watch( watch(
() => query.value.riskScoreRuleId, () => query.value.riskScoreRuleId,
() => { () => {
@ -369,97 +291,6 @@ watch(
const loading = ref(false); const loading = ref(false);
let showNotification = ref(false);
let formData2 = ref({
alarmTypeId: 1,
involveDepartId: "",
involveDepartName: "",
alarmContent: "",
blameName: "",
blameIdCode: "",
blameEmpNo: "",
blames: {},
level: -1,
requestReply: true,
});
let police = ref({});
let polices = ref([]);
let currentClueId = ref(-1);
const handleShowNotification = (id) => {
showNotification.value = true;
currentClueId.value = id;
};
const handleNotification = async () => {
if (formData2.value.involveDepartId == "") {
feedback.msgWarning("请选择被提醒单位");
return;
}
if (formData2.value.alarmContent == "") {
feedback.msgWarning("请填写提醒内容");
return;
}
if (formData2.value.policeIdCode == "") {
feedback.msgWarning("请选择被提醒民警");
return;
}
let data = {
alarmTypeId: formData2.value.alarmTypeId,
notificationDepartId: formData2.value.involveDepartId,
notificationDepartName: formData2.value.involveDepartName,
alarmContent: formData2.value.alarmContent,
policeName: police.value.name,
policeIdCode: police.value.idCode,
policeNo: police.value.empNo,
};
if (currentClueId.value != -1) {
data["clueId"] = currentClueId.value;
}
await alarmNotificationCommit(data);
showNotification.value = false;
feedback.msgSuccess("操作成功");
initFormData2();
};
const initFormData2 = () => {
formData2.value = {
alarmTypeId: 1,
involveDepartId: "",
involveDepartName: "",
alarmContent: "",
blameName: "",
blameIdCode: "",
blameEmpNo: "",
blames: {},
level: -1,
};
};
const changeDepart = (row) => {
formData2.value.involveDepartName = row.shortName;
formData2.value.level = row.level;
police.value = {};
getPolices(row.id);
};
const changePolice = (data) => {
police.value = {
idCode: data.idCode,
empNo: data.empNo,
name: data.name,
};
};
function getPolices(departId) {
if (departId == "") {
return;
}
listPoliceAll(departId).then((res) => {
polices.value = res;
});
}
function getList() { function getList() {
loading.value = true; loading.value = true;
listRiskClues(query.value).then((data) => { listRiskClues(query.value).then((data) => {
@ -469,41 +300,6 @@ function getList() {
}); });
} }
const filterJsonData = (row) => {
if (row.data == undefined) {
return "";
}
let j = JSON.parse(row.data);
let str = "";
if (j instanceof Array) {
j.forEach((item) => {
str += JSON.stringify(item) + "\n";
});
}
if (j.sourceData != undefined) {
j = JSON.parse(row.sourceData);
}
for (let key in j) {
if (key == "eventTime") {
continue;
}
if (key == "idCode") {
continue;
}
if (key == "departId") {
continue;
}
if (key == "personId") {
continue;
}
if (key == "name") {
continue;
}
str += j[key] + "\n";
}
};
function reset() { function reset() {
query.value = {}; query.value = {};
getList(); getList();

175
src/views/sensitivePerception/RiskPersonnel.vue

@ -148,7 +148,7 @@
<el-button <el-button
type="primary" type="primary"
link link
@click="handleShowNotification" @click="handleShowNotification(row)"
>预警提醒 >预警提醒
</el-button> </el-button>
</template> </template>
@ -352,81 +352,8 @@
</el-col> </el-col>
</el-row> </el-row>
</el-dialog> </el-dialog>
<el-dialog v-model="showNotification" title="创建提醒" width="600px">
<el-form label-width="148" :model="formData2" ref="formRef"> <alarm-dialog v-model="showNotification" :departId="activeDepartId" @close="showNotification = false" />
<el-form-item label="提醒类型">
<div class="flex gap">
<el-select
v-model="formData2.alarmTypeId"
style="min-width: 185px"
>
<el-option :value="1" label="预警问题" />
<el-option :value="2" label="风险问题" />
<el-option :value="3" label="提醒通知" />
</el-select>
</div>
</el-form-item>
<el-form-item
style="width: 333px"
label="被通知单位"
prop="involveDepartId"
:rules="{
message: '请选择问题涉及单位',
trigger: ['blur'],
}"
>
<depart-tree-select
v-model="formData2.involveDepartId"
:check-strictly="true"
@node-click="(row) => changeDepart(row)"
/>
</el-form-item>
<el-form-item
label="被提醒民警"
prop="blameEmpNo"
:rules="{
required: true,
message: '请选择提醒民警',
trigger: ['blur'],
}"
>
<el-select
v-model="police"
value-key="idCode"
placeholder="请选择提醒民警"
@change="changePolice"
style="width: 240px"
>
<el-option
v-for="item in polices"
:key="item.idCode"
:label="item.name"
:value="item"
/>
</el-select>
</el-form-item>
<el-form-item label="提醒内容">
<el-input
type="textarea"
v-model="formData2.alarmContent"
:autosize="{ minRows: 12 }"
:rules="{
message: '请填写提醒内容',
trigger: ['blur'],
}"
style="width: 280px"
/>
</el-form-item>
</el-form>
<footer class="flex end">
<el-button @click="showNotification = false" size="large"
>取消</el-button
>
<el-button type="primary" @click="handleNotification" size="large"
>提交
</el-button>
</footer>
</el-dialog>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { import {
@ -443,90 +370,12 @@ const total = ref(0);
const show = ref(false); const show = ref(false);
let showNotification = ref(false); let showNotification = ref(false);
let formData2 = ref({ const activeDepartId = ref('')
alarmTypeId: 1, const handleShowNotification = (row) => {
involveDepartId: "",
involveDepartName: "",
alarmContent: "",
blameName: "",
blameIdCode: "",
blameEmpNo: "",
blames: {},
level: -1,
});
let police = ref({});
let polices = ref([]);
const handleShowNotification = () => {
showNotification.value = true; showNotification.value = true;
activeDepartId.value = row.controlDepartId
}; };
const handleNotification = async () => {
if (formData2.value.involveDepartId == "") {
feedback.msgWarning("请选择被提醒单位");
return;
}
if (formData2.value.alarmContent == "") {
feedback.msgWarning("请填写提醒内容");
return;
}
if (formData2.value.policeIdCode == "") {
feedback.msgWarning("请选择被提醒民警");
return;
}
let data = {
alarmTypeId: formData2.value.alarmTypeId,
notificationDepartCode: formData2.value.involveDepartId,
notificationDepartName: formData2.value.involveDepartName,
alarmContent: formData2.value.alarmContent,
policeName: police.value.name,
policeIdCode: police.value.idCode,
policeNo: police.value.empNo,
};
await alarmNotificationCommit(data);
showNotification.value = false;
feedback.msgSuccess("操作成功");
initFormData2();
};
const initFormData2 = () => {
formData2.value = {
alarmTypeId: 1,
involveDepartId: "",
involveDepartName: "",
alarmContent: "",
blameName: "",
blameIdCode: "",
blameEmpNo: "",
blames: {},
level: -1,
};
};
const changeDepart = (row) => {
formData2.value.involveDepartName = row.shortName;
formData2.value.level = row.level;
police.value = {};
getPolices(row.id);
};
const changePolice = (data) => {
police.value = {
idCode: data.idCode,
empNo: data.empNo,
name: data.name,
};
};
function getPolices(departId) {
if (departId == "") {
return;
}
listPoliceAll(departId).then((res) => {
polices.value = res;
});
}
const loading = ref(false); const loading = ref(false);
function getList() { function getList() {
loading.value = true; loading.value = true;
@ -967,16 +816,16 @@ function getRiskTitle(score) {
font-size: 120px; font-size: 120px;
color: #fff; color: #fff;
&[type="red"] { &[type="red"] {
background: linear-gradient(180deg, #ffa36a 0%, #ff0000 100%); background: linear-gradient( 180deg, #FF6641 0%, #D40505 100%);
border-color: #f11d16; border-color: #C51B08;
} }
&[type="orange"] { &[type="orange"] {
background: linear-gradient(180deg, #febf00 0%, #eca20c 100%); background: linear-gradient( 180deg, #FE9E00 0%, #EC360C 100%);;
border-color: #d59705; border-color: #CD7242;
} }
&[type="yellow"] { &[type="yellow"] {
background: linear-gradient(180deg, #ffff00 0%, #e7ba04 100%); background: linear-gradient( 180deg, #FBC203 0%, #F08A02 100%);
border-color: #efd800; border-color: #DFA100;
} }
&[type="blue"] { &[type="blue"] {
background: linear-gradient(180deg, #01b0f1 0%, #026cf1 100%); background: linear-gradient(180deg, #01b0f1 0%, #026cf1 100%);

Loading…
Cancel
Save