|
|
@@ -10,11 +10,11 @@
|
|
|
v-model="searchText"
|
|
|
placeholder="搜索项目名称"
|
|
|
clearable
|
|
|
- @keyup.enter="getProjects"
|
|
|
- @clear="getProjects"
|
|
|
+ @keyup.enter="queryProjects"
|
|
|
+ @clear="queryProjects"
|
|
|
class="search-input"
|
|
|
/>
|
|
|
- <el-button type="primary" class="btn enter-btn" @click="getProjects">查询</el-button>
|
|
|
+ <el-button type="primary" class="btn enter-btn" @click="queryProjects">查询</el-button>
|
|
|
</div>
|
|
|
<div class="empty-state" v-if="total === 0">
|
|
|
<span class="empty-icon">🔍</span>
|
|
|
@@ -33,7 +33,8 @@
|
|
|
</tr>
|
|
|
</thead>
|
|
|
<tbody>
|
|
|
- <tr v-for="item in projects" :key="(item as any)[columnId+'_c_xmmc']">
|
|
|
+ <!-- MultipleFormsOfJointInvestigation 接口获取的数据展示 -->
|
|
|
+ <!-- <tr v-for="item in projects" :key="(item as any)[columnId+'_c_xmmc']">
|
|
|
<td><span class="link-text" @click="handleViewClick(item)">{{ (item as any)[columnId+'_c_xmmc'] }}</span></td>
|
|
|
<td>{{ (item as any)[columnId+'_c_hzyt']}}</td>
|
|
|
<td>{{ (item as any)[columnId+'_c_glqynbkj'] }}</td>
|
|
|
@@ -42,6 +43,17 @@
|
|
|
<td>
|
|
|
<span class="link-text" @click="handleViewClick(item)">{{ (item as any)[columnId+'_name'] || '详情' }}</span>
|
|
|
</td>
|
|
|
+ </tr> -->
|
|
|
+ <!-- selectContentList 接口获取的数据展示 -->
|
|
|
+ <tr v-for="item in projects" :key="(item as any)['id']">
|
|
|
+ <td><span class="link-text" @click="handleViewClick(item)">{{ (item as any)['c_xmmc'] }}</span></td>
|
|
|
+ <td>{{ (item as any)['c_hzyt']}}</td>
|
|
|
+ <td>{{ (item as any)['c_glqynbkj'] }}</td>
|
|
|
+ <td>{{ (item as any)['c_zgxmhtksrq'] == undefined ? '' : moment((item as any)['c_zgxmhtksrq']).format('YYYY-MM-DD') }} - {{ (item as any)['c_zgxmhtdqrq'] == undefined ? '' : moment((item as any)['c_zgxmhtdqrq']).format('YYYY-MM-DD') }}</td>
|
|
|
+ <td><span :class="['badge', (item as any)['daysClass']]">{{ (item as any)['days'] }}</span></td>
|
|
|
+ <td>
|
|
|
+ <span class="link-text" @click="handleViewClick(item)">{{ (item as any)['name'] || '详情' }}</span>
|
|
|
+ </td>
|
|
|
</tr>
|
|
|
</tbody>
|
|
|
</table>
|
|
|
@@ -67,6 +79,7 @@
|
|
|
import { ref, onMounted } from 'vue'
|
|
|
import api from '@/api/common'
|
|
|
import moment from 'moment'
|
|
|
+import { ElLoading } from 'element-plus'
|
|
|
import { COLUMN } from '@/constants/dmsColumns'
|
|
|
import { calcRemainingDaysOnly } from '@/utils/renewalMath'
|
|
|
import { useRouter } from 'vue-router'
|
|
|
@@ -102,19 +115,24 @@ const searchText = ref('')
|
|
|
const pageSize = ref(10)
|
|
|
const page = ref(1)
|
|
|
const total = ref(0)
|
|
|
-
|
|
|
+const staticData = ref<ProjectItem[]>([])
|
|
|
const projects = ref<ProjectItem[]>([])
|
|
|
|
|
|
const handleViewClick = (project: any) => {
|
|
|
- sessionStorage.setItem('projectName', (project as any)[columnId+'_c_xmmc'])
|
|
|
- sessionStorage.setItem('name', (project as any)[columnId+'_c_xmmc'] || '')
|
|
|
- sessionStorage.setItem('dmsId', (project as any)[columnId+'_id'] || '')
|
|
|
- router.push(`/project-detail/${(project as any)[columnId+'_id']}`)
|
|
|
+ // sessionStorage.setItem('projectName', (project as any)[columnId+'_c_xmmc'])
|
|
|
+ // sessionStorage.setItem('name', (project as any)[columnId+'_c_xmmc'] || '')
|
|
|
+ // sessionStorage.setItem('dmsId', (project as any)[columnId+'_id'] || '')
|
|
|
+ // router.push(`/project-detail/${(project as any)[columnId+'_id']}`)
|
|
|
+ sessionStorage.setItem('projectName', (project as any)['c_xmmc'])
|
|
|
+ sessionStorage.setItem('name', (project as any)['c_xmmc'] || '')
|
|
|
+ sessionStorage.setItem('dmsId', (project as any)['id'] || '')
|
|
|
+ router.push(`/project-detail/${(project as any)['id']}`)
|
|
|
}
|
|
|
|
|
|
const handleCurrentChange = (val: number) => {
|
|
|
page.value = val
|
|
|
- getProjects()
|
|
|
+ // getProjects()
|
|
|
+ getCurrentPageData()
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -124,74 +142,107 @@ onMounted(() => {
|
|
|
})
|
|
|
|
|
|
const initData = () => {
|
|
|
- getProjects();
|
|
|
+ // getProjects();
|
|
|
+ getAllProjects();
|
|
|
}
|
|
|
-const getProjects = async () => {
|
|
|
- // const params: any = {
|
|
|
- // columnId: COLUMN.SOURCE,
|
|
|
- // orderBy: JSON.stringify([{ field: "c_zgxmhtdqrq", orderByType: 1 }]),
|
|
|
- // states: '0,1,2,3',
|
|
|
- // pageSize: pageSize.value,
|
|
|
- // page: (page.value-1)
|
|
|
- // }
|
|
|
- // if (searchText.value) {
|
|
|
- // params.search = JSON.stringify([
|
|
|
- // ...(params.search ? JSON.parse(params.search) : []),
|
|
|
- // {
|
|
|
- // field: "title",
|
|
|
- // searchType: 2,
|
|
|
- // content: { value: searchText.value },
|
|
|
- // },
|
|
|
- // ]);
|
|
|
- // }
|
|
|
- // const res = await getDmsDataList(params)
|
|
|
-
|
|
|
+// 获取所有项目
|
|
|
+const getAllProjects = async () => {
|
|
|
+ const loading = ElLoading.service({
|
|
|
+ lock: true,
|
|
|
+ text: '加载数据中,请稍候...',
|
|
|
+ background: 'rgba(0, 0, 0, 0.7)',
|
|
|
+ })
|
|
|
const params: any = {
|
|
|
columnId: columnId,
|
|
|
- orderBy: columnId+','+'c_zgxmhtdqrq,asc',
|
|
|
+ orderBy: JSON.stringify([{ field: "c_zgxmhtdqrq", orderByType: 1 }]),
|
|
|
states: '0,1,2,3',
|
|
|
- pageSize: pageSize.value,
|
|
|
- page: (page.value)
|
|
|
+ pageSize: 99999,
|
|
|
+ page: 0
|
|
|
}
|
|
|
- if (searchText.value) {
|
|
|
- params.conditionsList = JSON.stringify([
|
|
|
- ...(params.conditionsList ? JSON.parse(params.conditionsList) : []),
|
|
|
- {
|
|
|
- columnId: columnId,
|
|
|
- columnName: "c_xmmc",
|
|
|
- condition: "like",
|
|
|
- value: `%${searchText.value}%`
|
|
|
- }
|
|
|
- ]);
|
|
|
- }
|
|
|
- // 查询距离到期时间小于60天的项目 当前为隐藏
|
|
|
- params.conditionsList = JSON.stringify([
|
|
|
- ...(params.conditionsList ? JSON.parse(params.conditionsList) : []),
|
|
|
- {
|
|
|
- columnId: columnId,
|
|
|
- columnName: "c_zgxmhtdqrq",
|
|
|
- condition: "between",
|
|
|
- value: [moment().add(0, 'days').format('YYYY-MM-DD HH:mm:ss'), '2099-01-01 00:00:00']
|
|
|
- }
|
|
|
- ]);
|
|
|
-
|
|
|
- const res = await api.getMultipleFormsOfJointInvestigation(params)
|
|
|
-
|
|
|
+ const res = await getDmsDataList(params)
|
|
|
+ loading.close()
|
|
|
if ((res as any).code === 200) {
|
|
|
- projects.value = (res as any).content.data.map((item: any) => ({
|
|
|
+ console.log(res)
|
|
|
+ const allData = (res as any).content.data.map((item: any) => ({
|
|
|
...item,
|
|
|
- ...calculateRemainingDays((item as any)[columnId+'_c_zgxmhtdqrq'])
|
|
|
+ ...calculateRemainingDays((item as any)['c_zgxmhtdqrq'])
|
|
|
}))
|
|
|
+ const lastData = allData.filter((item: any) => item.days.includes('已过期'))
|
|
|
+ const todayData = allData.filter((item: any) => !item.days.includes('已过期'))
|
|
|
+ staticData.value = todayData.concat(lastData.reverse())
|
|
|
total.value = (res as any).content.count
|
|
|
+ getCurrentPageData()
|
|
|
}else{
|
|
|
projects.value = []
|
|
|
total.value = 0
|
|
|
}
|
|
|
-}
|
|
|
+}
|
|
|
+// 计算属性:截取当前页数据
|
|
|
+const getCurrentPageData = () => {
|
|
|
+ const start = (page.value-1) * pageSize.value
|
|
|
+ const end = start + pageSize.value
|
|
|
+ if(searchText.value){
|
|
|
+ const itemData = staticData.value.filter((item: any) => item.c_xmmc.includes(searchText.value))
|
|
|
+ projects.value = itemData.slice(start, end)
|
|
|
+ total.value = itemData.length
|
|
|
+ }else{
|
|
|
+ projects.value = staticData.value.slice(start, end)
|
|
|
+ total.value = staticData.value.length
|
|
|
+ }
|
|
|
+}
|
|
|
+// 按项目名称查询项目
|
|
|
+const queryProjects = () => {
|
|
|
+ page.value = 1
|
|
|
+ getCurrentPageData()
|
|
|
+}
|
|
|
|
|
|
-// const getDmsDataList = async (params: any) => {
|
|
|
-// return await api.getDmsDataList(params)
|
|
|
-// }
|
|
|
+// const getProjects = async () => {
|
|
|
+// const params: any = {
|
|
|
+// columnId: columnId,
|
|
|
+// orderBy: columnId+','+'c_zgxmhtdqrq,asc',
|
|
|
+// states: '0,1,2,3',
|
|
|
+// pageSize: pageSize.value,
|
|
|
+// page: (page.value)
|
|
|
+// }
|
|
|
+// if (searchText.value) {
|
|
|
+// params.conditionsList = JSON.stringify([
|
|
|
+// ...(params.conditionsList ? JSON.parse(params.conditionsList) : []),
|
|
|
+// {
|
|
|
+// columnId: columnId,
|
|
|
+// columnName: "c_xmmc",
|
|
|
+// condition: "like",
|
|
|
+// value: `%${searchText.value}%`
|
|
|
+// }
|
|
|
+// ]);
|
|
|
+// }
|
|
|
+// // 查询距离到期时间小于60天的项目 当前为隐藏
|
|
|
+// params.conditionsList = JSON.stringify([
|
|
|
+// ...(params.conditionsList ? JSON.parse(params.conditionsList) : []),
|
|
|
+// {
|
|
|
+// columnId: columnId,
|
|
|
+// columnName: "c_zgxmhtdqrq",
|
|
|
+// condition: "between",
|
|
|
+// value: [moment().add(0, 'days').format('YYYY-MM-DD HH:mm:ss'), '2099-01-01 00:00:00']
|
|
|
+// }
|
|
|
+// ]);
|
|
|
+
|
|
|
+// const res = await api.getMultipleFormsOfJointInvestigation(params)
|
|
|
+
|
|
|
+// if ((res as any).code === 200) {
|
|
|
+// projects.value = (res as any).content.data.map((item: any) => ({
|
|
|
+// ...item,
|
|
|
+// ...calculateRemainingDays((item as any)[columnId+'_c_zgxmhtdqrq'])
|
|
|
+// }))
|
|
|
+// total.value = (res as any).content.count
|
|
|
+// }else{
|
|
|
+// projects.value = []
|
|
|
+// total.value = 0
|
|
|
+// }
|
|
|
+// }
|
|
|
+
|
|
|
+const getDmsDataList = async (params: any) => {
|
|
|
+ return await api.getDmsDataList(params)
|
|
|
+}
|
|
|
|
|
|
</script>
|
|
|
|