liyangzheng 1 年之前
父節點
當前提交
12901cd656

+ 23 - 5
src/pages/mission/components/StartMission.vue

@@ -38,9 +38,10 @@
                                     levelChoose(scope.row.alert_level) }}</span>
                             </template>
                         </el-table-column>
-                        <el-table-column prop="line_no" label="行号" width="130" >
+                        <el-table-column prop="line_no" label="行号" width="130">
                             <template #default="scope">
-                                <span style="color: blue;border-bottom: 1px solid blue;">{{ scope.row.line_no }}</span>
+                                <span style="color: blue;border-bottom: 1px solid blue;cursor: pointer;" @click="lineno(scope.row)">{{
+                                    scope.row.line_no }}</span>
                             </template>
                         </el-table-column>
                         <el-table-column prop="parse_result" label="描述" width="auto" :show-overflow-tooltip="true" />
@@ -54,6 +55,10 @@
                 </div>
             </div>
         </div>
+        <div>
+            <LookLine v-if="lineSearch" :lineSearch="lineSearch" :scdIds="scdIds" :lineNum="lineNum" @lineClose="lineClose">
+            </LookLine>
+        </div>
     </div>
 </template>
 
@@ -63,7 +68,7 @@ import StepMethod from './StepMethod.vue';
 import task from '@/api/task';
 import slc from '@/api/slc/slc';
 import { ElMessage } from 'element-plus';
-
+import LookLine from '../modalComp/LookLine.vue';
 export default {
     props: {
         startMis: {
@@ -76,10 +81,13 @@ export default {
         let loadingMis = ref({})
         let stepList = ref([])
         let endList = ref([])//结果表格
+        let scdIds = ref("")//当前组件scdid
+        let lineNum = ref(0)
+        let lineSearch = ref(false)
         let end = ref(true)
         watch(() => props.startMis, (newVal) => {
             loadingMis.value = newVal
-            console.log(loadingMis.value, 'watch');
+            scdIds.value = newVal.scd_id
         })
         function misDown() {
             task.stopTask({ id: loadingMis.value.id }).then(res => {
@@ -94,6 +102,7 @@ export default {
         }
         function picReload() {
             loadingMis.value = props.startMis
+            scdIds.value = loadingMis.value.scd_id
             task.tackStart({ id: loadingMis.value.id }).then(res => {
                 let countTime = setInterval(() => {
                     task.lookStep({ id: loadingMis.value.id - 0 }).then(res => {
@@ -132,6 +141,10 @@ export default {
                 return '告警'
             }
         }
+        function lineno(row) {
+            lineNum.value = row.line_no
+            lineSearch.value = true
+        }
         onMounted(() => {
             picReload()
         })
@@ -145,10 +158,15 @@ export default {
             levelChoose,//等级筛选
             end,
             backDown,
+            lineno,
+            scdIds,
+            lineNum,
+            lineSearch,
         }
     },
     components: {
-        StepMethod
+        StepMethod,
+        LookLine
     }
 }
 </script>

+ 106 - 0
src/pages/mission/modalComp/LookLine.vue

@@ -0,0 +1,106 @@
+<template>
+    <div>
+        <el-dialog v-model="dialogDisabled" width="50vw" append-to-body draggable @close="closes">
+            <template #header>
+                <div class="my-header">
+                    <div class="title">SCD源XML查看</div>
+                </div>
+            </template>
+            <div class="line-title">{{ lineNoTitle }}</div>
+            <el-scrollbar height="500px">
+                <div class="main-cont-line">
+                    <div class="main-line">
+                        <div v-for="(item, index) in lineNoData" :key="index"
+                            :class="{ 'click-line': item.split(' <')[0] == clicklineNOData }">
+                            {{ item }}
+                        </div>
+                    </div>
+                </div>
+            </el-scrollbar>
+            <template #footer>
+                <span class="dialog-footer">
+                    <el-button type="primary" @click="closeModal">确定</el-button>
+                </span>
+            </template>
+        </el-dialog>
+    </div>
+</template>
+
+<script>
+import { ref, onActivate, onMounted, watch } from 'vue';
+import { scdLineSourcexml } from '@/api/scdCheck/scdCheck2'
+export default {
+    props: {
+        lineSearch: {
+            type: Boolean,
+            required: true
+        },
+        scdIds: {
+            type: String,
+            required: true
+        },
+        lineNum: {
+            type: String,
+            required: true
+        }
+    },
+    setup(props, { emit }) {
+        let dialogDisabled = ref(false)
+        let needScdId = ref("")//本组件scdid
+        let line = ref(0)//行号
+        let clicklineNOData = ref("")
+        let lineNoData = ref([])
+        watch(() => props.lineNum, (newVal) => {
+            line.value = newVal
+            clicklineNOData.value = newVal
+        })
+        watch(() => props.scdIds, (newVal) => {
+            needScdId.value = newVal
+        })
+        // 初始化函数
+        function reload() {
+            dialogDisabled.value = props.lineSearch
+            needScdId.value = props.scdIds
+            line.value = props.lineNum
+            clicklineNOData.value = props.lineNum
+            scdLineSourcexml({
+                scd_id: needScdId.value - 0,
+                line_no: line.value - 0
+            }).then(res => {
+                if (res.data != null) {
+                    lineNoData.value = res.data
+                }
+            })
+        }
+        function needClose() {
+            dialogDisabled.value = false
+            emit("lineClose", dialogDisabled.value)
+        }
+        function needSure() {
+            dialogDisabled.value = false
+            emit("lineClose", dialogDisabled.value)
+        }
+        onMounted(() => {
+            reload()
+        })
+        return {
+            reload,//初始化函数
+            dialogDisabled,//模态框状态
+            needScdId,//本组件scdid
+            line,//行号
+            closeModal: needClose,//关闭模态框
+            closes: needClose,
+            clicklineNOData,
+            lineNoData,
+        }
+    }
+}
+</script>
+
+<style scoped>
+.click-line {
+    background: #4d4d86;
+    color: #fff;
+    margin-right: 20px;
+}
+</style>

+ 81 - 136
src/pages/netStructPicture/newTitle/SlcCheck.vue

@@ -13,67 +13,27 @@
           <img :src="HardDrives" alt="" />
           <span>基本语法校验结果</span>
         </div>
-        <el-tree
-          class="trees"
-          :data="treeData"
-          :props="defaultProps"
-          @node-click="handleNodeClick"
-          icon="ico"
-          node-key="pid"
-          :expand-on-click-node="false"
-          :default-expanded-keys="[0]"
-          highlight-current
-        >
+        <el-tree class="trees" :data="treeData" :props="defaultProps" @node-click="handleNodeClick" icon="ico"
+          node-key="pid" :expand-on-click-node="false" :default-expanded-keys="[0]" highlight-current>
           <template #default="{ node, data }">
             <span class="custom-trees">
-              <span
-                class="custom-tree-node"
-                v-if="
-                  data.datatype == 'SCLSyntax' ||
-                  data.datatype == 'Communication' ||
-                  data.datatype == 'DataTypeTemplates' ||
-                  !data.datatype
-                "
-                ><img :src="FileCodeOne" alt="" />
-                <span class="label">{{ node.label }}</span></span
-              >
-              <span
-                class="custom-tree-node"
-                v-else-if="data.datatype || data.pid == 0"
-              >
-                <img
-                  :src="node.expanded ? FolderOpentop : FolderNotchOne"
-                  alt=""
-                />
-                <span class="label">{{ node.label }}</span></span
-              >
-              <img
-                class="alert-level"
-                :src="dangerError"
-                alt=""
-                v-if="data.alert_level == 'error'"
-              />
-              <img
-                class="alert-level"
-                :src="dangerWarning"
-                alt=""
-                v-else-if="data.alert_level == 'waring'"
-              />
-              <img
-                class="alert-level"
-                :src="dangerTip"
-                alt=""
-                v-else-if="data.alert_level == 'hint'"
-              />
+              <span class="custom-tree-node" v-if="data.datatype == 'SCLSyntax' ||
+                data.datatype == 'Communication' ||
+                data.datatype == 'DataTypeTemplates' ||
+                !data.datatype
+                "><img :src="FileCodeOne" alt="" />
+                <span class="label">{{ node.label }}</span></span>
+              <span class="custom-tree-node" v-else-if="data.datatype || data.pid == 0">
+                <img :src="node.expanded ? FolderOpentop : FolderNotchOne" alt="" />
+                <span class="label">{{ node.label }}</span></span>
+              <img class="alert-level" :src="dangerError" alt="" v-if="data.alert_level == 'error'" />
+              <img class="alert-level" :src="dangerWarning" alt="" v-else-if="data.alert_level == 'waring'" />
+              <img class="alert-level" :src="dangerTip" alt="" v-else-if="data.alert_level == 'hint'" />
             </span>
           </template>
         </el-tree>
       </div>
-      <div
-        class="tableBox"
-        v-loading="tableLoading"
-        element-loading-text="正在查询校验信息中"
-      >
+      <div class="tableBox" v-loading="tableLoading" element-loading-text="正在查询校验信息中">
         <div class="allMis">
           <div class="result">
             <div @click="excelPort" class="anniu">
@@ -86,39 +46,25 @@
             </div>
           </div>
           <div class="statistics">
-            <span @click="clickStatistics"
-              >全部:{{ errorNum + warningNum + hintNum }}</span
-            >
-            <span @click="clickStatistics('error')"
-              >错误:<em style="color: #e82c2d">{{
-                errorNum ? errorNum : 0
-              }}</em></span
-            >
-            <span @click="clickStatistics('waring')"
-              >告警:<em style="color: #ff7808">{{
-                warningNum ? warningNum : 0
-              }}</em></span
-            >
-            <span @click="clickStatistics('hint')"
-              >提示:<em style="color: #3064e8">{{
-                hintNum ? hintNum : 0
-              }}</em></span
-            >
+            <span @click="clickStatistics">全部:{{ errorNum + warningNum + hintNum }}</span>
+            <span @click="clickStatistics('error')">错误:<em style="color: #e82c2d">{{
+              errorNum ? errorNum : 0
+            }}</em></span>
+            <span @click="clickStatistics('waring')">告警:<em style="color: #ff7808">{{
+              warningNum ? warningNum : 0
+            }}</em></span>
+            <span @click="clickStatistics('hint')">提示:<em style="color: #3064e8">{{
+              hintNum ? hintNum : 0
+            }}</em></span>
           </div>
         </div>
         <div class="table-data" v-if="tableData">
-          <el-table
-            :data="tableData.data"
-            style="width: 100%"
-            stripe
-            height="90%"
-            :cell-style="{ color: '#1A2447', border: 'none', height: '69px' }"
-            :header-cell-style="{
+          <el-table :data="tableData.data" style="width: 100%" stripe height="90%"
+            :cell-style="{ color: '#1A2447', border: 'none', height: '69px' }" :header-cell-style="{
               color: '#7484AB',
               background: '#F7F8FB',
               borderBottom: '1px solid #A3ADE0',
-            }"
-          >
+            }">
             <el-table-column prop="ied_name" label="装置名称" width="80">
               <template #default="scope">
                 <span v-if="scope.row.ied_name">{{ scope.row.ied_name }}</span>
@@ -128,45 +74,26 @@
             <el-table-column prop="ied_desc" label="装置描述" width="200" />
             <el-table-column prop="alert_level" label="等级" width="100">
               <template #default="scope">
-                <span v-if="scope.row.alert_level === 'waring'" class="waring"
-                  >警告</span
-                >
-                <span
-                  v-else-if="scope.row.alert_level === 'error'"
-                  class="error"
-                  >错误</span
-                >
-                <span v-else-if="scope.row.alert_level === 'hint'" class="hint"
-                  >提示</span
-                >
+                <span v-if="scope.row.alert_level === 'waring'" class="waring">警告</span>
+                <span v-else-if="scope.row.alert_level === 'error'" class="error">错误</span>
+                <span v-else-if="scope.row.alert_level === 'hint'" class="hint">提示</span>
               </template>
             </el-table-column>
             <el-table-column prop="line_no" label="行号" width="100">
               <template #default="scope">
-                <span
-                  style="
+                <span style="
                     color: #255ce7;
                     cursor: pointer;
                     border-bottom: 1px solid #255ce7;
-                  "
-                  @click="lineNoClick(scope.row)"
-                  >{{ scope.row.line_no }}</span
-                >
+                  " @click="lineNoClick(scope.row)">{{ scope.row.line_no }}</span>
               </template>
             </el-table-column>
             <el-table-column prop="parse_result" label="描述" />
-            <el-table-column
-              prop="apply_standard"
-              label="标准及条款"
-              width="250"
-            >
+            <el-table-column prop="apply_standard" label="标准及条款" width="250">
               <template #default="scope">
                 <span>{{ getBeforeComma(scope.row.apply_standard) }}</span>
-                <span
-                  v-if="!getAfterComma(scope.row.apply_standard)"
-                  style="margin-left: 10px"
-                  >{{ scope.row.apply_standard_no }}</span
-                >
+                <span v-if="!getAfterComma(scope.row.apply_standard)" style="margin-left: 10px">{{
+                  scope.row.apply_standard_no }}</span>
                 <div v-else>
                   {{ getAfterComma(scope.row.apply_standard) }}
                   <span>{{ scope.row.apply_standard_no }}</span>
@@ -176,27 +103,15 @@
           </el-table>
           <div class="page">
             <span>共{{ tableData.count }}项数据</span>
-            <el-pagination
-              :current-page="pageindex"
-              v-model:page-size="pagesize"
-              :page-sizes="[10, 20, 50, 100]"
-              layout="sizes,prev, pager, next, jumper"
-              :total="tableData.count"
-              background
-              @current-change="handleCurrentChange"
-            />
+            <el-pagination :current-page="pageindex" v-model:page-size="pagesize" :page-sizes="[10, 20, 50, 100]"
+              layout="sizes,prev, pager, next, jumper" :total="tableData.count" background
+              @current-change="handleCurrentChange" />
           </div>
         </div>
       </div>
     </div>
     <!-- 导出所有结果 -->
-    <el-dialog
-      v-model="exportModal"
-      width="25vw"
-      style="height: 200px"
-      append-to-body
-      draggable
-    >
+    <el-dialog v-model="exportModal" width="25vw" style="height: 200px" append-to-body draggable>
       <template #header>
         <div class="my-header">
           <div class="title">数据导出</div>
@@ -205,9 +120,7 @@
       <div v-if="!exportLink" class="export-ink">正在导出数据中...</div>
       <div v-else class="export-ink">
         数据文件已生成完成,
-        <el-link :href="exportLink" type="primary" class="load"
-          >点击立即下载</el-link
-        >
+        <el-link :href="exportLink" type="primary" class="load">点击立即下载</el-link>
       </div>
     </el-dialog>
     <!-- 点击行号 -->
@@ -221,11 +134,8 @@
       <el-scrollbar height="500px">
         <div class="main-cont-line">
           <div class="main-line">
-            <div
-              v-for="(item, index) in lineNoData"
-              :key="index"
-              :class="{ 'click-line': item.split(' <')[0] == clicklineNOData }"
-            >
+            <div v-for="(item, index) in lineNoData" :key="index"
+              :class="{ 'click-line': item.split(' <')[0] == clicklineNOData }">
               {{ item }}
             </div>
           </div>
@@ -475,6 +385,7 @@ onMounted(() => {
 em {
   font-style: normal;
 }
+
 .bigBox {
   width: 97%;
   height: calc(100vh - 200px);
@@ -501,10 +412,12 @@ em {
   justify-content: space-around;
   align-items: center;
   margin-top: 16px;
+
   .trees {
     margin: 16px;
   }
 }
+
 .treeBox {
   width: 16%;
   height: 100%;
@@ -524,25 +437,30 @@ em {
   background: #f7f8fb;
   border-radius: 3px;
 }
+
 .allMis {
   display: flex;
   justify-content: space-between;
   align-items: center;
   margin: 16px;
+
   .statistics,
   .result {
     cursor: pointer;
     display: flex;
     font-size: 16px;
-    & > span {
+
+    &>span {
       margin-right: 16px;
     }
   }
 }
+
 .table-data {
   height: 85%;
   margin-left: 16px;
 }
+
 .anniu {
   height: 54px;
   width: 124px;
@@ -556,22 +474,27 @@ em {
   border-radius: 2px;
   font-size: 14px;
   color: #255ce7;
+
   img {
     width: 20px;
     height: 20px;
     margin: 0 4px 0 0;
   }
 }
+
 .current-anniu {
   width: 153px;
   background-size: 153px 49px;
 }
+
 :deep(.el-tree) {
   --el-fill-color-blank: #f7f8fb;
 }
+
 :deep(.el-table__inner-wrapper) {
   height: 100% !important;
 }
+
 .waring,
 .error,
 .hint {
@@ -583,34 +506,41 @@ em {
   line-height: 20px;
   font-size: 13px;
 }
+
 .waring {
   color: #ff7c03;
   background: #fff6d9;
 }
+
 .error {
   color: #e50505;
   background: #f8d3d6;
 }
+
 .hint {
   color: #255ce7;
   background: #d8e1f9;
 }
+
 .closeX {
   font-size: 24px;
   color: #7484ab;
   cursor: pointer;
 }
+
 .custom-tree-node {
-  & > img:first-child {
+  &>img:first-child {
     width: 18px;
     height: 18px;
     vertical-align: middle;
     margin-right: 3px;
   }
+
   .label {
     vertical-align: middle;
   }
 }
+
 // ::v-deep(.tree) {
 //   & > .el-tree-node:after {
 //     border-top: none;
@@ -703,10 +633,12 @@ em {
   margin-top: 10px;
   color: #1a2447;
   font-size: 14px;
+
   :deep(.el-pagination.is-background .el-pager li.is-active) {
     --el-color-primary: #a3ade0;
   }
 }
+
 //自定义节点图标
 .custom-trees {
   display: flex;
@@ -714,6 +646,7 @@ em {
   justify-content: space-between;
   align-items: center;
 }
+
 .el-tree .el-tree-node__expand-icon.expanded {
   -webkit-transform: rotate(90deg);
   transform: rotate(90deg);
@@ -739,14 +672,17 @@ em {
   background-size: 18px;
   transform: rotate(90deg);
 }
+
 .el-tree-node__expand-icon.is-leaf {
   display: none;
 }
+
 .alert-level {
   width: 16px;
   height: 16px;
   background-size: 16px;
 }
+
 .custom-tree-node {
   .label {
     color: "#1A2447";
@@ -764,21 +700,26 @@ em {
     padding-bottom: 15px;
   }
 }
+
 .export-ink {
   display: flex;
   text-align: center;
   justify-content: center;
+
   .load {
     margin-left: 10px;
     border-bottom: 1px solid #409eff;
   }
 }
+
 .main-line {
   margin-top: -20px;
-  & > div:first-child {
+
+  &>div:first-child {
     padding-top: 40px;
   }
 }
+
 .line-title {
   text-align: center;
   color: #e50505;
@@ -786,21 +727,25 @@ em {
   margin-top: -20px;
   padding-bottom: 10px;
 }
+
 .click-line {
   background: #4d4d86;
   color: #fff;
   margin-right: 20px;
 }
+
 .tree-title {
   display: flex;
   align-items: center;
   margin: 16px;
   margin-bottom: 0;
+
   img {
     width: 20px;
     height: 20px;
     margin-right: 10px;
   }
+
   span {
     vertical-align: middle;
   }

+ 30 - 9
src/pages/report/components/ReportDetails.vue

@@ -7,9 +7,10 @@
             <div class="createReport">
                 <img v-if="btnType" src="../../../assets/image/board_file.png" alt="">
                 <img v-else src="../../../assets/image/allright.png" alt="">
-                <p style="font-size: 14px;font-weight: 400;">{{ btnType?'还未生成报告':"报告已生成" }}</p>
+                <p style="font-size: 14px;font-weight: 400;">{{ btnType ? '还未生成报告' : "报告已生成" }}</p>
                 <el-button :type="btnType ? 'primary' : 'info'" plain @click="nowGet" :disabled="!btnType">立即生成</el-button>
-                <el-button :type="btnType ? 'info' : 'primary'" plain :disabled="btnType" @click="downReport">下载报告</el-button>
+                <el-button :type="btnType ? 'info' : 'primary'" plain :disabled="btnType"
+                    @click="downReport">下载报告</el-button>
             </div>
         </div>
         <div class="bottomBox" v-loading="loading">
@@ -72,7 +73,7 @@
                             </el-table-column>
                             <el-table-column label="行号" width="120">
                                 <template #default="scope">
-                                    <span style="color: blue;border-bottom: 1px solid blue;cursor: pointer;">{{
+                                    <span style="color: blue;border-bottom: 1px solid blue;cursor: pointer;" @click="lineno(scope.row)">{{
                                         scope.row.line_no }}</span>
                                 </template>
                             </el-table-column>
@@ -84,11 +85,15 @@
                                 </template>
                             </el-table-column>
                         </el-table>
-                        <Pagination style="position: absolute;right: 10px;" :totals="totals" @pageBack="pageBack"></Pagination>
+                        <Pagination style="position: absolute;right: 10px;" :totals="totals" @pageBack="pageBack">
+                        </Pagination>
                     </div>
                 </div>
             </div>
         </div>
+        <div>
+            <LooKLine v-if="lineSearch" :lineSearch="lineSearch" :scdIds="scdIds" :lineNum="lineNum" @lineClose="lineClose"></LooKLine>
+        </div>
     </div>
 </template>
 
@@ -101,6 +106,7 @@ import systemRow from "@/api/systemRow"
 import Pagination from "./Pagination.vue"
 import { ElMessage } from "element-plus"
 import system from "@/api/system"
+import LooKLine from "../modal/LookLine.vue"
 export default {
     setup() {
         let route = useRoute()
@@ -117,9 +123,11 @@ export default {
         let btnType = ref(true)//生成报告按钮和下载报告按钮状态
         let fileId = ref("")//需要下载的报告id'
         let totals = ref(0)
+        let lineSearch = ref(false)
+        let lineNum = ref(0)//行号
         // 初始化组件
         function reload() {
-            console.log(route, 'route')
+            scdIds.value = route.query.scdId
             stationNames.value = route.query.stationName
             relathing.value = route.query.names
             reportId.value = route.query.reportId
@@ -208,13 +216,18 @@ export default {
             })
         }
         // 导出结果至excel
-        function excelPort(){
+        function excelPort() {
             systemRow.portExcel({
-                code:"scl-check-result",
-            }).then(res=>{
-                console.log(res,'导出');
+                code: "scl-check-result",
+            }).then(res => {
+                console.log(res, '导出');
             })
         }
+        //查看行位置
+        function lineno(row){
+            lineNum.value = row.line_no
+            lineSearch.value = true
+        }
         // 分页组件返回
         function pageBack(size, index) {
             loading.value = true
@@ -233,6 +246,9 @@ export default {
                 }
             })
         }
+        function lineClose(data){
+            lineSearch.value = data
+        }
         onMounted(() => {
             reload()
         })
@@ -256,10 +272,15 @@ export default {
             fileId,//下载的报告id
             downReport,//下载报告
             excelPort,
+            lineSearch,//查看行号
+            lineno,//查看行位置
+            lineNum,//行号
+            lineClose,//lookline.vue返回模态框状态
         }
     },
     components: {
         Pagination,
+        LooKLine,
     }
 }
 </script>

+ 106 - 0
src/pages/report/modal/LookLine.vue

@@ -0,0 +1,106 @@
+<template>
+    <div>
+        <el-dialog v-model="dialogDisabled" width="50vw" append-to-body draggable @close="closes">
+            <template #header>
+                <div class="my-header">
+                    <div class="title">SCD源XML查看</div>
+                </div>
+            </template>
+            <div class="line-title">{{ lineNoTitle }}</div>
+            <el-scrollbar height="500px">
+                <div class="main-cont-line">
+                    <div class="main-line">
+                        <div v-for="(item, index) in lineNoData" :key="index"
+                            :class="{ 'click-line': item.split(' <')[0] == clicklineNOData }">
+                            {{ item }}
+                        </div>
+                    </div>
+                </div>
+            </el-scrollbar>
+            <template #footer>
+                <span class="dialog-footer">
+                    <el-button type="primary" @click="closeModal">确定</el-button>
+                </span>
+            </template>
+        </el-dialog>
+    </div>
+</template>
+
+<script>
+import { ref, onActivate, onMounted, watch } from 'vue';
+import { scdLineSourcexml } from '@/api/scdCheck/scdCheck2'
+export default {
+    props: {
+        lineSearch: {
+            type: Boolean,
+            required: true
+        },
+        scdIds: {
+            type: String,
+            required: true
+        },
+        lineNum: {
+            type: String,
+            required: true
+        }
+    },
+    setup(props, { emit }) {
+        let dialogDisabled = ref(false)
+        let needScdId = ref("")//本组件scdid
+        let line = ref(0)//行号
+        let clicklineNOData = ref("")
+        let lineNoData = ref([])
+        watch(() => props.lineNum, (newVal) => {
+            line.value = newVal
+            clicklineNOData.value = newVal
+        })
+        watch(() => props.scdIds, (newVal) => {
+            needScdId.value = newVal
+        })
+        // 初始化函数
+        function reload() {
+            dialogDisabled.value = props.lineSearch
+            needScdId.value = props.scdIds
+            line.value = props.lineNum
+            clicklineNOData.value = props.lineNum
+            scdLineSourcexml({
+                scd_id: needScdId.value - 0,
+                line_no: line.value - 0
+            }).then(res => {
+                if (res.data != null) {
+                    lineNoData.value = res.data
+                }
+            })
+        }
+        function needClose() {
+            dialogDisabled.value = false
+            emit("lineClose", dialogDisabled.value)
+        }
+        function needSure() {
+            dialogDisabled.value = false
+            emit("lineClose", dialogDisabled.value)
+        }
+        onMounted(() => {
+            reload()
+        })
+        return {
+            reload,//初始化函数
+            dialogDisabled,//模态框状态
+            needScdId,//本组件scdid
+            line,//行号
+            closeModal: needClose,//关闭模态框
+            closes: needClose,
+            clicklineNOData,
+            lineNoData,
+        }
+    }
+}
+</script>
+
+<style scoped>
+.click-line {
+    background: #4d4d86;
+    color: #fff;
+    margin-right: 20px;
+}
+</style>