select.vue 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350
  1. <template>
  2. <div style="margin: 0px 15px">
  3. <el-dialog
  4. class="recorddetail-select"
  5. style="font-weight: 600"
  6. v-model="dialogVisible"
  7. title="测试"
  8. width="900px"
  9. @close="close"
  10. center
  11. >
  12. <div class="recorddetail-span">
  13. <span>(第1次)</span>
  14. 巡检开始:2021-10-20 18:00
  15. <span style="color: red">(巡检中)</span>
  16. </div>
  17. <div class="recorddetail-top">
  18. <div class="recorddetail-flex">
  19. <div>
  20. <i class="recorddetail-icon recorddetail-stationIcon"></i>
  21. <div>
  22. <span>1</span>
  23. <span>站点数</span>
  24. </div>
  25. </div>
  26. <div>
  27. <i class="recorddetail-icon recorddetail-itemIcon"></i>
  28. <div>
  29. <span>3</span>
  30. <span>巡检设备数</span>
  31. </div>
  32. </div>
  33. <div>
  34. <i class="recorddetail-icon recorddetail-exceptionIcon"></i>
  35. <div>
  36. <span>0</span>
  37. <span>异常设备</span>
  38. </div>
  39. </div>
  40. <div>
  41. <i class="recorddetail-icon recorddetail-dtsIcon"></i>
  42. <div>
  43. <span>0</span>
  44. <span>缺陷</span>
  45. </div>
  46. </div>
  47. </div>
  48. </div>
  49. <div class="recorddetail-body">
  50. <div class="recorddetail-infoGroup">
  51. <div>
  52. <span>计划计划编号:</span>
  53. <span>RIP23_211018001</span>
  54. </div>
  55. <div>
  56. <span>巡检公司:</span>
  57. <span>伍继智能</span>
  58. </div>
  59. <div>
  60. <span>负责人:</span>
  61. <span>蒋跃宗</span>
  62. </div>
  63. <div>
  64. <span>巡检班组:</span>
  65. <span>嘉定组</span>
  66. </div>
  67. <div>
  68. <span>巡检人员:</span>
  69. <span></span>
  70. </div>
  71. </div>
  72. <div class="recorddetail-separatorTitle">巡检结果</div>
  73. <div class="recorddetail-resultWrapper">
  74. <div class="recorddetail-result">
  75. <div class="recorddetail-stationName">
  76. <div>测试站点</div>
  77. <div class="divIcon">
  78. <span role="img" aria-label="star" class="anticon anticon-star">
  79. <svg-icon iconClass="stationName"></svg-icon>
  80. </span>
  81. 巡检中
  82. </div>
  83. </div>
  84. <div class="recorddetail-items">
  85. <div>
  86. <span>3</span>
  87. <span>巡检设备数</span>
  88. </div>
  89. <div>
  90. <span class="">0</span>
  91. <span>异常设备</span>
  92. </div>
  93. <div>
  94. <span class="">0</span>
  95. <span>缺陷</span>
  96. </div>
  97. <div>
  98. <div class="recorddetail-detailBtn">
  99. <a @click="iconContent">
  100. {{ iconTitle }}
  101. <span
  102. role="img"
  103. aria-label="caret-up"
  104. class="anticon anticon-caret-up"
  105. >
  106. <svg-icon
  107. iconClass="detailBtn1"
  108. v-if="!iconBool"
  109. ></svg-icon>
  110. <svg-icon
  111. iconClass="detailBtn2"
  112. v-if="iconBool"
  113. ></svg-icon>
  114. </span>
  115. </a>
  116. </div>
  117. </div>
  118. </div>
  119. </div>
  120. <div style="margin-top: 12px" v-if="!iconBool">
  121. <div style="margin: 8px 0px">
  122. <strong>巡检设备:测试2</strong>
  123. <span class="antd-pro-pages-inspect-recorddetail-headerItem">
  124. 设备状态:
  125. <span>待巡检</span>
  126. </span>
  127. <div style="float: right">
  128. <span class="antd-pro-pages-inspect-recorddetail-headerItem">
  129. 检查项数:1
  130. </span>
  131. <span class="antd-pro-pages-inspect-recorddetail-headerItem">
  132. 异常项:0
  133. </span>
  134. </div>
  135. </div>
  136. <div style="padding-left: 16px"></div>
  137. </div>
  138. </div>
  139. </div>
  140. <template #footer>
  141. <span class="dialog-footer">
  142. <el-button @click="close">取消</el-button>
  143. <el-button type="primary" @click="dialogVisible = false">
  144. 确定
  145. </el-button>
  146. </span>
  147. </template>
  148. </el-dialog>
  149. </div>
  150. </template>
  151. <script>
  152. import { defineComponent, ref, watchEffect } from 'vue'
  153. import { ElMessageBox } from 'element-plus'
  154. export default defineComponent({
  155. name: 'patolPlan',
  156. components: {},
  157. props: {
  158. flag: Boolean,
  159. },
  160. setup(props, context) {
  161. ref
  162. const dialogVisible = ref(false)
  163. const handleClose = (done) => {
  164. ElMessageBox.confirm('Are you sure to close this dialog?')
  165. .then(() => {
  166. done()
  167. })
  168. .catch(() => {
  169. // catch error
  170. })
  171. }
  172. const close = () => {
  173. context.emit('dialog', false)
  174. dialogVisible.value = false
  175. }
  176. const iconCont = ref(1)
  177. const iconBool = ref(false)
  178. const iconTitle = ref('隐藏详情')
  179. const iconContent = () => {
  180. if (iconCont.value == 1) {
  181. iconBool.value = true
  182. iconTitle.value = '显示详情'
  183. iconCont.value = 2
  184. } else {
  185. iconBool.value = false
  186. iconTitle.value = '隐藏详情'
  187. iconCont.value = 1
  188. }
  189. console.log('')
  190. }
  191. watchEffect((fn, options) => {
  192. fn, options
  193. dialogVisible.value = props.flag
  194. })
  195. return {
  196. close,
  197. iconBool,
  198. iconCont,
  199. iconTitle,
  200. iconContent,
  201. dialogVisible,
  202. handleClose,
  203. }
  204. },
  205. })
  206. </script>
  207. <style lang="scss" scoped>
  208. .recorddetail-span {
  209. margin-top: -25px;
  210. text-align: center;
  211. }
  212. .recorddetail-top {
  213. background: url('~@/assets/images/record-bg2.png') 50% no-repeat;
  214. background-size: cover;
  215. margin: 0px -25px;
  216. .recorddetail-flex {
  217. height: 100px;
  218. width: 100%;
  219. display: flex;
  220. justify-content: center;
  221. align-items: center;
  222. padding: 0 50px;
  223. > div {
  224. display: flex;
  225. flex: 1 1;
  226. justify-content: center;
  227. > div {
  228. text-align: center;
  229. margin-left: 20px;
  230. span {
  231. color: #fff;
  232. }
  233. span:first-child {
  234. font-size: 23px;
  235. display: block;
  236. }
  237. span:last-child {
  238. font-size: 13px;
  239. display: block;
  240. }
  241. }
  242. }
  243. .recorddetail-icon {
  244. width: 50px;
  245. height: 50px;
  246. display: block;
  247. margin-top: 5px;
  248. }
  249. .recorddetail-stationIcon {
  250. background: url('~@/assets/images/record-station.png') 50% no-repeat;
  251. background-size: cover;
  252. }
  253. .recorddetail-itemIcon {
  254. background: url('~@/assets/images/record-item.png') 50% no-repeat;
  255. background-size: cover;
  256. }
  257. .recorddetail-exceptionIcon {
  258. background: url('~@/assets/images/record-exception.png') 50% no-repeat;
  259. background-size: cover;
  260. }
  261. .recorddetail-dtsIcon {
  262. background: url('~@/assets/images/record-dts.png') 50% no-repeat;
  263. background-size: cover;
  264. }
  265. }
  266. }
  267. .recorddetail-body {
  268. margin-top: 20px;
  269. .recorddetail-infoGroup {
  270. > div {
  271. background-color: #f7f8fa;
  272. margin-bottom: 8px;
  273. color: #666;
  274. padding: 8px 12px;
  275. font-weight: 500;
  276. span:first-child {
  277. color: #000;
  278. display: inline-block;
  279. margin-right: 12px;
  280. }
  281. span:last-child {
  282. color: #000;
  283. font-weight: 600;
  284. }
  285. }
  286. }
  287. .recorddetail-separatorTitle {
  288. width: 100%;
  289. color: #22a97e;
  290. font-size: 20px;
  291. font-weight: 700;
  292. margin: 12px 0;
  293. text-align: center;
  294. }
  295. .recorddetail-resultWrapper {
  296. .recorddetail-result {
  297. background-color: #e9ebf4;
  298. border-radius: 4px;
  299. height: 81px;
  300. display: flex;
  301. position: relative;
  302. .recorddetail-stationName {
  303. display: inline-block;
  304. height: 100%;
  305. width: 200px;
  306. background-color: #d5d6e3;
  307. padding: 12px;
  308. text-align: center;
  309. color: rgba(0, 0, 0, 0.65);
  310. .divIcon {
  311. color: rgb(76, 142, 250);
  312. font-size: 15px;
  313. margin-top: 12px;
  314. }
  315. }
  316. .recorddetail-items {
  317. display: flex;
  318. justify-content: space-evenly;
  319. flex: 1 1;
  320. align-items: center;
  321. > div {
  322. text-align: center;
  323. > span:first-child {
  324. font-size: 19px;
  325. color: #333;
  326. display: block;
  327. margin-bottom: 4px;
  328. }
  329. > span:last-child {
  330. font-size: 15px;
  331. color: #a0a2bf;
  332. }
  333. }
  334. .recorddetail-detailBtn {
  335. font-size: 14px;
  336. color: #6c7fff;
  337. cursor: pointer;
  338. }
  339. }
  340. }
  341. }
  342. }
  343. </style>