-- 项目shenhe

This commit is contained in:
yuping
2022-12-02 23:12:23 +08:00
parent 1f5d7359e9
commit 37bb59475f
3 changed files with 132 additions and 276 deletions

View File

@@ -9,6 +9,9 @@ export const projlist = (obj) => http.post('/admin/project/list', obj)
//获取待审核项目列表 //获取待审核项目列表
export const auditlist = (obj) => http.post('/admin/project/auditlist', obj) export const auditlist = (obj) => http.post('/admin/project/auditlist', obj)
//获取已审核项目列表
export const auditedlist = (obj) => http.post('/admin/project/auditedlist', obj)
//获取已审核项目列表 //获取已审核项目列表
export const listView = (obj) => http.post('/admin/project/listView', obj) export const listView = (obj) => http.post('/admin/project/listView', obj)

View File

@@ -15,56 +15,48 @@
<div class="inpbox"> <div class="inpbox">
<div class="inpbox1"> <div class="inpbox1">
<a-input <a-input
v-model:value="valueproj" v-model:value="valueproj"
style=" style="
width: 270px; width: 270px;
height: 40px; height: 40px;
border-radius: 8px; border-radius: 8px;
margin-right: 14px; margin-right: 14px;
" "
placeholder="请输入项目名称/所属项目" placeholder="请输入项目名称/所属项目"
/> />
</div> </div>
<div class="inpbox1"> <div class="inpbox1">
<a-input <a-input
v-model:value="valuename" v-model:value="valuename"
style=" style="
width: 270px; width: 270px;
height: 40px; height: 40px;
border-radius: 8px; border-radius: 8px;
margin-right: 14px; margin-right: 14px;
" "
placeholder="请输入项目经理" placeholder="请输入项目经理"
/> />
</div> </div>
<div class="inpbox1"> <div class="inpbox1">
<a-input <a-input
v-model:value="valuecreater" v-model:value="valuecreater"
style=" style="
width: 270px; width: 270px;
height: 40px; height: 40px;
border-radius: 8px; border-radius: 8px;
margin-right: 14px; margin-right: 14px;
" "
placeholder="请输入创建人" placeholder="请输入创建人"
/> />
</div> </div>
<div class="inpbox1"> <div class="inpbox1">
<a-range-picker <a-range-picker
v-model:value="valueDate" v-model:value="valueDate"
style="border-radius: 8px; height: 40px; margin-left: 5px" style="border-radius: 8px; height: 40px; margin-left: 5px"
:placeholder="[' 开始时间', ' 结束时间']" :placeholder="[' 开始时间', ' 结束时间']"
@change="rankTimeChange" valueFormat="X"
/> />
</div> </div>
<!-- <div class="inpbox1">-->
<!-- <a-select-->
<!-- v-model:value="valuestate"-->
<!-- placeholder="请选择审核状态"-->
<!-- @change="handleChangeproj"-->
<!-- :options="optionsproj"-->
<!-- />-->
<!-- </div>-->
</div> </div>
</div> </div>
<div class="tmplh_btn"> <div class="tmplh_btn">
@@ -81,26 +73,26 @@
<div class="tmpl_body"> <div class="tmpl_body">
<div class="tmpl_tabbox"> <div class="tmpl_tabbox">
<a-table <a-table
:columns="columns1" :columns="columns1"
:data-source="tableData1" :data-source="tableData1"
:loading="tableDataTotal === -1 ? true : false" :loading="tableDataTotal === -1 ? true : false"
expandRowByClick="true" expandRowByClick="true"
@expand="expandTable" @expand="expandTable"
:scroll="{ x: 1300 }" :scroll="{ x: 1300 }"
:pagination="false" :pagination="false"
/> />
</div> </div>
<div class="tableBox"> <div class="tableBox">
<div class="pa"> <div class="pa">
<a-pagination <a-pagination
v-if="total > 10" v-if="total > 10"
showSizeChanger="true" showSizeChanger="true"
show-quick-jumper show-quick-jumper
:pageSize="pageSize" :pageSize="pageSize"
v-model:current="currentPage" v-model:current="currentPage"
:total="total" :total="total"
class="pagination" class="pagination"
@change="changePagination" @change="changePagination"
/> />
</div> </div>
</div> </div>
@@ -108,11 +100,11 @@
</div> </div>
<!-- 审核日志弹窗 --> <!-- 审核日志弹窗 -->
<a-modal <a-modal
v-model:visible="projAuditModal" v-model:visible="projAuditModal"
:footer="null" :footer="null"
:closable="closeBack" :closable="closeBack"
wrapClassName="projAuditModal" wrapClassName="projAuditModal"
centered="true" centered="true"
> >
<div class="delete"> <div class="delete">
<div class="del_header"></div> <div class="del_header"></div>
@@ -124,14 +116,14 @@
</div> </div>
<div class="body"> <div class="body">
<a-table <a-table
style="width: 90%" style="width: 90%"
:columns="columnsAudit" :columns="columnsAudit"
:data-source="tableDataAudit" :data-source="tableDataAudit"
:loading="tableDataTotalAudit === -1 ? true : false" :loading="tableDataTotalAudit === -1 ? true : false"
expandRowByClick="true" expandRowByClick="true"
:scroll="{ y: 150 }" :scroll="{ y: 150 }"
@expand="expandTable" @expand="expandTable"
:pagination="false" :pagination="false"
/> />
</div> </div>
<div class="del_btnbox"> <div class="del_btnbox">
@@ -148,9 +140,8 @@
</div> </div>
</template> </template>
<script> <script>
import { reactive, toRefs, onMounted } from "vue"; import {reactive, toRefs, onMounted} from "vue";
import { listView, auditList } from "../../api/indexAudit"; import {listView, auditList, auditlist, auditedlist} from "../../api/indexAudit";
import { toDate } from "@/api/method";
export default { export default {
name: "ProjectViewed", name: "ProjectViewed",
@@ -180,8 +171,8 @@ export default {
columns1: [ columns1: [
{ {
title: "序号", title: "序号",
dataIndex: "number", dataIndex: "projectId",
key: "number", key: "projectId",
align: "center", align: "center",
}, },
{ {
@@ -193,8 +184,8 @@ export default {
{ {
title: "所属项目", title: "所属项目",
dataIndex: "sourceBelongName", dataIndex: "topName",
key: "sourceBelongName", key: "topName",
align: "center", align: "center",
width: "10%", width: "10%",
}, },
@@ -209,23 +200,24 @@ export default {
dataIndex: "status", dataIndex: "status",
key: "status", key: "status",
align: "center", align: "center",
customRender: ({record: {status}}) => <div>{{2: '审核通过', 3: '审核拒绝'}[status]}</div>,
}, },
{ {
title: "创建人", title: "创建人",
dataIndex: "creater", dataIndex: "createName",
key: "creater", key: "createName",
align: "center", align: "center",
}, },
{ {
title: "审核时间", title: "审核时间",
dataIndex: "time", dataIndex: "updateTime",
key: "time", key: "updateTime",
align: "center", align: "center",
}, },
{ {
title: "审核说明", title: "审核说明",
dataIndex: "msg", dataIndex: "description",
key: "msg", key: "description",
align: "center", align: "center",
}, },
@@ -236,16 +228,16 @@ export default {
align: "center", align: "center",
customRender: (value) => { customRender: (value) => {
return ( return (
<div> <div>
<span <span
onClick={() => { onClick={() => {
showProjAuditModal(value.record.id); showProjAuditModal(value.record.auditList);
}} }}
style="cursor:pointer;color:#387DF7" style="cursor:pointer;color:#387DF7"
> >
审核日志 审核日志
</span> </span>
</div> </div>
); );
}, },
}, },
@@ -254,22 +246,23 @@ export default {
columnsAudit: [ columnsAudit: [
{ {
title: "审核人", title: "审核人",
dataIndex: "name", dataIndex: "createName",
key: "name", key: "createName",
align: "center", align: "center",
}, },
{ {
title: "审核状态", title: "审核状态",
dataIndex: "belong", dataIndex: "status",
key: "belong", key: "status",
align: "center", align: "center",
customRender: ({record: {status}}) => <div>{{'2': '审核通过', '-2': '审核拒绝'}[(status + '')]}</div>,
}, },
{ {
title: "审核时间", title: "审核时间",
dataIndex: "time", dataIndex: "createName",
key: "time", key: "createName",
align: "center", align: "center",
}, },
@@ -286,124 +279,21 @@ export default {
}); });
const getProjList = () => { const getProjList = () => {
let objn = { let objn = {
beginTime: state.valueDate == undefined ? "" : Date.parse(state.valueDate[0]) , beginTime: state.valueDate ? state.valueDate[0] : '',
endTime: state.valueDate == undefined ? "" : Date.parse(state.valueDate[1]), endTime: state.valueDate ? state.valueDate[1] : '',
createName: state.valuecreater, createName: state.valuecreater,
manager: state.valuename, manager: state.valuename,
name: state.valueproj, name: state.valueproj,
pageNo: state.currentPage, pageNo: state.currentPage,
pageSize: state.pageSize, pageSize: state.pageSize,
status: 0, status: 1,
}; };
listView(objn) auditedlist(objn).then((res) => {
.then((res) => { let result = res.data.data;
console.log("获取已审核项目成功", res.data.data.rows); state.total = res.data.data.total;
let result = res.data.data; state.tableData1 = result.rows
state.total = res.data.data.total; })
setTableData(result.rows);
})
.catch((err) => {
console.log("获取已审核项目失败", err);
});
}; };
const setTableData = (tabledata) => {
let data = tabledata;
let array = [];
data.map((item,index) => {
if(item.type == 3){
let obj = {
key:index+1,
number: item.projectId,
name: item.name,
belong: "",
manager: item.manager || "-",
sourceBelongName: item.sourceBelongName,
status:
item.status == 0
? "草稿"
: item.status == 1
? "已发布"
: item.status == 2
? "已结束"
: "-",
creater: item.createName,
time: toDate(item.beginTime, "Y-M-D h:m"),
msg: item.description || "-",
id: item.projectId,
};
array.push(obj);
} else {
let obj = {
key:index+1,
number: item.projectId,
name: item.name,
belong: "",
sourceBelongName: item.sourceBelongName,
manager: item.manager || "-",
status:
item.status == 0
? "草稿"
: item.status == 1
? "已发布"
: item.status == 2
? "已结束"
: "-",
creater: item.createName,
time: toDate(item.beginTime, "Y-M-D h:m"),
msg: item.description || "-",
id: item.projectId,
children: item.subList ? setTableData(item.subList) : [] ,
};
array.push(obj);
}
});
state.tableData1 = array;
return array
};
// const getName = (item) => {
// if (
// Object.prototype.hasOwnProperty.call(item.subList[0], "name") &&
// !Object.prototype.hasOwnProperty.call(
// item.subList[0].subList[0],
// "name"
// )
// ) {
// // 两层
// return item.subList[0].name;
// } else if (
// Object.prototype.hasOwnProperty.call(item.subList[0], "name") &&
// Object.prototype.hasOwnProperty.call(item.subList[0].subList[0], "name")
// ) {
// //三层
// return item.subList[0].subList[0].name;
// // return item.name
// } else {
// // 单层
// return item.name;
// }
// };
// const getBelong = (item) => {
// if (
// Object.prototype.hasOwnProperty.call(item.subList[0], "name") &&
// !Object.prototype.hasOwnProperty.call(
// item.subList[0].subList[0],
// "name"
// )
// ) {
// // 两层
// return item.name;
// } else if (
// Object.prototype.hasOwnProperty.call(item.subList[0], "name") &&
// Object.prototype.hasOwnProperty.call(item.subList[0].subList[0], "name")
// ) {
// //三层
// return item.subList[0].name + "/" + item.subList[0].subList[0].name;
// // return item.name
// } else {
// // 单层
// return item.name;
// }
// };
const changePagination = (pagina) => { const changePagination = (pagina) => {
state.currentPage = pagina; state.currentPage = pagina;
getProjList(); getProjList();
@@ -419,21 +309,9 @@ export default {
const closeProjAuditModal = () => { const closeProjAuditModal = () => {
state.projAuditModal = false; state.projAuditModal = false;
}; };
const showProjAuditModal = (id) => { const showProjAuditModal = (data) => {
state.tableDataAudit = data
state.projAuditModal = true; state.projAuditModal = true;
auditList({
pageNo: 1,
pageSize: 10,
project_id: id,
})
.then((res) => {
console.log("获取到了审核日志列表", res);
let result = res.data.data;
setAudit(result.rows);
})
.catch((err) => {
console.log("审核日志列表获取失败", err);
});
}; };
const setAudit = (table) => { const setAudit = (table) => {
let data = table; let data = table;
@@ -442,13 +320,13 @@ export default {
let obj = { let obj = {
name: item.create_name, name: item.create_name,
belong: belong:
item.status == 1 item.status == 1
? "提交待审核" ? "提交待审核"
: item.status == 2 : item.status == 2
? "通过" ? "通过"
: item.status == 3 : item.status == 3
? "拒绝" ? "拒绝"
: "-", : "-",
time: item.createTime, time: item.createTime,
description: item.description, description: item.description,
}; };
@@ -464,7 +342,6 @@ export default {
return { return {
...toRefs(state), ...toRefs(state),
getProjList, getProjList,
setTableData,
changePagination, changePagination,
reset, reset,
closeProjAuditModal, closeProjAuditModal,
@@ -479,13 +356,16 @@ export default {
.ant-modal { .ant-modal {
width: 816px !important; width: 816px !important;
min-height: 420px !important; min-height: 420px !important;
.ant-modal-content { .ant-modal-content {
width: 816px !important; width: 816px !important;
min-height: 420px !important; min-height: 420px !important;
.ant-modal-body { .ant-modal-body {
width: 816px !important; width: 816px !important;
min-height: 420px !important; min-height: 420px !important;
padding: 0 !important; padding: 0 !important;
.delete { .delete {
z-index: 999; z-index: 999;
width: 816px; width: 816px;
@@ -502,19 +382,22 @@ export default {
width: calc(100%); width: calc(100%);
height: 68px; height: 68px;
background: linear-gradient( background: linear-gradient(
rgba(78, 166, 255, 0.2) 0%, rgba(78, 166, 255, 0.2) 0%,
rgba(78, 166, 255, 0) 100% rgba(78, 166, 255, 0) 100%
); );
} }
.del_main { .del_main {
width: 100%; width: 100%;
position: relative; position: relative;
.header { .header {
display: flex; display: flex;
align-items: center; align-items: center;
padding-top: 20px; padding-top: 20px;
padding-left: 26px; padding-left: 26px;
font-size: 16px; font-size: 16px;
.icon { .icon {
width: 16px; width: 16px;
height: 16px; height: 16px;
@@ -522,6 +405,7 @@ export default {
background-image: url(@/assets/images/taskpage/gan.png); background-image: url(@/assets/images/taskpage/gan.png);
background-size: 100% 100%; background-size: 100% 100%;
} }
.close_exit { .close_exit {
position: absolute; position: absolute;
right: 42px; right: 42px;
@@ -532,6 +416,7 @@ export default {
background-size: 100% 100%; background-size: 100% 100%;
} }
} }
.body { .body {
width: 100%; width: 100%;
margin: 34px auto 56px auto; margin: 34px auto 56px auto;
@@ -541,9 +426,11 @@ export default {
flex-direction: column; flex-direction: column;
// background-color: red; // background-color: red;
position: relative; position: relative;
.ant-table-empty { .ant-table-empty {
width: 100% !important; width: 100% !important;
} }
.back { .back {
position: absolute; position: absolute;
top: 30px; top: 30px;
@@ -552,10 +439,12 @@ export default {
color: #666666; color: #666666;
} }
} }
.del_btnbox { .del_btnbox {
display: flex; display: flex;
margin: 30px auto; margin: 30px auto;
justify-content: center; justify-content: center;
.del_btn { .del_btn {
width: 100px; width: 100px;
height: 40px; height: 40px;
@@ -567,17 +456,20 @@ export default {
flex-shrink: 0; flex-shrink: 0;
cursor: pointer; cursor: pointer;
.btnText { .btnText {
font-size: 14px; font-size: 14px;
font-weight: 400; font-weight: 400;
line-height: 40px; line-height: 40px;
} }
} }
.btn1 { .btn1 {
border: 1px solid rgba(64, 158, 255, 1); border: 1px solid rgba(64, 158, 255, 1);
color: #4ea6ff; color: #4ea6ff;
margin-right: 14px; margin-right: 14px;
} }
.btn2 { .btn2 {
background-color: #4ea6ff; background-color: #4ea6ff;
color: #ffffff; color: #ffffff;
@@ -589,10 +481,13 @@ export default {
} }
} }
} }
.projectviewed { .projectviewed {
width: 100%; width: 100%;
.tmpl { .tmpl {
width: 100%; width: 100%;
.tmpl_header { .tmpl_header {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
@@ -601,33 +496,39 @@ export default {
margin-left: 32px; margin-left: 32px;
margin-right: 32px; margin-right: 32px;
.tmplh_inp { .tmplh_inp {
.inpbox { .inpbox {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
margin-top: 42px; margin-top: 42px;
.inpbox1 { .inpbox1 {
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
margin-right: 24px; margin-right: 24px;
margin-top: 10px; margin-top: 10px;
.ant-select-selector { .ant-select-selector {
border-radius: 8px; border-radius: 8px;
width: 270px; width: 270px;
height: 40px; height: 40px;
padding-top: 5px; padding-top: 5px;
} }
span { span {
white-space: nowrap; white-space: nowrap;
} }
} }
} }
} }
.tmplh_btn { .tmplh_btn {
display: flex; display: flex;
// margin-left: 38px; // margin-left: 38px;
margin-top: 32px; margin-top: 32px;
.btn { .btn {
padding: 0px 26px 0px 26px; padding: 0px 26px 0px 26px;
height: 38px; height: 38px;
@@ -638,72 +539,90 @@ export default {
margin-right: 14px; margin-right: 14px;
cursor: pointer; cursor: pointer;
flex-shrink: 0; flex-shrink: 0;
.search { .search {
background-size: 100%; background-size: 100%;
} }
.btnText { .btnText {
font-size: 14px; font-size: 14px;
font-weight: 400; font-weight: 400;
line-height: 36px; line-height: 36px;
margin-left: 5px; margin-left: 5px;
} }
.btnText1 { .btnText1 {
color: rgb(255, 255, 255); color: rgb(255, 255, 255);
} }
.btnText2 { .btnText2 {
color: rgba(64, 158, 255, 1); color: rgba(64, 158, 255, 1);
} }
} }
.btn1 { .btn1 {
background: #409eff; background: #409eff;
.search { .search {
width: 15px; width: 15px;
height: 17px; height: 17px;
background-image: url("../../assets/images/courseManage/search0.png"); background-image: url("../../assets/images/courseManage/search0.png");
} }
} }
.btn2 { .btn2 {
background: #ffffff; background: #ffffff;
border: 1px solid #388be1; border: 1px solid #388be1;
.search { .search {
width: 16px; width: 16px;
height: 18px; height: 18px;
background-image: url("../../assets/images/courseManage/reset1.png"); background-image: url("../../assets/images/courseManage/reset1.png");
} }
} }
.btn1:hover { .btn1:hover {
background: rgb(255, 255, 255); background: rgb(255, 255, 255);
border: 1px solid #388be1; border: 1px solid #388be1;
.search { .search {
background-image: url("../../assets/images/courseManage/search1.png"); background-image: url("../../assets/images/courseManage/search1.png");
} }
.btnText { .btnText {
color: rgba(64, 158, 255, 1); color: rgba(64, 158, 255, 1);
} }
} }
.btn2:hover { .btn2:hover {
background: rgba(64, 158, 255, 1); background: rgba(64, 158, 255, 1);
.search { .search {
background-image: url("../../assets/images/courseManage/reset0.png"); background-image: url("../../assets/images/courseManage/reset0.png");
} }
.btnText { .btnText {
color: #ffffff; color: #ffffff;
} }
} }
} }
} }
.tmpl_body { .tmpl_body {
padding: 0px 30px; padding: 0px 30px;
.tmpl_tabbox { .tmpl_tabbox {
.operation { .operation {
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
color: #4ea6ff; color: #4ea6ff;
.nselect { .nselect {
justify-content: center; justify-content: center;
align-items: center; align-items: center;
display: flex; display: flex;
.jc { .jc {
margin-left: 20px; margin-left: 20px;
white-space: nowrap; white-space: nowrap;
@@ -712,6 +631,7 @@ export default {
} }
} }
} }
.pa { .pa {
width: 100%; width: 100%;
margin-top: 20px; margin-top: 20px;

View File

@@ -207,72 +207,6 @@ export default {
console.log("获取待审核项目失败", err); console.log("获取待审核项目失败", err);
}); });
}; };
const setProjList = (tableData) => {
let data = tableData;
let array = [];
data.map((item, index) => {
if (item.type == 3) {
let obj = {
key: index + 1,
number: item.projectId,
name: item.name,
belong: item.parentId,
sourceBelongName: item.sourceBelongName,
manager: item.manager || "-",
status:
item.status == 0
? "草稿"
: item.status == 1
? "待审核"
: item.status == 2
? "通过"
: item.status == 3
? "发布"
: item.status == -1
? "已结束"
: item.status == -2
? "拒绝"
: "-",
creater: item.createName,
time: item.createTime,
projectId: item.projectId,
createId: item.createId,
};
array.push(obj);
} else {
let obj = {
key: index + 1,
number: item.projectId,
name: item.name,
belong: item.parentId,
sourceBelongName: item.sourceBelongName,
manager: item.manager || "-",
status:
item.status == 0
? "草稿"
: item.status == 1
? "待审核"
: item.status == 2
? "通过"
: item.status == 3
? "发布"
: item.status == -1
? "已结束"
: item.status == -2
? "拒绝"
: "-",
creater: item.createName,
time: item.createTime,
projectId: item.projectId,
createId: item.createId,
children: item.subList ? setProjList(item.subList) : [],
};
array.push(obj);
}
});
state.tableData1 = array
return array
};
const changePagination = (pagina) => { const changePagination = (pagina) => {
state.currentPage = pagina; state.currentPage = pagina;
getProjList(); getProjList();
@@ -291,7 +225,6 @@ export default {
...toRefs(state), ...toRefs(state),
showProjAudit, showProjAudit,
getProjList, getProjList,
setProjList,
changePagination, changePagination,
reset, reset,
}; };