scdMap.vue 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273
  1. <template>
  2. <div>
  3. <div class="fileBox">
  4. <div>
  5. <span style="border-right: 1px solid black;padding-right: 200px;">基准文件:{{ chicken }}</span>
  6. </div>
  7. <div>
  8. <span>对比文件:{{ kun }}</span>
  9. </div>
  10. </div>
  11. <!-- <div class="mapBox" v-if="lookType == 0"> -->
  12. <!-- <div class="scdBox">
  13. <div>
  14. <img src="../../../assets/image/squer_scd.png" alt="">
  15. <p>SCD版本</p>
  16. </div>
  17. <div>
  18. <div id="oldScd">
  19. <img src="../../../assets/icon/cilce_gray.png" alt="">
  20. <span>V1.1.0</span>
  21. </div>
  22. <div id="newScd">
  23. <img src="../../../assets/icon/clice_blue.png" alt="">
  24. <span>V1.1.1</span>
  25. </div>
  26. </div>
  27. </div>
  28. <div class="crcBox">
  29. <div>
  30. <img src="../../../assets/image/squer_crc.png" alt="">
  31. <p>CRC</p>
  32. </div>
  33. <div>
  34. <div id="oldCrc">
  35. <img src="../../../assets/icon/cilce_gray.png" alt="">
  36. <span>1000000111100000</span>
  37. </div>
  38. <div id="newCrc">
  39. <img src="../../../assets/icon/clice_blue.png" alt="">
  40. <span>1000000111100022</span>
  41. </div>
  42. </div>
  43. </div>
  44. <div class="iedBox">
  45. <div id="oldIed">
  46. <img src="../../../assets/image/squer_ied.png" alt="">
  47. <p>IED</p>
  48. </div>
  49. <div id="newIed">
  50. <p id="addId" @click="lookAdd">
  51. <el-icon style="color: #1D48E8;font-size: 18px;display: block;">
  52. <CirclePlus />
  53. </el-icon>
  54. <span style="display: block;color: #1D48E8;">新增(5)</span>
  55. </p>
  56. <p id="editId" @click="lookEdit">
  57. <el-icon style="color: #FECC2A;font-size: 18px;display: block;">
  58. <EditPen />
  59. </el-icon>
  60. <span style="display: block;color: #FECC2A;">修改(10)</span>
  61. </p>
  62. <p id="delId" @click="lookDel">
  63. <el-icon style="color: red;font-size: 18px;display: block;">
  64. <Delete />
  65. </el-icon>
  66. <span style="display: block;color: red;">删除(2)</span>
  67. </p>
  68. </div>
  69. </div> -->
  70. <!-- </div> -->
  71. <ScdNow v-if="lookType == 0" @nowBack="nowBack" :arrNew="arrNew"></ScdNow>
  72. <ScdAdd v-if="lookType == 1" :arrNew="arrNew"></ScdAdd>
  73. <ScdDel v-if="lookType == 3" :arrNew="arrNew"></ScdDel>
  74. <ScdEdit v-if="lookType == 2" :arrNew="arrNew"></ScdEdit>
  75. </div>
  76. </template>
  77. <script>
  78. import { ref, onMounted, toRefs, watch, onBeforeUnmount } from 'vue';
  79. import LeaderLine from '../../../../public/leader-line.min.js';
  80. import scdCheck from '@/api/scdCheck/scdCheck'
  81. import image from "../utils/image"
  82. import ScdAdd from './ScdAdd.vue';
  83. import ScdDel from './ScdDel.vue';
  84. import ScdEdit from './ScdEdit.vue';
  85. import ScdNow from './ScdNow.vue';
  86. import { ElLoading } from 'element-plus';
  87. export default {
  88. props: {
  89. antherBack: {
  90. type: Array,
  91. required: true
  92. },
  93. activeNav: {
  94. type: Number,
  95. required: true
  96. }
  97. },
  98. setup(props, { emit }) {
  99. let arrNew = ref([])
  100. let chicken = ref('')
  101. let kun = ref('')
  102. let lineList = []//线条显示
  103. let lookType = ref(0)//0为查看整体,1为新增,2为修改,3为删除
  104. watch(() => props.antherBack, (newVal) => {
  105. arrNew.value = newVal//监听传递数据变化
  106. if (!arrNew.value || !newVal) {
  107. return
  108. } else {
  109. if (arrNew.value.length == 1) {
  110. chicken.value = arrNew.value[0].scd_name
  111. }
  112. if (arrNew.value.length == 2) {
  113. chicken.value = arrNew.value[0].scd_name
  114. kun.value = arrNew.value[1].scd_name
  115. }
  116. }
  117. })
  118. function lastList() {//初始化数据
  119. lookType.value = 0
  120. arrNew.value = props.antherBack
  121. if (!arrNew.value || !props.antherBack) {
  122. if (arrNew.value.length == 1) {
  123. chicken.value = arrNew.value[0].scd_name
  124. }
  125. if (arrNew.value.length == 2) {
  126. chicken.value = arrNew.value[0].scd_name
  127. kun.value = arrNew.value[1].scd_name
  128. }
  129. }
  130. }
  131. function nowBack(data) {
  132. lookType.value = data
  133. }
  134. const openFullScreen2 = () => {
  135. const loading = ElLoading.service({
  136. lock: true,
  137. text: '正在加载',
  138. background: 'rgba(0, 0, 0, 0.7)',
  139. })
  140. setTimeout(() => {
  141. loading.close()
  142. }, 2000)
  143. }
  144. onMounted(() => {
  145. lastList()
  146. openFullScreen2()
  147. })
  148. onBeforeUnmount(() => {
  149. lookType.value = 0
  150. lineList.forEach(line => line.remove());//清除连线
  151. })
  152. return {
  153. chicken,//基准文件
  154. kun,//对比文件
  155. arrNew,//传递数组
  156. lastList,//初始化数据
  157. lineList,//线条显示
  158. lookType,//0为查看整体,1为新增,2为修改,3为删除
  159. nowBack,
  160. openFullScreen2,//加载
  161. }
  162. },
  163. components: {
  164. ScdAdd,
  165. ScdDel,
  166. ScdEdit,
  167. ScdNow
  168. }
  169. }
  170. </script>
  171. <style>
  172. p {
  173. margin: 0;
  174. padding: 0;
  175. }
  176. .fileBox {
  177. width: 90%;
  178. height: calc(100vh - 900px);
  179. background-color: white;
  180. margin: 10px auto;
  181. display: flex;
  182. justify-content: space-around;
  183. align-items: center;
  184. }
  185. .mapBox {
  186. width: 90%;
  187. height: calc(100vh - 350px);
  188. margin: 0 auto;
  189. display: flex;
  190. justify-content: space-around;
  191. align-items: flex-start;
  192. }
  193. .scdBox {
  194. width: 33%;
  195. height: auto;
  196. text-align: center;
  197. /* border: 1px solid red; */
  198. }
  199. .crcBox {
  200. width: 33%;
  201. height: auto;
  202. text-align: center;
  203. /* border: 1px solid red; */
  204. }
  205. .iedBox {
  206. width: 33%;
  207. height: auto;
  208. text-align: center;
  209. /* border: 1px solid red; */
  210. position: relative;
  211. }
  212. #newIed {
  213. position: absolute;
  214. top: 100px;
  215. right: 0px;
  216. }
  217. #oldScd {
  218. margin-bottom: 40px;
  219. }
  220. #oldCrc {
  221. margin-bottom: 40px;
  222. }
  223. #addId {
  224. display: flex;
  225. justify-content: center;
  226. align-items: center;
  227. width: 112px;
  228. height: 40px;
  229. border: 1px dashed #1D48E8;
  230. background-color: rgb(239, 243, 255);
  231. border-radius: 5px;
  232. margin-bottom: 20px;
  233. cursor: pointer;
  234. }
  235. #editId {
  236. display: flex;
  237. justify-content: center;
  238. align-items: center;
  239. width: 112px;
  240. height: 40px;
  241. border: 1px dashed #FECC2A;
  242. background-color: rgb(255, 251, 242);
  243. border-radius: 5px;
  244. margin-bottom: 20px;
  245. cursor: pointer;
  246. }
  247. #delId {
  248. display: flex;
  249. justify-content: center;
  250. align-items: center;
  251. width: 112px;
  252. height: 40px;
  253. border: 1px dashed red;
  254. background-color: rgb(255, 236, 236);
  255. border-radius: 5px;
  256. margin-bottom: 20px;
  257. cursor: pointer;
  258. }
  259. </style>