Commit b530f5cb authored by 赵啸非's avatar 赵啸非

Merge remote-tracking branch 'origin/master'

parents 8970f5ba ea7ab5e1
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
<link rel="icon" href="<%= BASE_URL %>favicon.ico" />
<!-- <title><%= process.env.VUE_APP_NAME %></title> -->
<title></title>
<!-- require cdn assets css -->
<% for (var i in htmlWebpackPlugin.options.cdn && htmlWebpackPlugin.options.cdn.css) { %>
<link rel="stylesheet" href="<%= htmlWebpackPlugin.options.cdn.css[i] %>" />
<% } %>
<style>
@font-face {
font-family: Source Han Sans CN;
src: url("./SourceHanSansSC-Regular-2.otf");
}
</style>
</head>
</head>
<body>
<body>
<noscript>
<strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
<strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work
properly without JavaScript enabled. Please enable it to
continue.</strong>
</noscript>
<div id="popContainer">
<div id="app"></div>
......@@ -25,5 +34,6 @@
<script type="text/javascript" src="<%= htmlWebpackPlugin.options.cdn.js[i] %>"></script>
<% } %>
<!-- built files will be auto injected -->
</body>
</body>
</html>
\ No newline at end of file
<template>
<div class="y-button" :style="{ '--w': width + 'px' }">
<button
type="button"
:style="{ '--w': width + 'px' }"
:class="{ animating: active, active: value }"
@click="clickHandler"
@animationend="animationend"
>
<span>
<b></b>
<svg viewBox="-5.5 -5.5 71 71" id="circle">
<circle
cx="30"
cy="30"
r="30"
stroke="white"
stroke-width="11"
fill="transparent"
></circle>
</svg>
</span>
</button>
<div :class="['text', { active: value }]">
<!-- <span class="on">
<span>
{{ activeText }}
</span>
</span>
<span class="off">
<span>
{{ unActiveText }}
</span>
</span> -->
{{ value ? activeText : unActiveText }}
</div>
</div>
</template>
<script>
export default {
model: {
prop: "checked",
event: "change",
},
props: {
width: {
type: Number,
default: 84,
},
checked: {
required: true,
},
activeText: {
default: "ON",
},
unActiveText: {
default: "OFF",
},
},
data() {
return {
active: false,
};
},
computed: {
value() {
return this.checked === 1 || this.checked === "1";
},
},
methods: {
clickHandler() {
this.active = true;
},
animationend() {
this.active = false;
this.$emit("change", this.checked ? 0 : 1);
},
},
};
</script>
<style lang="less" scoped>
@keyframes c {
to {
transform: none;
}
}
.y-button {
--timing: cubic-bezier(0.645, 0.045, 0.355, 1);
--primary: #f4f7f5;
width: var(--w);
button {
--bg: rgb(var(--rgb));
--bga: rgba(var(--rgb), 0.4);
/* Safari fix */
-webkit-appearance: none;
border: none;
font-size: 100%;
width: var(--w);
height: var(--w);
background: var(--bg);
box-shadow: 0 3px 12px 2px var(--bga);
border-radius: 50%;
position: relative;
overflow: hidden;
cursor: pointer;
transition: 0.1s transform, 0.3s box-shadow;
will-change: transform, box-shadow;
backface-visibility: hidden;
}
button > * {
pointer-events: none;
}
button:focus {
outline: none;
}
button:active {
transform: scale(0.97);
}
button:after {
--bg: rgb(var(--rgb));
content: "";
position: absolute;
top: -15%;
left: -15%;
width: 200%;
height: 200%;
background: var(--bg);
border-radius: inherit;
transform: translate(5%, 5%) scale(0.03);
pointer-events: none;
}
button.animating:after {
animation: c 0.5s cubic-bezier(0.5, 0, 0.5, 1) backwards;
}
button.active,
button:not(.active):after {
--rgb: 64, 227, 120;
}
button:not(.active),
button.active:after {
--rgb: 229, 55, 94;
}
button span {
display: inline-block;
position: relative;
margin-top: 5px;
}
button b {
--w: 7px;
overflow: hidden;
border-radius: var(--w);
display: grid;
width: var(--w);
height: 35px;
top: 0;
left: 50%;
position: absolute;
transform: translateX(-50%);
z-index: 3;
will-change: transform;
}
button b:before {
content: "";
background: #fff;
width: 100%;
height: 100%;
border-radius: var(--w);
transform: translateY(-15px);
transition-timing-function: var(--timing);
transition: 0.5s;
}
button.active b:before {
transform: translateY(12px);
transition-delay: 0.27s;
transition-timing-function: cubic-bezier(0.25, 0.25, 0.25, 1.25);
}
button svg {
--dash: 190;
stroke-linecap: round;
stroke-dasharray: var(--dash);
stroke-dashoffset: var(--dash);
width: 46px;
height: 46px;
transform: scaleX(-1) rotate(-89deg);
transition: 0.4s;
transition-timing-function: var(--timing);
margin: auto;
position: relative;
z-index: 1;
will-change: transform, stroke-dashoffset;
}
button:not(.active) svg {
stroke-dashoffset: 40;
transform: scaleX(-1) rotate(-52deg);
transition: 0.5s 0.25s;
}
aside {
position: absolute;
bottom: 0;
left: 0;
display: flex;
justify-content: center;
text-align: center;
width: 100%;
padding: 0 2em 2em;
font-family: "Pacifico", cursive;
}
aside a {
text-decoration: underline;
color: #e65289;
display: flex;
align-items: center;
}
aside a:hover,
aside a:focus {
color: #000;
text-decoration: none;
}
.dribbble-logo {
width: 18px;
height: 18px;
margin-right: 5px;
}
.text {
width: 100%;
margin-top: 10px;
font-size: 22px;
font-family: Source Han Sans CN;
font-weight: 500;
color: #c9c9c9;
text-align: center;
}
}
</style>
......@@ -2,14 +2,15 @@
<div class="sitetree">
<!-- <span style="font-weight: 600">站点结构</span> -->
<div class="box">
<a-spin :spinning="loading">
<a-tree
:load-data="onLoadData"
:tree-data="treeData"
:expandedKeys.sync="expandedKeys"
:replaceFields="{ title: 'label', key: 'id' }"
@select="onSelect"
>
</a-tree>
</a-spin>
</div>
</div>
</template>
......@@ -18,6 +19,7 @@
// api
import {
getListByParentId,
authAreaTree,
// areaList,
// getSiteList
} from "@/services/basicsetFun";
......@@ -28,43 +30,73 @@ export default {
treeData: [], //树结构
id: "",
expandedKeys: [],
loading: false,
};
},
created() {
this.getAreaList();
this.authAreaTree();
this.getTopArea();
},
methods: {
// 获取区域
async getAreaList() {
editLeaf(arr) {
return arr.map((v) => {
if (v.children && v.children.length > 0) {
this.editLeaf(v.children);
} else {
v.isLeaf = true;
}
return v;
});
},
// 获取个人区域数据
async authAreaTree() {
this.loading = true;
let res = await authAreaTree();
if (res.data.code == 1) {
let { data } = res.data.data;
if (data.length) {
let firstData = data[0];
if (firstData.areaLevel > 2 || data.length > 1) {
let TopParent = await this.getTopArea();
TopParent.selectable = false;
TopParent.children = this.editLeaf(data);
this.treeData = [TopParent];
} else {
this.treeData = this.editLeaf(data);
}
this.expandedKeys = [this.treeData[0].id];
}
}
this.loading = false;
},
// 获取顶层区域
async getTopArea() {
let res = await getListByParentId({ parentId: 0 });
const { data, code } = res.data;
if (code === 1) {
this.treeData = data.data;
// let obj = {
// dataRef: {
// id: data.data[0].id,
// },
// };
// this.onLoadData(obj);
this.expandedKeys = [data.data[0].id];
return data.data[0];
} else {
return {};
}
},
// 异步获取子区域
onLoadData(treeNode) {
return new Promise((resolve) => {
getListByParentId({
parentId: treeNode.dataRef.id,
}).then((res) => {
const { data } = res.data;
treeNode.dataRef.children = data.data;
this.treeData = [...this.treeData];
resolve();
});
});
},
// onLoadData(treeNode) {
// return new Promise((resolve) => {
// getListByParentId({
// parentId: treeNode.dataRef.id,
// }).then((res) => {
// const { data } = res.data;
// treeNode.dataRef.children = data.data;
// this.treeData = [...this.treeData];
// resolve();
// });
// });
// },
// 选中区域
onSelect(num, node) {
if (num && node.selectedNodes.length > 0) {
......
......@@ -112,7 +112,9 @@ export default {
this.form.id && this.$delete(this.form, "id");
},
onEdit(data) {
this.$nextTick(() => {
this.form = { ...data };
});
},
handleReset() {
this.$refs.form.resetFields();
......@@ -125,5 +127,4 @@ export default {
};
</script>
<style lang="less" scoped>
</style>
\ No newline at end of file
<style lang="less" scoped></style>
......@@ -154,7 +154,9 @@ export default {
},
// 编辑
onEdit(data) {
this.$nextTick(() => {
this.form = { ...data };
});
},
// 关闭对话框
handleClose() {
......
......@@ -471,7 +471,9 @@ export default {
};
});
}
this.$nextTick(() => {
this.form = { ...data };
});
},
// 过滤附件数组
filterArr(arr, file) {
......
......@@ -143,7 +143,7 @@
}"
>
<a-space size="middle">
<a-button @click="onClose"> 取消 </a-button>
<a-button @click="resetForm"> 重置 </a-button>
<a-button type="primary" @click="onSubmit"> 确定 </a-button>
</a-space>
</div>
......@@ -269,8 +269,14 @@ export default {
onClose() {
this.$refs.form.resetFields();
this.fileList = [];
this.iconFileList = [];
this.Visible = false;
},
resetForm() {
this.fileList = [];
this.iconFileList = [];
this.$refs.form.resetFields();
},
// 提交
onSubmit() {
this.$refs.form.validate(async (valid) => {
......@@ -302,15 +308,6 @@ export default {
},
// 上传图标
handleChangeIcon({ fileList }) {
// if (info.file.status === "uploading") {
// this.loading = true;
// return;
// }
// if (info.file.status === "done") {
// this.form.appIconPath = info.file.response.url;
// this.loading = false;
// }
this.iconFileList = [...fileList].slice(-1);
this.iconFileList = this.iconFileList.map((v) => {
if (v.response) {
......@@ -358,6 +355,7 @@ export default {
},
// 编辑
onEdit(data) {
this.$nextTick(() => {
this.form = { ...data };
this.fileList = [
{
......@@ -376,7 +374,9 @@ export default {
url2: this.form.appIconPath,
},
];
});
},
// 选中站点
changeSite(value, label) {
this.form.siteName = label[0];
......@@ -386,6 +386,10 @@ export default {
let val = e.target.value;
if (val == 1) {
this.form.url = "";
} else {
this.form.filePath = "";
this.form.fileName = "";
this.fileList = [];
}
},
},
......
......@@ -150,7 +150,7 @@
</a-form-model-item>
</a-form-model>
<div slot="footer">
<a-button @click="handleCancel">取消</a-button>
<a-button @click="handleReset">重置</a-button>
<a-button type="primary" @click="handleOk">确定</a-button>
</div>
</a-modal>
......@@ -259,10 +259,10 @@ export default {
fieldCode: "", // 字段编码
fieldName: "", // 字段名称
fieldType: undefined, //字段类型(input.单行输入框,textarea.多行输入框,SELECT.下拉选项框,date.日期选择框)
dataType: "", // 数据类型(number.数字,string.字符串)
dataType: "string", // 数据类型(number.数字,string.字符串)
fieldLen: 128, //数据长度,默认128
fieldNull: "", //是否允许为空,(0.否,1.是)
isList: "", //字段是否列表显示(0.否,1.是)
fieldNull: 0, //是否允许为空,(0.否,1.是)
isList: 0, //字段是否列表显示(0.否,1.是)
fieldOrderNo: 99, // 排序号
fieldTypeValue: "", // 字段类型值
defaultValue: "", // 字段默认值
......@@ -363,7 +363,7 @@ export default {
});
},
handleCancel() {
this.$refs.form.clearValidate();
this.$refs.form.resetFields();
this.fieldType = [
{
key: "",
......@@ -378,6 +378,21 @@ export default {
];
this.Visible = false;
},
handleReset() {
this.$refs.form.resetFields();
this.fieldType = [
{
key: "",
value: "",
},
];
this.apiParams = [
{
key: "",
value: "",
},
];
},
// 新增
onAdd() {
Object.assign(this.form, this.$options.data().form);
......@@ -387,6 +402,7 @@ export default {
},
// 编辑
onEdit(data) {
this.$nextTick(() => {
if (data.fieldTypeValue) {
let fieldTypeObj = JSON.parse(data.fieldTypeValue);
this.fieldType = Object.keys(fieldTypeObj).map((key) => {
......@@ -421,6 +437,7 @@ export default {
}
this.form = { ...data };
this.getTempleteList();
});
},
// 添加数据配置行数
insertion(index, type) {
......
......@@ -5,13 +5,8 @@
:maskClosable="false"
:title="title"
@cancel="handleClose"
destroyOnClose
centered
>
<template slot="footer">
<a-button @click="handleReset">重置</a-button>
<a-button type="primary" @click="handleOk">确定</a-button>
</template>
<a-form-model
ref="form"
:model="form"
......@@ -46,6 +41,10 @@
<a-input-number v-model="form.sort" :min="1" />
</a-form-model-item>
</a-form-model>
<template slot="footer">
<a-button @click="handleReset">重置</a-button>
<a-button type="primary" @click="handleOk">确定</a-button>
</template>
</a-modal>
</div>
</template>
......@@ -110,6 +109,7 @@ export default {
},
// 编辑
onEdit(data) {
this.$nextTick(() => {
this.form = { ...data };
if (this.form.cover) {
this.fileList = [
......@@ -122,6 +122,7 @@ export default {
},
];
}
});
},
// 关闭弹窗
handleClose() {
......@@ -180,6 +181,7 @@ export default {
},
// 重置
handleReset() {
this.fileList = [];
this.$refs.form.resetFields();
},
},
......
......@@ -157,11 +157,13 @@ export default {
},
// 编辑
onEdit(data) {
this.$nextTick(() => {
this.getBusinessData();
this.form = { ...data };
if (this.form.parentId == 0) {
this.form.parentId = undefined;
}
});
},
// 切换业务级别
changeIsBusiness() {
......
......@@ -119,8 +119,10 @@ export default {
},
// 编辑
onEdit(data, modelInfo) {
this.$nextTick(() => {
this.modelInfo = modelInfo;
this.formData = { ...data };
});
},
// 关闭弹窗
handleClose() {
......@@ -149,5 +151,4 @@ export default {
};
</script>
<style lang="less" scoped>
</style>
\ No newline at end of file
<style lang="less" scoped></style>
......@@ -92,6 +92,12 @@
</a-col>
</a-row>
</a-form-model>
<div slot="footer">
<a-button @click="resetForm">重置</a-button>
<a-button :loading="loading" type="primary" @click="handleOk"
>确定</a-button
>
</div>
</a-modal>
</template>
......@@ -114,6 +120,7 @@ export default {
// }
// };
return {
loading: false,
labelCol: { span: 6 },
wrapperCol: { span: 14 },
siteInfo: {
......@@ -179,9 +186,11 @@ export default {
},
// 编辑
onEdit(data) {
this.$nextTick(() => {
this.siteInfo.siteName = data.siteName;
this.siteInfo.siteId = data.siteId;
this.form = { ...data };
});
},
// 保存
handleOk() {
......@@ -206,6 +215,10 @@ export default {
this.$refs.formData.resetFields();
this.Visible = false;
},
// 重置
resetForm() {
this.$refs.formData.resetFields();
},
},
};
</script>
......
<template>
<a-modal
:title="WindowTitle"
@ok="handleAdd"
:visible="Visible"
@cancel="handleClose"
:maskClosable="false"
......@@ -188,6 +187,12 @@
</a-col>
</a-row>
</a-form-model>
<div slot="footer">
<a-button @click="resetForm">重置</a-button>
<a-button :loading="loading" type="primary" @click="handleOk"
>确定</a-button
>
</div>
</a-modal>
</template>
......@@ -288,12 +293,14 @@ export default {
},
// 编辑
onEdit(row) {
this.$nextTick(() => {
this.siteInfo.siteName = row.siteName;
this.siteInfo.siteId = row.siteId;
this.form = { ...row };
});
},
// 保存
async handleAdd() {
async handleOk() {
this.$refs.formData.validate(async (valid) => {
if (valid) {
let res = await addWindow({
......@@ -314,6 +321,10 @@ export default {
this.$refs.formData.resetFields();
this.Visible = false;
},
// 重置
resetForm() {
this.$refs.formData.resetFields();
},
// 改变无人值守
changeDuty(val) {
if (!val) {
......
......@@ -59,9 +59,7 @@
</div>
</div>
<div>
<div class="department_span">
简称:{{ v.deptAbb ? v.deptAbb : "--" }}
</div>
<div>简称:{{ v.deptAbb ? v.deptAbb : "--" }}</div>
<div>
联系电话:{{ v.deptTelphone ? v.deptTelphone : "--" }}
</div>
......@@ -687,7 +685,6 @@ export default {
}
.department_span {
margin-right: 3px;
font-size: 5px;
}
.department_off {
// margin-left: 20px;
......
......@@ -5,12 +5,7 @@
:maskClosable="false"
:title="title"
@cancel="handleClose"
destroyOnClose
>
<template slot="footer">
<a-button @click="handleReset">重置</a-button>
<a-button type="primary" @click="handleOk">确定</a-button>
</template>
<a-form-model
ref="form"
:model="form"
......@@ -44,11 +39,15 @@
/>
</a-form-model-item>
</a-form-model>
<template slot="footer">
<a-button @click="handleReset">重置</a-button>
<a-button type="primary" @click="handleOk">确定</a-button>
</template>
</a-modal>
</div>
</template>
<script>
<script>
import { saveHall } from "@/services/hall";
import loacl from "@/utils/local";
export default {
......@@ -100,7 +99,9 @@ export default {
},
// 编辑
onEdit(data) {
this.$nextTick(() => {
this.form = { ...data };
});
},
// 关闭弹窗
handleClose() {
......
......@@ -5,7 +5,6 @@
:maskClosable="false"
title="新增大厅窗口"
@cancel="handleClose"
destroyOnClose
centered
>
<template slot="footer">
......@@ -96,7 +95,9 @@ export default {
},
// 新增
onAdd(rows) {
this.$nextTick(() => {
this.windowList = rows;
});
// this.form.windowId = rows.id;
// this.form.windowName = rows.name;
},
......
......@@ -2,7 +2,6 @@
<a-modal
:maskClosable="false"
:title="title"
@ok="handleOk"
:visible="Visible"
@cancel="handleClose"
>
......@@ -34,6 +33,12 @@
<a-textarea v-model="form.summary" placeholder allow-clear />
</a-form-model-item>
</a-form-model>
<div slot="footer">
<a-button @click="resetForm">重置</a-button>
<a-button :loading="loading" type="primary" @click="handleOk"
>确定</a-button
>
</div>
</a-modal>
</template>
......@@ -41,8 +46,15 @@
import { addHoliday } from "@/services/festival";
import locale from "ant-design-vue/es/date-picker/locale/zh_CN";
export default {
props: {
visibleDay: {
type: Boolean,
default: false,
},
},
data() {
return {
loading: false,
locale,
title: "选择节假日",
date: [], // 日期
......@@ -71,10 +83,15 @@ export default {
},
};
},
props: {
visibleDay: {
type: Boolean,
default: false,
computed: {
Visible: {
get() {
return this.visibleDay;
},
set(val) {
this.$emit("update:visibleDay", val);
},
},
},
methods: {
......@@ -82,6 +99,7 @@ export default {
handleOk() {
this.$refs.ruleForm.validate(async (valid) => {
if (valid) {
this.loading = true;
let year = new Date(parseInt(this.form.startTime)).getFullYear();
let res = await addHoliday({
...this.form,
......@@ -95,6 +113,7 @@ export default {
this.handleClose();
this.$parent.getHolidayData();
}
this.loading = false;
}
});
},
......@@ -114,22 +133,19 @@ export default {
// 编辑
onEdit(data) {
this.title = "编辑节假日";
this.$nextTick(() => {
this.date = [String(data.startTime), String(data.endTime)];
this.form = { ...data };
});
},
handleClose() {
this.Visible = false;
this.$refs.ruleForm.resetFields();
},
},
computed: {
Visible: {
get() {
return this.visibleDay;
},
set(val) {
this.$emit("update:visibleDay", val);
},
// 重置
resetForm() {
this.date = [];
this.$refs.ruleForm.resetFields();
},
},
};
......
......@@ -36,10 +36,10 @@
</a-form-model-item>
</a-col>
<a-col :span="8">
<a-form-model-item label="区域编号" prop="areaCode">
<a-form-model-item label="区域编号">
<a-input
v-model="areaInfo.areaCode"
readOnly
disabled
type="text"
placeholder="请输入区域编号"
/> </a-form-model-item
......@@ -596,6 +596,7 @@ export default {
//重置
resetForm() {
this.fileList = [];
this.cityData = [];
this.$refs.ruleForm.resetFields();
},
// 关闭对话框
......@@ -612,6 +613,7 @@ export default {
},
// 编辑
onEdit(data) {
this.$nextTick(() => {
this.formInfo = { ...data };
this.areaInfo.areaID = this.formInfo.areaID;
this.areaInfo.areaCode = this.formInfo.areaCode;
......@@ -637,6 +639,7 @@ export default {
},
];
}
});
},
// 保存
handleOk() {
......@@ -729,8 +732,10 @@ export default {
})
.then((res) => {
let { location } = res.geocodes[0];
[this.formInfo.longitude, this.formInfo.latitude] =
location.split(",");
[
this.formInfo.longitude,
this.formInfo.latitude,
] = location.split(",");
})
.catch(() => {
this.$message.error("经纬度获取失败,请输入正确的地址");
......
<template>
<div class="configurat">
<div class="title">短信全局配置</div>
<div class="set-configurat">
<y-switch
v-model="setInfo.messageoff"
checkedChildren="开"
unCheckedChildren="关"
@change="changeClose"
></y-switch>
<div class="des">
全局配置,一键控制
</div>
<div class="des">
轻松管理政务短信通知的全局设置,确保信息的准确传递
</div>
<div class="tag-list">
<div class="tag-item" v-for="v in tagList" :key="v">
{{ v }}
</div>
</div>
<YButton v-model="setInfo.messageoff" @change="changeClose"></YButton>
</div>
</template>
<script>
import YSwitch from "@/components/yswitch/YSwitch.vue";
import YButton from "@/components/YButton";
import { getSmssetList, saveSmssetList } from "@/services/configurat";
import local from "@/utils/local";
export default {
components: {
YSwitch,
YButton,
},
data() {
return {
tagList: ["全局管控", "精准到达", "远程监管", "贴心服务"],
setInfo: {
siteId: local.getLocal("siteId"),
messageoff: "",
......@@ -53,6 +58,8 @@ export default {
let { code, msg } = res.data;
if (code === 1) {
this.$message.success(msg);
} else {
this.getSmssetList();
}
},
},
......@@ -63,36 +70,41 @@ export default {
.configurat {
width: 100%;
height: 100%;
padding: 20px;
.main {
height: 100%;
display: flex;
.set-configurat {
margin-left: 20px;
}
.left {
width: 224px;
margin-right: 20px;
}
.right {
height: 200px;
padding: 15px;
flex: 1;
background-color: #fff;
padding: 115px 80px;
background: url("~@/assets/img/sms_bg.jpg") no-repeat center/100% 100%;
.title {
margin-bottom: 35px;
font-size: 44px;
font-family: Source Han Sans CN;
font-weight: bold;
color: #0857e8;
}
.des {
font-size: 20px;
font-family: Source Han Sans CN;
font-weight: 500;
color: #365182;
line-height: 35px;
}
.title {
margin-left: 15px;
position: relative;
margin-bottom: 15px;
&::before {
content: "";
width: 4px;
height: 20px;
position: absolute;
top: 1px;
left: -16px;
background-color: rgba(5, 149, 253, 1);
.tag-list {
margin-top: 38px;
margin-bottom: 40px;
display: flex;
align-items: center;
gap: 26px;
.tag-item {
width: 138px;
height: 50px;
background: rgba(8, 87, 232, 0.05);
border-radius: 24px;
display: flex;
align-items: center;
justify-content: center;
font-size: 22px;
font-family: Source Han Sans CN;
font-weight: 500;
color: #232323;
}
}
}
......
<template>
<div>
<a-modal
v-model="Visible"
:title="title"
@ok="handleOk"
@cancel="handleClose"
>
<a-modal v-model="Visible" :title="title" @cancel="handleClose">
<a-form-model
:model="form"
ref="form"
......@@ -27,6 +22,10 @@
/>
</a-form-model-item>
</a-form-model>
<div slot="footer">
<a-button @click="resetForm">重置</a-button>
<a-button type="primary" @click="handleOk">确定</a-button>
</div>
</a-modal>
</div>
</template>
......@@ -89,9 +88,12 @@ export default {
},
// 关闭对话框
handleClose() {
this.$refs.form.clearValidate();
this.$refs.form.resetFields();
this.Visible = false;
},
resetForm() {
this.$refs.form.resetFields();
},
// 新增
onAdd() {
Object.assign(this.form, this.$options.data().form);
......@@ -99,7 +101,9 @@ export default {
},
// 编辑
onEdit(row) {
setTimeout(() => {
this.form = { ...row };
}, 10);
},
},
};
......
<template>
<div>
<a-modal
v-model="Visible"
:title="titleField"
@ok="handleOk"
@cancel="handleClose"
>
<a-modal v-model="Visible" :title="titleField" @cancel="handleClose">
<a-form-model
:model="formData"
ref="formData"
......@@ -54,6 +49,10 @@
<a-input-number v-model="formData.fieldOrderNo" :min="0" />
</a-form-model-item>
</a-form-model>
<div slot="footer">
<a-button @click="resetForm">重置</a-button>
<a-button type="primary" @click="handleOk">确定</a-button>
</div>
</a-modal>
</div>
</template>
......@@ -152,7 +151,10 @@ export default {
});
},
handleClose() {
this.$refs.formData.resetFields();
this.Visible = false;
},
resetForm() {
this.$refs.formData.resetFields();
},
changeTemplate(val, e) {
......@@ -166,7 +168,9 @@ export default {
},
// 编辑
onEdit(row) {
this.$nextTick(() => {
this.formData = { ...row };
});
},
},
};
......
<template>
<div>
<a-modal
v-model="Visible"
:title="titleTemplate"
@ok="handleOk"
@cancel="handleClose"
>
<a-modal v-model="Visible" :title="titleTemplate" @cancel="handleClose">
<a-form-model
:model="formData"
ref="formData"
......@@ -31,6 +26,10 @@
/>
</a-form-model-item>
</a-form-model>
<div slot="footer">
<a-button @click="resetForm">重置</a-button>
<a-button type="primary" @click="handleOk">确定</a-button>
</div>
</a-modal>
</div>
</template>
......@@ -108,8 +107,8 @@ export default {
this.formData.productName = text;
},
handleClose() {
this.Visible = false;
this.$refs.formData.resetFields();
this.Visible = false;
},
// 新增
onAdd() {
......@@ -118,8 +117,12 @@ export default {
},
// 编辑
onEdit(row) {
this.$nextTick(() => {
this.formData = { ...row };
console.log(row);
});
},
resetForm() {
this.$refs.formData.resetFields();
},
handleOk() {
this.$refs.formData.validate(async (valid) => {
......
......@@ -148,7 +148,9 @@ export default {
},
// 编辑
onEdit(row) {
this.$nextTick(() => {
this.form = { ...row };
});
},
// 保存
handleOk() {
......@@ -168,5 +170,4 @@ export default {
};
</script>
<style lang="less" scoped>
</style>
\ No newline at end of file
<style lang="less" scoped></style>
......@@ -209,7 +209,9 @@ export default {
},
// 编辑
onEdit(row) {
this.$nextTick(() => {
this.form = { ...row };
});
},
// 保存
handleOk() {
......@@ -229,5 +231,4 @@ export default {
};
</script>
<style lang="less" scoped>
</style>
\ No newline at end of file
<style lang="less" scoped></style>
......@@ -527,11 +527,14 @@ export default {
},
// 编辑
onEdit(data) {
this.$nextTick(() => {
// this.editWindow(data.deptId);
this.form = { ...data };
this.form.loginName && this.$delete(this.form, "loginName");
this.form.loginPwd && this.$delete(this.form, "loginPwd");
this.form.windowId = this.form.windowId ? this.form.windowId : undefined;
this.form.windowId = this.form.windowId
? this.form.windowId
: undefined;
if (this.form.photoPath) {
this.fileList = [
{
......@@ -543,6 +546,7 @@ export default {
},
];
}
});
},
// 关闭对话框
handleClose() {
......@@ -556,6 +560,7 @@ export default {
// 重置
handleReset() {
// this.form.windowName = "";
this.fileList = [];
this.$refs.formData.resetFields();
},
// 照片上传
......
......@@ -13,7 +13,7 @@
:label-col="{ span: 5 }"
:wrapper-col="{ span: 19 }"
>
<a-form-model-item label="账号" prop="loginName">
<a-form-model-item label="账号">
<a-input disabled placeholder="请输入账号" v-model="form.loginName" />
</a-form-model-item>
<!-- <a-form-model-item label="旧密码" prop="oldPwd">
......@@ -115,12 +115,15 @@ export default {
},
// 关闭对话框
handleClose() {
this.form.loginName = "";
this.$refs.form.resetFields();
this.Visible = false;
},
// 获取用户账号信息
getUserInfo(account) {
this.$nextTick(() => {
this.form.loginName = account;
});
},
},
};
......
......@@ -30,7 +30,8 @@ module.exports = {
treeselect: `${BASE_URL}/base/area/treeselect`,
save: `${BASE_URL}/base/area/save`,
delete: `${BASE_URL}/base/area/delete`,
init: `${BASE_URL}/base/base/area/genSubAreaByAreaName `,
init: `${BASE_URL}/base/area/genSubAreaByAreaName`,
authAreaTree: `${BASE_URL}/base/area/authAreaTree`,
},
// 站点
site: {
......
......@@ -19,6 +19,10 @@ export async function getListByParentId(data) {
export async function treeselect(data) {
return request(area.treeselect, METHOD.POST, data);
}
// 查看个人区域列表
export async function authAreaTree(data) {
return request(area.authAreaTree, METHOD.POST, data);
}
// 查看站点列表
export async function getSiteList(data) {
return request(site.list, METHOD.POST, data);
......
......@@ -20,3 +20,7 @@ export function changePassword(params) {
export function editPassword(params) {
return http.post(`${baseURL}/zwfw/user/reset/password`, params);
}
// 密码过期修改密码
export function changeForgotPassword(params) {
return http.post(`${baseURL}/zwfw/user/forgot/password`, params);
}
......@@ -59,7 +59,7 @@ axios.interceptors.response.use(
message.error({
content: msg,
maxCount: 1,
duration: 1,
duration: 2,
});
store.commit("user/reset");
router.push("/");
......
......@@ -346,10 +346,14 @@ export default {
for (let item of data) {
item.status = this.statusItem[item.status];
}
let newData = data.map((v) => {
v.people && delete v.people.id;
return { ...v, ...v.people };
});
export2Excel(
this.tHeader,
this.filterVal,
data,
newData,
"预约记录报表" + this.$moment().format("YYYYMMDDHHmmss")
);
});
......@@ -395,5 +399,4 @@ export default {
};
</script>
<style lang="less" scoped>
</style>
\ No newline at end of file
<style lang="less" scoped></style>
......@@ -3,7 +3,6 @@
<a-modal
:title="formTitle"
:centered="true"
:destroyOnClose="true"
:getContainer="() => $refs.EditModal_box"
:visible="visible"
:confirmLoading="EditModalLoading"
......@@ -117,7 +116,7 @@
@change="handleChangeFile"
accept="image/jpeg,image/png"
>
<a-button type="primary" class="addclass" >
<a-button type="primary" class="addclass">
<a-icon type="upload" /> 选择文件
</a-button>
</a-upload>
......@@ -141,7 +140,9 @@
</a-form-model>
<template slot="footer">
<a-button @click="resetForm">重置</a-button>
<a-button type="primary" class="addclass" @click="Modal_Ok">确定</a-button>
<a-button type="primary" class="addclass" @click="Modal_Ok"
>确定</a-button
>
</template>
</a-modal>
</div>
......@@ -340,6 +341,7 @@ export default {
// 重置还原表单信息内容
this.$nextTick(() => {
this.$refs.compileInfoForm.resetFields();
this.fileList = [];
});
},
// 新增
......@@ -351,6 +353,7 @@ export default {
},
// 编辑
onEdit(row) {
setTimeout(() => {
this.compileInfoForm = { ...row };
this.fileList = [
{
......@@ -360,6 +363,7 @@ export default {
status: "done",
},
];
}, 10);
},
// 关闭弹窗
handleClose() {
......
<template>
<div class="authorityMis">
<div class="header_box">
<!-- <button class="addRoles_btn" @click="showRoleEditModal(false)">
<span>新增角色</span>
</button> -->
<a-button
type="primary"
class="addclass"
......@@ -18,11 +15,6 @@
v-model="searchRoleName"
@search="getRoleList"
/>
<!-- <a-input v-model="searchRoleName" placeholder="请输入角色名称搜索">
<a-icon slot="prefix" type="search" />
</a-input> -->
<!-- <button class="search_btn" @click="getRoleList">搜索</button> -->
<!-- <a-button type="primary" class="addclass" @click="getRoleList">搜索</a-button> -->
</span>
</div>
<div class="main">
......@@ -57,7 +49,6 @@
</a-table>
<AddEditRole
ref="AddEditRole"
:sourceInfoForm="sourceInfoForm"
:formTitle="formTitle"
:roleDict="roleDict"
@getRoleList="getRoleList"
......@@ -123,8 +114,7 @@ export default {
},
],
tableSourceData: [],
formTitle: undefined, //表单title
sourceInfoForm: {},
formTitle: "", //表单title
roleDict: {},
};
},
......@@ -171,15 +161,11 @@ export default {
},
showRoleEditModal(isEdit, row) {
if (isEdit) {
this.sourceInfoForm = deepClone(row);
this.formTitle = "编辑";
this.$refs.AddEditRole.onEdit(row);
} else {
let obj = {
name: undefined, //姓名
remark: undefined, //描述
};
this.sourceInfoForm = obj;
this.formTitle = "添加";
this.$refs.AddEditRole.onAdd();
}
this.$refs.AddEditRole.roleEditModalVisible = true;
},
......@@ -192,16 +178,16 @@ export default {
content: "此操作将删除该角色及权限信息,是否继续?",
okText: "",
cancelText: "",
centered: true,
onOk() {
roleDelete({
id: row.id,
}).then((res) => {
// console.log(res);
if (res.code == 1) {
_this.$message.success("删除成功");
//重新获取table数据
_this.$nextTick(() => {
_this.getRoleList();
// _this.$message.success(res.data.message);
});
} else {
_this.$message.error(res.data.message);
......
......@@ -16,7 +16,7 @@
:label-col="{ span: 6 }"
:wrapper-col="{ span: 18 }"
>
<a-form-model-item label="用户名" prop="loginName">
<a-form-model-item label="用户名">
<a-input
disabled
v-model="form.loginName"
......@@ -35,7 +35,7 @@
</a-form-model>
<div slot="footer">
<a-button style="margin-left: 10px" @click="handleClose">取消</a-button>
<a-button style="margin-left: 10px" @click="handleReset">重置</a-button>
<a-button type="primary" class="addclass" @click="handleOk"
>确定</a-button
>
......@@ -117,6 +117,9 @@ export default {
}
});
},
handleReset() {
this.$refs.formData.resetFields();
},
handleClose() {
this.$refs.formData.resetFields();
this.Visible = false;
......@@ -125,5 +128,4 @@ export default {
};
</script>
<style lang="less" scoped>
</style>
\ No newline at end of file
<style lang="less" scoped></style>
<template>
<div>
<a-modal
:destroyOnClose="true"
title="编辑"
:centered="true"
:visible="Visible"
@cancel="Visible = false"
@cancel="handelCancel"
:maskClosable="false"
>
<a-form-model
......@@ -29,7 +28,7 @@
@change="handleSelect"
/>
</a-form-model-item>
<a-form-model-item label="电话">
<a-form-model-item label="电话" prop="mobile">
<a-input placeholder="请输入电话号码" v-model="form.mobile" />
</a-form-model-item>
<a-form-model-item ref="realName" label="用户姓名" prop="realName">
......@@ -152,12 +151,12 @@ export default {
},
// 编辑
onEdit(row) {
setTimeout(() => {
this.form = { ...row };
try {
this.form.areaNames = JSON.parse(this.form.areaNames);
} catch (err) {
this.form.areaNames = this.form.areaNames;
console.log(typeof this.form.areaNames);
}
if (typeof this.form.areaNames == "string") {
this.selectAreaList = [this.form.areaNames];
......@@ -168,9 +167,8 @@ export default {
this.selectAreaList = [];
}
}
// this.form.areaCodes = this.form.areaCodes.split(",");
this.form.loginPwd && this.$delete(this.form, "loginPwd");
}, 10);
},
// 提交
onSubmit() {
......@@ -187,6 +185,10 @@ export default {
: (hash[next.areaCode] = true && item.push(next));
return item;
}, []);
if (!this.form.areaNames.length) {
this.$message.warning("请选择站点区域");
return;
}
let res = await userSave({
...this.form,
areaNames: JSON.stringify(this.form.areaNames),
......@@ -197,13 +199,19 @@ export default {
if (code === 1) {
this.$message.success(msg);
this.$emit("EditSuccess");
this.Visible = false;
this.handelCancel();
}
}
});
},
resetForm() {
this.$refs.ruleForm.resetFields();
this.selectAreaList = [];
},
handelCancel() {
this.$refs.ruleForm.resetFields();
this.selectAreaList = [];
this.Visible = false;
},
// 选中树节点
handleSelect(value, node, extra) {
......
......@@ -4,10 +4,9 @@
:title="formTitle"
:getContainer="() => $refs.roleEditModal_box"
:centered="true"
:destroyOnClose="true"
:visible="roleEditModalVisible"
:confirmLoading="roleEditModalLoading"
@cancel="roleEditModalVisible = false"
@cancel="handleCancel"
width="30%"
:maskClosable="false"
>
......@@ -41,22 +40,32 @@
</a-form-model>
<template slot="footer">
<a-button @click="resetForm">重置</a-button>
<a-button type="primary" class="addclass" @click="roleEditModal_Ok">确定</a-button>
<a-button type="primary" class="addclass" @click="roleEditModal_Ok"
>确定</a-button
>
</template>
</a-modal>
</div>
</template>
<script>
import { deepClone } from "@/utils/js/common.js";
import { roleSave } from "@/api/authorityMis.js";
export default {
name: "PortalAdminVueNewRole",
props: {
formTitle: {
type: String,
default: "编辑",
},
},
data() {
return {
roleEditModalVisible: false, //模态
roleEditModalLoading: false, //确定回调 loading
compileInfoForm: {}, //页面表单信息
compileInfoForm: {
name: "", //姓名
remark: "", //描述
}, //页面表单信息
roleRules: {
name: [
{
......@@ -65,10 +74,6 @@ export default {
message: "请输入角色名称",
trigger: "blur",
},
// {
// pattern: /^[\u4E00-\u9FA5\uf900-\ufa2d·s]{2,20}$/,
// message: "不能有特殊字符和数字、长度在1-20",
// },
],
remark: [
{
......@@ -81,57 +86,24 @@ export default {
},
};
},
props: {
roleDict: {
type: Object,
default: () => {
return {};
},
},
formTitle: {
type: String,
default: () => {
return "编辑";
},
},
sourceInfoForm: {
type: Object,
default: () => {
return {};
},
},
},
watch: {
sourceInfoForm: {
handler(newValue, oldValue) {
// console.log(newValue);
// console.log(oldValue);
this.compileInfoForm = deepClone(newValue);
for (let key in this.roleRules) {
this.roleRules[key][0].required = this.formTitle == "添加";
}
},
deep: true,
methods: {
onAdd() {
Object.assign(this.compileInfoForm, this.$options.data().compileInfoForm);
this.compileInfoForm.id && this.$delete(this.compileInfoForm, "id");
},
onEdit(row) {
setTimeout(() => {
this.compileInfoForm = { ...row };
}, 10);
},
mounted() {},
methods: {
roleEditModal_Ok() {
this.$refs.compileInfoForm.validate((valid) => {
if (valid) {
// this.roleEditModalLoading = true;
let submitObj = {
name: this.compileInfoForm.name,
remark: this.compileInfoForm.remark,
};
if (this.formTitle == "编辑") {
submitObj["id"] = this.compileInfoForm["id"];
}
roleSave(submitObj).then((res) => {
roleSave(this.compileInfoForm).then((res) => {
if (res.code == 1) {
this.$emit("getRoleList");
// this.$message.success(res.msg);
this.roleEditModalVisible = false;
this.$message.success(res.msg);
this.handleCancel();
}
});
} else {
......@@ -142,10 +114,12 @@ export default {
},
resetForm() {
// 重置还原表单信息内容
this.$set(this, "compileInfoForm", this.sourceInfoForm);
this.$nextTick(() => {
this.$refs.compileInfoForm.resetFields();
});
},
handleCancel() {
// 重置还原表单信息内容
this.$refs.compileInfoForm.resetFields();
this.roleEditModalVisible = false;
},
},
};
......@@ -158,30 +132,5 @@ export default {
max-height: 550px !important;
overflow-y: auto !important;
}
//.ant-modal-footer {
// text-align: left !important;
// }
//.ant-form-item-label > label::after {
// display: none !important;
// }
//.ant-form-item {
// .ant-form-item-label {
// &::after {
// content: ":";
// position: relative;
// top: -0.5px;
// margin: 0 8px 0 2px;
// }
// }
// }
//.ant-form-item:last-child {
// .ant-form-item-label {
// &::after {
// display: none !important;
// }
// }
// }
}
</style>
......@@ -17,13 +17,14 @@
>
<a-form-model-item label="站点授权" prop="areaCodes">
<a-tree-select
v-model="form.areaCodes"
v-model="changeSelect"
style="width: 100%"
:tree-data="treeData"
allowClear
:load-data="onLoadData"
:dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
tree-checkable
labelInValue
:show-checked-strategy="SHOW_PARENT"
placeholder="请选择站点区域"
:replaceFields="replaceFields"
......@@ -53,7 +54,7 @@
"
/>
</a-form-model-item>
<a-form-model-item label="电话">
<a-form-model-item label="电话" prop="mobile">
<a-input placeholder="请输入电话号码" v-model="form.mobile" />
</a-form-model-item>
<a-form-model-item ref="realName" label="用户姓名" prop="realName">
......@@ -101,6 +102,7 @@ export default {
labelCol: { span: 4 },
wrapperCol: { span: 20 },
changeSelect: [],
form: {
loginName: undefined,
loginPwd: undefined,
......@@ -111,6 +113,9 @@ export default {
areaNames: undefined,
},
rules: {
areaCodes: [
{ required: true, message: "请选择站点区域", trigger: "change" },
],
loginName: [
{ required: true, validator: changeAccount, trigger: "blur" },
],
......@@ -188,10 +193,15 @@ export default {
onSubmit() {
this.$refs.ruleForm.validate(async (valid) => {
if (valid) {
let areas = this.changeSelect.map((v) => {
return {
areaCode: v.value,
label: v.label,
};
});
let res = await userSave({
...this.form,
areaCodes: this.form.areaCodes.join(","),
areaNames: JSON.stringify(this.changeSelect),
areaNames: JSON.stringify(areas),
loginName: encrypt(this.form.loginName),
loginPwd: encrypt(this.form.loginPwd),
});
......@@ -209,21 +219,8 @@ export default {
this.changeSelect = [];
},
// 选择区域
handleSelect(value, node, extra) {
let { allCheckedNodes } = extra;
this.changeSelect = allCheckedNodes.map((v) => {
if (v.node) {
return {
areaCode: v.node.data.props.areaCode,
label: v.node.data.props.label,
};
} else {
return {
areaCode: v.data.props.areaCode,
label: v.data.props.label,
};
}
});
handleSelect() {
this.form.areaCodes = this.changeSelect.map((v) => v.value).join(",");
},
},
};
......
......@@ -250,6 +250,7 @@ export default {
content: "此操作将删除该角色及权限信息,是否继续?",
okText: "",
cancelText: "",
centered: true,
onOk() {
userDelete({
id: val,
......
......@@ -3,7 +3,7 @@
:width="modalInfo.width"
:visible="modalInfo.visible"
:title="modalInfo.title"
@cancel="modalInfo.visible = false"
@cancel="resetForm"
centered
destroyOnClose
>
......@@ -61,11 +61,10 @@
</a-form-model-item>
</a-form-model>
<template slot="footer">
<a-button type="primary" class="addclass" @click="reset">重置</a-button>
<a-button @click="reset">重置</a-button>
<a-button type="primary" class="addclass" @click="Modal_Ok"
>确定</a-button
>
<a-button @click="resetForm">取消</a-button>
</template>
</a-modal>
</template>
......
......@@ -3,7 +3,7 @@
:width="modalInfo.width"
:visible="modalInfo.visible"
:title="modalInfo.title"
@cancel="modalInfo.visible = false"
@cancel="resetForm"
centered
destroyOnClose
>
......@@ -44,11 +44,10 @@
</a-form-model-item>
</a-form-model>
<template slot="footer">
<a-button type="primary" class="addclass" @click="reset">重置</a-button>
<a-button @click="reset">重置</a-button>
<a-button type="primary" class="addclass" @click="Modal_Ok"
>确定</a-button
>
<a-button @click="resetForm">取消</a-button>
</template>
</a-modal>
</template>
......
......@@ -94,6 +94,7 @@ public class AuthTokenServiceImpl implements IAuthTokenService {
String menuUrl = userObj.getString("menuUrl");
Boolean isManager = userObj.getBoolean("manager");
Boolean isSystemUser = userObj.getBoolean("systemUser");
String areaCodes = userObj.getString("areaCodes");
return new IUser() {
@Override
......@@ -126,6 +127,11 @@ public class AuthTokenServiceImpl implements IAuthTokenService {
return siteIds;
}
@Override
public String getAreaCodes() {
return areaCodes;
}
@Override
public Long getCustomerJoinId() {
return null;
......
......@@ -120,7 +120,11 @@ public class LoginController extends BaseCRUDJsonBodyMappingController<UserServi
return ret.toJSONString();
} catch (Exception e) {
log.error("login error ", e);
if(e instanceof AppException){
ret.put(KEY_RESULT_CODE, ((AppException) e).getCode());
}else {
ret.put(KEY_RESULT_CODE, VALUE_RESULT_FAILURE);
}
ret.put(KEY_RESULT_MSG, super.convertException(e));
return ret.toJSONString();
}
......
......@@ -210,7 +210,7 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity
if(sysUser.getLastUpdatePwdTime()!=null) {
long day = DateUtils.getBetween(sysUser.getLastUpdatePwdTime(), new Date(), 2);
if (day >= 90) {
throw new AppException("密码已超过三个月没有更改,请修改以后再登录");
throw new AppException(99998,"密码已超过三个月没有更改,请修改以后再登录");
}
}
}
......@@ -445,6 +445,10 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity
throw new AppException("帐号错误!");
}
try {
if(StringUtils.isEmpty(sysUser.getSaltKey())) {
String saltKey = SecurityCode.getSecurityCode(6,SecurityCode.SecurityCodeLevel.Medium,false);
sysUser.setSaltKey(saltKey);
}
sysUser.setLoginPwd(SecurityUtil.md5DoubleEncoding(newPwd + sysUser.getSaltKey()));
} catch (Exception e) {
throw new AppException("密码转换异常!", e);
......@@ -522,4 +526,5 @@ public class UserServiceImpl extends AbstractCRUDServiceImpl<UserDao, UserEntity
return successMsg.toString();
}
}
\ No newline at end of file
......@@ -174,6 +174,25 @@ public class UserController extends BaseCRUDJsonBodyMappingController<UserServic
return ret.toJSONString();
}
@RequestMapping(value = "forgot/password", method = RequestMethod.POST)
@UnAuth
public String forgotPassword(@RequestBody UserEntity entity) {
JSONObject ret = new JSONObject();
try {
String oldPwd = LoginAESUtil.decrypt(entity.getOldPwd(),AES_KEY,AES_IV,LoginAESUtil.AES_CBC);
String newPwd = LoginAESUtil.decrypt(entity.getNewPwd(),AES_KEY,AES_IV,LoginAESUtil.AES_CBC);
entity.setOldPwd(oldPwd);
entity.setNewPwd(newPwd);
service.updateUserPwd(entity.getLoginName(), entity.getOldPwd(), entity.getNewPwd());
ret.put(KEY_RESULT_CODE, VALUE_RESULT_SUCCESS);
ret.put(KEY_RESULT_MSG, "密码修改成功!");
} catch (Exception e) {
ret.put(KEY_RESULT_CODE, VALUE_RESULT_FAILURE);
ret.put(KEY_RESULT_MSG, super.convertException(e));
}
return ret.toJSONString();
}
/**
* 站点授权
*
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment