初始化项目

This commit is contained in:
18500206848
2024-02-02 14:51:50 +08:00
parent dc7051417b
commit 12664d0204
681 changed files with 1 additions and 142886 deletions

View File

@@ -1,342 +0,0 @@
<template>
<basic-container>
<el-drawer
title="任务工资详情页"
append-to-body
:visible.sync="drawer"
size="80%"
class="drawer"
>
<div class="title">基本信息</div>
<div class="jbxxBox">
<el-form :inline="true" :model="formInline" class="demo-form-inline" label-width="120px">
<el-form-item label="人员名称:">
<span>{{formInline.realName}}</span>
</el-form-item>
<el-form-item label="身份证号:">
<span>{{formInline.cardNumber}}</span>
</el-form-item>
<el-form-item label="归属月:">
<span>{{formInline.month}}</span>
</el-form-item><br />
<el-form-item label="应发工资:">
<span v-if="formInline.wage && formInline.wage!= 0">{{formInline.wage}}</span>
<span v-else>--</span>
</el-form-item>
<el-form-item label="实发工资:">
<span v-if="formInline.wageReal && formInline.wageReal!= 0">{{formInline.wageReal}}</span>
<span v-else>--</span>
</el-form-item>
<el-form-item label="预扣个税:" v-show="flagyk">
<span v-if="formInline.tax && formInline.tax!= 0">{{formInline.tax}}</span>
<span v-else>--</span>
</el-form-item><br v-show="flagyk"/>
<el-form-item label="确定时间:" v-show="flag">
<span v-if="formInline.updateTime">{{formInline.updateTime}}</span>
<span v-else>--</span>
</el-form-item>
<el-form-item label="发放时间:" v-show="flag">
<span v-if="formInline.payTime">{{formInline.payTime}}</span>
<span v-else>--</span>
</el-form-item>
<el-form-item label="到账时间:">
<span v-if="formInline.accountTime">{{formInline.accountTime}}</span>
<span v-else>--</span>
</el-form-item>
</el-form>
</div>
<avue-crud
:option="personListOption"
:table-loading="loading"
:data="data"
:page.sync="page"
ref="crud"
:permission="permissionList"
@selection-change="selectionChange"
@current-change="currentChange"
@size-change="sizeChange"
@refresh-change="refreshChange"
class="customPage"
>
<template slot="menuLeft">
<div class="title">关联任务</div>
</template>
<!--自定义列-->
<template slot="resume" slot-scope="{ row }">
<div>
<el-button
type="text"
@click="$refs.resume.openDialog(row)"
v-if="row.userId && row.userId !== '0'"
>查看简历</el-button
>
<div v-else>暂无简历</div>
</div>
</template>
<template slot="recommend" slot-scope="{ row }">
<div>
<el-button
type="primary"
size="mini"
icon="el-icon-plus"
@click="rowRecommend(row)"
v-if="row.isApply === 0 && row.telphone != ''"
>邀请</el-button
>
<!-- v-show="row.isApply === 1 && row.telphone == ''" -->
<el-button
type="info"
disabled
size="mini"
icon="el-icon-plus"
v-else
style="margin-left: 0px"
>邀请</el-button
>
<!-- <el-button type="primary" size="mini" disabled v-show="row.count>=2">已邀请</el-button> -->
</div>
</template>
<template slot="count" slot-scope="{ row }">{{
2 - row.count
}}</template>
</avue-crud>
<Resume ref="resume"></Resume>
</el-drawer>
</basic-container>
</template>
<script>
import {recommendExportList } from "@/api/tenant/mission";
import Resume from "@/components/resume/index";
import { mapGetters } from "vuex";
import { idNumberDDesensitization } from "@/util/util";
import {getHisListDetails} from "@/api/manage/agentpay";//api
export default {
data () {
return {
flag:true,
flagyk:true,
formInline: {
user: '',
region: ''
},
isIndeterminate: false,
checkAll: false,
checked: false,
missionId: "",
missionTitle: "",
stime: "",
drawer: false,
selectionList: [],
loading: false,
query: {},
page: {
pageSize: 100,
currentPage: 1,
total: 0,
},
// personListOption: {
// },
excelBox: false,
data: [],
column:[
{
label: "任务编号",
prop: "missionNo",
span: 24,
},
{
label: "任务名称",
prop: "missionTitle",
span: 24,
},
{
label: "公司名称",
prop: "companyName",
span: 24,
},
{
label: "行业类型",
prop: "tradeName",
span: 24,
},
{
label: "工种类型",
prop: "worktypeName",
span: 24,
},{
label: "任务起止日期",
prop: "mtime",
span: 24,
},{
label: "应发工资",
prop: "wage",
span: 24,
},{
label: "实发工资",
prop: "wageReal",
span: 24,
},
{
label: "预扣个税",
prop: "tax",
span: 24,
},
]
};
},
components: {
Resume,
},
watch: {},
computed: {
...mapGetters(["userInfo", "permission"]),
ids () {
let ids = [];
this.selectionList.forEach((ele) => {
ids.push(ele.userId);
});
return ids.join(",");
},
phones () {
let phones = [];
this.selectionList.forEach((ele) => {
phones.push(ele.telphone);
});
return phones.join(",");
},
personListOption(){
return{
height: "auto",
dialogWidth: "30%",
align: "center",
menuAlign: "center",
rowKey: "id",
tip: false,
menu: false,
addBtn: false,
columnBtn: false,
searchBtn: false,
searchShow: false,
menuPosition: "center",
labelPosition: "right",
selectable: function (row) {
return row.isApply === 0;
},
viewBtn: false,
dialogType: "dialog",
dialogClickModal: false,
column:this.column,
}
}
},
methods: {
idNumberDDesensitization,
//导出
handleExport(){
window.open(recommendExportList(this.missionId,this.query.name?this.query.name:"",this.query.worktypes?this.query.worktypes:"",this.query.groupId?this.query.groupId:""));
},
/*打开drawer*/
openDialog (row,flag,flagyk) {
this.id = row.id;
this.onLoad(this.id);
this.drawer = true;
this.flag = flag;
this.flagyk = flagyk;
if(!flagyk){
this.column = [
{
label: "任务编号",
prop: "missionNo",
span: 24,
},
{
label: "任务名称",
prop: "missionTitle",
span: 24,
},
{
label: "公司名称",
prop: "companyName",
span: 24,
},
{
label: "行业类型",
prop: "tradeName",
span: 24,
},
{
label: "工种类型",
prop: "worktypeName",
span: 24,
},{
label: "任务起止日期",
prop: "mtime",
span: 24,
},{
label: "应发工资",
prop: "wage",
span: 24,
},{
label: "实发工资",
prop: "wageReal",
span: 24,
},
]
}
},
selectionChange (list) {
this.selectionList = list;
},
selectionClear () {
this.selectionList = [];
this.$refs.crud.toggleSelection();
},
currentChange () {
// this.page.currentPage = currentPage;
// this.onLoad(this.page);
},
// 加载列表数据
onLoad (id) {
this.loading = true;
getHisListDetails(
id
).then((res) => {
this.data = [];
const data = res.data.data;
this.formInline = data.order;
this.data.push(data.mission);
this.loading = false;
this.selectionClear();
});
},
},
};
</script>
<style>
.el-drawer__header{
margin-bottom: 0;
}
.el-drawer__body .title{
border-left: 5px solid#409EFF;
font-size: 16px;
margin: 0 0 20px 0 ;
padding-left: 10px;
}
.el-form--inline .el-form-item{
margin-right: 50px;
margin-bottom: 5px;
}
.el-form{
padding-bottom: 20px;
}
.jbxxBox .el-form--inline .el-form-item{
width:300px;
margin-right: 0;
}
</style>

View File

@@ -1,362 +0,0 @@
<template>
<basic-container>
<el-drawer
title="月工资详情页"
append-to-body
:visible.sync="drawer"
size="80%"
class="drawer"
>
<div class="title">基本信息</div>
<div class="jbxxBox">
<el-form :inline="true" :model="formdata" class="demo-form-inline " label-width="150px">
<el-form-item label="人员名称:">
<span>{{formdata.realName}}</span>
</el-form-item>
<el-form-item label="身份证号:">
<span>{{formdata.cardNumber}}</span>
</el-form-item>
<el-form-item label="归属月:">
<span>{{formdata.belongYear}}-{{formdata.belongMonth}}</span>
</el-form-item><br />
<el-form-item label="应发工资总额:">
<span v-if="formdata.wage && formdata.wage != -1">{{moneyFormat(formdata.wage ? formdata.wage : 0)}}</span>
<span v-else>--</span>
</el-form-item>
<el-form-item label="实发工资总额:">
<span v-if="formdata.wageReal && formdata.wageReal != -1">{{moneyFormat(formdata.wageReal ? formdata.wageReal : 0)}}</span>
<span v-else>--</span>
</el-form-item>
<el-form-item label="最终实发总额:">
<span v-if="formdata.wageTotal && formdata.wageTotal != -1">{{moneyFormat(formdata.wageTotal ? formdata.wageTotal : 0)}}</span>
<span v-else>--</span>
</el-form-item><br />
<el-form-item label="预扣总额:">
<span v-if="formdata.taxTotal && formdata.taxTotal != -1">{{moneyFormat(formdata.taxTotal ? formdata.taxTotal : 0)}}</span>
<span v-else>--</span>
</el-form-item>
<el-form-item label="已申报:">
<span v-if="formdata.taxReal && formdata.taxReal != -1">{{moneyFormat(formdata.taxReal ? formdata.taxReal : 0)}}</span>
<span v-else>--</span>
</el-form-item>
<el-form-item label="校准差额:">
<span v-if="formdata.tax && formdata.tax != -1">{{moneyFormat(formdata.tax ? formdata.tax : 0)}}</span>
<span v-else>--</span>
</el-form-item><br />
<el-form-item label="校准完成时间:">
<span v-if="formdata.reviewTime && formdata.reviewTime != -1">{{formdata.reviewTime}}</span>
<span v-else>--</span>
</el-form-item>
<el-form-item label="差额补发时间:">
<span v-if="formdata.payTime && formdata.payTime != -1">{{formdata.payTime}}</span>
<span v-else>--</span>
</el-form-item>
<el-form-item label="差额到账时间:">
<span v-if="formdata.accountTime && formdata.accountTime != -1">{{formdata.accountTime}}</span>
<span v-else>--</span>
</el-form-item>
</el-form>
</div>
<avue-crud
:option="personListOption"
:table-loading="loading"
:data="data"
:page.sync="page"
ref="crud"
:permission="permissionList"
@selection-change="selectionChange"
@current-change="currentChange"
@size-change="sizeChange"
@refresh-change="refreshChange"
class="customPage"
>
<template slot="menuLeft">
<div class="title">关联任务</div>
</template>
<!-- 应发工资 -->
<template slot="wage" slot-scope="{ row }">
<span v-if="row.wage && row.wage != -1">{{ moneyFormat(row.wage) }}</span>
<span v-else>--</span>
</template>
<!-- 个税 wageReal-->
<template slot="tax" slot-scope="{ row }">
<span v-if="row.tax && row.tax != -1">{{ moneyFormat(row.tax) }}</span>
<span v-else>--</span>
</template>
!-- 实发工资-->
<template slot="wageReal" slot-scope="{row }">
<span v-if="row.wageReal && row.wageReal != -1">{{ moneyFormat(row.wageReal) }}</span>
<span v-else>--</span>
</template>
<template slot="startEndingTime" slot-scope="{row }">
<span>{{ row.stime +" 到 "+ row.etime}}</span>
</template>
<!--自定义列-->
<template slot="resume" slot-scope="{ row }">
<div>
<el-button
type="text"
@click="$refs.resume.openDialog(row)"
v-if="row.userId && row.userId !== '0'"
>查看简历</el-button
>
<div v-else>暂无简历</div>
</div>
</template>
<template slot="recommend" slot-scope="{ row }">
<div>
<el-button
type="primary"
size="mini"
icon="el-icon-plus"
@click="rowRecommend(row)"
v-if="row.isApply === 0 && row.telphone != ''"
>邀请</el-button
>
<!-- v-show="row.isApply === 1 && row.telphone == ''" -->
<el-button
type="info"
disabled
size="mini"
icon="el-icon-plus"
v-else
style="margin-left: 0px"
>邀请</el-button
>
<!-- <el-button type="primary" size="mini" disabled v-show="row.count>=2">已邀请</el-button> -->
</div>
</template>
<template slot="count" slot-scope="{ row }">{{
2 - row.count
}}</template>
</avue-crud>
<Resume ref="resume"></Resume>
</el-drawer>
</basic-container>
</template>
<script>
import {recommendExportList, } from "@/api/tenant/mission";
import Resume from "@/components/resume/index";
import { mapGetters } from "vuex";
import { idNumberDDesensitization } from "@/util/util";
import { moneyFormat } from "@/util/money";//
import {getDrawbackOrderDetail,getDrawbackOrderAbout} from "@/api/manage/agentpay";//api
export default {
data () {
return {
formdata:{},
isIndeterminate: false,
checkAll: false,
checked: false,
missionId: "",
missionTitle: "",
stime: "",
drawer: false,
selectionList: [],
loading: false,
query: {},
page: {
pageSize: 100,
currentPage: 1,
total: 0,
},
personListOption: {
height: "auto",
dialogWidth: "30%",
align: "center",
menuAlign: "center",
rowKey: "id",
tip: false,
menu: false,
addBtn: false,
columnBtn: false,
searchBtn: false,
searchShow: false,
menuPosition: "center",
labelPosition: "right",
selectable: function (row) {
return row.isApply === 0;
},
viewBtn: false,
dialogType: "dialog",
dialogClickModal: false,
column: [
{
label: "任务编号",
prop: "missionNo",
span: 24,
},
{
label: "任务名称",
prop: "missionTitle",
search: false,
span: 24,
// dicData: [
// {
// label: "男",
// value: 1,
// },
// {
// label: "女",
// value: 2,
// },
// ],
},
{
label: "公司名称",
prop: "companyName",
search: false,
span: 24,
},
{
label: "行业类型",
prop: "tradeNames",
search: false,
span: 24,
},
{
label: "工种类型",
prop: "worktypeNames",
search: false,
span: 24,
},{
label: "任务起止日期",
prop: "startEndingTime",
search: false,
span: 24,
slot: true
},{
label: "应发工资",
prop: "wage",
search: false,
type: "input",
slot: true,
},{
label: "实发工资",
prop: "wageReal",
search: false,
type: "input",
slot: true,
},
{
label: "预扣个税",
prop: "tax",
search: false,
type: "input",
slot: true,
},
{
label: "发放时间",
prop: "accountTime",
search: false,
span: 24,
},
],
},
excelBox: false,
data: [],
};
},
components: {
Resume,
},
watch: {},
computed: {
...mapGetters(["userInfo", "permission"]),
// permissionList() {
// return {
// addBtn: this.vaildData(this.permission.user_add, false),
// viewBtn: this.vaildData(this.permission.user_view, false),
// delBtn: this.vaildData(this.permission.user_delete, false),
// editBtn: this.vaildData(this.permission.user_edit, false)
// };
// },
ids () {
let ids = [];
this.selectionList.forEach((ele) => {
ids.push(ele.userId);
});
return ids.join(",");
},
phones () {
let phones = [];
this.selectionList.forEach((ele) => {
phones.push(ele.telphone);
});
return phones.join(",");
},
},
methods: {
idNumberDDesensitization,
moneyFormat,
//导出
handleExport(){
window.open(recommendExportList(this.missionId,this.query.name?this.query.name:"",this.query.worktypes?this.query.worktypes:"",this.query.groupId?this.query.groupId:""));
},
/*打开drawer*/
openDialog (row) {
this.id = row.id;
this.onLoad(this.id);
this.drawer = true;
},
selectionChange (list) {
this.selectionList = list;
},
selectionClear () {
this.selectionList = [];
this.$refs.crud.toggleSelection();
},
currentChange () {
// this.page.currentPage = currentPage;
// this.onLoad(this.page);
},
// 加载列表数据
onLoad (id) {
this.loading = true;
getDrawbackOrderDetail(
id
).then((res) => {
const data = res.data.data;
// this.page.total = data.total;
// this.data = data.records;
this.formdata = data
});
getDrawbackOrderAbout(id).then((res) => {
this.data = res.data.data;
this.loading = false;
});
},
},
};
</script>
<style>
.el-drawer__header{
margin-bottom: 0;
}
.el-drawer__body .title{
border-left: 5px solid#409EFF;
font-size: 16px;
margin: 0 0 20px 0 ;
padding-left: 10px;
}
.el-form--inline .el-form-item{
margin-right: 50px;
margin-bottom: 5px;
}
.el-form{
padding-bottom: 20px;
}
.jbxxBox .el-form--inline .el-form-item{
width:300px;
margin-right: 0;
}
</style>

View File

@@ -1,71 +0,0 @@
<template>
<div>
<el-dialog
:visible.sync="dialogTableVisible"
:show-close="false"
:close-on-press-escape="false"
:close-on-click-modal="false"
:append-to-body="true"
@closed="closed"
>
<div>[{{name}}] 在Excel中存在但未勾选,是否勾选?</div>
<div slot="footer" class="dialog-footer">
<el-checkbox v-model="skip">为之后的冲突执行此操作</el-checkbox>
<el-button @click="stop"> </el-button>
<el-button type="primary" @click="add"> </el-button>
<el-button type="primary" @click="ignore"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
export default {
data() {
return {
dialogTableVisible: false,
done: null,
rollback: null,
skip: false,
name: "",
value: undefined
};
},
mounted() {},
methods: {
show(done, rollback, row) {
this.dialogTableVisible = true;
this.name = row["姓名"];
this.done = done;
this.rollback = rollback;
},
stop() {
this.dialogTableVisible = false;
this.rollback();
},
ignore() {
this.dialogTableVisible = false;
this.done(false, this.skip);
},
add() {
this.dialogTableVisible = false;
this.done(true, this.skip);
},
closed() {
this.name = "";
}
},
computed: {},
watch: {
dialogTableVisible(val) {
if (val) {
this.skip = false;
this.value = undefined;
}
}
}
};
</script>
<style scoped>
</style>

View File

@@ -1,145 +0,0 @@
<template>
<basic-container>
<!--搜索栏-->
<el-form
size="small"
label-position="right"
:inline="true"
style="padding-left: 10px;padding-right: 10px;"
>
<el-row :span="24">
<el-form-item label="姓名:">
<el-input v-model="search.companyName" placeholder="姓名" clearable></el-input>
</el-form-item>
<el-form-item label="身份证号码:">
<el-input v-model="search.companyName" placeholder="姓名" clearable></el-input>
</el-form-item>
<el-form-item label="服务状态:">
<el-input v-model="search.companyName" placeholder="姓名" clearable></el-input>
</el-form-item>
<el-form-item label="服务期:">
<el-date-picker
v-model="monthData"
type="daterange"
range-separator=""
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="yyyy-MM-dd"
@change="getDateValue ">
</el-date-picker>
</el-form-item>
<div class="searchBtn">
<el-button type="primary" size="small" icon="el-icon-search" @click="handleSearch"> </el-button>
<el-button size="small" icon="el-icon-delete" @click="handleClear"> </el-button>
</div>
</el-row>
</el-form>
<!--/搜索栏-->
<payment-table ref="waiting" v-if="search.status === 0" @refresh="handleClear"></payment-table>
</basic-container>
</template>
<script>
import PaymentTable from './Table/PaymentTable'//待签发
export default {
comments: {
},
name: "income_tax",
data () {
return {
monthLast:'',
monthData:'',
monthData1:'',
onLinePayValue:'all',
timeValue:"",
page: {
pageSize: 20,
currentPage: 1,
total: 0
},
search: {
status: 0
}
}
},
components: {
PaymentTable,
},
computed: {
},
watch: {
},
created(){
},
methods: {
getDateValue(val){
this.search.commitStartTime = val[0];
this.search.commitEndTime = val[1];
},
getDateValue1(val){
this.search.signStartTime = val[0];
this.search.signEndTime = val[1];
},
getCurrentMonthLast (val) {
var date = val.toString().split('-');
var year = date[0];
var month = date[1];
var day = new Date(year, month, 0)
this.monthLast = year + '-' + month + '-' + day.getDate()+' 00:00:00';
},
handleSearch () {
//this.search.belong = this.monthLast;
if (this.search.status === 0) {
this.$refs.waiting.onLoad(this.page, this.search);
} else if (this.search.status === 1) {
this.$refs.onging.onLoad(this.page, this.search);
} else if (this.search.status === 2) {
this.$refs.finished.onLoad(this.page, this.search);
}
},
dateChange(val){
if(val){
this.search.stime = val[0]+" 00:00:00";
this.search.etime = val[1]+" 23:59:59";
}else{
this.search.stime = '';
this.search.etime = '';
}
},
handleClear () {
let curStatus = this.search.status;
this.search = {
status: curStatus,
companyName: '',
}
this.timeValue = '';
this.monthData = '';
this.monthData1 = '';
this.monthLast = '';
this.handleSearch()
}
}
};
</script>
<style scoped>
.el-form-item {
margin-bottom: 18px;
padding: 0 10px;
}
.searchBtn {
display: inline-block;
margin-bottom: 18px;
}
.el-form-item__label,.el-input--small{
font-size: 12px;
}
.el-form--inline .el-form-item{
margin-right: 10px;
}
.el-radio-button--small .el-radio-button__inne{
font-size: 14px;
}
</style>

View File

@@ -1,3 +0,0 @@
<template>
<div>服务费记录</div>
</template>

View File

@@ -1,453 +0,0 @@
<template>
<div>
<avue-crud
:option="option"
:table-loading="loading"
:data="data"
ref="crud"
v-model="obj"
@row-del="rowDel"
@row-update="rowUpdate"
@row-save="rowSave"
:before-open="beforeOpen"
:page.sync="page"
@current-change="currentChange"
@size-change="sizeChange"
@refresh-change="refreshChange"
@on-load="onLoad"
@selection-change="selectionChange"
>
<template slot="menuLeft">
<el-button @click="batchIssue" size="small" :disabled="ids.length === 0" type="primary"
>批量重新签发</el-button>
</template>
<!-- 应发工资 -->
<template slot="wage" slot-scope="{ row }">
<span>{{moneyFormat(row.wage) }}</span>
</template>
<!-- 个税 wageReal-->
<template slot="tax" slot-scope="{ row }">
<span>{{moneyFormat(row.taxTotal) }}</span>
</template>
<!-- 实发工资-->
<template slot="wageReal" slot-scope="{row }">
<span>{{moneyFormat(row.wageReal) }}</span>
</template>
<!-- 归属月 -->
<template slot="belongMonth" slot-scope="{row }">
<span>{{row.belongYear}}-{{row.belongMonth}}</span>
</template>
<!--自定义按钮-->
<!-- <template slot="menuLeft">
<el-button @click="excelBox = true" size="small" type="primary"
>批量校准</el-button>
</template> -->
<!--/-->
<!--自定义操作栏-->
<div slot="menu" slot-scope="{row}">
<!-- <el-button type="text" size="mini" @click="downloadEsignature(row)"
>下载申请表</el-button
> -->
<el-button type="text" size="mini" @click.stop="calibration(row)"
>重新签发</el-button
>
</div>
</avue-crud>
<!-- 查看详情dialog -->
<check ref="check" v-show="false"></check>
<!-- /查看详情dialog -->
<el-dialog
title="上传"
:visible.sync="calibrationDialog"
width="300px"
:modal="false"
class="calibrationForm excelBox">
<el-form :model="form" :rules="rules">
<el-form-item label="" :label-width="0">
<p>{{form.companyName}}</p>
</el-form-item>
<el-form-item label="" prop="authUrlId">
<el-upload
:show-file-list="false"
:on-progress="
() => {
uploading = true;
}
"
:on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload"
:http-request="httpRequest"
>
<div v-loading="uploading">
<img
class="companyInfo-upload-image"
:src="form.authUrlId || imageUrl"
/>
</div>
<!-- <div class="companyInfo-upload-tip" slot="tip">
请上传营业执照
</div> -->
</el-upload>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="calibrationDialog = false">取 消</el-button>
<el-button type="primary" @click="drawbackClick">确 定</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {excelImportOrder} from "@/api/manage/agentpay";//api
import {esignatureStatus,signSealImg,downloadEsignature,signSeal,signSeals} from "@/api/manage/esignature";//api
import Check from "../Dialog/IncomeTaxCheck";//查看详情
import SelectMap from "@/components/map/selectLocation";
import { mapGetters } from "vuex";
import { moneyFormat } from "@/util/money";
import { dateFormat } from "@/util/date";
import saveButton from "./saveButton";
import { excelAccept } from "@/common/accept";
import httpRequest from "../httpRequest";
const accept = ["image/png", "image/jpeg", "image/svg+xml", "image/gif"];
export default {
components: {
SelectMap,
saveButton,
Check
},
filters: {
ellipsis(value) {
if (!value) return "";
if (value.length > 15) {
return value.slice(0, 14) + "...";
}
return value;
},
},
data() {
let taxReal=(rule, value, callback)=>{
let reg = new RegExp("[\\u4E00-\\u9FFF]+","g");
let reg1 = new RegExp("/[a-z]/i;");
if(reg.test(value)){
this.btnClickFlag = false;
callback(new Error('只能输入数字!'))
}else if (reg1.test(value)) {
this.btnClickFlag = false;
callback(new Error('只能输入数字!'))
}else{
this.btnClickFlag = true;
callback()
}
}
return {
calibrationDialog:false,
excelBox: false,
excelForm: {},
imageUrl: "/img/scimg.png",
imgFile:'',
btnClickFlag:false,
formLabelWidth: '120px',
form:{
num:30,
},
rules: {
taxReal: [
{ validator: taxReal , trigger: ['blur', 'change'] },
],
},
formSubmit:{
id:111,
taxReal:111,
},
ceNum:0,
taxReal:0,
status: 1,
selectionList: [],
viewDrawer: false,
view: {},
loading: false,
tradeData: [],
tradeId: "",
page: {
pageSize: 20,
currentPage: 1,
total: 0,
},
query: {
status: 2,
},
data: [],
obj: {},
missionNo:'',
leibie:'wait',//查询类别(必填,取值范围:=all 代表返回所有,=wait 待确定,=ing 发放中,=success 发放成功,fail=失败pause 暂不发放;)
};
},
created() {},
watch: {
},
computed: {
...mapGetters(["permission"]),
// ids () {
// let ids = [];
// this.selectionList.forEach(ele => {
// ids.push(ele.id);
// });
// return ids.join(",");
// },
ids() {
let ids = [];
this.selectionList.forEach((ele) => {
ids.push(ele.id);
});
return ids;
},
wageRealTotal () {
let wageRealTotal = 0;
this.selectionList.forEach(ele => {
wageRealTotal += ele.wageReal;
});
return wageRealTotal;
},
excelOption() {
return {
submitBtn: false,
emptyBtn: false,
column: [
{
prop: "excelFile",
type: "upload",
drag: true,
loadText: "文件上传中请稍等",
span: 24,
propsHttp: {
res: "data",
},
accept: excelAccept,
tip: "请上传 .xls,.xlsx 标准格式文件",
action: excelImportOrder(this.excelForm),
},
],
};
},
/*计算时间*/
option() {
return {
height: "auto",
calcHeight: 40,
menuWidth: 400,
align: "center",
menuAlign: "center",
tip: false,
addBtn: false,
viewBtn: false,
delBtn: false,
editBtn: false,
excelBtn: false,
columnBtn: false,
searchBtn: false,
searchShow: false,
border: true,
index: true,
esignatureId:'',
imageUrl: "/img/license.png",
indexLabel: "序号",
selection: true,
dialogType: "drawer",
dialogWidth: "60%",
delBtnText: "取消",
dialogClickModal: false,
column: [
{
label: "企业名称",
prop: "companyName",
display: false,
},
{
label: "提交日期",
prop: "createTime",
type: "datetime",
format: "yyyy-MM-dd",
display: false,
},
{
label: "签发失败日期",
prop: "stime",
type: "datetime",
format: "yyyy-MM-dd",
display: false,
},
],
};
},
},
methods: {
//批量签发
batchIssue(){
let fd = new FormData();
fd.append('ids',this.ids.join(","));
signSeals(fd)
.then(() => {
this.onLoad(this.page, this.params);
})
.catch(() => {
});
},
/**上传图片**/
handleAvatarSuccess(res, file) {
this.imageUrl = URL.createObjectURL(file.raw);
this.$set(this.form, "authUrlId", res.data.link);
this.uploading = false;
},
beforeAvatarUpload(file) {
const isJPG = accept.includes(file.type);
this.imgFile = file;
let fd = new FormData();
fd.append('file',file);
fd.append('id',this.form.id);
if (!isJPG) {
this.$message.error("图片格式不正确!");
}
signSealImg(fd)
.then(() => {
})
.catch(() => {
});
return isJPG;
},
/**上传图片*/
httpRequest,
moneyFormat,
//下载建行客户端工资发放模板
uploadAfter(res, done) {
this.onLoad(this.page, this.params);
done();
if (!(res instanceof Error)) {
this.excelBox = false;
}
},
uploadError(error) {
if (error) {
this.$message.error(error);
}
},
// beforeAvatarUpload(file, done, loading) {
// if (!isExcel(file)) {
// loading();
// this.$message.error("上传参保信息只能是 .xls,.xlsx 标准格式文件!");
// } else {
// done();
// }
// },
//单挑数据发起校准确定按钮
drawbackClick(){
let fd = new FormData();
fd.append('id',this.form.id);
signSeal(fd)
.then(() => {
this.onLoad(this.page, this.params);
})
.catch(() => {
});
this.calibrationDialog = false;
},
taxRealChaneg(){
this.form.taxReal = this.taxReal;
this.formSubmit.taxReal = this.taxReal*100;
this.ceNum = this.form.taxTotal - this.formSubmit.taxReal ;
},
selectionChange (list) {
this.selectionList = list;
},
format(date) {
if (date) {
return dateFormat(new Date(date), "yyyy/MM/dd");
}
},
//发起校准
calibration(row){
this.form = row;
this.calibrationDialog = true;
},
//下载申请表
downloadEsignature(row){
window.open(downloadEsignature(row.id))
},
currentChange(currentPage) {
this.page.currentPage = currentPage;
},
sizeChange(pageSize) {
this.page.pageSize = pageSize;
},
/*刷新本页 带搜索参数*/
refreshChange() {
this.onLoad(this.page, this.query);
},
/*加载数据*/
onLoad(page, params = {}) {
this.loading = true;
esignatureStatus(
page.currentPage,
page.pageSize,
Object.assign(this.query, params)
).then((res) => {
const data = res.data.data;
this.page.total = data.total;
this.data = data.records;
this.loading = false;
});
},
/*返回首页*/
backIndex() {
this.$emit("refresh");
},
},
};
</script>
<style scoped>
.companyInfo-upload-image {
height: 160px;
width: 160px;
}
.el-col,
.el-form-item {
margin-bottom: 0px;
}
.map {
width: 100%;
height: 300px;
}
</style>
<style scoped>
.slotForm {
font-size: 12px;
}
.calibrationForm .el-form{
padding-bottom: 0 !important;
}
.calibrationForm .el-dialog--center .el-dialog__body{
padding: 0 10px !important;
}
.calibrationForm .el-dialog--center .el-dialog__body .el-input__inner{
padding: 0 !important;
height:30px !important;
line-height: 30px !important;
}
.excelBox .el-dialog__body{
padding: 0 10px!important;
}
.excelBox .el-form-item__content{
margin-left: 0 !important;
text-align: center;
}
.excelBox .el-dialog{
width:360px !important;
}
</style>

View File

@@ -1,426 +0,0 @@
<template>
<div>
<avue-crud
:option="option"
:table-loading="loading"
:data="data"
ref="crud"
v-model="obj"
@row-del="rowDel"
@row-update="rowUpdate"
@row-save="rowSave"
:before-open="beforeOpen"
:page.sync="page"
@current-change="currentChange"
@size-change="sizeChange"
@refresh-change="refreshChange"
@on-load="onLoad"
@selection-change="selectionChange"
>
<!-- 应发工资 -->
<template slot="wage" slot-scope="{ row }">
<span>{{moneyFormat(row.wage) }}</span>
</template>
<!-- 个税 wageReal-->
<template slot="tax" slot-scope="{ row }">
<span>{{moneyFormat(row.taxTotal) }}</span>
</template>
<!-- 实发工资-->
<template slot="wageReal" slot-scope="{row }">
<span>{{moneyFormat(row.wageReal) }}</span>
</template>
<!-- 归属月 -->
<template slot="belongMonth" slot-scope="{row }">
<span>{{row.belongYear}}-{{row.belongMonth}}</span>
</template>
<!--自定义操作栏-->
<div slot="menu" slot-scope="{row}">
<el-button type="text" size="mini" @click.stop="checkClick(row)"
>查看</el-button
>
</div>
</avue-crud>
<!-- 查看详情dialog -->
<check ref="check" v-show="false"></check>
<!-- /查看详情dialog -->
<el-dialog
title="查看"
:visible.sync="calibrationDialog"
width="300px"
:modal="false"
class="calibrationForm excelBox checkForm">
<el-form :model="form" :rules="rules">
<el-form-item label="公章:" prop="authUrlId" >
<div v-loading="uploading">
<img
class="companyInfo-upload-image"
:src="'data:image/png;base64,'+form.imgStr"
/>
</div>
<!-- <div class="companyInfo-upload-tip" slot="tip">
请上传营业执照
</div> -->
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
</div>
</el-dialog>
</div>
</template>
<script>
import {excelImportOrder} from "@/api/manage/agentpay";//api
import {esignatureStatus,signSealImg,signSeal,detailsImg} from "@/api/manage/esignature";//api
import Check from "../Dialog/IncomeTaxCheck";//查看详情
import SelectMap from "@/components/map/selectLocation";
import { mapGetters } from "vuex";
import { moneyFormat } from "@/util/money";
import { dateFormat } from "@/util/date";
import saveButton from "./saveButton";
import { excelAccept } from "@/common/accept";
import httpRequest from "../httpRequest";
const accept = ["image/png", "image/jpeg", "image/svg+xml", "image/gif"];
export default {
components: {
SelectMap,
saveButton,
Check
},
filters: {
ellipsis(value) {
if (!value) return "";
if (value.length > 15) {
return value.slice(0, 14) + "...";
}
return value;
},
},
data() {
let taxReal=(rule, value, callback)=>{
let reg = new RegExp("[\\u4E00-\\u9FFF]+","g");
let reg1 = new RegExp("/[a-z]/i;");
if(reg.test(value)){
this.btnClickFlag = false;
callback(new Error('只能输入数字!'))
}else if (reg1.test(value)) {
this.btnClickFlag = false;
callback(new Error('只能输入数字!'))
}else{
this.btnClickFlag = true;
callback()
}
}
return {
calibrationDialog:false,
excelBox: false,
excelForm: {},
imageUrl: "/img/scimg.png",
imgFile:'',
btnClickFlag:false,
formLabelWidth: '120px',
form:{
num:30,
},
rules: {
taxReal: [
{ validator: taxReal , trigger: ['blur', 'change'] },
],
},
formSubmit:{
id:111,
taxReal:111,
},
ceNum:0,
taxReal:0,
status: 1,
selectionList: [],
viewDrawer: false,
view: {},
loading: false,
tradeData: [],
tradeId: "",
page: {
pageSize: 20,
currentPage: 1,
total: 0,
},
query: {
status: 1,
},
data: [],
obj: {},
missionNo:'',
leibie:'wait',//查询类别(必填,取值范围:=all 代表返回所有,=wait 待确定,=ing 发放中,=success 发放成功,fail=失败pause 暂不发放;)
};
},
created() {},
watch: {
},
computed: {
...mapGetters(["permission"]),
ids () {
let ids = [];
this.selectionList.forEach(ele => {
ids.push(ele.id);
});
return ids.join(",");
},
wageRealTotal () {
let wageRealTotal = 0;
this.selectionList.forEach(ele => {
wageRealTotal += ele.wageReal;
});
return wageRealTotal;
},
excelOption() {
return {
submitBtn: false,
emptyBtn: false,
column: [
{
prop: "excelFile",
type: "upload",
drag: true,
loadText: "文件上传中,请稍等",
span: 24,
propsHttp: {
res: "data",
},
accept: excelAccept,
tip: "请上传 .xls,.xlsx 标准格式文件",
action: excelImportOrder(this.excelForm),
},
],
};
},
/*计算时间*/
option() {
return {
height: "auto",
calcHeight: 40,
menuWidth: 400,
align: "center",
menuAlign: "center",
tip: false,
addBtn: false,
viewBtn: false,
delBtn: false,
editBtn: false,
excelBtn: false,
columnBtn: false,
searchBtn: false,
searchShow: false,
border: true,
index: true,
esignatureId:'',
imageUrl: "/img/license.png",
dialogType: "drawer",
dialogWidth: "60%",
delBtnText: "取消",
dialogClickModal: false,
column: [
{
label: "姓名",
prop: "companyName",
display: false,
},
{
label: "性别",
prop: "companyName",
display: false,
},
{
label: "身份证号",
prop: "companyName",
display: false,
},
{
label: "工种",
prop: "companyName",
display: false,
},
{
label: "人才库",
prop: "companyName",
display: false,
},
{
label: "提交日期",
prop: "createTime",
type: "datetime",
format: "yyyy-MM-dd",
display: false,
},
{
label: "服务器",
prop: "stime",
type: "datetime",
format: "yyyy-MM-dd",
display: false,
},
{
label: "服务状态",
prop: "companyName",
display: false,
},
{
label: "缴纳次数",
prop: "companyName",
display: false,
},
],
};
},
},
methods: {
/**上传图片**/
handleAvatarSuccess(res, file) {
this.imageUrl = URL.createObjectURL(file.raw);
this.$set(this.form, "authUrlId", res.data.link);
this.uploading = false;
},
beforeAvatarUpload(file) {
const isJPG = accept.includes(file.type);
this.imgFile = file;
let fd = new FormData();
fd.append('file',file);
fd.append('id',this.form.id);
if (!isJPG) {
this.$message.error("图片格式不正确!");
}
signSealImg(fd)
.then(() => {
})
.catch(() => {
});
return isJPG;
},
/**上传图片*/
httpRequest,
moneyFormat,
//下载建行客户端工资发放模板
uploadAfter(res, done) {
this.onLoad(this.page, this.params);
done();
if (!(res instanceof Error)) {
this.excelBox = false;
}
},
uploadError(error) {
if (error) {
this.$message.error(error);
}
},
//单挑数据发起校准确定按钮
drawbackClick(){
let fd = new FormData();
fd.append('id',this.form.id);
signSeal(fd)
.then(() => {
})
.catch(() => {
});
this.calibrationDialog = false;
},
taxRealChaneg(){
this.form.taxReal = this.taxReal;
this.formSubmit.taxReal = this.taxReal*100;
this.ceNum = this.form.taxTotal - this.formSubmit.taxReal ;
},
selectionChange (list) {
this.selectionList = list;
},
format(date) {
if (date) {
return dateFormat(new Date(date), "yyyy/MM/dd");
}
},
checkClick (row){
this.form = row;
detailsImg(row.id).then((res) => {
this.form.imgStr = res.data.data;
this.calibrationDialog = true;
})
.catch(() => {
});
},
currentChange(currentPage) {
this.page.currentPage = currentPage;
},
sizeChange(pageSize) {
this.page.pageSize = pageSize;
},
/*刷新本页 带搜索参数*/
refreshChange() {
this.onLoad(this.page, this.query);
},
/*加载数据*/
onLoad(page, params = {}) {
this.loading = true;
esignatureStatus(
page.currentPage,
page.pageSize,
Object.assign(this.query, params)
).then((res) => {
const data = res.data.data;
this.page.total = data.total;
this.data = data.records;
this.loading = false;
});
},
/*返回首页*/
backIndex() {
this.$emit("refresh");
},
},
};
</script>
<style scoped>
.checkForm >>> .el-form-item__label {
font-size: 18px;
margin-left: 20px;
}
.companyInfo-upload-image {
height: 160px;
width: 160px;
}
.el-col,
.el-form-item {
margin-bottom: 0px;
}
.map {
width: 100%;
height: 300px;
}
</style>
<style>
.slotForm {
font-size: 12px;
}
.calibrationForm .el-form{
padding-bottom: 0 !important;
}
.calibrationForm .el-dialog--center .el-dialog__body{
padding: 0 10px !important;
}
.calibrationForm .el-dialog--center .el-dialog__body .el-input__inner{
padding: 0 !important;
height:30px !important;
line-height: 30px !important;
}
.excelBox .el-dialog__body{
padding: 0 10px!important;
}
.excelBox .el-form-item__content{
margin-left: 0 !important;
}
.excelBox .el-dialog{
width:360px !important;
}
</style>

View File

@@ -1,435 +0,0 @@
<template>
<div>
<avue-crud
:option="option"
:table-loading="loading"
:data="data"
ref="crud"
v-model="obj"
@row-del="rowDel"
@row-update="rowUpdate"
@row-save="rowSave"
:before-open="beforeOpen"
:page.sync="page"
@current-change="currentChange"
@size-change="sizeChange"
@refresh-change="refreshChange"
@on-load="onLoad"
@selection-change="selectionChange"
>
<!-- 应发工资 -->
<template slot="wage" slot-scope="{ row }">
<span>{{moneyFormat(row.wage) }}</span>
</template>
<!-- 个税 wageReal-->
<template slot="tax" slot-scope="{ row }">
<span>{{moneyFormat(row.taxTotal) }}</span>
</template>
<!-- 实发工资-->
<template slot="wageReal" slot-scope="{row }">
<span>{{moneyFormat(row.wageReal) }}</span>
</template>
<!-- 归属月 -->
<template slot="belongMonth" slot-scope="{row }">
<span>{{row.belongYear}}-{{row.belongMonth}}</span>
</template>
<!--自定义按钮-->
<!-- <template slot="menuLeft">
<el-button @click="excelBox = true" size="small" type="primary"
>批量校准</el-button>
</template> -->
<!--/-->
<!--自定义操作栏-->
<div slot="menu" slot-scope="{row}">
<el-button type="text" size="mini" @click="downloadEsignature(row)"
>下载申请表</el-button
>
<el-button type="text" size="mini" @click.stop="calibration(row)"
>签发</el-button
>
</div>
</avue-crud>
<!-- 查看详情dialog -->
<check ref="check" v-show="false"></check>
<!-- /查看详情dialog -->
<el-dialog
title="上传"
:visible.sync="calibrationDialog"
width="300px"
:modal="false"
class="calibrationForm excelBox">
<el-form :model="form" :rules="rules">
<el-form-item label="" :label-width="0">
<p>{{form.companyName}}</p>
</el-form-item>
<el-form-item label="" prop="authUrlId">
<el-upload
:show-file-list="false"
:on-progress="
() => {
uploading = true;
}
"
:on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload"
:http-request="httpRequest"
>
<div v-loading="uploading">
<img
class="companyInfo-upload-image"
:src="form.authUrlId || imageUrl"
/>
</div>
<!-- <div class="companyInfo-upload-tip" slot="tip">
请上传营业执照
</div> -->
</el-upload>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="calibrationDialog = false">取 消</el-button>
<el-button type="primary" @click="drawbackClick">确 定</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {excelImportOrder} from "@/api/manage/agentpay";//api
import {esignatureStatus,signSealImg,downloadEsignature,signSeal} from "@/api/manage/esignature";//api
import Check from "../Dialog/IncomeTaxCheck";//查看详情
import SelectMap from "@/components/map/selectLocation";
import { mapGetters } from "vuex";
import { moneyFormat } from "@/util/money";
import { dateFormat } from "@/util/date";
import saveButton from "./saveButton";
import { excelAccept } from "@/common/accept";
import httpRequest from "../httpRequest";
const accept = ["image/png", "image/jpeg", "image/svg+xml", "image/gif"];
export default {
components: {
SelectMap,
saveButton,
Check
},
filters: {
ellipsis(value) {
if (!value) return "";
if (value.length > 15) {
return value.slice(0, 14) + "...";
}
return value;
},
},
data() {
let taxReal=(rule, value, callback)=>{
let reg = new RegExp("[\\u4E00-\\u9FFF]+","g");
let reg1 = new RegExp("/[a-z]/i;");
if(reg.test(value)){
this.btnClickFlag = false;
callback(new Error('只能输入数字!'))
}else if (reg1.test(value)) {
this.btnClickFlag = false;
callback(new Error('只能输入数字!'))
}else{
this.btnClickFlag = true;
callback()
}
}
return {
calibrationDialog:false,
excelBox: false,
excelForm: {},
imageUrl: "/img/scimg.png",
imgFile:'',
btnClickFlag:false,
formLabelWidth: '120px',
form:{
num:30,
},
rules: {
taxReal: [
{ validator: taxReal , trigger: ['blur', 'change'] },
],
},
formSubmit:{
id:111,
taxReal:111,
},
ceNum:0,
taxReal:0,
status: 1,
selectionList: [],
viewDrawer: false,
view: {},
loading: false,
tradeData: [],
tradeId: "",
page: {
pageSize: 20,
currentPage: 1,
total: 0,
},
query: {
status: 0,
},
data: [],
obj: {},
missionNo:'',
leibie:'wait',//查询类别(必填,取值范围:=all 代表返回所有,=wait 待确定,=ing 发放中,=success 发放成功,fail=失败pause 暂不发放;)
};
},
created() {},
watch: {
},
computed: {
...mapGetters(["permission"]),
ids () {
let ids = [];
this.selectionList.forEach(ele => {
ids.push(ele.id);
});
return ids.join(",");
},
wageRealTotal () {
let wageRealTotal = 0;
this.selectionList.forEach(ele => {
wageRealTotal += ele.wageReal;
});
return wageRealTotal;
},
excelOption() {
return {
submitBtn: false,
emptyBtn: false,
column: [
{
prop: "excelFile",
type: "upload",
drag: true,
loadText: "文件上传中请稍等",
span: 24,
propsHttp: {
res: "data",
},
accept: excelAccept,
tip: "请上传 .xls,.xlsx 标准格式文件",
action: excelImportOrder(this.excelForm),
},
],
};
},
/*计算时间*/
option() {
return {
height: "auto",
calcHeight: 40,
menuWidth: 400,
align: "center",
menuAlign: "center",
tip: false,
addBtn: false,
viewBtn: false,
delBtn: false,
editBtn: false,
excelBtn: false,
columnBtn: false,
searchBtn: false,
searchShow: false,
border: true,
index: true,
esignatureId:'',
imageUrl: "/img/license.png",
indexLabel: "序号",
// selection: true,
dialogType: "drawer",
dialogWidth: "60%",
delBtnText: "取消",
dialogClickModal: false,
column: [
{
label: "企业名称",
prop: "companyName",
display: false,
},
{
label: "提交日期",
prop: "createTime",
type: "datetime",
format: "yyyy-MM-dd",
display: false,
},
],
};
},
},
methods: {
/**上传图片**/
handleAvatarSuccess(res, file) {
this.imageUrl = URL.createObjectURL(file.raw);
this.$set(this.form, "authUrlId", res.data.link);
this.uploading = false;
},
beforeAvatarUpload(file) {
const isJPG = accept.includes(file.type);
this.imgFile = file;
let fd = new FormData();
fd.append('file',file);
fd.append('id',this.form.id);
if (!isJPG) {
this.$message.error("图片格式不正确!");
}
signSealImg(fd)
.then((res) => {
console.log(res);
})
.catch(() => {
});
return isJPG;
},
/**上传图片*/
httpRequest,
moneyFormat,
//下载建行客户端工资发放模板
uploadAfter(res, done) {
this.onLoad(this.page, this.params);
done();
if (!(res instanceof Error)) {
this.excelBox = false;
}
},
uploadError(error) {
if (error) {
this.$message.error(error);
}
},
// beforeAvatarUpload(file, done, loading) {
// if (!isExcel(file)) {
// loading();
// this.$message.error("上传参保信息只能是 .xls,.xlsx 标准格式文件!");
// } else {
// done();
// }
// },
//单挑数据发起校准确定按钮
drawbackClick(){
let fd = new FormData();
fd.append('id',this.form.id);
signSeal(fd)
.then((res) => {
console.log(res);
})
.catch(() => {
});
this.calibrationDialog = false;
},
taxRealChaneg(){
this.form.taxReal = this.taxReal;
this.formSubmit.taxReal = this.taxReal*100;
this.ceNum = this.form.taxTotal - this.formSubmit.taxReal ;
},
selectionChange (list) {
this.selectionList = list;
},
format(date) {
if (date) {
return dateFormat(new Date(date), "yyyy/MM/dd");
}
},
//发起校准
calibration(row){
this.imageUrl="/img/scimg.png";
this.form = row;
console.log(this.form,'form')
// this.ceNum = row.taxTotal - row.taxReal
// this.taxReal = 0;
this.calibrationDialog = true;
},
//查看详情
// checkHandle(row){
// this.$refs.check.openDialog(row);
// },
//下载申请表
downloadEsignature(row){
console.log(row);
window.open(downloadEsignature(row.id))
},
currentChange(currentPage) {
this.page.currentPage = currentPage;
},
sizeChange(pageSize) {
this.page.pageSize = pageSize;
},
/*刷新本页 带搜索参数*/
refreshChange() {
this.onLoad(this.page, this.query);
},
/*加载数据*/
onLoad(page, params = {}) {
this.loading = true;
esignatureStatus(
page.currentPage,
page.pageSize,
Object.assign(this.query, params)
).then((res) => {
console.log(res);
const data = res.data.data;
this.page.total = data.total;
this.data = data.records;
this.loading = false;
});
},
/*返回首页*/
backIndex() {
this.$emit("refresh");
},
},
};
</script>
<style scoped>
.companyInfo-upload-image {
height: 160px;
width: 160px;
}
.el-col,
.el-form-item {
margin-bottom: 0px;
}
.map {
width: 100%;
height: 300px;
}
</style>
<style scoped>
.slotForm {
font-size: 12px;
}
.calibrationForm .el-form{
padding-bottom: 0 !important;
}
.calibrationForm .el-dialog--center .el-dialog__body{
padding: 0 10px !important;
}
.calibrationForm .el-dialog--center .el-dialog__body .el-input__inner{
padding: 0 !important;
height:30px !important;
line-height: 30px !important;
}
.excelBox .el-dialog__body{
padding: 0 10px!important;
}
.excelBox .el-form-item__content{
margin-left: 0 !important;
text-align: center;
}
.excelBox .el-dialog{
width:360px !important;
}
</style>

View File

@@ -1,444 +0,0 @@
<template>
<div>
<avue-crud
:option="option"
:table-loading="loading"
:data="data"
ref="crud"
v-model="obj"
@row-del="rowDel"
@row-update="rowUpdate"
@row-save="rowSave"
:before-open="beforeOpen"
:page.sync="page"
@current-change="currentChange"
@size-change="sizeChange"
@refresh-change="refreshChange"
@on-load="onLoad"
@selection-change="selectionChange"
>
<!-- 应发工资 -->
<template slot="wage" slot-scope="{ row }">
<span>{{moneyFormat(row.wage) }}</span>
</template>
<!-- 个税 wageReal-->
<template slot="tax" slot-scope="{ row }">
<span>{{moneyFormat(row.taxTotal) }}</span>
</template>
<!-- 实发工资-->
<template slot="wageReal" slot-scope="{row }">
<span>{{moneyFormat(row.wageReal) }}</span>
</template>
<!-- 归属月 -->
<template slot="belongMonth" slot-scope="{row }">
<span>{{row.belongYear}}-{{row.belongMonth}}</span>
</template>
<!--自定义按钮-->
<!-- <template slot="menuLeft">
<el-button @click="excelBox = true" size="small" type="primary"
>批量校准</el-button>
</template> -->
<!--/-->
<!--自定义操作栏-->
<div slot="menu" slot-scope="{row}">
<!-- <el-button type="text" size="mini" @click="downloadEsignature(row)"
>下载申请表</el-button
> -->
<el-button type="text" size="mini" @click.stop="calibration(row)"
>查看</el-button
>
</div>
</avue-crud>
<!-- 查看详情dialog -->
<check ref="check" v-show="false"></check>
<!-- /查看详情dialog -->
<el-dialog
title=""
:visible.sync="dialogVisible"
width="35%"
:modal=false
:before-close="handleClose">
<div>
<img class="" :src="'data:image/png;base64,'+imgStr" width="100%"/>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false"> </el-button>
<el-button type="primary" @click="downLoadContract">下载合同</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import {excelImportOrder} from "@/api/manage/agentpay";//apitenantList
import {managerList,signSealImg,downloadEsignature,signSeal,signSeals,viewContractImg,contractDownload} from "@/api/manage/esignature";//api
import Check from "../Dialog/IncomeTaxCheck";//查看详情
import SelectMap from "@/components/map/selectLocation";
import { mapGetters } from "vuex";
import { moneyFormat } from "@/util/money";
import { dateFormat } from "@/util/date";
import saveButton from "./saveButton";
import { excelAccept } from "@/common/accept";
import httpRequest from "../httpRequest";
const accept = ["image/png", "image/jpeg", "image/svg+xml", "image/gif"];
export default {
components: {
SelectMap,
saveButton,
Check
},
filters: {
ellipsis(value) {
if (!value) return "";
if (value.length > 15) {
return value.slice(0, 14) + "...";
}
return value;
},
},
data() {
let taxReal=(rule, value, callback)=>{
let reg = new RegExp("[\\u4E00-\\u9FFF]+","g");
let reg1 = new RegExp("/[a-z]/i;");
if(reg.test(value)){
this.btnClickFlag = false;
callback(new Error('只能输入数字!'))
}else if (reg1.test(value)) {
this.btnClickFlag = false;
callback(new Error('只能输入数字!'))
}else{
this.btnClickFlag = true;
callback()
}
}
return {
calibrationDialog:false,
contractId:'',
excelBox: false,
dialogVisible: false,
imgStr:'',
excelForm: {},
imageUrl: "/img/scimg.png",
imgFile:'',
btnClickFlag:false,
formLabelWidth: '120px',
form:{
num:30,
},
rules: {
taxReal: [
{ validator: taxReal , trigger: ['blur', 'change'] },
],
},
formSubmit:{
id:111,
taxReal:111,
},
ceNum:0,
taxReal:0,
// status: 1,
selectionList: [],
viewDrawer: false,
view: {},
loading: false,
tradeData: [],
tradeId: "",
page: {
pageSize: 20,
currentPage: 1,
total: 0,
},
query: {
// status: 2,
},
data: [],
obj: {},
missionNo:'',
leibie:'wait',//查询类别(必填,取值范围:=all 代表返回所有,=wait 待确定,=ing 发放中,=success 发放成功,fail=失败pause 暂不发放;)
};
},
created() {},
watch: {
},
computed: {
...mapGetters(["permission"]),
ids() {
let ids = [];
this.selectionList.forEach((ele) => {
ids.push(ele.id);
});
return ids;
},
wageRealTotal () {
let wageRealTotal = 0;
this.selectionList.forEach(ele => {
wageRealTotal += ele.wageReal;
});
return wageRealTotal;
},
excelOption() {
return {
submitBtn: false,
emptyBtn: false,
column: [
{
prop: "excelFile",
type: "upload",
drag: true,
loadText: "文件上传中,请稍等",
span: 24,
propsHttp: {
res: "data",
},
accept: excelAccept,
tip: "请上传 .xls,.xlsx 标准格式文件",
action: excelImportOrder(this.excelForm),
},
],
};
},
/*计算时间*/
option() {
return {
height: "auto",
calcHeight: 40,
menuWidth: 400,
align: "center",
menuAlign: "center",
tip: false,
addBtn: false,
viewBtn: false,
delBtn: false,
editBtn: false,
excelBtn: false,
columnBtn: false,
searchBtn: false,
searchShow: false,
border: true,
index: true,
esignatureId:'',
imageUrl: "/img/license.png",
indexLabel: "序号",
// selection: true,
dialogType: "drawer",
dialogWidth: "60%",
delBtnText: "取消",
dialogClickModal: false,
column: [
{
label: "合同编号",
prop: "contractNo",
display: false,
},
{
label: "企业",
prop: "companyName",
display: false,
},
{
label: "任务名称",
prop: "servicesName",
display: false,
},
{
label: "员工名称",
prop: "userName",
display: false,
},
{
label: "合同开始日期",
prop: "stime",
type: "datetime",
format: "yyyy-MM-dd",
display: false,
},
{
label: "合同结束日期",
prop: "etime",
type: "datetime",
format: "yyyy-MM-dd",
display: false,
},
],
};
},
},
methods: {
//批量签发
batchIssue(){
let fd = new FormData();
fd.append('ids',this.ids.join(","));
signSeals(fd)
.then(() => {
this.onLoad(this.page, this.params);
})
.catch(() => {
});
},
handleClose(done) {
this.$confirm('确认关闭?')
.then(()=> {
done();
})
.catch(() => {});
},
/**上传图片**/
handleAvatarSuccess(res, file) {
this.imageUrl = URL.createObjectURL(file.raw);
this.$set(this.form, "authUrlId", res.data.link);
this.uploading = false;
},
beforeAvatarUpload(file) {
const isJPG = accept.includes(file.type);
this.imgFile = file;
let fd = new FormData();
fd.append('file',file);
fd.append('id',this.form.id);
if (!isJPG) {
this.$message.error("图片格式不正确!");
}
signSealImg(fd)
.then(() => {
})
.catch(() => {
});
return isJPG;
},
/**上传图片*/
httpRequest,
moneyFormat,
//下载建行客户端工资发放模板
uploadAfter(res, done) {
this.onLoad(this.page, this.params);
done();
if (!(res instanceof Error)) {
this.excelBox = false;
}
},
uploadError(error) {
if (error) {
this.$message.error(error);
}
},
//单挑数据发起校准确定按钮
drawbackClick(){
let fd = new FormData();
fd.append('id',this.form.id);
signSeal(fd)
.then(() => {
this.onLoad(this.page, this.params);
})
.catch(() => {
});
this.calibrationDialog = false;
},
taxRealChaneg(){
this.form.taxReal = this.taxReal;
this.formSubmit.taxReal = this.taxReal*100;
this.ceNum = this.form.taxTotal - this.formSubmit.taxReal ;
},
selectionChange (list) {
this.selectionList = list;
},
format(date) {
if (date) {
return dateFormat(new Date(date), "yyyy/MM/dd");
}
},
//查看
calibration(row){
this.form = row;
this.contractId = row.id;
viewContractImg(row.id).then((res) => {
this.imgStr = res.data.data;
this.dialogVisible = true;
})
.catch(() => {
});
//contractDetailsImg()
},
//下载合同
downLoadContract(){
window.open(contractDownload(this.contractId))
},
//下载申请表
downloadEsignature(row){
window.open(downloadEsignature(row.id))
},
currentChange(currentPage) {
this.page.currentPage = currentPage;
},
sizeChange(pageSize) {
this.page.pageSize = pageSize;
},
/*刷新本页 带搜索参数*/
refreshChange() {
this.onLoad(this.page, this.query);
},
/*加载数据*/
onLoad(page, params = {}) {
this.loading = true;
managerList(
page.currentPage,
page.pageSize,
Object.assign(this.query, params)
).then((res) => {
const data = res.data.data;
this.page.total = data.total;
this.data = data.records;
this.loading = false;
});
},
/*返回首页*/
backIndex() {
this.$emit("refresh");
},
},
};
</script>
<style scoped>
.companyInfo-upload-image {
height: 160px;
width: 160px;
}
.el-col,
.el-form-item {
margin-bottom: 0px;
}
.map {
width: 100%;
height: 300px;
}
</style>
<style scoped>
.slotForm {
font-size: 12px;
}
.calibrationForm .el-form{
padding-bottom: 0 !important;
}
.calibrationForm .el-dialog--center .el-dialog__body{
padding: 0 10px !important;
}
.calibrationForm .el-dialog--center .el-dialog__body .el-input__inner{
padding: 0 !important;
height:30px !important;
line-height: 30px !important;
}
.excelBox .el-dialog__body{
padding: 0 10px!important;
}
.excelBox .el-form-item__content{
margin-left: 0 !important;
text-align: center;
}
.excelBox .el-dialog{
width:360px !important;
}
</style>

View File

@@ -1,38 +0,0 @@
<template>
<el-button
:plain="plain"
:icon="icon"
:size="size"
:type="type"
@click="click"
:disabled="disabled"
><slot></slot
></el-button>
</template>
<script>
export default {
props: {
plain: Boolean,
icon: String,
size: String,
type: String,
disabled: Boolean,
action: String,
data: {
type: Object,
default() {
return {};
},
},
},
methods: {
click() {
this.$emit("click", { row: this.row, action: this.action });
},
},
};
</script>
<style>
</style>

View File

@@ -1,22 +0,0 @@
/**上传图片*/
import {putFileFun} from '@/api/resource/oss';
import compress from '@/util/compress';
export default ({file, onProgress, onError, onSuccess}) => {
onProgress({percent: 0});
compress(file, 300)
.then(({compressedFile}) => {
putFileFun(
compressedFile,
(progressEvent) => {
let complete =
((progressEvent.loaded / progressEvent.total) * 100) | 0;
onProgress({percent: complete});
})
.then((res) => {
onSuccess(res.data, compressedFile);
})
.catch(onError);
})
.catch(onError);
}