-- 项目经理

This commit is contained in:
yuping
2022-12-03 00:22:07 +08:00
parent 7f647ced3d
commit 2926e18279
3 changed files with 236 additions and 202 deletions

View File

@@ -1,221 +1,235 @@
function formatNumber(n) { function formatNumber(n) {
n = n.toString(); n = n.toString();
return n[1] ? n : "0" + n; return n[1] ? n : "0" + n;
} }
function toDate(number, format) { function toDate(number, format) {
var formateArr = ["Y", "M", "D", "h", "m", "s"]; var formateArr = ["Y", "M", "D", "h", "m", "s"];
var returnArr = []; var returnArr = [];
if (number === 0) { if (number === 0) {
return 0; return 0;
} else { } else {
var date = new Date(number * 1000); var date = new Date(number * 1000);
} }
returnArr.push(date.getFullYear()); returnArr.push(date.getFullYear());
returnArr.push(formatNumber(date.getMonth() + 1)); returnArr.push(formatNumber(date.getMonth() + 1));
returnArr.push(formatNumber(date.getDate())); returnArr.push(formatNumber(date.getDate()));
returnArr.push(formatNumber(date.getHours())); returnArr.push(formatNumber(date.getHours()));
returnArr.push(formatNumber(date.getMinutes())); returnArr.push(formatNumber(date.getMinutes()));
returnArr.push(formatNumber(date.getSeconds())); returnArr.push(formatNumber(date.getSeconds()));
for (var i in returnArr) { for (var i in returnArr) {
format = format.replace(formateArr[i], returnArr[i]); format = format.replace(formateArr[i], returnArr[i]);
} }
return format; return format;
} }
function getWeek(date) { function getWeek(date) {
//date:'Y-M-D' //date:'Y-M-D'
let time = new Date(date).getDay() let time = new Date(date).getDay()
let week; let week;
if (time == 0) week = "星期日" if (time == 0) week = "星期日"
if (time == 1) week = "星期一" if (time == 1) week = "星期一"
if (time == 2) week = "星期二" if (time == 2) week = "星期二"
if (time == 3) week = "星期三" if (time == 3) week = "星期三"
if (time == 4) week = "星期四" if (time == 4) week = "星期四"
if (time == 5) week = "星期五" if (time == 5) week = "星期五"
if (time == 6) week = "星期六" if (time == 6) week = "星期六"
return week; return week;
} }
/************************************将数字搞成带逗号的那种*********************************************/ /************************************将数字搞成带逗号的那种*********************************************/
function autoComma(number) { function autoComma(number) {
// let number = parseInt(numb) // let number = parseInt(numb)
if (number) { if (number) {
let newNum = ""; //中间变量 let newNum = ""; //中间变量
let arr = []; let arr = [];
let arr1 = []; let arr1 = [];
let num = ""; //最终结果 let num = ""; //最终结果
let isDecimal = false; //是不是小数 let isDecimal = false; //是不是小数
let decimal = 0; //小数点所在位置 let decimal = 0; //小数点所在位置
let decimalNum = ""; //小数点和以后的数据 let decimalNum = ""; //小数点和以后的数据
let negative = false; //是不是负数 let negative = false; //是不是负数
// 判断百万级别或者上亿级别 // 判断百万级别或者上亿级别
let thousand = false; let thousand = false;
let Billion = false; let Billion = false;
if ( if (
(number >= 10000 || number <= -10000) && (number >= 10000 || number <= -10000) &&
number < 100000000 && number < 100000000 &&
number > -100000000 number > -100000000
) { ) {
thousand = true; thousand = true;
number = number / 10000; number = number / 10000;
} }
if (number >= 100000000 || number <= -100000000) { if (number >= 100000000 || number <= -100000000) {
thousand = false; thousand = false;
Billion = true; Billion = true;
number = number / 100000000; number = number / 100000000;
} }
if (number < 0) { if (number < 0) {
number = Math.abs(number); number = Math.abs(number);
negative = true; negative = true;
}
let numStr = JSON.stringify(number);
// 如果传入的是小数,逗号的添加位置和整数是有区别滴
for (let i = 0; i < numStr.length; i++) {
if (numStr[i] === ".") {
isDecimal = true;
decimal = i;
decimalNum = numStr.slice(decimal, numStr.length);
// 保留两位小数
if (decimalNum.length > 2) {
decimalNum = decimalNum.slice(0, 3);
} }
numStr = numStr.slice(0, decimal); let numStr = JSON.stringify(number);
} // 如果传入的是小数,逗号的添加位置和整数是有区别滴
} for (let i = 0; i < numStr.length; i++) {
for (let i = 0; i < numStr.length; i++) { if (numStr[i] === ".") {
arr.push(numStr[numStr.length - i - 1]); isDecimal = true;
} decimal = i;
for (let i = 0; i < arr.length; i++) { decimalNum = numStr.slice(decimal, numStr.length);
if ((i + 1) % 3 === 0 && i + 1 !== 0 && i + 1 < arr.length) { // 保留两位小数
newNum += arr[i]; if (decimalNum.length > 2) {
newNum = newNum + ","; decimalNum = decimalNum.slice(0, 3);
} else { }
newNum += arr[i]; numStr = numStr.slice(0, decimal);
} }
} }
for (let i = 0; i < newNum.length; i++) { for (let i = 0; i < numStr.length; i++) {
arr1.push(newNum[newNum.length - i - 1]); arr.push(numStr[numStr.length - i - 1]);
} }
for (let i = 0; i < arr1.length; i++) { for (let i = 0; i < arr.length; i++) {
num += arr1[i]; if ((i + 1) % 3 === 0 && i + 1 !== 0 && i + 1 < arr.length) {
} newNum += arr[i];
if (isDecimal) { newNum = newNum + ",";
if (negative) { } else {
// num = '-' + num + decimalNum newNum += arr[i];
// return num }
if (thousand) { }
num = "-" + num + decimalNum + "万"; for (let i = 0; i < newNum.length; i++) {
return num; arr1.push(newNum[newNum.length - i - 1]);
} else if (Billion) { }
num = "-" + num + decimalNum + "亿"; for (let i = 0; i < arr1.length; i++) {
return num; num += arr1[i];
}
if (isDecimal) {
if (negative) {
// num = '-' + num + decimalNum
// return num
if (thousand) {
num = "-" + num + decimalNum + "万";
return num;
} else if (Billion) {
num = "-" + num + decimalNum + "亿";
return num;
} else {
num = "-" + num + decimalNum;
return num;
}
} else {
// num = num + decimalNum
// return num
if (thousand) {
num = num + decimalNum + "万";
return num;
} else if (Billion) {
num = num + decimalNum + "亿";
return num;
} else {
num = num + decimalNum;
return num;
}
}
} else { } else {
num = "-" + num + decimalNum; if (negative) {
return num; // num = '-' + num
// return num
if (thousand) {
num = "-" + num + "万";
return num;
} else if (Billion) {
num = "-" + num + "亿";
return num;
} else {
num = "-" + num;
return num;
}
} else {
if (thousand) {
num = num + "万";
return num;
} else if (Billion) {
num = num + "亿";
return num;
} else {
return num;
}
}
} }
} else {
// num = num + decimalNum
// return num
if (thousand) {
num = num + decimalNum + "万";
return num;
} else if (Billion) {
num = num + decimalNum + "亿";
return num;
} else {
num = num + decimalNum;
return num;
}
}
} else { } else {
if (negative) { return 0;
// num = '-' + num
// return num
if (thousand) {
num = "-" + num + "万";
return num;
} else if (Billion) {
num = "-" + num + "亿";
return num;
} else {
num = "-" + num;
return num;
}
} else {
if (thousand) {
num = num + "万";
return num;
} else if (Billion) {
num = num + "亿";
return num;
} else {
return num;
}
}
} }
} else { }
return 0;
} //节流
function throttle(fn, delay = 200) {
var timer = null;
return function () {
console.log('throttle')
var context = this, args = arguments;
clearTimeout(timer);
timer = setTimeout(function () {
fn.apply(context, args);
}, delay);
};
} }
//把token存到cookie //把token存到cookie
//name 字段名 value 字段值 perpetual 有效期 //name 字段名 value 字段值 perpetual 有效期
const setCookie = (name, value, perpetual) => { const setCookie = (name, value, perpetual) => {
console.log('存储token到cookie') console.log('存储token到cookie')
let exdate = new Date() let exdate = new Date()
exdate.setDate(perpetual * 24 * 60 * 60 * 1000) //exdate.setDate(exdate.getDate() + 365) exdate.setDate(perpetual * 24 * 60 * 60 * 1000) //exdate.setDate(exdate.getDate() + 365)
document.cookie = `${name}=${value};expires=${exdate.toGMTString()};path=/` document.cookie = `${name}=${value};expires=${exdate.toGMTString()};path=/`
//永久有效 //永久有效
//document.cookie = name + '=' + value + ';expires=' + 'Fri, 31 Dec 9999 23:59:59 GMT' //document.cookie = name + '=' + value + ';expires=' + 'Fri, 31 Dec 9999 23:59:59 GMT'
} }
//获取cookie数据 //获取cookie数据
//先写一个方法 //先写一个方法
function getCookie(name) { function getCookie(name) {
//1.获取cookie字符串 //1.获取cookie字符串
var cookies = document.cookie; var cookies = document.cookie;
//通过;来分割字符串 //通过;来分割字符串
var cookie = cookies.split("; "); var cookie = cookies.split("; ");
// console.log('cookie', cookie) // console.log('cookie', cookie)
//遍历,使键值对匹配上 //遍历,使键值对匹配上
for (var i = 0; i < cookie.length; i++) { for (var i = 0; i < cookie.length; i++) {
var arr = cookie[i].split("token="); var arr = cookie[i].split("token=");
// console.log('arr', arr) // console.log('arr', arr)
console.log('name', name) console.log('name', name)
// if (arr[0] == name) { // if (arr[0] == name) {
// console.log('arr[1]', arr[1]) // console.log('arr[1]', arr[1])
// return arr[1]; // return arr[1];
// } // }
// console.log('arr[1]', arr[1]) // console.log('arr[1]', arr[1])
return arr[1] return arr[1]
} }
return ""; return "";
} }
//滚动加载信息 //滚动加载信息
const scrollLoad = (e) => { const scrollLoad = (e) => {
// console.log("滚动", e, b); // console.log("滚动", e, b);
const { target } = e; const {target} = e;
const scrllHeight = target.scrollHeight - target.scrollTop; const scrllHeight = target.scrollHeight - target.scrollTop;
const clientHeight = target.clientHeight; const clientHeight = target.clientHeight;
// console.log("scrllHeight", scrllHeight, clientHeight); // console.log("scrllHeight", scrllHeight, clientHeight);
if (scrllHeight === 0 && clientHeight === 0) { if (scrllHeight === 0 && clientHeight === 0) {
return 1 return 1
} else if (scrllHeight - clientHeight == 0) { } else if (scrllHeight - clientHeight == 0) {
return 2 return 2
} }
}; };
//新建延迟 //新建延迟
const commonData = { const commonData = {
timeout: 50, timeout: 50,
} }
// const organizationalTree = [ // const organizationalTree = [
// { // {
@@ -422,14 +436,15 @@ const organizationalTree = []
const iframeUrl = "https://u-pre.boe.com/pc/iframe" const iframeUrl = "https://u-pre.boe.com/pc/iframe"
export { export {
toDate, throttle,
getWeek, toDate,
autoComma, getWeek,
formatNumber, autoComma,
setCookie, formatNumber,
getCookie, setCookie,
scrollLoad, getCookie,
commonData, scrollLoad,
organizationalTree, commonData,
iframeUrl, organizationalTree,
iframeUrl,
} }

View File

@@ -20,7 +20,7 @@
</template> </template>
<script> <script>
import {onMounted, reactive, toRefs, watch} from "vue"; import {onMounted, reactive, toRefs, watch} from "vue";
import {scrollLoad} from "@/api/method"; import {scrollLoad, throttle} from "@/api/method";
import * as api1 from "@/api/index1"; import * as api1 from "@/api/index1";
export default { export default {
@@ -46,8 +46,9 @@ export default {
loading: false, loading: false,
init: false init: false
}); });
const getMemberThrottle = throttle(getMember, 500)
watch(() => state.memberParam, getMember) watch(() => state.memberParam, getMemberThrottle)
watch(props, init) watch(props, init)
onMounted(() => { onMounted(() => {
@@ -57,15 +58,24 @@ export default {
function getMember() { function getMember() {
state.loading = true state.loading = true
state.options = []
getMemberData()
}
function getMemberData() {
api1.getMemberInfo(state.memberParam).then((res) => { api1.getMemberInfo(state.memberParam).then((res) => {
const list = res.data.data.rows.filter(e => !props.value?.includes(e.id + '')).map(e => ({ const list = res.data.data.rows.filter(e => !props.value?.includes(e.id + '')).map(e => ({
label: e.realName, label: e.realName,
value: e.id value: e.id
})); }));
state.options.push(...list) if (state.memberParam.pageNo === 1 && props.value) {
const arrManagerId = props.value.split(',')
const arrManager = props.name.split(',')
state.options = [...arrManager.map((e, i) => ({label: e, value: arrManagerId[i]})), ...list]
} else state.options.push(...list)
state.loading = false state.loading = false
}); });
} }
const memberScroll = (e) => { const memberScroll = (e) => {
@@ -82,16 +92,25 @@ export default {
}; };
function init() { function init() {
if (!props.value) { console.log('init--', props)
state.managerArray = [] if (props.value !== state.managerArray.join(',')) {
if (props.value) {
const arrManager = props.name.split(',')
const arrManagerId = props.value.split(',')
state.managerArray = arrManagerId
state.options = arrManager.map((e, i) => ({label: e, value: arrManagerId[i]}))
} else {
state.managerArray = []
}
getMemberData()
return; return;
} }
if (props.value !== state.managerArray.join(',')) { if (!props.value) {
const arrManager = props.name.split(',') if (!(state.options && state.options.length)) {
const arrManagerId = props.value.split(',') state.options = []
state.managerArray = arrManagerId getMember()
state.options = arrManager.map((e, i) => ({label: e, value: arrManagerId[i]})) }
getMember() return;
} }
} }

View File

@@ -347,7 +347,7 @@
</div> </div>
</div> </div>
<div class="modalMain"> <div class="modalMain">
<router-link :to="`/projectadd?parentId=${projectInfo.parentId}&parentName=${projectInfo.parentName}`"> <router-link :to="`/projectadd?parentId=${projectInfo.parentId || ''}&parentName=${projectInfo.parentName || ''}`">
<div <div
class="taskbox" class="taskbox"
style=" style="