<template>
|
<el-dialog
|
:close-on-click-modal="false"
|
:visible.sync="cloneOtherCodeRuleSettingBox"
|
append-to-body
|
class="avue-dialog avue-dialog--top"
|
style="height: 100vh"
|
@close="closeCloneOtherBasicSecDialog"
|
title="克隆编码规则的基础信息"
|
top="-3%"
|
width="800px">
|
<div>
|
<el-row>
|
<p
|
style="margin-top: -20px;
|
margin-bottom: 4px;
|
font-weight: 570;
|
font-size: 19px;
|
color: #0e2d5f;">
|
编码规则
|
</p>
|
<avue-crud
|
ref="crudCloneCodeRuleOther"
|
:data="codeRuleData"
|
:option="cloneCodeRuleOption"
|
:page.sync="codeRulePage"
|
:table-loading="codeRuleloading"
|
class="other-clone-coderule-crud"
|
@row-click="codeOtherCloneRuleRowClick"
|
@selection-change="selectionOtherCloneCodeRuleChange"
|
@search-change="searchOtherCloneChange"
|
@search-reset="searchOtherCloneReset"
|
@on-load="onLoad">
|
<template #radio="{row}">
|
<el-radio v-model="selectOtherCodeRuleRowIndex"
|
:label="row.$index"> </el-radio>
|
</template>
|
</avue-crud>
|
</el-row>
|
<el-row style="margin-top: 10px; border-top: 1px solid #ebeef5">
|
<p
|
style="
|
margin-top: 10px;
|
margin-bottom: 4px;
|
font-weight: 570;
|
font-size: 19px;
|
color: #0e2d5f;
|
"
|
>
|
码段信息
|
</p>
|
<avue-crud
|
ref="crudCloneCodeBasicOther"
|
:data="cloneBasicData"
|
:option="cloneBasicOption"
|
:table-loading="codeBasicloading"
|
class="other-clone-codebasic-crud"
|
@row-click="codeOtherCloneBasicRowClick"
|
@selection-change="selectionOtherCloneCodeBasicChange">
|
</avue-crud>
|
</el-row>
|
</div>
|
<div slot="footer" class="dialog-footer" style="height: 50px">
|
<el-button type="primary" @click="saveOtherCodeBasic" :loading="cloneSaveLoding">保 存</el-button>
|
<el-button @click="cloneOtherCodeRuleSettingBox = false">取 消</el-button>
|
</div>
|
</el-dialog>
|
</template>
|
|
<script>
|
import cloneBasicOption from "@/const/code/cloneBasicDialogOption";
|
import cloneCodeRuleOption from "@/const/code/cloneCodeRuleDialogOption";
|
import {gridCodeRule} from "@/api/code/mdmrule";
|
import {gridCodeBasicSec,cloneCodeBasic} from "@/api/code/codebasic";
|
export default {
|
name: "cloneRuleDialog",
|
props: {
|
// 对话框显示隐藏控制
|
visible: {
|
type: "Boolean",
|
default: false,
|
},
|
// 被克隆的规则oid
|
quiltCloneCodeRule:{
|
type: "Object",
|
}
|
},
|
data() {
|
return {
|
cloneOtherCodeRuleSettingBox: this.visible,
|
/*克隆编码规则对话框控制变量*/
|
cloneBasicOption: cloneBasicOption,
|
cloneCodeRuleOption: cloneCodeRuleOption,
|
selectionOtherCloneCodeBasicList: [], // 此界面内当前选中的基础码段
|
selectionOtherCloneCodeRuleList: {}, // 此界面内当前选中的编码规则
|
selectOtherCodeRuleRowIndex: '',
|
cloneOtherQuery: {}, // 查询条件对象
|
codeRulePage: {
|
pageSize: 10,
|
currentPage: 1,
|
total: 0,
|
},
|
codeRuleloading: false,
|
codeRuleData: [],
|
codeBasicloading: false,
|
cloneBasicData: [],
|
cloneSaveLoding: false,
|
};
|
},
|
watch: {
|
// 监听父组件传的窗口显示隐藏的值,以及值的回填
|
visible() {
|
//console.log(this.visible);
|
if(this.visible){
|
//console.log(this.quiltCloneCodeRule);
|
let conditionMap = {};
|
conditionMap["conditionMap[oid_notequal]"] = this.quiltCloneCodeRule.oid.trim();
|
this.cloneOtherQuery = conditionMap;
|
this.onLoad(this.codeRulePage);
|
}else{
|
this.codeRuleData = [];
|
this.cloneBasicData = [];
|
}
|
this.cloneOtherCodeRuleSettingBox = this.visible;
|
},
|
selectionOtherCloneCodeRuleList(){
|
this.loadBasic(this.selectionOtherCloneCodeRuleList);
|
},
|
},
|
methods: {
|
|
//关闭窗口时触发
|
closeCloneOtherBasicSecDialog(){
|
this.$emit('update:visible',false);
|
},
|
/** 从其他编码规则中克隆码段对话框-单击编码规则实现行选择*/
|
codeOtherCloneRuleRowClick(row) {
|
this.selectOtherCodeRuleRowIndex = row.$index
|
this.selectionOtherCloneCodeRuleList = row;
|
this.loadBasic(row);
|
},
|
/** 从其他编码规则中克隆码段对话框-单击基础码段实现行选择*/
|
codeOtherCloneBasicRowClick(row) {
|
this.$refs.crudCloneCodeBasicOther.toggleSelection();
|
this.selectionOtherCloneCodeBasicList = row;
|
this.$refs.crudCloneCodeBasicOther.setCurrentRow(row);
|
this.$refs.crudCloneCodeBasicOther.toggleRowSelection(row); //选中当前行
|
},
|
selectionOtherCloneCodeBasicChange(list) {
|
this.selectionOtherCloneCodeBasicList = list;
|
this.$refs.crudCloneCodeBasicOther.setCurrentRow(
|
this.selectionOtherCloneCodeBasicList.slice(-1)[0]
|
);
|
},
|
/** 从其他规则克隆码段界面重置搜索功能 */
|
searchOtherCloneReset() {
|
let conditionMap = {};
|
conditionMap["conditionMap[oid_notequal]"] = this.quiltCloneCodeRule.oid.trim();
|
this.cloneOtherQuery = conditionMap;
|
this.onLoad(this.codeRulePage);
|
},
|
/** 从其他规则克隆码段界面搜索功能*/
|
searchOtherCloneChange(params, done) {
|
this.codeRulePage.currentPage = 1;
|
// 多个conditionMap这样传参,快速查询默认采用模糊查询
|
if (params) {
|
Object.keys(params).forEach((key) => {
|
this.cloneOtherQuery["conditionMap" + "[" + key + "_like]"] =
|
params[key].trim();
|
});
|
}
|
this.onLoad(this.codeRulePage,this.cloneOtherQuery);
|
done();
|
},
|
/** 保存从其他编码规则中克隆码段信息*/
|
async saveOtherCodeBasic() {
|
this.cloneSaveLoding = true;
|
let oid = this.quiltCloneCodeRule.oid;
|
let fromDialogPkCodebasic = this.selectionOtherCloneCodeBasicList;
|
if (fromDialogPkCodebasic.length <= 0) {
|
this.$message.warning("请选择码段数据!");
|
return;
|
}
|
let oidArr = [];
|
fromDialogPkCodebasic.forEach((ele) => {
|
oidArr.push(ele.oid);
|
});
|
let data = {
|
pkCodeRule: oid,
|
oidArr: oidArr.join(","),
|
};
|
//console.log(data);
|
await cloneCodeBasic(data).then( () => {
|
this.cloneOtherCodeRuleSettingBox = false;
|
this.$message({
|
type: "success",
|
message: "操作成功!",
|
});
|
// 调用父组件方法重新加载码段表
|
this.$emit('refreshRuleTable',{"currentPage":1,"pageSize":10});
|
},(error) => {
|
window.console.log(error);
|
});
|
this.cloneSaveLoding = false;
|
},
|
/** 点击触发加载基础码段信息*/
|
loadBasic(row) {
|
this.codeBasicloading = true;
|
// console.log(row)
|
if (row != "" && row != null && row !="undefined") {
|
let conditionMap = {};
|
conditionMap["conditionMap[pkCodeRule]"] = row.oid.trim();
|
gridCodeBasicSec(1, -1, conditionMap).then((res) => {
|
const data = res.data.data;
|
this.cloneBasicData = data.records;
|
this.codeBasicloading = false;
|
});
|
}else {
|
this.cloneBasicData = [];
|
this.codeBasicloading = false;
|
}
|
},
|
// 规则表格相关方法
|
onLoad(page, params = {}) {
|
this.codeRuleloading = true;
|
gridCodeRule(page.currentPage, page.pageSize, Object.assign({},this.cloneOtherQuery, params)).then((res) => {
|
// console.log(res.data);
|
const data = res.data.data;
|
this.codeRulePage.total = data.total;
|
this.codeRuleData = data.records;
|
this.codeRuleloading = false;
|
if(this.codeRuleData.length > 0) {
|
this.$nextTick(() => {
|
this.selectOtherCodeRuleRowIndex = this.codeRuleData[0].$index
|
this.selectionOtherCloneCodeRuleList = this.codeRuleData[0];
|
});
|
}else{
|
this.cloneBasicData = [];
|
}
|
});
|
},
|
|
}
|
};
|
</script>
|
|
<style>
|
</style>
|