From f90ee55e6d63cd02c2b883bd5bd942c487fce56a Mon Sep 17 00:00:00 2001 From: Your Name <123456> Date: 星期六, 20 八月 2022 16:51:33 +0800 Subject: [PATCH] 修改bug --- /dev/null | 827 ----------------------------------------- src/views/specialWorkSystem/workFlow/approveBasic/index.vue | 5 src/utils/toolsValidate.ts | 328 +++++++-------- src/views/intellectInspect/inspectTaskManage/inspectTask/components/inspectTaskDialog.vue | 18 src/views/specialWorkSystem/foundationSet/safetyAction/index.vue | 5 src/views/intellectInspect/inspectBasic/discriminate/components/RFIDDialog.vue | 1 6 files changed, 171 insertions(+), 1,013 deletions(-) diff --git a/src/utils/toolsValidate.ts b/src/utils/toolsValidate.ts index f2cb9d6..9845b35 100644 --- a/src/utils/toolsValidate.ts +++ b/src/utils/toolsValidate.ts @@ -10,16 +10,16 @@ * @returns 返回处理后的字符串 */ export function verifyNumberPercentage(val: string): string { - // 匹配空格 - let v = val.replace(/(^\s*)|(\s*$)/g, ''); - // 只能是数字和小数点,不能是其他输入 - v = v.replace(/[^\d]/g, ''); - // 不能以0开始 - v = v.replace(/^0/g, ''); - // 数字超过100,赋值成最大值100 - v = v.replace(/^[1-9]\d\d{1,3}$/, '100'); - // 返回结果 - return v; + // 匹配空格 + let v = val.replace(/(^\s*)|(\s*$)/g, ''); + // 只能是数字和小数点,不能是其他输入 + v = v.replace(/[^\d]/g, ''); + // 不能以0开始 + v = v.replace(/^0/g, ''); + // 数字超过100,赋值成最大值100 + v = v.replace(/^[1-9]\d\d{1,3}$/, '100'); + // 返回结果 + return v; } /** @@ -28,13 +28,13 @@ * @returns 返回处理后的字符串 */ export function verifyNumberPercentageFloat(val: string): string { - let v = verifyNumberIntegerAndFloat(val); - // 数字超过100,赋值成最大值100 - v = v.replace(/^[1-9]\d\d{1,3}$/, '100'); - // 超过100之后不给再输入值 - v = v.replace(/^100\.$/, '100'); - // 返回结果 - return v; + let v = verifyNumberIntegerAndFloat(val); + // 数字超过100,赋值成最大值100 + v = v.replace(/^[1-9]\d\d{1,3}$/, '100'); + // 超过100之后不给再输入值 + v = v.replace(/^100\.$/, '100'); + // 返回结果 + return v; } /** @@ -43,20 +43,20 @@ * @returns 返回处理后的字符串 */ export function verifyNumberIntegerAndFloat(val: string) { - // 匹配空格 - let v = val.replace(/(^\s*)|(\s*$)/g, ''); - // 只能是数字和小数点,不能是其他输入 - v = v.replace(/[^\d.]/g, ''); - // 以0开始只能输入一个 - v = v.replace(/^0{2}$/g, '0'); - // 保证第一位只能是数字,不能是点 - v = v.replace(/^\./g, ''); - // 小数只能出现1位 - v = v.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.'); - // 小数点后面保留2位 - v = v.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3'); - // 返回结果 - return v; + // 匹配空格 + let v = val.replace(/(^\s*)|(\s*$)/g, ''); + // 只能是数字和小数点,不能是其他输入 + v = v.replace(/[^\d.]/g, ''); + // 以0开始只能输入一个 + v = v.replace(/^0{2}$/g, '0'); + // 保证第一位只能是数字,不能是点 + v = v.replace(/^\./g, ''); + // 小数只能出现1位 + v = v.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.'); + // 小数点后面保留2位 + v = v.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3'); + // 返回结果 + return v; } /** @@ -65,18 +65,18 @@ * @returns 返回处理后的字符串 */ export function verifiyNumberInteger(val: string) { - // 匹配空格 - let v = val.replace(/(^\s*)|(\s*$)/g, ''); - // 去掉 '.' , 防止贴贴的时候出现问题 如 0.1.12.12 - v = v.replace(/[\.]*/g, ''); - // 去掉以 0 开始后面的数, 防止贴贴的时候出现问题 如 00121323 - v = v.replace(/(^0[\d]*)$/g, '0'); - // 首位是0,只能出现一次 - v = v.replace(/^0\d$/g, '0'); - // 只匹配数字 - v = v.replace(/[^\d]/g, ''); - // 返回结果 - return v; + // 匹配空格 + let v = val.replace(/(^\s*)|(\s*$)/g, ''); + // 去掉 '.' , 防止贴贴的时候出现问题 如 0.1.12.12 + v = v.replace(/[\.]*/g, ''); + // 去掉以 0 开始后面的数, 防止贴贴的时候出现问题 如 00121323 + v = v.replace(/(^0[\d]*)$/g, '0'); + // 首位是0,只能出现一次 + v = v.replace(/^0\d$/g, '0'); + // 只匹配数字 + v = v.replace(/[^\d]/g, ''); + // 返回结果 + return v; } /** @@ -85,12 +85,12 @@ * @returns 返回处理后的字符串 */ export function verifyCnAndSpace(val: string) { - // 匹配中文与空格 - let v = val.replace(/[\u4e00-\u9fa5\s]+/g, ''); - // 匹配空格 - v = v.replace(/(^\s*)|(\s*$)/g, ''); - // 返回结果 - return v; + // 匹配中文与空格 + let v = val.replace(/[\u4e00-\u9fa5\s]+/g, ''); + // 匹配空格 + v = v.replace(/(^\s*)|(\s*$)/g, ''); + // 返回结果 + return v; } /** @@ -99,12 +99,12 @@ * @returns 返回处理后的字符串 */ export function verifyEnAndSpace(val: string) { - // 匹配英文与空格 - let v = val.replace(/[a-zA-Z]+/g, ''); - // 匹配空格 - v = v.replace(/(^\s*)|(\s*$)/g, ''); - // 返回结果 - return v; + // 匹配英文与空格 + let v = val.replace(/[a-zA-Z]+/g, ''); + // 匹配空格 + v = v.replace(/(^\s*)|(\s*$)/g, ''); + // 返回结果 + return v; } /** @@ -113,10 +113,10 @@ * @returns 返回处理后的字符串 */ export function verifyAndSpace(val: string) { - // 匹配空格 - let v = val.replace(/(^\s*)|(\s*$)/g, ''); - // 返回结果 - return v; + // 匹配空格 + let v = val.replace(/(^\s*)|(\s*$)/g, ''); + // 返回结果 + return v; } /** @@ -125,16 +125,16 @@ * @returns 返回处理后的字符串 */ export function verifyNumberComma(val: string) { - // 调用小数或整数(不可以负数)方法 - let v: any = verifyNumberIntegerAndFloat(val); - // 字符串转成数组 - v = v.toString().split('.'); - // \B 匹配非单词边界,两边都是单词字符或者两边都是非单词字符 - v[0] = v[0].replace(/\B(?=(\d{3})+(?!\d))/g, ','); - // 数组转字符串 - v = v.join('.'); - // 返回结果 - return v; + // 调用小数或整数(不可以负数)方法 + let v: any = verifyNumberIntegerAndFloat(val); + // 字符串转成数组 + v = v.toString().split('.'); + // \B 匹配非单词边界,两边都是单词字符或者两边都是非单词字符 + v[0] = v[0].replace(/\B(?=(\d{3})+(?!\d))/g, ','); + // 数组转字符串 + v = v.join('.'); + // 返回结果 + return v; } /** @@ -145,10 +145,10 @@ * @returns 返回处理后的字符串 */ export function verifyTextColor(val: string, text = '', color = 'red') { - // 返回内容,添加颜色 - let v = text.replace(new RegExp(val, 'gi'), `<span style='color: ${color}'>${val}</span>`); - // 返回结果 - return v; + // 返回内容,添加颜色 + let v = text.replace(new RegExp(val, 'gi'), `<span style='color: ${color}'>${val}</span>`); + // 返回结果 + return v; } /** @@ -158,29 +158,29 @@ * @returns 返回处理后的字符串 */ export function verifyNumberCnUppercase(val: any, unit = '仟佰拾亿仟佰拾万仟佰拾元角分', v = '') { - // 当前内容字符串添加 2个0,为什么?? - val += '00'; - // 返回某个指定的字符串值在字符串中首次出现的位置,没有出现,则该方法返回 -1 - let lookup = val.indexOf('.'); - // substring:不包含结束下标内容,substr:包含结束下标内容 - if (lookup >= 0) val = val.substring(0, lookup) + val.substr(lookup + 1, 2); - // 根据内容 val 的长度,截取返回对应大写 - unit = unit.substr(unit.length - val.length); - // 循环截取拼接大写 - for (let i = 0; i < val.length; i++) { - v += '零壹贰叁肆伍陆柒捌玖'.substr(val.substr(i, 1), 1) + unit.substr(i, 1); - } - // 正则处理 - v = v - .replace(/零角零分$/, '整') - .replace(/零[仟佰拾]/g, '零') - .replace(/零{2,}/g, '零') - .replace(/零([亿|万])/g, '$1') - .replace(/零+元/, '元') - .replace(/亿零{0,3}万/, '亿') - .replace(/^元/, '零元'); - // 返回结果 - return v; + // 当前内容字符串添加 2个0,为什么?? + val += '00'; + // 返回某个指定的字符串值在字符串中首次出现的位置,没有出现,则该方法返回 -1 + let lookup = val.indexOf('.'); + // substring:不包含结束下标内容,substr:包含结束下标内容 + if (lookup >= 0) val = val.substring(0, lookup) + val.substr(lookup + 1, 2); + // 根据内容 val 的长度,截取返回对应大写 + unit = unit.substr(unit.length - val.length); + // 循环截取拼接大写 + for (let i = 0; i < val.length; i++) { + v += '零壹贰叁肆伍陆柒捌玖'.substr(val.substr(i, 1), 1) + unit.substr(i, 1); + } + // 正则处理 + v = v + .replace(/零角零分$/, '整') + .replace(/零[仟佰拾]/g, '零') + .replace(/零{2,}/g, '零') + .replace(/零([亿|万])/g, '$1') + .replace(/零+元/, '元') + .replace(/亿零{0,3}万/, '亿') + .replace(/^元/, '零元'); + // 返回结果 + return v; } /** @@ -189,10 +189,10 @@ * @returns 返回 true: 手机号码正确 */ export function verifyPhone(val: string) { - // false: 手机号码不正确 - if (!/^((12[0-9])|(13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(18[0|1,5-9]))\d{8}$/.test(val)) return false; - // true: 手机号码正确 - else return true; + // false: 手机号码不正确 + if (!/^((12[0-9])|(13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(18[0|1,5-9]))\d{8}$/.test(val)) return false; + // true: 手机号码正确 + else return true; } /** @@ -201,10 +201,10 @@ * @returns 返回 true: 国内电话号码正确 */ export function verifyTelPhone(val: string) { - // false: 国内电话号码不正确 - if (!/\d{3}-\d{8}|\d{4}-\d{7}/.test(val)) return false; - // true: 国内电话号码正确 - else return true; + // false: 国内电话号码不正确 + if (!/\d{3}-\d{8}|\d{4}-\d{7}/.test(val)) return false; + // true: 国内电话号码正确 + else return true; } /** @@ -213,10 +213,10 @@ * @returns 返回 true: 登录账号正确 */ export function verifyAccount(val: string) { - // false: 登录账号不正确 - if (!/^[a-zA-Z][a-zA-Z0-9_]{4,15}$/.test(val)) return false; - // true: 登录账号正确 - else return true; + // false: 登录账号不正确 + if (!/^[a-zA-Z][a-zA-Z0-9_]{4,15}$/.test(val)) return false; + // true: 登录账号正确 + else return true; } /** @@ -225,10 +225,10 @@ * @returns 返回 true: 密码正确 */ export function verifyPassword(val: string) { - // false: 密码不正确 - if (!/^[a-zA-Z]\w{5,15}$/.test(val)) return false; - // true: 密码正确 - else return true; + // false: 密码不正确 + if (!/^[a-zA-Z]\w{5,15}$/.test(val)) return false; + // true: 密码正确 + else return true; } /** @@ -237,11 +237,10 @@ * @returns 返回 true: 强密码正确 */ export function verifyPasswordPowerful(val: string) { - // false: 强密码不正确 - if (!/^(?![a-zA-z]+$)(?!\d+$)(?![!@#$%^&\.*]+$)(?![a-zA-z\d]+$)(?![a-zA-z!@#$%^&\.*]+$)(?![\d!@#$%^&\.*]+$)[a-zA-Z\d!@#$%^&\.*]{6,16}$/.test(val)) - return false; - // true: 强密码正确 - else return true; + // false: 强密码不正确 + if (!/^(?![a-zA-z]+$)(?!\d+$)(?![!@#$%^&\.*]+$)(?![a-zA-z\d]+$)(?![a-zA-z!@#$%^&\.*]+$)(?![\d!@#$%^&\.*]+$)[a-zA-Z\d!@#$%^&\.*]{6,16}$/.test(val)) return false; + // true: 强密码正确 + else return true; } /** @@ -253,16 +252,15 @@ * @returns 返回处理后的字符串:弱、中、强 */ export function verifyPasswordStrength(val: string) { - let v = ''; - // 弱:纯数字,纯字母,纯特殊字符 - if (/^(?:\d+|[a-zA-Z]+|[!@#$%^&\.*]+){6,16}$/.test(val)) v = '弱'; - // 中:字母+数字,字母+特殊字符,数字+特殊字符 - if (/^(?![a-zA-z]+$)(?!\d+$)(?![!@#$%^&\.*]+$)[a-zA-Z\d!@#$%^&\.*]{6,16}$/.test(val)) v = '中'; - // 强:字母+数字+特殊字符 - if (/^(?![a-zA-z]+$)(?!\d+$)(?![!@#$%^&\.*]+$)(?![a-zA-z\d]+$)(?![a-zA-z!@#$%^&\.*]+$)(?![\d!@#$%^&\.*]+$)[a-zA-Z\d!@#$%^&\.*]{6,16}$/.test(val)) - v = '强'; - // 返回结果 - return v; + let v = ''; + // 弱:纯数字,纯字母,纯特殊字符 + if (/^(?:\d+|[a-zA-Z]+|[!@#$%^&\.*]+){6,16}$/.test(val)) v = '弱'; + // 中:字母+数字,字母+特殊字符,数字+特殊字符 + if (/^(?![a-zA-z]+$)(?!\d+$)(?![!@#$%^&\.*]+$)[a-zA-Z\d!@#$%^&\.*]{6,16}$/.test(val)) v = '中'; + // 强:字母+数字+特殊字符 + if (/^(?![a-zA-z]+$)(?!\d+$)(?![!@#$%^&\.*]+$)(?![a-zA-z\d]+$)(?![a-zA-z!@#$%^&\.*]+$)(?![\d!@#$%^&\.*]+$)[a-zA-Z\d!@#$%^&\.*]{6,16}$/.test(val)) v = '强'; + // 返回结果 + return v; } /** @@ -271,15 +269,10 @@ * @returns 返回 true: IP地址正确 */ export function verifyIPAddress(val: string) { - // false: IP地址不正确 - if ( - !/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/.test( - val - ) - ) - return false; - // true: IP地址正确 - else return true; + // false: IP地址不正确 + if (!/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/.test(val)) return false; + // true: IP地址正确 + else return true; } /** @@ -288,15 +281,10 @@ * @returns 返回 true: 邮箱正确 */ export function verifyEmail(val: string) { - // false: 邮箱不正确 - if ( - !/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test( - val - ) - ) - return false; - // true: 邮箱正确 - else return true; + // false: 邮箱不正确 + if (!/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(val)) return false; + // true: 邮箱正确 + else return true; } /** @@ -305,10 +293,10 @@ * @returns 返回 true: 身份证正确 */ export function verifyIdCard(val: string) { - // false: 身份证不正确 - if (!/^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/.test(val)) return false; - // true: 身份证正确 - else return true; + // false: 身份证不正确 + if (!/^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/.test(val)) return false; + // true: 身份证正确 + else return true; } /** @@ -317,10 +305,10 @@ * @returns 返回 true: 姓名正确 */ export function verifyFullName(val: string) { - // false: 姓名不正确 - if (!/^[\u4e00-\u9fa5]{1,6}(·[\u4e00-\u9fa5]{1,6}){0,2}$/.test(val)) return false; - // true: 姓名正确 - else return true; + // false: 姓名不正确 + if (!/^[\u4e00-\u9fa5]{1,6}(·[\u4e00-\u9fa5]{1,6}){0,2}$/.test(val)) return false; + // true: 姓名正确 + else return true; } /** @@ -329,10 +317,10 @@ * @returns 返回 true: 邮政编码正确 */ export function verifyPostalCode(val: string) { - // false: 邮政编码不正确 - if (!/^[1-9][0-9]{5}$/.test(val)) return false; - // true: 邮政编码正确 - else return true; + // false: 邮政编码不正确 + if (!/^[1-9][0-9]{5}$/.test(val)) return false; + // true: 邮政编码正确 + else return true; } /** @@ -341,15 +329,10 @@ * @returns 返回 true: url 正确 */ export function verifyUrl(val: string) { - // false: url不正确 - if ( - !/^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[/?#]\S*)?$/i.test( - val - ) - ) - return false; - // true: url正确 - else return true; + // false: url不正确 + if (!/^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[/?#]\S*)?$/i.test(val)) return false; + // true: url正确 + else return true; } /** @@ -358,13 +341,8 @@ * @returns 返回 true:车牌号正确 */ export function verifyCarNum(val: string) { - // false: 车牌号不正确 - if ( - !/^(([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-Z](([0-9]{5}[DF])|([DF]([A-HJ-NP-Z0-9])[0-9]{4})))|([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-Z][A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳使领]))$/.test( - val - ) - ) - return false; - // true:车牌号正确 - else return true; + // false: 车牌号不正确 + if (!/^(([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-Z](([0-9]{5}[DF])|([DF]([A-HJ-NP-Z0-9])[0-9]{4})))|([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-Z][A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳使领]))$/.test(val)) return false; + // true:车牌号正确 + else return true; } diff --git a/src/views/intellectInspect/inspectBasic/discriminate/components/RFIDDialog.vue b/src/views/intellectInspect/inspectBasic/discriminate/components/RFIDDialog.vue index a54d140..121e878 100644 --- a/src/views/intellectInspect/inspectBasic/discriminate/components/RFIDDialog.vue +++ b/src/views/intellectInspect/inspectBasic/discriminate/components/RFIDDialog.vue @@ -129,6 +129,7 @@ const getUploadUrl = async (rawFile: any) => { const res = await RFIDApi().getUploadUrl(rawFile.name); + debugger; state.RFIDForm.rfidImage = res.data.rfidImage; state.uploadUrl = res.data.uploadUrl; }; diff --git a/src/views/intellectInspect/inspectTaskManage/inspectTask/components/index.vue b/src/views/intellectInspect/inspectTaskManage/inspectTask/components/index.vue deleted file mode 100644 index 03c6499..0000000 --- a/src/views/intellectInspect/inspectTaskManage/inspectTask/components/index.vue +++ /dev/null @@ -1,827 +0,0 @@ -<template> - <div class="home-container"> - <div style="height: 100%"> - <el-row class="homeCard"> - <el-col :span="12"> - <div class="grid-content topInfo"> - <el-select v-model="searchType" @change="changeSearch" placeholder="任务名称"> - <el-option label="巡检任务类型" value="巡检任务类型" /> - <el-option label="创建人" value="创建人" /> - <el-option label="巡检班组" value="巡检班组" /> - <el-option label="检查频次" value="检查频次" /> - <el-option label="开始时间" value="开始时间" /> - </el-select> - <el-input v-model="searchContent" v-if="searchType == '任务名称'" placeholder="请输入任务名称"></el-input> - <el-input v-else-if="searchType == '检查频次'" v-model="searchContent" placeholder="请输入检查频次"> - <template #append> - <el-select v-model="searchUnit" placeholder="选择单位"> - <el-option label="分钟" value="分钟" /> - <el-option label="小时" value="小时" /> - <el-option label="天" value="天" /> - </el-select> - </template> - </el-input> - <el-select v-model="searchContent" v-else-if="searchType == '巡检任务类型'" placeholder="请选择任务类型"> - <el-option v-for="(item, index) in typeOptions" :label="item.name" :value="item.value" :key="index" /> - </el-select> - <el-select v-model="searchContent" v-else-if="searchType == '创建人'" placeholder="请选择创建人"> - <el-option v-for="(item, index) in createrOptions" :label="item.name" :value="item.value" :key="index" /> - </el-select> - <el-select v-model="searchContent" v-else-if="searchType == '巡检班组'" placeholder="请选择巡检班组"> - <el-option v-for="(item, index) in inspectorOptions" :label="item.name" :value="item.value" :key="index" /> - </el-select> - <el-date-picker v-model="searchContent" type="date" v-else :placeholder="'请选择' + searchType" size="large" style="margin-right: 20px" /> - <el-button type="primary">查询</el-button> - <el-button plain>重置</el-button> - </div> - </el-col> - </el-row> - <div class="homeCard"> - <div class="main-card"> - <el-row class="cardTop"> - <el-col :span="12" class="mainCardBtn"> - <el-button type="primary" :icon="Plus" size="default" @click="dialogAddRecord = true">新建</el-button> - <el-button type="danger" :icon="Delete" size="default" plain>删除</el-button> - </el-col> - <el-button type="primary" :icon="Refresh" size="default" /> - </el-row> - <el-table ref="multipleTableRef" :data="tableData" style="width: 100%" height="calc(100% - 100px)" :header-cell-style="{ background: '#fafafa' }" @selection-change="handleSelectionChange"> - <el-table-column type="selection" width="55" /> - <el-table-column property="name" label="任务名称" width="200" /> - <el-table-column property="type" label="任务类型" /> - <el-table-column property="execClassgroup" label="巡检班组" /> - <el-table-column property="frequency" label="检查频次" /> - <el-table-column property="unit" label="频次单位" /> - <el-table-column property="chainLength" label="巡检链长度" width="160" /> - <el-table-column property="startTime" label="任务开始时间" width="180" /> - <!-- <el-table-column property="validTime" label="任务有效时间" width="180"/>--> - <el-table-column property="creater" label="创建人" /> - <el-table-column property="createTime" label="创建时间" width="180" /> - <el-table-column property="status" label="状态" width="60" /> - <el-table-column fixed="right" label="操作" align="center" width="300"> - <template #default="scope"> - <el-button link type="primary" size="small" :icon="View" @click="viewRecord(scope.row)">查看</el-button> - <el-button link type="primary" size="small" :icon="Edit" @click="editRecord(scope.$index, scope.row)">修改</el-button> - <el-switch v-model="scope.row.status" inline-prompt active-text="开" inactive-text="关" active-value="开启" inactive-value="关闭" style="margin: 0 10px" /> - <el-button link type="danger" size="small" :icon="Delete" @click="deleteRecord(scope.$index)">删除</el-button> - </template> - </el-table-column> - </el-table> - <div class="pageBtn"> - <el-pagination v-model:currentPage="currentPage" v-model:page-size="pageSize" :page-sizes="[10, 15]" small="false" background layout="total, sizes, prev, pager, next, jumper" :total="100" @size-change="handleSizeChange" @current-change="handleCurrentChange" /> - </div> - </div> - </div> - </div> - - <el-dialog v-model="dialogDetails" title="巡检任务"> - <el-form :model="details" label-width="120px"> - <el-row> - <el-col :span="12" style="margin-bottom: 20px"> - <el-form-item label="任务名称"> - <el-input v-model="details.name" readonly /> - </el-form-item> - </el-col> - <el-col :span="12" style="margin-bottom: 20px"> - <el-form-item label="任务类型"> - <el-input v-model="details.type" readonly /> - </el-form-item> - </el-col> - <el-col :span="12" style="margin-bottom: 20px"> - <el-form-item label="巡检部门"> - <el-input v-model="details.execDepId" readonly /> - </el-form-item> - </el-col> - <el-col :span="12" style="margin-bottom: 20px"> - <el-form-item label="巡检班组"> - <el-input v-model="details.execClassgroup" readonly /> - </el-form-item> - </el-col> - <el-col :span="12" style="margin-bottom: 20px"> - <el-form-item label="检查频次" prop="frequency"> - <el-input v-model="details.frequency" readonly> - <template #append> - <el-input v-model="details.unit" readonly /> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :span="12" style="margin-bottom: 20px"> - <el-form-item label="提前通知时间"> - <el-input v-model="details.noticeTime" readonly /> - </el-form-item> - </el-col> - <el-col :span="12" style="margin-bottom: 20px"> - <el-form-item label="任务开始时间"> - <el-input v-model="details.startTime" readonly /> - </el-form-item> - </el-col> - <el-col :span="12" style="margin-bottom: 20px"> - <el-form-item label="周期有效时间"> - <el-input v-model="details.validTime" readonly /> - </el-form-item> - </el-col> - <el-col :span="24" style="margin-bottom: 20px"> - <el-form-item label="巡检链"> - <div style="width: 100%; margin-left: -30px"> - <div v-for="(item, index) in details.shiftSteps" class="stepItem"> - <div class="stepNum">{{ index + 1 }}</div> - <div class="stepCard"> - <el-card class="box-card"> - <template #header> - <div class="card-header"> - <div>{{ item.pointId }}</div> - </div> - </template> - <div class="text item"> - 所属设备区域:<span>{{ item.regionUuid }}</span> - </div> - <div class="text item"> - 关联RFID:<span>{{ item.rfidId }}</span> - </div> - <div class="text item"> - 巡检指标:<span>{{ item.quotaId }}</span> - </div> - <div class="text item"> - 数据填报类型:<span>{{ item.dataReportType }}</span> - </div> - <div class="text item"> - 数据参考值:<span>{{ item.firstReferenceValue ? item.firstReferenceValue : item.secondReferenceValue ? item.secondReferenceValue : item.thirdReferenceValue }}</span> - </div> - </el-card> - </div> - </div> - </div> - </el-form-item> - </el-col> - <el-form-item> - <el-button type="primary" @click="dialogDetails = false" size="default">确认</el-button> - </el-form-item> - </el-row> - </el-form> - </el-dialog> - - <el-dialog v-model="dialogAddRecord" title="巡检任务编辑" @close="closeAdd" @open="openAdd"> - <el-form :model="addRecord" label-width="120px" ref="addRef" :rules="addRules"> - <el-row> - <el-col :span="12" style="margin-bottom: 20px"> - <el-form-item label="任务名称" prop="name"> - <el-input v-model="addRecord.name"> </el-input> - </el-form-item> - </el-col> - <el-col :span="12" style="margin-bottom: 20px"> - <el-form-item label="任务类型" prop="type"> - <el-select v-model="addRecord.type"> - <el-option label="日常检查" value="日常检查" /> - <el-option label="周期检查" value="周期检查" /> - </el-select> - </el-form-item> - </el-col> - <el-col :span="12" style="margin-bottom: 20px"> - <el-form-item label="巡检部门" prop="validTime"> - <el-select v-model="addRecord.execDepId" placeholder="请选择"> - <el-option label="部门一" value="部门一" /> - <el-option label="部门二" value="部门二" /> - </el-select> - </el-form-item> - </el-col> - <el-col :span="12" style="margin-bottom: 20px"> - <el-form-item label="巡检班组" prop="execClassgroupId"> - <el-select v-model="addRecord.execClassgroup" placeholder="请选择"> - <el-option label="班组1" value="班组1" /> - <el-option label="班组2" value="班组2" /> - <el-option label="班组3" value="班组3" /> - </el-select> - </el-form-item> - </el-col> - <el-col :span="12" style="margin-bottom: 20px"> - <el-form-item label="检查频次" prop="frequency"> - <el-input v-model="addRecord.frequency" placeholder="请输入检查频次"> - <template #append> - <el-select v-model="addRecord.unit" placeholder="选择单位"> - <el-option label="分钟" value="分钟" /> - <el-option label="小时" value="小时" /> - <el-option label="天" value="天" /> - </el-select> - </template> - </el-input> - </el-form-item> - </el-col> - <el-col :span="12" style="margin-bottom: 20px"> - <el-form-item label="提前通知时间" prop="noticeTime"> - <el-select v-model="addRecord.noticeTime" placeholder="选择时间"> - <el-option label="15分钟" value="15分钟" /> - <el-option label="30分钟" value="30分钟" /> - <el-option label="45分钟" value="45分钟" /> - <el-option label="60分钟" value="60分钟" /> - <el-option label="75分钟" value="75分钟" /> - <el-option label="90分钟" value="90分钟" /> - </el-select> - </el-form-item> - </el-col> - <el-col :span="12" style="margin-bottom: 20px"> - <el-form-item label="周期开始时间" prop="startTime"> - <el-date-picker v-model="addRecord.startTime" type="datetime" format="YYYY/MM/DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" /> - </el-form-item> - </el-col> - <el-col :span="12" style="margin-bottom: 20px"> - <el-form-item label="任务有效时间" prop="validTime"> - <el-select v-model="addRecord.validTime" placeholder="选择时间"> - <el-option label="15分钟" value="15分钟" /> - <el-option label="30分钟" value="30分钟" /> - <el-option label="45分钟" value="45分钟" /> - <el-option label="60分钟" value="60分钟" /> - <el-option label="75分钟" value="75分钟" /> - <el-option label="90分钟" value="90分钟" /> - </el-select> - </el-form-item> - </el-col> - <el-col :span="24"> - <el-form-item label="创建巡检链"> - <div style="width: 100%; margin-bottom: 20px"> - <el-button type="primary" :icon="Plus" size="default" @click="dialogAddShift = true">新增巡检点</el-button> - </div> - <div style="width: 100%; margin-left: -30px"> - <div v-for="(item, index) in addRecord.shiftSteps" class="stepItem"> - <div class="stepNum">{{ index + 1 }}</div> - <div class="stepCard"> - <el-card class="box-card"> - <template #header> - <div class="card-header"> - <div>{{ item.pointId }}</div> - </div> - </template> - <div class="text item"> - 所属设备区域:<span>{{ item.regionUuid }}</span> - </div> - <div class="text item"> - 关联RFID:<span>{{ item.rfidId }}</span> - </div> - <div class="text item"> - 巡检指标:<span>{{ item.quotaId }}</span> - </div> - <div class="text item"> - 数据填报类型:<span>{{ item.dataReportType }}</span> - </div> - <div class="text item"> - 数据参考值:<span>{{ item.firstReferenceValue ? item.firstReferenceValue : item.secondReferenceValue ? item.secondReferenceValue : item.thirdReferenceValue }}</span> - </div> - </el-card> - </div> - <div> - <!-- <el-button type="primary" size="default" @click="addFlow(index)">新增下一区域</el-button>--> - <el-button type="primary" size="default" @click="editFlow(index)">修改</el-button> - <el-button type="danger" size="default" @click="deleteFlow(index)">删除</el-button> - </div> - </div> - </div> - </el-form-item> - </el-col> - </el-row> - <el-form-item> - <el-button type="warning" @click="dialogAddRecord = false" size="default" plain>取消</el-button> - <el-button type="primary" @click="confirmAddRecord(addRef)" size="default">确认</el-button> - </el-form-item> - </el-form> - </el-dialog> - <el-dialog v-model="deleteDialog" title="提示" width="30%" center @close="indexClear"> - <span>您确定要删除该条记录吗?</span> - <template #footer> - <span class="dialog-footer"> - <el-button @click="deleteDialog = false" size="default">取消</el-button> - <el-button type="primary" @click="conFirmDelete" size="default">确认</el-button> - </span> - </template> - </el-dialog> - <el-dialog v-model="deleteShiftDialog" title="提示" width="30%" center @close="indexShiftClear"> - <span>您确定要删除该巡检点吗?</span> - <template #footer> - <span class="dialog-footer"> - <el-button @click="deleteShiftDialog = false" size="default">取消</el-button> - <el-button type="primary" @click="conFirmShiftDelete" size="default">确认</el-button> - </span> - </template> - </el-dialog> - <el-dialog v-model="dialogAddShift" title="新增巡检点" @close="closeAddShift"> - <el-form :model="addShift" label-width="120px" ref="addShiftRef" :rules="addShiftRules"> - <el-form-item label="选择巡检点" prop="pointId"> - <el-select v-model="addShift.pointId"> - <el-option label="73011" value="73011" /> - <el-option label="73012" value="73012" /> - </el-select> - </el-form-item> - <el-form-item label="所属设备区域"> - <el-input v-model="addShift.regionId" readonly /> - </el-form-item> - <el-form-item label="关联RFID"> - <el-input v-model="addShift.rfidId" readonly /> - </el-form-item> - <el-form-item label="选择巡检指标" prop="quotaId"> - <el-input v-model="addShift.quotaId" placeholder="Please input"> - <template #append>{{ addShift.quotaUnit }}</template> - </el-input> - </el-form-item> - <el-form-item label="数据填报类型" prop="dataReportType"> - <el-select v-model="addShift.dataReportType"> - <el-option label="选择" value="选择" /> - <el-option label="填空" value="填空" /> - <el-option label="选择并填空" value="选择并填空" /> - </el-select> - </el-form-item> - <el-form-item v-if="addShift.dataReportType == '选择' || addShift.dataReportType == '选择并填空'" label="数据参考值" prop="firstReferenceValue"> - <el-select v-model="addShift.firstReferenceValue"> - <el-option label="正常" value="正常" /> - <el-option label="异常" value="异常" /> - </el-select> - </el-form-item> - <el-form-item v-if="addShift.dataReportType == '填空' || addShift.dataReportType == '选择并填空'" label="数据参考值"> - <el-input v-model="addShift.secondReferenceValue" type="number" placeholder="请根据需求选择前方符号后再填写参考值,非必填"> - <template #prepend> - <el-select v-model="addShift.secondReferenceSign" placeholder="Select" style="width: 115px"> - <el-option label=">" value=">" /> - <el-option label=">=" value=">=" /> - </el-select> - </template> - </el-input> - </el-form-item> - <el-form-item v-if="addShift.dataReportType == '填空' || addShift.dataReportType == '选择并填空'" label=""> - <el-input v-model="addShift.thirdReferenceValue" type="number" placeholder="请根据需求选择前方符号后再填写参考值,非必填"> - <template #prepend> - <el-select v-model="addShift.thirdReferenceSign" placeholder="Select" style="width: 115px"> - <el-option label="<" value="<" /> - <el-option label="<=" value="<=" /> - </el-select> - </template> - </el-input> - </el-form-item> - <el-form-item> - <el-button type="warning" @click="dialogAddShift = false" size="default" plain>取消</el-button> - <el-button type="primary" @click="confirmAddShift(addShiftRef)" size="default">确认</el-button> - </el-form-item> - </el-form> - </el-dialog> - </div> -</template> - -<script lang="ts"> -import { toRefs, reactive, ref } from 'vue'; -import { storeToRefs } from 'pinia'; -import { initBackEndControlRoutes } from '/@/router/backEnd'; -import { useUserInfo } from '/@/stores/userInfo'; -import { Session } from '/@/utils/storage'; -import { Edit, View, Plus, Delete, Refresh, Search, Download } from '@element-plus/icons-vue'; -import { ElTable, ElMessage } from 'element-plus'; -import { FormInstance, FormRules } from 'element-plus'; -import { RFIDApi } from '/@/api/intellectInspectSystem/RFID'; -let global: any = { - homeChartOne: null, - homeChartTwo: null, - homeCharThree: null, - dispose: [null, '', undefined] -}; - -interface stateType { - homeOne: Array<type>; -} -interface type {} -export default { - name: 'index', - components: {}, - setup() { - const userInfo = useUserInfo(); - const { userInfos } = storeToRefs(userInfo); - - const state = reactive({ - searchType: '任务名称', - typeOptions: [ - { - name: '日常检查', - value: '日常检查' - }, - { - name: '周期检查', - value: '周期检查' - } - ], - createrOptions: [ - { - name: '张三', - value: '张三' - }, - { - name: '李四', - value: '李四' - } - ], - inspectorOptions: [ - { - name: '李四', - value: '李四' - }, - { - name: '张三', - value: '张三' - } - ], - searchUnit: '小时', - searchContent: '', - currentPage: 1, - pageSize: 10, - chosenIndex: null, - chosenShiftIndex: null, - chosenInspectionIndex: null, - dialogDetails: false, - dialogAddRecord: false, - deleteDialog: false, - deleteShiftDialog: false, - deleteInspectionDialog: false, - dialogAddShift: false, - tableData: [], - total: null, - params: {}, - addRecord: { - name: '', - type: '', - creater: '', - inspector: '', - frequency: 1, - unit: '小时', - startTime: '', - validTime: '', - createTime: '', - chainLength: 0, - status: '开启', - shiftSteps: [] - }, - addShift: { - secondReferenceSign: '>', - thirdReferenceSign: '<' - }, - details: {} - }); - - //获取巡检任务数据 - const getInspectionTask = async () => { - let res = await RFIDApi().getRFIDList(state.params); - if (res.data.code === '200') { - state.tableData = res.data.data.records; - state.total = res.data.data.total; - } else { - ElMessage({ - type: 'warning', - message: res.data.msg - }); - } - }; - - // 顶部筛选搜索 - const changeSearch = () => { - state.searchContent = ''; - }; - - const handleSizeChange = (val: number) => { - console.log(`${val} items per page`); - }; - const handleCurrentChange = (val: number) => { - console.log(`current page: ${val}`); - }; - - // 时间格式化 - const timeForm = { - hour12: false, - year: 'numeric', - month: '2-digit', - day: '2-digit', - hour: '2-digit', - minute: '2-digit', - second: '2-digit' - }; - const handleChange = (value) => { - state.addRecord.content = []; - console.log(JSON.parse(JSON.stringify(value))); - }; - const addRef = ref<FormInstance>(); - const addShiftRef = ref<FormInstance>(); - const addInspectionRef = ref<FormInstance>(); - - // 表单校验 - const addRules = reactive<FormRules>({ - name: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], - type: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], - execClassgroupId: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], - frequency: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], - unit: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], - noticeTime: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], - startTime: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], - validTime: [{ required: true, message: '该内容不能为空', trigger: 'blur' }] - }); - const addShiftRules = reactive<FormRules>({ - pointId: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], - quotaId: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], - dataReportType: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], - firstReferenceValue: [{ required: true, message: '该内容不能为空', trigger: 'blur' }] - }); - - // 查看记录 - const viewRecord = (row) => { - state.details = JSON.parse(JSON.stringify(row)); - state.dialogDetails = true; - }; - - // 删除记录 - const deleteRecord = (index) => { - state.chosenIndex = index; - state.deleteDialog = true; - }; - const conFirmDelete = () => { - state.tableData.splice(state.chosenIndex, 1); - state.deleteDialog = false; - }; - - // 修改添加记录 - const editRecord = (index, row) => { - state.chosenIndex = index; - state.dialogAddRecord = true; - state.addRecord = JSON.parse(JSON.stringify(row)); - }; - const confirmAddRecord = async (formEl: FormInstance | undefined) => { - if (!formEl) return; - await formEl.validate((valid, fields) => { - if (valid) { - if (state.chosenIndex == null) { - if (!state.addRecord.shiftSteps || state.addRecord.shiftSteps.length == 0) { - ElMessage({ - message: '请先设置巡检链后再提交', - type: 'warning' - }); - return; - } else { - state.addRecord.createTime = new Date().toLocaleString('zh', timeForm).replace(/\//g, '-'); - state.addRecord.chainLength = state.addRecord.shiftSteps.length; - state.addRecord.status = '开启'; - state.tableData.unshift(state.addRecord); - } - } else { - if (state.addRecord.shiftSteps.length == 0) { - ElMessage({ - message: '请先设置巡检链后再提交', - type: 'warning' - }); - return; - } else { - state.tableData[state.chosenIndex] = state.addRecord; - } - } - state.dialogAddRecord = false; - } else { - console.log('error submit!', fields); - } - }); - }; - - // 添加弹窗打开前预操作 - const openAdd = () => { - state.addRecord.unit = '小时'; - }; - - // 弹窗关闭后判断数据初始化 - const closeAdd = () => { - state.addRecord = {}; - state.chosenIndex = null; - state.addShift = {}; - state.chosenShiftIndex = null; - }; - const indexClear = () => { - state.chosenIndex = null; - }; - const indexShiftClear = () => { - state.chosenShiftIndex = null; - }; - - // 排序 - // function compare(key) { - // return function (value1, value2) { - // var val1 = value1[key]; - // var val2 = value2[key]; - // return val1 - val2; - // } - // } - - // 添加删除巡检设施区域 - // const addFlow = (index) => { - // state.dialogAddShift = true - // state.chosenShiftIndex = index - // } - - // 编辑巡检点 - const editFlow = (index) => { - state.chosenShiftIndex = index; - state.addShift = JSON.parse(JSON.stringify(state.addRecord.shiftSteps[index])); - state.dialogAddShift = true; - }; - - // 删除巡检点 - const deleteFlow = (index) => { - state.deleteShiftDialog = true; - state.chosenShiftIndex = index; - }; - const conFirmShiftDelete = () => { - state.addRecord.shiftSteps.splice(state.chosenShiftIndex, 1); - state.deleteShiftDialog = false; - }; - // 增加修改巡检点 - const confirmAddShift = async (formEl: FormInstance | undefined) => { - if (!formEl) return; - await formEl.validate((valid, fields) => { - if (valid) { - if (state.chosenShiftIndex == null) { - if (!state.addRecord.shiftSteps) { - state.addRecord.shiftSteps = []; - } - state.addRecord.shiftSteps.push(state.addShift); - } else { - state.addRecord.shiftSteps[state.chosenShiftIndex] = state.addShift; - } - state.dialogAddShift = false; - } else { - console.log('error submit!', fields); - } - }); - }; - - const closeAddShift = () => { - state.addShift = {}; - state.chosenShiftIndex = null; - }; - - return { - addRef, - addShiftRef, - addInspectionRef, - addRules, - addShiftRules, - View, - Edit, - Delete, - Refresh, - Plus, - changeSearch, - handleSizeChange, - handleCurrentChange, - handleChange, - viewRecord, - deleteRecord, - conFirmDelete, - openAdd, - editRecord, - confirmAddRecord, - closeAdd, - conFirmShiftDelete, - confirmAddShift, - closeAddShift, - editFlow, - deleteFlow, - indexClear, - indexShiftClear, - ...toRefs(state) - }; - } -}; -</script> - -<style scoped lang="scss"> -$homeNavLengh: 8; -.home-container { - height: calc(100vh - 144px); - box-sizing: border-box; - overflow: hidden; - .homeCard { - width: 100%; - padding: 20px; - box-sizing: border-box; - background: #fff; - border-radius: 4px; - - .main-card { - width: 100%; - height: 100%; - .cardTop { - display: flex; - align-items: center; - justify-content: space-between; - margin-bottom: 20px; - .mainCardBtn { - margin: 0; - } - } - .pageBtn { - height: 60px; - display: flex; - align-items: center; - justify-content: right; - - .demo-pagination-block + .demo-pagination-block { - margin-top: 10px; - } - .demo-pagination-block .demonstration { - margin-bottom: 16px; - } - } - } - &:last-of-type { - height: calc(100% - 100px); - } - } - .el-row { - display: flex; - align-items: center; - margin-bottom: 20px; - &:last-child { - margin-bottom: 0; - } - .grid-content { - align-items: center; - min-height: 36px; - } - - .topInfo { - display: flex; - align-items: center; - font-size: 16px; - font-weight: bold; - - & > div { - white-space: nowrap; - margin-right: 20px; - } - } - } -} -.stepItem { - width: 100%; - display: flex; - align-items: flex-start; - margin-bottom: 30px; - margin-left: 30px; - padding-bottom: 30px; - border-left: 2px solid #ccc; - &:first-of-type { - margin-top: 30px; - } - &:last-of-type { - margin-bottom: 0; - border-left: none; - } - .stepNum { - width: 30px; - height: 30px; - border-radius: 15px; - box-sizing: border-box; - color: #333; - border: 1px solid #999; - line-height: 28px; - text-align: center; - margin-right: 10px; - margin-left: -16px; - margin-top: -30px; - } - .stepCard { - width: 100%; - margin-top: -30px; - - .box-card { - width: 100%; - &:deep(.el-card__header) { - padding: 10px 15px; - } - .card-header { - width: 100%; - display: flex; - justify-content: space-between; - align-items: center; - & > div:first-of-type { - margin-right: 80px; - font-size: 18px; - font-weight: bold; - } - } - } - } - &:hover .card-header { - color: #0098f5; - } - &:hover .stepNum { - border: 2px solid #0098f5; - color: #0098f5; - } -} -.el-input { - width: 100% !important; -} -:deep(.el-date-editor) { - width: 100%; -} -.el-select { - width: 100%; -} -</style> diff --git a/src/views/intellectInspect/inspectTaskManage/inspectTask/components/inspectTaskDialog.vue b/src/views/intellectInspect/inspectTaskManage/inspectTask/components/inspectTaskDialog.vue index c0ee1c0..48c420c 100644 --- a/src/views/intellectInspect/inspectTaskManage/inspectTask/components/inspectTaskDialog.vue +++ b/src/views/intellectInspect/inspectTaskManage/inspectTask/components/inspectTaskDialog.vue @@ -29,7 +29,7 @@ </el-col> <el-col :span="12" style="margin-bottom: 20px"> <el-form-item label="巡检周期" prop="checkCycle"> - <el-input v-model="inspectTaskForm.checkCycle" :disabled="!inspectPointConfirm" placeholder="请输入巡检周期" class="input-add"> + <el-input v-model="inspectTaskForm.checkCycle" @input="onVerifiyNumberInteger($event, 'checkCycle')" :disabled="!inspectPointConfirm" placeholder="请输入巡检周期" class="input-add"> <template #append> <el-select v-model="inspectTaskForm.checkCycleUnit" :disabled="!inspectPointConfirm" placeholder="选择单位"> <el-option v-for="item in timeList" :key="item.id" :value="item.id" :label="item.name"></el-option> @@ -40,7 +40,7 @@ </el-col> <el-col :span="12" style="margin-bottom: 20px"> <el-form-item label="提前通知时间" prop="noticeTime"> - <el-input v-model="inspectTaskForm.noticeTime" :disabled="!inspectPointConfirm" placeholder="请输入提前通知时间" class="input-add"> + <el-input @input="onVerifiyNumberInteger($event, 'noticeTime')" v-model="inspectTaskForm.noticeTime" :disabled="!inspectPointConfirm" placeholder="请输入提前通知时间" class="input-add"> <template #append> <el-select v-model="inspectTaskForm.noticeTimeUnit" :disabled="!inspectPointConfirm" placeholder="选择单位"> <el-option v-for="item in timeList" :key="item.id" :value="item.id" :label="item.name"></el-option> @@ -51,7 +51,7 @@ </el-col> <el-col :span="12" style="margin-bottom: 20px"> <el-form-item label="有效时间" prop="validTime"> - <el-input v-model="inspectTaskForm.validTime" :disabled="!inspectPointConfirm" placeholder="请输入有效时间" class="input-add"> + <el-input v-model="inspectTaskForm.validTime" @input="onVerifiyNumberInteger($event, 'validTime')" :disabled="!inspectPointConfirm" placeholder="请输入有效时间" class="input-add"> <template #append> <el-select v-model="inspectTaskForm.validTimeUnit" :disabled="!inspectPointConfirm" placeholder="选择单位"> <el-option v-for="item in timeList" :key="item.id" :value="item.id" :label="item.name"></el-option> @@ -200,6 +200,7 @@ import { ElMessage } from 'element-plus/es'; import { inspectTaskApi } from '/@/api/intellectInspectSystem/inspectTask'; import { facilityAreaApi } from '/@/api/intellectInspectSystem/facilityAreaManage'; +import { verifiyNumberInteger } from '/@/utils/toolsValidate'; interface dataState { title: string; pointTitle: string; @@ -595,12 +596,23 @@ }); }; + const onVerifiyNumberInteger = (val: number, title: string) => { + if (title === 'noticeTime') { + data.inspectTaskForm.noticeTime = Number(verifiyNumberInteger(val.toString())) === 0 ? null : Number(verifiyNumberInteger(val.toString())); + } else if (title === 'checkCycle') { + data.inspectTaskForm.checkCycle = Number(verifiyNumberInteger(val.toString())) === 0 ? null : Number(verifiyNumberInteger(val.toString())); + } else { + data.inspectTaskForm.validTime = Number(verifiyNumberInteger(val.toString())) === 0 ? null : Number(verifiyNumberInteger(val.toString())); + } + }; + return { ...toRefs(data), inspectTaskFormRef, deleteFlow, giveQuotaUnit, giveClassGroup, + onVerifiyNumberInteger, submitInspectTask, submitInspectPoint, giveRegionAndRFID, diff --git a/src/views/specialWorkSystem/foundationSet/safetyAction/index.vue b/src/views/specialWorkSystem/foundationSet/safetyAction/index.vue index 65c1651..f51701b 100644 --- a/src/views/specialWorkSystem/foundationSet/safetyAction/index.vue +++ b/src/views/specialWorkSystem/foundationSet/safetyAction/index.vue @@ -289,7 +289,7 @@ <style scoped lang="scss"> $homeNavLengh: 8; .home-container { - height: calc(100vh - 114px); + height: calc(100vh - 144px); box-sizing: border-box; overflow: hidden; .homeCard { @@ -411,9 +411,6 @@ border: 2px solid #0098f5; color: #0098f5; } -} -:deep(.el-date-editor) { - width: 100%; } :deep(.el-textarea.is-disabled .el-textarea__inner) { background-color: var(--el-card-bg-color); diff --git a/src/views/specialWorkSystem/workFlow/approveBasic/index.vue b/src/views/specialWorkSystem/workFlow/approveBasic/index.vue index d6fda36..47badfd 100644 --- a/src/views/specialWorkSystem/workFlow/approveBasic/index.vue +++ b/src/views/specialWorkSystem/workFlow/approveBasic/index.vue @@ -316,7 +316,7 @@ <style scoped lang="scss"> $homeNavLengh: 8; .home-container { - height: calc(100vh - 114px); + height: calc(100vh - 144px); box-sizing: border-box; overflow: hidden; .homeCard { @@ -438,9 +438,6 @@ border: 2px solid #0098f5; color: #0098f5; } -} -:deep(.el-date-editor) { - width: 100%; } :deep(.el-textarea.is-disabled .el-textarea__inner) { background-color: var(--el-card-bg-color); -- Gitblit v1.9.2