This commit is contained in:
lcw
2025-12-26 09:39:22 +08:00
parent 6999c36c3a
commit e59b401828
23 changed files with 1586 additions and 150 deletions

View File

@ -0,0 +1,118 @@
<template>
<div class="dialog" v-if="dialogForm">
<div class="head_box">
<span class="title">积分系数规则{{ title }} </span>
<div>
<el-button type="primary" size="small" :loading="loading" @click="submit" >保存</el-button>
<el-button size="small" @click="close">关闭</el-button>
</div>
</div>
<div class="form_cnt">
<FormMessage v-model="listQuery" :formList="formData" ref="elform" :rules="rules">
</FormMessage>
</div>
</div>
</template>
<script setup>
import DialogList from '@/views/backOfficeSystem/fourColorManage/components/dialogList.vue'
import FormMessage from '@/components/aboutTable/FormMessage.vue'
import {sjxsglAddEntity ,sjxsglEditEntity,sjxsgId} from '@/api/sjxsgl.js'
import { ref,defineProps, defineExpose, reactive, onMounted, defineEmits, getCurrentInstance } from "vue";
const emit = defineEmits(["updateDate"]);
const props = defineProps({
type:String,
dic:Object,
});
const showDialog = ref(false); //弹窗
const listQuery = ref({}); //表单
const loading = ref(false);
const elform = ref();
const title = ref("");
const { proxy } = getCurrentInstance();
const dialogForm = ref(false); //弹窗
const formData = reactive([
{ label: "系数名称", prop: "mc", type: "input" },
{ label: "衰减比列", prop: "sjbl", type: "number", max: 100,step:0.1 },
{ label: "计算规则", prop: "jsgz", type: "textarea" ,width:'100%'},
]);
const rules = reactive({
mc: [{ required: true, message: "请输入系数名称", trigger: "blur" }],
sjbl: [{ required: true, message: "请输入衰减比列", trigger: "blur" }],
jsgz: [{ required: true, message: "请输入计算规则", trigger: ['blur','change'] }],
});
// 初始化数据
const init = (type, row,) => {
title.value = type == 'add' ? "新增" : "编辑";
dialogForm.value = true;
if (row) getDataById(row.id);
};
// 根据id查询详情
const getDataById = (id) => {
sjxsgId(id).then((res) => {
listQuery.value = res;
});
};
// 提交
const submit = () => {
console.log("xxxxxxxx");
elform.value.submit((data) => {
const promes = {
...data
}
console.log(promes);
if ( title.value == "新增" ) {
sjxsglAddEntity(promes).then((res) => {
proxy.$message({ type: "success", message: title.value + "成功" });
emit("updateDate");
loading.value = false;
close();
}).catch(() => {loading.value = false;});
} else {
sjxsglEditEntity(promes).then((res) => {
proxy.$message({ type: "success", message: title.value + "成功" });
emit("updateDate");
loading.value = false;
close();
}).catch(() => {loading.value = false;});
}
// let url = title.value == "新增" ? '/mosty-gsxt/tbGsxtBqgl/save':'/mosty-gsxt/tbGsxtBqgl/update';
// let params = { ...data, bqLb:props.dic.D_GS_BQ_LB.find((it)=>it.zdmc == props.type).dm }
// params.bqLx = '01';
// loading.value = true;
// qcckPost(params, url).then((res) => {
// proxy.$message({ type: "success", message: title.value + "成功" });
// emit("updateDate");
// loading.value = false;
// close();
// }).catch(() => {loading.value = false;});
});
};
// 选择的数据
const chooseDate = (val) => {
listQuery.value.bqDlId = val[0].id;
listQuery.value.bqDlMc = val[0].bqMc;
}
// 关闭
const close = () => {
listQuery.value = {};
dialogForm.value = false;
loading.value = false;
if(props.type == '标签细类') formData.pop()
};
defineExpose({ init });
</script>
<style lang="scss" scoped>
@import "~@/assets/css/layout.scss";
@import "~@/assets/css/element-plus.scss";
</style>

View File

@ -0,0 +1,149 @@
<template>
<div>
<div class="titleBox">
<PageTitle title="积分系数配置">
<el-button type="primary" @click="addEdit('add', '')">
<el-icon style="vertical-align: middle"><CirclePlus /></el-icon>
<span style="vertical-align: middle">新增</span>
</el-button>
</PageTitle>
</div>
<!-- 搜索 -->
<div ref="searchBox">
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount"></Search>
</div>
<!-- 表格 -->
<div class="tabBox" :style="{height:pageData.tableHeight+20+'px'}">
<MyTable
:tableData="pageData.tableData"
:tableColumn="pageData.tableColumn"
:tableHeight="pageData.tableHeight"
:key="pageData.keyCount"
:tableConfiger="pageData.tableConfiger"
:controlsWidth="pageData.controlsWidth"
>
<!-- 操作 -->
<template #controls="{ row }">
<el-link size="small" @click="addEdit('edit', row)">编辑</el-link>
<el-link size="small" @click="delDictItem(row.id)" type="danger">删除</el-link>
</template>
</MyTable>
<Pages
@changeNo="changeNo"
@changeSize="changeSize"
:tableHeight="pageData.tableHeight"
:pageConfiger="{
...pageData.pageConfiger,
total: pageData.total
}"
></Pages>
</div>
<!-- 编辑详情 -->
<EditAddForm v-if="show" ref="detailDiloag" :type="type" :dic="{D_GS_BQ_LX,D_GS_BQ_DJ,D_GS_SSYJ,D_GS_BQ_LB}" @updateDate="getList" />
</div>
</template>
<script setup>
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 EditAddForm from "./components/editAddForm.vue";
import {sjxsglDeleteEntity ,sjxsglGetPageList} from '@/api/sjxsgl.js'
import { reactive, ref, onMounted, getCurrentInstance, nextTick } from "vue";
const { proxy } = getCurrentInstance();
const { D_GS_BQ_DJ,D_GS_SSYJ,D_GS_BQ_LB,D_GS_BQ_LX } = proxy.$dict("D_GS_BQ_DJ","D_GS_SSYJ","D_GS_BQ_LB","D_GS_BQ_LX"); //获取字典数据
const detailDiloag = ref();
const searchBox = ref(); //搜索框
const type = ref('标签大类')
const show = ref(false)
const searchConfiger = ref([
{ label: "计算规则",prop:'jsgz',placeholder: "请输入计算规则", showType: "input"},
{ label: "系数名称",prop:'mc' ,placeholder: "请输入系数名称", showType: "input"},
]);
const queryFrom = ref({});
const pageData = reactive({
tableData: [], //表格数据
keyCount: 0,
tableConfiger: {
rowHieght: 61,
showSelectType: "null",
loading: false
},
total: 0,
pageConfiger: {
pageSize: 20,
pageCurrent: 1
}, //分页
controlsWidth: 150, //操作栏宽度
tableColumn: [
{ label: "系数名称", prop: "mc" },
{ label: "衰减比列", prop: "sjbl" },
{ label: "计算规则", prop: "jsgz"},
]
});
onMounted(() => {
getList()
tabHeightFn();
});
// 搜索
const onSearch = (val) =>{
queryFrom.value = {...val}
pageData.pageConfiger.pageCurrent = 1;
getList()
}
// 分页
const changeNo = (val) =>{
pageData.pageConfiger.pageCurrent = val;
getList()
}
// 页数
const changeSize = (val) =>{
pageData.pageConfiger.pageSize = val;
getList()
}
// 获取列表
const getList = () =>{
pageData.tableConfiger.loading = true;
let data = { ...pageData.pageConfiger,...queryFrom.value };
data.bqLb = type.value == '标签大类'? '01':'02'
sjxsglGetPageList(data).then(res=>{
pageData.tableData = res.records || [];
pageData.total = res.total;
pageData.tableConfiger.loading = false;
}).catch(()=>{ pageData.tableConfiger.loading = false; })
}
// 删除
const delDictItem = (id) =>{
proxy.$confirm("确定要删除", "警告", {type: "warning"}).then(() => {
sjxsglDeleteEntity({ids:[id]}).then(()=>{
proxy.$message({ type: "success", message: "删除成功" });
getList();
})
}).catch(() => {});
}
// 新增
const addEdit = (type, row) => {
show.value = true;
nextTick(()=>{
detailDiloag.value.init(type, row);
})
};
// 表格高度计算
const tabHeightFn = () => {
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 250;
window.onresize = function () { tabHeightFn(); };
};
</script>
<style>
.el-loading-mask {
background: rgba(0, 0, 0, 0.5) !important;
}
</style>

View File

@ -12,7 +12,9 @@
<span style="vertical-align: middle">导入</span>
</el-button> -->
<el-button type="primary" @click="addEdit('add', '')">
<el-icon style="vertical-align: middle"><CirclePlus /></el-icon>
<el-icon style="vertical-align: middle">
<CirclePlus />
</el-icon>
<span style="vertical-align: middle">新增</span>
</el-button>
</PageTitle>
@ -23,38 +25,31 @@
</div>
<!-- 表格 -->
<div class="tabBox">
<MyTable
:tableData="pageData.tableData"
:tableColumn="pageData.tableColumn"
:tableHeight="pageData.tableHeight"
:key="pageData.keyCount"
:tableConfiger="pageData.tableConfiger"
:controlsWidth="pageData.controlsWidth"
>
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth">
<template #bqYs="{ row }">
<DictTag :value="row.bqYs" :tag="false" :options="D_GS_SSYJ" />
</template>
<template #bqDj="{ row }">
<DictTag :tag="false" :value="row.bqDj" :options="D_GS_BQ_DJ" />
<DictTag :tag="false" :value="row.bqDj" :options="D_GS_BQ_DJ" />
</template>
<!-- 操作 -->
<template #controls="{ row }">
<el-link type="primary" @click="addEdit('edit', row)">编辑</el-link>
<el-link type="danger" @click="delDictItem(row.id)">删除</el-link>
<el-link type="primary" @click="chooseJfFun(row)">配置系统</el-link>
<el-link type="primary" @click="addEdit('edit', row)">编辑</el-link>
<el-link type="danger" @click="delDictItem(row.id)">删除</el-link>
</template>
</MyTable>
<Pages
@changeNo="changeNo"
@changeSize="changeSize"
:tableHeight="pageData.tableHeight"
:pageConfiger="{
...pageData.pageConfiger,
total: pageData.total
}"
></Pages>
<Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
...pageData.pageConfiger,
total: pageData.total
}"></Pages>
</div>
<!-- 编辑详情 -->
<EditAddForm v-if="show" ref="detailDiloag" :dic="{D_GS_BQ_LX,D_GS_BQ_DJ,D_GS_SSYJ,D_GS_BQ_LB}" @updateDate="getList" />
<EditAddForm v-if="show" ref="detailDiloag" :dic="{ D_GS_BQ_LX, D_GS_BQ_DJ, D_GS_SSYJ, D_GS_BQ_LB }"
@updateDate="getList" />
<ChooseJf v-model="chooseJfShow" titleValue="选择系数" :Single="false"
:chooseJfBh="chooseJfBh" url="/tbGsxtBqzh/sjxspz" :roleIds="roleIds"/>
</div>
</template>
@ -64,19 +59,21 @@ 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 ChooseJf from '@/components/ChooseList/ChooseJf/index.vue'
import { qcckGet, qcckPost, qcckDelete } from "@/api/qcckApi.js";
import { tbGsxtBqzhId } from "@/api/yj.js";
import { reactive, ref, onMounted, getCurrentInstance, nextTick } from "vue";
const { proxy } = getCurrentInstance();
const { D_GS_BQ_DJ,D_GS_SSYJ,D_GS_BQ_LB,D_GS_BQ_LX } = proxy.$dict("D_GS_BQ_DJ","D_GS_SSYJ","D_GS_BQ_LB","D_GS_BQ_LX"); //获取字典数据
const { D_GS_BQ_DJ, D_GS_SSYJ, D_GS_BQ_LB, D_GS_BQ_LX } = proxy.$dict("D_GS_BQ_DJ", "D_GS_SSYJ", "D_GS_BQ_LB", "D_GS_BQ_LX"); //获取字典数据
const detailDiloag = ref();
const show = ref(false)
const searchBox = ref(); //搜索框
const searchConfiger = ref(
[
{ label: "组合标签名称", prop: 'bqMc', placeholder: "请输入组合标签名称", showType: "input"},
// { label: "组合标签标签等级", prop: 'bqDj', placeholder: "请选择组合标签标签等级", showType: "select",options: D_GS_BQ_DJ },
{ label: "组合标签颜色", prop: 'bqYs', placeholder: "请选择组合标签标签颜色", showType: "select",options: D_GS_SSYJ },
]);
{ label: "组合标签名称", prop: 'bqMc', placeholder: "请输入组合标签名称", showType: "input" },
// { label: "组合标签标签等级", prop: 'bqDj', placeholder: "请选择组合标签标签等级", showType: "select",options: D_GS_BQ_DJ },
{ label: "组合标签颜色", prop: 'bqYs', placeholder: "请选择组合标签标签颜色", showType: "select", options: D_GS_SSYJ },
]);
const queryFrom = ref({});
const pageData = reactive({
tableData: [], //表格数据
@ -96,9 +93,9 @@ const pageData = reactive({
{ label: "组合标签名称", prop: "bqMc" },
{ label: "标签代码", prop: "bqDm" },
// { label: "组合标签等级", prop: "bqDj",showSolt:true },
{ label: "组合标签颜色", prop: "bqYs",showSolt:true },
{ label: "组合标签分值", prop: "bqFz"},
{ label: "组合标签说明", prop: "bqSm",showOverflowTooltip:true },
{ label: "组合标签颜色", prop: "bqYs", showSolt: true },
{ label: "组合标签分值", prop: "bqFz" },
{ label: "组合标签说明", prop: "bqSm", showOverflowTooltip: true },
]
});
onMounted(() => {
@ -108,51 +105,61 @@ onMounted(() => {
// 搜索
const onSearch = (val) =>{
queryFrom.value = {...val}
const onSearch = (val) => {
queryFrom.value = { ...val }
pageData.pageConfiger.pageCurrent = 1;
getList()
}
const changeNo = (val) =>{
const changeNo = (val) => {
pageData.pageConfiger.pageCurrent = val;
getList()
}
const changeSize = (val) =>{
const changeSize = (val) => {
pageData.pageConfiger.pageSize = val;
getList()
}
const getList = () =>{
const getList = () => {
pageData.tableConfiger.loading = true;
qcckGet(queryFrom.value,'/mosty-gsxt/tbGsxtBqzh/selectPage').then((res)=>{
qcckGet(queryFrom.value, '/mosty-gsxt/tbGsxtBqzh/selectPage').then((res) => {
pageData.tableData = res.records;
pageData.total = res.total;
pageData.tableConfiger.loading = false;
}).catch(()=>{
}).catch(() => {
pageData.tableConfiger.loading = false;
})
}
// 删除
const delDictItem = (id) =>{
proxy.$confirm("确定要删除", "警告", {type: "warning"}).then(() => {
qcckDelete({},'/mosty-gsxt/tbGsxtBqzh/'+id).then(()=>{
proxy.$message({ type: "success", message: "删除成功" });
const delDictItem = (id) => {
proxy.$confirm("确定要删除", "警告", { type: "warning" }).then(() => {
qcckDelete({}, '/mosty-gsxt/tbGsxtBqzh/' + id).then(() => {
proxy.$message({ type: "success", message: "删除成功" });
getList();
})
}).catch(() => {});
}).catch(() => { });
}
// 新增
const addEdit = (type, row) => {
show.value = true;
nextTick(()=>{
nextTick(() => {
detailDiloag.value.init(type, row,);
})
};
// 选择系数
const chooseJfShow = ref(false)
const chooseJfBh = ref()
const roleIds=ref()
const chooseJfFun = (val) => {
chooseJfBh.value=val.id
tbGsxtBqzhId(val.id).then(res => {
roleIds.value=res.sjxspzList.map(item => item.xsid)
chooseJfShow.value = true
})
}
// 表格高度计算
const tabHeightFn = () => {

View File

@ -47,6 +47,7 @@
<template #controls="{ row }">
<el-link type="warning" @click="pushAssess(row)">全息档案</el-link>
<el-link type="primary" @click="handleCzjy(row)" v-if="roleCode">处置建议</el-link>
<el-link type="primary" @click="chooseJfFun(row)" >配置系统</el-link>
<!-- <el-link type="primary" @click="showDetail(row)">转合成</el-link>
<el-link type="danger" @click="delDictItem(row.id)">转会商</el-link> -->
<el-link type="success" @click="handleQsFk(row, '签收')" v-if="row.czzt == '01' && permission_sfqs ">签收</el-link>
@ -74,7 +75,8 @@
<!-- 处置建议 -->
<Czjy ref="czjyRef" @okSubmit="getList"></Czjy>
<ChooseJf v-model="chooseJfShow" titleValue="选择系数" :Single="false"
:chooseJfBh="chooseJfBh" url="/yjzxXwyj/sjxspz" :roleIds="roleIds"/>
</template>
<script setup>
@ -87,6 +89,8 @@ import Searchs from "@/components/aboutTable/Search.vue";
import MyTable from "@/components/aboutTable/MyTable.vue";
import Pages from "@/components/aboutTable/Pages.vue";
import Items from "./item/items.vue";
import {yjzxXwyjSelectList } from "@/api/yj.js";
import ChooseJf from '@/components/ChooseList/ChooseJf/index.vue'
import { qcckGet, qcckPost } from "@/api/qcckApi.js";
import HolographicArchive from '@/views/home/components/holographicArchive.vue'
import { tbGsxtBqglSelectList } from '@/api/zdr'
@ -323,6 +327,19 @@ const openSearch = () => {
tabHeightFn()
})
}
// 选择系数
const chooseJfShow = ref(false)
const chooseJfBh = ref()
const roleIds=ref()
const chooseJfFun = (val) => {
chooseJfBh.value=val.id
yjzxXwyjSelectList(val.id).then(res => {
roleIds.value=res.sjxspzList.map(item => item.xsid)
chooseJfShow.value = true
})
}
// 表格高度计算
const tabHeightFn = () => {
if (search.value) {

View File

@ -40,13 +40,14 @@
<DictTag :value="row.czzt" :options="D_GSXT_YJXX_CZZT" />
</template>
<template #expand="{ props }">
<div class="expand-content" style="max-width: 100%">
<div class="expand-content" style="max-width: 100%; max-height: 400px; overflow-y: auto; padding: 10px;">
<Items :row="props || {}" :dict="dict" />
</div>
</template>
<template #controls="{ row }">
<el-link type="warning" @click="pushAssess(row)">全息档案</el-link>
<el-link type="primary" @click="handleCzjy(row)" v-if="roleCode">处置建议</el-link>
<el-link type="primary" @click="chooseJfFun(row)" >配置系统</el-link>
<!-- <el-link type="primary" @click="showDetail(row)">转合成</el-link>
<el-link type="danger" @click="delDictItem(row.id)">转会商</el-link> -->
<el-link type="success" @click="handleQsFk(row, '签收')" v-if="row.czzt == '01' && permission_sfqs">签收</el-link>
@ -71,6 +72,9 @@
<AddFrom ref="addModelRef" :dict="{ D_GSXT_YJXX_CZZT, D_BZ_YJJB, D_GS_SSYJ }" />
<!-- 处置建议 -->
<Czjy ref="czjyRef" @okSubmit="getList"></Czjy>
<ChooseJf v-model="chooseJfShow" titleValue="选择系数" :Single="false"
:chooseJfBh="chooseJfBh" url="/yjzxZhyj/sjxspz" :roleIds="roleIds"/>
</template>
<script setup>
@ -81,7 +85,8 @@ import Searchs from "@/components/aboutTable/Search.vue";
import MyTable from "@/components/aboutTable/MyTable.vue";
import Pages from "@/components/aboutTable/Pages.vue";
import Items from "./item/items.vue";
import { tbYjxxGetZbtj, tbGsxtBqzhSelectList } from '@/api/yj.js'
import ChooseJf from '@/components/ChooseList/ChooseJf/index.vue'
import { tbYjxxGetZbtj, tbGsxtBqzhSelectList,yjzxZhyjSelectList } from '@/api/yj.js'
import HolographicArchive from '@/views/home/components/holographicArchive.vue'
import Information from "@/views/home/model/information.vue";
import SemdFqzl from '@/components/instructionHasBeen/sendFqzl.vue'
@ -201,7 +206,7 @@ const getList = () => {
pageCurrent: pageData.pageConfiger.pageCurrent,
pageSize: pageData.pageConfiger.pageSize
}
tbYjxxGetZbtj(promes).then((res) => {
pageData.tableData = res.records || [];
pageData.total = res.total || 0;
@ -300,6 +305,20 @@ const openAddModel = (row) => {
addModelRef.value.init(row)
}
// 选择系数
const chooseJfShow = ref(false)
const chooseJfBh = ref()
const roleIds=ref()
const chooseJfFun = (val) => {
chooseJfBh.value=val.id
yjzxZhyjSelectList(val.id).then(res => {
roleIds.value=res.sjxspzList.map(item => item.xsid)
chooseJfShow.value = true
})
}
// 搜索栏
const search = ref(false)
const openSearch = () => {
@ -359,3 +378,4 @@ const exportExl = () => {
background: rgba(0, 0, 0, 0.5) !important;
}
</style>

View File

@ -75,7 +75,6 @@ const searchConfiger = ref(
[
{ label: "预警级别", prop: 'yjjbList', placeholder: "请输入姓名", showType: "select", options: D_BZ_YJJB },
{ label: "预警类型", prop: 'yjlxList', placeholder: "请输入身份证号码", showType: "select", options: D_GS_ZDQT_YJLB },
]);
const queryFrom = ref({});

View File

@ -47,6 +47,7 @@
<template #controls="{ row }">
<el-link type="warning" @click="pushAssess(row)">全息档案</el-link>
<el-link type="primary" @click="handleCzjy(row)" v-if="roleCode">处置建议</el-link>
<el-link type="primary" @click="chooseJfFun(row)" >配置系统</el-link>
<!-- <el-link type="primary" @click="showDetail(row)">转合成</el-link>
<el-link type="danger" @click="handleQsFk(row)">转会商</el-link> -->
<el-link type="success" @click="handleQsFk(row, '签收')" v-if="row.czzt == '01' && permission_sfqs">签收</el-link>
@ -72,6 +73,9 @@
<!-- 处置建议 -->
<Czjy ref="czjyRef" @okSubmit="getList"></Czjy>
<ChooseJf v-model="chooseJfShow" titleValue="选择系数" :Single="false"
:chooseJfBh="chooseJfBh" url="/yjzxSfyj/sjxspz" :roleIds="roleIds"/>
</template>
<script setup>
@ -85,10 +89,11 @@ import HolographicArchive from '@/views/home/components/holographicArchive.vue'
import Information from "@/views/home/model/information.vue";
import SemdFqzl from '@/components/instructionHasBeen/sendFqzl.vue'
import AddFrom from "./components/addFrom.vue";
import ChooseJf from '@/components/ChooseList/ChooseJf/index.vue'
import FkDialog from "@/views/backOfficeSystem/fourColorManage/warningControl/centerHome/components/fkDialog.vue";
import { reactive, ref, onMounted, getCurrentInstance, nextTick } from "vue";
import { qcckGet, qcckPost } from "@/api/qcckApi.js";
import { yjzxSfyjSelectList } from "@/api/yj.js";
import { yjzxSfyjSelectList,yjzxyjzxSfyjSelectList } from "@/api/yj.js";
import { tbGsxtBqglSelectList } from '@/api/zdr'
import Detail from './components/detail.vue'
import { watch } from "vue";
@ -159,7 +164,7 @@ onMounted(() => {
return ['JS_666666','JS_777777','JS_888888'].includes(item.roleCode)
})
roleCode.value = obj ? true : false;
gettbGsxtBqglSelectList()
tabHeightFn();
getList();
@ -320,6 +325,18 @@ const addModelRef = ref(null)
const openAddFrom = (row) => {
addModelRef.value.init('add', row)
}
// 选择系数
const chooseJfShow = ref(false)
const chooseJfBh = ref()
const roleIds=ref()
const chooseJfFun = (val) => {
chooseJfBh.value=val.id
yjzxyjzxSfyjSelectList(val.id).then(res => {
roleIds.value=res.sjxspzList.map(item => item.xsid)
chooseJfShow.value = true
})
}
// 搜索栏
const search = ref(false)
const openSearch = () => {

View File

@ -1,93 +1,116 @@
<template>
<el-dialog title="深度研判" v-model="visible" v-if="visible" width="70%" @close="close">
<el-form :model="formData" :rules="rules" ref="formRef" label-width="120px" label-position="top">
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="研判议题" prop="ypyt" class="mt10">
<el-input v-model="formData.ypyt" placeholder="请输入研判议题" clearable />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="研判时间" prop="wcsj" class="mt10">
<el-date-picker v-model="formData.wcsj" type="datetime" placeholder="请选择研判时间" style="width: 100%;" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="报告类型" prop="bglx" class="mt10">
<el-radio-group v-model="formData.bglx">
<el-radio v-for="value in D_BZ_YPLX" :key="value.value" :label="value.value" :value="value.value" >{{value.label}}</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="参与研判部门" prop="deptIds" class="mt10">
<MOSTY.Department clearable v-model="formData.ypbmdm" multiple style="width: 100%;" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="研判要求" prop="ypyq" class="mt10">
<el-input v-model="formData.ypyq" placeholder="请填写研判要求" type="textarea" rows="4" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item class="mt10" center>
<div style="margin: 0 auto;">
<el-button type="primary" :loading="loading" @click="submitForm">提交</el-button>
<el-button @click="close">取消</el-button>
</div>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-dialog>
<el-dialog title="深度研判" v-model="visible" v-if="visible" width="70%" @close="close">
<el-form :model="formData" :rules="rules" ref="formRef" label-width="120px" label-position="top">
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="研判议题" prop="ypyt" class="mt10">
<el-input v-model="formData.ypyt" placeholder="请输入研判议题" clearable />
</el-form-item>
</el-col>
<!-- <el-col :span="12">
<el-form-item label="研判时间" prop="wcsj" class="mt10">
<el-date-picker v-model="formData.wcsj" type="datetime" placeholder="请选择研判时间" style="width: 100%;" />
</el-form-item>
</el-col> -->
<el-col :span="12">
<el-form-item label="报告类型" prop="bglx" class="mt10">
<el-radio-group v-model="formData.bglx">
<el-radio v-for="value in D_BZ_YPLX" :key="value.value" :label="value.value" :value="value.value">{{
value.label }}</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="参与研判部门" prop="bmdm" class="mt10">
<MOSTY.Department clearable v-model="formData.bmdm" multiple style="width: 100%;"
@getDepValue="getdep($event)" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="研判要求" prop="ypyq" class="mt10">
<el-input v-model="formData.ypyq" placeholder="请填写研判要求" type="textarea" rows="4" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item class="mt10" center>
<div style="margin: 0 auto;">
<el-button type="primary" :loading="loading" @click="submitForm">提交</el-button>
<el-button @click="close">取消</el-button>
</div>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-dialog>
</template>
<script setup>
import * as MOSTY from "@/components/MyComponents/index";
import { ElMessage } from 'element-plus';
import { qcckPost } from '@/api/qcckApi'
import { ref,getCurrentInstance } from 'vue'
const emit = defineEmits(['change']);
const { proxy } = getCurrentInstance();
const { D_BZ_YPLX,D_BZ_YPFS } = proxy.$dict('D_BZ_YPLX','D_BZ_YPFS')
const visible = ref(true)
const loading = ref(false)
const formRef = ref()
const formData = ref({})
const rules = ref({
ypyt: [{ required: true, message: '请输入研判议题', trigger: 'blur' }],
wcsj: [{ required: true, message: '请选择研判时间', trigger: 'change' }],
bglx: [{ required: true, message: '请选择报告类型', trigger: 'change' }],
ypfs: [{ required: true, message: '请选择研判方式', trigger: 'change' }],
deptIds: [{ required: true, message: '请选择参与研判部门', trigger: 'change' }],
ypyq: [{ required: true, message: '请输入研判内容', trigger: 'blur' }],
})
const init = (row) => {
visible.value = true;
formData.value = Object.assign({}, formData.value, row || {})
}
const close = () => {
visible.value = false;
formRef.value.resetFields();
}
const submitForm = () => {
formRef.value.validate((valid) => {
if (!valid) return;
let data = { ...formData.value, yplx:'01' }
loading.value = true;
qcckPost(data,'/mosty-gsxt/lzJcjPjdb/sdyp').then(res => {
loading.value = false;
ElMessage.success('研判成功');
emit('change');
close();
}).catch(() => {
loading.value = false;
ElMessage.error('研判失败');
})
})
}
defineExpose({
init,
import * as MOSTY from "@/components/MyComponents/index";
import { ElMessage } from 'element-plus';
import { qcckPost } from '@/api/qcckApi'
import { ref, getCurrentInstance } from 'vue'
const emit = defineEmits(['change']);
const { proxy } = getCurrentInstance();
const { D_BZ_YPLX, D_BZ_YPFS } = proxy.$dict('D_BZ_YPLX', 'D_BZ_YPFS')
const visible = ref(false)
const loading = ref(false)
const formRef = ref()
const formData = ref({})
const rules = ref({
ypyt: [{ required: true, message: '请输入研判议题', trigger: 'blur' }],
// wcsj: [{ required: true, message: '请选择研判时间', trigger: 'change' }],
bglx: [{ required: true, message: '请选择报告类型', trigger: 'change' }],
ypfs: [{ required: true, message: '请选择研判方式', trigger: 'change' }],
deptIds: [{ required: true, message: '请选择参与研判部门', trigger: 'change' }],
ypyq: [{ required: true, message: '请输入研判内容', trigger: 'blur' }],
})
const init = (row) => {
visible.value = true;
formData.value = {
sjly: '03',
sjlyid: row.jjdbh,
}
}
const close = () => {
visible.value = false;
formRef.value.resetFields();
}
const deptIds = ref([])
const getdep = (e) => {
if (Array.isArray(e)) {
deptIds.value = e
} else {
deptIds.value = [e]
}
}
const submitForm = () => {
formRef.value.validate((valid) => {
if (!valid) return;
loading.value = true;
const promes = {
...formData.value,
cyypList: deptIds.value.map((item) => {
return {
ypbmmc: item.orgName,
ypbmdm: item.orgCode
}
}
),
}
qcckPost(promes, '/mosty-gsxt/lzJcjPjdb/sdyp').then(res => {
loading.value = false;
ElMessage.success('研判成功');
emit('change');
close();
}).catch(() => {
loading.value = false;
ElMessage.error('研判失败');
})
})
}
defineExpose({
init,
})
</script>

View File

@ -25,16 +25,17 @@
<template #jqlbdm="{ row }">
<DictTag :tag="false" :value="row.jqlbdm" :options="JQLB" />
</template>
<template #ypzt="{ row }">
{{ row.ypzt === '01' ? '已研判' : '未研判' }}
</template>
<!-- <template #jqdjdm="{ row }">
<DictTag :tag="false" :value="row.jqdjdm" :options="D_BZ_JQDJ" />
</template> -->
<!-- 操作 -->
<template #controls="{ row }">
<el-link type="warning" @click="addEdit('edit', row)">研判</el-link>
<el-link type="danger" @click="addEdit('edit', row)">深度研判</el-link>
<el-link type="primary" @click="addEdit('edit', row)">详情</el-link>
<el-link type="primary" @click="handleYP('研判', row)">研判</el-link>
<el-link type="primary" @click="handleYP('深度研判', row)">深度研判</el-link>
<el-link type="warning" @click="handleYP('研判', row)">研判</el-link>
<el-link type="danger" @click="handleYP('深度研判', row)">深度研判</el-link>
</template>
</MyTable>
<Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
@ -48,7 +49,7 @@
<!-- 研判弹窗 -->
<YpDialog ref="ypDialog" @change="getList" />
<!-- <DeepYpDialog ref="deepYpDialog" @change="getList" /> -->
<DeepYpDialog ref="deepYpDialog" @change="getList" />
</div>
</template>
@ -122,7 +123,7 @@ const pageData = reactive({
{ label: "警情类型", prop: "jqlbdm",showSolt:true },
{ label: "警情地址", prop: "jqdz" },
{ label: "补充接警内容", prop: "bcjjnr", showOverflowTooltip: true },
{ label: "研判状态", prop: "ypzt",showSolt:true },
]
});