Commit d125b0aa authored by 许珑标's avatar 许珑标

Merge branch 'feat/contract-tree' into test

# Conflicts:
#	src/views/business/outContract/index.vue
parents f2a4e760 cc51850d
...@@ -18,6 +18,15 @@ export function listAllOutContract(query) { ...@@ -18,6 +18,15 @@ export function listAllOutContract(query) {
}) })
} }
// 查询所有发薪合同的用工单位名称
export function allGroupNames(query) {
return request({
url: '/business/outContract/groupName/listAll',
method: 'get',
params: query
})
}
// 查询发薪合同详细 // 查询发薪合同详细
export function getOutContract(id) { export function getOutContract(id) {
return request({ return request({
......
<template>
<div class="app-container declare">
<el-descriptions title="合同信息" :column="4" border>
<el-descriptions-item label="合同名称">{{ contractData.contractName }}</el-descriptions-item>
<el-descriptions-item label="合同编号">{{ contractData.contractCode }}</el-descriptions-item>
<el-descriptions-item label="合作单位">{{ contractData.groupName }}</el-descriptions-item>
<el-descriptions-item label="代发企业">
{{ contractData.payerCompanyName }}
</el-descriptions-item>
<el-descriptions-item label="合作周期">
1年
</el-descriptions-item>
<el-descriptions-item label="签约时间">
2025-03-12
</el-descriptions-item>
<el-descriptions-item label="时间选择">
<el-date-picker v-model="value1" value-format="yyyy-MM" type="monthrange" range-separator="至"
start-placeholder="开始月份" end-placeholder="结束月份">
</el-date-picker>
</el-descriptions-item>
</el-descriptions>
<!-- 申报主体内容盒子 -->
<el-row :gutter="12">
<el-col :span="6" v-for="item in 12" :key="item">
<div class="declareMain">
<div class="declareMain_title">{{ item }}月</div>
<div class="declareMain_content">人数:28人</div>
<div class="declareMain_buttonBox">
<el-button type="primary" plain class="declareMain_declare">去申报</el-button>
<el-button type="primary" @click="toLinkPay" class="declareMain_pay">去发薪</el-button>
</div>
<!-- 当前申报状态 -->
<div class="declareMain_status">未申报</div>
</div>
</el-col>
</el-row>
</div>
</template>
<script>
import { getOutContract } from '@/api/business/outContract'
export default {
name: 'declare',
data() {
return {
contractData: {},
value1: ''
}
},
mounted() {
if (this.$route.query.id) {
this.getOutContractFN(this.$route.query.id)
}
},
methods: {
toLinkPay() {
this.$router.push({ path: '/transfer/salaryAccount' })
},
getOutContractFN(id) {
getOutContract(id).then(res => {
console.log(res)
if (res.code == 200) {
this.contractData = res.data
}
})
},
}
}
</script>
<style lang="scss" scoped>
.declare ::v-deep {
.declareMain {
overflow: hidden;
margin-top: 32px;
width: 100%;
background-color: #fafafa;
border-radius: 6px;
padding: 20px;
position: relative;
.declareMain_title {
font-size: 28px;
color: #000;
font-weight: 600;
}
.declareMain_content {
font-size: 16px;
color: #666;
margin-top: 14px;
}
.declareMain_buttonBox {
margin-top: 22px;
display: flex;
align-items: center;
justify-content: space-evenly;
.declareMain_declare {
width: calc(50% - 15px);
}
.declareMain_pay {
width: calc(50% - 15px);
}
}
.declareMain_status {
position: absolute;
top: 50px;
right: -20px;
width: 100px;
font-size: 14px;
font-weight: 500;
height: 0;
border-bottom: 25px solid #50A3E7;
border-left: 20px solid transparent;
border-right: 20px solid transparent;
color: white;
text-align: center;
line-height: 25px;
transform: rotate(45deg);
transform-origin: top right;
}
}
}
</style>
\ No newline at end of file
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<div class="EDMMain"> <div class="EDMMain">
<div class="themeMain"> <div class="themeMain">
<div class="head-container"> <div class="head-container">
<el-input v-model="deptName" placeholder="请输入发薪主体" clearable size="small" prefix-icon="el-icon-search" <el-input v-model="deptName" placeholder="请输入发薪主题" clearable size="small" prefix-icon="el-icon-search"
style="margin-bottom: 20px" /> style="margin-bottom: 20px" />
</div> </div>
<div class="head-container"> <div class="head-container">
...@@ -12,6 +12,17 @@ ...@@ -12,6 +12,17 @@
@node-click="handleNodeClick" /> @node-click="handleNodeClick" />
</div> </div>
</div> </div>
<div class="cooperateUnitMain">
<div class="head-container">
<el-input v-model="deptName" placeholder="请输入用工单位" clearable size="small" prefix-icon="el-icon-search"
style="margin-bottom: 20px" />
</div>
<div class="head-container">
<el-tree :data="cooperateUnitList" :props="defaultProps" :expand-on-click-node="false"
:filter-node-method="filterNode" ref="tree" default-expand-all highlight-current
@node-click="handleCurrentChange" />
</div>
</div>
<div class="listMain"> <div class="listMain">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
label-width="80px"> label-width="80px">
...@@ -23,10 +34,10 @@ ...@@ -23,10 +34,10 @@
<el-input v-model="queryParams.contractCode" placeholder="请输入合同编号" clearable <el-input v-model="queryParams.contractCode" placeholder="请输入合同编号" clearable
@keyup.enter.native="handleQuery" /> @keyup.enter.native="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item label="单位名称" prop="groupName"> <!-- <el-form-item label="单位名称" prop="groupName">
<el-input v-model="queryParams.groupName" placeholder="请输入单位名称" clearable <el-input v-model="queryParams.groupName" placeholder="请输入单位名称" clearable
@keyup.enter.native="handleQuery" /> @keyup.enter.native="handleQuery" />
</el-form-item> </el-form-item> -->
<!-- <el-form-item label="单位编码(社会信用代码)" prop="groupCode">--> <!-- <el-form-item label="单位编码(社会信用代码)" prop="groupCode">-->
<!-- <el-input--> <!-- <el-input-->
<!-- v-model="queryParams.groupCode"--> <!-- v-model="queryParams.groupCode"-->
...@@ -110,6 +121,7 @@ ...@@ -110,6 +121,7 @@
v-hasPermi="['business:outContract:manage']">员工管理</el-button> v-hasPermi="['business:outContract:manage']">员工管理</el-button>
<el-button type="text" icon="el-icon-s-help" size="mini" @click="createBatchTaskOne(scope.row)" <el-button type="text" icon="el-icon-s-help" size="mini" @click="createBatchTaskOne(scope.row)"
v-hasPermi="['business:outContract:bco']">生成发薪任务</el-button> v-hasPermi="['business:outContract:bco']">生成发薪任务</el-button>
<el-button type="text" icon="el-icon-s-help" size="mini" @click="declareTaskOne(scope.row)">申报</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['business:outContract:edit']">修改</el-button> v-hasPermi="['business:outContract:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
...@@ -147,8 +159,14 @@ ...@@ -147,8 +159,14 @@
</template> </template>
<script> <script>
import { listAllCompanyInfo, listCompanyInfo } from '@/api/business/companyInfo' import { listCompanyInfo } from "@/api/business/companyInfo";
import { listOutContract, delOutContract, addOutContract, updateOutContract } from "@/api/business/outContract"; import {
listOutContract,
delOutContract,
addOutContract,
updateOutContract,
allGroupNames
} from '@/api/business/outContract'
import { buildPayOutRecord } from '@/api/business/payOutRecord' import { buildPayOutRecord } from '@/api/business/payOutRecord'
export default { export default {
...@@ -238,6 +256,8 @@ export default { ...@@ -238,6 +256,8 @@ export default {
label: "label" label: "label"
}, },
deptName: null, deptName: null,
// 合作单位数据
cooperateUnitList: []
}; };
}, },
created() { created() {
...@@ -245,6 +265,7 @@ export default { ...@@ -245,6 +265,7 @@ export default {
}, },
mounted() { mounted() {
this.getThemeList() this.getThemeList()
this.getAllGroupNames();
this.getList(); this.getList();
}, },
watch: { watch: {
...@@ -254,9 +275,31 @@ export default { ...@@ -254,9 +275,31 @@ export default {
}, },
methods: { methods: {
// 节点单击事件 getAllGroupNames(payerCompanyId) {
allGroupNames({ payerCompanyId: payerCompanyId }).then(resp => {
if (resp.code === 200) {
let arr = [];
arr = resp.data.map(item => {
return { id: item, label: item }
})
this.cooperateUnitList = [{ id: '', label: '用工单位', children: arr }]
}
})
},
//节点点击事件-用工单位
handleCurrentChange(data) {
// this.queryParams.payerCompanyId = data.id;
this.queryParams.groupName = data.id;
this.getList();
},
// 节点单击事件-发薪主体
handleNodeClick(data) { handleNodeClick(data) {
if (data.id != this.queryParams.payerCompanyId) {
this.queryParams.groupName = ''
}
this.queryParams.payerCompanyId = data.id; this.queryParams.payerCompanyId = data.id;
this.getAllGroupNames(data.id);
this.getList(); this.getList();
}, },
// 筛选节点 // 筛选节点
...@@ -269,10 +312,10 @@ export default { ...@@ -269,10 +312,10 @@ export default {
}, },
/** 查询付款主体信息列表 */ /** 查询付款主体信息列表 */
getThemeList() { getThemeList() {
listAllCompanyInfo({ companyName: this.deptName }).then(response => { listCompanyInfo({ pageNum: 1, pageSize: 999, companyName: this.deptName }).then(response => {
let arr = [] let arr = []
response.data.forEach(item => { response.rows.forEach(item => {
arr.push({ arr.push({
id: item.id, id: item.id,
label: item.companyName label: item.companyName
...@@ -406,6 +449,11 @@ export default { ...@@ -406,6 +449,11 @@ export default {
this.bcoForm.targetIds = this.ids this.bcoForm.targetIds = this.ids
this.bcoOpen = true this.bcoOpen = true
}, },
//申报
declareTaskOne(row) {
console.log('申请申报')
this.$router.push({ path: "/declare", query: { id: row.id } });
},
// 单条生成发薪任务 // 单条生成发薪任务
createBatchTaskOne(row) { createBatchTaskOne(row) {
this.bcoForm.contractName = row.contractName this.bcoForm.contractName = row.contractName
...@@ -436,14 +484,19 @@ export default { ...@@ -436,14 +484,19 @@ export default {
<style scoped lang="scss"> <style scoped lang="scss">
.EDMMain { .EDMMain {
display: flex; display: flex;
align-items: flex-start;
gap: 10px;
.themeMain { .themeMain {
width: 290px; width: 190px;
}
.cooperateUnitMain {
width: 190px;
} }
.listMain { .listMain {
margin-left: 10px; width: calc(100% - 400px);
width: calc(100% - 300px);
} }
} }
</style> </style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment