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_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_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 = 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="请输入身份证号"
|
||||
type="input"
|
||||
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 label="当前地址" prop="nowAddress" style="width: 100%;">
|
||||
<el-input
|
||||
|
|
@ -316,16 +320,36 @@ const onclone = () => {
|
|||
emits("close");
|
||||
};
|
||||
//获取身份证明文
|
||||
const getPeopleIdCard = () =>{
|
||||
let params = {
|
||||
idCard:formData.value.idCard,
|
||||
peopleId:formData.value.peopleId,
|
||||
}
|
||||
peopleIdCard(params).then((res: any) => {
|
||||
if (res.data.idCard) {
|
||||
formData.value.idCard = res.data.idCard;
|
||||
const cardtype = ref(true);
|
||||
const getPeopleIdCard = (type) =>{
|
||||
cardtype.value = !cardtype.value;
|
||||
if(type) {
|
||||
let params = {
|
||||
idCard:formData.value.idCard,
|
||||
peopleId:formData.value.peopleId,
|
||||
}
|
||||
});
|
||||
peopleIdCard(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(() => {
|
||||
getareaTree();
|
||||
|
|
@ -360,4 +384,15 @@ watch(
|
|||
.idCardButton {
|
||||
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>
|
||||
|
|
@ -135,8 +135,12 @@
|
|||
placeholder="请输入身份证号"
|
||||
type="input"
|
||||
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 label="当前地址" prop="nowAddress" style="width: 100%;">
|
||||
|
|
@ -316,16 +320,36 @@ const onclone = () => {
|
|||
emits("close");
|
||||
};
|
||||
//获取身份证明文
|
||||
const getPeopleIdCard = () =>{
|
||||
let params = {
|
||||
idCard:formData.value.idCard,
|
||||
peopleId:formData.value.peopleId,
|
||||
}
|
||||
peopleIdCard(params).then((res: any) => {
|
||||
if (res.data.idCard) {
|
||||
formData.value.idCard = res.data.idCard;
|
||||
const cardtype = ref(true);
|
||||
const getPeopleIdCard = (type) =>{
|
||||
cardtype.value = !cardtype.value;
|
||||
if(type) {
|
||||
let params = {
|
||||
idCard:formData.value.idCard,
|
||||
peopleId:formData.value.peopleId,
|
||||
}
|
||||
});
|
||||
peopleIdCard(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(() => {
|
||||
getareaTree();
|
||||
|
|
@ -360,4 +384,15 @@ watch(
|
|||
.idCardButton {
|
||||
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>
|
||||
|
|
@ -89,7 +89,12 @@
|
|||
placeholder="请输入身份证号"
|
||||
type="input"
|
||||
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 label="现居地址" prop="address" style="width: 94%;">
|
||||
<el-input
|
||||
|
|
@ -137,7 +142,7 @@
|
|||
import { reactive, ref, onMounted, watch } from "vue";
|
||||
import { ElMessage, FormInstance, FormRules } from "element-plus";
|
||||
import { areaTree } from "@/api/account";
|
||||
import { domicileAdd, domicileDetail } from "@/api/base";
|
||||
import { domicileAdd, domicileDetail,domicileIdCard } from "@/api/base";
|
||||
import useUserStore from "@/store/modules/user";
|
||||
const userStore = useUserStore();
|
||||
const user = ref(JSON.parse(userStore.userInfo));
|
||||
|
|
@ -164,12 +169,11 @@ let isCardId = (rule, value, callback) => {
|
|||
if (!value) {
|
||||
return new Error("请输入身份证号)");
|
||||
} else {
|
||||
const reg =
|
||||
/^\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 reg = /^[0-9*]{15}$|^[0-9*]{17}[0-9Xx]$/;
|
||||
const card = reg.test(value);
|
||||
if (!card) {
|
||||
//判断座机为12位
|
||||
callback(new Error("身份证格式如:423024xxxx0216xxxx"));
|
||||
///判断是否15-18位
|
||||
callback(new Error("请输入长度为15或者18位"));
|
||||
} else {
|
||||
callback();
|
||||
}
|
||||
|
|
@ -246,34 +250,66 @@ const onclone = () => {
|
|||
emits("close");
|
||||
};
|
||||
//详情获取户籍人员信息
|
||||
const detailTableData = ref([]);
|
||||
const getDomicileDetail = (id) => {
|
||||
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(() => {
|
||||
getareaTree();
|
||||
});
|
||||
|
||||
watch(
|
||||
() => props.readonly,
|
||||
(val: any) => {
|
||||
if (val == true) {
|
||||
setTimeout(() => {
|
||||
titleName.value = "查看";
|
||||
getDomicileDetail(formData.value.domicileId);
|
||||
}, 300);
|
||||
}
|
||||
}
|
||||
);
|
||||
//详情
|
||||
watch(
|
||||
() => props.form,
|
||||
(val: any) => {
|
||||
titleName.value = val.domicileId ? "编辑" : "新增/迁入";
|
||||
formData.value = JSON.parse(JSON.stringify(val));
|
||||
if(val.domicileId) getDomicileDetail(formData.value.domicileId);
|
||||
}
|
||||
);
|
||||
</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"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="类型" prop="typeId" style="width: 100%;">
|
||||
<el-form-item label="类型" prop="typeId">
|
||||
<el-select
|
||||
multiple
|
||||
:disabled="readonly"
|
||||
|
|
@ -94,6 +94,17 @@
|
|||
>
|
||||
</el-select>
|
||||
</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-input
|
||||
v-model="formData.workAddress"
|
||||
|
|
@ -109,8 +120,12 @@
|
|||
placeholder="请输入身份证号"
|
||||
type="input"
|
||||
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 label="当前地址" prop="nowAddress" style="width: 100%;">
|
||||
<el-input
|
||||
|
|
@ -277,16 +292,36 @@ const onclone = () => {
|
|||
emits("close");
|
||||
};
|
||||
//获取身份证明文
|
||||
const getPeopleIdCard = () =>{
|
||||
let params = {
|
||||
idCard:formData.value.idCard,
|
||||
peopleId:formData.value.peopleId,
|
||||
}
|
||||
peopleIdCard(params).then((res: any) => {
|
||||
if (res.data.idCard) {
|
||||
formData.value.idCard = res.data.idCard;
|
||||
const cardtype = ref(true);
|
||||
const getPeopleIdCard = (type) =>{
|
||||
cardtype.value = !cardtype.value;
|
||||
if(type) {
|
||||
let params = {
|
||||
idCard:formData.value.idCard,
|
||||
peopleId:formData.value.peopleId,
|
||||
}
|
||||
});
|
||||
peopleIdCard(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(() => {
|
||||
getCrTypeList();
|
||||
|
|
@ -311,4 +346,15 @@ watch(
|
|||
.idCardButton {
|
||||
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>
|
||||
|
|
@ -400,7 +400,7 @@ const onclone = () => {
|
|||
const fileExport = () => {
|
||||
const params = {
|
||||
userId:userId.value,
|
||||
areaCode:search.value.areaCode,
|
||||
areaCode:'',
|
||||
condition:search.value.condition,
|
||||
domicileState:search.value.domicileState,
|
||||
marriageState:search.value.marriageState,
|
||||
|
|
@ -408,6 +408,9 @@ const fileExport = () => {
|
|||
startTime:'',
|
||||
endTime:'',
|
||||
}
|
||||
if (search.value.areaCode) {
|
||||
params.areaCode = search.value.areaCode[search.value.areaCode.length - 1];
|
||||
}
|
||||
exportFileRequest(`/admin/export/exportDomicileList`, '户籍管理统计.xlsx', params).then(res => {
|
||||
})
|
||||
};
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
<el-form
|
||||
ref="formRef"
|
||||
label-position="right"
|
||||
label-width="150px"
|
||||
label-width="80px"
|
||||
:rules="ruleForm"
|
||||
:model="addPostFactorForm"
|
||||
>
|
||||
|
|
@ -21,7 +21,17 @@
|
|||
<el-input v-model="addPostFactorForm.othname"></el-input>
|
||||
</el-form-item>
|
||||
<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 label="民族" prop="nation">
|
||||
<el-input v-model="addPostFactorForm.nation"></el-input>
|
||||
|
|
|
|||
|
|
@ -167,7 +167,9 @@
|
|||
label="性别"
|
||||
>
|
||||
<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>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
|
|
|
|||
|
|
@ -49,9 +49,9 @@
|
|||
v-model="addPostFactorForm.content"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="时间:" prop="createTimeString" style="width: 100%;">
|
||||
<el-form-item label="时间:" prop="createTime" style="width: 100%;">
|
||||
<el-date-picker
|
||||
v-model="addPostFactorForm.createTimeString"
|
||||
v-model="addPostFactorForm.createTime"
|
||||
type="date"
|
||||
placeholder="请选择时间"
|
||||
format="YYYY-MM-DD"
|
||||
|
|
|
|||
|
|
@ -101,7 +101,7 @@
|
|||
>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="modifyTimeString"
|
||||
prop="modifyTime"
|
||||
:resizable="true"
|
||||
align="center"
|
||||
label="上报时间"
|
||||
|
|
|
|||
|
|
@ -28,6 +28,10 @@
|
|||
<svg-icon name="refurbish" class="icon" />
|
||||
<span>刷新</span>
|
||||
</div>
|
||||
<div class="tool-item" @click="fileExport">
|
||||
<svg-icon name="export" class="icon" />
|
||||
<span>导出动态</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="label-select filter-tab">
|
||||
<label>工作类型</label>
|
||||
|
|
@ -63,6 +67,16 @@
|
|||
</el-option>
|
||||
</el-select>
|
||||
</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>
|
||||
<!-- 表格 -->
|
||||
|
|
@ -166,6 +180,7 @@
|
|||
<script lang='ts' setup>
|
||||
import { onMounted, reactive, ref } from "vue";
|
||||
import { receiveWork, wkAllFinishStats } from "@/api/demands";
|
||||
import { exportFileRequest } from "@/api/export";
|
||||
import Add from "./add.vue";
|
||||
import { useRouter } from "vue-router";
|
||||
const router = useRouter();
|
||||
|
|
@ -178,6 +193,8 @@ const search = ref({
|
|||
condition: "",
|
||||
typeId:'',
|
||||
state:1,
|
||||
startTime:"",
|
||||
endTime:'',
|
||||
});
|
||||
const currentPage = ref(1);
|
||||
const pageSize = ref(10);
|
||||
|
|
@ -212,10 +229,11 @@ const getList = () => {
|
|||
condition: search.value.condition,
|
||||
userId: userId.value,
|
||||
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) => {
|
||||
console.log(res.data.list);
|
||||
tableData.value = res.data.list;
|
||||
total.value = res.data.total;
|
||||
tableDataloading.value = false;
|
||||
|
|
@ -262,6 +280,15 @@ const determineEme = (value)=>{
|
|||
}
|
||||
getList();
|
||||
}
|
||||
const fileExport = () => {
|
||||
const params = {
|
||||
startTime: search.value.startTime,
|
||||
endTime: search.value.endTime,
|
||||
|
||||
}
|
||||
exportFileRequest(`/admin/export/exportDynamic`, '工作动态.zip', params).then(res => {
|
||||
})
|
||||
};
|
||||
onMounted(() => {
|
||||
getWkTypes();
|
||||
|
||||
|
|
|
|||
|
|
@ -27,6 +27,35 @@
|
|||
v-model="addMessageForm.title"
|
||||
></el-input>
|
||||
</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%;">
|
||||
<div class="qedit">
|
||||
<QuillEditor
|
||||
|
|
@ -62,6 +91,7 @@ import useUserStore from "@/store/modules/user";
|
|||
import { getYears, getUUID, FileType } from "@/utils/common";
|
||||
import { ElMessage, FormInstance, FormRules } from "element-plus";
|
||||
import { uploadFile, getFile, delFile } from "@/api/file";
|
||||
import { areaTree } from "@/api/account";
|
||||
import { publicContentSave, publicContentDetail } from "@/api/Sys";
|
||||
const formRef = ref<FormInstance>();
|
||||
|
||||
|
|
@ -71,6 +101,11 @@ const userId = ref(user.value.userId);
|
|||
const uuid = ref("");
|
||||
const ruleForm = reactive<FormRules>({
|
||||
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({
|
||||
|
|
@ -85,6 +120,10 @@ const props = defineProps({
|
|||
},
|
||||
id: String,
|
||||
});
|
||||
const typelist = ref([
|
||||
{lable:'是',value:1},
|
||||
{lable:'否',value:2},
|
||||
])
|
||||
const addMessageForm = ref<any>({ content: "",title:"" });
|
||||
const emits = defineEmits(["close", "onSubmit"]);
|
||||
//富文本
|
||||
|
|
@ -92,6 +131,7 @@ const msgContent = ref('')
|
|||
const getMsg = (val) => {
|
||||
// addMessageForm.content = val;
|
||||
msgContent.value = val;
|
||||
addMessageForm.value.content = msgContent.value;
|
||||
};
|
||||
|
||||
//保存并退出
|
||||
|
|
@ -102,7 +142,16 @@ const handleSubmit = () => {
|
|||
...addMessageForm.value,
|
||||
coverPath:fileList.value[0].filepath,
|
||||
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) => {
|
||||
if (res.code == 1) {
|
||||
|
|
@ -126,12 +175,14 @@ const baseUrl = ref(import.meta.env.VITE_UPLOAD_URL);
|
|||
*/
|
||||
const updateFile = (files: any) => {
|
||||
fileList.value = files;
|
||||
addMessageForm.value.coverImg = files[0].filepath;
|
||||
};
|
||||
//图片查询
|
||||
const getFiles = (FileType) => {
|
||||
getFile(addMessageForm.value.publicContentId || uuid.value, FileType).then(
|
||||
(res: any) => {
|
||||
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 = () => {
|
||||
emits("close");
|
||||
|
|
@ -166,7 +224,9 @@ watch(
|
|||
}
|
||||
);
|
||||
|
||||
onMounted(() => {});
|
||||
onMounted(() => {
|
||||
getareaTree()
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
|
|
|||
|
|
@ -42,6 +42,36 @@
|
|||
v-model="detailForm.title"
|
||||
></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 label="内容:" prop="content" style="width: 100%;">
|
||||
<div class="qedit">
|
||||
<QuillEditor
|
||||
|
|
@ -129,6 +159,7 @@
|
|||
import { onMounted, reactive, ref } from "vue";
|
||||
import { ElMessage, FormInstance, FormRules, ElMessageBox } from "element-plus";
|
||||
import { uploadFile, getFile, delFile } from "@/api/file";
|
||||
import { areaTree } from "@/api/account";
|
||||
import { publicContentSave, publicContentDetail, publicCheckList } from "@/api/Sys";
|
||||
import { FileType } from "@/utils/common";
|
||||
import { useRoute } from "vue-router";
|
||||
|
|
@ -147,6 +178,10 @@ const formRef = ref<FormInstance>();
|
|||
const ruleForm = reactive<FormRules>({
|
||||
title: [{ required: true, message: "请输入标题", trigger: "blur" }],
|
||||
});
|
||||
const typelist = ref([
|
||||
{lable:'是',value:1},
|
||||
{lable:'否',value:2},
|
||||
])
|
||||
//id
|
||||
const domicileId = ref('');
|
||||
//人员信息
|
||||
|
|
@ -248,11 +283,18 @@ const getMsg = (val) => {
|
|||
const refurbish = (id) => {
|
||||
getPublicContentDetail(id);
|
||||
};
|
||||
|
||||
//获取地区
|
||||
const orgList = ref([]);
|
||||
const getareaTree = () => {
|
||||
areaTree(userId.value).then((res: any) => {
|
||||
orgList.value = res.data;
|
||||
});
|
||||
};
|
||||
onMounted(() => {
|
||||
domicileId.value = route.query.id || "";
|
||||
refurbish(domicileId.value);
|
||||
getList();
|
||||
getareaTree();
|
||||
});
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
|
|
|
|||
|
|
@ -107,7 +107,7 @@
|
|||
<script setup lang="ts" >
|
||||
import { reactive, ref, onMounted, watch, getCurrentInstance } from "vue";
|
||||
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 { getYears, getUUID, FileType } from "@/utils/common";
|
||||
import { uploadFile, getFile, delFile } from "@/api/file";
|
||||
|
|
@ -181,6 +181,7 @@ const handleSubmit = () => {
|
|||
userId: form.value.userId || userId.value,
|
||||
startTime: form.value.time[0],
|
||||
endTime: form.value.time[1],
|
||||
filePath:afterList.value.length > 0 ? afterList.value[0].filepath:'',
|
||||
};
|
||||
wkDynamicsAdd(params).then((res: any) => {
|
||||
if (res.code == 1) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user