liyangzheng 1 рік тому
батько
коміт
38a04b13a9

+ 9 - 0
src/api/flow/flow.js

@@ -111,6 +111,14 @@ function getIedType(data){
         params:data
     })
 }
+// 复制并保存指定的内置检测模型为自定义模型
+function copyNowMap(data){
+    return request({
+        url:`/admin/sysmodel/saveas`,
+        method:"post",
+        data,
+    })
+}
 export default {
     getModelOn,
     saveModelOn,
@@ -123,4 +131,5 @@ export default {
     updateIedType,
     getIedType,
     delModelFcdaOn,
+    copyNowMap,
 }

+ 14 - 3
src/pages/system/components/InsideModule.vue

@@ -52,12 +52,13 @@
                                     style="font-size: 14px;color: #7484AB;display: block;color: #255CE7;">双击节点或连接线可配置属性</span>
                             </div>
                         </div>
-                        <div style="width: calc(15%);">
+                        <div style="width: calc(20%);">
                             <div style="width: calc(100%);">
                                 <el-button style="width: 80px;height: 30px;" type="primary" @click="cleanAll"
                                     plain>关闭</el-button>
                                 <el-button style="width: 80px;height: 30px;" type="primary"
                                     @click="saveMap">保存</el-button>
+                                    <el-button style="width: 80px;height: 30px;" type="success" plain @click="copyMap">复制</el-button>
                             </div>
                         </div>
                     </div>
@@ -72,6 +73,7 @@
                             :searchModule="searchModule" :coolObj="coolObj" :svOrGoose="svOrGoose" @backxy="backxy"
                             @drawCor="drawCor"></DrawDesigns>
                     </div>
+                    <CopyLoad v-if="copyType" :copyType="copyType" :coolObj=coolObj></CopyLoad>
                 </div>
             </div>
         </div>
@@ -81,10 +83,11 @@
 <script>
 import { ref, onMounted, toRefs, watch } from 'vue';
 import { ElMessage } from 'element-plus';
-import cid from '@/api/cid/cid'
+import flow from '@/api/flow/flow';
 import FeelLoad from '@/pages/feelLoad/FeelLoad.vue'//bmnp
 import FatherMap from '@/pages/mapLoad/FatherMap.vue';//jsplumb
 import DrawDesigns from '@/pages/components/draw/DrawDesigns.vue';//logicflow
+import CopyLoad from '../modalComp/CopyLoad.vue';
 import { now } from 'moment';
 import { useRoute } from 'vue-router';
 export default {
@@ -126,6 +129,7 @@ export default {
         let svOrGoose = ref(1)//0为sv,1为goose
         let flashLevel = ref("")//抬头显示的电压等级
         let linkStyle = ref("")//抬头显示的接线方式
+        let copyType = ref(false)//copyload.vue打开或关闭
         watch(() => props.tfType, (newVal) => {
             nowLook.value = newVal
         })
@@ -152,6 +156,7 @@ export default {
             //     needName.value = route.query.modelname
             // }
             coolObj.value = props.setId//模型整个数据
+            console.log(coolObj.value,'scaos ');
         }
         function svClick() {
             lineMenuColor.value = 'orange'
@@ -163,6 +168,9 @@ export default {
             svOrGoose.value = 1
             designsRef.value.blue()//切换为goose
         }
+        function copyMap(){
+            copyType.value = true
+        }
         function delClick() {
             designsRef.value.delLine()//删除连接线
         }
@@ -229,12 +237,15 @@ export default {
             drawCor,
             flashLevel,
             linkStyle,
+            copyType,//copyload.vue打开或关闭
+            copyMap,//打开copyload模态框
         }
     },
     components: {
         FeelLoad,
         FatherMap,
-        DrawDesigns
+        DrawDesigns,
+        CopyLoad,//复制模态框
     }
 }
 </script>

+ 15 - 10
src/pages/system/components/LitLine.vue

@@ -45,11 +45,12 @@
                 <Pagination :totals="totals" @pageBack="pageBack"></Pagination>
             </div>
             <div>
-                <AddLine v-if="alModal" :alModal="alModal" :flashId="flashId" :checkFlash="checkFlash" @alBack="alBack"></AddLine>
-                <LookLine v-if="lookModal" :lookModal="lookModal" :flashId="flashId" :checkFlash="checkFlash" :needList="needList" :search="search"
-                    @lookBack="lookBack" :listNum="listNum"></LookLine>
-                <DelLine v-if="delModal" :delModal="delModal" :flashId="flashId" :checkFlash="checkFlash" :needList="needList" :sunSearch="sunSearch"
-                    @delBack=delBack>
+                <AddLine v-if="alModal" :alModal="alModal" :flashId="flashId" :sunSearch="sunSearch"
+                    :checkFlash="checkFlash" @alBack="alBack"></AddLine>
+                <LookLine v-if="lookModal" :lookModal="lookModal" :flashId="flashId" :checkFlash="checkFlash"
+                    :needList="needList" :search="search" @lookBack="lookBack" :listNum="listNum"></LookLine>
+                <DelLine v-if="delModal" :delModal="delModal" :flashId="flashId" :checkFlash="checkFlash"
+                    :needList="needList" :sunSearch="sunSearch" @delBack=delBack>
                 </DelLine>
                 <PicLook v-if="picModal" :picModal="picModal" :needList="needList" @picBack="picBack"></PicLook>
             </div>
@@ -75,9 +76,9 @@ export default {
             type: Number,
             required: true
         },
-        lineId:{
-            type:String,
-            required:true,
+        lineId: {
+            type: String,
+            required: true,
         },//电压等级的id
     },
     setup(props, { emit }) {
@@ -98,10 +99,10 @@ export default {
         watch(() => props.moduleTotal, (newVal) => {
             totals.value = newVal
         })
-        watch(()=>props.lineId,(newVal)=>{
+        watch(() => props.lineId, (newVal) => {
             flashId.value = newVal
         })
-        function checkFlash(num){
+        function checkFlash(num) {
             loading.value = true
             litLine.getAllLine({ pageno: 1, pagesize: 20, vol_id: num - 0 }).then(res => {
                 if (res.code == 0) {
@@ -225,6 +226,10 @@ export default {
         onMounted(() => {
             search()
         })
+        onBeforeUnmount(()=>{
+            flashId.value = ""
+            console.log(flashId.value,'asfik');
+        })
         return {
             lineList,
             handleSelectionChange,

+ 59 - 28
src/pages/system/modalComp/AddLine.vue

@@ -33,7 +33,7 @@
 </template>
 
 <script>
-import { ref, onMounted, toRefs, reactive,watch } from 'vue';
+import { ref, onMounted, toRefs, reactive, watch, onBeforeUnmount } from 'vue';
 import { ElMessage } from 'element-plus';
 import systemRow from '@/api/systemRow';
 import litLine from "@/api/litLine"
@@ -48,10 +48,14 @@ export default {
             type: Function,
             required: true
         },//litline传过来的方法
-        flashId:{
-            type:String,
-            required:true,
+        flashId: {
+            type: String,
+            required: true,
         },//litline传过来的电压等级
+        sunSearch:{
+            type:Function,
+            required:true
+        },
     },
     setup(props, { emit }) {
         let dialogVisible = ref(false)
@@ -64,8 +68,8 @@ export default {
         })
         let selectList = ref([
             {
-                name:"53",
-                id:"555"
+                name: "53",
+                id: "555"
             }
         ])
         let rules = reactive({
@@ -77,7 +81,7 @@ export default {
             ],
         })
         let ruleFormRef = ref(null)
-        watch(()=>props.flashId,(newVal)=>{
+        watch(() => props.flashId, (newVal) => {
             flashIds.value = newVal
         })
         function lineList() {
@@ -97,7 +101,7 @@ export default {
             })
         }
         function flashChange(e) {
-            console.log(e,'eeee11111');
+            console.log(e, 'eeee11111');
             ruleForm.value.volId = e
         }
         function cancelBack() {
@@ -107,26 +111,49 @@ export default {
         function sureBack() {
             ruleFormRef.value.validate((valid) => {
                 if (valid) {
-                    litLine.addLine({
-                        name: ruleForm.value.name,
-                        vol_id: ruleForm.value.volId - 0
-                    }).then(res => {
-                        if (res.code == 0) {
-                            dialogVisible.value = false
-                            emit("alBack", dialogVisible.value)
-                            ElMessage({
-                                message: "添加成功",
-                                type: "success",
-                                duration: 1500
-                            })
-                            props.checkFlash(flashIds.value)
-                        }else{
-                            ElMessage({
-                                message:res.msg,
-                                type:"error"
-                            })
-                        }
-                    })
+                    if (flashIds.value) {
+                        litLine.addLine({
+                            name: ruleForm.value.name,
+                            vol_id: ruleForm.value.volId - 0
+                        }).then(res => {
+                            if (res.code == 0) {
+                                dialogVisible.value = false
+                                emit("alBack", dialogVisible.value)
+                                ElMessage({
+                                    message: "添加成功",
+                                    type: "success",
+                                    duration: 1500
+                                })
+                                props.checkFlash(flashIds.value)
+                            } else {
+                                ElMessage({
+                                    message: res.msg,
+                                    type: "error"
+                                })
+                            }
+                        })
+                    }else{
+                        litLine.addLine({
+                            name: ruleForm.value.name,
+                            vol_id: ruleForm.value.volId - 0
+                        }).then(res => {
+                            if (res.code == 0) {
+                                dialogVisible.value = false
+                                emit("alBack", dialogVisible.value)
+                                ElMessage({
+                                    message: "添加成功",
+                                    type: "success",
+                                    duration: 1500
+                                })
+                                props.sunSearch()
+                            } else {
+                                ElMessage({
+                                    message: res.msg,
+                                    type: "error"
+                                })
+                            }
+                        })
+                    }
                 } else {
                     // ElMessage({
                     //     message:"请检查表单项",
@@ -141,6 +168,10 @@ export default {
             lineList()
             searchFlashLel()
         })
+        onBeforeUnmount(() => {
+            flashIds.value = ""
+            console.log(flashIds.value,'flash');
+        })
         return {
             searchFlashLel,
             dialogVisible,

+ 112 - 0
src/pages/system/modalComp/CopyLoad.vue

@@ -0,0 +1,112 @@
+<template>
+    <div>
+        <el-dialog v-model="dialogVisible" title="复制" width="30%" @close="closes" :close-on-click-modal="false">
+            <div style="display: flex;justify-content:center;align-items: center;">
+                <el-form :model="copyForm" ref="copyRef" :rules="copyRules" label-width="auto" style="max-width: 600px">
+                    <el-form-item label="名称" prop="name">
+                        <el-input v-model="copyForm.name" />
+                    </el-form-item>
+                </el-form>
+            </div>
+            <template #footer>
+                <span class="dialog-footer">
+                    <el-button @click="cancels">取消</el-button>
+                    <el-button type="primary" @click="sureClick">
+                        确定
+                    </el-button>
+                </span>
+            </template>
+        </el-dialog>
+    </div>
+</template>
+
+<script>
+import { ref, watch, onMounted, onBeforeUnmount, reactive } from 'vue'
+import flow from '@/api/flow/flow';
+import { ElLoading, ElMessage } from 'element-plus';
+export default {
+    props: {
+        copyType: {
+            type: Boolean,
+            required: true
+        },//insidemodule传过来的模态框状态
+        coolObj: {
+            type: Object,
+            required: true,
+        },//insidemodule传过来的模型数据
+    },
+    setup(props, { emit }) {
+        let dialogVisible = ref(false)//模态框打开或关闭
+        let copyForm = ref({
+            name: ""
+        })//表单内容项
+        let copyRules = reactive({
+            name: [{ required: true, message: '请输入名称', trigger: 'blur' },]
+        })//表单验证
+        let copyRef = ref(null)//表单ref
+        let receive = ref({})//接收insidemodule传过来的模型数据
+        // 初始化本组件函数
+        function reload() {
+            dialogVisible.value = props.copyType
+            receive.value = props.coolObj
+        }
+        // 模态框关闭
+        function modalClose() {
+            dialogVisible.value = false
+            emit("copyBack", dialogVisible.value)
+        }//模态框确认
+        function modalSure() {
+            copyRef.value.validate((val) => {
+                if (val) {
+                    const loading = ElLoading.service({
+                        lock: true,
+                        text: '复制中',
+                        background: 'rgba(0, 0, 0, 0.7)',
+                    })
+                    flow.copyNowMap({
+                        id: receive.value.id - 0,
+                        newname: copyForm.value.name
+                    }).then(res => {
+                        if (res.code == 0) {
+                            ElMessage({
+                                message: "复制成功!",
+                                type: "success"
+                            })
+                            loading.close()
+                            dialogVisible.value = false
+                            emit("copyBack", dialogVisible.value)
+                        } else {
+                            ElMessage({
+                                message: "复制失败!",
+                                type: "error"
+                            })
+                            dialogVisible.value = false
+                            emit("copyBack", dialogVisible.value)
+                            loading.close()
+                        }
+
+                    })
+
+                }
+            })
+        }
+        // 生命周期函数
+        onMounted(() => {
+            reload()//初始化
+        })
+        return {
+            reload,//初始化函数
+            dialogVisible,//模态框状态
+            closes: modalClose,//把全局关闭模态框方法替换为modalclose
+            cancels: modalClose,//把取消按钮方法替换为modalclose
+            sureClick: modalSure,//把确认按钮方法替换为modalsure
+            copyForm,//表单内容项,
+            copyRef,//表单ref
+            copyRules,//表单验证项
+            receive,//接收穿过来的模型数据
+        }
+    }
+}
+</script>
+
+<style lang="scss" scoped></style>