type="month" v-model="form.region" placeholder="请选择" :editable="false" size="small" :clearable="false" class="date-common" format="yyyyMM" >
type="quarter" v-model="form.region" placeholder="请选择" :editable="false" size="small" :clearable="false" :picker-options="pickerOptionsStartQH" class="date-common" >
:label="item.itemName" v-for="item in applyStatusOption" :key="item.itemCode" :value="item.itemCode" >
class="btn_add"
v-bind:class="{ notclick: !this.disjunctor}"
style="width:120px"
@click="newAddApply"
>
新增申请
下载模板
:data="listData" class="my-table" height="0" border highlight-current-row @row-click="detailListData" style="width: 100%;min-height:340px;height:100%" > {{(scope.$index+1)+(currentPage-1)*pageSize }} prop="applyNum" header-align="center" label="申请号" align="center" min-width="60" > prop="dataType" header-align="center" label="数据类别" align="center" min-width="50" :formatter="formatDataType" > prop="region" header-align="center" label="所属期间" align="center" min-width="50" > {{scope.row.region.slice(0,4)}}{{scope.row.region.slice(5)}} prop="fileName" header-align="center" label="附件" align="center" min-width="60" > class="tag" v-for="tag in scope.row.attachList" :key="tag.attachName" type="primary" @click="download(tag)" > {{tag.attachName}} prop="status" header-align="center" label="状态" align="center" min-width="60" :formatter="formatStatus" > prop="updatedBy" header-align="center" label="操作人员" align="center" min-width="50" > prop="updatedDate" header-align="center" label="操作时间" align="center" min-width="80" > size="mini" type="primary" @click="AmendData(scope.row)" :disabled="scope.row.status !== 'UNCOMMITTED'" v-if="scope.row.status !== 'APPROVEING'||scope.row.status !== 'APPPASS'||scope.row.status !== 'UNAPPPASS'" >修改 size="mini" type="primary" @click.stop="submitData(scope.row)" :disabled="scope.row.status !== 'UNCOMMITTED'" >提交 size="mini" type="primary" @click.stop="checkOutData(scope.row)" :disabled="scope.row.status !== 'APPROVEING'" >撤回 size="mini" type="primary" @click.stop="deleteData(scope.row)" :disabled="scope.row.status !== 'UNCOMMITTED'" >删除
class="fr" v-show="pageData.total>10" @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage" :page-sizes="pageArr" :page-size="pageSize" layout="total, sizes, prev, pager, next ,jumper" :total="pageData.total" >
数据详情
指标单元:元
:data="detailList" class="my-table" height="0" border highlight-current-row style="width: 100%;min-height:340px" > {{(scope.$index+1)+(detailCurrentPage-1)*detailPageSize }} prop="target" header-align="center" label="指标名称" align="center" min-width="60" > prop="dataType" header-align="center" label="所属期间" align="center" min-width="90" > prop="partyAmount" header-align="center" label="当期数" align="center" min-width="90" > prop="yearSum" header-align="center" label="年累计" align="center" min-width="90" >
class="fr" v-show="detailPageData.total>10" @size-change="detailHandleSizeChange" @current-change="detailHandleCurrentChange" :current-page="detailCurrentPage" :page-sizes="detailPageArr" :page-size="detailPageSize" layout="total, sizes, prev, pager, next,jumper" :total="detailPageData.total" >
v-model="addAmendForm.applyNum" autocomplete="off" class="common-sty" :disabled="true" >
:getOrgParams="getOrgParams" @select="handleSelect" size="medium" class="common-sty" >
v-model="addAmendForm.region" autocomplete="off" class="common-sty" :disabled="true" >
class="tag" v-for="tag in this.addAmendForm.attachList" :key="tag.attachName" type="primary" @click="download(tag)" > {{tag.attachName}}
v-model="addAmendForm.status" autocomplete="off" class="common-sty" :disabled="true" >
v-model="addAmendForm.applyNum" autocomplete="off" class="common-sty" :disabled="true" >
:getOrgParams="getOrgParams" @select="handleSelect" size="medium" class="common-sty" >
v-model="addAmendForm.region" autocomplete="off" class="common-sty" :disabled="true" >
class="tag" v-for="tag in this.addAmendForm.attachList" :key="tag.attachName" type="primary" @click="download(tag)" > {{tag.attachName}}
@click.prevent="uploadFile" class="upload-btn" type="primary" size="smaill" >上传
v-model="addAmendForm.status" autocomplete="off" class="common-sty" :disabled="true" >
title="提示" :visible.sync="deleteDialogVisible" width="30%" custom-class="delete-box" center >
:upLoadFileUrl="uploadUrl" @attachAdds="attachAdds" :isMultiple="true" :correlation="false" v-if="isShowUpload" :modelClose="modelClose" />
import mock from "../mock/index2.js";
import {
addData,
delData,
alterData,
listData,
disjunctor,
recordSubmit,
approvalDetail,
dataDetail,
applyDetail,
templeName,
getDict
} from "./tax-apply.js";
import taxOrg from "@/income-pro/common/taxorg/index";
import IDate from "../../common/date-picker/src/picker/date-picker";
// import orgSelect from "@/income-pro/common/orgSelect/index.vue";
import webUploader from "@/income-pro/common/web-uploader/index.vue";
import mixin from "@/income-pro/common/web-uploader/data.vue"; //混合导入公共的下载方法。
export default {
mixins: [mixin],
components: { taxOrg, webUploader, IDate },
data() {
return {
pickerOptionsStartM: {
// disabledDate: date => {
// if (!date.getMonth) debugger;
// return typeof date === "number" || date.getMonth();
// }
},
pickerOptionsStartQH: {},
getOrgParams: {
permissionType: "MENU",
keyWord: "",
permissionCode: "MU-INS-TASK-MAG",
scope: "SELF",
orgTypes: "",
containVirtualFlag: ""
},
form: {
orgId: "",
dataType: "M",
region: "",
status: ""
},
addAmendForm: {
applyNum: "",
orgId: "",
dataType: "CURRENT",
region: "",
attachList: [],
fileName: "",
status: ""
},
disjunctor: false, //默认申请开关的状态为关闭。
currentIsAllow: true, //当期类型是否允许。
historyIsAllow: true, //历史类型是否允许。
templeName: "", //下载的模板名。
applyStatusOption: [],
rules: {
orgId: [{ required: true, message: "请输入组织名称", trigger: "blur" }],
riskkind: [
{ required: true, message: "请选择风险分类", trigger: "change" }
]
},
listData: [],
detailList: [],
taskInfo: [],
orgId: "",
orgType: "",
rowId: "",
isShowUpload: false,
pageArr: [10, 20, 40, 100],
defaultPageSize: 0,
currentPage: 1,
pageSize: 20,
pageData: {},
detailPageArr: [10, 20, 40, 100], //详细分页的数据
detailDefaultPageSize: 0,
detailCurrentPage: 1,
detailPageSize: 10,
detailPageData: {},
dialogFormVisible: false,
amenddialogFormVisible: false,
deleteDialogVisible: false, //删除对话
formLabelWidth: "80px"
};
},
computed: {
uploadUrl() {
return serverIpAddress + "/zuul/itax-core-base/uploadIobs";
}
},
methods: {
//下载模板
async downModel() {
console.log("下载模板!");
let params = {
orgId: this.orgId
};
try {
const data = await templeName(params);
if (data.responseCode === "0") {
let temName = data.result.name; //因为异步了,而下载需要在获取名字后,所有需要把下载的数据写在回调中。达到同步的效果。
let url =
(process.env.NODE_ENV !== "development" ? "/itax" : "") +
"/static/template/税负数据_导入模板_" +
temName +
".xlsx";
var _a = document.createElement("a");
_a.href = url;
$("body").append(_a);
_a.click();
$(_a).remove();
}
} catch (err) {
console.log(err);
}
},
//数据详情
async detailListData(row) {
console.log(row);
this.rowId = row.id;
let params = {
id: this.rowId,
currentPage: this.detailCurrentPage,
pageSize: this.detailPageSize
};
try {
const data = await dataDetail(params);
if (data.responseCode === "0") {
this.detailList = data.result;
this.detailPageData = data.page;
}
} catch (err) {
console.log(err);
}
},
//分页查询数据详情
async pageDetailList() {
let params = {
id: this.rowId,
currentPage: this.detailCurrentPage,
pageSize: this.detailPageSize
};
try {
const data = await dataDetail(params);
if (data.responseCode === "0") {
this.detailList = data.result;
this.detailPageData = data.page;
}
} catch (err) {
console.log(err);
}
},
//获取申请开关的状态。
async getDisjunctorStatus() {
let params = {
orgId: this.orgId,
region: this.form.region
};
try {
const data = await disjunctor(params);
if (data.responseCode === "0") {
if (data.result.disjunctor === "off") {
this.disjunctor = false;
} else {
this.disjunctor = true;
let allowType = data.result.dataType;
if (allowType.includes("CURRENT")) {
this.currentIsAllow = false;
} else {
this.currentIsAllow = true; //不包含,开启禁用。
}
if (allowType.includes("HISTORY")) {
this.historyIsAllow = false;
} else {
this.historyIsAllow = true; //不包含,开启禁用。
}
// debugger;
}
}
} catch (err) {
console.log(err);
}
},
//新增保存或保存并提交按钮
async addPreserve(val) {
if (typeof this.orgId !== "number") {
this.notify("请选择被税务组织名称!", "warning");
return;
}
if (
this.addAmendForm.attachList.length == 0
) {
this.notify("请选择上传附件!", "warning");
return;
}
if (val == "save") { //这里应该用一个局域变量吗?
this.addAmendForm.status = 'UNCOMMITTED'
} else {
this.addAmendForm.status = 'APPROVEING'
}
let params = {
applyNum: this.addAmendForm.applyNum,
orgId: this.orgId,
dataType: this.addAmendForm.dataType,
region:
this.addAmendForm.region.slice(0, 4) +
"-" +
this.addAmendForm.region.slice(4),
attachList: this.addAmendForm.attachList,
status: this.addAmendForm.status,
operation: val
};
try {
const data = await addData(params);
if (data.responseCode === "0") {
this.dialogFormVisible = false;
this.notify("保存成功!", "success");
if (val == "save") {
this.getListData();
} else {
let params = {
id: this.addAmendForm.applyNum, //这是是申请号id。
operation: val,
orgId: this.orgId,
orgType: this.orgType,
permissionCode: "FN_ANALYSIS_TAXDATA_SUB",
scope: "self"
};
this.$router.push({
path: "/intelligent-analysis/tax-eoa",
query: params
});
}
// this.getListData();
}
} catch (err) {
console.log(err);
}
},
//删除申请
deleteData(row) {
this.deleteDialogVisible = true;
this.rowId = row.id;
},
//删除对话框的确认按钮
async confirmDelete() {
let params = { id: this.rowId };
try {
const data = await delData(params);
if (data.responseCode === "0") {
this.deleteDialogVisible = false;
this.notify("操作成功!", "success");
this.getListData();
}
} catch (err) {
console.log(err);
}
},
//修改申请
AmendData(row) {
console.log(row);
this.amenddialogFormVisible = true;
this.addAmendForm.applyNum = row.applyNum;
this.orgId = row.orgId;
this.addAmendForm.dataType = row.dataType;
this.addAmendForm.region = row.region.slice(0, 4) + row.region.slice(5);
this.addAmendForm.attachList = row.attachList;
this.rowId = row.id;
this.addAmendForm.status = "";
debugger
},
//修改申请的保存或保存并提交按钮
async alterPreserve(val) {
if (typeof this.orgId !== "number") {
this.notify("请选择被税务组织名称!", "warning");
return;
}
if (
this.addAmendForm.attachList == []
) {
this.notify("请选择上传附件!", "warning");
return;
}
if (val == "save") {
this.addAmendForm.status = 'UNCOMMITTED'
} else {
this.addAmendForm.status = 'APPROVEING'
}
let params = {
id: this.rowId,
applyNum: this.addAmendForm.applyNum,
orgId: this.orgId,
dataType: this.addAmendForm.dataType,
region:
this.addAmendForm.region.slice(0, 4) +
"-" +
this.addAmendForm.region.slice(4),
attachList: this.addAmendForm.attachList,
status: this.addAmendForm.status,
operation: val
};
try {
const data = await alterData(params);
if (data.responseCode === "0") {
this.amenddialogFormVisible = false;
this.notify("保存成功!", "success");
if (val == "save") {
this.getListData();
} else {
//如点击的是保存并提交按钮需要发送eoa。
let params = {
id: this.addAmendForm.applyNum, //这是是申请号id。
operation: val,
orgId: this.orgId,
orgType: this.orgType,
permissionCode: "FN_ANALYSIS_TAXDATA_SUB",
scope: "self"
};
this.$router.push({
path: "/intelligent-analysis/tax-eoa",
query: params
});
}
// this.getListData();
}
} catch (err) {
console.log(err);
}
},
//提交
submitData(row) {
let params = {
id: row.applyNum, //这是是申请号id。
operation: "submit", //这里到时候再看看!
orgId: row.orgId,
orgType: this.orgType,
permissionCode: "FN_ANALYSIS_TAXDATA_SUB",
scope: "self"
};
this.$router.push({
path: "/intelligent-analysis/tax-eoa",
query: params
});
},
//撤回
async checkOutData(row) {
let params = {
id: row.applyNum, //这是是申请号id。
operation: "cancle", //
orgId: row.orgId,
orgType: this.orgType,
permissionCode: "FN_ANALYSIS_TAXDATA_REM",
scope: "self"
};
this.$router.push({
path: "/intelligent-analysis/tax-eoa",
query: params
});
},
//审批详情
async approvalDetailWay(row) {
console.log("审批详情。");
let params = { eoaRequestId: '' };
try {
const data = await approvalDetail(params);
if (data.responseCode === "0") {
this.notify("操作成功!", "success");
}
} catch (err) {
console.log(err);
}
},
typeToggle() {
switch (this.addAmendForm.dataType) {
case "CURRENT":
this.orgId !== 291295
? (this.addAmendForm.region = this.getPreMonth())
: (this.addAmendForm.region = this.getPreQuarter()); //待改判断条件。
break;
case "HISTORY":
this.addAmendForm.region = "201906";
break;
}
},
modelClose() {
this.isShowUpload = false;
},
attachAdds(value) {
let arr = [];
var finalArrBe = this.addAmendForm.attachList;
var str = JSON.stringify(finalArrBe);
for (let i in value) {
var obj = {
attachName: value[i].attachName,
attachCode: value[i].attachCode,
attachId: value[i].attachId
};
var flag = str.indexOf(obj.attachCode) === -1; //判断是否已经存在这个文件。不存在可以添加。
if (flag) {
arr = arr.concat(obj);
}
}
this.addAmendForm.attachList = arr; //由于只允许上传一个文件,所有直接赋值。
// this.addAmendForm.fileName = value[value.length - 1].attachName; //把最后的一个文件名赋值到附件框中。
},
handleSelect(node) {
// if (node.permissions) {
// this.powerInfo = JSON.parse(JSON.stringify(node.permissions));
// }
this.orgId = node.orgId;
this.orgType = node.orgType; //获取组织类型。
this.addAmendForm.orgId = node.orgId;
this.getListData();
this.getDisjunctorStatus(); //修改开关的方法。
// this.getTemName()
},
//获取上一个月 不带横杆
getPreMonth() {
let year = new Date().format("yyyy");
let month = new Date().getMonth() + 1;
if (month == 1) {
month = 12;
year = year - 1;
} else if (2 <= month <= 10) {
month = month - 1; //上一个月
month = "0" + month; //月份填补成2位。
} else {
month = month - 1; //上一个月
}
return year + "" + month;
debugger;
},
//获取上一个月 带横杆
getPreMonthH() {
let year = new Date().format("yyyy");
let month = new Date().getMonth() + 1;
if (month == 1) {
month = 12;
year = year - 1;
} else if (2 <= month <= 10) {
month = month - 1; //上一个月
month = "0" + month; //月份填补成2位。
} else {
month = month - 1; //上一个月
}
return year + "-" + month;
},
//获取上一个季度
getPreQuarter() {
let year = new Date().format("yyyy");
let month = new Date().getMonth() + 1;
let quarter = "";
if (month >= 1 && month <= 3) {
year = year - 1;
quarter = "Q4";
} else if (month >= 4 && month <= 6) {
quarter = "Q1";
} else if (month >= 7 && month <= 9) {
quarter = "Q2";
} else {
quarter = "Q3";
}
return year + "" + quarter;
},
searchListData() {
if (typeof this.orgId !== "number") {
this.notify("请选择被税务组织名称!", "warning");
return;
}
this.getListData();
},
downAttach(row) {
console.log("下载附件!");
},
handleSizeChange(val) {
this.pageSize = val;
this.getListData();
},
handleCurrentChange(val) {
this.currentPage = val;
this.getListData();
},
detailHandleSizeChange(val) {
this.detailPageSize = val;
this.pageDetailList();
},
detailHandleCurrentChange(val) {
this.detailCurrentPage = val;
this.pageDetailList();
},
amendSubmitForm(formName) {
this.$refs[formName].validate(valid => {
if (valid) {
alert("submit!");
this.amenddialogFormVisible = false;
} else {
console.log("error submit!!");
return false;
}
});
},
resetForm() {
console.log("重置表单!");
this.$refs.taxOrg.clearInfo();
this.form = {
dataType: "M",
region: "",
status: ""
};
},
//查询税负申请记录。
async getListData() {
if (/^\d{4}-\d{2}$/.test(this.form.region)) {
this.form.region = this.form.region;
} else if (this.form.region == "") {
this.form.region = "";
} else {
this.form.region = this.form.region.format("yyyy-MM");
}
let params = {
orgId: this.orgId,
region: this.form.region,
status: this.form.status,
currentPage: this.currentPage,
pageSize: this.pageSize
};
try {
const data = await listData(params);
if (data.result) {
this.listData = data.result;
this.pageData = data.page;
}
} catch (err) {
console.log(err);
}
},
/* 获取申请状态方法 */
async getApplyStatus() {
let params = {
dictCode: "APPLY_ITEM_STATUS"
};
const data = await getDict(params);
if (data.responseCode === "0") {
this.applyStatusOption = data.result;
}
},
newAddApply() {
this.dialogFormVisible = true;
// this.$refs.taxOrg.clearInfo();
this.addAmendForm.applyNum = new Date().format("yyyyMMddhhmmss");
let period = this.orgId !== 291295
? (period = this.getPreMonth())
: (period = this.getPreQuarter()); //只有平安银行才有季度。;
this.addAmendForm.region = period;
this.addAmendForm.attachList = []; //置空附件。
this.addAmendForm.status = "";
},
uploadFile() {
console.log("luoyong!!!");
// let eleNav = document.getElementsByClassName("file-scan")[0];
// eleNav.click();
this.isShowUpload = true;
},
// fileScan() {
// console.log("scan!!!");
// let filePath = document.getElementsByClassName("file-scan")[0].value;
// let arr = filePath.split("\\");
// let fileName = arr[arr.length - 1];
// console.log(fileName);
// // document.getElementsByClassName('filename-box')[0].value ="reerer";
// this.addAmendForm.fileName = fileName;
// },
notify(msg, type) {
var that = this;
that.$message({
duration: 2000,
showClose: true,
message: msg,
type: type
});
},
formatDataType: function(row, column) {
switch (row.dataType) {
case "CURRENT":
return "当期";
break;
case "HISTORY":
return "历史";
break;
default:
break;
}
},
formatStatus: function(row, column) {
switch (row.status) {
case "UNCOMMITTED":
return "未提交审批";
break;
case "APPROVEING":
return "审批中";
break;
case "APPPASS":
return "审批通过";
break;
case "UNAPPPASS":
return "审批不通过";
break;
default:
break;
}
}
},
created() {
// this.getDisjunctorStatus();
this.form.region = this.getPreMonthH();
this.getApplyStatus();
}
};
.condition {
margin-top: 15px;
}
.common-sty {
width: 58%;
}
.tool {
width: 600px;
height: 30px;
margin-left: 20px;
margin-bottom: 10px;
display: flex;
flex-direction: row;
align-items: center;
// .apply-button{
// display: inline-block;
// font-size: 14px;
// }
}
.table-title {
margin-top: 55px;
// border: #ff7000 solid 1px;
height: 30px;
display: flex;
flex-direction: row;
align-items: center;
span:first-child {
height: 20px;
font-size: 16px;
color: #ff7000;
font-weight: bold;
margin-left: 10px;
}
span:last-child {
height: 20px;
font-size: 14px;
line-height: 20px;
color: #ff7000;
font-weight: bold;
margin-left: 80%;
}
}
.upload-btn {
margin-left: 23px;
}
.notclick {
pointer-events: none;
}
//新增申请自定义类改变宽度。
.apply-box {
width: 530px;
}
.delete-box {
width: 420px;
height: 174px;
.el-dialog__footer {
text-align: center;
box-sizing: border-box;
padding: 50px 20px 15px;
}
}
.icon-box {
display: flex;
flex-direction: row;
align-items: center;
.confim-info {
height: 20px;
line-height: 20px;
margin-left: 20px;
font-size: 14px;
color: #66666f;
// border: 1px solid red;
}
}
#filename-box {
width: 238px;
height: 38px;
border: #e5dcd1 solid 1px;
border-radius: 5px;
}
#filename-box:hover {
border: #bbb solid 1px;
}