lcw
This commit is contained in:
@ -1,6 +1,5 @@
|
|||||||
import request from "@/utils/request";
|
import request from "@/utils/request";
|
||||||
const api = "/mosty-api/mosty-gsxt";
|
const api = "/mosty-api/mosty-gsxt";
|
||||||
// 群体性质新增
|
|
||||||
export const tbGsxtZdrySelectVoById = (params) => {
|
export const tbGsxtZdrySelectVoById = (params) => {
|
||||||
return request({
|
return request({
|
||||||
url: api + `/tbGsxtZdry/getZyryById`,
|
url: api + `/tbGsxtZdry/getZyryById`,
|
||||||
@ -16,7 +15,14 @@ export const tbGsxtZdryUpdate = (data) => {
|
|||||||
data,
|
data,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
// 重点人员新增
|
||||||
|
export const tbGsxtZdrySave = (data) => {
|
||||||
|
return request({
|
||||||
|
url: api + `/tbGsxtZdry/save `,
|
||||||
|
method: "post",
|
||||||
|
data,
|
||||||
|
});
|
||||||
|
}
|
||||||
// 重点人员车辆信息-(新增)
|
// 重点人员车辆信息-(新增)
|
||||||
export const tbZdryClxxAdd = (data) => {
|
export const tbZdryClxxAdd = (data) => {
|
||||||
return request({
|
return request({
|
||||||
@ -68,14 +74,20 @@ export const tbGsxtZdryLxrselectLxrBy = (params) => {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
// 密切联系人新增或者修改接口
|
// 密切联系人新增或者修改接口
|
||||||
export const tbGsxtZdryLxrsaveOrUpdateLxr = (params) => {
|
export const tbGsxtZdryLxrsaveOrUpdateLxr = (data) => {
|
||||||
return request({
|
return request({
|
||||||
url: api + `/tbGsxtZdryLxr/saveOrUpdateLxr`,
|
url: api + `/tbGsxtZdryLxr/saveOrUpdateLxr`,
|
||||||
method: "post",
|
method: "post",
|
||||||
params,
|
data,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
// 密切联系人新增或者修改接口
|
||||||
|
export const tbGsxtZdryLxr = (id) => {
|
||||||
|
return request({
|
||||||
|
url: api + `/tbGsxtZdryLxr/${id}`,
|
||||||
|
method: "delete",
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// 走访记录查询接口
|
// 走访记录查询接口
|
||||||
export const tbGsxtZdryZfjlselectZfjl = (params) => {
|
export const tbGsxtZdryZfjlselectZfjl = (params) => {
|
||||||
return request({
|
return request({
|
||||||
@ -84,6 +96,21 @@ export const tbGsxtZdryZfjlselectZfjl = (params) => {
|
|||||||
params,
|
params,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
// 新增或修改走访记录信息
|
||||||
|
export const tbGsxtZdryZfjlsaveOrUpdateZfjl = (data) => {
|
||||||
|
return request({
|
||||||
|
url: api + `/tbGsxtZdryZfjl/saveOrUpdateZfjl`,
|
||||||
|
method: "post",
|
||||||
|
data,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
export const tbGsxtZdryZfjl = (id) => {
|
||||||
|
return request({
|
||||||
|
url: api + `/tbGsxtZdryZfjl/${id}`,
|
||||||
|
method: "delete",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// 案件信息查询接口
|
// 案件信息查询接口
|
||||||
export const tbGsxtZdryAjxxselectAjxx = (params) => {
|
export const tbGsxtZdryAjxxselectAjxx = (params) => {
|
||||||
return request({
|
return request({
|
||||||
@ -92,3 +119,17 @@ export const tbGsxtZdryAjxxselectAjxx = (params) => {
|
|||||||
params,
|
params,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
// 新增或修改案件信息
|
||||||
|
export const tbGsxtZdryAjxxSaveOrUpdateAjxx = (data) => {
|
||||||
|
return request({
|
||||||
|
url: api + `/tbGsxtZdryAjxx/saveOrUpdateAjxx`,
|
||||||
|
method: "post",
|
||||||
|
data,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
export const tbGsxtZdryAjxx = (id) => {
|
||||||
|
return request({
|
||||||
|
url: api + `/tbGsxtZdryAjxx/${id} `,
|
||||||
|
method: "delete",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
@ -106,48 +106,48 @@ onMounted(() => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// window.map = map;
|
|
||||||
// map.mapboxGLMap.on("load", () => {
|
|
||||||
// map.addGaudLayer({
|
|
||||||
// url: 'http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}',
|
|
||||||
// })
|
|
||||||
// zoomTarget.value = map.mapboxGLMap.getZoom();
|
|
||||||
// // 地图加载完成后发出事件
|
|
||||||
// emit('mapLoaded')
|
|
||||||
// });
|
|
||||||
// mapUtil.value = new MapUtil(map);
|
|
||||||
map = new EliMap({
|
|
||||||
id: props.mapid,
|
|
||||||
crs: "EPSG:4490",
|
|
||||||
style: {
|
|
||||||
glyphs: "./fonts/{fontstack}/{range}.pbf",
|
|
||||||
center: [94.36057012, 29.64276831],
|
|
||||||
zoom: 15
|
|
||||||
},
|
|
||||||
minZoom: 7,
|
|
||||||
maxZoom: 18,
|
|
||||||
});
|
|
||||||
window.map = map;
|
window.map = map;
|
||||||
map.mapboxGLMap.on("load", () => {
|
map.mapboxGLMap.on("load", () => {
|
||||||
map.addWMTSLayer(
|
map.addGaudLayer({
|
||||||
"/PGIS_S_TileMapServer/Maps/XZDJ_SL/EzMap"
|
url: 'http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}',
|
||||||
,
|
})
|
||||||
{
|
|
||||||
Service: "getImage",
|
|
||||||
Type: "RGB",
|
|
||||||
ZoomOffset: "0",
|
|
||||||
V: "0.3",
|
|
||||||
Zoom: "{z}",
|
|
||||||
Row: "{y}",
|
|
||||||
Col: "{x}"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
tileSize: 300
|
|
||||||
}
|
|
||||||
);
|
|
||||||
zoomTarget.value = map.mapboxGLMap.getZoom();
|
zoomTarget.value = map.mapboxGLMap.getZoom();
|
||||||
|
// 地图加载完成后发出事件
|
||||||
|
emit('mapLoaded')
|
||||||
});
|
});
|
||||||
mapUtil.value = new MapUtil(map);
|
mapUtil.value = new MapUtil(map);
|
||||||
|
// map = new EliMap({
|
||||||
|
// id: props.mapid,
|
||||||
|
// crs: "EPSG:4490",
|
||||||
|
// style: {
|
||||||
|
// glyphs: "./fonts/{fontstack}/{range}.pbf",
|
||||||
|
// center: [94.36057012, 29.64276831],
|
||||||
|
// zoom: 15
|
||||||
|
// },
|
||||||
|
// minZoom: 7,
|
||||||
|
// maxZoom: 18,
|
||||||
|
// });
|
||||||
|
// window.map = map;
|
||||||
|
// map.mapboxGLMap.on("load", () => {
|
||||||
|
// map.addWMTSLayer(
|
||||||
|
// "/PGIS_S_TileMapServer/Maps/XZDJ_SL/EzMap"
|
||||||
|
// ,
|
||||||
|
// {
|
||||||
|
// Service: "getImage",
|
||||||
|
// Type: "RGB",
|
||||||
|
// ZoomOffset: "0",
|
||||||
|
// V: "0.3",
|
||||||
|
// Zoom: "{z}",
|
||||||
|
// Row: "{y}",
|
||||||
|
// Col: "{x}"
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// tileSize: 300
|
||||||
|
// }
|
||||||
|
// );
|
||||||
|
// zoomTarget.value = map.mapboxGLMap.getZoom();
|
||||||
|
// });
|
||||||
|
// mapUtil.value = new MapUtil(map);
|
||||||
mapUtil.value.Drawplot(); //初始化加载绘制工具
|
mapUtil.value.Drawplot(); //初始化加载绘制工具
|
||||||
|
|
||||||
// 设置地图中心点及图层
|
// 设置地图中心点及图层
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
<el-form-item v-for="(item, idx) in props.formList" :style="item.width && { width: item.width }" :prop="item.prop" :label="item.label" :label-width="item.labelWidth" :key="idx">
|
<el-form-item v-for="(item, idx) in props.formList" :style="item.width && { width: item.width }" :prop="item.prop" :label="item.label" :label-width="item.labelWidth" :key="idx">
|
||||||
<!-- input表单 input-->
|
<!-- input表单 input-->
|
||||||
<MOSTY.Other v-if="item.type == 'input'" width="100%" clearable v-model="listQuery[item.prop]" :placeholder="`请输入${item.label}`" :disabled="item.disabled" :readonly="item.readonly" />
|
<MOSTY.Other v-if="item.type == 'input'" width="100%" clearable v-model="listQuery[item.prop]" :placeholder="`请输入${item.label}`" :disabled="item.disabled" :readonly="item.readonly" />
|
||||||
|
|
||||||
<el-input v-model="listQuery[item.prop]" v-else-if="item.type == 'textarea'" type="textarea" :rows="3" :placeholder="`请输入${item.label}`" :disabled="item.disabled" />
|
<el-input v-model="listQuery[item.prop]" v-else-if="item.type == 'textarea'" type="textarea" :rows="3" :placeholder="`请输入${item.label}`" :disabled="item.disabled" />
|
||||||
<!-- 数值 inputNumber-->
|
<!-- 数值 inputNumber-->
|
||||||
<el-input type="number" v-model="listQuery[item.prop]" v-else-if="item.type == 'inputNumber'" :placeholder="`请输入${item.label}`" :disabled="item.disabled" />
|
<el-input type="number" v-model="listQuery[item.prop]" v-else-if="item.type == 'inputNumber'" :placeholder="`请输入${item.label}`" :disabled="item.disabled" />
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="headClass" style="">
|
<div class="headClass" style="">
|
||||||
<h3>管控信息</h3>
|
<h3>{{title}}管控信息</h3>
|
||||||
<el-button type="primary" :disabled="disabled" @click="chooseMarksVisible = true">选择</el-button>
|
<el-button type="primary" :disabled="disabled" @click="chooseMarksVisible = true">选择</el-button>
|
||||||
</div>
|
</div>
|
||||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||||
@ -37,6 +37,10 @@ const props = defineProps({
|
|||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: false
|
default: false
|
||||||
},
|
},
|
||||||
|
title: {
|
||||||
|
type: String,
|
||||||
|
default: "群体"
|
||||||
|
}
|
||||||
})
|
})
|
||||||
const { D_BZ_RYJZLB } = proxy.$dict('D_BZ_RYJZLB')
|
const { D_BZ_RYJZLB } = proxy.$dict('D_BZ_RYJZLB')
|
||||||
const pageData = reactive({
|
const pageData = reactive({
|
||||||
@ -75,7 +79,6 @@ const pageData = reactive({
|
|||||||
|
|
||||||
})
|
})
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
console.log('ControlInfo 组件已挂载!')
|
|
||||||
})
|
})
|
||||||
const listData = ref({})
|
const listData = ref({})
|
||||||
watch(() => props.dataList, (val) => {
|
watch(() => props.dataList, (val) => {
|
||||||
|
@ -0,0 +1,86 @@
|
|||||||
|
<template>
|
||||||
|
<!-- 添加 -->
|
||||||
|
<el-dialog v-model="modelValue" :title="title" width="40%" :before-close="handleClose">
|
||||||
|
<el-form ref="historyForm" style="max-width: 600px" :model="diaLogRuleForm" :rules="rules">
|
||||||
|
<el-form-item label-width="160px" label="姓名" prop="ryXm" style="width: 100%;">
|
||||||
|
<el-input v-model="diaLogRuleForm.ryXm" :placeholder="`请输入联系人姓名`" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label-width="160px" label="人员身份证号" prop="rySfzh" style="width: 100%;">
|
||||||
|
<el-input v-model="diaLogRuleForm.rySfzh" :placeholder="`请输入人员身份证号`" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label-width="160px" label="对应关系" prop="dygx" style="width: 100%;">
|
||||||
|
<el-select v-model="diaLogRuleForm.dygx" placeholder="请选择对应关系">
|
||||||
|
<el-option v-for="item in dict.D_BZ_QSGXDM" :key="item.dm" :label="item.zdmc" :value="item.dm" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label-width="160px" label="联系人电话" prop="lxrDh" style="width: 100%;">
|
||||||
|
<el-input v-model="diaLogRuleForm.lxrDh" :placeholder="`请输入联系人电话`" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<template #footer>
|
||||||
|
<div class="dialog-footer">
|
||||||
|
<el-button @click="handleClose">取消</el-button>
|
||||||
|
<el-button type="primary" @click="onSubmit">
|
||||||
|
确认
|
||||||
|
</el-button>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
<script setup>
|
||||||
|
import { defineProps, defineEmits, ref, watch, reactive } from 'vue'
|
||||||
|
import { generateRandom10Digits } from '@/utils/tools'
|
||||||
|
const props = defineProps({
|
||||||
|
data: {
|
||||||
|
type: Object,
|
||||||
|
default: () => { }
|
||||||
|
},
|
||||||
|
modelValue: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
title: {
|
||||||
|
type: String,
|
||||||
|
default: ''
|
||||||
|
},
|
||||||
|
dict: {
|
||||||
|
type: Object,
|
||||||
|
default: () => { }
|
||||||
|
}
|
||||||
|
})
|
||||||
|
const historyForm = ref(null)
|
||||||
|
const emit = defineEmits(['update:modelValue', 'submit'])
|
||||||
|
const diaLogRuleForm = ref({})
|
||||||
|
const rules = reactive({
|
||||||
|
ryXm: [{ required: true, message: '请输入姓名', trigger: 'blur' }],
|
||||||
|
rySfzh: [{ required: true, message: '请输入身份证号', trigger: 'blur' }],
|
||||||
|
dygx: [{ required: true, message: '请选择对应关系', trigger: 'change' }],
|
||||||
|
})
|
||||||
|
watch(
|
||||||
|
() => props.data,
|
||||||
|
(val) => {
|
||||||
|
diaLogRuleForm.value = val ? { ...val } : {}
|
||||||
|
},
|
||||||
|
{ deep: true }
|
||||||
|
)
|
||||||
|
|
||||||
|
// 取消:关闭弹窗
|
||||||
|
const handleClose = () => {
|
||||||
|
diaLogRuleForm.value = {}
|
||||||
|
emit('update:modelValue', false)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 提交
|
||||||
|
const onSubmit = () => {
|
||||||
|
historyForm.value.validate().then((valid) => {
|
||||||
|
if (valid) {
|
||||||
|
emit('submit', { ...diaLogRuleForm.value }) // 提交数据
|
||||||
|
handleClose()
|
||||||
|
}
|
||||||
|
}).catch((err) => {
|
||||||
|
console.log(err);
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style scoped lang="scss"></style>
|
@ -0,0 +1,91 @@
|
|||||||
|
<template>
|
||||||
|
<!-- 添加 -->
|
||||||
|
<el-dialog v-model="modelValue" :title="title" width="40%" :before-close="handleClose">
|
||||||
|
<FormMessage v-model="listQuery" :formList="formData" labelWidth="120px" ref="elform" :rules="rules">
|
||||||
|
<template #zfmjXm>
|
||||||
|
<el-input v-model="listQuery.zfmjXm" :placeholder="`请输入民警姓名`" readonly @click="changeShow" />
|
||||||
|
</template>
|
||||||
|
</FormMessage>
|
||||||
|
<template #footer>
|
||||||
|
<el-button @click="handleClose">取消</el-button>
|
||||||
|
<el-button type="primary" @click="submitForm">确认</el-button>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
<ChooseUser :Single="true" v-model="chooseMarksVisible" @choosedUsers="addMarks" :roleIds="roleIds" />
|
||||||
|
</template>
|
||||||
|
<script setup>
|
||||||
|
import { defineProps, defineEmits, ref, watch, reactive, getCurrentInstance } from 'vue'
|
||||||
|
import { generateRandom10Digits } from '@/utils/tools'
|
||||||
|
import FormMessage from "@/components/aboutTable/FormMessage.vue";
|
||||||
|
import ChooseUser from "@/components/ChooseList/ChooseUser/index.vue";
|
||||||
|
const { proxy } = getCurrentInstance();
|
||||||
|
const { D_ZFNR_MBLX } = proxy.$dict("D_ZFNR_MBLX")
|
||||||
|
const props = defineProps({
|
||||||
|
data: {
|
||||||
|
type: Object,
|
||||||
|
default: () => { }
|
||||||
|
},
|
||||||
|
modelValue: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
title: {
|
||||||
|
type: String,
|
||||||
|
default: '走访信息'
|
||||||
|
},
|
||||||
|
dict: {
|
||||||
|
type: Object,
|
||||||
|
default: () => { }
|
||||||
|
}
|
||||||
|
})
|
||||||
|
const emit = defineEmits(['update:modelValue', 'comfirm'])
|
||||||
|
const historyForm = ref(null)
|
||||||
|
const chooseMarksVisible = ref(false)
|
||||||
|
const listQuery = ref({})
|
||||||
|
const formData = ref([
|
||||||
|
{ label: "民警姓名", prop: "zfmjXm", type: "slot", width: '100%' },
|
||||||
|
{ label: "走访时间", prop: "zfsj", type: "date", width: '100%' },
|
||||||
|
{ label: "走访地址", prop: "zfdz", type: "input", width: '100%' },
|
||||||
|
{ label: "走访方式", prop: "zffs", type: "input", width: '100%' },
|
||||||
|
{ label: "走访情况", prop: "zfqk", type: "textarea", width: '100%' },
|
||||||
|
])
|
||||||
|
const rules = reactive({
|
||||||
|
zfmjXm: [{ required: true, message: "请选择民警姓名", trigger: "blur" }],
|
||||||
|
zfsj: [{ required: true, message: "请输入走访时间", trigger: "change" }],
|
||||||
|
zfdz: [{ required: true, message: "请输入走访地址", trigger: "blur" }],
|
||||||
|
zffs: [{ required: true, message: "请输入走访方式", trigger: "blur" }],
|
||||||
|
zfqk: [{ required: true, message: "请输入走访情况", trigger: "blur" }],
|
||||||
|
})
|
||||||
|
const changeShow = () => {
|
||||||
|
chooseMarksVisible.value = true
|
||||||
|
}
|
||||||
|
const addMarks = (val) => {
|
||||||
|
listQuery.value.zfmjXm = val[0].userName
|
||||||
|
listQuery.value.zfmjSfzh=val[0].idEntityCard
|
||||||
|
}
|
||||||
|
const elform=ref(null)
|
||||||
|
const submitForm = () => {
|
||||||
|
elform.value.submit((val) => {
|
||||||
|
if (val) {
|
||||||
|
emit('comfirm', val)
|
||||||
|
handleClose()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
watch(
|
||||||
|
() => props.data,
|
||||||
|
(val) => {
|
||||||
|
console.log(val);
|
||||||
|
|
||||||
|
listQuery.value = val ? { ...val } : {}
|
||||||
|
},
|
||||||
|
{ deep: true }
|
||||||
|
)
|
||||||
|
// 取消:关闭弹窗
|
||||||
|
const handleClose = () => {
|
||||||
|
listQuery.value = {}
|
||||||
|
emit('update:modelValue', false)
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style scoped lang="scss"></style>
|
@ -8,25 +8,28 @@
|
|||||||
<el-input v-model="ruleForm.clsbm" placeholder="请输入车辆识别码" />
|
<el-input v-model="ruleForm.clsbm" placeholder="请输入车辆识别码" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="车辆型号" prop="cllx">
|
<el-form-item label="车辆型号" prop="cllx">
|
||||||
<el-select v-model="ruleForm.cllx" placeholder="请选择车辆型号">
|
<el-select v-model="ruleForm.cllx" placeholder="请选择车辆型号">
|
||||||
<el-option :label="item.zdmc" :value="item.dm" v-for="(item,index) in dict.D_BZ_CLLX" :key="index"></el-option>
|
<el-option :label="item.zdmc" :value="item.dm" v-for="(item, index) in dict.D_BZ_CLLX"
|
||||||
</el-select>
|
:key="index"></el-option>
|
||||||
</el-form-item>
|
</el-select>
|
||||||
<el-form-item label="车辆颜色" prop="clys">
|
</el-form-item>
|
||||||
<el-select v-model="ruleForm.clys" placeholder="请选择车辆颜色">
|
<el-form-item label="车辆颜色" prop="clys">
|
||||||
<el-option :label="item.zdmc" :value="item.dm" v-for="(item,index) in dict.D_BZ_CLYS" :key="index"></el-option>
|
<el-select v-model="ruleForm.clys" placeholder="请选择车辆颜色">
|
||||||
</el-select>
|
<el-option :label="item.zdmc" :value="item.dm" v-for="(item, index) in dict.D_BZ_CLYS"
|
||||||
</el-form-item>
|
:key="index"></el-option>
|
||||||
<el-form-item label="车辆品牌" prop="clpp">
|
</el-select>
|
||||||
<el-select v-model="ruleForm.clpp" placeholder="请选择车辆品牌">
|
</el-form-item>
|
||||||
<el-option :label="item.zdmc" :value="item.dm" v-for="(item,index) in dict.D_BZ_CLPP" :key="index"></el-option>
|
<el-form-item label="车辆品牌" prop="clpp">
|
||||||
</el-select>
|
<el-select v-model="ruleForm.clpp" placeholder="请选择车辆品牌">
|
||||||
</el-form-item>
|
<el-option :label="item.zdmc" :value="item.dm" v-for="(item, index) in dict.D_BZ_CLPP"
|
||||||
|
:key="index"></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<div class="dialog-footer">
|
<div class="dialog-footer">
|
||||||
<el-button @click="closed">取消</el-button>
|
<el-button @click="closed">取消</el-button>
|
||||||
<el-button type="primary" @click="onComfirm">确认</el-button>
|
<el-button type="primary" @click="onComfirm()">确认</el-button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
@ -66,18 +69,22 @@ const rules = reactive({
|
|||||||
});
|
});
|
||||||
|
|
||||||
const onComfirm = () => {
|
const onComfirm = () => {
|
||||||
const promes = {...ruleForm.value,
|
historyForm.value.validate((valid, fields) => {
|
||||||
id: ruleForm.value.id ? ruleForm.value.id : generateRandom10Digits(),
|
if (valid) {
|
||||||
}
|
const promes = {
|
||||||
console.log(promes);
|
...ruleForm.value,
|
||||||
|
id: ruleForm.value.id ? ruleForm.value.id : generateRandom10Digits(),
|
||||||
emits("comfirm", { ...promes });
|
}
|
||||||
closed()
|
emits("comfirm", { ...promes });
|
||||||
|
closed()
|
||||||
|
} else {
|
||||||
|
console.log('error submit!', fields)
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
watch(() => props.modelValue, (val) => {
|
watch(() => props.modelValue, (val) => {
|
||||||
ruleForm.value = props.data
|
ruleForm.value = props.data
|
||||||
},{deep: true})
|
}, { deep: true })
|
||||||
|
|
||||||
|
|
||||||
const closed = () => {
|
const closed = () => {
|
||||||
|
@ -10,30 +10,32 @@
|
|||||||
<div class="form_cnt flex just-between">
|
<div class="form_cnt flex just-between">
|
||||||
<div class="left_box">
|
<div class="left_box">
|
||||||
<ul class="anchor-list">
|
<ul class="anchor-list">
|
||||||
<li @click="scrollToSection('info-section')" :class="activeSection === 'info-section' ? 'active' : ''">基本信息
|
<li @click="scrollToSection('info-section')" :class="activeSection === 'info-section' ? 'active' : ''">人员信息
|
||||||
</li>
|
</li>
|
||||||
<li @click="scrollToSection('backinfo-section')"
|
<li @click="scrollToSection('backinfo-section')"
|
||||||
:class="activeSection === 'backinfo-section' ? 'active' : ''">人员标签</li>
|
:class="activeSection === 'backinfo-section' ? 'active' : ''">人员标签</li>
|
||||||
<li @click="scrollToSection('groupLabels-section')"
|
<li @click="scrollToSection('groupLabels-section')"
|
||||||
:class="activeSection === 'groupLabels-section' ? 'active' : ''">群体标签</li>
|
:class="activeSection === 'groupLabels-section' ? 'active' : ''">关联车辆</li>
|
||||||
<li @click="scrollToSection('character-section')"
|
<li @click="scrollToSection('character-section')"
|
||||||
:class="activeSection === 'character-section' ? 'active' : ''">群体性质</li>
|
:class="activeSection === 'character-section' ? 'active' : ''">背景信息</li>
|
||||||
<li @click="scrollToSection('controlInfo-section')"
|
<li @click="scrollToSection('controlInfo-section')"
|
||||||
:class="activeSection === 'controlInfo-section' ? 'active' : ''">管控信息</li>
|
:class="activeSection === 'controlInfo-section' ? 'active' : ''">管控信息</li>
|
||||||
<li @click="scrollToSection('featinfo-section')"
|
<li @click="scrollToSection('featinfo-section')"
|
||||||
:class="activeSection === 'featinfo-section' ? 'active' : ''">群体特征</li>
|
:class="activeSection === 'featinfo-section' ? 'active' : ''">全要素布控</li>
|
||||||
<li @click="scrollToSection('demandsInfo-section')"
|
<li @click="scrollToSection('demandsInfo-section')"
|
||||||
:class="activeSection === 'demandsInfo-section' ? 'active' : ''">主要诉求</li>
|
:class="activeSection === 'demandsInfo-section' ? 'active' : ''">密切联系人</li>
|
||||||
<li @click="scrollToSection('requestInfo-section')"
|
<li @click="scrollToSection('requestInfo-section')"
|
||||||
:class="activeSection === 'requestInfo-section' ? 'active' : ''">诉求信息</li>
|
:class="activeSection === 'requestInfo-section' ? 'active' : ''">动态轨迹</li>
|
||||||
<li @click="scrollToSection('personnel-section')"
|
<li @click="scrollToSection('personnel-section')"
|
||||||
:class="activeSection === 'personnel-section' ? 'active' : ''">重点人员</li>
|
:class="activeSection === 'personnel-section' ? 'active' : ''">行为信息</li>
|
||||||
<li @click="scrollToSection('judgmentRecord-section')"
|
<li @click="scrollToSection('judgmentRecord-section')"
|
||||||
:class="activeSection === 'judgmentRecord-section' ? 'active' : ''">研判记录</li>
|
:class="activeSection === 'judgmentRecord-section' ? 'active' : ''">走访记录</li>
|
||||||
<li @click="scrollToSection('historyAssembly-section')"
|
<li @click="scrollToSection('historyAssembly-section')"
|
||||||
:class="activeSection === 'historyAssembly-section' ? 'active' : ''">历史汇集</li>
|
:class="activeSection === 'historyAssembly-section' ? 'active' : ''">案件信息</li>
|
||||||
<li @click="scrollToSection('joblogging-section')"
|
<li @click="scrollToSection('joblogging-section')"
|
||||||
:class="activeSection === 'joblogging-section' ? 'active' : ''">工作记录</li>
|
:class="activeSection === 'joblogging-section' ? 'active' : ''">显示表现</li>
|
||||||
|
<li @click="scrollToSection('joblogging-joblog')"
|
||||||
|
:class="activeSection === 'joblogging-joblog' ? 'active' : ''">操作日志</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="right_box" ref="rightBox">
|
<div class="right_box" ref="rightBox">
|
||||||
@ -50,61 +52,39 @@
|
|||||||
<BackInfo ref="backInfo" :disabled="disabled" :showBut="showBut" :dataList="listQuery" />
|
<BackInfo ref="backInfo" :disabled="disabled" :showBut="showBut" :dataList="listQuery" />
|
||||||
</div>
|
</div>
|
||||||
<div id="controlInfo-section">
|
<div id="controlInfo-section">
|
||||||
<controlInfo ref="controlInfo" :disabled="disabled" :showBut="showBut" :dataList="listQuery" />
|
<ControlInfo ref="controlInfo" title="重点人" :disabled="disabled" :showBut="showBut" :dataList="listQuery" />
|
||||||
</div>
|
</div>
|
||||||
<div id="deployment-section">
|
<div id="deployment-section">
|
||||||
<deployment ref="deployment" :disabled="disabled" :showBut="showBut" :dataList="listQuery" />
|
<Deployment ref="deployment" :disabled="disabled" :showBut="showBut" :dataList="listQuery" />
|
||||||
</div>
|
</div>
|
||||||
<div id="contact-section">
|
<div id="contact-section">
|
||||||
<contact ref="contact" :disabled="disabled" :showBut="showBut" :dataList="listQuery" />
|
<Contact ref="contact" :disabled="disabled" :showBut="showBut" :dataList="listQuery" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="dynamicTrajectory-section">
|
<div id="dynamicTrajectory-section">
|
||||||
<dynamicTrajectory ref="dynamicTrajectory" :disabled="disabled" :showBut="showBut" />
|
<DynamicTrajectory ref="dynamicTrajectory" :disabled="disabled" :showBut="showBut" />
|
||||||
|
</div>
|
||||||
|
<div id="requestInfo-section">
|
||||||
|
<BehaviorInfo ref="behaviorInfo" :disabled="disabled" :showBut="showBut" />
|
||||||
</div>
|
</div>
|
||||||
<div class="behaviorInfo" style="">
|
|
||||||
<h3>行为信息</h3>
|
|
||||||
<!-- <el-button type="primary" :disabled="disabled" @click="AddPore">选择</el-button> -->
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<div class="textContent">
|
|
||||||
基站认证信息:2022-3-33 12:30:30出现在乃宁市
|
|
||||||
</div>
|
|
||||||
<div class="textContent">
|
|
||||||
基站认证信息:2022-3-33 12:30:30出现在乃宁市
|
|
||||||
</div>
|
|
||||||
<div class="textContent">
|
|
||||||
基站认证信息:2022-3-33 12:30:30出现在乃宁市
|
|
||||||
</div>
|
|
||||||
<div class="textContent">
|
|
||||||
基站认证信息:2022-3-33 12:30:30出现在乃宁市
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div id="visitRecord-section">
|
<div id="visitRecord-section">
|
||||||
<visitRecord ref="visitRecord" :disabled="disabled" :showBut="showBut" :dataList="listQuery" />
|
<VisitRecord ref="visitRecord" :disabled="disabled" :showBut="showBut" :dataList="listQuery" />
|
||||||
</div>
|
</div>
|
||||||
<div id="caseInfo-section">
|
<div id="caseInfo-section">
|
||||||
<caseInfo ref="caseInfo" :disabled="disabled" :showBut="showBut" :dataList="listQuery" />
|
<CaseInfo ref="caseInfo" :disabled="disabled" :showBut="showBut" :dataList="listQuery" />
|
||||||
</div>
|
</div>
|
||||||
<div id="actualPerformance-section">
|
<div id="actualPerformance-section">
|
||||||
<actualPerformance ref="actualPerformance" :disabled="disabled" :showBut="showBut" :dataList="listQuery" />
|
<ActualPerformance ref="actualPerformance" :disabled="disabled" :showBut="showBut" :dataList="listQuery" />
|
||||||
</div>
|
</div>
|
||||||
<div class="behaviorInfo" style="">
|
<!-- <div class="behaviorInfo" style="">
|
||||||
<h3>操作日志</h3>
|
<h3>操作日志</h3>
|
||||||
<!-- <el-button type="primary" :disabled="disabled" @click="AddPore">选择</el-button> -->
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<!-- 滚动列表容器 -->
|
|
||||||
<div class="list-container">
|
<div class="list-container">
|
||||||
<!-- 固定标题行 -->
|
|
||||||
<div class="list-header">
|
<div class="list-header">
|
||||||
<span>账号名称</span>
|
<span>账号名称</span>
|
||||||
<span>操作时间</span>
|
<span>操作时间</span>
|
||||||
<span>操作记录</span>
|
<span>操作记录</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 可滚动内容 -->
|
|
||||||
<div class="list-body">
|
<div class="list-body">
|
||||||
<div class="list-item" v-for="i in 30" :key="i">
|
<div class="list-item" v-for="i in 30" :key="i">
|
||||||
<span>张三</span>
|
<span>张三</span>
|
||||||
@ -112,7 +92,7 @@
|
|||||||
<span>新增操作记录</span>
|
<span>新增操作记录</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div> -->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -122,18 +102,19 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import { getItem } from "@/utils/storage";
|
import { getItem } from "@/utils/storage";
|
||||||
import { qcckGet, qcckPost, qcckPut } from "@/api/qcckApi.js";
|
import { qcckGet, qcckPost, qcckPut } from "@/api/qcckApi.js";
|
||||||
import { tbGsxtZdrySelectVoById } from "@/api/zdr.js";
|
import { tbGsxtZdrySelectVoById,tbGsxtZdrySave } from "@/api/zdr.js";
|
||||||
import controlInfo from '../../mpvGroup/model/controlInfo.vue'
|
import ControlInfo from '../../mpvGroup/model/controlInfo.vue'
|
||||||
import Info from "../model/info.vue";
|
import Info from "../model/info.vue";
|
||||||
import PersonnelTags from '../model/personnelTags.vue'
|
import PersonnelTags from '../model/personnelTags.vue'
|
||||||
import Vehicle from '../model/vehicle.vue'
|
import Vehicle from '../model/vehicle.vue'
|
||||||
import BackInfo from '../model/bakInfo.vue'
|
import BackInfo from '../model/bakInfo.vue'
|
||||||
import deployment from '../model/deployment.vue'
|
import Deployment from '../model/deployment.vue'
|
||||||
import contact from '../model/contact.vue'
|
import Contact from '../model/contact.vue'
|
||||||
import dynamicTrajectory from '../model/dynamicTrajectory.vue'
|
import DynamicTrajectory from '../model/dynamicTrajectory.vue'
|
||||||
import visitRecord from '../model/visitRecord.vue'
|
import BehaviorInfo from '../model/behaviorInfo.vue'
|
||||||
import caseInfo from '../model/caseInfo.vue'
|
import VisitRecord from '../model/visitRecord.vue'
|
||||||
import actualPerformance from '../model/actualPerformance.vue'
|
import CaseInfo from '../model/caseInfo.vue'
|
||||||
|
import ActualPerformance from '../model/actualPerformance.vue'
|
||||||
import { ref, onUnmounted } from "vue";
|
import { ref, onUnmounted } from "vue";
|
||||||
const emit = defineEmits(["updateDate"]);
|
const emit = defineEmits(["updateDate"]);
|
||||||
const chooseMarksVisible = ref(false);
|
const chooseMarksVisible = ref(false);
|
||||||
@ -155,9 +136,7 @@ const init = (type, row) => {
|
|||||||
} else {
|
} else {
|
||||||
butShow.value = false
|
butShow.value = false
|
||||||
tbGsxtZdrySelectVoById({ id: row.id }).then(res => {
|
tbGsxtZdrySelectVoById({ id: row.id }).then(res => {
|
||||||
console.log(res, "dddddddddddddddd");
|
listQuery.value={...res}
|
||||||
|
|
||||||
Object.assign(listQuery.value, res)
|
|
||||||
})
|
})
|
||||||
if (type == 'edit') {
|
if (type == 'edit') {
|
||||||
showBut.value = true
|
showBut.value = true
|
||||||
@ -235,8 +214,15 @@ const submit = async () => {
|
|||||||
// 使用Promise.all处理所有子组件的验证和数据获取
|
// 使用Promise.all处理所有子组件的验证和数据获取
|
||||||
const [infoData, personnelTagsData] = await Promise.all([
|
const [infoData, personnelTagsData] = await Promise.all([
|
||||||
info.value.throwData(),
|
info.value.throwData(),
|
||||||
personnelTags.value.throwData(),
|
|
||||||
|
// personnelTags.value.throwData(),
|
||||||
]);
|
]);
|
||||||
|
tbGsxtZdrySave(infoData).then(res => {
|
||||||
|
console.log(res);
|
||||||
|
|
||||||
|
})
|
||||||
|
console.log(infoData);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,65 +0,0 @@
|
|||||||
<template>
|
|
||||||
{{ visible }}
|
|
||||||
<!-- 添加 -->
|
|
||||||
<el-dialog v-model="visible" :title="Tips" width="40%" :before-close="handleClose">
|
|
||||||
<el-form ref="historyForm" style="max-width: 600px" :model="diaLogRuleForm" :rules="diaLogRules">
|
|
||||||
<div v-for="item in diaLogRuleForm" :key="item.props">
|
|
||||||
<el-form-item label-width="80px" :label="item.label" :prop="item.props" style="width: 100%;">
|
|
||||||
<el-input v-model="item.value" :placeholder="`请输入${item.label}`" />
|
|
||||||
</el-form-item>
|
|
||||||
</div>
|
|
||||||
</el-form>
|
|
||||||
<template #footer>
|
|
||||||
<div class="dialog-footer">
|
|
||||||
<el-button @click="onCancel">取消</el-button>
|
|
||||||
<el-button type="primary" @click="onSubmit">
|
|
||||||
确认
|
|
||||||
</el-button>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
</el-dialog>
|
|
||||||
</template>
|
|
||||||
<script setup>
|
|
||||||
import { defineProps, defineEmits, ref, watch } from 'vue'
|
|
||||||
|
|
||||||
// 接收 v-model:visible
|
|
||||||
const props = defineProps({
|
|
||||||
visible: Boolean,
|
|
||||||
Tips: String,
|
|
||||||
diaLogRules: Object,
|
|
||||||
diaLogRuleForm: Object
|
|
||||||
})
|
|
||||||
|
|
||||||
const emit = defineEmits(['update:visible', 'submit'])
|
|
||||||
|
|
||||||
const formRef = ref(null)
|
|
||||||
const formData = ref({})
|
|
||||||
|
|
||||||
// 监听外部传入的 formData 变化(如编辑时回显)
|
|
||||||
watch(
|
|
||||||
[() => props.diaLogRuleForm, props.visible],
|
|
||||||
(val) => {
|
|
||||||
console.log(val, "变化之后的diaLogRuleForm");
|
|
||||||
|
|
||||||
formData.value = val ? { ...val } : {}
|
|
||||||
},
|
|
||||||
{ immediate: true }
|
|
||||||
)
|
|
||||||
|
|
||||||
// 取消:关闭弹窗
|
|
||||||
const onCancel = () => {
|
|
||||||
emit('update:visible', false)
|
|
||||||
}
|
|
||||||
|
|
||||||
// 提交
|
|
||||||
const onSubmit = () => {
|
|
||||||
emit('submit', props.diaLogRuleForm) // 提交数据
|
|
||||||
// formRef.value?.validate((valid) => {
|
|
||||||
// if (valid) {
|
|
||||||
|
|
||||||
// // 不在这里关闭!由父组件决定是否关闭(比如提交失败不关闭)
|
|
||||||
// }
|
|
||||||
// })
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
<style scoped lang="scss"></style>
|
|
@ -8,8 +8,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<div class="flex just-center">
|
<div class="flex just-center">
|
||||||
<el-button size="small" type="primary" v-for="it in D_GS_BK_SQLX" :key="it.dm"
|
<el-button size="small" type="primary" v-for="it in D_GS_BK_SQLX" :key="it.dm"
|
||||||
@click="handleApplication(it)">{{
|
@click="handleApplication(it)">{{it.zdmc }}</el-button>
|
||||||
it.zdmc }}</el-button>
|
|
||||||
</div>
|
</div>
|
||||||
</el-popover>
|
</el-popover>
|
||||||
<el-popover placement="bottom" :visible="visiblefp" :width="400" trigger="click">
|
<el-popover placement="bottom" :visible="visiblefp" :width="400" trigger="click">
|
||||||
@ -169,7 +168,7 @@ const pageData = reactive({
|
|||||||
pageSize: 20,
|
pageSize: 20,
|
||||||
pageCurrent: 1
|
pageCurrent: 1
|
||||||
},
|
},
|
||||||
controlsWidth: 150,
|
controlsWidth: 250,
|
||||||
tableColumn: [
|
tableColumn: [
|
||||||
{ label: "姓名", prop: "ryXm", width: 150 },
|
{ label: "姓名", prop: "ryXm", width: 150 },
|
||||||
{ label: "性别", prop: "ryXb", showSolt: true, width: 100 },
|
{ label: "性别", prop: "ryXb", showSolt: true, width: 100 },
|
||||||
|
@ -3,14 +3,8 @@
|
|||||||
<div class="backinfo-container">
|
<div class="backinfo-container">
|
||||||
<div class="headClass" style="">
|
<div class="headClass" style="">
|
||||||
<h3>背景信息</h3>
|
<h3>背景信息</h3>
|
||||||
<el-button type="primary" v-if="showBut" :disabled="disabled" @click="ClickSave">保存</el-button>
|
<el-button type="primary" v-if="showBut" :disabled="disabled" @click="submitForm(ruleFormRef)">保存</el-button>
|
||||||
</div>
|
</div>
|
||||||
<!-- <div>
|
|
||||||
<div>拘留记录:</div>
|
|
||||||
<div v-for="(item,index) in jljl" :key="index">
|
|
||||||
<el-input v-model="jljl[index]" :autosize="{ minRows: 4, maxRows: 10 }" type="textarea" placeholder="请输入背景信息"
|
|
||||||
class="background-info-input" :disabled="disabled" /></div>
|
|
||||||
</div> -->
|
|
||||||
<div>
|
<div>
|
||||||
<!-- 全部输入框 -->
|
<!-- 全部输入框 -->
|
||||||
<el-form class="record" ref="ruleFormRef" :model="ruleForm" :rules="rules">
|
<el-form class="record" ref="ruleFormRef" :model="ruleForm" :rules="rules">
|
||||||
@ -19,17 +13,16 @@
|
|||||||
<div>拘留所记录:</div>
|
<div>拘留所记录:</div>
|
||||||
<div>
|
<div>
|
||||||
<div v-for="(item, i) in ruleForm.detentionCenterRecords" :key="item.id" class="detentionFacilityArr">
|
<div v-for="(item, i) in ruleForm.detentionCenterRecords" :key="item.id" class="detentionFacilityArr">
|
||||||
<el-form-item :prop="'detentionCenterRecords.' + i + '.str'" :rules="rules.str">
|
<el-form-item :prop="'detentionCenterRecords.' + i + '.str'" :rules="rules.str">
|
||||||
|
<el-input v-model="ruleForm.detentionCenterRecords[i].str" type="textarea"
|
||||||
<el-input v-model="ruleForm.detentionCenterRecords[i].str" class="detentionFacilityInput"
|
class="detentionFacilityInput" placeholder="请输入拘留所记录" />
|
||||||
placeholder="请输入拘留所记录" />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<div style="width: 100px;">
|
||||||
<el-button type="primary"
|
<el-button type="primary" v-if="ruleForm.detentionCenterRecords.length != 1"
|
||||||
v-if="ruleForm.detentionCenterRecords.length > 1 && i != ruleForm.detentionCenterRecords.length - 1"
|
@click="decreaseRecord(i, '拘留所')">−</el-button>
|
||||||
@click="decreaseRecord(i, '拘留所')">−</el-button>
|
<el-button type="primary" @click="addRecord(i, '拘留所')"
|
||||||
<el-button type="primary" @click="addRecord(i, '拘留所')"
|
v-if="i == ruleForm.detentionCenterRecords.length - 1">+</el-button>
|
||||||
v-if="ruleForm.detentionCenterRecords.length - 1 == i">+</el-button>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -38,21 +31,20 @@
|
|||||||
<div>看守所记录:</div>
|
<div>看守所记录:</div>
|
||||||
<div>
|
<div>
|
||||||
<div v-for="(item, i) in ruleForm.prison" :key="item.id" class="detentionFacilityArr">
|
<div v-for="(item, i) in ruleForm.prison" :key="item.id" class="detentionFacilityArr">
|
||||||
<el-form-item :prop="'prison.' + i + '.str'" :rules="rules.str">
|
<el-form-item :prop="'prison.' + i + '.str'" :rules="rules.str">
|
||||||
<el-input v-model="ruleForm.prison[i].str"
|
<el-input v-model="ruleForm.prison[i].str" type="textarea" class="detentionFacilityInput"
|
||||||
class="detentionFacilityInput" placeholder="请输入拘留所记录"
|
placeholder="请输入拘留所记录" />
|
||||||
@input="changeprison(ruleForm.prison[i].str)"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-button type="primary" v-if="ruleForm.prison.length > 1 && i != ruleForm.prison.length - 1"
|
<div style="width: 100px;">
|
||||||
|
<el-button type="primary" v-if="ruleForm.prison.length != 1"
|
||||||
@click="decreaseRecord(i, '看守所')">−</el-button>
|
@click="decreaseRecord(i, '看守所')">−</el-button>
|
||||||
<el-button type="primary" @click="addRecord(i, '看守所')" v-if="ruleForm.prison.length - 1 == i">+</el-button>
|
<el-button type="primary" @click="addRecord(i, '看守所')"
|
||||||
|
v-if="i == ruleForm.prison.length - 1">+</el-button>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="sumbitBtnBOX">
|
|
||||||
<el-button type="primary" @click="submitForm(ruleFormRef)" class="sumbitBtn">确认提交</el-button>
|
|
||||||
</div>
|
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -60,9 +52,9 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { reactive, ref, watch, onMounted } from "vue";
|
import { reactive, ref, watch, onMounted, getCurrentInstance } from "vue";
|
||||||
import { Delete, Download } from '@element-plus/icons';
|
import { tbGsxtZdryUpdate } from '@/api/zdr.js'
|
||||||
// import { tbGsxtZdryUpdate } from '@/api/zdr.js'
|
const { proxy } = getCurrentInstance();
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
dataList: {
|
dataList: {
|
||||||
type: Object,
|
type: Object,
|
||||||
@ -76,7 +68,6 @@ const props = defineProps({
|
|||||||
default: false
|
default: false
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
const jljl = ref([])
|
|
||||||
const ruleFormRef = ref()
|
const ruleFormRef = ref()
|
||||||
const ruleForm = reactive({
|
const ruleForm = reactive({
|
||||||
detentionCenterRecords: [{ id: 0, str: "" }],
|
detentionCenterRecords: [{ id: 0, str: "" }],
|
||||||
@ -84,33 +75,28 @@ const ruleForm = reactive({
|
|||||||
})
|
})
|
||||||
// 表单校验
|
// 表单校验
|
||||||
const rules = reactive({
|
const rules = reactive({
|
||||||
str: [
|
// str: [
|
||||||
{ required: true, message: '请输入具体信息', trigger: 'blur' },
|
// { required: true, message: '请输入具体信息', trigger: 'blur' },
|
||||||
{ min: 3, max: 20, message: '请最少输入3个字,最多输入20个字', trigger: 'blur' },
|
// { min: 3, max: 20, message: '请最少输入3个字,最多输入20个字', trigger: 'blur' },
|
||||||
],
|
// ],
|
||||||
})
|
})
|
||||||
watch(() => props.dataList, (val) => {
|
watch(() => props.dataList, (val) => {
|
||||||
if (val) {
|
if (val) {
|
||||||
// qtbjxx.value = val.qtBjzl
|
ruleForm.detentionCenterRecords = val.jlsJl && val.kssJl.length > 0 ? val.jlsJl.map((item, index) => {
|
||||||
|
return {
|
||||||
|
id: index,
|
||||||
|
str: item
|
||||||
|
}
|
||||||
|
}) : [{ id: 0, str: "" }],
|
||||||
|
ruleForm.prison = val.kssJl && val.kssJl.length > 0 ? val.kssJl.map((item, index) => {
|
||||||
|
return {
|
||||||
|
id: index,
|
||||||
|
str: item
|
||||||
|
}
|
||||||
|
}) : [{ id: 0, str: "" }]
|
||||||
}
|
}
|
||||||
}, { deep: true })
|
}, { deep: true })
|
||||||
onMounted(() => {
|
|
||||||
console.log('组件已挂载')
|
|
||||||
|
|
||||||
})
|
|
||||||
const throwData = () => {
|
|
||||||
return new Promise((resolve) => {
|
|
||||||
// 基本验证:确保背景信息不为空
|
|
||||||
if (!qtbjxx.value.trim()) {
|
|
||||||
throw new Error('请输入群体背景信息');
|
|
||||||
}
|
|
||||||
|
|
||||||
resolve({
|
|
||||||
qtbjxx: qtbjxx.value,
|
|
||||||
fileList: fileList.value
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
// 增加输入记录输入框
|
// 增加输入记录输入框
|
||||||
const addRecord = (val, type) => {
|
const addRecord = (val, type) => {
|
||||||
if (type == '拘留所') {
|
if (type == '拘留所') {
|
||||||
@ -118,7 +104,6 @@ const addRecord = (val, type) => {
|
|||||||
} else {
|
} else {
|
||||||
ruleForm.prison.push({ id: val })
|
ruleForm.prison.push({ id: val })
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
// 减少输入记录输入框
|
// 减少输入记录输入框
|
||||||
const decreaseRecord = (val, type) => {
|
const decreaseRecord = (val, type) => {
|
||||||
@ -129,25 +114,33 @@ const decreaseRecord = (val, type) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
const changeprison=(value)=>{
|
|
||||||
console.log(value,"jafahfahf");
|
|
||||||
|
|
||||||
}
|
|
||||||
//提交数据校验表单
|
//提交数据校验表单
|
||||||
const submitForm = async (formEl) => {
|
const submitForm = async (formEl) => {
|
||||||
console.log(formEl,"formElformEl");
|
|
||||||
|
|
||||||
if (!formEl) return
|
if (!formEl) return
|
||||||
await formEl.validate((valid, fields) => {
|
await formEl.validate((valid, fields) => {
|
||||||
console.log(valid,fields,"22222222");
|
|
||||||
|
|
||||||
if (valid) {
|
if (valid) {
|
||||||
|
const promes = {
|
||||||
|
id: props.dataList.id,
|
||||||
|
jlsJl: ruleForm.detentionCenterRecords.map(item => item.str),
|
||||||
|
kssJl: ruleForm.prison.map(item => item.str),
|
||||||
|
}
|
||||||
|
tbGsxtZdryUpdate(promes).then((res) => {
|
||||||
|
proxy.$message.success('保存成功')
|
||||||
|
}).catch((err) => {
|
||||||
|
proxy.$message.error('保存失败')
|
||||||
|
});
|
||||||
console.log('submit!')
|
console.log('submit!')
|
||||||
} else {
|
} else {
|
||||||
console.log('error submit!', fields)
|
console.log('error submit!', fields)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
const throwData = () => {
|
||||||
|
return new Promise((resolve) => {
|
||||||
|
resolve(ruleForm);
|
||||||
|
});
|
||||||
|
}
|
||||||
defineExpose({
|
defineExpose({
|
||||||
throwData
|
throwData
|
||||||
})
|
})
|
||||||
@ -202,7 +195,7 @@ defineExpose({
|
|||||||
|
|
||||||
.detentionFacilityArr {
|
.detentionFacilityArr {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
||||||
margin-top: 20px;
|
margin-top: 20px;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
|
|
||||||
|
@ -0,0 +1,296 @@
|
|||||||
|
<template>
|
||||||
|
<div class="backinfo-container">
|
||||||
|
<div class="headClass">
|
||||||
|
<h3>行为信息</h3>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 搜索区域 -->
|
||||||
|
<!-- <div class="search-container">
|
||||||
|
<el-form :inline="true" :model="searchForm" class="demo-form-inline">
|
||||||
|
<el-form-item label="行为类型">
|
||||||
|
<el-select v-model="searchForm.behaviorType" placeholder="请选择">
|
||||||
|
<el-option label="全部" value=""></el-option>
|
||||||
|
<el-option label="购票" value="ticket"></el-option>
|
||||||
|
<el-option label="入住" value="hotel"></el-option>
|
||||||
|
<el-option label="出入境" value="border"></el-option>
|
||||||
|
<el-option label="基站认证" value="baseStation"></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="时间范围">
|
||||||
|
<el-date-picker
|
||||||
|
v-model="searchForm.timeRange"
|
||||||
|
type="daterange"
|
||||||
|
range-separator="至"
|
||||||
|
start-placeholder="开始日期"
|
||||||
|
end-placeholder="结束日期"
|
||||||
|
format="YYYY-MM-DD HH:mm:ss"
|
||||||
|
value-format="YYYY-MM-DD HH:mm:ss"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button type="primary" @click="handleSearch">搜索</el-button>
|
||||||
|
<el-button @click="resetSearch">重置</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</div> -->
|
||||||
|
|
||||||
|
<!-- 列表区域 -->
|
||||||
|
<div class="list-container">
|
||||||
|
<div v-loading="loading" class="behavior-list">
|
||||||
|
<div class="behavior-list-inner">
|
||||||
|
<div
|
||||||
|
v-for="(item, index) in behaviorList"
|
||||||
|
:key="item.id"
|
||||||
|
class="behavior-item"
|
||||||
|
>
|
||||||
|
<div class="behavior-item-header">
|
||||||
|
<span class="behavior-index">{{ index + 1 }}.</span>
|
||||||
|
<el-tag :type="getTagType(item.behaviorType)">{{ item.behaviorTypeName }}</el-tag>
|
||||||
|
<span class="behavior-time">{{ item.time }}</span>
|
||||||
|
</div>
|
||||||
|
<div class="behavior-item-content">
|
||||||
|
<p class="behavior-description">{{ item.description }}</p>
|
||||||
|
<p class="behavior-location"><i class="el-icon-location-outline"></i> {{ item.location }}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div v-if="!loading && behaviorList.length === 0" class="empty-state">
|
||||||
|
<el-empty description="暂无行为记录" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { ref, getCurrentInstance, onMounted } from 'vue'
|
||||||
|
import GdMap from "@/components/GdMap/index.vue";
|
||||||
|
|
||||||
|
const { proxy } = getCurrentInstance();
|
||||||
|
const { D_BZ_ZJLX } = proxy.$dict("D_BZ_ZJLX")
|
||||||
|
|
||||||
|
// 搜索表单
|
||||||
|
const searchForm = ref({
|
||||||
|
behaviorType: '',
|
||||||
|
timeRange: null
|
||||||
|
})
|
||||||
|
|
||||||
|
// 列表数据
|
||||||
|
const behaviorList = ref([])
|
||||||
|
const loading = ref(false)
|
||||||
|
|
||||||
|
// 获取标签类型
|
||||||
|
const getTagType = (type) => {
|
||||||
|
const typeMap = {
|
||||||
|
'ticket': 'success',
|
||||||
|
'hotel': 'primary',
|
||||||
|
'border': 'warning',
|
||||||
|
'baseStation': 'info'
|
||||||
|
}
|
||||||
|
return typeMap[type] || 'default'
|
||||||
|
}
|
||||||
|
|
||||||
|
// 搜索
|
||||||
|
const handleSearch = () => {
|
||||||
|
fetchData()
|
||||||
|
}
|
||||||
|
|
||||||
|
// 重置搜索
|
||||||
|
const resetSearch = () => {
|
||||||
|
searchForm.value = {
|
||||||
|
behaviorType: '',
|
||||||
|
timeRange: null
|
||||||
|
}
|
||||||
|
fetchData()
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取数据
|
||||||
|
const fetchData = () => {
|
||||||
|
loading.value = true
|
||||||
|
|
||||||
|
// 模拟API请求延迟
|
||||||
|
setTimeout(() => {
|
||||||
|
// 模拟数据
|
||||||
|
const mockData = [
|
||||||
|
{
|
||||||
|
id: 1,
|
||||||
|
behaviorType: 'baseStation',
|
||||||
|
behaviorTypeName: '基站认证',
|
||||||
|
description: '2025-5-22 14:30:20出现在南宁市青秀区云网网咖',
|
||||||
|
location: '广西壮族自治区南宁市青秀区',
|
||||||
|
time: '2025-05-22 14:30:20'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
// 根据搜索条件过滤数据
|
||||||
|
let filteredData = [...mockData]
|
||||||
|
if (searchForm.value.behaviorType) {
|
||||||
|
filteredData = filteredData.filter(item => item.behaviorType === searchForm.value.behaviorType)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (searchForm.value.timeRange && searchForm.value.timeRange.length === 2) {
|
||||||
|
const [startTime, endTime] = searchForm.value.timeRange
|
||||||
|
filteredData = filteredData.filter(item => {
|
||||||
|
const itemTime = new Date(item.time)
|
||||||
|
return itemTime >= new Date(startTime) && itemTime <= new Date(endTime)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
behaviorList.value = filteredData
|
||||||
|
|
||||||
|
loading.value = false
|
||||||
|
}, 500)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 页面加载时获取数据
|
||||||
|
onMounted(() => {
|
||||||
|
fetchData()
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
@import "~@/assets/css/layout.scss";
|
||||||
|
@import "~@/assets/css/element-plus.scss";
|
||||||
|
|
||||||
|
.backinfo-container {
|
||||||
|
padding: 20px;
|
||||||
|
width: 100%;
|
||||||
|
background-color: #f5f7fa;
|
||||||
|
}
|
||||||
|
|
||||||
|
.headClass {
|
||||||
|
font-size: 18px;
|
||||||
|
font-weight: 600;
|
||||||
|
color: #303133;
|
||||||
|
margin: 0 0 20px 0;
|
||||||
|
padding-bottom: 15px;
|
||||||
|
border-bottom: 2px solid #409eff;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
h3 {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.search-container {
|
||||||
|
background-color: #fff;
|
||||||
|
padding: 16px;
|
||||||
|
border-radius: 6px;
|
||||||
|
margin-bottom: 16px;
|
||||||
|
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.demo-form-inline {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
gap: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.list-container {
|
||||||
|
background-color: #fff;
|
||||||
|
padding: 16px;
|
||||||
|
border-radius: 6px;
|
||||||
|
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
|
||||||
|
}
|
||||||
|
|
||||||
|
.behavior-list {
|
||||||
|
max-height: 600px;
|
||||||
|
overflow: hidden; /* 完全禁止滚动条 */
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.behavior-list-inner {
|
||||||
|
max-height: 600px;
|
||||||
|
overflow-y: auto;
|
||||||
|
overflow-x: hidden;
|
||||||
|
padding-right: 10px; /* 为滚动条留出空间但不显示 */
|
||||||
|
}
|
||||||
|
|
||||||
|
.behavior-item {
|
||||||
|
padding: 16px;
|
||||||
|
border-bottom: 1px solid #f0f0f0;
|
||||||
|
transition: all 0.3s ease;
|
||||||
|
position: relative;
|
||||||
|
left: 0; /* 初始位置 */
|
||||||
|
}
|
||||||
|
|
||||||
|
.behavior-item:hover {
|
||||||
|
background-color: #fafafa;
|
||||||
|
left: 5px; /* 使用left属性代替transform,避免触发滚动条 */
|
||||||
|
}
|
||||||
|
|
||||||
|
.behavior-item:last-child {
|
||||||
|
border-bottom: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.behavior-item-header {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.behavior-index {
|
||||||
|
font-weight: 600;
|
||||||
|
color: #606266;
|
||||||
|
margin-right: 12px;
|
||||||
|
min-width: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.behavior-time {
|
||||||
|
margin-left: auto;
|
||||||
|
color: #909399;
|
||||||
|
font-size: 13px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.behavior-item-content {
|
||||||
|
padding-left: 32px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.behavior-description {
|
||||||
|
margin: 0 0 8px 0;
|
||||||
|
color: #303133;
|
||||||
|
line-height: 1.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.behavior-location {
|
||||||
|
margin: 0;
|
||||||
|
color: #606266;
|
||||||
|
font-size: 13px;
|
||||||
|
line-height: 1.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.empty-state {
|
||||||
|
padding: 60px 0;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-tag {
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-date-editor .el-range-separator {
|
||||||
|
color: #606266;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 768px) {
|
||||||
|
.backinfo-container {
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.demo-form-inline {
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: stretch;
|
||||||
|
}
|
||||||
|
|
||||||
|
.demo-form-inline .el-form-item {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pagination-container {
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
@ -36,7 +36,7 @@ import { identityCardRule } from "@/utils/rules"
|
|||||||
import { ref, reactive, watch, toRaw, getCurrentInstance, onMounted, onUnmounted } from "vue";
|
import { ref, reactive, watch, toRaw, getCurrentInstance, onMounted, onUnmounted } from "vue";
|
||||||
import MyTable from "@/components/aboutTable/MyTable.vue";
|
import MyTable from "@/components/aboutTable/MyTable.vue";
|
||||||
import VehiclDoing from "../component/vehiclDoing.vue";
|
import VehiclDoing from "../component/vehiclDoing.vue";
|
||||||
import { tbZdryClxxAdd, tbZdryClxxBatchAdd, tbZdryClxxDelete, tbGsxtZdryAjxxselectAjxx, tbZdryClxxUpdate } from '@/api/zdr.js'
|
import {tbGsxtZdryAjxxSaveOrUpdateAjxx, tbGsxtZdryAjxx, tbGsxtZdryAjxxselectAjxx } from '@/api/zdr.js'
|
||||||
import { ElMessage, ElMessageBox } from "element-plus";
|
import { ElMessage, ElMessageBox } from "element-plus";
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
const { D_BZ_CLLX, D_BZ_CLYS, D_BZ_CLPP } = proxy.$dict("D_BZ_CLLX", "D_BZ_CLYS", "D_BZ_CLPP"); //获取字典数据
|
const { D_BZ_CLLX, D_BZ_CLYS, D_BZ_CLPP } = proxy.$dict("D_BZ_CLLX", "D_BZ_CLYS", "D_BZ_CLPP"); //获取字典数据
|
||||||
@ -66,16 +66,16 @@ watch(() => props.dataList, (val) => {
|
|||||||
const pageData = reactive({
|
const pageData = reactive({
|
||||||
tableData: [],
|
tableData: [],
|
||||||
tableColumn: [{
|
tableColumn: [{
|
||||||
prop: 'cph',
|
prop: 'ajbm',
|
||||||
label: '案件编号',
|
label: '案件编号',
|
||||||
}, {
|
}, {
|
||||||
prop: 'cllx',
|
prop: 'ajmc',
|
||||||
label: '案件名称',
|
label: '案件名称',
|
||||||
showSolt: true,
|
showSolt: true,
|
||||||
prop: 'clpp',
|
prop: 'clpp',
|
||||||
}, {
|
}, {
|
||||||
showSolt: true,
|
showSolt: true,
|
||||||
prop: 'clys',
|
prop: 'sasj',
|
||||||
label: '受案时间',
|
label: '受案时间',
|
||||||
},],
|
},],
|
||||||
tableHeight: '200px',
|
tableHeight: '200px',
|
||||||
@ -93,12 +93,6 @@ const pageData = reactive({
|
|||||||
},
|
},
|
||||||
controlsWidth: 200,
|
controlsWidth: 200,
|
||||||
})
|
})
|
||||||
// 表单数据
|
|
||||||
const formData = reactive({
|
|
||||||
username: "",
|
|
||||||
ID: ""
|
|
||||||
})
|
|
||||||
const rulesForm = ref(identityCardRule({ validator: true }, 'rySfzh'))
|
|
||||||
// 修改数据接口
|
// 修改数据接口
|
||||||
const dataModel = ref()
|
const dataModel = ref()
|
||||||
const addMarks = (val) => {
|
const addMarks = (val) => {
|
||||||
@ -108,7 +102,7 @@ const addMarks = (val) => {
|
|||||||
}
|
}
|
||||||
if (props.showBut && !props.disabled) {
|
if (props.showBut && !props.disabled) {
|
||||||
if (addUpd.value) {
|
if (addUpd.value) {
|
||||||
tbZdryClxxAdd(params).then(res => {
|
tbGsxtZdryAjxxSaveOrUpdateAjxx(params).then(res => {
|
||||||
gettbZdryClxxSelectPage()
|
gettbZdryClxxSelectPage()
|
||||||
proxy.$message({
|
proxy.$message({
|
||||||
message: '关联车辆添加成功',
|
message: '关联车辆添加成功',
|
||||||
@ -130,14 +124,12 @@ const addMarks = (val) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
// console.log(identityCardRule,"dadad1");
|
|
||||||
|
|
||||||
})
|
})
|
||||||
// 删除车辆
|
// 删除车辆
|
||||||
const delDictItem = (val) => {
|
const delDictItem = (val) => {
|
||||||
if (!props.disabled && props.showBut) {
|
if (!props.disabled && props.showBut) {
|
||||||
ElMessageBox.confirm(
|
ElMessageBox.confirm(
|
||||||
'是否删除关联车辆',
|
'是否删除案件信息',
|
||||||
'提示',
|
'提示',
|
||||||
{
|
{
|
||||||
confirmButtonText: '确认',
|
confirmButtonText: '确认',
|
||||||
@ -146,10 +138,10 @@ const delDictItem = (val) => {
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
.then(() => {
|
.then(() => {
|
||||||
tbZdryClxxDelete({ ids: [val] }).then(res => {
|
tbGsxtZdryAjxx(val).then(res => {
|
||||||
gettbZdryClxxSelectPage()
|
gettbZdryClxxSelectPage()
|
||||||
proxy.$message({
|
proxy.$message({
|
||||||
message: '关联车辆删除成功',
|
message: '案件信息删除成功',
|
||||||
type: 'success'
|
type: 'success'
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
@ -179,13 +171,9 @@ const AddPore = () => {
|
|||||||
// 查询车辆
|
// 查询车辆
|
||||||
const gettbZdryClxxSelectPage = () => {
|
const gettbZdryClxxSelectPage = () => {
|
||||||
const promes = {
|
const promes = {
|
||||||
pageCurrent: 1,
|
|
||||||
pageSize: 20,
|
|
||||||
zdrid: listData.value.id
|
zdrid: listData.value.id
|
||||||
}
|
}
|
||||||
tbGsxtZdryAjxxselectAjxx(promes).then(res => {
|
tbGsxtZdryAjxxselectAjxx(promes).then(res => {
|
||||||
console.log(res, "案件信息");
|
|
||||||
|
|
||||||
pageData.tableData = res.records
|
pageData.tableData = res.records
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -2,63 +2,50 @@
|
|||||||
<div>
|
<div>
|
||||||
<div class="headClass" style="">
|
<div class="headClass" style="">
|
||||||
<h3>密切联系人</h3>
|
<h3>密切联系人</h3>
|
||||||
<!-- <el-button type="primary" :disabled="disabled" @click="AddPore">选择</el-button> -->
|
<el-button type="primary" @click="openDialog('新增密切联系人', {}, true)">新增</el-button>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="headSelect">
|
<div class="headSelect">
|
||||||
<el-form :model="formData" :inline="true" ref="formRef" :rules="rulesForm" class="form-inline">
|
<el-form :model="formData" :inline="true" ref="formRef" :rules="rulesForm" class="form-inline">
|
||||||
<!-- 姓名 -->
|
<!-- 姓名 -->
|
||||||
<el-form-item label="姓名" prop="username" :rules="[
|
<!-- <el-form-item label="姓名">
|
||||||
{ required: true, message: '请输入用户名', trigger: 'blur' },
|
<el-input v-model="formData.username" placeholder="请输入姓名" />
|
||||||
{ min: 2, max: 4, message: '长度在 2 到 4 个字符', trigger: 'blur' }
|
</el-form-item> -->
|
||||||
]">
|
|
||||||
<el-input v-model="formData.username" placeholder="请输入姓名" style="width: 120px;" />
|
|
||||||
</el-form-item>
|
|
||||||
|
|
||||||
<!-- 身份证号码 -->
|
<!-- 身份证号码 -->
|
||||||
<el-form-item label="身份证号码" prop="cardID" :rules="[
|
<el-form-item label="身份证号码">
|
||||||
{ required: true, message: '请输入身份证号码', trigger: 'blur' }
|
<el-input v-model="formData.rySfzh" placeholder="请输入身份证号码" />
|
||||||
]">
|
|
||||||
<el-input v-model="formData.ID" placeholder="请输入身份证号码" style="width: 200px;" />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<!-- 按钮组:统一放在一个 item 中 -->
|
<!-- 按钮组:统一放在一个 item 中 -->
|
||||||
<el-form-item class="form-actions">
|
<el-form-item class="form-actions">
|
||||||
<el-button type="primary" @click="check">查询</el-button>
|
<el-button type="primary" @click="check">查询</el-button>
|
||||||
<el-button @click="resetForm">重置</el-button>
|
<el-button @click="resetForm">重置</el-button>
|
||||||
<el-button @click="openDialog('新增密切联系人')">新增</el-button>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||||
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth">
|
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth">
|
||||||
<!-- <template #ryXm="{ row }">
|
<template #dygx="{ row }">
|
||||||
<DictTag :tag="false" :value="row.clys" :options="D_BZ_CLYS" />
|
<DictTag :tag="false" :value="row.dygx" :options="D_BZ_QSGXDM" />
|
||||||
</template> -->
|
</template>
|
||||||
<!-- 操作 -->
|
<!-- 操作 -->
|
||||||
<template #controls="{ row }">
|
<template #controls="{ row }">
|
||||||
<el-link type="danger" @click="delDictItem(row.id)">删除</el-link>
|
<el-link type="danger" @click="delDictItem(row.id)">删除</el-link>
|
||||||
<el-link type="danger" @click="openDialog('修改密切联系人', row)">修改</el-link>
|
<el-link type="danger" @click="openDialog('修改密切联系人', row, false)">修改</el-link>
|
||||||
</template>
|
</template>
|
||||||
</MyTable>
|
</MyTable>
|
||||||
<diaLogForm v-model:visible="dialogVisible" :diaLogRules="diaLogRules" :diaLogRuleForm="diaLogRuleForm"
|
<diaLogForm v-model="dialogVisible" :data="diaLogRuleForm" @submit="addPersonOrModifica" :title="Tips"
|
||||||
@submit="addPersonOrModifica" :Tips="Tips">
|
:dict="{ D_BZ_QSGXDM }">
|
||||||
</diaLogForm>
|
</diaLogForm>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { identityCardRule } from "@/utils/rules"
|
import { identityCardRule } from "@/utils/rules"
|
||||||
import { ref, reactive, watch, toRaw, getCurrentInstance, onMounted, onUnmounted } from "vue";
|
import { ref, reactive, watch, toRaw, getCurrentInstance, onMounted, onUnmounted } from "vue";
|
||||||
import MyTable from "@/components/aboutTable/MyTable.vue";
|
import MyTable from "@/components/aboutTable/MyTable.vue";
|
||||||
import diaLogForm from "../components/diaLogForm.vue";
|
import diaLogForm from "../component/diaLogForm.vue";
|
||||||
import { tbGsxtZdryLxrsaveOrUpdateLxr, tbZdryClxxBatchAdd, tbZdryClxxDelete, tbGsxtZdryLxrselectLxrBy, tbZdryClxxUpdate } from '@/api/zdr.js'
|
import { tbZdryClxxUpdate, tbGsxtZdryLxrsaveOrUpdateLxr,tbGsxtZdryLxrselectLxrBy ,tbGsxtZdryLxr} from '@/api/zdr.js'
|
||||||
import { ElMessage, ElMessageBox } from "element-plus";
|
import { ElMessage, ElMessageBox } from "element-plus";
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
const { D_BZ_CLLX, D_BZ_CLYS, D_BZ_CLPP } = proxy.$dict("D_BZ_CLLX", "D_BZ_CLYS", "D_BZ_CLPP"); //获取字典数据
|
const { D_BZ_QSGXDM } = proxy.$dict("D_BZ_QSGXDM"); //获取字典数据
|
||||||
const chooseMarksVisible = ref(false)
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
dataList: {
|
dataList: {
|
||||||
type: Object,
|
type: Object,
|
||||||
@ -72,37 +59,25 @@ const props = defineProps({
|
|||||||
default: false
|
default: false
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
const ruleForm = ref({
|
|
||||||
name: '',
|
|
||||||
cardID: '',
|
|
||||||
relation: '',
|
|
||||||
phone: '',
|
|
||||||
})
|
|
||||||
const dialogVisible = ref(false)
|
const dialogVisible = ref(false)
|
||||||
const listData = ref({})
|
const listData = ref({})
|
||||||
const Tips = ref(false)
|
const Tips = ref("密切联系人")
|
||||||
const addUpd = ref(true)
|
|
||||||
// 表格数据
|
// 表格数据
|
||||||
const pageData = reactive({
|
const pageData = reactive({
|
||||||
tableData: [],
|
tableData: [],
|
||||||
tableColumn: [{
|
tableColumn: [{
|
||||||
prop: 'ryXm',
|
prop: 'ryXm',
|
||||||
label: '人员姓名',
|
label: '人员姓名',
|
||||||
|
|
||||||
}, {
|
}, {
|
||||||
prop: 'rySfzh',
|
prop: 'rySfzh',
|
||||||
label: '身份证号码',
|
label: '身份证号码',
|
||||||
width: 200
|
|
||||||
|
|
||||||
}, {
|
}, {
|
||||||
|
|
||||||
prop: 'dygx',
|
prop: 'dygx',
|
||||||
label: '关系',
|
label: '关系',
|
||||||
|
showSolt: true,
|
||||||
}, {
|
}, {
|
||||||
|
|
||||||
prop: 'lxrDh',
|
prop: 'lxrDh',
|
||||||
label: '联系电话',
|
label: '联系电话',
|
||||||
width: 120
|
|
||||||
}],
|
}],
|
||||||
tableHeight: '200px',
|
tableHeight: '200px',
|
||||||
keyCount: 0,
|
keyCount: 0,
|
||||||
@ -120,171 +95,104 @@ const pageData = reactive({
|
|||||||
controlsWidth: 200,
|
controlsWidth: 200,
|
||||||
})
|
})
|
||||||
// 表单数据
|
// 表单数据
|
||||||
const formData = reactive({
|
const formData = ref({
|
||||||
username: "",
|
username: "",
|
||||||
ID: ""
|
ID: ""
|
||||||
})
|
})
|
||||||
|
const touchIn = ref(true)
|
||||||
const rulesForm = ref(identityCardRule({ validator: true }, 'rySfzh'))
|
const rulesForm = ref(identityCardRule({ validator: true }, 'rySfzh'))
|
||||||
const diaLogRuleForm = reactive([{ prop: 'username', label: '姓名', type: 'input', value: '' },
|
const diaLogRuleForm = ref({})
|
||||||
{ prop: 'cardID', label: '身份证号', type: 'input', value: '' },
|
|
||||||
{ prop: 'relation', label: '关系', type: 'input', value: '' },
|
|
||||||
{ prop: 'phone', label: '联系电话', type: 'input', value: '' }
|
|
||||||
])
|
|
||||||
watch(() => props.dataList, (val) => {
|
watch(() => props.dataList, (val) => {
|
||||||
if (val) {
|
if (val) {
|
||||||
console.log(val, 'listData.value');
|
|
||||||
|
|
||||||
listData.value = val
|
listData.value = val
|
||||||
|
getContact()
|
||||||
}
|
}
|
||||||
}, { deep: true })
|
}, { deep: true })
|
||||||
// 弹出增加或者修改弹窗
|
// 弹出增加或者修改弹窗
|
||||||
const openDialog = (type, formVal) => {
|
const openDialog = (type, formVal, bool) => {
|
||||||
|
touchIn.value = bool
|
||||||
dialogVisible.value = true
|
dialogVisible.value = true
|
||||||
Tips.value = type
|
Tips.value = type
|
||||||
console.log(formVal, "formVal");
|
diaLogRuleForm.value = { ...formVal }
|
||||||
|
|
||||||
console.log(dialogVisible.value, "dialogVisible.value")
|
|
||||||
if (type === '新增密切联系人') {
|
|
||||||
diaLogRuleForm.forEach(item => {
|
|
||||||
item.value = ''
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
diaLogRuleForm[0].value = formVal.ryXm
|
|
||||||
diaLogRuleForm[1].value = formVal.rySfzh
|
|
||||||
diaLogRuleForm[2].value = formVal.dygx
|
|
||||||
diaLogRuleForm[3].value = formVal.lxrDh
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
// 增加或修改数据接口
|
// 提交表单
|
||||||
const dataModel = ref()
|
const addPersonOrModifica = (val) => {
|
||||||
const addPersonOrModifica = async (val) => {
|
if (touchIn.value) {
|
||||||
console.log('dafafaf', val)
|
const item = pageData.tableData.findIndex(item => item.rySfzh == val.rySfzh)
|
||||||
let params = {
|
if (item != -1) {
|
||||||
id: listData.value.id
|
proxy.$message({
|
||||||
}
|
message: '该人员已存在',
|
||||||
val.forEach(item => {
|
type: 'warning'
|
||||||
switch (item.label) {
|
})
|
||||||
case '姓名':
|
return
|
||||||
params.ryXm = item.value
|
|
||||||
break
|
|
||||||
case '身份证号':
|
|
||||||
params.rySfzh = item.value
|
|
||||||
break
|
|
||||||
case '关系':
|
|
||||||
params.dygx = item.value
|
|
||||||
break
|
|
||||||
case '联系电话':
|
|
||||||
params.lxrDh = item.value
|
|
||||||
break
|
|
||||||
default:
|
|
||||||
break
|
|
||||||
}
|
}
|
||||||
})
|
|
||||||
console.log(params, "fafafafaff");
|
|
||||||
|
|
||||||
if (props.showBut && !props.disabled) {
|
|
||||||
const res = await tbGsxtZdryLxrsaveOrUpdateLxr(params)
|
|
||||||
console.log(res, "联系人增加res");
|
|
||||||
|
|
||||||
// if (type) {
|
|
||||||
|
|
||||||
// if (res.code == 200) {
|
|
||||||
// gettbZdryClxxSelectPage()
|
|
||||||
// proxy.$message({
|
|
||||||
// message: '密切联系人添加成功',
|
|
||||||
// type: 'success'
|
|
||||||
// })
|
|
||||||
// } else {
|
|
||||||
// proxy.$message({
|
|
||||||
// message: '密切联系人添加失败',
|
|
||||||
// type: 'error'
|
|
||||||
// })
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
|
||||||
// } else {
|
|
||||||
// if (res.code == 200) {
|
|
||||||
// gettbZdryClxxSelectPage()
|
|
||||||
// proxy.$message({
|
|
||||||
// message: '密切联系人添加成功',
|
|
||||||
// type: 'success'
|
|
||||||
// })
|
|
||||||
// } else {
|
|
||||||
// proxy.$message({
|
|
||||||
// message: '密切联系人添加失败',
|
|
||||||
// type: 'error'
|
|
||||||
// })
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
} else {
|
|
||||||
pageData.tableData.push(val)
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
onMounted(() => {
|
|
||||||
// console.log(identityCardRule,"dadad1");
|
|
||||||
|
|
||||||
})
|
|
||||||
// 删除车辆
|
|
||||||
const delDictItem = (val) => {
|
|
||||||
if (!props.disabled && props.showBut) {
|
|
||||||
ElMessageBox.confirm(
|
|
||||||
'是否删除关联车辆',
|
|
||||||
'提示',
|
|
||||||
{
|
|
||||||
confirmButtonText: '确认',
|
|
||||||
cancelButtonText: '取消',
|
|
||||||
type: 'warning',
|
|
||||||
}
|
|
||||||
)
|
|
||||||
.then(() => {
|
|
||||||
tbZdryClxxDelete({ ids: [val] }).then(res => {
|
|
||||||
gettbZdryClxxSelectPage()
|
|
||||||
proxy.$message({
|
|
||||||
message: '关联车辆删除成功',
|
|
||||||
type: 'success'
|
|
||||||
})
|
|
||||||
})
|
|
||||||
})
|
|
||||||
.catch(() => {
|
|
||||||
ElMessage({
|
|
||||||
type: 'info',
|
|
||||||
message: '取消删除',
|
|
||||||
})
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
pageData.tableData = pageData.tableData.filter(v => v.id != val)
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
const updDictItem = (val) => {
|
|
||||||
chooseMarksVisible.value = true
|
|
||||||
addUpd.value = false
|
|
||||||
dataModel.value = val
|
|
||||||
}
|
|
||||||
const AddPore = () => {
|
|
||||||
chooseMarksVisible.value = true
|
|
||||||
dataModel.value = {}
|
|
||||||
addUpd.value = true
|
|
||||||
}
|
|
||||||
// 初始化密切联系人
|
|
||||||
const gettbZdryClxxSelectPage = () => {
|
|
||||||
const promes = {
|
const promes = {
|
||||||
pageCurrent: 1,
|
...val,
|
||||||
pageSize: 20,
|
zdryId: listData.value.id
|
||||||
zdrid: listData.value.id
|
|
||||||
}
|
}
|
||||||
tbGsxtZdryLxrselectLxrBy(promes).then(res => {
|
tbGsxtZdryLxrsaveOrUpdateLxr(promes).then((res) => {
|
||||||
|
proxy.$message({
|
||||||
|
message: '操作成功',
|
||||||
|
type: 'success'
|
||||||
|
})
|
||||||
|
getContact()
|
||||||
|
}).catch((err) => {
|
||||||
|
proxy.$message({
|
||||||
|
message: '操作失败',
|
||||||
|
type: 'error'
|
||||||
|
})
|
||||||
|
});
|
||||||
|
}
|
||||||
|
const delDictItem = (val) => {
|
||||||
|
ElMessageBox.confirm(
|
||||||
|
'是否删除该联系人',
|
||||||
|
'提示',
|
||||||
|
{
|
||||||
|
confirmButtonText: '确认',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning',
|
||||||
|
}
|
||||||
|
)
|
||||||
|
.then(() => {
|
||||||
|
|
||||||
|
tbGsxtZdryLxr(val).then((res) => {
|
||||||
|
proxy.$message({
|
||||||
|
message: '删除成功',
|
||||||
|
type: 'success'
|
||||||
|
})
|
||||||
|
getContact()
|
||||||
|
}).catch((err) => {
|
||||||
|
|
||||||
|
});
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
proxy.$message({
|
||||||
|
message: '删除失败',
|
||||||
|
type: 'info',
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
const getContact = () => {
|
||||||
|
const promes = { zdryId: listData.value.id }
|
||||||
|
tbGsxtZdryLxrselectLxrBy(promes).then((res) => {
|
||||||
pageData.tableData = res
|
pageData.tableData = res
|
||||||
console.log(pageData.tableData, "表格原生数据");
|
|
||||||
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
const resetForm = () => {
|
||||||
|
formData.value = {}
|
||||||
|
getContact()
|
||||||
|
}
|
||||||
|
const check = () => {
|
||||||
|
if (formData.value.rySfzh) {
|
||||||
|
// 模糊查询:检查身份证号码是否包含输入的内容
|
||||||
|
pageData.tableData = pageData.tableData.filter(item => item.rySfzh && item.rySfzh.includes(formData.value.rySfzh))
|
||||||
|
} else {
|
||||||
|
// 如果输入为空,显示所有数据
|
||||||
|
getContact()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 抛出数据并验证标签列表不为空
|
// 抛出数据并验证标签列表不为空
|
||||||
const throwData = () => {
|
const throwData = () => {
|
||||||
return new Promise((resolve) => {
|
return new Promise((resolve) => {
|
||||||
@ -335,7 +243,9 @@ defineExpose({
|
|||||||
padding-bottom: 10px;
|
padding-bottom: 10px;
|
||||||
border-bottom: 2px solid #409eff;
|
border-bottom: 2px solid #409eff;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.headSelect {
|
.headSelect {
|
||||||
|
@ -1,51 +1,41 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="headClass" style="">
|
<div class="headClass" style="">
|
||||||
<h3>动态轨迹</h3>
|
<h3>动态轨迹</h3>
|
||||||
<!-- <el-button type="primary" :disabled="disabled" @click="AddPore">选择</el-button> -->
|
|
||||||
</div>
|
|
||||||
<div class="headSelect">
|
|
||||||
<el-select v-model="value" placeholder="身份证号码" style="width: 100px">
|
|
||||||
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
|
|
||||||
</el-select>
|
|
||||||
<el-select v-model="value" placeholder="请输入内容" style="width: 240px">
|
|
||||||
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
|
|
||||||
</el-select>
|
|
||||||
<div class="demo-datetime-picker">
|
|
||||||
<div class="block">
|
|
||||||
<el-date-picker v-model="value2" type="datetimerange" start-placeholder="Start date"
|
|
||||||
end-placeholder="End date" format="YYYY-MM-DD HH:mm:ss" date-format="YYYY/MM/DD ddd"
|
|
||||||
time-format="A hh:mm:ss" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<el-button type="primary" @click="check">查询</el-button>
|
|
||||||
<el-button @click="resetForm">重置</el-button>
|
|
||||||
</div>
|
|
||||||
<div class="mapBox">地图</div>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
<div class="headSelect">
|
||||||
|
<el-select v-model="listData.zjlx" placeholder="身份证号码" style="width: 240px">
|
||||||
|
<el-option v-for="item in D_BZ_ZJLX" :key="item.dm" :label="item.zdmc" :value="item.dm" />
|
||||||
|
</el-select>
|
||||||
|
<el-input v-model="listData.msg" placeholder="请输入证件号码" style="width: 300px" />
|
||||||
|
<div class="demo-datetime-picker">
|
||||||
|
<div class="block">
|
||||||
|
<el-date-picker v-model="listData.time" type="datetimerange" start-placeholder="开始时间"
|
||||||
|
end-placeholder="结束时间" format="YYYY-MM-DD HH:mm:ss" date-format="YYYY/MM/DD ddd"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<el-button type="primary" @click="check">查询</el-button>
|
||||||
|
<el-button @click="resetForm">重置</el-button>
|
||||||
|
</div>
|
||||||
|
<div class="mapBox">
|
||||||
|
<!-- <GdMap /> -->
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref } from 'vue'
|
import { ref, getCurrentInstance } from 'vue'
|
||||||
|
import GdMap from "@/components/GdMap/index.vue";
|
||||||
const value = ref('')
|
// import
|
||||||
|
const { proxy } = getCurrentInstance();
|
||||||
const options = [
|
const { D_BZ_ZJLX } = proxy.$dict("D_BZ_ZJLX")
|
||||||
{
|
const listData= ref({})
|
||||||
value: '1',
|
const check = () => { }
|
||||||
label: '身份证号码',
|
const resetForm = () => {
|
||||||
},
|
listData.value = {}
|
||||||
{
|
}
|
||||||
value: '2',
|
|
||||||
label: '港澳台通行证',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
value: 'Option3',
|
|
||||||
label: 'Option3',
|
|
||||||
},
|
|
||||||
]
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
@ -53,60 +43,64 @@ const options = [
|
|||||||
@import "~@/assets/css/element-plus.scss";
|
@import "~@/assets/css/element-plus.scss";
|
||||||
|
|
||||||
.backinfo-container {
|
.backinfo-container {
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep(.el-form) {
|
::v-deep(.el-form) {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
}
|
}
|
||||||
|
|
||||||
.left_box {
|
.left_box {
|
||||||
width: 200px;
|
width: 200px;
|
||||||
border: 1px solid #c8c8c89a;
|
border: 1px solid #c8c8c89a;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.right_box {
|
.right_box {
|
||||||
width: calc(100% - 230px);
|
width: calc(100% - 230px);
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .el-form-item__content {
|
::v-deep .el-form-item__content {
|
||||||
display: block !important;
|
display: block !important;
|
||||||
|
}
|
||||||
|
::v-deep .el-range-input{
|
||||||
|
color: #000 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.headClass {
|
.headClass {
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
color: #303133;
|
color: #303133;
|
||||||
margin: 0 0 10px 0;
|
margin: 0 0 10px 0;
|
||||||
padding-bottom: 10px;
|
padding-bottom: 10px;
|
||||||
border-bottom: 2px solid #409eff;
|
border-bottom: 2px solid #409eff;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.headSelect {
|
.headSelect {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
margin: 20px 0;
|
margin: 20px 0;
|
||||||
padding:0 16px;
|
padding: 0 16px;
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
border-bottom: 1px solid #eee;
|
border-bottom: 1px solid #eee;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: baseline;
|
align-items: baseline;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
|
|
||||||
}
|
}
|
||||||
.mapBox{
|
|
||||||
|
.mapBox {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 300px;
|
height: 300px;
|
||||||
background-color: rgba(0, 123, 255, 0.5);
|
position: relative;
|
||||||
}
|
background-color: rgba(0, 123, 255, 0.5);
|
||||||
|
}
|
||||||
|
|
||||||
h3 {
|
h3 {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="headClass">
|
<div class="headClass">
|
||||||
<h3>群体背景信息</h3>
|
<h3>人员信息</h3>
|
||||||
<!-- @click="gettbGsxtZdqtUpdate" -->
|
<!-- @click="gettbGsxtZdqtUpdate" -->
|
||||||
<el-button type="primary" v-if="showBut" :disabled="disabled" @click="submit">保存</el-button>
|
<el-button type="primary" v-if="showBut" :disabled="disabled" @click="submit">保存</el-button>
|
||||||
</div>
|
</div>
|
||||||
<div class="form_cnt">
|
<div>
|
||||||
<FormMessage :disabled="disabled" v-model="listQuery" :formList="formData" labelWidth="100px" ref="elform"
|
<FormMessage :disabled="disabled" v-model="listQuery" :formList="formData" labelWidth="100px" ref="elform"
|
||||||
:rules="rules">
|
:rules="rules">
|
||||||
<template #ryzp>
|
<template #ryzp>
|
||||||
@ -18,13 +18,13 @@
|
|||||||
<div class="inputGroup" v-for="(item,index) in listQuery.ryLxdh" :key="index">
|
<div class="inputGroup" v-for="(item,index) in listQuery.ryLxdh" :key="index">
|
||||||
<el-input v-model="listQuery.ryLxdh[index]" class="group" placeholder="请输入电话号码" />
|
<el-input v-model="listQuery.ryLxdh[index]" class="group" placeholder="请输入电话号码" />
|
||||||
<div class="flex align-center but">
|
<div class="flex align-center but">
|
||||||
<el-button type="primary" :icon="Plus" circle @click="addPhone" title="添加电话号码" />
|
<el-button type="primary" :icon="Plus" circle @click="addPhone" title="添加电话号码" v-if=" listQuery.ryLxdh.length-1 ==index"/>
|
||||||
<el-button type="success" :icon="Minus" circle @click="removePhone(index)" title="删除电话号码" />
|
<el-button type="success" :icon="Minus" circle @click="removePhone(index)" title="删除电话号码" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template #tags>
|
<!-- <template #tags>
|
||||||
<div style="display: flex; align-items: center;">
|
<div style="display: flex; align-items: center;">
|
||||||
<el-button type="primary" :disabled="disabled" @click="chooseMarksVisible = true">
|
<el-button type="primary" :disabled="disabled" @click="chooseMarksVisible = true">
|
||||||
选择标签
|
选择标签
|
||||||
@ -33,12 +33,12 @@
|
|||||||
已选择 {{ roleIds.length }} 个标签
|
已选择 {{ roleIds.length }} 个标签
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template> -->
|
||||||
|
|
||||||
</FormMessage>
|
</FormMessage>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<ChooseMarks v-model="chooseMarksVisible" @choosed="choosed" :roleIds="roleIds" />
|
<!-- <ChooseMarks v-model="chooseMarksVisible" @choosed="choosed" :roleIds="roleIds" /> -->
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
@ -50,8 +50,8 @@ import ChooseMarks from "@/components/ChooseList/ChooseMarks/index.vue";
|
|||||||
import { ref, reactive, onMounted, getCurrentInstance, watch } from "vue";
|
import { ref, reactive, onMounted, getCurrentInstance, watch } from "vue";
|
||||||
import { tbGsxtZdryUpdate } from "@/api/zdr.js";
|
import { tbGsxtZdryUpdate } from "@/api/zdr.js";
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
const { D_BZ_XB, D_BZ_ZZMM, D_BZ_HYZK, D_BZ_MZ, D_BZ_XZQHDM, D_BZ_RCBKZT, D_GS_ZDR_RYJB, D_GS_ZDR_YJDJ, D_GS_BK_SSJZ, D_GS_ZDR_CZZT, D_BZ_WHCD, D_ZDRY_ZYLB } =
|
const { D_BZ_XB, D_BZ_ZZMM, D_BZ_HYZK, D_BZ_MZ, D_BZ_XZQHDM, D_ZDRY_RYLX,D_BZ_RCBKZT, D_GS_ZDR_RYJB, D_GS_ZDR_YJDJ, D_GS_BK_SSJZ, D_GS_ZDR_CZZT, D_BZ_WHCD, D_ZDRY_ZYLB } =
|
||||||
proxy.$dict('D_BZ_XB', 'D_BZ_ZZMM', 'D_BZ_HYZK', 'D_BZ_MZ', 'D_BZ_XZQHDM', 'D_BZ_RCBKZT', 'D_GS_ZDR_RYJB', 'D_GS_ZDR_YJDJ', 'D_GS_BK_SSJZ', 'D_GS_ZDR_CZZT', 'D_BZ_WHCD', 'D_ZDRY_ZYLB')
|
proxy.$dict('D_BZ_XB', 'D_BZ_ZZMM', 'D_BZ_HYZK', 'D_BZ_MZ', "D_ZDRY_RYLX",'D_BZ_XZQHDM', 'D_BZ_RCBKZT', 'D_GS_ZDR_RYJB', 'D_GS_ZDR_YJDJ', 'D_GS_BK_SSJZ', 'D_GS_ZDR_CZZT', 'D_BZ_WHCD', 'D_ZDRY_ZYLB')
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
dataList: {
|
dataList: {
|
||||||
type: Object,
|
type: Object,
|
||||||
@ -77,7 +77,8 @@ const rules = reactive({
|
|||||||
ryCsrq: [{ required: true, message: "请选择出生日期", trigger: "change" }],
|
ryCsrq: [{ required: true, message: "请选择出生日期", trigger: "change" }],
|
||||||
ryJg: [{ required: true, message: "请选择籍贯", trigger: "change" }],
|
ryJg: [{ required: true, message: "请选择籍贯", trigger: "change" }],
|
||||||
zdrRyjb: [{ required: true, message: "请选择人员级别", trigger: "change" }],
|
zdrRyjb: [{ required: true, message: "请选择人员级别", trigger: "change" }],
|
||||||
zdrYjdj: [{ required: true, message: "请选择预警等级", trigger: "change" }]
|
zdrYjdj: [{ required: true, message: "请选择预警等级", trigger: "change" }],
|
||||||
|
rylx: [{ required: true, message: "请选择人员类型", trigger: "change" }]
|
||||||
});
|
});
|
||||||
const listQuery = ref({ryLxdh:[""]}); //表单
|
const listQuery = ref({ryLxdh:[""]}); //表单
|
||||||
const chooseMarksVisible = ref(false); // 控制标签选择弹窗显示
|
const chooseMarksVisible = ref(false); // 控制标签选择弹窗显示
|
||||||
@ -110,11 +111,12 @@ const formData = ref([
|
|||||||
{ label: "婚姻状态", prop: "hyzk", type: "select", options: D_BZ_HYZK },
|
{ label: "婚姻状态", prop: "hyzk", type: "select", options: D_BZ_HYZK },
|
||||||
{ label: "处置状态", prop: "zdrCzzt", type: "select", options: D_GS_ZDR_CZZT },
|
{ label: "处置状态", prop: "zdrCzzt", type: "select", options: D_GS_ZDR_CZZT },
|
||||||
{ label: "布控状态", prop: "zdrBkZt", type: "select", options: D_BZ_RCBKZT },
|
{ label: "布控状态", prop: "zdrBkZt", type: "select", options: D_BZ_RCBKZT },
|
||||||
|
{ label: "人员类型", prop: "rylx", type: "select", options: D_ZDRY_RYLX },
|
||||||
{ label: "入库开始时间", prop: "zdrRkkssj", type: "datetime" },
|
{ label: "入库开始时间", prop: "zdrRkkssj", type: "datetime" },
|
||||||
{ label: "入库结束时间", prop: "zdrRkjssj", type: "datetime" },
|
{ label: "入库结束时间", prop: "zdrRkjssj", type: "datetime" },
|
||||||
{ label: "Mac地址", prop: "macDz", type: "input" },
|
{ label: "Mac地址", prop: "macDz", type: "input" },
|
||||||
{ label: "联系电话", prop: "ryLxdh", type: "slot", width: "100%" },
|
{ label: "联系电话", prop: "ryLxdh", type: "slot", width: "100%" },
|
||||||
{ label: "标签选择", prop: "tags", type: "slot", width: "100%" },
|
// { label: "标签选择", prop: "tags", type: "slot", width: "100%" },
|
||||||
{ label: "管控原因", prop: "zdrLkyy", type: "textarea", width: "100%" },
|
{ label: "管控原因", prop: "zdrLkyy", type: "textarea", width: "100%" },
|
||||||
]);
|
]);
|
||||||
const loading = ref(false);
|
const loading = ref(false);
|
||||||
@ -147,6 +149,7 @@ watch(() => props.dataList, (val) => {
|
|||||||
listQuery.value = deepClone(val);
|
listQuery.value = deepClone(val);
|
||||||
// 处理照片数据
|
// 处理照片数据
|
||||||
listQuery.value.ryzp = val.ryzp == null || val.ryzp == '' ? [] : [val.ryzp];
|
listQuery.value.ryzp = val.ryzp == null || val.ryzp == '' ? [] : [val.ryzp];
|
||||||
|
listQuery.value.zdrSjjz = val.zdrSjjz == null || val.zdrSjjz == '' ? [] :JSON.parse(val.zdrSjjz);
|
||||||
// 处理标签ID数据,确保数据回显
|
// 处理标签ID数据,确保数据回显
|
||||||
if (val.tagIds && Array.isArray(val.tagIds) && val.tagIds.length > 0) {
|
if (val.tagIds && Array.isArray(val.tagIds) && val.tagIds.length > 0) {
|
||||||
roleIds.value = [...val.tagIds];
|
roleIds.value = [...val.tagIds];
|
||||||
@ -155,7 +158,6 @@ watch(() => props.dataList, (val) => {
|
|||||||
} else {
|
} else {
|
||||||
roleIds.value = [];
|
roleIds.value = [];
|
||||||
}
|
}
|
||||||
// listQuery.value.ryLxdh =listQuery.value.ryLxdh.length>0?listQuery.value.ryLxdh:['11'];
|
|
||||||
}
|
}
|
||||||
}, { deep: true })
|
}, { deep: true })
|
||||||
// 提交
|
// 提交
|
||||||
@ -163,23 +165,12 @@ const submit = () => {
|
|||||||
loading.value = true
|
loading.value = true
|
||||||
gettbGsxtZdryUpdate()
|
gettbGsxtZdryUpdate()
|
||||||
};
|
};
|
||||||
|
|
||||||
// 处理标签选择结果
|
|
||||||
const choosed = (selectedTags) => {
|
|
||||||
// 存储选择的标签ID用于回显
|
|
||||||
roleIds.value = selectedTags.map(tag => tag.id);
|
|
||||||
// 这里可以根据实际需求处理选择的标签数据
|
|
||||||
};
|
|
||||||
|
|
||||||
//
|
//
|
||||||
const gettbGsxtZdryUpdate = () => {
|
const gettbGsxtZdryUpdate = () => {
|
||||||
const promes = {
|
const promes = {
|
||||||
...listQuery.value,
|
...listQuery.value,
|
||||||
ryzp: listQuery.value.ryzp.length > 0 ? listQuery.value.ryzp.toString() : "",
|
ryzp: listQuery.value.ryzp.length > 0 ? listQuery.value.ryzp.toString() : "",
|
||||||
ryLxdh: listQuery.value.ryLxdh,
|
ryLxdh: listQuery.value.ryLxdh,
|
||||||
tagIds: roleIds.value,
|
|
||||||
bqIds: roleIds.value,
|
|
||||||
|
|
||||||
}
|
}
|
||||||
tbGsxtZdryUpdate(promes).then((res) => {
|
tbGsxtZdryUpdate(promes).then((res) => {
|
||||||
listQuery.value.ryzp = []
|
listQuery.value.ryzp = []
|
||||||
@ -228,9 +219,8 @@ const throwData = () => {
|
|||||||
resolve({
|
resolve({
|
||||||
...listQuery.value,
|
...listQuery.value,
|
||||||
ryzp: listQuery.value.ryzp && listQuery.value.ryzp.length > 0 ? listQuery.value.ryzp.toString() : '',
|
ryzp: listQuery.value.ryzp && listQuery.value.ryzp.length > 0 ? listQuery.value.ryzp.toString() : '',
|
||||||
ryLxdh: JSON.stringify(validPhones),
|
ryLxdh: validPhones,
|
||||||
tagIds: roleIds.value,
|
zdrSjjz:JSON.stringify(listQuery.value.zdrSjjz),
|
||||||
bqIds: roleIds.value
|
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
reject(new Error('表单验证失败,请检查输入信息'));
|
reject(new Error('表单验证失败,请检查输入信息'));
|
||||||
@ -246,9 +236,8 @@ const throwData = () => {
|
|||||||
resolve({
|
resolve({
|
||||||
...listQuery.value,
|
...listQuery.value,
|
||||||
ryzp: listQuery.value.ryzp && listQuery.value.ryzp.length > 0 ? listQuery.value.ryzp.toString() : '',
|
ryzp: listQuery.value.ryzp && listQuery.value.ryzp.length > 0 ? listQuery.value.ryzp.toString() : '',
|
||||||
ryLxdh: JSON.stringify(validPhones),
|
ryLxdh: validPhones,
|
||||||
tagIds: roleIds.value,
|
zdrSjjz:JSON.stringify(listQuery.value.zdrSjjz),
|
||||||
bqIds: roleIds.value
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -2,24 +2,10 @@
|
|||||||
<div>
|
<div>
|
||||||
<div class="headClass" style="">
|
<div class="headClass" style="">
|
||||||
<h3>走访记录</h3>
|
<h3>走访记录</h3>
|
||||||
<!-- <el-button type="primary" :disabled="disabled" @click="AddPore">选择</el-button> -->
|
<el-button @click="AddPore" type="primary">新增</el-button>
|
||||||
|
|
||||||
</div>
|
|
||||||
<div class="headSelect">
|
|
||||||
|
|
||||||
<el-button @click="add" type="primary">新增</el-button>
|
|
||||||
</div>
|
</div>
|
||||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||||
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth">
|
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth">
|
||||||
<template #clys="{ row }">
|
|
||||||
<DictTag :tag="false" :value="row.clys" :options="D_BZ_CLYS" />
|
|
||||||
</template>
|
|
||||||
<template #cllx="{ row }">
|
|
||||||
<DictTag :tag="false" :value="row.cllx" :options="D_BZ_CLLX" />
|
|
||||||
</template>
|
|
||||||
<template #clpp="{ row }">
|
|
||||||
<DictTag :tag="false" :value="row.clpp" :options="D_BZ_CLPP" />
|
|
||||||
</template>
|
|
||||||
<!-- 操作 -->
|
<!-- 操作 -->
|
||||||
<template #controls="{ row }">
|
<template #controls="{ row }">
|
||||||
<el-link type="danger" @click="delDictItem(row.id)">删除</el-link>
|
<el-link type="danger" @click="delDictItem(row.id)">删除</el-link>
|
||||||
@ -27,24 +13,21 @@
|
|||||||
</template>
|
</template>
|
||||||
</MyTable>
|
</MyTable>
|
||||||
</div>
|
</div>
|
||||||
<VehiclDoing v-model="chooseMarksVisible" @comfirm="addMarks" :data="dataModel"
|
<InterLoding v-model="chooseMarksVisible" @comfirm="addMarks" :data="dataModel" />
|
||||||
:dict="{ D_BZ_CLLX, D_BZ_CLYS, D_BZ_CLPP }" />
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { identityCardRule } from "@/utils/rules"
|
|
||||||
import { ref, reactive, watch, toRaw, getCurrentInstance, onMounted, onUnmounted } from "vue";
|
import { ref, reactive, watch, toRaw, getCurrentInstance, onMounted, onUnmounted } from "vue";
|
||||||
import MyTable from "@/components/aboutTable/MyTable.vue";
|
import MyTable from "@/components/aboutTable/MyTable.vue";
|
||||||
import VehiclDoing from "../component/vehiclDoing.vue";
|
import InterLoding from "../component/interLoding.vue";
|
||||||
import { tbZdryClxxAdd, tbZdryClxxBatchAdd, tbZdryClxxDelete, tbGsxtZdryZfjlselectZfjl, tbZdryClxxUpdate } from '@/api/zdr.js'
|
import { tbGsxtZdryZfjlsaveOrUpdateZfjl,tbGsxtZdryZfjlselectZfjl,tbGsxtZdryZfjl } from '@/api/zdr.js'
|
||||||
import { ElMessage, ElMessageBox } from "element-plus";
|
import { ElMessage, ElMessageBox } from "element-plus";
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
const { D_BZ_CLLX, D_BZ_CLYS, D_BZ_CLPP } = proxy.$dict("D_BZ_CLLX", "D_BZ_CLYS", "D_BZ_CLPP"); //获取字典数据
|
|
||||||
const chooseMarksVisible = ref(false)
|
const chooseMarksVisible = ref(false)
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
dataList: {
|
dataList: {
|
||||||
type: Object,
|
type: Object,
|
||||||
default: () => { },
|
default: () => {},
|
||||||
}, disabled: {
|
}, disabled: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: false
|
default: false
|
||||||
@ -58,9 +41,7 @@ const listData = ref({})
|
|||||||
const addUpd = ref(true)
|
const addUpd = ref(true)
|
||||||
watch(() => props.dataList, (val) => {
|
watch(() => props.dataList, (val) => {
|
||||||
if (val) {
|
if (val) {
|
||||||
listData.value = val
|
listData.value = {...val}
|
||||||
|
|
||||||
|
|
||||||
gettbZdryClxxSelectPage()
|
gettbZdryClxxSelectPage()
|
||||||
}
|
}
|
||||||
}, { deep: true })
|
}, { deep: true })
|
||||||
@ -68,26 +49,21 @@ watch(() => props.dataList, (val) => {
|
|||||||
const pageData = reactive({
|
const pageData = reactive({
|
||||||
tableData: [],
|
tableData: [],
|
||||||
tableColumn: [{
|
tableColumn: [{
|
||||||
prop: 'cph',
|
prop: 'zfmjXm',
|
||||||
width: 150,
|
width: 150,
|
||||||
label: '走访民警/辅警',
|
label: '走访民警',
|
||||||
}, {
|
}, {
|
||||||
prop: 'cllx',
|
prop: 'zffs',
|
||||||
label: '走访方式',
|
label: '走访方式',
|
||||||
showSolt: true,
|
|
||||||
prop: 'clpp',
|
|
||||||
}, {
|
}, {
|
||||||
showSolt: true,
|
prop: 'zfsj',
|
||||||
prop: 'clys',
|
|
||||||
label: '走访时间',
|
label: '走访时间',
|
||||||
}, {
|
}, {
|
||||||
showSolt: true,
|
prop: 'zfdz',
|
||||||
prop: 'clpp',
|
|
||||||
label: '走访地址',
|
label: '走访地址',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
showSolt: true,
|
prop: 'zfqk',
|
||||||
prop: 'clpp',
|
|
||||||
label: '走访情况',
|
label: '走访情况',
|
||||||
}],
|
}],
|
||||||
tableHeight: '200px',
|
tableHeight: '200px',
|
||||||
@ -105,51 +81,39 @@ const pageData = reactive({
|
|||||||
},
|
},
|
||||||
controlsWidth: 200,
|
controlsWidth: 200,
|
||||||
})
|
})
|
||||||
// 表单数据
|
|
||||||
const formData = reactive({
|
|
||||||
username: "",
|
|
||||||
ID: ""
|
|
||||||
})
|
|
||||||
const rulesForm = ref(identityCardRule({ validator: true }, 'rySfzh'))
|
|
||||||
// 修改数据接口
|
// 修改数据接口
|
||||||
const dataModel = ref()
|
const dataModel = ref()
|
||||||
const addMarks = (val) => {
|
const addMarks = (val) => {
|
||||||
const params = {
|
const params = {
|
||||||
...val,
|
...val,
|
||||||
zdrid: listData.value.id,
|
zdryId: listData.value.id,
|
||||||
}
|
}
|
||||||
if (props.showBut && !props.disabled) {
|
|
||||||
if (addUpd.value) {
|
if (addUpd.value) {
|
||||||
tbZdryClxxAdd(params).then(res => {
|
tbGsxtZdryZfjlsaveOrUpdateZfjl(params).then(res => {
|
||||||
gettbZdryClxxSelectPage()
|
gettbZdryClxxSelectPage()
|
||||||
proxy.$message({
|
proxy.$message({
|
||||||
message: '关联车辆添加成功',
|
message: '走访记录添加成功',
|
||||||
type: 'success'
|
type: 'success'
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
tbZdryClxxUpdate(params).then(res => {
|
tbGsxtZdryZfjlsaveOrUpdateZfjl(params).then(res => {
|
||||||
gettbZdryClxxSelectPage()
|
gettbZdryClxxSelectPage()
|
||||||
proxy.$message({
|
proxy.$message({
|
||||||
message: '关联车辆修改成功',
|
message: '走访记录修改成功',
|
||||||
type: 'success'
|
type: 'success'
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
pageData.tableData.push(val)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
onMounted(() => {
|
|
||||||
|
|
||||||
|
// 删除走访记录
|
||||||
})
|
|
||||||
// 删除车辆
|
|
||||||
const delDictItem = (val) => {
|
const delDictItem = (val) => {
|
||||||
if (!props.disabled && props.showBut) {
|
if (!props.disabled && props.showBut) {
|
||||||
ElMessageBox.confirm(
|
ElMessageBox.confirm(
|
||||||
'是否删除关联车辆',
|
'是否删除走访记录',
|
||||||
'提示',
|
'提示',
|
||||||
{
|
{
|
||||||
confirmButtonText: '确认',
|
confirmButtonText: '确认',
|
||||||
@ -158,10 +122,10 @@ const delDictItem = (val) => {
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
.then(() => {
|
.then(() => {
|
||||||
tbZdryClxxDelete({ ids: [val] }).then(res => {
|
tbGsxtZdryZfjl(val).then(res => {
|
||||||
gettbZdryClxxSelectPage()
|
gettbZdryClxxSelectPage()
|
||||||
proxy.$message({
|
proxy.$message({
|
||||||
message: '关联车辆删除成功',
|
message: '走访记录删除成功',
|
||||||
type: 'success'
|
type: 'success'
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
@ -188,11 +152,9 @@ const AddPore = () => {
|
|||||||
dataModel.value = {}
|
dataModel.value = {}
|
||||||
addUpd.value = true
|
addUpd.value = true
|
||||||
}
|
}
|
||||||
// 查询车辆
|
// 查询走访记录
|
||||||
const gettbZdryClxxSelectPage = () => {
|
const gettbZdryClxxSelectPage = () => {
|
||||||
const promes = {
|
const promes = {
|
||||||
pageCurrent: 1,
|
|
||||||
pageSize: 20,
|
|
||||||
zdrid: listData.value.id
|
zdrid: listData.value.id
|
||||||
}
|
}
|
||||||
tbGsxtZdryZfjlselectZfjl(promes).then(res => {
|
tbGsxtZdryZfjlselectZfjl(promes).then(res => {
|
||||||
@ -203,10 +165,6 @@ const gettbZdryClxxSelectPage = () => {
|
|||||||
// 抛出数据并验证标签列表不为空
|
// 抛出数据并验证标签列表不为空
|
||||||
const throwData = () => {
|
const throwData = () => {
|
||||||
return new Promise((resolve) => {
|
return new Promise((resolve) => {
|
||||||
// // 验证:确保标签列表不为空
|
|
||||||
// if (!pageData.tableData || pageData.tableData.length === 0) {
|
|
||||||
// throw new Error('请录入车辆信息');
|
|
||||||
// }
|
|
||||||
resolve(pageData.tableData);
|
resolve(pageData.tableData);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -246,13 +204,16 @@ defineExpose({
|
|||||||
}
|
}
|
||||||
|
|
||||||
.headClass {
|
.headClass {
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
color: #303133;
|
color: #303133;
|
||||||
margin: 20px 0 10px 0;
|
margin: 20px 0 10px 0;
|
||||||
padding-bottom: 10px;
|
padding-bottom: 10px;
|
||||||
border-bottom: 2px solid #409eff;
|
border-bottom: 2px solid #409eff;
|
||||||
position: relative;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,8 +4,8 @@ function resolve(dir) {
|
|||||||
return path.join(__dirname, dir);
|
return path.join(__dirname, dir);
|
||||||
}
|
}
|
||||||
|
|
||||||
// const serverHost = "http://47.108.232.77:9537"//波哥
|
const serverHost = "http://192.168.8.15:8006"//波哥
|
||||||
const serverHost = "http://192.168.0.231:8006"//线上
|
// const serverHost = "http://192.168.0.231:8006"//线上
|
||||||
// const serverHost = "http://192.168.1.117:8006"//周
|
// const serverHost = "http://192.168.1.117:8006"//周
|
||||||
// const serverHost = "http://192.168.1.98:8006"//毛毛
|
// const serverHost = "http://192.168.1.98:8006"//毛毛
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user