<template>
|
<win-sm :title="setting.title" @close="close" :width="'800px'">
|
<el-form ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="100px">
|
<el-form-item label="编号" prop="warehouseCode">
|
<el-input disabled v-model="formData.warehouseCode" clearable maxlength="20" show-word-limit style="width: 100%" />
|
</el-form-item>
|
<el-form-item label="仓库名称" prop="warehouseName">
|
<el-input v-model="formData.warehouseName" clearable maxlength="20" show-word-limit style="width: 100%" />
|
</el-form-item>
|
<el-form-item label="仓库类型" prop="classificationCode">
|
<el-select v-model="formData.classificationCode" clearable placeholder="请选择" style="width: 100%">
|
<el-option
|
v-for="item in classList"
|
:key="item.dict_code"
|
:label="item.dict_label"
|
:value="item.dict_code"
|
></el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="所属机构" prop="agencyIds">
|
<el-cascader v-model="formData.agencyIds" :options="treeList" :props="{checkStrictly: true,value:'id'}" @change="handleChange" style="width: 100%"></el-cascader>
|
</el-form-item>
|
<el-form-item label="地址">
|
<el-input v-model="formData.adress" clearable maxlength="20" show-word-limit style="width: 100%" />
|
</el-form-item>
|
<el-form-item label="状态" prop="states">
|
<el-radio-group v-model="formData.states">
|
<el-radio :label="1" border>启用</el-radio>
|
<el-radio :label="0" border>禁用</el-radio>
|
</el-radio-group>
|
</el-form-item>
|
</el-form>
|
<div slot="footer" align="center" class="dialog-footer">
|
<my-button name="取消" site="form" @click="close" />
|
<my-button name="保存" site="form" @click="save" />
|
</div>
|
</win-sm>
|
</template>
|
|
<script>
|
import winSm from '@/components/win/win-sm';
|
import myButton from '@/components/myButton/myButton';
|
import * as finsystenant from '@/api/baseSetting/finsystenant';
|
|
export default {
|
components: { winSm, myButton },
|
props: {
|
setting: {
|
type: Object,
|
default: () => {},
|
},
|
},
|
data() {
|
return {
|
classList: [],
|
treeList: [],
|
checkAll: false,
|
checkedList: [],
|
formData: {
|
warehouseCode:null,
|
classificationId: null,
|
classificationCode:null,
|
states: 1,
|
agencyIds:[],
|
agencyId:''
|
},
|
rules: {
|
warehouseName: [{ required: true, message: '请输入', trigger: 'blur' }],
|
classificationCode: [{ required: true, message: '请选择', trigger: 'blur' }],
|
agencyIds: [{ required: true, message: '请选择', trigger: 'blur' }],
|
states: [{ required: true, message: '请选择状态', trigger: 'blur' }],
|
},
|
};
|
},
|
created() {
|
this.class_List();
|
this.tree_List();
|
if (this.setting.info) {
|
this.formData = Object.assign({}, JSON.parse(this.setting.info));
|
}
|
},
|
methods: {
|
class_List() {
|
finsystenant.classList().then((res) => {
|
if (res) {
|
console.log(res, 'res');
|
this.classList = res;
|
}
|
});
|
},
|
tree_List() {
|
finsystenant.getTree().then((res) => {
|
if (res) {
|
this.treeList = res;
|
this.$set(this.formData,'agencyIds',this.findParentIds(this.treeList,this.formData.agencyId))
|
}
|
});
|
},
|
handleChange(e){
|
this.formData.agencyId = e[e.length-1]
|
},
|
getEditInfo(id) {},
|
close() {
|
this.$emit('close');
|
},
|
save() {
|
this.$refs.ruleForm.validate((valid) => {
|
if (valid) {
|
const params = Object.assign({}, this.formData);
|
if (this.setting.id) {
|
// 编辑接口
|
finsystenant.editstore(params).then((res) => {
|
if (res) {
|
this.$message.success('保存成功!');
|
this.close();
|
this.$emit('search');
|
} else {
|
this.$message.error('保存失败');
|
}
|
});
|
} else {
|
params.orgId = this.setting.orgId;
|
finsystenant.addstore(params).then((res) => {
|
if (res) {
|
this.$message.success('保存成功!');
|
this.close();
|
this.$emit('search');
|
} else {
|
this.$message.error('保存失败');
|
}
|
});
|
}
|
} else {
|
this.$message.error('校验未通过,请检查。');
|
}
|
});
|
},
|
// 通过子集id查到所以相关父级id并返回数组
|
findParentIds(dataSource, nodeId) {
|
const parentIds = [nodeId]; // 用于存储所有父节点ID的数组
|
|
// 定义一个递归函数,用于遍历整棵树并查找子节点的所有父节点
|
function traverse(node, nodeId) {
|
if (node.id === nodeId) {
|
// 如果当前节点的ID等于子节点的ID,则表示已经找到了子节点,可以开始向上查找父节点
|
return true; // 返回true表示已经找到了子节点
|
}
|
|
if (node.children) {
|
// 如果当前节点有子节点,则继续遍历子节点
|
for (const childNode of node.children) {
|
if (traverse(childNode, nodeId)) {
|
// 如果在子节点中找到了子节点的父节点,则将当前节点的ID添加到父节点ID数组中,并返回true表示已经找到了子节点
|
parentIds.unshift(node.id);
|
return true;
|
}
|
}
|
}
|
|
return false; // 如果当前节点不是子节点的父节点,则返回false
|
}
|
|
// 从根节点开始遍历整棵树,并调用递归函数查找子节点的所有父节点
|
for (const node of dataSource) {
|
if (traverse(node, nodeId)) {
|
// 如果在当前节点的子树中找到了子节点的父节点,则直接退出循环
|
break;
|
}
|
}
|
|
return parentIds; // 返回所有父节点ID的数组
|
},
|
},
|
};
|
</script>
|