fix:系统优化
This commit is contained in:
parent
3d38a94be7
commit
f82b8afc3c
|
|
@ -16,10 +16,10 @@ VITE_PROXY_API = /dev-api
|
||||||
# VITE_PROXY = [ ["/dev-api", "http://42.193.40.239:8017" ],["/dev-img-api", "http://file.sczysoft.com" ]]
|
# VITE_PROXY = [ ["/dev-api", "http://42.193.40.239:8017" ],["/dev-img-api", "http://file.sczysoft.com" ]]
|
||||||
# VITE_UPLOAD_URL = http://42.193.40.239:8888
|
# VITE_UPLOAD_URL = http://42.193.40.239:8888
|
||||||
# 东哥
|
# 东哥
|
||||||
VITE_PROXY = [ ["/dev-api", "http://192.168.110.186:8017" ],["/dev-img-api", "http://42.193.40.239:8017" ]]
|
# VITE_PROXY = [ ["/dev-api", "http://192.168.110.186:8017" ],["/dev-img-api", "http://42.193.40.239:8017" ]]
|
||||||
# VITE_UPLOAD_URL = http://192.168.110.186
|
# VITE_UPLOAD_URL = http://192.168.110.186
|
||||||
# 陈游
|
# 陈游
|
||||||
# VITE_PROXY = [ ["/dev-api", "http://192.168.110.10:8017" ],["/dev-img-api", "http://42.193.40.239:8017" ]]
|
VITE_PROXY = [ ["/dev-api", "http://192.168.110.10:8017" ],["/dev-img-api", "http://42.193.40.239:8017" ]]
|
||||||
VITE_UPLOAD_URL = http://42.193.40.239:8888/
|
VITE_UPLOAD_URL = http://42.193.40.239:8888/
|
||||||
# VITE_UPLOAD_URL = https://city.sczysoft.com/dffile/
|
# VITE_UPLOAD_URL = https://city.sczysoft.com/dffile/
|
||||||
#
|
#
|
||||||
|
|
|
||||||
1
src/assets/icons/xianshi.svg
Normal file
1
src/assets/icons/xianshi.svg
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1718863812636" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2322" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M512 768c-183.466667 0-328.533333-85.333333-426.666667-256 98.133333-170.666667 243.2-256 426.666667-256s328.533333 85.333333 426.666667 256c-98.133333 170.666667-243.2 256-426.666667 256z m8.533333-426.666667c-128 0-256 55.466667-328.533333 170.666667 72.533333 115.2 200.533333 170.666667 328.533333 170.666667s238.933333-55.466667 311.466667-170.666667c-72.533333-115.2-183.466667-170.666667-311.466667-170.666667z m-8.533333 298.666667c-72.533333 0-128-55.466667-128-128s55.466667-128 128-128 128 55.466667 128 128-55.466667 128-128 128z m0-85.333333c25.6 0 42.666667-17.066667 42.666667-42.666667s-17.066667-42.666667-42.666667-42.666667-42.666667 17.066667-42.666667 42.666667 17.066667 42.666667 42.666667 42.666667z" fill="#444444" p-id="2323"></path></svg>
|
||||||
|
After Width: | Height: | Size: 1.1 KiB |
1
src/assets/icons/yingchang.svg
Normal file
1
src/assets/icons/yingchang.svg
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1718863843275" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2480" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M422.4 776.533333l76.8-76.8h8.533333c145.066667 0 251.733333-55.466667 332.8-170.666666-25.6-34.133333-55.466667-64-85.333333-89.6L819.2 384c46.933333 38.4 85.333333 89.6 119.466667 145.066667-98.133333 170.666667-243.2 251.733333-426.666667 251.733333-29.866667 4.266667-59.733333 0-89.6-4.266667z m-238.933333-119.466666c-34.133333-34.133333-68.266667-76.8-98.133334-128 98.133333-170.666667 243.2-251.733333 426.666667-251.733334h46.933333l-85.333333 85.333334c-128 8.533333-226.133333 64-298.666667 166.4 17.066667 25.6 38.4 51.2 59.733334 68.266666l-51.2 59.733334zM755.2 213.333333l59.733333 59.733334L277.333333 810.666667l-59.733333-59.733334L755.2 213.333333z" fill="#444444" p-id="2481"></path></svg>
|
||||||
|
After Width: | Height: | Size: 1.0 KiB |
|
|
@ -135,8 +135,12 @@
|
||||||
placeholder="请输入身份证号"
|
placeholder="请输入身份证号"
|
||||||
type="input"
|
type="input"
|
||||||
v-model="formData.idCard"
|
v-model="formData.idCard"
|
||||||
/>
|
>
|
||||||
<el-button @click="getPeopleIdCard" type="primary" round class="idCardButton">查看身份证号</el-button>
|
<template #append v-if="formData.peopleId">
|
||||||
|
<svg-icon name="xianshi" class="icon_xianshi" v-if="cardtype" @click.stop="getPeopleIdCard(true)" />
|
||||||
|
<svg-icon name="yingchang" class="icon_xianshi" v-else @click.stop="getPeopleIdCard(false)" />
|
||||||
|
</template>
|
||||||
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="当前地址" prop="nowAddress" style="width: 100%;">
|
<el-form-item label="当前地址" prop="nowAddress" style="width: 100%;">
|
||||||
<el-input
|
<el-input
|
||||||
|
|
@ -316,7 +320,10 @@ const onclone = () => {
|
||||||
emits("close");
|
emits("close");
|
||||||
};
|
};
|
||||||
//获取身份证明文
|
//获取身份证明文
|
||||||
const getPeopleIdCard = () =>{
|
const cardtype = ref(true);
|
||||||
|
const getPeopleIdCard = (type) =>{
|
||||||
|
cardtype.value = !cardtype.value;
|
||||||
|
if(type) {
|
||||||
let params = {
|
let params = {
|
||||||
idCard:formData.value.idCard,
|
idCard:formData.value.idCard,
|
||||||
peopleId:formData.value.peopleId,
|
peopleId:formData.value.peopleId,
|
||||||
|
|
@ -326,6 +333,23 @@ const getPeopleIdCard = () =>{
|
||||||
formData.value.idCard = res.data.idCard;
|
formData.value.idCard = res.data.idCard;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
}else {
|
||||||
|
function maskIdCard(idCardNumber) {
|
||||||
|
if (idCardNumber.length !== 18) {
|
||||||
|
throw new Error('身份证号码必须是18位');
|
||||||
|
}
|
||||||
|
// 提取前六位
|
||||||
|
var firstSix = idCardNumber.substring(0, 6);
|
||||||
|
// 提取后四位
|
||||||
|
var lastFour = idCardNumber.substring(14);
|
||||||
|
// 中间用*代替
|
||||||
|
var maskedMiddle = '********'.repeat(1); // 生成8个*
|
||||||
|
// 拼接结果
|
||||||
|
return firstSix + maskedMiddle + lastFour;
|
||||||
|
}
|
||||||
|
formData.value.idCard = maskIdCard(formData.value.idCard);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getareaTree();
|
getareaTree();
|
||||||
|
|
@ -360,4 +384,15 @@ watch(
|
||||||
.idCardButton {
|
.idCardButton {
|
||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
}
|
}
|
||||||
|
.icon_xianshi {
|
||||||
|
width: 2em;
|
||||||
|
height: 2em;
|
||||||
|
position: absolute;
|
||||||
|
right: 0px;
|
||||||
|
}
|
||||||
|
:deep(.el-input-group__append) {
|
||||||
|
padding: 0 !important;
|
||||||
|
background-color:transparent !important;
|
||||||
|
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
@ -135,8 +135,12 @@
|
||||||
placeholder="请输入身份证号"
|
placeholder="请输入身份证号"
|
||||||
type="input"
|
type="input"
|
||||||
v-model="formData.idCard"
|
v-model="formData.idCard"
|
||||||
/>
|
>
|
||||||
<el-button @click="getPeopleIdCard" type="primary" round class="idCardButton">查看身份证号</el-button>
|
<template #append v-if="formData.peopleId">
|
||||||
|
<svg-icon name="xianshi" class="icon_xianshi" v-if="cardtype" @click.stop="getPeopleIdCard(true)" />
|
||||||
|
<svg-icon name="yingchang" class="icon_xianshi" v-else @click.stop="getPeopleIdCard(false)" />
|
||||||
|
</template>
|
||||||
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="当前地址" prop="nowAddress" style="width: 100%;">
|
<el-form-item label="当前地址" prop="nowAddress" style="width: 100%;">
|
||||||
|
|
@ -316,7 +320,10 @@ const onclone = () => {
|
||||||
emits("close");
|
emits("close");
|
||||||
};
|
};
|
||||||
//获取身份证明文
|
//获取身份证明文
|
||||||
const getPeopleIdCard = () =>{
|
const cardtype = ref(true);
|
||||||
|
const getPeopleIdCard = (type) =>{
|
||||||
|
cardtype.value = !cardtype.value;
|
||||||
|
if(type) {
|
||||||
let params = {
|
let params = {
|
||||||
idCard:formData.value.idCard,
|
idCard:formData.value.idCard,
|
||||||
peopleId:formData.value.peopleId,
|
peopleId:formData.value.peopleId,
|
||||||
|
|
@ -326,6 +333,23 @@ const getPeopleIdCard = () =>{
|
||||||
formData.value.idCard = res.data.idCard;
|
formData.value.idCard = res.data.idCard;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
}else {
|
||||||
|
function maskIdCard(idCardNumber) {
|
||||||
|
if (idCardNumber.length !== 18) {
|
||||||
|
throw new Error('身份证号码必须是18位');
|
||||||
|
}
|
||||||
|
// 提取前六位
|
||||||
|
var firstSix = idCardNumber.substring(0, 6);
|
||||||
|
// 提取后四位
|
||||||
|
var lastFour = idCardNumber.substring(14);
|
||||||
|
// 中间用*代替
|
||||||
|
var maskedMiddle = '********'.repeat(1); // 生成8个*
|
||||||
|
// 拼接结果
|
||||||
|
return firstSix + maskedMiddle + lastFour;
|
||||||
|
}
|
||||||
|
formData.value.idCard = maskIdCard(formData.value.idCard);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getareaTree();
|
getareaTree();
|
||||||
|
|
@ -360,4 +384,15 @@ watch(
|
||||||
.idCardButton {
|
.idCardButton {
|
||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
}
|
}
|
||||||
|
.icon_xianshi {
|
||||||
|
width: 2em;
|
||||||
|
height: 2em;
|
||||||
|
position: absolute;
|
||||||
|
right: 0px;
|
||||||
|
}
|
||||||
|
:deep(.el-input-group__append) {
|
||||||
|
padding: 0 !important;
|
||||||
|
background-color:transparent !important;
|
||||||
|
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
@ -89,7 +89,12 @@
|
||||||
placeholder="请输入身份证号"
|
placeholder="请输入身份证号"
|
||||||
type="input"
|
type="input"
|
||||||
v-model="formData.idCard"
|
v-model="formData.idCard"
|
||||||
/>
|
>
|
||||||
|
<template #append v-if="formData.domicileId">
|
||||||
|
<svg-icon name="xianshi" class="icon_xianshi" v-if="cardtype" @click.stop="getPeopleIdCard(true)" />
|
||||||
|
<svg-icon name="yingchang" class="icon_xianshi" v-else @click.stop="getPeopleIdCard(false)" />
|
||||||
|
</template>
|
||||||
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="现居地址" prop="address" style="width: 94%;">
|
<el-form-item label="现居地址" prop="address" style="width: 94%;">
|
||||||
<el-input
|
<el-input
|
||||||
|
|
@ -137,7 +142,7 @@
|
||||||
import { reactive, ref, onMounted, watch } from "vue";
|
import { reactive, ref, onMounted, watch } from "vue";
|
||||||
import { ElMessage, FormInstance, FormRules } from "element-plus";
|
import { ElMessage, FormInstance, FormRules } from "element-plus";
|
||||||
import { areaTree } from "@/api/account";
|
import { areaTree } from "@/api/account";
|
||||||
import { domicileAdd, domicileDetail } from "@/api/base";
|
import { domicileAdd, domicileDetail,domicileIdCard } from "@/api/base";
|
||||||
import useUserStore from "@/store/modules/user";
|
import useUserStore from "@/store/modules/user";
|
||||||
const userStore = useUserStore();
|
const userStore = useUserStore();
|
||||||
const user = ref(JSON.parse(userStore.userInfo));
|
const user = ref(JSON.parse(userStore.userInfo));
|
||||||
|
|
@ -164,12 +169,11 @@ let isCardId = (rule, value, callback) => {
|
||||||
if (!value) {
|
if (!value) {
|
||||||
return new Error("请输入身份证号)");
|
return new Error("请输入身份证号)");
|
||||||
} else {
|
} else {
|
||||||
const reg =
|
const reg = /^[0-9*]{15}$|^[0-9*]{17}[0-9Xx]$/;
|
||||||
/^\d{6}(18|19|20)?\d{2}(0[1-9]|1[0-2])(([0-2][1-9])|10|20|30|31)\d{3}(\d|X|x)$/;
|
|
||||||
const card = reg.test(value);
|
const card = reg.test(value);
|
||||||
if (!card) {
|
if (!card) {
|
||||||
//判断座机为12位
|
///判断是否15-18位
|
||||||
callback(new Error("身份证格式如:423024xxxx0216xxxx"));
|
callback(new Error("请输入长度为15或者18位"));
|
||||||
} else {
|
} else {
|
||||||
callback();
|
callback();
|
||||||
}
|
}
|
||||||
|
|
@ -246,34 +250,66 @@ const onclone = () => {
|
||||||
emits("close");
|
emits("close");
|
||||||
};
|
};
|
||||||
//详情获取户籍人员信息
|
//详情获取户籍人员信息
|
||||||
const detailTableData = ref([]);
|
|
||||||
const getDomicileDetail = (id) => {
|
const getDomicileDetail = (id) => {
|
||||||
domicileDetail({ domicileId: id }).then((res: any) => {
|
domicileDetail({ domicileId: id }).then((res: any) => {
|
||||||
detailTableData.value = res.peopleList;
|
formData.value = res.data;
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
//获取身份证明文
|
||||||
|
const cardtype = ref(true);
|
||||||
|
const getPeopleIdCard = (type) =>{
|
||||||
|
cardtype.value = !cardtype.value
|
||||||
|
if(type) {
|
||||||
|
let params = {
|
||||||
|
idCard:formData.value.idCard,
|
||||||
|
domicileId:formData.value.domicileId,
|
||||||
|
}
|
||||||
|
domicileIdCard(params).then((res: any) => {
|
||||||
|
if (res.data.idCard) {
|
||||||
|
formData.value.idCard = res.data.idCard;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}else {
|
||||||
|
function maskIdCard(idCardNumber) {
|
||||||
|
if (idCardNumber.length !== 18) {
|
||||||
|
throw new Error('身份证号码必须是18位');
|
||||||
|
}
|
||||||
|
// 提取前六位
|
||||||
|
var firstSix = idCardNumber.substring(0, 6);
|
||||||
|
// 提取后四位
|
||||||
|
var lastFour = idCardNumber.substring(14);
|
||||||
|
// 中间用*代替
|
||||||
|
var maskedMiddle = '********'.repeat(1); // 生成8个*
|
||||||
|
// 拼接结果
|
||||||
|
return firstSix + maskedMiddle + lastFour;
|
||||||
|
}
|
||||||
|
formData.value.idCard = maskIdCard(formData.value.idCard);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getareaTree();
|
getareaTree();
|
||||||
});
|
});
|
||||||
|
|
||||||
watch(
|
|
||||||
() => props.readonly,
|
|
||||||
(val: any) => {
|
|
||||||
if (val == true) {
|
|
||||||
setTimeout(() => {
|
|
||||||
titleName.value = "查看";
|
|
||||||
getDomicileDetail(formData.value.domicileId);
|
|
||||||
}, 300);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
);
|
|
||||||
//详情
|
//详情
|
||||||
watch(
|
watch(
|
||||||
() => props.form,
|
() => props.form,
|
||||||
(val: any) => {
|
(val: any) => {
|
||||||
titleName.value = val.domicileId ? "编辑" : "新增/迁入";
|
titleName.value = val.domicileId ? "编辑" : "新增/迁入";
|
||||||
formData.value = JSON.parse(JSON.stringify(val));
|
formData.value = JSON.parse(JSON.stringify(val));
|
||||||
|
if(val.domicileId) getDomicileDetail(formData.value.domicileId);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
</script>
|
</script>
|
||||||
<style scoped></style>
|
<style scoped>
|
||||||
|
.icon_xianshi {
|
||||||
|
width: 2em;
|
||||||
|
height: 2em;
|
||||||
|
position: absolute;
|
||||||
|
right: 0px;
|
||||||
|
}
|
||||||
|
:deep(.el-input-group__append) {
|
||||||
|
padding: 0 !important;
|
||||||
|
background-color:transparent !important;
|
||||||
|
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
@ -78,7 +78,7 @@
|
||||||
value-format="YYYY-MM-DD"
|
value-format="YYYY-MM-DD"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="类型" prop="typeId" style="width: 100%;">
|
<el-form-item label="类型" prop="typeId">
|
||||||
<el-select
|
<el-select
|
||||||
multiple
|
multiple
|
||||||
:disabled="readonly"
|
:disabled="readonly"
|
||||||
|
|
@ -94,6 +94,17 @@
|
||||||
>
|
>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="是否本地户籍" prop="isLocal">
|
||||||
|
<el-select
|
||||||
|
:disabled="readonly"
|
||||||
|
placeholder="请选择是否本地户籍"
|
||||||
|
v-model="formData.isLocal"
|
||||||
|
>
|
||||||
|
<el-option label="是" :value=1></el-option>
|
||||||
|
<el-option label="否" :value=2></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item label="工作地点" prop="workAddress" style="width: 100%;">
|
<el-form-item label="工作地点" prop="workAddress" style="width: 100%;">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="formData.workAddress"
|
v-model="formData.workAddress"
|
||||||
|
|
@ -109,8 +120,12 @@
|
||||||
placeholder="请输入身份证号"
|
placeholder="请输入身份证号"
|
||||||
type="input"
|
type="input"
|
||||||
v-model="formData.idCard"
|
v-model="formData.idCard"
|
||||||
/>
|
>
|
||||||
<el-button @click="getPeopleIdCard" type="primary" round class="idCardButton">查看身份证号</el-button>
|
<template #append v-if="formData.peopleId">
|
||||||
|
<svg-icon name="xianshi" class="icon_xianshi" v-if="cardtype" @click.stop="getPeopleIdCard(true)" />
|
||||||
|
<svg-icon name="yingchang" class="icon_xianshi" v-else @click.stop="getPeopleIdCard(false)" />
|
||||||
|
</template>
|
||||||
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="当前地址" prop="nowAddress" style="width: 100%;">
|
<el-form-item label="当前地址" prop="nowAddress" style="width: 100%;">
|
||||||
<el-input
|
<el-input
|
||||||
|
|
@ -277,7 +292,10 @@ const onclone = () => {
|
||||||
emits("close");
|
emits("close");
|
||||||
};
|
};
|
||||||
//获取身份证明文
|
//获取身份证明文
|
||||||
const getPeopleIdCard = () =>{
|
const cardtype = ref(true);
|
||||||
|
const getPeopleIdCard = (type) =>{
|
||||||
|
cardtype.value = !cardtype.value;
|
||||||
|
if(type) {
|
||||||
let params = {
|
let params = {
|
||||||
idCard:formData.value.idCard,
|
idCard:formData.value.idCard,
|
||||||
peopleId:formData.value.peopleId,
|
peopleId:formData.value.peopleId,
|
||||||
|
|
@ -287,6 +305,23 @@ const getPeopleIdCard = () =>{
|
||||||
formData.value.idCard = res.data.idCard;
|
formData.value.idCard = res.data.idCard;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
}else {
|
||||||
|
function maskIdCard(idCardNumber) {
|
||||||
|
if (idCardNumber.length !== 18) {
|
||||||
|
throw new Error('身份证号码必须是18位');
|
||||||
|
}
|
||||||
|
// 提取前六位
|
||||||
|
var firstSix = idCardNumber.substring(0, 6);
|
||||||
|
// 提取后四位
|
||||||
|
var lastFour = idCardNumber.substring(14);
|
||||||
|
// 中间用*代替
|
||||||
|
var maskedMiddle = '********'.repeat(1); // 生成8个*
|
||||||
|
// 拼接结果
|
||||||
|
return firstSix + maskedMiddle + lastFour;
|
||||||
|
}
|
||||||
|
formData.value.idCard = maskIdCard(formData.value.idCard);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getCrTypeList();
|
getCrTypeList();
|
||||||
|
|
@ -311,4 +346,15 @@ watch(
|
||||||
.idCardButton {
|
.idCardButton {
|
||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
}
|
}
|
||||||
|
.icon_xianshi {
|
||||||
|
width: 2em;
|
||||||
|
height: 2em;
|
||||||
|
position: absolute;
|
||||||
|
right: 0px;
|
||||||
|
}
|
||||||
|
:deep(.el-input-group__append) {
|
||||||
|
padding: 0 !important;
|
||||||
|
background-color:transparent !important;
|
||||||
|
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
@ -400,7 +400,7 @@ const onclone = () => {
|
||||||
const fileExport = () => {
|
const fileExport = () => {
|
||||||
const params = {
|
const params = {
|
||||||
userId:userId.value,
|
userId:userId.value,
|
||||||
areaCode:search.value.areaCode,
|
areaCode:'',
|
||||||
condition:search.value.condition,
|
condition:search.value.condition,
|
||||||
domicileState:search.value.domicileState,
|
domicileState:search.value.domicileState,
|
||||||
marriageState:search.value.marriageState,
|
marriageState:search.value.marriageState,
|
||||||
|
|
@ -408,6 +408,9 @@ const fileExport = () => {
|
||||||
startTime:'',
|
startTime:'',
|
||||||
endTime:'',
|
endTime:'',
|
||||||
}
|
}
|
||||||
|
if (search.value.areaCode) {
|
||||||
|
params.areaCode = search.value.areaCode[search.value.areaCode.length - 1];
|
||||||
|
}
|
||||||
exportFileRequest(`/admin/export/exportDomicileList`, '户籍管理统计.xlsx', params).then(res => {
|
exportFileRequest(`/admin/export/exportDomicileList`, '户籍管理统计.xlsx', params).then(res => {
|
||||||
})
|
})
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@
|
||||||
<el-form
|
<el-form
|
||||||
ref="formRef"
|
ref="formRef"
|
||||||
label-position="right"
|
label-position="right"
|
||||||
label-width="150px"
|
label-width="80px"
|
||||||
:rules="ruleForm"
|
:rules="ruleForm"
|
||||||
:model="addPostFactorForm"
|
:model="addPostFactorForm"
|
||||||
>
|
>
|
||||||
|
|
@ -21,7 +21,17 @@
|
||||||
<el-input v-model="addPostFactorForm.othname"></el-input>
|
<el-input v-model="addPostFactorForm.othname"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="性别" prop="othsex">
|
<el-form-item label="性别" prop="othsex">
|
||||||
<el-input v-model="addPostFactorForm.othsex"></el-input>
|
<el-select
|
||||||
|
placeholder="请选择"
|
||||||
|
v-model="addPostFactorForm.othsex"
|
||||||
|
>
|
||||||
|
<el-option label="男" :value=1></el-option>
|
||||||
|
<el-option label="女" :value=0></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="身份证号码" prop="idCard">
|
||||||
|
<el-input v-model="addPostFactorForm.idCard"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="民族" prop="nation">
|
<el-form-item label="民族" prop="nation">
|
||||||
<el-input v-model="addPostFactorForm.nation"></el-input>
|
<el-input v-model="addPostFactorForm.nation"></el-input>
|
||||||
|
|
|
||||||
|
|
@ -167,7 +167,9 @@
|
||||||
label="性别"
|
label="性别"
|
||||||
>
|
>
|
||||||
<template #default="item">
|
<template #default="item">
|
||||||
<span>{{ item.row.othsex ? item.row.othsex : "-" }}</span>
|
<span v-if="item.row.othsex === 0">女</span>
|
||||||
|
<span v-else-if="item.row.othsex === 1">男</span>
|
||||||
|
<span v-else> - </span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
|
|
|
||||||
|
|
@ -49,9 +49,9 @@
|
||||||
v-model="addPostFactorForm.content"
|
v-model="addPostFactorForm.content"
|
||||||
></el-input>
|
></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="时间:" prop="createTimeString" style="width: 100%;">
|
<el-form-item label="时间:" prop="createTime" style="width: 100%;">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="addPostFactorForm.createTimeString"
|
v-model="addPostFactorForm.createTime"
|
||||||
type="date"
|
type="date"
|
||||||
placeholder="请选择时间"
|
placeholder="请选择时间"
|
||||||
format="YYYY-MM-DD"
|
format="YYYY-MM-DD"
|
||||||
|
|
|
||||||
|
|
@ -101,7 +101,7 @@
|
||||||
>
|
>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
prop="modifyTimeString"
|
prop="modifyTime"
|
||||||
:resizable="true"
|
:resizable="true"
|
||||||
align="center"
|
align="center"
|
||||||
label="上报时间"
|
label="上报时间"
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,10 @@
|
||||||
<svg-icon name="refurbish" class="icon" />
|
<svg-icon name="refurbish" class="icon" />
|
||||||
<span>刷新</span>
|
<span>刷新</span>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="tool-item" @click="fileExport">
|
||||||
|
<svg-icon name="export" class="icon" />
|
||||||
|
<span>导出动态</span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="label-select filter-tab">
|
<div class="label-select filter-tab">
|
||||||
<label>工作类型</label>
|
<label>工作类型</label>
|
||||||
|
|
@ -63,6 +67,16 @@
|
||||||
</el-option>
|
</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="label-select filter-tab">
|
||||||
|
<label>开始时间</label>
|
||||||
|
<el-date-picker v-model="search.startTime" type="date" placeholder="选择开始时间" format="YYYY/MM/DD"
|
||||||
|
value-format="YYYY-MM-DD" @change="getList" />
|
||||||
|
</div>
|
||||||
|
<div class="label-select filter-tab">
|
||||||
|
<label>j结束时间</label>
|
||||||
|
<el-date-picker v-model="search.endTime" type="date" placeholder="选择结束时间" format="YYYY/MM/DD"
|
||||||
|
value-format="YYYY-MM-DD" @change="getList" />
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- 表格 -->
|
<!-- 表格 -->
|
||||||
|
|
@ -166,6 +180,7 @@
|
||||||
<script lang='ts' setup>
|
<script lang='ts' setup>
|
||||||
import { onMounted, reactive, ref } from "vue";
|
import { onMounted, reactive, ref } from "vue";
|
||||||
import { receiveWork, wkAllFinishStats } from "@/api/demands";
|
import { receiveWork, wkAllFinishStats } from "@/api/demands";
|
||||||
|
import { exportFileRequest } from "@/api/export";
|
||||||
import Add from "./add.vue";
|
import Add from "./add.vue";
|
||||||
import { useRouter } from "vue-router";
|
import { useRouter } from "vue-router";
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
|
@ -178,6 +193,8 @@ const search = ref({
|
||||||
condition: "",
|
condition: "",
|
||||||
typeId:'',
|
typeId:'',
|
||||||
state:1,
|
state:1,
|
||||||
|
startTime:"",
|
||||||
|
endTime:'',
|
||||||
});
|
});
|
||||||
const currentPage = ref(1);
|
const currentPage = ref(1);
|
||||||
const pageSize = ref(10);
|
const pageSize = ref(10);
|
||||||
|
|
@ -212,10 +229,11 @@ const getList = () => {
|
||||||
condition: search.value.condition,
|
condition: search.value.condition,
|
||||||
userId: userId.value,
|
userId: userId.value,
|
||||||
typeId:search.value.typeId,
|
typeId:search.value.typeId,
|
||||||
state:search.value.state
|
state:search.value.state,
|
||||||
|
startTime: search.value.startTime,
|
||||||
|
endTime: search.value.endTime,
|
||||||
};
|
};
|
||||||
receiveWork(params).then((res: any) => {
|
receiveWork(params).then((res: any) => {
|
||||||
console.log(res.data.list);
|
|
||||||
tableData.value = res.data.list;
|
tableData.value = res.data.list;
|
||||||
total.value = res.data.total;
|
total.value = res.data.total;
|
||||||
tableDataloading.value = false;
|
tableDataloading.value = false;
|
||||||
|
|
@ -262,6 +280,15 @@ const determineEme = (value)=>{
|
||||||
}
|
}
|
||||||
getList();
|
getList();
|
||||||
}
|
}
|
||||||
|
const fileExport = () => {
|
||||||
|
const params = {
|
||||||
|
startTime: search.value.startTime,
|
||||||
|
endTime: search.value.endTime,
|
||||||
|
|
||||||
|
}
|
||||||
|
exportFileRequest(`/admin/export/exportDynamic`, '工作动态.zip', params).then(res => {
|
||||||
|
})
|
||||||
|
};
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getWkTypes();
|
getWkTypes();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,35 @@
|
||||||
v-model="addMessageForm.title"
|
v-model="addMessageForm.title"
|
||||||
></el-input>
|
></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item label="所属地区:" prop="areaCode">
|
||||||
|
<el-cascader
|
||||||
|
v-model="addMessageForm.areaCode"
|
||||||
|
placeholder="请选择所属地区"
|
||||||
|
@change="handleAreaChange"
|
||||||
|
:options="orgList"
|
||||||
|
:props="{
|
||||||
|
checkStrictly: true,
|
||||||
|
label: 'orgname',
|
||||||
|
value: 'orgcode',
|
||||||
|
}"
|
||||||
|
clearable
|
||||||
|
></el-cascader>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="是否公开内容:" prop="isUnlimited">
|
||||||
|
<el-select
|
||||||
|
v-model="addMessageForm.isUnlimited"
|
||||||
|
clearable
|
||||||
|
placeholder="请选择是否公开内容"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in typelist"
|
||||||
|
:key="item.value"
|
||||||
|
:label="item.lable"
|
||||||
|
:value="item.value"
|
||||||
|
>
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item label="内容:" prop="content" style="width: 100%;">
|
<el-form-item label="内容:" prop="content" style="width: 100%;">
|
||||||
<div class="qedit">
|
<div class="qedit">
|
||||||
<QuillEditor
|
<QuillEditor
|
||||||
|
|
@ -62,6 +91,7 @@ import useUserStore from "@/store/modules/user";
|
||||||
import { getYears, getUUID, FileType } from "@/utils/common";
|
import { getYears, getUUID, FileType } from "@/utils/common";
|
||||||
import { ElMessage, FormInstance, FormRules } from "element-plus";
|
import { ElMessage, FormInstance, FormRules } from "element-plus";
|
||||||
import { uploadFile, getFile, delFile } from "@/api/file";
|
import { uploadFile, getFile, delFile } from "@/api/file";
|
||||||
|
import { areaTree } from "@/api/account";
|
||||||
import { publicContentSave, publicContentDetail } from "@/api/Sys";
|
import { publicContentSave, publicContentDetail } from "@/api/Sys";
|
||||||
const formRef = ref<FormInstance>();
|
const formRef = ref<FormInstance>();
|
||||||
|
|
||||||
|
|
@ -71,6 +101,11 @@ const userId = ref(user.value.userId);
|
||||||
const uuid = ref("");
|
const uuid = ref("");
|
||||||
const ruleForm = reactive<FormRules>({
|
const ruleForm = reactive<FormRules>({
|
||||||
title: [{ required: true, message: "请输入标题", trigger: "blur" }],
|
title: [{ required: true, message: "请输入标题", trigger: "blur" }],
|
||||||
|
content: [{ required: true, message: "请输入公开内容", trigger: "blur" }],
|
||||||
|
areaCode: [
|
||||||
|
{ required: true, message: "请选择所属地区", trigger: "change" },
|
||||||
|
],
|
||||||
|
coverImg:[{ required: true, message: "请上传封面", trigger: "blur" }]
|
||||||
});
|
});
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
|
|
@ -85,6 +120,10 @@ const props = defineProps({
|
||||||
},
|
},
|
||||||
id: String,
|
id: String,
|
||||||
});
|
});
|
||||||
|
const typelist = ref([
|
||||||
|
{lable:'是',value:1},
|
||||||
|
{lable:'否',value:2},
|
||||||
|
])
|
||||||
const addMessageForm = ref<any>({ content: "",title:"" });
|
const addMessageForm = ref<any>({ content: "",title:"" });
|
||||||
const emits = defineEmits(["close", "onSubmit"]);
|
const emits = defineEmits(["close", "onSubmit"]);
|
||||||
//富文本
|
//富文本
|
||||||
|
|
@ -92,6 +131,7 @@ const msgContent = ref('')
|
||||||
const getMsg = (val) => {
|
const getMsg = (val) => {
|
||||||
// addMessageForm.content = val;
|
// addMessageForm.content = val;
|
||||||
msgContent.value = val;
|
msgContent.value = val;
|
||||||
|
addMessageForm.value.content = msgContent.value;
|
||||||
};
|
};
|
||||||
|
|
||||||
//保存并退出
|
//保存并退出
|
||||||
|
|
@ -102,7 +142,16 @@ const handleSubmit = () => {
|
||||||
...addMessageForm.value,
|
...addMessageForm.value,
|
||||||
coverPath:fileList.value[0].filepath,
|
coverPath:fileList.value[0].filepath,
|
||||||
publicContentId:addMessageForm.value.publicContentId||uuid.value,
|
publicContentId:addMessageForm.value.publicContentId||uuid.value,
|
||||||
content : msgContent.value
|
content : msgContent.value,
|
||||||
|
areaCode: "",
|
||||||
|
}
|
||||||
|
if (addMessageForm.value.areaCode instanceof Array) {
|
||||||
|
params.areaCode =
|
||||||
|
addMessageForm.value.areaCode[
|
||||||
|
addMessageForm.value.areaCode.length - 1
|
||||||
|
];
|
||||||
|
} else {
|
||||||
|
params.areaCode = addMessageForm.value.areaCode;
|
||||||
}
|
}
|
||||||
publicContentSave(params).then((res: any) => {
|
publicContentSave(params).then((res: any) => {
|
||||||
if (res.code == 1) {
|
if (res.code == 1) {
|
||||||
|
|
@ -126,12 +175,14 @@ const baseUrl = ref(import.meta.env.VITE_UPLOAD_URL);
|
||||||
*/
|
*/
|
||||||
const updateFile = (files: any) => {
|
const updateFile = (files: any) => {
|
||||||
fileList.value = files;
|
fileList.value = files;
|
||||||
|
addMessageForm.value.coverImg = files[0].filepath;
|
||||||
};
|
};
|
||||||
//图片查询
|
//图片查询
|
||||||
const getFiles = (FileType) => {
|
const getFiles = (FileType) => {
|
||||||
getFile(addMessageForm.value.publicContentId || uuid.value, FileType).then(
|
getFile(addMessageForm.value.publicContentId || uuid.value, FileType).then(
|
||||||
(res: any) => {
|
(res: any) => {
|
||||||
fileList.value = res.data;
|
fileList.value = res.data;
|
||||||
|
addMessageForm.value.coverImg = res.data[0].filepath;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
@ -148,6 +199,13 @@ const getNoticeDetail = (id) =>{
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
//获取地区
|
||||||
|
const orgList = ref([]);
|
||||||
|
const getareaTree = () => {
|
||||||
|
areaTree(userId.value).then((res: any) => {
|
||||||
|
orgList.value = res.data;
|
||||||
|
});
|
||||||
|
};
|
||||||
//关闭弹窗
|
//关闭弹窗
|
||||||
const onclone = () => {
|
const onclone = () => {
|
||||||
emits("close");
|
emits("close");
|
||||||
|
|
@ -166,7 +224,9 @@ watch(
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
onMounted(() => {});
|
onMounted(() => {
|
||||||
|
getareaTree()
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
|
|
||||||
|
|
@ -41,6 +41,36 @@
|
||||||
placeholder="请输入"
|
placeholder="请输入"
|
||||||
v-model="detailForm.title"
|
v-model="detailForm.title"
|
||||||
></el-input>
|
></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="所属地区:" prop="areaCode">
|
||||||
|
<el-cascader
|
||||||
|
v-model="detailForm.areaCode"
|
||||||
|
placeholder="请选择所属地区"
|
||||||
|
:options="orgList"
|
||||||
|
:props="{
|
||||||
|
checkStrictly: true,
|
||||||
|
label: 'orgname',
|
||||||
|
value: 'orgcode',
|
||||||
|
}"
|
||||||
|
clearable
|
||||||
|
:disabled="formEnable"
|
||||||
|
></el-cascader>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="是否公开内容:" prop="isUnlimited">
|
||||||
|
<el-select
|
||||||
|
v-model="detailForm.isUnlimited"
|
||||||
|
clearable
|
||||||
|
:disabled="formEnable"
|
||||||
|
placeholder="请选择是否公开内容"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in typelist"
|
||||||
|
:key="item.value"
|
||||||
|
:label="item.lable"
|
||||||
|
:value="item.value"
|
||||||
|
>
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="内容:" prop="content" style="width: 100%;">
|
<el-form-item label="内容:" prop="content" style="width: 100%;">
|
||||||
<div class="qedit">
|
<div class="qedit">
|
||||||
|
|
@ -129,6 +159,7 @@
|
||||||
import { onMounted, reactive, ref } from "vue";
|
import { onMounted, reactive, ref } from "vue";
|
||||||
import { ElMessage, FormInstance, FormRules, ElMessageBox } from "element-plus";
|
import { ElMessage, FormInstance, FormRules, ElMessageBox } from "element-plus";
|
||||||
import { uploadFile, getFile, delFile } from "@/api/file";
|
import { uploadFile, getFile, delFile } from "@/api/file";
|
||||||
|
import { areaTree } from "@/api/account";
|
||||||
import { publicContentSave, publicContentDetail, publicCheckList } from "@/api/Sys";
|
import { publicContentSave, publicContentDetail, publicCheckList } from "@/api/Sys";
|
||||||
import { FileType } from "@/utils/common";
|
import { FileType } from "@/utils/common";
|
||||||
import { useRoute } from "vue-router";
|
import { useRoute } from "vue-router";
|
||||||
|
|
@ -147,6 +178,10 @@ const formRef = ref<FormInstance>();
|
||||||
const ruleForm = reactive<FormRules>({
|
const ruleForm = reactive<FormRules>({
|
||||||
title: [{ required: true, message: "请输入标题", trigger: "blur" }],
|
title: [{ required: true, message: "请输入标题", trigger: "blur" }],
|
||||||
});
|
});
|
||||||
|
const typelist = ref([
|
||||||
|
{lable:'是',value:1},
|
||||||
|
{lable:'否',value:2},
|
||||||
|
])
|
||||||
//id
|
//id
|
||||||
const domicileId = ref('');
|
const domicileId = ref('');
|
||||||
//人员信息
|
//人员信息
|
||||||
|
|
@ -248,11 +283,18 @@ const getMsg = (val) => {
|
||||||
const refurbish = (id) => {
|
const refurbish = (id) => {
|
||||||
getPublicContentDetail(id);
|
getPublicContentDetail(id);
|
||||||
};
|
};
|
||||||
|
//获取地区
|
||||||
|
const orgList = ref([]);
|
||||||
|
const getareaTree = () => {
|
||||||
|
areaTree(userId.value).then((res: any) => {
|
||||||
|
orgList.value = res.data;
|
||||||
|
});
|
||||||
|
};
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
domicileId.value = route.query.id || "";
|
domicileId.value = route.query.id || "";
|
||||||
refurbish(domicileId.value);
|
refurbish(domicileId.value);
|
||||||
getList();
|
getList();
|
||||||
|
getareaTree();
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
|
|
||||||
|
|
@ -107,7 +107,7 @@
|
||||||
<script setup lang="ts" >
|
<script setup lang="ts" >
|
||||||
import { reactive, ref, onMounted, watch, getCurrentInstance } from "vue";
|
import { reactive, ref, onMounted, watch, getCurrentInstance } from "vue";
|
||||||
import useUserStore from "@/store/modules/user";
|
import useUserStore from "@/store/modules/user";
|
||||||
import { ElMessage, FormInstance, FormRules } from "element-plus";
|
import { ElMessage, FormInstance, FormRules, valueEquals } from "element-plus";
|
||||||
import type { UploadUserFile } from "element-plus";
|
import type { UploadUserFile } from "element-plus";
|
||||||
import { getYears, getUUID, FileType } from "@/utils/common";
|
import { getYears, getUUID, FileType } from "@/utils/common";
|
||||||
import { uploadFile, getFile, delFile } from "@/api/file";
|
import { uploadFile, getFile, delFile } from "@/api/file";
|
||||||
|
|
@ -181,6 +181,7 @@ const handleSubmit = () => {
|
||||||
userId: form.value.userId || userId.value,
|
userId: form.value.userId || userId.value,
|
||||||
startTime: form.value.time[0],
|
startTime: form.value.time[0],
|
||||||
endTime: form.value.time[1],
|
endTime: form.value.time[1],
|
||||||
|
filePath:afterList.value.length > 0 ? afterList.value[0].filepath:'',
|
||||||
};
|
};
|
||||||
wkDynamicsAdd(params).then((res: any) => {
|
wkDynamicsAdd(params).then((res: any) => {
|
||||||
if (res.code == 1) {
|
if (res.code == 1) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user