|
@@ -11,25 +11,41 @@
|
|
|
</div>
|
|
|
<div class="form">
|
|
|
<span class="formSpan">申请人:</span>
|
|
|
- <el-input v-model="queryParams.userId" placeholder="请输入申请人" style="width: 160px" />
|
|
|
+ <el-tree-select
|
|
|
+ v-model="queryParams.userId"
|
|
|
+ :data="userList"
|
|
|
+ :props="defaultProps"
|
|
|
+ check-strictly
|
|
|
+ clearable
|
|
|
+ filterable
|
|
|
+ default-expand-all
|
|
|
+ node-key="id"
|
|
|
+ placeholder="请选择人员"
|
|
|
+ />
|
|
|
</div>
|
|
|
- <div class="form">
|
|
|
+ <div class="form form-time-range">
|
|
|
<span class="formSpan">申请时间:</span>
|
|
|
<el-date-picker
|
|
|
- v-model="queryParams.applyTime"
|
|
|
+ v-model="applyDate"
|
|
|
type="daterange"
|
|
|
unlink-panels
|
|
|
range-separator="到"
|
|
|
start-placeholder="开始日期"
|
|
|
end-placeholder="结束日期"
|
|
|
+ @change="changeApplyDate"
|
|
|
/>
|
|
|
</div>
|
|
|
<div class="form">
|
|
|
<span class="formSpan">项目部门:</span>
|
|
|
- <el-input
|
|
|
+ <el-tree-select
|
|
|
v-model="queryParams.projectDeptId"
|
|
|
- placeholder="请输入项目部门"
|
|
|
- style="width: 160px"
|
|
|
+ :data="deptList"
|
|
|
+ :props="defaultProps"
|
|
|
+ check-strictly
|
|
|
+ default-expand-all
|
|
|
+ node-key="id"
|
|
|
+ placeholder="请选择部门"
|
|
|
+ clearable
|
|
|
/>
|
|
|
</div>
|
|
|
<div class="form">
|
|
@@ -142,7 +158,11 @@ import { dateFormatter2 } from '@/utils/formatTime'
|
|
|
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
|
|
|
import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
|
|
|
import TableLayout from '../../oaViews/layout/TableLayout.vue'
|
|
|
-
|
|
|
+import { useRouter } from 'vue-router'
|
|
|
+import * as DeptApi from '@/api/system/dept'
|
|
|
+import { defaultProps, handleTree } from '@/utils/tree'
|
|
|
+import { arrFlatten } from '../../attendanceCenter/attendAuth'
|
|
|
+import moment from 'moment'
|
|
|
defineOptions({ name: 'UseMoneyEarnestDept' })
|
|
|
const { wsCache } = useCache()
|
|
|
const user = wsCache.get(CACHE_KEY.USER)
|
|
@@ -157,7 +177,9 @@ const queryParams = reactive({
|
|
|
projectDeptId: undefined,
|
|
|
costType: undefined,
|
|
|
status: undefined,
|
|
|
- totalAmount: undefined
|
|
|
+ totalAmount: undefined,
|
|
|
+ applyOn: '',
|
|
|
+ applyOff: ''
|
|
|
})
|
|
|
const infoList: any = ref([
|
|
|
{
|
|
@@ -176,11 +198,37 @@ const infoList: any = ref([
|
|
|
const loading = ref(true) // 列表的加载中
|
|
|
const total = ref(0) // 列表的总页数
|
|
|
const list = ref([]) // 列表的数
|
|
|
+const deptList = ref<Tree[]>([]) // 树形结构
|
|
|
+const userList = ref<Tree[]>([]) // 树形结构
|
|
|
+const deptSort: any = ref([])
|
|
|
+const initTreeDeps = async () => {
|
|
|
+ DeptApi.getSimpleDeptList().then((res) => {
|
|
|
+ deptList.value = handleTree(res)
|
|
|
+ deptSort.value = arrFlatten(res, 'children')
|
|
|
+ })
|
|
|
+}
|
|
|
+/** 用户列表 */
|
|
|
+const initTreeUsers = async () => {
|
|
|
+ DeptApi.getSimpleDeptUserAllList().then((res) => {
|
|
|
+ userList.value = handleTree(res)
|
|
|
+ })
|
|
|
+}
|
|
|
+const changeApplyDate = (value, data) => {
|
|
|
+ if (!value) {
|
|
|
+ queryParams.applyOn = ''
|
|
|
+ queryParams.applyOff = ''
|
|
|
+ }
|
|
|
+}
|
|
|
+const applyDate = ref()
|
|
|
|
|
|
/** 查询列表 */
|
|
|
const getList = async () => {
|
|
|
loading.value = true
|
|
|
try {
|
|
|
+ if (applyDate.value && applyDate.value.length > 0) {
|
|
|
+ queryParams.applyOn = moment(applyDate.value[0]).format('YYYY-MM-DD')
|
|
|
+ queryParams.applyOff = moment(applyDate.value[1]).format('YYYY-MM-DD')
|
|
|
+ }
|
|
|
const data = await UseMoneyApi.getUseMoneyEarnestDeptPage(queryParams)
|
|
|
list.value = data.list
|
|
|
total.value = data.total
|
|
@@ -188,11 +236,38 @@ const getList = async () => {
|
|
|
loading.value = false
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+/** 查询概况 */
|
|
|
+const getOverview = async () => {
|
|
|
+ if (applyDate.value && applyDate.value.length > 0) {
|
|
|
+ queryParams.applyOn = moment(applyDate.value[0]).format('YYYY-MM-DD')
|
|
|
+ queryParams.applyOff = moment(applyDate.value[1]).format('YYYY-MM-DD')
|
|
|
+ }
|
|
|
+ const data = await UseMoneyApi.getUseMoneyOverviewHx(queryParams)
|
|
|
+ if (data.totalAmount > 100000) {
|
|
|
+ infoList.value[0].num = data.totalAmount / 10000
|
|
|
+ infoList.value[1].num = data.totalUseAmount / 10000
|
|
|
+ infoList.value[2].num = data.totalApplyAmount / 10000
|
|
|
+ infoList.value[0].name = '保证金总金额(万元)'
|
|
|
+ infoList.value[1].name = '已核销总金额(万元)'
|
|
|
+ infoList.value[2].name = '未核销总金额(万元)'
|
|
|
+ } else {
|
|
|
+ infoList.value[0].num = data.totalAmount
|
|
|
+ infoList.value[1].num = data.totalUseAmount
|
|
|
+ infoList.value[2].num = data.totalApplyAmount
|
|
|
+ infoList.value[0].name = '保证金总金额(元)'
|
|
|
+ infoList.value[1].name = '已核销总金额(元)'
|
|
|
+ infoList.value[2].name = '未核销总金额(元)'
|
|
|
+ }
|
|
|
+}
|
|
|
+const formRef = ref()
|
|
|
+const openForm = (row: object) => {
|
|
|
+ formRef.value.open(row)
|
|
|
+}
|
|
|
/** 搜索按钮操作 */
|
|
|
const handleQuery = () => {
|
|
|
queryParams.pageNo = 1
|
|
|
getList()
|
|
|
+ getOverview()
|
|
|
}
|
|
|
|
|
|
/** 分页操作 */
|
|
@@ -203,6 +278,21 @@ const handleCurrentChange = (pageNo: number) => {
|
|
|
|
|
|
/** 初始化 */
|
|
|
onMounted(() => {
|
|
|
+ initTreeDeps()
|
|
|
+ initTreeUsers()
|
|
|
getList()
|
|
|
+ getOverview()
|
|
|
})
|
|
|
+const router = useRouter()
|
|
|
+const operateClick = (row: any) => {
|
|
|
+ router.push({
|
|
|
+ path: '/processLook',
|
|
|
+ query: {
|
|
|
+ url:
|
|
|
+ `${
|
|
|
+ import.meta.env.VITE_PROCESS_DETAIL_URI
|
|
|
+ }/IFlowInstance/redirectFlowPage?flowInstanceId=` + row.instanceId
|
|
|
+ }
|
|
|
+ })
|
|
|
+}
|
|
|
</script>
|