<template>
|
<el-dialog
|
title="批量委外"
|
:visible.sync="dialogVisible"
|
width="1250px"
|
:before-close="handleClose"
|
>
|
<TableList
|
:pageInfo="pageInfo"
|
@handleCurrentChange="handleCurrentChange"
|
@handleSizeChange="handleSizeChange"
|
:isAutoIndex="true"
|
:isPaddingRight="false"
|
ref="tableRef"
|
:list="records"
|
:header="tableHeader"
|
:height="tableHeight"
|
></TableList>
|
<el-form
|
ref="inputForm"
|
:model="form"
|
:rules="rules"
|
:inline="true"
|
label-width="120px"
|
>
|
<el-row>
|
<el-form-item label="委外批次号" prop="batchNo">
|
<el-input v-model="form.batchNo" placeholder="请填写"></el-input>
|
</el-form-item>
|
<el-form-item label="委外机构" prop="orgName">
|
<el-input v-model="form.orgName" placeholder="请填写"></el-input>
|
</el-form-item>
|
</el-row>
|
<el-row>
|
<el-form-item label="委外开始时间" prop="startTime">
|
<el-date-picker
|
:value="form.startTime"
|
@input="startTimeHandle($event)"
|
:placeholder="'请选择'"
|
type="datetime"
|
format="yyyy/MM/dd"
|
value-format="yyyy/MM/dd"
|
></el-date-picker>
|
</el-form-item>
|
</el-row>
|
</el-form>
|
<div slot="footer" class="dialog-footer">
|
<el-button size="mini" @click="handleClose">取 消</el-button>
|
<el-button
|
size="mini"
|
type="primary"
|
@click="submitForm('inputForm')"
|
:loading="submitLoading"
|
>确 定</el-button
|
>
|
</div>
|
</el-dialog>
|
</template>
|
<script>
|
import { batchOutsourcing } from "@comprehensive/serve/public";
|
import { overdueEnterPoolHeader } from "@comprehensive/utils/tableHeaders";
|
import TableList from "./TableList.vue";
|
export default {
|
components: {
|
TableList,
|
},
|
props: {
|
dialogVisible: {
|
type: Boolean,
|
default: false,
|
},
|
// 申请编号
|
batchNoArr: {
|
type: Array,
|
required: false,
|
},
|
},
|
data() {
|
return {
|
//页码
|
pageInfo: {
|
currentPage: 1,
|
pageSize: 10,
|
total: 0,
|
},
|
records: [],
|
tableHeader: [...overdueEnterPoolHeader],
|
tableHeaderFilter: [
|
"orgName",
|
"indictCourtName",
|
"conciliateStatusDesc",
|
"filingTime",
|
"judgmentTime",
|
"lastAction",
|
],
|
tableHeight: "560px",
|
form: {
|
batchNo: "",
|
orgName: "",
|
startTime: "",
|
},
|
rules: {
|
batchNo: [
|
{ required: true, message: "请填写委外批次号", trigger: "change" },
|
],
|
orgName: [
|
{ required: true, message: "请填写委外机构", trigger: "change" },
|
],
|
startTime: [
|
{ required: true, message: "请选择委外开始时间", trigger: "change" },
|
],
|
},
|
submitLoading: false,
|
};
|
},
|
mounted() {},
|
created() {
|
this.init();
|
},
|
watch: {
|
batchNoArr: {
|
immediate: false,
|
handler(newVal) {
|
this.records = [...this.batchNoArr];
|
this.pageInfo.total = this.batchNoArr.length;
|
},
|
},
|
},
|
methods: {
|
init() {
|
const { tableHeaderFilter } = this;
|
this.tableHeader = overdueEnterPoolHeader.filter(
|
({ prop }) => !tableHeaderFilter.includes(prop)
|
);
|
},
|
|
// 修改翻页数
|
handleCurrentChange(val) {
|
this.pageInfo.currentPage = val;
|
},
|
// 修改翻页条数
|
handleSizeChange(val) {
|
this.pageInfo.pageSize = val;
|
},
|
//重置数据
|
resetForm(formName) {
|
this.$refs[formName].resetFields();
|
},
|
//关闭窗口
|
handleClose(done) {
|
this.resetForm("inputForm");
|
this.$emit("close");
|
},
|
startTimeHandle(val) {
|
this.form.startTime = val;
|
},
|
async submitForm(formName) {
|
this.$refs[formName].validate(async (valid) => {
|
if (valid) {
|
const serialNoArray = this.batchNoArr.map(item => item.serialNo);
|
console.log('submitForm',serialNoArray)
|
this.submitLoading = true;
|
|
const res = await batchOutsourcing({
|
batchNo: this.form.batchNo,
|
orgName: this.form.orgName,
|
startTime: this.form.startTime,
|
serialNoArray: serialNoArray,
|
});
|
this.submitLoading = false;
|
if (res.code === '00') {
|
this.resetForm("inputForm");
|
window.postMessage("overdueNextSubmitSuccess", "*");
|
this.$emit("succ");
|
}
|
}
|
});
|
},
|
},
|
};
|
</script>
|
<style lang="stylus" scoped>
|
.submit-form {
|
margin-top: 20px;
|
padding-top: 40px;
|
border-top: 1px solid #eee;
|
|
.content-input /deep/ .el-form-item__content {
|
width: calc(100% - 120px);
|
}
|
|
/deep/.el-input input {
|
padding: 4px 15px;
|
height: auto;
|
}
|
}
|
|
.dialog-footer {
|
margin-top: 60px;
|
display: block;
|
width: 100%;
|
text-align: center;
|
}
|
</style>
|