123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- <script setup>
- import { ref } from "vue";
- import { raiInterface } from "@/api/api.js";
- import { ElMessage } from "element-plus";
- const props = defineProps({
- isShowDia: Boolean,
- title: String,
- nodeData: Object,
- });
- const emit = defineEmits(["over", "cancel"]);
- const add_name = ref("");
- /* 保存 */
- const saveHandle = () => {
- switch (title) {
- case "add":
- addNode();
- break;
- case "edit":
- editNode();
- break;
- case "del":
- delNode();
- break;
- }
- };
- /* 新增节点 */
- const addNode = () => {
- if (add_name) {
- raiInterface
- .addNode({
- IndustryMapId: props.nodeData.id,
- IndustryMapName: add_name,
- Level: props.nodeData.level,
- })
- .then((res) => {
- if (res.Ret === 200) {
- emit("over");
- ElMessage.success(res.Msg);
- }
- });
- } else {
- ElMessage.warning("子级名称不能为空");
- }
- };
- /* 修改 */
- const editNode = () => {
- raiInterface
- .editNode({
- IndustryMapId: props.nodeData.id,
- IndustryMapName: props.nodeData.name,
- })
- .then((res) => {
- if (res.Ret === 200) {
- emit("over");
- ElMessage.success(res.Msg);
- }
- });
- };
- /* 删除节点 */
- const delNode = () => {
- raiInterface
- .delNode({
- IndustryMapId: props.nodeData.id,
- })
- .then((res) => {
- if (res.Ret === 200) {
- ElMessage.success("已删除");
- emit("over");
- }
- });
- };
- /* 取消 */
- const cancelHandle = () => {
- add_name.value = "";
- emit("cancel");
- };
- </script>
- <template>
- <el-dialog draggable v-model="props.isShowDia" :close-on-click-modal="false" :modal-append-to-body="false" @close="cancelHandle" custom-class="map_dialog" width="450px">
- <template #header>
- <span style="font-size: 16px">{{ props.title == "add" ? "新增子级" : "edit" ? "编辑" : "删除" }}</span>
- </template>
- <div class="dialog_cont">
- <!-- 新增子级 -->
- <template v-if="props.title == 'add'">
- <div class="node_name">父级名称: {{ nodeData.name }}</div>
- <el-input v-model="add_name" placeholder="请输入子级名称" class="node_ipt" @keyup.enter.native="saveHandle"> </el-input>
- </template>
- <!-- 编辑 -->
- <el-input v-model="nodeData.name" placeholder="请输入名称" class="node_ipt" v-else-if="props.title == 'edit'" @keyup.enter.native="saveHandle"> </el-input>
- <!-- 删除 -->
- <div class="node_name" v-else-if="props.title == 'del'">确定要删除此节点吗?</div>
- </div>
- <div style="display: flex; justify-content: center; margin-top: 40px">
- <el-button type="primary" style="width: 80px; marginright: 24px" @click="saveHandle">确定</el-button>
- <el-button type="primary" plain style="width: 80px" @click="cancelHandle">取消</el-button>
- </div>
- </el-dialog>
- </template>
- <style lang="scss" scoped>
- .dialog_cont {
- display: flex;
- padding: 0 10px;
- .node_name {
- display: flex;
- align-items: center;
- flex-shrink: 0;
- font-size: 15px;
- }
- }
- </style>
|