You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
337 lines
10 KiB
337 lines
10 KiB
<template>
|
|
<div>
|
|
<!-- 标题按钮部分开始 -->
|
|
<div class="tab-header webtop">
|
|
<!-- 标题 -->
|
|
<div>{{ viewTitle }}</div>
|
|
<!-- start 添加修改按钮 -->
|
|
<div>
|
|
<el-button type="primary" size="small" :disabled="submitdisabled" @click="saveOrUpdate">保存</el-button>
|
|
<el-button type="info" size="small" @click="handleReturn()">返回</el-button>
|
|
</div>
|
|
<!-- end 添加修改按钮 -->
|
|
<!-- end 详情按钮 -->
|
|
</div>
|
|
<!-- 标题按钮部分结束 -->
|
|
<!-- Start 新增修改部分 -->
|
|
<div class="listconadd">
|
|
<el-form ref="form_obj">
|
|
<el-card class="box-card">
|
|
<div class="wlInfo"><span>风险类别</span></div>
|
|
<div class="item">
|
|
<span class="item_text">编号:</span>
|
|
<el-input v-model="formobj.code" placeholder="类别编号" class="item_input" clearable />
|
|
</div>
|
|
<div class="item">
|
|
<span class="item_text">指标名称:</span>
|
|
<el-input v-model="formobj.name" placeholder="指标名称" class="item_input" clearable />
|
|
</div>
|
|
<div class="item" >
|
|
<span class="item_text">风险程度:</span>
|
|
<el-select
|
|
v-model="formobj.levelName"
|
|
class="item_input"
|
|
placeholder="请选择风险等级名称"
|
|
@change="getType"
|
|
>
|
|
<el-option
|
|
v-for="(item, i) in arrList"
|
|
:key="i"
|
|
:label="item.name"
|
|
:value="item.sid"
|
|
/>
|
|
</el-select>
|
|
</div>
|
|
<div class="item" >
|
|
<span class="item_text">风险类别:</span>
|
|
<el-cascader ref="cascaderAddr" :options="options" :props="optionProps" v-model="selectedOptions" :show-all-levels="false" @change="handleChange3" class="item_input"></el-cascader>
|
|
</div>
|
|
<div class="item">
|
|
<span class="item_text">指标说明:</span>
|
|
<el-input v-model="formobj.content" placeholder="分类说明" class="item_input" clearable />
|
|
</div>
|
|
<div class="item" >
|
|
<span class="item_text">报送单位:</span>
|
|
<el-select
|
|
v-model="formobj.reportTarget"
|
|
class="item_input"
|
|
placeholder="请选择报送单位"
|
|
>
|
|
<el-option
|
|
v-for="(item, i) in plable"
|
|
:key="i"
|
|
:label="item.type"
|
|
:value="item.value"
|
|
/>
|
|
</el-select>
|
|
</div>
|
|
<div class="item" style="height: 110px;">
|
|
<span class="item_text">备注信息:</span>
|
|
<el-input type="textarea"
|
|
:autosize="{ minRows: 4, maxRows: 6 }" v-model="formobj.remarks" class="item_input" placeholder="备注信息" />
|
|
</div>
|
|
</el-card>
|
|
</el-form>
|
|
</div>
|
|
<!-- End 添加修改部分 -->
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import req from '@/api/Risk/index'
|
|
export default {
|
|
name: 'DispatchStandardsAdd',
|
|
data() {
|
|
return {
|
|
submitdisabled: false,
|
|
viewTitle: '',
|
|
viewState: 1,
|
|
arrLists: [],
|
|
arrList: [],
|
|
rangeArr: [],
|
|
option: [],
|
|
options: [],
|
|
hierarchys: false,
|
|
formobj: {
|
|
name: '',
|
|
code: '',
|
|
content: '',
|
|
levelSid: '',
|
|
levelCode: '',
|
|
levelName: '',
|
|
typeCode:'',
|
|
typeName:'',
|
|
typeSid:'',
|
|
remarks:'',
|
|
reportTarget:''
|
|
},
|
|
rules: {
|
|
name: [{ required: true, message: '风险等级名称不能为空', trigger: 'blur' }],
|
|
code: [{ required: true, message: '风险等级代码不能为空', trigger: 'blur' }],
|
|
content: [{ required: true, message: '分类说明不能为空', trigger: 'blur' }],
|
|
reportTarget: [{ required: true, message: '报送单位不能为空', trigger: 'blur' }],
|
|
},
|
|
optionProps: {
|
|
value: 'code',
|
|
label: 'name',
|
|
children: 'down',
|
|
expandTrigger: 'hover',
|
|
},
|
|
plable: [{value:1,type:'监管公司'},{value:2,type:'贷款支行'},{value:3,type:'总行'}],
|
|
selectedOptions: [], //配送选择值
|
|
}
|
|
},
|
|
created() {
|
|
this.superior()
|
|
this.selectTypes()
|
|
},
|
|
methods: {
|
|
handleReturn(isreload) {
|
|
if (isreload === 'true') this.$emit('reloadlist')
|
|
this.formobj.sid = ''
|
|
this.formobj.name= '',
|
|
this.formobj.code= '',
|
|
this.formobj.content= '',
|
|
this.formobj.levelSid= '',
|
|
this.formobj.levelCode= ''
|
|
this.formobj.levelName= ''
|
|
this.formobj.typeCode='',
|
|
this.formobj.typeName='',
|
|
this.formobj.typeSid='',
|
|
this.formobj.remarks='',
|
|
this.formobj.reportTarget='',
|
|
this.selectedOptions=[],
|
|
|
|
this.$refs['form_obj'].resetFields()
|
|
this.$emit('doback')
|
|
},
|
|
showAdd() {
|
|
this.$nextTick(() => {
|
|
this.$refs['form_obj'].clearValidate()
|
|
})
|
|
this.viewTitle = '【新增】风险指标'
|
|
this.hierarchys= false
|
|
},
|
|
showEdit(row) {
|
|
this.$nextTick(() => {
|
|
this.$refs['form_obj'].clearValidate()
|
|
})
|
|
this.viewTitle = '【修改】风险指标'
|
|
this.hierarchys= true
|
|
const _this = this
|
|
const vdata = row
|
|
_this.formobj.id = vdata.id
|
|
_this.formobj.sid = vdata.sid
|
|
_this.formobj.name = vdata.name
|
|
_this.formobj.code = vdata.code
|
|
_this.formobj.content = vdata.content
|
|
_this.formobj.levelName = vdata.levelName
|
|
_this.formobj.levelSid = vdata.levelSid
|
|
_this.formobj.levelCode = vdata.levelCode
|
|
_this.formobj.typeName = vdata.typeName
|
|
_this.formobj.typeSid = vdata.typeSid
|
|
_this.formobj.typeCode = vdata.typeCode
|
|
_this.formobj.reportTarget = vdata.reportTarget
|
|
_this.formobj.remarks = vdata.remarks
|
|
|
|
_this.selectedOptions = JSON.parse(vdata.typeName);
|
|
},
|
|
getParentsById(list, id) {
|
|
for (let i in list) {
|
|
if (list[i].no == id) {//这里的no根据你的需求可进行改变
|
|
//查询到就返回该数组对象的value
|
|
return [list[i].no];
|
|
}
|
|
if (list[i].children) {
|
|
let node = this.getParentsById(list[i].children, id);
|
|
if (node !== undefined) {
|
|
//查询到把父节把父节点加到数组前面
|
|
node.unshift(list[i].no);
|
|
return node;
|
|
}
|
|
}
|
|
}
|
|
},
|
|
saveOrUpdate() {
|
|
if(this.formobj.sid){
|
|
this.formobj.typeName = JSON.stringify(this.selectedOptions)
|
|
}
|
|
if(this.formobj.reportTarget==='监管公司'){
|
|
this.formobj.reportTarget===1
|
|
}else if(this.formobj.reportTarget==='贷款支行'){
|
|
this.formobj.reportTarget===2
|
|
}else{
|
|
this.formobj.reportTarget===3
|
|
}
|
|
req
|
|
.saveRiskIndicator(this.formobj)
|
|
.then(resp => {
|
|
if (resp.success) {
|
|
this.$message({ showClose: true, type: 'success', message: resp.msg })
|
|
this.handleReturn('true')
|
|
} else {
|
|
// 根据resp.code进行异常情况处理
|
|
}
|
|
})
|
|
.catch(() => {
|
|
})
|
|
},
|
|
superior(){
|
|
req
|
|
.selectRiskLevel()
|
|
.then(resp => {
|
|
if(resp.code==200){
|
|
this.arrLists=resp.data
|
|
for (var i = 0; i < this.arrLists.length; i++) {
|
|
|
|
let item = {
|
|
name: this.arrLists[i].name,
|
|
sid: this.arrLists[i].sid,
|
|
|
|
}
|
|
this.arrList.push(item)
|
|
}
|
|
}
|
|
})
|
|
},
|
|
selectTypes(){
|
|
req
|
|
.selectType()
|
|
.then(resp => {
|
|
if(resp.code==200){
|
|
this.options=resp.data
|
|
}
|
|
})
|
|
},
|
|
getType(value) {
|
|
const choose = this.arrLists.filter((item) => item.sid === value)
|
|
this.formobj.levelSid = value
|
|
this.formobj.levelCode = choose[0].code
|
|
this.formobj.levelName = choose[0].name
|
|
},
|
|
handleChange3(value) {
|
|
var getSId = this.$refs.cascaderAddr.getCheckedNodes()[0].data.sid
|
|
this.formobj.typeSid=getSId
|
|
var thsAreaCode = this.$refs.cascaderAddr.getCheckedNodes()[0].pathLabels; //注意2: 获取label值
|
|
var len=value.length-1;
|
|
var lens=thsAreaCode.length-1;
|
|
this.formobj.typeCode=value[len];//这是最终修改后的要提交的选中后的数据值
|
|
this.formobj.typeName=thsAreaCode[lens];//这是最终修改后的要提交的选中后的数据值
|
|
this.$refs.cascaderAddr.toggleDropDownVisible();// 选择之后将下拉界面收起
|
|
},
|
|
},
|
|
watch: {
|
|
selectedOptions() {
|
|
if (this.$refs.cascaderAddr) {
|
|
this.$refs.cascaderAddr.dropDownVisible = false;
|
|
console.log(this.$refs.cascaderAddr,'cascader')
|
|
}
|
|
}
|
|
},
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss">
|
|
.box-card {
|
|
margin-left: 60px;
|
|
margin-right: 60px;
|
|
min-width: 70%;
|
|
margin-top: 20px;
|
|
padding-bottom: 50px;
|
|
|
|
.item {
|
|
display: flex;
|
|
flex-direction: row;
|
|
align-items: center;
|
|
margin-top: 15px;
|
|
height: 40px;
|
|
line-height: 40px;
|
|
|
|
.item_text {
|
|
flex: 0.8;
|
|
font-size: 18px;
|
|
text-align: right;
|
|
}
|
|
|
|
.item_input {
|
|
flex: 4;
|
|
font-size: 16px;
|
|
margin-left: 10px;
|
|
margin-right: 80px;
|
|
}
|
|
|
|
.item_left_input {
|
|
width: 20%;
|
|
}
|
|
|
|
.item_left_text {
|
|
height: 30px;
|
|
margin-left: 20px;
|
|
line-height: 30px;
|
|
color: #018AD2;
|
|
padding: 0px 15px;
|
|
border: 1.5px solid #018AD2;
|
|
border-radius: 5px;
|
|
|
|
}
|
|
|
|
.item_right {
|
|
flex: 1;
|
|
justify-items: center;
|
|
|
|
.item_right_list_text {
|
|
font-size: 16px;
|
|
}
|
|
|
|
.item_right_list_delect {
|
|
color: #5E94FF;
|
|
margin-left: 20px;
|
|
font-size: 16px;
|
|
text-decoration: underline;
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
</style>
|
|
|