提交 9ffcc94d authored 作者: zsf's avatar zsf

新增预支工资额度设置

上级 7ad25d69
import request from '@/utils/request'
// 查询派遣公司列表
export function dispatchL(query) {
return request({
url: '/djl-role/dispatch/query/list',
method: 'get',
params: query
})
}
// 新增 预支额度设置
export function salaryAdvanceInsert(data) {
return request({
url: '/djl-role/salary/advance/insert',
method: 'post',
data: data
})
}
export function getQrCode(data) {
return request({
url: '/djl-recruit/channelqrcode/download/base64/qrcode',
method: 'get',
params: data
})
}
// 获取项目详情
export function projectDetails(data) {
return request({
url: '/djl-recruit/releasedproject/query/single',
method: 'get',
params: data
})
}
// 查询接站地列表
export function projectStationList(data) {
return request({
url: '/djl-recruit/releasedproject/query/station/list',
method: 'get',
params: data
})
}
// 查询此项目是否第一次执行雇员报备
export function queryChannelProject(data) {
return request({
url: '/djl-recruit/recruitpersonnel/querychannelproject',
method: 'get',
params: data
})
}
// 查询所有招聘政策
export function pricePolicyListSelect(data) {
return request({
url: '/djl-recruit/releasedpricepolicy/queryallpricepolicy',
method: 'get',
params: data
})
}
// 查询所有招聘政策
export function insertChannelProject(data) {
return request({
url: '/djl-recruit/recruitpersonnel/insertchannelproject',
method: 'post',
data: data
})
}
// 报备页面-查询列表
export function recruitPersonnelL(data) {
return request({
url: '/djl-recruit/recruitpersonnel/query/list',
method: 'get',
params: data
})
}
//报备页面-解析证件号码
export function parseIdNo(data){
return request({
url: '/djl-recruit/recruitpersonnel/parse/id_no',
method: 'get',
params: data
})
}
//报备页面-校验证件号码是否重复
export function checkIdNo(data){
return request({
url: '/djl-recruit/recruitpersonnel/check/id_no',
method: 'get',
params: data
})
}
//报备页面-新增 新增项目报备的雇员信息
export function recruitPersonC(data) {
return request({
url: '/djl-recruit/recruitpersonnel/insert',
method: 'post',
data: data
})
}
//报备页面-编辑 更新项目报备的雇员信息
export function recruitPersonU(data) {
return request({
url: '/djl-recruit/recruitpersonnel/update',
method: 'post',
data: data
})
}
//报备页面-删除 删除项目报备的雇员信息
export function recruitPersonD(data) {
return request({
url: '/djl-recruit/recruitpersonnel/delete',
method: 'post',
data: data
})
}
//报备页面-检查是否有正在导入的数据
export function recruitPersonCheckImporting(data){
return request({
url: '/djl-recruit/importpeportpersonnel/check/is_importing',
method: 'get',
params: data
})
}
//导入雇员
export function importRecruitPerson(data) {
return request({
url: '/djl-recruit/importpeportpersonnel/import',
method: 'post',
data: data
})
}
//导入中间页-查询列表 查询正在导入的雇员临时数据
export function recruitPersonImportL(data){
return request({
url: '/djl-recruit/importpeportpersonnel/query/import',
method: 'get',
params: data
})
}
//导入中间页-编辑 更新雇员导入临时数据
export function recruitPersonImportU(data) {
return request({
url: '/djl-recruit/importpeportpersonnel/update',
method: 'post',
data: data
})
}
//导入中间页-编辑 校验证件号码
export function recruitPersonImportCheckIdNo(data){
return request({
url: '/djl-recruit/importpeportpersonnel/check/id_no',
method: 'get',
params: data
})
}
//导入中间页-删除
export function recruitPersonImportD(data){
return request({
url: '/djl-recruit/importpeportpersonnel/delete',
method: 'get',
params: data
})
}
//导入中间页-批量删除
export function recruitPersonImportBatchD(data){
return request({
url: '/djl-recruit/importpeportpersonnel/batchdelete',
method: 'post',
data: data
})
}
//导入中间页-删除全部雇员导入临时数据
export function recruitPersonImportClear(data){
return request({
url: '/djl-recruit/importpeportpersonnel/clear',
method: 'get',
params: data
})
}
//导入中间页-确认入库 提交导入数据
export function recruitPersonImportSubmit(data){
return request({
url: '/djl-recruit/importpeportpersonnel/import/submit',
method: 'get',
params: data
})
}
//查询导入中间页正确数据、错误数据的条数
export function importTypeCount(data){
return request({
url: '/djl-recruit/importpeportpersonnel/query/import/typecount',
method: 'get',
params: data
})
}
\ No newline at end of file
...@@ -49,28 +49,27 @@ export const constantRoutes = [ ...@@ -49,28 +49,27 @@ export const constantRoutes = [
{ {
path: '/', path: '/',
component: Layout, component: Layout,
redirect: 'home', redirect: '',
// meta: { title: '项目', icon: 'redis' }, // meta: { title: '项目', icon: 'redis' },
children: [ children: [
{ {
path: 'home', path: 'dispatch',
component: () => import('@/views/home/index'), component: () => import('@/views/dispatch/index'),
name: 'home', name: 'home',
meta: { title: '雇员报备', icon: 'redis' } meta: { title: '客户(派遣公司)管理', icon: 'redis' }
},
{
"name": "salary_advance",
"path": "dispatch/salary/advance",
"hidden": true,
"component": () => import('@/views/dispatch/salary_advance'),
"meta": {
"title": "预支工资设置",
"icon": "online",
"preTitle":"客户(派遣公司)管理",
"activeMenu":"/dispatch"
}
}, },
// {
// "name": "recruit_import",
// "path": "channel_recruit_report/report/import",
// "hidden": true,
// "component": () => import('@/views/recruit/channel_recruit_report/report_import'),
// "meta": {
// "title": "导入",
// "icon": "online",
// "preTitle":"雇员报备",
// "preTitle2":"报备",
// "activeMenu":"/channel_recruit_report"
// }
// },
] ]
}, },
// { // {
......
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch">
<el-form-item label="派遣公司名称" prop="name">
<el-input
v-model="queryParams.name"
clearable
style="width: 300px"
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="默认账号" prop="default_account">
<el-input
v-model="queryParams.default_account"
clearable
style="width: 300px"
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="编号" prop="base_code">
<el-input
v-model="queryParams.base_code"
clearable
style="width: 300px"
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-table v-loading="loading" :data="list">
<el-table-column label="编号" align="left" prop="base_code" width="200" fixed/>
<el-table-column label="派遣公司名称" align="left" prop="name" width="260" fixed />
<el-table-column label="默认账号" align="left" prop="default_account" width="180" fixed/>
<el-table-column label="前缀" align="left" prop="prefix" width="100"/>
<el-table-column label="规模" align="center" prop="scale" />
<el-table-column label="联系人" align="center" prop="contracts" />
<el-table-column label="联系电话" align="center" prop="contract_number" width="120"/>
<el-table-column label="公司地址(省市县区 )" align="left" prop="district" width="200"/>
<el-table-column label="详细地址" align="left" prop="address" width="200"/>
<el-table-column label="是否使用电子合同" align="center" prop="line_contract" width="180">
<template #default="{row}">
{{row.line_contract=='1'?'是':'否'}}
</template>
</el-table-column>
<el-table-column label="统一社会信用代码" align="left" prop="id_no" width="180"/>
<el-table-column label="电子签章应用id" align="left" prop="seal_id" width="180"/>
<el-table-column label="电子签章应用秘钥" align="left" prop="secret_key" width="280"/>
<el-table-column label="注册日期" align="left" prop="register_time" width="180"/>
<el-table-column label="创建时间" align="left" prop="create_time" width="180"/>
<el-table-column label="更新时间" align="left" prop="update_time" width="180"/>
<el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
<template #default="{row}">
<el-button link type="primary" @click="handleSalaryAdvance(row)" icon="EditPen">设置预支工资</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
v-model:page="queryParams.page"
v-model:limit="queryParams.limit"
@pagination="getList"
/>
</div>
</template>
<script setup>
import {dispatchL} from "@/api/dispatch";
const { proxy } = getCurrentInstance();
const list = ref([]);
const policyOpen = ref(false);
const loading = ref(true);
const showSearch = ref(true);
const total = ref(0);
const data = reactive({
form: {
},
queryParams: {
page: 1,
limit: 10,
},
});
const { queryParams, form } = toRefs(data);
/** 查询列表 */
function getList() {
loading.value = true;
dispatchL(queryParams.value).then(response => {
list.value = response.data;
total.value = response.count;
loading.value = false;
});
}
/** 搜索按钮操作 */
function handleQuery() {
queryParams.value.page = 1;
queryParams.value.limit = 10;
getList();
}
/** 重置按钮操作 */
function resetQuery() {
proxy.resetForm("queryRef");
handleQuery();
}
/** 设置预支公司按钮操作 */
function handleSalaryAdvance(row) {
proxy.$router.push('dispatch/salary/advance?id='+row.id+'&code='+row.base_code)
}
getList();
</script>
\ No newline at end of file
<template>
<div class="dispatch-salary-advance">
<el-form
:inline="true"
label-position="right"
label-width="170px"
:model="formLabelAlign"
style="max-width: 90%"
ref="ruleFormRef"
:rules="rules"
class="ruleFormRef"
>
<el-form-item label="最低预支额度" prop="minAmount">
<el-input v-model="formLabelAlign.minAmount" type="number" />
</el-form-item>
<el-form-item label="无手续费当月累计限额" prop="freeAmount">
<el-input v-model="formLabelAlign.freeAmount" type="number" />
</el-form-item>
<el-form-item></el-form-item>
<el-form-item label="手续费" style="width: 1010px;" prop="fee">
<el-table :data="formLabelAlign.fee">
<el-table-column label="手续费" align="center" prop="serviceFee" >
<template #default="{row}">
{{row.serviceFee + '%'}}
</template>
</el-table-column>
<el-table-column label="金额范围" align="center" prop="minAmount" >
<template #default="{row}">
{{row.minAmount + '-' + row.maxAmount}}
</template>
</el-table-column>
<el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
<template #default="scope">
<el-button link type="primary" icon="Delete" @click="delFee(scope)">删除</el-button>
</template>
</el-table-column>
</el-table>
<el-button @click="add" icon="Plus" style="width: 100%;border: 1px dashed #dcdfe6;margin-top: 6px;">新增</el-button>
</el-form-item>
<el-form-item style="width: 100%;">
<div style="margin: 0 auto;">
<el-button @click="resetForm">取消</el-button>
<el-button @click="submitForm" type="primary" >提交</el-button>
</div>
</el-form-item>
</el-form>
<!-- 新增手续费 -->
<el-dialog title="新增手续费" v-model="open" width="500px" append-to-body>
<el-form ref="addDialogRef" :model="addForm" :rules="feeRules" label-width="110">
<el-form-item label="手续费(%)" prop="serviceFee">
<el-input v-model="addForm.serviceFee" placeholder="请输入手续费" maxlength="60" />
</el-form-item>
<el-form-item label="最小值" prop="minAmount">
<el-input v-model="addForm.minAmount" placeholder="请输入最小值" maxlength="60" />
</el-form-item>
<el-form-item label="最大值" prop="maxAmount">
<el-input v-model="addForm.maxAmount" placeholder="请输入最大值" maxlength="60" />
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitDialog">确 定</el-button>
<el-button @click="open = false">取 消</el-button>
</div>
</template>
</el-dialog>
</div>
</template>
<script setup>
import {salaryAdvanceInsert} from "@/api/dispatch";
const { proxy } = getCurrentInstance();
const list = ref([]);
const open = ref(false)
const id = proxy.$route.query.id || '' // 编辑时数据id
const code = proxy.$route.query.code || '' // 编辑时数据code
const data = reactive({
formLabelAlign: {
minAmount:'',
freeAmount:'',
fee:[]
},
addForm:{},
rules:{
minAmount: [{required: true,message:"请输入最低预支额度",trigger:"blur"}],
freeAmount: [{required: true,message:"请输入无手续费当月累计限额",trigger:"blur"}],
fee: [{required: true,message:"请添加手续费",trigger:"change"}],
},
feeRules:{
serviceFee: [{required: true,message:"请输入手续费",trigger:"blur"}],
minAmount: [{required: true,message:"请输入最小值",trigger:"blur"}],
maxAmount: [{required: true,message:"请输入最大值",trigger:"change"}],
}
});
const { addForm,formLabelAlign,rules,feeRules } = toRefs(data);
/** 新增手续费弹窗 */
function add(){
open.value= true
proxy.$refs.addDialogRef.resetFields();
}
/** 保存手续费 */
function submitDialog(){
proxy.$refs.addDialogRef.validate((valid) => {
if (!valid) return;
let list = formLabelAlign.value.fee || []
for (let i = 0; i < list.length; i++) {
if (list[i].serviceFee === addForm.value.serviceFee) {
return proxy.$modal.msgWarning(`手续费已存在!`);
}
}
open.value= false
formLabelAlign.value.fee.push({...addForm.value})
})
}
/** 删除手续费 */
function delFee(row){
formLabelAlign.value.fee.splice(row.$index, 1)
}
/** 取消 */
function resetForm(){
proxy.$router.go(-1);
}
/** 提交 */
function submitForm(){
proxy.$refs.ruleFormRef.validate(async (valid) => {
if (!valid) return;
const submitForm = {...formLabelAlign.value}
submitForm.fee = JSON.stringify(submitForm.fee)
salaryAdvanceInsert({...submitForm,code:code,}).then(res => {
proxy.$modal.msgSuccess(res.code)
const obj = { path: "/dispatch" };
proxy.$tab.closeOpenPage(obj);
})
})
}
</script>
<style lang="scss">
.dispatch-salary-advance {
.el-form.ruleFormRef {
margin: 20px auto;
display: flex;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
.el-form-item {
width: 30%;
.el-input, .el-select, .el-date-editor.el-input, .el-date-editor.el-input__wrapper {
width: 100%;
}
}
}
}
</style>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论