| | |
| | | <div>项目</div> |
| | | <div>总数</div> |
| | | </div> |
| | | <div class="font-right">{{search.num.projectTotal}}</div> |
| | | <div class="font-right">{{search.num.total}}</div> |
| | | </div> |
| | | <div class="box-right"> |
| | | <div class="inbox" @click="choose(1)" style="box-shadow: rgba(132, 122, 253, 0.2) 0 3px 5px 0;" :class="{btn1: chooseType === 1}"> |
| | |
| | | <span class="top-right-font">基本信息</span> |
| | | </div> |
| | | <div class="bottom"> |
| | | <span class="top-right-font-bottom">{{search.num.riskTotal}}</span> |
| | | <span class="top-right-font-bottom">{{search.num.staging}}</span> |
| | | </div> |
| | | </div> |
| | | <div class="inbox" @click="choose(2)" style="box-shadow: rgba(255, 142, 139, 0.15) 0 3px 5px 0;" :class="{btn2: chooseType === 2}"> |
| | |
| | | <span class="top-right-font">专家选用</span> |
| | | </div> |
| | | <div class="bottom"> |
| | | <span class="top-right-font-bottom">{{search.num.investigationTotal}}</span> |
| | | <span class="top-right-font-bottom">{{search.num.expert}}</span> |
| | | </div> |
| | | </div> |
| | | <div class="inbox" @click="choose(3)" style="box-shadow: rgba(222, 106, 169, 0.15) 0 3px 5px 0;" :class="{btn3: chooseType === 3}"> |
| | |
| | | <span class="top-right-font">项目审批</span> |
| | | </div> |
| | | <div class="bottom"> |
| | | <span class="top-right-font-bottom">{{search.num.reviewTotal}}</span> |
| | | <span class="top-right-font-bottom">{{search.num.approval}}</span> |
| | | </div> |
| | | </div> |
| | | <div class="inbox" @click="choose(4)" style="box-shadow: rgba(109, 177, 254, 0.2) 0 3px 5px 0;" :class="{btn4: chooseType === 4}"> |
| | |
| | | <span class="top-right-font">项目归档</span> |
| | | </div> |
| | | <div class="bottom"> |
| | | <span class="top-right-font-bottom">{{search.num.reportTotal}}</span> |
| | | <span class="top-right-font-bottom">{{search.num.end}}</span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | <el-table v-loading="loading" :data="dataList" :border="true" ref="tableRef" :height="tableHeight" style="width: 100%;"> |
| | | <el-table-column label="序号" width="80" align="center" type="index" ></el-table-column> |
| | | <el-table-column label="申请时间" prop="createTime" align="center" :show-overflow-tooltip="true" width="180" /> |
| | | <el-table-column label="项目名称" prop="name" align="center" :show-overflow-tooltip="true" width="180" /> |
| | | <el-table-column label="部门" prop="dept" align="center" /> |
| | | <el-table-column label="专家组组长" prop="leader" align="center" width="150"/> |
| | | <el-table-column label="专家组人数" prop="num" align="center" width="150"/> |
| | | <el-table-column label="项目名称" prop="projectName" align="center" :show-overflow-tooltip="true" width="180" /> |
| | | <el-table-column label="部门" prop="deptName" align="center" /> |
| | | <el-table-column label="专家组组长" prop="deptUserName" align="center" width="150"/> |
| | | <el-table-column label="专家组人数" prop="expertNum" align="center" width="150"/> |
| | | <el-table-column label="当前状态" prop="state" align="center" width="200"> |
| | | <template #default="scope"> |
| | | <span>{{scope.row.state === 0 ? '暂存' : scope.row.state === 1 ? '生成审批单' : scope.row.state === 2 ? '审批通过' :scope.row.state === 3 ?'审批驳回' : '完结' }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column fixed="right" label="操作" align="center" class-name="small-padding fixed-width" width="180"> |
| | | <template #default="scope"> |
| | |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="项目名称" > |
| | | <el-input v-model.trim="search.queryParams.name" placeholder="请输入项目名称"></el-input> |
| | | <el-input v-model.trim="search.queryParams.projectName" placeholder="请输入项目名称"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="当前状态" > |
| | | <el-select v-model="search.queryParams.state" class="m-2" size="large" placeholder="请选择" style="width: 100%" > |
| | | <el-option |
| | | v-for="item in stateList" |
| | | :key="item.id" |
| | | :label="item.label" |
| | | :value="item.id" |
| | | /> |
| | | </el-select> |
| | | <el-form-item label="部门名称" > |
| | | <el-input v-model.trim="search.queryParams.deptName" placeholder="请输入部门名称"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | |
| | | // import {getDict} from "@/api/login"; |
| | | // import {getDictList} from "@/api/backManage/evaluate"; |
| | | import Cookies from "js-cookie" |
| | | import {delProject, getProjectList, getProjectNum} from "@/api/projectManage"; |
| | | const router = useRouter(); |
| | | |
| | | const loading = ref(false); |
| | |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 20, |
| | | name: '', |
| | | phase: '', |
| | | state: null, |
| | | params:{ |
| | | projectName: '', |
| | | projectDateStart: '', |
| | | projectDateEnd: '', |
| | | step: null |
| | | |
| | | } |
| | | }, |
| | | num: { |
| | | projectTotal: 0, |
| | | riskTotal: 0, |
| | | investigationTotal: 0, |
| | | reviewTotal: 0, |
| | | reportTotal: 0, |
| | | archiveTotal: 0 |
| | | approval: 0, |
| | | end: 0, |
| | | expert: 0, |
| | | staging: 0, |
| | | total: 0 |
| | | } |
| | | }); |
| | | const searchTime = ref([]); |
| | |
| | | const chooseType = ref(''); |
| | | const choose = (val) => { |
| | | chooseType.value = val; |
| | | search.queryParams.phase = val; |
| | | search.queryParams.step = val; |
| | | getList(); |
| | | } |
| | | const getList = async () => { |
| | | loading.value = true; |
| | | dataList.value = [ |
| | | { |
| | | id:1, |
| | | createTime: 'xxx', |
| | | name: 'xxx', |
| | | dept: 'xxx', |
| | | leader: '张三', |
| | | num: 10, |
| | | state: 1, |
| | | reportProgress: 1 |
| | | |
| | | } |
| | | ] |
| | | // const res = await getProjectList(search.queryParams); |
| | | // if(res.code == 200){ |
| | | // dataList.value = res.data.list.map(item => { |
| | | // return { |
| | | // ...item, |
| | | // process: item.reportProgress <= 4 ? 1 : item.reportProgress > 4 && item.reportProgress <= 6 ? 2 : item.reportProgress > 6 && item.reportProgress <= 9 ? 3 : item.reportProgress > 9 && item.reportProgress <= 11 ? 4 : 5, |
| | | // leaderName: item.leader ? item.leader.name : '', |
| | | // area: item.district ? item.province + '/' + item.city + '/' + item.district : item.city != item.province ? item.province + '/' + item.city: item.province , |
| | | // filingDate: item.filingDate ? conversionDays(item.filingDate,item.createTime) : conversionDays('',item.createTime), |
| | | // contractMoney: item.contract ? item.contract.contractMoney : '', |
| | | // actualContractMoney: item.contract ? item.contract.actualContractMoney : '', |
| | | // activeConfirm: item.personRecognition ? item.personRecognition.recognitionCnt + '/' + item.personRecognition.personCnt: '', |
| | | // missingMaterialCnt: 3-item.materialCnt, |
| | | // activeConfirmOut: item.personRecognition ? "\'" + item.personRecognition.recognitionCnt + '/' + item.personRecognition.personCnt: '', |
| | | // } |
| | | // }) |
| | | total.value = 1 |
| | | const res = await getProjectList(search.queryParams); |
| | | if(res.code == 200){ |
| | | dataList.value = res.rows |
| | | total.value = res.total |
| | | loading.value = false; |
| | | // console.log('11',dataList.value) |
| | | // }else{ |
| | | // ElMessage.warning(res.message) |
| | | // } |
| | | }else{ |
| | | ElMessage.warning(res.message) |
| | | } |
| | | } |
| | | const getStatistics = async () => { |
| | | // const {pageNum,pageSize, ...data} = JSON.parse(JSON.stringify(search.queryParams)) |
| | | // const res = await getProjectStatistics(data); |
| | | // if(res.code == 200){ |
| | | // search.num = res.data |
| | | // }else{ |
| | | // ElMessage.warning(res.message) |
| | | // } |
| | | const res = await getProjectNum(); |
| | | if(res.code == 200){ |
| | | search.num = res.data |
| | | }else{ |
| | | ElMessage.warning(res.message) |
| | | } |
| | | } |
| | | const handleSizeChange = (val) => { |
| | | search.queryParams.pageNum = 1; |
| | |
| | | } |
| | | const toProcess = (type,value,toPath) => { |
| | | value.type = type; |
| | | router.push({ path: '/process', query: {id: value.id, type: type, toPath: toPath, process: value.reportProgress}}); |
| | | router.push({ path: '/process', query: {id: value.id, type: type, toPath: toPath, process: value.step}}); |
| | | } |
| | | |
| | | const del = (val) => { |
| | |
| | | type: 'warning', |
| | | }) |
| | | .then( async() => { |
| | | const res = await delProject(val) |
| | | const res = await delProject(val.id) |
| | | if(res.code == 200){ |
| | | ElMessage.success('数据删除成功') |
| | | await getList() |
| | |
| | | } |
| | | const changeTime=(value)=>{ |
| | | if(!value){ |
| | | search.queryParams.params.endTime = "" |
| | | search.queryParams.params.startTime = "" |
| | | search.queryParams.projectDateStart = "" |
| | | search.queryParams.projectDateEnd = "" |
| | | } |
| | | } |
| | | const searchClick = () => { |
| | | if(searchTime.value && searchTime.value.length>0){ |
| | | search.queryParams.params.startTime = searchTime.value[0] |
| | | search.queryParams.params.endTime = searchTime.value[1] |
| | | search.queryParams.projectDateStart = searchTime.value[0] |
| | | search.queryParams.projectDateEnd = searchTime.value[1] |
| | | } |
| | | getList(); |
| | | getStatistics(); |
| | |
| | | search.queryParams = { |
| | | pageNum: 1, |
| | | pageSize: 20, |
| | | name: '', |
| | | phase: '', |
| | | state: null, |
| | | params:{ |
| | | |
| | | } |
| | | projectName: '', |
| | | projectDateStart: '', |
| | | projectDateEnd: '', |
| | | step: null |
| | | } |
| | | chooseType.value = ''; |
| | | getList(); |