This commit is contained in:
xuyucheng 2023-03-17 14:49:17 +08:00
parent ab2fb202d9
commit b4293d8688
10 changed files with 99 additions and 98 deletions

View File

@ -2,7 +2,7 @@ import axios from 'axios'
import { rsaKey } from "utils/rsaKey.js";
//创建axios实例
axios.defaults.timeout = 10000
axios.defaults.timeout = 50000
axios.defaults.baseURL = 'http://test.fecribd.com/api/'
//请求拦截器

View File

@ -600,4 +600,8 @@
.el-date-editor .el-range-separator {
@include color(map-get($dark, color))
}
.el-year-table td .cell{
@include color(map-get($dark, color))
}

View File

@ -50,6 +50,17 @@ const store = new Vuex.Store({
localStorage.setItem('tabs', JSON.stringify(state.tabs))
},
edit_tabs_item(state, value) {
state.tabs.forEach(item => {
if(item.id === state.tabsKey){
item = Object.assign(item,value)
state.tabsKey = item.id
}
})
localStorage.setItem("tabsKey", state.tabsKey)
localStorage.setItem('tabs', JSON.stringify(state.tabs))
},
set_tabs_sort(state, newTabs) {
state.tabs = newTabs
localStorage.setItem("tabs", JSON.stringify(state.tabs))

View File

@ -9,11 +9,7 @@
</h2>
</el-row>
<el-row style="height: calc(100% - 122px)">
<fecr-table
:slots="['调整因素', '操作']"
:data="data.adjustments"
:column="column"
>
<fecr-table :slots="['调整因素', '操作']" :data="data.adjustments" :column="column">
<template slot="调整因素" slot-scope="value">
<el-popover width="300">
<p>{{ value.value["调整因素介绍"] }}</p>
@ -23,72 +19,41 @@
</el-popover>
</template>
<template slot="操作" slot-scope="value">
<el-button
type="text"
@click="
(desVisible = true), (description = value.value['调整说明'])
"
>调整说明</el-button
>
<el-button type="text" @click="
(desVisible = true), (description = value.value['调整说明'])
">调整说明</el-button>
<el-button type="text" @click="edit(value.value)">编辑</el-button>
</template>
</fecr-table>
</el-row>
<fecr-dialog
:width="'900px'"
:title="'调整说明'"
:visible="desVisible"
@cancel="desVisible = false"
@submit="desVisible = false"
>
<fecr-dialog :width="'900px'" :title="'调整说明'" :visible="desVisible" @cancel="desVisible = false"
@submit="desVisible = false">
<template slot="body">
<div v-if="description !== '<p><br></p>'" v-html="description"></div>
<el-empty v-else description="暂无调整说明,请编辑"></el-empty>
</template>
</fecr-dialog>
<fecr-dialog
:width="'1200'"
:title="data.adjustments[index]['调整因素']"
:visible="visible"
@cancel="visible = false"
@submit="visible = false"
>
<fecr-dialog :width="'1200'" :title="data.adjustments[index]['调整因素']" :visible="visible" @cancel="visible = false"
@submit="visible = false">
<template slot="body">
<el-form>
<el-form-item label="调整因素">
<el-input
v-model="data.adjustments[index]['调整因素']"
disabled
></el-input>
<el-input v-model="data.adjustments[index]['调整因素']" disabled></el-input>
</el-form-item>
<el-form-item label="调整分数">
<el-select
v-model="data.adjustments[index]['调整分数']"
style="width: 100%"
>
<el-option
v-for="(item, index) in options"
:key="index"
:label="item"
:value="item"
></el-option>
<el-select v-model="data.adjustments[index]['调整分数']" style="width: 100%">
<el-option v-for="(item, index) in options" :key="index" :label="item" :value="item"></el-option>
</el-select>
</el-form-item>
<el-form-item label="调整因素介绍">
<el-input
v-model="data.adjustments[index]['调整因素介绍']"
type="textarea"
disabled
></el-input>
<el-input v-model="data.adjustments[index]['调整因素介绍']" type="textarea" disabled></el-input>
</el-form-item>
<el-form-item label="调整说明">
<Toolbar style="border-bottom: 1px solid #ccc" :editor="editor" />
<Editor
style="height: 400px; overflow-y: hidden"
v-model="data.adjustments[index]['调整说明']"
:defaultConfig="editorConfig"
@onCreated="onCreated"
/>
<el-row>
<Toolbar style="border-bottom: 1px solid #ccc" :editor="editor" />
<Editor style="height: 400px; overflow-y: hidden" v-model="data.adjustments[index]['调整说明']"
:defaultConfig="editorConfig" @onCreated="onCreated" />
</el-row>
</el-form-item>
</el-form>
</template>

View File

@ -93,13 +93,12 @@ export default {
rating_flow_id: this.id,
operation: "完成",
});
console.log(this.id)
this.$store.commit("set_tabs", {
id: "评级" + this.id,
label: this.$store.state.tabs.find((item) => {
return item.id === this.id;
}).label,
label: this.$store.getters.getCurrentTab.label,
content: "ratingDetail",
path: "/serviceFunction/creditRating/rating/details",
path: "/serviceFunction/creditRating/rating/detail",
});
this.$store.commit(
"delete_tabs_item",

View File

@ -1,12 +1,12 @@
<template>
<el-row type="flex" justify="center" align="middle">
<el-form :model="form" label-position="left" label-width="120px">
<el-form-item label="报告">
<el-form-item label="报告模板">
<el-select v-model="form.report">
<el-option v-for="item in ['主体信用评级报告模板']" :key="item" :label="item" :value="item" />
</el-select>
</el-form-item>
<el-form-item label="日期">
<el-form-item label="起始年份">
<el-date-picker v-model="form.begin_date" type="year" placeholder="选择初始年份" value-format="yyyy"
@change="handleChange">
</el-date-picker>
@ -77,6 +77,7 @@ export default {
async submit() {
const res = await request.post("report_generation/create", this.form)
this.$emit("setStep", { active: 1, id: res.content.report_flow_id })
this.$store.commit("edit_tabs_item",{id:res.content.report_flow_id})
},
},
};

View File

@ -19,7 +19,7 @@ export default {
components: { firstStep, secondStep, thirdStep },
data() {
return {
id: this.$store.getters.getCurrentTab.param?this.$store.getters.getCurrentTab.param.report_generation_id : null,
id: this.$store.getters.getCurrentTab.id || null,
active: 0,
steps: [
{ label: "流程选择" },
@ -30,18 +30,20 @@ export default {
},
created() {
this.getProcessNode()
if (this.id) {
this.getProcessNode()
}
},
methods: {
setStep(value) {
this.id = value.id
this.active = value.active
this.getProcessNode()
},
async getProcessNode(){
const res = await request.post("report_generation/get_node?flow_id="+this.id)
this.active = res.content.findIndex(item=> !item.status)
async getProcessNode() {
const res = await request.post("report_generation/get_node?flow_id=" + this.id)
this.active = res.content.findIndex(item => !item.status)
}
}
};

View File

@ -96,7 +96,7 @@ export default {
filterText: "",
treeList: [],
data: {},
loadingBackground:"rgba(0, 0, 0, 0.8)"
loadingBackground: "rgba(0, 0, 0, 0.8)"
};
},
@ -106,7 +106,7 @@ export default {
methods: {
async init() {
this.loadingBackground = localStorage.getItem("theme") ==='dark-theme' ?'rgba(0, 0, 0, 0.8)':'#fff';
this.loadingBackground = localStorage.getItem("theme") === 'dark-theme' ? 'rgba(0, 0, 0, 0.8)' : '#fff';
const res = await request.post("report_generation/data_template", {
report_generation_id: this.id,
});
@ -123,16 +123,24 @@ export default {
async getRatingResult() {
this.loading = true
const res = await request.post("report_generation/rating_result", { report_generation_id: this.id })
this.data = res.content
try {
const res = await request.post("report_generation/rating_result", { report_generation_id: this.id })
this.data = res.content
} catch (error) {
this.$notify.error({ title: "提示", message: "服务出错!" });
}
this.loading = false
},
async getRemainData() {
this.loading = true
const res = await request.post("report_generation/remaining_data", { report_generation_id: this.id })
this.data = res.content;
this.treeList = this.recursion(res.content);
try {
const res = await request.post("report_generation/remaining_data", { report_generation_id: this.id })
this.data = res.content;
this.treeList = this.recursion(res.content);
} catch (error) {
this.$notify.error({ title: "提示", message: error.detail });
}
this.loading = false
},
@ -179,10 +187,18 @@ export default {
},
async submit() {
const res = await request.post("report_generation/save_data", {
report_generation_id: this.id,
report_data: this.data
})
try {
const res = await request.post("report_generation/save_data", {
report_generation_id: this.id,
report_data: this.data
})
if (res.code === 200) {
this.$notify.success({ title: "提示", message: res.message })
}
} catch (error) {
this.$notify.error({ title: "提示", message: error.detail })
}
},
setStep(num) {
@ -236,7 +252,7 @@ export default {
.el-form-item {
margin: 10px 0;
width: calc(100% - 30px);
width: 100%;
}
}
}

View File

@ -6,15 +6,15 @@
<el-button type="primary" @click="setStep">上一步</el-button>
<div>
<el-button type="primary" @click="downloadReport">下载报告</el-button>
<el-button type="primary" style="float:right" @click="submit">
确认报告无误
</el-button>
<el-popconfirm title="确认报告是否无误?" @confirm="submit">
<el-button type="primary" slot="reference" style="margin-left: 20px">确认报告无误</el-button>
</el-popconfirm>
</div>
</el-row>
</el-header>
<el-main v-loading="loading" element-loading-text="拼命加载中" element-loading-spinner="el-icon-loading"
:element-loading-background="loadingBackground">
<div ref="container"></div>
<div ref="container" class="container"></div>
</el-main>
</el-container>
</template>
@ -63,7 +63,7 @@ export default {
this.$store.commit(
"delete_tabs_item",
this.$store.state.tabs.find((item) => {
return item.id === '新建报告';
return item.id === this.id ;
})
);
}
@ -80,6 +80,11 @@ export default {
.el-col {
font-size: 14px;
}
}
.container{
div, input, textarea, p, span{
color: #000 !important;
}
}
</style>

View File

@ -11,11 +11,11 @@
<el-form-item label="报告时间" style="margin-left: 20px">
<el-date-picker v-model="form.date" type="daterange" range-separator="" start-placeholder="开始日期"
end-placeholder="结束日期" />
<el-button type="primary" @click="init" style="margin-left:20px"> </el-button>
</el-form-item>
<el-button type="primary" @click="init" style="margin-left:20px;height:40px"> </el-button>
</el-row>
<span>
<el-button type="primary" @click="createReport"> </el-button>
<el-button type="primary" @click="createReport" style="height:40px"> </el-button>
</span>
</el-row>
<el-form-item label="状态">
@ -51,31 +51,26 @@
</template>
<template slot="操作" slot-scope="value">
<el-button type="text" @click="view(value.value)">查看</el-button>
<el-button type="text" :disabled="value.value['状态'] !== '完成'" @click="viewReport(value.value.id)">报告</el-button>
<el-button type="text" :disabled="value.value['状态'] !== '完成'" @click="viewReport(value.value.report_generation_id)">报告</el-button>
<el-popconfirm title="确认删除?" @confirm="remove(value.value)">
<el-button type="text" slot="reference" style="margin-left: 20px">删除</el-button>
</el-popconfirm>
</template>
</fecr-table>
</el-row>
<fecr-dialog :visible="visible" @cancel="visible = false" @submit="visible = false">
<template slot="body">
<div ref="container"></div>
</template>
</fecr-dialog>
</el-card>
</template>
<script>
let docx = require("docx-preview");
import { download } from "@/utils/utils"
import request from "@/api/request";
import FecrTable from "@/components/FecrTable";
import FecrDialog from "@/components/FecrDialog"
export default {
components: { FecrTable, FecrDialog },
components: { FecrTable, },
data() {
return {
visible: false,
data: {
total: 0,
items: [],
@ -123,13 +118,15 @@ export default {
},
async viewReport(id) {
this.visible = true
const url = await request.post("report_generation/download", { report_generation_id: id }, { responseType: 'blob' })
docx.renderAsync(url, this.$refs.container);
const res = await request.BlobPost("report_generation/download", { report_generation_id: id }, 'application/vnd.openxmlformats-officedocument.wordprocessingml.document')
download(res, 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', '报告')
},
async remove(val) {
await request.post("report_generation/delete", { report_generation_id: val.report_generation_id })
const res = await request.post("report_generation/delete", { report_generation_id: val.report_generation_id })
if(res.code === 200){
this.$notify.success({title:"提示",message:res.message})
}
this.init()
},
},
@ -140,6 +137,7 @@ export default {
width: 250px;
}
::v-deep .el-card__body {
height: calc(100% - 224px);
padding: 0 20px