|
@@ -47,7 +47,7 @@
|
|
|
</div>
|
|
|
<div class="form" style="width: unset">
|
|
|
<span class="formSpan">合同:</span>
|
|
|
- <el-radio-group v-model="queryParams.isSign">
|
|
|
+ <el-radio-group v-model="queryParams.isSign" @change="searchHandle">
|
|
|
<el-radio>全部</el-radio>
|
|
|
<el-radio label="1">已签订</el-radio>
|
|
|
<el-radio label="0">未签订</el-radio>
|
|
@@ -55,11 +55,11 @@
|
|
|
</div>
|
|
|
<div class="form" style="width: unset">
|
|
|
<span class="formSpan">项目状态:</span>
|
|
|
- <el-radio-group v-model="queryParams.xmzt">
|
|
|
+ <el-radio-group v-model="queryParams.xmzt" @change="searchHandle">
|
|
|
<el-radio :label="1">进行中({{ process }})</el-radio>
|
|
|
<el-radio :label="4">已验收({{ accepted }})</el-radio>
|
|
|
<el-radio :label="2">已结项({{ finished }})</el-radio>
|
|
|
- <el-radio :label="9">已终止({{ terminated }})</el-radio>
|
|
|
+ <el-radio :label="3">已终止({{ terminated }})</el-radio>
|
|
|
<el-radio>全部({{ totalNum }})</el-radio>
|
|
|
</el-radio-group>
|
|
|
</div>
|
|
@@ -143,67 +143,24 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
<script setup lang="ts">
|
|
|
-import moment from 'moment'
|
|
|
import { useRouter } from 'vue-router'
|
|
|
+import { useMixins, infoList } from './common'
|
|
|
import request from '@/config/axios'
|
|
|
+import { deleteKey } from '@/utils'
|
|
|
import { getAssetURL } from '@/utils/auth'
|
|
|
import { industryListAll } from '@/utils/business'
|
|
|
import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
|
|
|
import district from '@/components/Area/district.js'
|
|
|
|
|
|
defineOptions({ name: 'ProjectBook' })
|
|
|
-const xmztMap: any = { 0: '立项申请中', 1: '进行中', 2: '已结项', 3: '中止' }
|
|
|
const router = useRouter()
|
|
|
const { wsCache } = useCache()
|
|
|
const user = wsCache.get(CACHE_KEY.USER)
|
|
|
const userId = user.user.id ? user.user.id : ''
|
|
|
const tableRef: any = ref(null)
|
|
|
const tableHeight: any = ref(0)
|
|
|
-const queryParams = reactive<{
|
|
|
- xmbh: string
|
|
|
- xmmc: string
|
|
|
- xmlbId: string
|
|
|
- lxsjOn: string
|
|
|
- lxsjOff: string
|
|
|
- pageNo: number
|
|
|
- xzqdm: number | string
|
|
|
- pageSize: number
|
|
|
- isSign: any
|
|
|
- xmzt: any
|
|
|
- hyId: any
|
|
|
- userId: string
|
|
|
-}>({
|
|
|
- xmbh: '',
|
|
|
- xmmc: '',
|
|
|
- xmlbId: '15',
|
|
|
- lxsjOn: '',
|
|
|
- lxsjOff: '',
|
|
|
- pageNo: 1,
|
|
|
- xzqdm: '',
|
|
|
- pageSize: 15,
|
|
|
- isSign: '',
|
|
|
- xmzt: '',
|
|
|
- hyId: 0,
|
|
|
- userId: userId
|
|
|
-})
|
|
|
+const { xmztMap, queryParams, setSearchParams } = useMixins()
|
|
|
const lxsjObj = ref()
|
|
|
-const infoList: any = reactive([
|
|
|
- {
|
|
|
- icon: 'xmzx/xmzcz',
|
|
|
- name: '项目总产值(元)',
|
|
|
- num: 0
|
|
|
- },
|
|
|
- {
|
|
|
- icon: 'xmzx/xmzcb',
|
|
|
- name: '项目总成本(元)',
|
|
|
- num: 0
|
|
|
- },
|
|
|
- {
|
|
|
- icon: 'xmzx/xmzlr',
|
|
|
- name: '项目总利润(元)',
|
|
|
- num: 0
|
|
|
- }
|
|
|
-])
|
|
|
|
|
|
const handleCurrentChange = (pageNo: number) => {
|
|
|
queryParams.pageNo = pageNo
|
|
@@ -224,20 +181,12 @@ const searchHandle: () => void = () => {
|
|
|
}
|
|
|
const queryProjectListAjax = async (): Promise<void> => {
|
|
|
const urlApi = `/project/page`
|
|
|
- if (lxsjObj.value && lxsjObj.value.length > 0) {
|
|
|
- queryParams.lxsjOn = moment(lxsjObj.value[0]).format('YYYY-MM-DD')
|
|
|
- queryParams.lxsjOff = moment(lxsjObj.value[1]).format('YYYY-MM-DD')
|
|
|
- } else {
|
|
|
- queryParams.lxsjOn = ''
|
|
|
- queryParams.lxsjOff = ''
|
|
|
- }
|
|
|
+ setSearchParams()
|
|
|
const sendData = {
|
|
|
...queryParams,
|
|
|
+ userId,
|
|
|
pageSize: 15
|
|
|
}
|
|
|
- if (sendData['hyId'] == 0) {
|
|
|
- sendData['hyId'] = null
|
|
|
- }
|
|
|
const result = await request.get({ url: urlApi, params: sendData }, '/business')
|
|
|
tableData.value = result['records']
|
|
|
total.value = result['total']
|
|
@@ -249,20 +198,12 @@ queryProjectListAjax()
|
|
|
*/
|
|
|
const queryProjectCalculate = async (): Promise<void> => {
|
|
|
const urlApi = `/project/calculate`
|
|
|
- if (lxsjObj.value && lxsjObj.value.length > 0) {
|
|
|
- queryParams.lxsjOn = moment(lxsjObj.value[0]).format('YYYY-MM-DD')
|
|
|
- queryParams.lxsjOff = moment(lxsjObj.value[1]).format('YYYY-MM-DD')
|
|
|
- } else {
|
|
|
- queryParams.lxsjOn = ''
|
|
|
- queryParams.lxsjOff = ''
|
|
|
- }
|
|
|
+ setSearchParams()
|
|
|
const sendData = {
|
|
|
...queryParams,
|
|
|
+ userId,
|
|
|
pageSize: 15
|
|
|
}
|
|
|
- if (sendData['hyId'] == 0) {
|
|
|
- sendData['hyId'] = null
|
|
|
- }
|
|
|
const result = await request.get({ url: urlApi, params: sendData }, '/business')
|
|
|
if (result) {
|
|
|
infoList[0]['num'] = result.output ?? 0
|
|
@@ -295,18 +236,10 @@ const accepted = ref<number>(0)
|
|
|
|
|
|
const queryXmztCount = async (): Promise<void> => {
|
|
|
const urlApi = `/project/xmzt/count`
|
|
|
- if (lxsjObj.value && lxsjObj.value.length > 0) {
|
|
|
- queryParams.lxsjOn = moment(lxsjObj.value[0]).format('YYYY-MM-DD')
|
|
|
- queryParams.lxsjOff = moment(lxsjObj.value[1]).format('YYYY-MM-DD')
|
|
|
- } else {
|
|
|
- queryParams.lxsjOn = ''
|
|
|
- queryParams.lxsjOff = ''
|
|
|
- }
|
|
|
+ setSearchParams()
|
|
|
const sendData = {
|
|
|
- ...queryParams
|
|
|
- }
|
|
|
- if (sendData['hyId'] == 0) {
|
|
|
- sendData['hyId'] = null
|
|
|
+ ...deleteKey(queryParams, 'xmzt'),
|
|
|
+ userId
|
|
|
}
|
|
|
const result = await request.get({ url: urlApi, params: sendData }, '/business')
|
|
|
if (result) {
|