Commit 65bb590a authored by “yiyousong”'s avatar “yiyousong”

perf: 优化站点管理

parent 0a2e3555
<template>
<div>
<a-checkbox :checked="value" @change="onChange">
{{ checkText }}</a-checkbox
>
<slot></slot>
</a-checkbox>
</div>
</template>
......@@ -16,10 +16,6 @@ export default {
checked: {
required: true,
},
checkText: {
required: true,
default: "",
},
},
computed: {
value() {
......@@ -34,5 +30,4 @@ export default {
};
</script>
<style lang="less" scoped>
</style>
\ No newline at end of file
<style lang="less" scoped></style>
......@@ -157,7 +157,7 @@
import YSwitch from "../../../../components/yswitch/YSwitch.vue";
import { saveApp } from "@/services/market";
import { mapGetters } from "vuex";
import { changeCodeNumber } from "@/utils/validate";
import { checkCodeNumber } from "@/utils/validate";
// import local from "@/utils/local";
export default {
components: {
......@@ -221,7 +221,7 @@ export default {
{ required: true, message: "请输入应用名称", trigger: "blur" },
],
appCode: [
{ required: true, validator: changeCodeNumber, trigger: "blur" },
{ required: true, validator: checkCodeNumber, trigger: "blur" },
],
appIconPath: [
{ required: true, message: "请上传应用图标", trigger: "change" },
......
......@@ -170,7 +170,7 @@
<script>
import { saveTemplete, getTempleteList } from "@/services/market";
import { changeCodeNumber } from "@/utils/validate";
import { checkCodeNumber } from "@/utils/validate";
const fieldTypeItem = [
{
value: "input",
......@@ -266,7 +266,7 @@ export default {
templeteList: [], // 字段列表
rules: {
fieldCode: [
{ required: true, validator: changeCodeNumber, trigger: "blur" },
{ required: true, validator: checkCodeNumber, trigger: "blur" },
],
fieldName: [
{ required: true, message: "请输入字段名称", trigger: "blur" },
......
......@@ -109,7 +109,7 @@ import local from "@/utils/local";
export default {
components: { YSwitch },
data() {
// const changeLandline = (rule, value, callback) => {
// const checkLandline = (rule, value, callback) => {
// if (!value) {
// callback(new Error("请输入座机号"));
// callback();
......@@ -152,7 +152,7 @@ export default {
{ required: true, message: "部门编号不能为空", trigger: "blur" },
],
// deptTelphone: [
// { required: true, validator: changeLandline, trigger: "blur" },
// { required: true, validator: checkLandline, trigger: "blur" },
// ],
},
};
......
......@@ -199,7 +199,7 @@
<script>
import { addWindow } from "@/services/dept";
import YSwitch from "@/components/yswitch/YSwitch.vue";
import { changeWindowNumber } from "@/utils/validate";
import { checkWindowNumber } from "@/utils/validate";
import local from "@/utils/local";
export default {
components: {
......@@ -242,7 +242,7 @@ export default {
],
name: [{ required: true, message: "窗口名不能为空", trigger: "blur" }],
fromnum: [
{ required: true, validator: changeWindowNumber, trigger: "blur" },
{ required: true, validator: checkWindowNumber, trigger: "blur" },
],
deptId: [
......
......@@ -236,34 +236,13 @@
</a-col>
</a-row>
<a-form-model-item label="工作日">
<y-checkbox
v-model="formInfo.workday1"
checkText="星期一"
></y-checkbox>
<y-checkbox
v-model="formInfo.workday2"
checkText="星期二"
></y-checkbox>
<y-checkbox
v-model="formInfo.workday3"
checkText="星期三"
></y-checkbox>
<y-checkbox
v-model="formInfo.workday4"
checkText="星期四"
></y-checkbox>
<y-checkbox
v-model="formInfo.workday5"
checkText="星期五"
></y-checkbox>
<y-checkbox
v-model="formInfo.workday6"
checkText="星期六"
></y-checkbox>
<y-checkbox
v-model="formInfo.workday7"
checkText="星期天"
></y-checkbox>
<y-checkbox v-model="formInfo.workday1"> 星期一 </y-checkbox>
<y-checkbox v-model="formInfo.workday2">星期二 </y-checkbox>
<y-checkbox v-model="formInfo.workday3"> 星期三 </y-checkbox>
<y-checkbox v-model="formInfo.workday4"> 星期四 </y-checkbox>
<y-checkbox v-model="formInfo.workday5"> 星期五 </y-checkbox>
<y-checkbox v-model="formInfo.workday6"> 星期六</y-checkbox>
<y-checkbox v-model="formInfo.workday7"> 星期天 </y-checkbox>
</a-form-model-item>
<a-row>
<a-col :span="4">
......@@ -308,7 +287,7 @@ import YCheckbox from "@/components/ycheckbox/YCheckbox.vue";
import YSwitch from "@/components/yswitch/YSwitch.vue";
// import options from "@/utils/city";
import { regionData } from "element-china-area-data";
import { checkPort, checkIp } from "@/utils/validate";
import { checkPort, checkIp, checkPhone } from "@/utils/validate";
export default {
props: {
formVisible: {
......@@ -325,27 +304,6 @@ export default {
YSwitch,
},
data() {
// 验证手机号码
const changePhone = (rule, value, callback) => {
if (!value) {
callback(new Error("请输入手机号"));
callback();
} else if (!/^1[3-9]\d{9}$/.test(value)) {
callback(new Error("手机号码格式不正确"));
} else {
callback();
}
};
// const changeLandline = (rule, value, callback) => {
// if (!value) {
// callback(new Error("请输入中心座机号"));
// callback();
// } else if (!/^[0][1-9]{2,3}-[0-9]{5,10}$/.test(value)) {
// callback(new Error("格式:区号-电话号码"));
// } else {
// callback();
// }
// };
return {
api: process.env.VUE_APP_API_BASE_URL + "/",
accept: "image/jpeg,image/png", // 上传类型
......@@ -502,7 +460,7 @@ export default {
leadingOfficialTelephone: [
{
required: true,
validator: changePhone,
validator: checkPhone,
trigger: "blur",
},
],
......@@ -601,8 +559,7 @@ export default {
},
// 关闭对话框
closeModal() {
this.fileList = [];
this.$refs.ruleForm.resetFields();
this.resetForm();
this.Visible = false;
},
// 新增
......@@ -614,27 +571,37 @@ export default {
// 编辑
onEdit(data) {
this.$nextTick(() => {
this.formInfo = { ...data };
this.areaInfo.areaID = this.formInfo.areaID;
this.areaInfo.areaCode = this.formInfo.areaCode;
this.areaInfo.areaName = this.formInfo.areaName;
this.cityData = [
this.formInfo.proCode,
this.formInfo.cityCode,
this.formInfo.districtCode,
];
this.formInfo.modelIds = this.formInfo.modelIds.map(Number);
this.formInfo.amWorkStartTime = String(this.formInfo.amWorkStartTime);
this.formInfo.amWorkEndTime = String(this.formInfo.amWorkEndTime);
this.formInfo.pmWorkStartTime = String(this.formInfo.pmWorkStartTime);
this.formInfo.pmWorkEndTime = String(this.formInfo.pmWorkEndTime);
if (this.formInfo.logoPath) {
let {
areaID,
areaCode,
areaName,
proCode,
cityCode,
districtCode,
modelIds,
amWorkStartTime,
amWorkEndTime,
pmWorkStartTime,
pmWorkEndTime,
logoPath,
} = (this.formInfo = data);
this.areaInfo.areaID = areaID;
this.areaInfo.areaCode = areaCode;
this.areaInfo.areaName = areaName;
this.cityData = [proCode, cityCode, districtCode];
this.formInfo.modelIds = modelIds.map(Number);
this.formInfo.amWorkStartTime = String(amWorkStartTime);
this.formInfo.amWorkEndTime = String(amWorkEndTime);
this.formInfo.pmWorkStartTime = String(pmWorkStartTime);
this.formInfo.pmWorkEndTime = String(pmWorkEndTime);
if (logoPath) {
this.fileList = [
{
uid: -1,
status: "done",
name: this.formInfo.logoPath,
url: this.formInfo.logoPath,
name: logoPath,
url: logoPath,
},
];
}
......@@ -658,8 +625,7 @@ export default {
this.loading = false;
if (code === 1) {
this.$message.success(msg);
this.fileList = [];
this.Visible = false;
this.closeModal();
this.$parent.getSiteList({ areaID: this.areaInfo.areaID });
}
}
......@@ -740,10 +706,8 @@ export default {
.then((res) => {
if (res.status == 1) {
let { location } = res.geocodes[0];
[
this.formInfo.longitude,
this.formInfo.latitude,
] = location.split(",");
[this.formInfo.longitude, this.formInfo.latitude] =
location.split(",");
} else {
this.$message.error("经纬度获取失败,请输入正确的地址");
}
......
......@@ -160,27 +160,14 @@
<a-row>
<a-col :span="16">
<span>工作日:</span>
<span class="work-day" v-if="item.workday1 === 1"
>星期一</span
>
<span class="work-day" v-if="item.workday2 === 1"
>星期二</span
>
<span class="work-day" v-if="item.workday3 === 1"
>星期三</span
>
<span class="work-day" v-if="item.workday4 === 1"
>星期四</span
>
<span class="work-day" v-if="item.workday5 === 1"
>星期五</span
>
<span class="work-day" v-if="item.workday6 === 1"
>星期六</span
>
<span class="work-day" v-if="item.workday7 === 1"
>星期天</span
>
<template v-for="(day, i) in workday">
<span
:key="day"
class="work-day"
v-if="item[`workday${i + 1}`]"
>{{ day }}</span
>
</template>
</a-col>
</a-row>
</div>
......@@ -267,6 +254,15 @@ import {
getSiteList,
SyncSiteData,
} from "@/services/basicsetFun";
const workday = [
"星期一",
"星期二",
"星期三",
"星期四",
"星期五",
"星期六",
"星期日",
];
export default {
components: {
sitetree,
......@@ -277,6 +273,7 @@ export default {
data() {
return {
workday,
loading: false,
title: "新增站点",
formVisible: false,
......@@ -329,7 +326,6 @@ export default {
async getSiteInfo() {
this.loading = true;
let res = await siteInfo({ id: this.siteId });
this.loading = false;
if (res.data.code === 1) {
let { data, dict } = res.data;
data.modelIds = data.modelIds.split(",");
......@@ -345,6 +341,7 @@ export default {
});
this.siteData = [data];
}
this.loading = false;
},
// 删除
......@@ -378,18 +375,18 @@ export default {
},
//查看全部
cookAll(text) {
this.allShow = true;
this.details = text;
this.allShow = true;
},
//新增站点
addSiteAll() {
if (this.areaID) {
this.title = "新增站点";
this.formVisible = true;
this.$refs.addsite.onAdd();
} else {
if (!this.areaID) {
this.$message.warning("请先选择区域");
return;
}
this.title = "新增站点";
this.formVisible = true;
this.$refs.addsite.onAdd();
},
// 切换站点
changePage(num) {
......@@ -399,10 +396,11 @@ export default {
this.formVisible = false;
},
// 编辑
editSiteInfo(data) {
editSiteInfo(row) {
this.title = "编辑站点";
this.formVisible = true;
let data = this.$_.cloneDeep(row);
this.$refs.addsite.onEdit(data);
this.formVisible = true;
},
// 同步数据
handleSync(id) {
......@@ -564,16 +562,16 @@ export default {
.item_box {
display: flex;
flex-wrap: wrap;
gap: 10px;
.item {
width: 140px;
height: 54px;
margin-right: 10px;
margin-bottom: 10px;
padding: 6px;
display: flex;
align-items: center;
justify-content: center;
background-color: #38b6ff;
text-align: center;
color: #fff;
border-radius: 5px;
}
......
......@@ -335,7 +335,7 @@
<script>
import { getWindowList, saveWorkman } from "@/services/dept";
import { modelList } from "@/services/basicsetFun";
// import { changePhone, changeLandline } from "@/utils/validate";
// import { checkPhone, checkLandline } from "@/utils/validate";
export default {
props: {
editVisible: {
......@@ -435,9 +435,9 @@ export default {
// windowId: [
// { required: true, message: "窗口不能为空", trigger: "change" },
// ],
// mobile: [{ required: false, validator: changePhone, trigger: "blur" }],
// mobile: [{ required: false, validator: checkPhone, trigger: "blur" }],
// phone: [
// { required: false, validator: changeLandline, trigger: "blur" },
// { required: false, validator: checkLandline, trigger: "blur" },
// ],
idCard: [{ required: false, validator: checkIdCard, trigger: "blur" }],
},
......
......@@ -43,7 +43,7 @@
</template>
<script>
import { changeAccount, changePassWord } from "@/utils/validate";
import { checkAccount, checkPassWord } from "@/utils/validate";
import { changePwd } from "@/services/dept";
export default {
props: {
......@@ -72,14 +72,10 @@ export default {
},
rules: {
loginName: [
{ required: true, validator: changeAccount, trigger: "blur" },
],
oldPwd: [
{ required: true, validator: changePassWord, trigger: "blur" },
],
newPwd: [
{ required: true, validator: changePassWord, trigger: "blur" },
{ required: true, validator: checkAccount, trigger: "blur" },
],
oldPwd: [{ required: true, validator: checkPassWord, trigger: "blur" }],
newPwd: [{ required: true, validator: checkPassWord, trigger: "blur" }],
newPwdAgain: [
{ required: true, validator: changePwdAgain, trigger: "blur" },
],
......
......@@ -365,10 +365,10 @@
</template>
<script>
import { changeAccount, changePassWord } from "@/utils/validate";
import { checkAccount, checkPassWord } from "@/utils/validate";
import { getWindowList, saveWorkman } from "@/services/dept";
import { modelList } from "@/services/basicsetFun";
// import { changePhone, changeLandline } from "@/utils/validate";
// import { checkPhone, checkLandline } from "@/utils/validate";
import local from "@/utils/local";
export default {
props: {
......@@ -470,14 +470,14 @@ export default {
// { required: true, message: "窗口不能为空", trigger: "change" },
// ],
loginName: [
{ required: true, validator: changeAccount, trigger: "blur" },
{ required: true, validator: checkAccount, trigger: "blur" },
],
loginPwd: [
{ required: true, validator: changePassWord, trigger: "blur" },
{ required: true, validator: checkPassWord, trigger: "blur" },
],
// mobile: [{ required: false, validator: changePhone, trigger: "blur" }],
// mobile: [{ required: false, validator: checkPhone, trigger: "blur" }],
// phone: [
// { required: false, validator: changeLandline, trigger: "blur" },
// { required: false, validator: checkLandline, trigger: "blur" },
// ],
idCard: [{ required: false, validator: checkIdCard, trigger: "blur" }],
},
......
......@@ -12,7 +12,11 @@ export function isNumber(rule, value, callback) {
export const checkFlowNum = (rule, value, callback) => {
let reg = /^[A-Z][a-zA-Z0-9]{3,32}$/;
if (!value) {
callback(new Error("请输入流水编号"));
if (rule.required) {
callback(new Error(rule.msg || "请输入流水编号"));
} else {
callback();
}
} else if (!reg.test(value)) {
callback(new Error("格式为大写字母开头,4~32位"));
} else {
......@@ -42,9 +46,13 @@ export const checkBusinessName = (rule, value, callback) => {
}
};
// 验证账号
export const changeAccount = (rule, value, callback) => {
export const checkAccount = (rule, value, callback) => {
if (!value) {
callback(new Error("请输入用户名"));
if (rule.required) {
callback(new Error(rule.msg || "请输入用户名"));
} else {
callback();
}
} else if (!/^[a-zA-Z0-9_-]{2,16}$/.test(value)) {
callback(new Error("2到16位(字母,数字,下划线,中横线)"));
} else {
......@@ -53,9 +61,13 @@ export const changeAccount = (rule, value, callback) => {
};
// 验证密码
export const changePassWord = (rule, value, callback) => {
export const checkPassWord = (rule, value, callback) => {
if (!value) {
callback(new Error("请输入密码"));
if (rule.required) {
callback(new Error(rule.msg || "请输入密码"));
} else {
callback();
}
} else if (!/^[a-zA-Z0-9_-]{2,18}$/.test(value)) {
callback(new Error("2到18位(字母,数字,下划线,中横线)"));
} else {
......@@ -63,10 +75,13 @@ export const changePassWord = (rule, value, callback) => {
}
};
// 验证手机号码
export const changePhone = (rule, value, callback) => {
export const checkPhone = (rule, value, callback) => {
if (!value) {
callback(new Error("请输入手机号"));
callback();
if (rule.required) {
callback(new Error(rule.msg || "请输入手机号"));
} else {
callback();
}
} else if (!/^1[3-9]\d{9}$/.test(value)) {
callback(new Error("手机号码格式不正确"));
} else {
......@@ -75,11 +90,15 @@ export const changePhone = (rule, value, callback) => {
};
// 验证座机号码
export const changeLandline = (rule, value, callback) => {
export const checkLandline = (rule, value, callback) => {
let reg = /^[0][1-9]{2,3}-[0-9]{5,10}$/;
if (!value) {
// callback(new Error("请输入座机号"));
callback();
} else if (!/^[0][1-9]{2,3}-[0-9]{5,10}$/.test(value)) {
if (rule.required) {
callback(new Error(rule.msg || "请输入座机号"));
} else {
callback();
}
} else if (!reg.test(value)) {
callback(new Error("区号-电话号码"));
} else {
callback();
......@@ -87,7 +106,7 @@ export const changeLandline = (rule, value, callback) => {
};
// 窗口编号验证(字母加数字 数字不能大于1000)
export const changeWindowNumber = (rule, value, callback) => {
export const checkWindowNumber = (rule, value, callback) => {
if (!value) {
callback(new Error("请输入窗口编号"));
} else if (
......@@ -101,7 +120,7 @@ export const changeWindowNumber = (rule, value, callback) => {
};
// 校验编码
export const changeCodeNumber = (rule, value, callback) => {
export const checkCodeNumber = (rule, value, callback) => {
let reg = /^[a-zA-Z\d]{2,30}$/;
if (!value) {
callback(new Error("请输入编码"));
......@@ -113,13 +132,15 @@ export const changeCodeNumber = (rule, value, callback) => {
};
// 验证mac地址
export const checkMac = (rule, value, callback) => {
let reg =
/^(([a-f0-9][0,2,4,6,8,a,c,e]:([a-f0-9]{2}:){4})|([a-f0-9][0,2,4,6,8,a,c,e]-([a-f0-9]{2}-){4}))[a-f0-9]{2}$/i;
if (!value) {
callback(new Error("请输入mac地址"));
} else if (
!/^(([a-f0-9][0,2,4,6,8,a,c,e]:([a-f0-9]{2}:){4})|([a-f0-9][0,2,4,6,8,a,c,e]-([a-f0-9]{2}-){4}))[a-f0-9]{2}$/i.test(
value
)
) {
if (rule.required) {
callback(new Error(rule.msg || "请输入mac地址"));
} else {
callback();
}
} else if (!reg.test(value)) {
callback(new Error("mac地址格式错误"));
} else {
callback();
......@@ -128,17 +149,15 @@ export const checkMac = (rule, value, callback) => {
// 验证端口
export const checkPort = (rule, value, callback) => {
let reg =
/^([0-9]|[1-9]\d|[1-9]\d{2}|[1-9]\d{3}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])$/;
if (!value) {
if (rule.required) {
callback(new Error("端口号不能为空"));
callback(new Error(rule.msg || "请输入端口号"));
} else {
callback();
}
} else if (
!/^([0-9]|[1-9]\d|[1-9]\d{2}|[1-9]\d{3}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])$/.test(
value
)
) {
} else if (!reg.test(value)) {
callback(new Error("端口号格式错误"));
} else {
callback();
......@@ -147,19 +166,51 @@ export const checkPort = (rule, value, callback) => {
// 验证ip
export const checkIp = (rule, value, callback) => {
let reg =
/^(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])$/;
if (!value) {
if (rule.required) {
callback(new Error("ip不能为空"));
callback(new Error(rule.msg || "请输入ip"));
} else {
callback();
}
} else if (
!/^(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])$/.test(
value
)
) {
} else if (!reg.test(value)) {
callback(new Error("ip格式错误"));
} else {
callback();
}
};
// 验证邮箱
export const ckeckEmail = (rule, value, callback) => {
let reg = /^[A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/;
if (!value) {
if (rule.required) {
callback(new Error(rule.msg || "请输入邮箱"));
} else {
callback();
}
} else if (!reg.test(value)) {
callback(new Error("邮箱格式不正确"));
} else {
callback();
}
};
// 验证网址
export const ckeckUrl = (rule, value, callback) => {
let reg =
/^(((ht|f)tps?):\/\/)?([^!@#$%^&*?.\s-]([^!@#$%^&*?.\s]{0,63}[^!@#$%^&*?.\s])?\.)+[a-z]{2,6}\/?/;
if (!value) {
if (rule.required) {
callback(new Error(rule.msg || "请输入网址"));
} else {
callback();
}
} else if (!reg.test(value)) {
callback(new Error("网址格式错误"));
} else {
callback();
}
};
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