From b992e03959ca8ead91265abe480e3842f2b72ef0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E8=A3=95=E8=B4=A2?= Date: Tue, 1 Mar 2022 01:34:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/js/util.js | 329 ++++++++++++------ .../core/xmProjectGroup/XmProjectGroupMng.vue | 15 +- .../XmProjectGroupUserEdit.vue | 55 ++- .../XmProjectGroupUserMng.vue | 51 +-- 4 files changed, 279 insertions(+), 171 deletions(-) diff --git a/src/common/js/util.js b/src/common/js/util.js index ea607759..cdff579f 100644 --- a/src/common/js/util.js +++ b/src/common/js/util.js @@ -1,26 +1,110 @@ var SIGN_REGEXP = /([yMdhsmH])(\1*)/g var DEFAULT_PATTERN = 'yyyy-MM-dd' + function padding(s, len) { var len = len - (s + '').length - for (var i = 0; i < len; i++) { s = '0' + s } + for (var i = 0; i < len; i++) { + s = '0' + s + } return s } + + export default { + + getPositionTop(node) { + var top = node.offsetTop; + var parent = node.offsetParent; + while(parent != null) { + top += parent.offsetTop; + parent = parent.offsetParent; + } + return top; + }, + /** + * 获取时间的前后几分钟 + * @param {starTime,endTime} string yyyy-MM-dd HH:ss string yyyy-MM-dd HH:ss + * @return {formatdate} string + */ + timeDifference(starTime, endTime) { + //转成时间戳 + if (starTime) { + let starDate = new Date(starTime), + endDate = new Date(endTime) + let starStamps = starDate.getTime(), + endStamps = endDate.getTime(), + betweenStamps = '' + betweenStamps = Math.abs((parseInt(endStamps - starStamps))) + + let minute = parseInt(betweenStamps / 60000) //取分钟 + return minute + } else { + console.log('时间空') + } + + }, + /** + * 获取时间的前后几分钟 + * @param {dateTime,type,minuteNum} string yyyy-MM-dd HH:mm:ss string number + * @return {formatdate} string + */ + getAboutTime(dateTime, minuteNum) { + let string = dateTime.replace(/-/g, "/"), + date = new Date(string), + timeStamps = '', + dateObj = '', + hour = '', + minute = '', + formatdate = '' + timeStamps = date.setTime(date.getTime() - parseInt(minuteNum) * 60000) + dateObj = new Date(timeStamps) + + hour = dateObj.getHours() + if (hour < 10) { + hour = '0' + hour + } + minute = dateObj.getMinutes() + if (minute < 10) { + minute = '0' + minute + } + + formatdate = hour + ":" + minute //设置时间格式 + return formatdate + }, + //时间2020-09-30 + getDate() { + var date = new Date() + var myyear = date.getFullYear(); + var mymonth = date.getMonth() + 1; + var myweekday = date.getDate(); + if (mymonth < 10) { + mymonth = "0" + mymonth; + } + if (myweekday < 10) { + myweekday = "0" + myweekday; + } + + return (myyear + "-" + mymonth + "-" + myweekday); + }, + getQueryStringByName: function(name) { var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i') var r = window.location.search.substr(1).match(reg) var context = '' - if (r != null) { context = r[2] } + if (r != null) { + context = r[2] + } reg = null r = null return context == null || context == '' || context == 'undefined' ? '' : context }, - fmoney(s,n) { + fmoney(s, n) { n = n > 0 && n <= 20 ? n : 2; s = parseFloat((s + "").replace(/[^\d\.-]/g, "")).toFixed(n) + ""; - var l = s.split(".")[0].split("").reverse(), r = s.split(".")[1]; + var l = s.split(".")[0].split("").reverse(), + r = s.split(".")[1]; var t = ""; for (let i = 0; i < l.length; i++) { t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? "," : ""); @@ -29,26 +113,26 @@ export default { }, isNull(obj) { - if(obj === null || obj === '' || obj === undefined) { - return true; + if (obj === null || obj === '' || obj === undefined) { + return true; } return false; }, /** * 字段转成驼峰命名 - * @param {*} name + * @param {*} name */ toCamel(name) { - return name.replace(/\_(\w)/g, function(all, letter){ - return letter.toUpperCase(); + return name.replace(/\_(\w)/g, function(all, letter) { + return letter.toUpperCase(); }); }, /** * 驼峰转下横线 - * @param {*} name + * @param {*} name */ toLine(name) { - return name.replace(/([A-Z])/g,"_$1").toLowerCase(); + return name.replace(/([A-Z])/g, "_$1").toLowerCase(); }, formatDate: { @@ -56,14 +140,22 @@ export default { pattern = pattern || DEFAULT_PATTERN return pattern.replace(SIGN_REGEXP, function($0) { switch ($0.charAt(0)) { - case 'y': return padding(date.getFullYear(), $0.length) - case 'M': return padding(date.getMonth() + 1, $0.length) - case 'd': return padding(date.getDate(), $0.length) - case 'w': return date.getDay() + 1 - case 'h': return padding(date.getHours(), $0.length) - case 'H': return padding(date.getHours(), $0.length) - case 'm': return padding(date.getMinutes(), $0.length) - case 's': return padding(date.getSeconds(), $0.length) + case 'y': + return padding(date.getFullYear(), $0.length) + case 'M': + return padding(date.getMonth() + 1, $0.length) + case 'd': + return padding(date.getDate(), $0.length) + case 'w': + return date.getDay() + 1 + case 'h': + return padding(date.getHours(), $0.length) + case 'H': + return padding(date.getHours(), $0.length) + case 'm': + return padding(date.getMinutes(), $0.length) + case 's': + return padding(date.getSeconds(), $0.length) } }) }, @@ -76,12 +168,24 @@ export default { var _int = parseInt(matchs2[i]) var sign = matchs1[i] switch (sign.charAt(0)) { - case 'y': _date.setFullYear(_int); break - case 'M': _date.setMonth(_int - 1); break - case 'd': _date.setDate(_int); break - case 'h': _date.setHours(_int); break - case 'm': _date.setMinutes(_int); break - case 's': _date.setSeconds(_int); break + case 'y': + _date.setFullYear(_int); + break + case 'M': + _date.setMonth(_int - 1); + break + case 'd': + _date.setDate(_int); + break + case 'h': + _date.setHours(_int); + break + case 'm': + _date.setMinutes(_int); + break + case 's': + _date.setSeconds(_int); + break } } return _date @@ -90,176 +194,179 @@ export default { }, }, - + //type date/daterange - pickerOptions: function(type){ - if(type!='datarange'){ - var shortcuts= [{ + pickerOptions: function(type) { + if (type != 'datarange') { + var shortcuts = [{ text: '今天', onClick(picker) { - picker.$emit('pick', new Date()); + picker.$emit('pick', new Date()); } }, { text: '昨天', onClick(picker) { - const date = new Date(); - date.setTime(date.getTime() - 3600 * 1000 * 24); - picker.$emit('pick', date); + const date = new Date(); + date.setTime(date.getTime() - 3600 * 1000 * 24); + picker.$emit('pick', date); } }, { text: '前一周', onClick(picker) { - const date = new Date(); - date.setTime(date.getTime() - 3600 * 1000 * 24 * 7); - picker.$emit('pick', date); + const date = new Date(); + date.setTime(date.getTime() - 3600 * 1000 * 24 * 7); + picker.$emit('pick', date); } }, { text: '前两周', onClick(picker) { - const date = new Date(); - date.setTime(date.getTime() - 3600 * 1000 * 24 * 7 * 2); - picker.$emit('pick', date); + const date = new Date(); + date.setTime(date.getTime() - 3600 * 1000 * 24 * 7 * 2); + picker.$emit('pick', date); } }, { text: '前四周', onClick(picker) { - const date = new Date(); - date.setTime(date.getTime() - 3600 * 1000 * 24 * 7 * 4); - picker.$emit('pick', date); + const date = new Date(); + date.setTime(date.getTime() - 3600 * 1000 * 24 * 7 * 4); + picker.$emit('pick', date); } }, { text: '后一周', onClick(picker) { - const date = new Date(); - date.setTime(date.getTime() + 3600 * 1000 * 24 * 7); - picker.$emit('pick', date); + const date = new Date(); + date.setTime(date.getTime() + 3600 * 1000 * 24 * 7); + picker.$emit('pick', date); } }, { text: '后两周', onClick(picker) { - const date = new Date(); - date.setTime(date.getTime() + 3600 * 1000 * 24 * 7 *2); - picker.$emit('pick', date); + const date = new Date(); + date.setTime(date.getTime() + 3600 * 1000 * 24 * 7 * 2); + picker.$emit('pick', date); } }, { text: '后一月', onClick(picker) { - const date = new Date(); - date.setTime(date.getTime() + 3600 * 1000 * 24 * 7 * 4); - picker.$emit('pick', date); + const date = new Date(); + date.setTime(date.getTime() + 3600 * 1000 * 24 * 7 * 4); + picker.$emit('pick', date); } }, { text: '后两月', onClick(picker) { - const date = new Date(); - date.setTime(date.getTime() + 3600 * 1000 * 24 * 7 * 8); - picker.$emit('pick', date); + const date = new Date(); + date.setTime(date.getTime() + 3600 * 1000 * 24 * 7 * 8); + picker.$emit('pick', date); } }, { text: '后四月', onClick(picker) { - const date = new Date(); - date.setTime(date.getTime() + 3600 * 1000 * 24 * 7 * 16); - picker.$emit('pick', date); + const date = new Date(); + date.setTime(date.getTime() + 3600 * 1000 * 24 * 7 * 16); + picker.$emit('pick', date); } }] - return {shortcuts:shortcuts}; - }else{ - var shortcuts= [ - { + return { + shortcuts: shortcuts + }; + } else { + var shortcuts = [{ text: "前一周", onClick(picker) { - const end = new Date(); - const start = new Date(); - start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); - picker.$emit("pick", [start, end]); + const end = new Date(); + const start = new Date(); + start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); + picker.$emit("pick", [start, end]); } }, { text: "前两周", onClick(picker) { - const end = new Date(); - const start = new Date(); - start.setTime(start.getTime() - 3600 * 1000 * 24 * 7 * 2); - picker.$emit("pick", [start, end]); + const end = new Date(); + const start = new Date(); + start.setTime(start.getTime() - 3600 * 1000 * 24 * 7 * 2); + picker.$emit("pick", [start, end]); } }, { - text: "前一个月", + text: "前三周", onClick(picker) { - const end = new Date(); - const start = new Date(); - start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); - picker.$emit("pick", [start, end]); + const end = new Date(); + const start = new Date(); + start.setTime(start.getTime() - 3600 * 1000 * 24 * 7 * 3); + picker.$emit("pick", [start, end]); } }, { - text: "前三个月", + text: "前一个月", onClick(picker) { - const end = new Date(); - const start = new Date(); - start.setTime(start.getTime() - 3600 * 1000 * 24 * 90); - picker.$emit("pick", [start, end]); + const end = new Date(); + const start = new Date(); + start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); + picker.$emit("pick", [start, end]); } }, { - text: "前一年", + text: "前三个月", onClick(picker) { - const end = new Date(); - const start = new Date(); - start.setTime(start.getTime() - 3600 * 1000 * 24 * 360); - picker.$emit("pick", [start, end]); + const end = new Date(); + const start = new Date(); + start.setTime(start.getTime() - 3600 * 1000 * 24 * 90); + picker.$emit("pick", [start, end]); } }, { text: "后一周", onClick(picker) { - const end = new Date(); - const start = new Date(); - end.setTime(start.getTime() + 3600 * 1000 * 24 * 7); - picker.$emit("pick", [start, end]); + const end = new Date(); + const start = new Date(); + end.setTime(start.getTime() + 3600 * 1000 * 24 * 7); + picker.$emit("pick", [start, end]); } }, { text: "后两周", onClick(picker) { - const end = new Date(); - const start = new Date(); - end.setTime(start.getTime() + 3600 * 1000 * 24 * 7 * 2); - picker.$emit("pick", [start, end]); + const end = new Date(); + const start = new Date(); + end.setTime(start.getTime() + 3600 * 1000 * 24 * 7 * 2); + picker.$emit("pick", [start, end]); } }, { - text: "后一个月", + text: "后三周", onClick(picker) { - const end = new Date(); - const start = new Date(); - end.setTime(start.getTime() + 3600 * 1000 * 24 * 30); - picker.$emit("pick", [start, end]); + const end = new Date(); + const start = new Date(); + end.setTime(start.getTime() + 3600 * 1000 * 24 * 7 * 3); + picker.$emit("pick", [start, end]); } }, { - text: "后三个月", + text: "后一个月", onClick(picker) { - const end = new Date(); - const start = new Date(); - end.setTime(start.getTime() + 3600 * 1000 * 24 * 90); - picker.$emit("pick", [start, end]); + const end = new Date(); + const start = new Date(); + end.setTime(start.getTime() + 3600 * 1000 * 24 * 30); + picker.$emit("pick", [start, end]); } }, { - text: "后一年", + text: "后三个月", onClick(picker) { - const end = new Date(); - const start = new Date(); - end.setTime(start.getTime() + 3600 * 1000 * 24 * 360); - picker.$emit("pick", [start, end]); + const end = new Date(); + const start = new Date(); + end.setTime(start.getTime() + 3600 * 1000 * 24 * 90); + picker.$emit("pick", [start, end]); } } - ] - return {shortcuts:shortcuts};; - } - + ] + return { + shortcuts: shortcuts + };; + } + }, } diff --git a/src/views/xm/core/xmProjectGroup/XmProjectGroupMng.vue b/src/views/xm/core/xmProjectGroup/XmProjectGroupMng.vue index 9f800456..c3431ea5 100644 --- a/src/views/xm/core/xmProjectGroup/XmProjectGroupMng.vue +++ b/src/views/xm/core/xmProjectGroup/XmProjectGroupMng.vue @@ -41,10 +41,11 @@ 新增下级小组 - + 查看小组进度 新增下级小组 修改小组信息 新增组员 + 查看组员 删除小组 @@ -141,8 +142,12 @@ - - + + + + + + @@ -166,11 +171,12 @@ import UsersSelect from "@/views/mdp/sys/user/UsersSelect"; import XmProjectGroupStateMng from '../xmProjectGroupState/XmProjectGroupStateMng';//修改界面 + import XmProjectGroupUserMng from '../xmProjectGroupUser/XmProjectGroupUserMng';//修改界面 export default { name:'xmProjectGroupMng', components: { - XmProjectGroupEdit,VueOkrTree,UsersSelect,XmProjectGroupStateMng, + XmProjectGroupEdit,VueOkrTree,UsersSelect,XmProjectGroupStateMng,XmProjectGroupUserMng, }, props:["visible","selProject" ,"isSelectSingleUser","isSelectMultiUser",'xmProduct','xmIteration'], computed: { @@ -298,6 +304,7 @@ groupRoleDescVisible:false, groupOperSelectVisible:false, currNodeType:'',//project/product/iteration/group/groupUser + groupUserVisible:false, } },//end data methods: { diff --git a/src/views/xm/core/xmProjectGroupUser/XmProjectGroupUserEdit.vue b/src/views/xm/core/xmProjectGroupUser/XmProjectGroupUserEdit.vue index 585046b4..8afb0c72 100644 --- a/src/views/xm/core/xmProjectGroupUser/XmProjectGroupUserEdit.vue +++ b/src/views/xm/core/xmProjectGroupUser/XmProjectGroupUserEdit.vue @@ -5,44 +5,31 @@ - - - - - - - - - - - - - - - - - - - - + + + {{editForm.projectId?editForm.projectId:''}}{{editForm.productId?editForm.productId:''}} - - + + + + + - + + 是否已加入 + 是否私人加入 + + - - - - - - - - - - + + + + + + + @@ -92,7 +79,7 @@ dicts:{},//下拉选择框的所有静态数据 params={categoryId:'all',itemCodes:['sex']} 返回结果 {sex: [{id:'1',name:'男'},{id:'2',name:'女'}]} editFormRules: { groupId: [ - //{ required: true, message: '团队编号不能为空', trigger: 'blur' } + //{ required: true, message: '小组编号不能为空', trigger: 'blur' } ] }, editForm: { diff --git a/src/views/xm/core/xmProjectGroupUser/XmProjectGroupUserMng.vue b/src/views/xm/core/xmProjectGroupUser/XmProjectGroupUserMng.vue index 1f4acc1b..5539cf5f 100644 --- a/src/views/xm/core/xmProjectGroupUser/XmProjectGroupUserMng.vue +++ b/src/views/xm/core/xmProjectGroupUser/XmProjectGroupUserMng.vue @@ -3,31 +3,34 @@ 查询 - - + - - + + + + + + + + - - - - - - - - - - + + + + + + + - - +