facilityEnvConfig.vue 45 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426
  1. <template>
  2. <el-dialog
  3. :title="title"
  4. :visible.sync="dialogVisible"
  5. :close-on-click-modal="false"
  6. :close-on-press-escape="false"
  7. :show-close="false"
  8. append-to-body
  9. fullscreen
  10. class="dialog paper-detail-dialog"
  11. top="0"
  12. >
  13. <div slot="title" class="dialog-title">
  14. <span class="dialogtitle">{{ title }}</span>
  15. <div>
  16. <ibps-toolbar :actions="toolbars" @action-event="handleActionEvent" />
  17. </div>
  18. </div>
  19. <div class="container">
  20. <div class="main">
  21. <div class="form">
  22. <el-form
  23. ref="form"
  24. :model="form"
  25. label-width="74px"
  26. :rules="rules"
  27. :hide-required-asterisk="true"
  28. >
  29. <el-row>
  30. <el-col :span="12">
  31. <el-form-item label="类型:" prop="lei_xing_">
  32. <template slot="label">
  33. <span class="required">类型:</span>
  34. </template>
  35. <el-select
  36. v-model="form.lei_xing_"
  37. placeholder="请选择"
  38. size="mini"
  39. style="width: 80%"
  40. :disabled="isEdit"
  41. >
  42. <el-option
  43. v-for="(value, key) in config"
  44. :key="key"
  45. :label="value['label'] || key.split('-')[1]"
  46. :value="key"
  47. />
  48. </el-select>
  49. </el-form-item>
  50. </el-col>
  51. </el-row>
  52. </el-form>
  53. </div>
  54. <!-- <el-divider /> -->
  55. <div class="table">
  56. <el-alert type="success" title="配置详情" :closable="false" />
  57. <div class="hearder">
  58. <div class="search">
  59. <div class="search-item">
  60. <span class="label">部门:</span>
  61. <ibps-user-selector
  62. v-model="search.buMen"
  63. type="position"
  64. readonly-text="text"
  65. :disabled="false"
  66. :multiple="false"
  67. :filter="filter"
  68. filtrate
  69. size="mini"
  70. />
  71. </div>
  72. <div class="search-item">
  73. <span class="label">区域:</span>
  74. <el-input
  75. v-model="search.quYu"
  76. size="mini"
  77. placeholder="请输入"
  78. @keyup.enter.native="goSearch"
  79. />
  80. </div>
  81. <div class="search-item">
  82. <span class="label">房间:</span>
  83. <el-input
  84. v-model="search.fangJian"
  85. size="mini"
  86. placeholder="请输入"
  87. @keyup.enter.native="goSearch"
  88. />
  89. </div>
  90. <div class="search-item">
  91. <span class="label">监测周期:</span>
  92. <el-select
  93. v-model="search.zhouQi"
  94. placeholder="请选择"
  95. size="mini"
  96. :clearable="true"
  97. >
  98. <el-option
  99. v-for="item in [
  100. '每日',
  101. '每周',
  102. '每月',
  103. '每季度',
  104. '每半年',
  105. '每年',
  106. '按需'
  107. ]"
  108. :key="item"
  109. :label="item"
  110. :value="item"
  111. />
  112. </el-select>
  113. </div>
  114. <div class="search-item">
  115. <span class="label">监测岗位:</span>
  116. <el-select
  117. v-model="search.gangWei"
  118. placeholder="请选择"
  119. size="mini"
  120. :clearable="true"
  121. >
  122. <el-option
  123. v-for="item in jianCeGangWeiList"
  124. :key="item.positionId"
  125. :label="item.positionName"
  126. :value="item.positionName"
  127. />
  128. </el-select>
  129. </div>
  130. <div class="search-item" style="width: 70px">
  131. <el-button
  132. size="mini"
  133. type="primary"
  134. icon="el-icon-search"
  135. @click="goSearch"
  136. >查询</el-button
  137. >
  138. </div>
  139. <div class="search-item" style="width: 68px">
  140. <el-button
  141. type="success"
  142. size="mini"
  143. icon="ibps-icon-plus"
  144. @click="openDialog"
  145. >添加</el-button
  146. >
  147. </div>
  148. <div class="search-item" style="width: 100px">
  149. <el-button
  150. type="info"
  151. size="mini"
  152. icon="el-icon-setting"
  153. @click="settingData"
  154. >批量配置</el-button
  155. >
  156. </div>
  157. <div class="search-item" style="width: 70px">
  158. <el-button
  159. type="danger"
  160. size="mini"
  161. icon="ibps-icon-close"
  162. @click="removeItem"
  163. >删除</el-button
  164. >
  165. </div>
  166. </div>
  167. </div>
  168. <el-table
  169. :data="showPaperList"
  170. style="width: 100%"
  171. @selection-change="handleSelectionChange"
  172. >
  173. <el-table-column width="50" type="selection" />
  174. <el-table-column
  175. prop=""
  176. label="序号"
  177. width="50"
  178. type="index"
  179. :index="showIndex"
  180. />
  181. <el-table-column prop="bu_men_" label="部门" width="100">
  182. <template slot-scope="{ row }">
  183. <ibps-user-selector
  184. type="position"
  185. :value="row.bu_men_"
  186. readonly-text="text"
  187. :disabled="true"
  188. :multiple="true"
  189. />
  190. </template>
  191. </el-table-column>
  192. <el-table-column prop="qu_yu_" label="区域" />
  193. <el-table-column prop="fang_jian_" label="房间" />
  194. <el-table-column
  195. v-if="shouldShowColumn('deviceno1_')"
  196. prop="deviceno1_"
  197. label="被控设备编号"
  198. />
  199. <el-table-column
  200. v-if="shouldShowColumn('devicename1_')"
  201. prop="devicename1_"
  202. label="被控设备名称"
  203. />
  204. <el-table-column
  205. v-if="shouldShowColumn('deviceno3_')"
  206. prop="deviceno1_"
  207. label="被控试剂耗材编号"
  208. />
  209. <el-table-column
  210. v-if="shouldShowColumn('devicename3_')"
  211. prop="devicename1_"
  212. label="被控试剂耗材名称"
  213. />
  214. <el-table-column prop="deviceno2_" label="监控设备" />
  215. <el-table-column
  216. prop="jian_ce_zhou_qi_"
  217. label="监测周期"
  218. width="80"
  219. />
  220. <el-table-column
  221. prop="jian_ce_ri_qi_"
  222. label="监测日期"
  223. width="110"
  224. />
  225. <el-table-column prop="jian_ce_gang_wei_" label="监测岗位" />
  226. <el-table-column
  227. prop="shi_fou_qi_yong_"
  228. label="是否启用"
  229. width="80"
  230. >
  231. <template slot-scope="{ row }">
  232. <el-tag v-if="row.shi_fou_qi_yong_ === '1'">启用</el-tag>
  233. <el-tag v-if="row.shi_fou_qi_yong_ === '0'" type="danger"
  234. >停用</el-tag
  235. >
  236. </template>
  237. </el-table-column>
  238. <el-table-column fixed="right" prop="" label="操作栏目">
  239. <template slot-scope="{ row }">
  240. <el-button
  241. type="primary"
  242. icon="el-icon-edit"
  243. size="mini"
  244. @click="openDialog(row)"
  245. >编辑</el-button
  246. >
  247. </template>
  248. </el-table-column>
  249. </el-table>
  250. <el-pagination
  251. style="margin-top: 5px; padding-bottom: 10px"
  252. :current-page="currentPage"
  253. :page-sizes="[10, 20, 30, 50]"
  254. :page-size="pageSize"
  255. layout="prev,pager,next,jumper,sizes,->,total"
  256. :total="trueList.length"
  257. @size-change="handleSizeChange"
  258. @current-change="handleCurrentChange"
  259. />
  260. </div>
  261. </div>
  262. <FecDialog
  263. v-if="subDialogVisible"
  264. ref="FecDialogRef"
  265. @onSubmit="sonSubmit"
  266. @onClose="sonClose"
  267. />
  268. <DefaultSettingDialog
  269. ref="DefaultSettingDialogRef"
  270. :dialog-visible.sync="defultdialogVisible"
  271. :jian-ce-gang-wei-list="jianCeGangWeiList"
  272. :params="form"
  273. :day="dayCheck"
  274. :week="weekCheck"
  275. :month="monthCheck"
  276. :quarter="quarterCheck"
  277. :half-year="halfYearCheck"
  278. :year="yearCheck"
  279. :sep="sepCheck"
  280. @emitParent="handleSetting"
  281. />
  282. </div>
  283. </el-dialog>
  284. </template>
  285. <script>
  286. import { getSetting } from '@/utils/query'
  287. import ibpsUserSelector from '@/business/platform/org/selector'
  288. import FecDialog from './fecDialog.vue'
  289. import FacilityData from '@/views/component/facility/facilityData.vue'
  290. import DefaultSettingDialog from './defaultSettingDialog.vue'
  291. export default {
  292. components: {
  293. DefaultSettingDialog,
  294. FacilityData,
  295. ibpsUserSelector,
  296. FecDialog,
  297. IbpsCustomDialog: () =>
  298. import('@/business/platform/data/templaterender/custom-dialog')
  299. },
  300. props: {
  301. parentData: {
  302. type: [Object, Array],
  303. default: () => {}
  304. },
  305. visible: {
  306. type: Boolean,
  307. default: false
  308. }
  309. },
  310. data() {
  311. const { userId, level = {}, position } = this.$store.getters || {}
  312. return {
  313. defultdialogVisible: false,
  314. filter: [
  315. {
  316. descVal: '1',
  317. includeSub: true,
  318. old: 'position',
  319. partyId: this.$store.getters.userInfo.employee.positions,
  320. partyName: '',
  321. scriptContent: '',
  322. type: 'user',
  323. userType: 'position'
  324. }
  325. ],
  326. search: {
  327. buMen: '',
  328. quYu: '',
  329. fangJian: '',
  330. gangWei: '',
  331. zhouQi: ''
  332. },
  333. searchData: [],
  334. isSearch: false,
  335. level: level.second || level.first,
  336. userId: userId,
  337. pageSize: 10,
  338. currentPage: 1,
  339. multipleSelection: [],
  340. nextDate: '',
  341. rules: {
  342. lei_xing_: [{ required: true, message: '请选择类型', trigger: 'blur' }]
  343. },
  344. jianCeGangWeiList: [],
  345. dialogVisible: true,
  346. subDialogVisible: false,
  347. title: '设施环境配置表',
  348. toolbars: [
  349. { key: 'save', label: '保存' },
  350. {
  351. key: 'cancel',
  352. label: '退出',
  353. type: 'danger',
  354. icon: 'ibps-icon-close'
  355. }
  356. ],
  357. dayCheck: [],
  358. weekCheck: '',
  359. monthCheck: '',
  360. quarterCheck: '',
  361. halfYearCheck: '',
  362. yearCheck: '',
  363. sepCheck: '',
  364. form: {
  365. di_dian_: level.second || level.first,
  366. bian_zhi_ren_: userId,
  367. lei_xing_: '',
  368. bian_zhi_bu_men_: position && position.split(',').at(-1),
  369. zhou_qi_: '',
  370. gang_wei_: '',
  371. tiao_jian_: '',
  372. she_bei_bian_hao_: '', // 设备编号
  373. jian_ce_ri_qi_: '',
  374. ri_qi_lie_biao_: '',
  375. mo_kuai_lu_jing_: '',
  376. lie_biao_shu_ju_: '',
  377. kai_shi_shi_jian_: '',
  378. kong_zhi_biao_zhu: ''
  379. },
  380. subForm: [],
  381. period: [
  382. { label: '日监测', value: '每日' },
  383. { label: '周监测', value: '每周' },
  384. { label: '月监测', value: '每月' },
  385. { label: '季度监测', value: '每季度' },
  386. { label: '半年监测', value: '每半年' },
  387. { label: '年监测', value: '每年' }
  388. ],
  389. config: {
  390. '01-室内温湿度监控': {
  391. label: '室内温湿度监控',
  392. path: '/sshjgl/wdjc/snwsdjkcd',
  393. showDevice: false,
  394. displayField: [],
  395. requireField: ['fang_jian_']
  396. },
  397. '02-冰箱温度监控': {
  398. label: '冰箱温度监控',
  399. path: '/sshjgl/wdjc/bxwdjc',
  400. showDevice: true,
  401. displayField: ['deviceno1_', 'devicename1_'],
  402. requireField: ['deviceno1_', 'devicename1_']
  403. },
  404. '03-温浴箱温度监控': {
  405. label: '温浴箱温度监控',
  406. path: '/sshjgl/wdjc/wyxwdjkywh',
  407. showDevice: true,
  408. displayField: ['deviceno1_', 'devicename1_'],
  409. requireField: ['deviceno1_', 'devicename1_']
  410. },
  411. '04-阴凉柜温度监控': {
  412. label: '阴凉柜温度监控',
  413. path: '/sshjgl/wdjc/ylgwdjc',
  414. showDevice: true,
  415. displayField: ['deviceno1_', 'devicename1_'],
  416. requireField: ['deviceno1_', 'devicename1_']
  417. },
  418. '05-纯水机水质监测': {
  419. label: '纯水机水质监测',
  420. path: '/sshjgl/csjszjcb',
  421. showDevice: true,
  422. displayField: ['deviceno1_', 'devicename1_'],
  423. requireField: ['deviceno1_', 'devicename1_']
  424. },
  425. '06-每日安全检查': {
  426. label: '每日安全检查',
  427. path: '/sshjgl/aqgl/mraqjc',
  428. showDevice: false,
  429. displayField: [],
  430. requireField: []
  431. },
  432. '07-每月安全检查': {
  433. label: '每月安全检查',
  434. path: '/sshjgl/aqgl/myaqjc',
  435. showDevice: true,
  436. displayField: [],
  437. requireField: []
  438. },
  439. '08-含氯有效性监测': {
  440. label: '含氯有效性监测',
  441. path: '/sshjgl/aqgl/hlyxxjc',
  442. showDevice: false,
  443. displayField: [],
  444. requireField: []
  445. },
  446. // '09-紫外灯辐照测定': {
  447. // path: '/sshjgl/aqgl/zwdfzd',
  448. // },
  449. '10-洗眼器检查': {
  450. label: '洗眼器检查',
  451. path: '/sshjgl/aqgl/xyqjc',
  452. showDevice: true,
  453. displayField: ['deviceno1_', 'devicename1_'],
  454. requireField: []
  455. },
  456. '11-紧急淋浴器检查': {
  457. label: '紧急淋浴器检查',
  458. path: '/sshjgl/aqgl/jjlyqjc',
  459. showDevice: true,
  460. displayField: ['deviceno1_', 'devicename1_'],
  461. requireField: []
  462. },
  463. '12-紫外灯消毒': {
  464. label: '紫外灯消毒',
  465. path: '/sshjgl/aqgl/jykzwdxdjlb',
  466. showDevice: true,
  467. displayField: ['deviceno1_', 'devicename1_'],
  468. requireField: []
  469. },
  470. '13-高压灭菌': {
  471. label: '高压灭菌',
  472. path: '/sshjgl/aqgl/gymjjlb',
  473. showDevice: true,
  474. displayField: ['deviceno1_', 'devicename1_'],
  475. requireField: []
  476. },
  477. '14-空气消毒机': {
  478. label: '空气消毒机',
  479. path: '/sshjgl/aqgl/xdjsyjlb',
  480. showDevice: true,
  481. displayField: ['deviceno1_', 'devicename1_'],
  482. requireField: []
  483. },
  484. '15-日常防护消毒': {
  485. label: '日常防护消毒',
  486. path: '/sshjgl/aqgl/rcfhxd',
  487. showDevice: false,
  488. displayField: [],
  489. requireField: []
  490. },
  491. '16-设备排出废液': {
  492. label: '设备排出废液',
  493. path: '/sshjgl/aqgl/sbpcfyxd',
  494. showDevice: true,
  495. displayField: ['deviceno1_', 'devicename1_'],
  496. requireField: ['deviceno1_', 'devicename1_']
  497. },
  498. '17-医疗废物收集交接': {
  499. label: '医疗废物收集交接',
  500. path: '/sshjgl/aqgl/ylfwjjdj',
  501. showDevice: false,
  502. displayField: [],
  503. requireField: []
  504. },
  505. '18-试剂耗材监控': {
  506. label: '试剂耗材监控',
  507. path: '/sshjgl/aqgl/sjhcjk',
  508. showDevice: true,
  509. displayField: ['deviceno3_', 'devicename3_'],
  510. requireField: ['deviceno3_', 'devicename3_']
  511. }
  512. },
  513. subIdList: [],
  514. isFirstLieBiao: true,
  515. settig: false
  516. }
  517. },
  518. computed: {
  519. // 分页结果
  520. showPaperList() {
  521. const start = (this.currentPage - 1) * this.pageSize
  522. const end = start + this.pageSize
  523. return this.trueList.slice(start, end)
  524. },
  525. // 过滤结果
  526. trueList() {
  527. return this.isSearch ? this.searchData : this.subForm
  528. },
  529. shouldShowColumn() {
  530. return (columnName) => {
  531. return this.config[this.form.lei_xing_]?.displayField?.includes(
  532. columnName
  533. )
  534. }
  535. },
  536. shouldRequired() {
  537. return (columnName) => {
  538. return this.config[this.form.lei_xing_]?.requireField?.includes(
  539. columnName
  540. )
  541. }
  542. },
  543. isEdit() {
  544. return !!(this.parentData instanceof Object && this.parentData.mainId)
  545. }
  546. },
  547. watch: {
  548. 'form.lei_xing_'(val) {
  549. if (this.isEdit) return
  550. this.form.mo_kuai_lu_jing_ = this.config[val].path
  551. if (!this.isFirstLieBiao) {
  552. this.subForm = []
  553. switch (val) {
  554. case '01-室内温湿度监控':
  555. this.form.lie_biao_shu_ju_ = JSON.stringify([
  556. {
  557. label: '上午温度',
  558. range: [],
  559. fixValue: '',
  560. value: '',
  561. result: '',
  562. status: '',
  563. unit: '℃'
  564. },
  565. {
  566. label: '上午湿度',
  567. range: [],
  568. fixValue: '',
  569. value: '',
  570. result: '',
  571. status: '',
  572. unit: '%'
  573. },
  574. {
  575. label: '下午温度',
  576. range: [],
  577. fixValue: '',
  578. value: '',
  579. result: '',
  580. status: '',
  581. unit: '℃'
  582. },
  583. {
  584. label: '下午湿度',
  585. range: [],
  586. fixValue: '',
  587. value: '',
  588. result: '',
  589. status: '',
  590. unit: '%'
  591. }
  592. ])
  593. break
  594. case '02-冰箱温度监控':
  595. this.form.lie_biao_shu_ju_ = JSON.stringify([
  596. {
  597. label: '冷藏',
  598. range: [],
  599. fixValue: '',
  600. value: '',
  601. result: '',
  602. status: '',
  603. unit: '℃'
  604. },
  605. {
  606. label: '冷冻',
  607. range: [],
  608. fixValue: '',
  609. value: '',
  610. result: '',
  611. status: '',
  612. unit: '℃'
  613. }
  614. ])
  615. break
  616. case '03-温浴箱温度监控':
  617. this.form.lie_biao_shu_ju_ = JSON.stringify([
  618. {
  619. label: '温度',
  620. range: [],
  621. fixValue: '',
  622. value: '',
  623. result: '',
  624. status: '',
  625. unit: '℃'
  626. }
  627. ])
  628. break
  629. case '04-阴凉柜温度监控':
  630. this.form.lie_biao_shu_ju_ = JSON.stringify([
  631. {
  632. label: '温度',
  633. range: [],
  634. fixValue: '',
  635. value: '',
  636. result: '',
  637. status: '',
  638. unit: '℃'
  639. }
  640. ])
  641. break
  642. case '05-纯水机水质监测':
  643. this.form.lie_biao_shu_ju_ = JSON.stringify([
  644. {
  645. label: '电阻率',
  646. range: [10, null],
  647. fixValue: '',
  648. value: '',
  649. result: '',
  650. status: '',
  651. unit: 'MΩ·CM'
  652. },
  653. {
  654. label: '电导率',
  655. range: [0, 1],
  656. fixValue: '',
  657. value: '',
  658. result: '',
  659. status: '',
  660. unit: 'uS/cm'
  661. },
  662. {
  663. label: '微生物含量',
  664. range: [0, 10],
  665. fixValue: '',
  666. value: '',
  667. result: '',
  668. status: '',
  669. unit: 'cfu/ml'
  670. }
  671. ])
  672. break
  673. default:
  674. this.form.lie_biao_shu_ju_ = ''
  675. break
  676. }
  677. }
  678. }
  679. },
  680. async mounted() {
  681. const config = await getSetting('facilityEnv', 'typeList')
  682. const settig = await getSetting('postJob', 'allocation')
  683. if (this.$utils.isNotEmpty(config)) {
  684. this.config = config
  685. }
  686. if (this.$utils.isNotEmpty(settig)) {
  687. this.settig = settig
  688. }
  689. this.init()
  690. if (this.isEdit) {
  691. this.loadData()
  692. this.loadSubData()
  693. } else {
  694. this.isFirstLieBiao = false
  695. }
  696. },
  697. methods: {
  698. init() {
  699. this.loadSelectorData()
  700. },
  701. loadSelectorData() {
  702. const { first, second } = this.$store.getters.level || {}
  703. // const sql = `select * from t_sbwhgwpzb where di_dian_='${second || first}'`
  704. this.$common
  705. .request('query', {
  706. key: this.settig ? 'gwzzzha' : 'getPositionList',
  707. params: [second || first]
  708. })
  709. .then((res) => {
  710. const { data = [] } = res.variables || {}
  711. this.jianCeGangWeiList = data
  712. })
  713. },
  714. loadData() {
  715. // const sql = `select * from t_sshjpzb where id_='${this.parentData.mainId}'`
  716. this.$common
  717. .request('query', {
  718. key: 'getFacsConfigById',
  719. params: [this.parentData.mainId]
  720. })
  721. .then((res) => {
  722. const { data = [] } = res.variables || {}
  723. // console.log('主表', data)
  724. if (!data.length) {
  725. return this.$message.warning(``)
  726. }
  727. Object.assign(this.form, data[0])
  728. // this.form = data[0]
  729. const jian_ce_ri_qi_ = data[0].jian_ce_ri_qi_
  730. const ri_qi_lie_biao_ = data[0].ri_qi_lie_biao_
  731. if (this.form.jian_ce_ri_qi_) {
  732. this.$nextTick(() => {
  733. switch (this.form.zhou_qi_) {
  734. case '每日':
  735. if (jian_ce_ri_qi_ === '每天') {
  736. this.dayCheck = [1, 2, 3, 4, 5, 6, 7]
  737. } else {
  738. this.dayCheck = jian_ce_ri_qi_
  739. .split('每周')[1]
  740. .split(',')
  741. .map((item) => +item)
  742. }
  743. break
  744. case '每周':
  745. this.weekCheck = +jian_ce_ri_qi_.split('每周')[1]
  746. break
  747. case '每月':
  748. this.monthCheck = +jian_ce_ri_qi_
  749. .split('每个月第')[1]
  750. .split('天')[0]
  751. break
  752. case '每季度':
  753. this.quarterCheck = +jian_ce_ri_qi_
  754. .split('每季度第')[1]
  755. .split('个月')[0]
  756. break
  757. case '每半年':
  758. this.halfYearCheck = +jian_ce_ri_qi_
  759. .split('每半年第')[1]
  760. .split('个月')[0]
  761. break
  762. case '每年':
  763. this.yearCheck = +jian_ce_ri_qi_
  764. .split('每年第')[1]
  765. .split('个月')[0]
  766. break
  767. case '间隔':
  768. this.sepCheck = +ri_qi_lie_biao_
  769. break
  770. default:
  771. break
  772. }
  773. })
  774. }
  775. this.$nextTick(() => {
  776. this.isFirstLieBiao = false
  777. })
  778. })
  779. },
  780. loadSubData() {
  781. // const sql = `select * from t_sshjpzxq where parent_id_='${this.parentData.mainId}' and (shi_fou_shan_chu_ !='1' OR shi_fou_shan_chu_ IS NULL OR shi_fou_shan_chu_='')`
  782. this.$common
  783. .request('query', {
  784. key: 'getSubFacsConfig',
  785. params: [this.parentData.mainId]
  786. })
  787. .then((res) => {
  788. const { data = [] } = res.variables || {}
  789. // console.log('子表', data)
  790. if (!data.length) {
  791. return this.$message.warning(``)
  792. }
  793. this.subForm = data
  794. this.subIdList = data.map((item) => item.zi_wai_deng_wai_j)
  795. })
  796. },
  797. handleSetting(type) {
  798. this.form = this.$refs.DefaultSettingDialogRef.form
  799. if (this.subForm.length === 0)
  800. return this.$message.warning('配置详情列表中无数据,请先添加数据!')
  801. if (type === 'settingEmpty') this.settingEmpty()
  802. else if (type === 'settingAll') this.settingAll()
  803. this.defultdialogVisible = false
  804. },
  805. // 使用默认数据
  806. settingData() {
  807. if (this.form.lei_xing_ === '') {
  808. return this.$message.warning('请先选择类型!')
  809. }
  810. this.defultdialogVisible = true
  811. },
  812. settingAll() {
  813. this.subForm.forEach((item) => {
  814. item.bu_men_ = this.form.bian_zhi_bu_men_
  815. item.jian_ce_gang_wei_ = this.form.gang_wei_
  816. item.kong_zhi_tiao_jia = this.form.tiao_jian_
  817. item.kong_zhi_biao_zhu = this.form.kong_zhi_biao_zhu
  818. item.jian_ce_ri_qi_ = this.form.jian_ce_ri_qi_
  819. item.ri_qi_lie_biao_ = this.form.ri_qi_lie_biao_
  820. item.jian_ce_zhou_qi_ = this.form.zhou_qi_
  821. item.lie_biao_shu_ju_ = this.form.lie_biao_shu_ju_
  822. item.kai_shi_shi_jian_ = this.form.kai_shi_shi_jian_
  823. })
  824. this.$message.success('完全批量替换成功!')
  825. this.defultdialogVisible = false
  826. },
  827. // 使用默认数据
  828. settingEmpty() {
  829. this.subForm.forEach((item) => {
  830. if (item.bu_men_ === '') {
  831. item.bu_men_ = this.form.bian_zhi_bu_men_
  832. }
  833. if (item.jian_ce_gang_wei_ === '') {
  834. item.jian_ce_gang_wei_ = this.form.gang_wei_
  835. }
  836. if (item.kong_zhi_tiao_jia === '') {
  837. item.kong_zhi_tiao_jia = this.form.tiao_jian_
  838. }
  839. if (item.kong_zhi_biao_zhu === '') {
  840. item.kong_zhi_biao_zhu = this.form.kong_zhi_biao_zhu
  841. }
  842. if (item.jian_ce_ri_qi_ === '') {
  843. item.jian_ce_ri_qi_ = this.form.jian_ce_ri_qi_
  844. }
  845. if (item.ri_qi_lie_biao_ === '') {
  846. item.ri_qi_lie_biao_ = this.form.ri_qi_lie_biao_
  847. }
  848. if (item.jian_ce_zhou_qi_ === '') {
  849. item.jian_ce_zhou_qi_ = this.form.zhou_qi_
  850. }
  851. if (item.kai_shi_shi_jian_ === '') {
  852. item.kai_shi_shi_jian_ = this.form.kai_shi_shi_jian_
  853. }
  854. if (this.form.lie_biao_shu_ju_) {
  855. if (item.lie_biao_shu_ju_) {
  856. const main = JSON.parse(this.form.lie_biao_shu_ju_)
  857. const sub = JSON.parse(item.lie_biao_shu_ju_)
  858. if (sub.length === 0) {
  859. item.lie_biao_shu_ju_ = JSON.stringify(sub)
  860. }
  861. if (sub.length > 0) {
  862. sub.forEach((i, index) => {
  863. if (
  864. i.label === main[index].label &&
  865. (i.range.length === 0 ||
  866. i.range.join(',') === [null, null].join(',') ||
  867. i.range.join(',') === ['', ''].join(','))
  868. ) {
  869. i.range = main[index].range
  870. }
  871. if (i.label === main[index].label && i.fixValue === '') {
  872. i.fixValue = main[index].fixValue
  873. }
  874. if (i.label === main[index].label && i.unit === '') {
  875. i.unit = main[index].unit
  876. }
  877. })
  878. item.lie_biao_shu_ju_ = JSON.stringify(sub)
  879. } else {
  880. item.lie_biao_shu_ju_ = this.form.lie_biao_shu_ju_
  881. }
  882. } else {
  883. item.lie_biao_shu_ju_ = this.form.lie_biao_shu_ju_
  884. }
  885. }
  886. })
  887. this.$message.success('空值批量替换成功!')
  888. this.defultdialogVisible = false
  889. },
  890. // 当前页码改变
  891. handleCurrentChange(val) {
  892. this.currentPage = val
  893. },
  894. // 页码选择器改变
  895. handleSizeChange(val) {
  896. this.pageSize = val
  897. this.currentPage = 1
  898. },
  899. // 分页连续序号
  900. showIndex(index) {
  901. return index + 1 + (this.currentPage - 1) * this.pageSize
  902. },
  903. handleActionEvent({ key }) {
  904. switch (key) {
  905. case 'cancel':
  906. this.dialogVisible = false
  907. break
  908. case 'save':
  909. this.saveResult()
  910. break
  911. default:
  912. break
  913. }
  914. },
  915. // 子表关闭事件
  916. sonClose() {
  917. this.subDialogVisible = false
  918. },
  919. // 子表单添加/编辑按钮
  920. openDialog(row) {
  921. if (this.form.lei_xing_ === '') {
  922. return this.$message.warning('请先选择类型!')
  923. }
  924. this.subDialogVisible = true
  925. this.$nextTick(() => {
  926. this.$refs.FecDialogRef.open(
  927. row,
  928. this.jianCeGangWeiList,
  929. this.form,
  930. this.config
  931. )
  932. })
  933. },
  934. // 子表的提交事件
  935. sonSubmit(data) {
  936. const { form, isEdit } = data
  937. if (isEdit) {
  938. const sub = this.subForm.find(
  939. (item) => item.zi_wai_deng_wai_j === form.zi_wai_deng_wai_j
  940. )
  941. if (sub) {
  942. Object.assign(sub, form)
  943. }
  944. } else {
  945. this.subForm.push(form)
  946. }
  947. this.isEdit && this.goSearch()
  948. this.sonClose()
  949. },
  950. // 关闭当前窗口
  951. closeDialog() {
  952. this.dialogVisible = false
  953. this.$emit('close', false)
  954. },
  955. // 子表删除
  956. removeItem() {
  957. if (this.multipleSelection.length === 0) {
  958. return this.$message.warning('请选择要删除的数据!')
  959. } else {
  960. this.$confirm('请确认是否删除所选项?', '提示', {
  961. confirmButtonText: '确定',
  962. cancelButtonText: '取消',
  963. type: 'warning'
  964. })
  965. .then(() => {
  966. this.multipleSelection.forEach((item) => {
  967. const index = this.subForm.indexOf(item)
  968. this.subForm.splice(index, 1)
  969. })
  970. this.isEdit && this.goSearch()
  971. this.$message.success('删除成功!')
  972. this.multipleSelection = []
  973. })
  974. .catch(() => {
  975. this.$message({
  976. type: 'info',
  977. message: '已取消删除'
  978. })
  979. })
  980. }
  981. },
  982. // table复选框
  983. handleSelectionChange(val) {
  984. this.multipleSelection = val
  985. },
  986. async submit() {
  987. if (this.subForm.length === 0) {
  988. return this.$message.warning('请添加子表数据')
  989. }
  990. for (var i = 0; i < this.subForm.length; i++) {
  991. const item = this.subForm[i]
  992. if (item.bu_men_ === '') {
  993. return this.$message.warning(`子表第${i + 1}行部门信息缺失!`)
  994. }
  995. if (item.jian_ce_ri_qi_ === '' && item.jian_ce_zhou_qi_ !== '按需') {
  996. return this.$message.warning(`子表第${i + 1}行监测日期信息缺失!`)
  997. }
  998. if (item.jian_ce_gang_wei_ === '') {
  999. return this.$message.warning(`子表第${i + 1}行监测岗位信息缺失!`)
  1000. }
  1001. if (this.shouldRequired('deviceno1_') && item.deviceno1_ === '') {
  1002. return this.$message.warning(`子表第${i + 1}行设备信息缺失!`)
  1003. }
  1004. if (this.shouldRequired('fang_jian_') && item.fang_jian_ === '') {
  1005. return this.$message.warning(`子表第${i + 1}行房间信息缺失!`)
  1006. }
  1007. if (item.lie_biao_shu_ju_) {
  1008. const lie_biao_shu_ju_ = JSON.parse(item.lie_biao_shu_ju_)
  1009. for (let i = 0; i < lie_biao_shu_ju_.length; i++) {
  1010. const item = lie_biao_shu_ju_[i]
  1011. if (
  1012. !item.label &&
  1013. (item.range.length !== 2 ||
  1014. item.range[0] === null ||
  1015. item.range[1] === null) &&
  1016. !item.fixValue &&
  1017. !item.unit
  1018. ) {
  1019. return this.$message.warning(`第${i + 1}行数据非法!`)
  1020. }
  1021. }
  1022. }
  1023. }
  1024. // console.log('主表', this.form)
  1025. // console.log('子表', this.subForm)
  1026. const allUid = this.subForm.map((item) => item.zi_wai_deng_wai_j)
  1027. const existUid = this.subIdList
  1028. const addList = this.subForm.filter(
  1029. (item) => !existUid.includes(item.zi_wai_deng_wai_j)
  1030. )
  1031. const deleteList = existUid.filter((item) => !allUid.includes(item))
  1032. const updateList = this.subForm.filter((item) =>
  1033. existUid.includes(item.zi_wai_deng_wai_j)
  1034. )
  1035. // 主表修改
  1036. if (this.isEdit) {
  1037. const params = {
  1038. tableName: 't_sshjpzb',
  1039. updList: [
  1040. {
  1041. where: {
  1042. id_: this.parentData.mainId
  1043. },
  1044. param: {
  1045. lei_xing_: this.form.lei_xing_,
  1046. bian_zhi_bu_men_: this.form.bian_zhi_bu_men_,
  1047. zhou_qi_: this.form.zhou_qi_,
  1048. gang_wei_: this.form.gang_wei_,
  1049. tiao_jian_: this.form.tiao_jian_,
  1050. kong_zhi_biao_zhu: this.form.kong_zhi_biao_zhu,
  1051. she_bei_bian_hao_: this.form.she_bei_bian_hao_,
  1052. jian_ce_ri_qi_: this.form.jian_ce_ri_qi_,
  1053. ri_qi_lie_biao_: this.form.ri_qi_lie_biao_,
  1054. mo_kuai_lu_jing_: this.form.mo_kuai_lu_jing_,
  1055. lie_biao_shu_ju_: this.form.lie_biao_shu_ju_,
  1056. kai_shi_shi_jian_: this.form.kai_shi_shi_jian_
  1057. }
  1058. }
  1059. ]
  1060. }
  1061. await this.$common.request('update', params).then(async () => {
  1062. console.log('主表更新数据成功')
  1063. if (addList.length) {
  1064. const params = {
  1065. tableName: 't_sshjpzxq',
  1066. paramWhere: addList.map((item) => {
  1067. return {
  1068. parent_id_: this.parentData.mainId,
  1069. bu_men_: item.bu_men_,
  1070. devicename1_: item.devicename1_,
  1071. deviceno1_: item.deviceno1_,
  1072. deviceid1_: item.deviceid1_,
  1073. deviceno2_: item.deviceno2_,
  1074. deviceid2_: item.deviceid2_,
  1075. fang_jian_: item.fang_jian_,
  1076. fang_jian_id_: item.fang_jian_id_,
  1077. jian_ce_gang_wei_: item.jian_ce_gang_wei_,
  1078. jian_ce_ri_qi_: item.jian_ce_ri_qi_,
  1079. jian_ce_zhou_qi_: item.jian_ce_zhou_qi_,
  1080. kong_zhi_tiao_jia: item.kong_zhi_tiao_jia,
  1081. kong_zhi_biao_zhu: item.kong_zhi_biao_zhu,
  1082. lie_biao_shu_ju_: item.lie_biao_shu_ju_,
  1083. qu_yu_: item.qu_yu_,
  1084. ri_qi_lie_biao_: item.ri_qi_lie_biao_,
  1085. shi_fou_qi_yong_: item.shi_fou_qi_yong_,
  1086. zi_wai_deng_wai_j: item.zi_wai_deng_wai_j,
  1087. kai_shi_shi_jian_: item.kai_shi_shi_jian_
  1088. }
  1089. })
  1090. }
  1091. await this.$common.request('add', params).then(() => {
  1092. console.log('子表添加数据成功')
  1093. })
  1094. }
  1095. if (updateList.length) {
  1096. const params = {
  1097. tableName: 't_sshjpzxq',
  1098. updList: updateList.map((item) => ({
  1099. where: {
  1100. zi_wai_deng_wai_j: item.zi_wai_deng_wai_j
  1101. },
  1102. param: {
  1103. qu_yu_: item.qu_yu_,
  1104. fang_jian_: item.fang_jian_,
  1105. fang_jian_id_: item.fang_jian_id_,
  1106. bu_men_: item.bu_men_,
  1107. deviceno1_: item.deviceno1_,
  1108. deviceid1_: item.deviceid1_,
  1109. devicename1_: item.devicename1_,
  1110. deviceno2_: item.deviceno2_, // 监控设备
  1111. deviceid2_: item.deviceid2_,
  1112. jian_ce_zhou_qi_: item.jian_ce_zhou_qi_,
  1113. jian_ce_gang_wei_: item.jian_ce_gang_wei_,
  1114. shi_fou_qi_yong_: item.shi_fou_qi_yong_,
  1115. kong_zhi_tiao_jia: item.kong_zhi_tiao_jia,
  1116. kong_zhi_biao_zhu: item.kong_zhi_biao_zhu,
  1117. jian_ce_ri_qi_: item.jian_ce_ri_qi_,
  1118. ri_qi_lie_biao_: item.ri_qi_lie_biao_,
  1119. lie_biao_shu_ju_: item.lie_biao_shu_ju_,
  1120. kai_shi_shi_jian_: item.kai_shi_shi_jian_
  1121. }
  1122. }))
  1123. }
  1124. await this.$common.request('update', params).then(() => {
  1125. console.log('子表更新数据成功')
  1126. })
  1127. }
  1128. if (deleteList.length) {
  1129. // const params = {
  1130. // tableName: 't_sshjpzxq',
  1131. // paramWhere: { zi_wai_deng_wai_j: deleteList.join(',') }
  1132. // }
  1133. // await this.$common.request('delete', params).then(() => { console.log('子表删除数据成功') })
  1134. // 调整为软删除
  1135. const params = {
  1136. tableName: 't_sshjpzxq',
  1137. updList: deleteList.map((item) => ({
  1138. where: {
  1139. zi_wai_deng_wai_j: item
  1140. },
  1141. param: {
  1142. shi_fou_shan_chu_: '1'
  1143. }
  1144. }))
  1145. }
  1146. await this.$common.request('update', params).then(() => {
  1147. console.log('子表软删除数据成功')
  1148. })
  1149. }
  1150. this.$nextTick(() => {
  1151. this.$message.success('修改成功!')
  1152. this.closeDialog()
  1153. })
  1154. })
  1155. } else {
  1156. const params = {
  1157. tableName: 't_sshjpzb',
  1158. paramWhere: [
  1159. {
  1160. ...this.form
  1161. }
  1162. ]
  1163. }
  1164. await this.$common.request('add', params).then(async (res) => {
  1165. console.log('主表新增数据成功')
  1166. const { cont = [] } = res.variables || {}
  1167. if (addList.length) {
  1168. const params = {
  1169. tableName: 't_sshjpzxq',
  1170. paramWhere: addList.map((item) => {
  1171. return {
  1172. parent_id_: cont[0].id_,
  1173. bu_men_: item.bu_men_,
  1174. devicename1_: item.devicename1_,
  1175. deviceno1_: item.deviceno1_,
  1176. deviceid1_: item.deviceid1_,
  1177. deviceno2_: item.deviceno2_,
  1178. deviceid2_: item.deviceid2_,
  1179. fang_jian_: item.fang_jian_,
  1180. fang_jian_id_: item.fang_jian_id_,
  1181. jian_ce_gang_wei_: item.jian_ce_gang_wei_,
  1182. jian_ce_ri_qi_: item.jian_ce_ri_qi_,
  1183. jian_ce_zhou_qi_: item.jian_ce_zhou_qi_,
  1184. kong_zhi_tiao_jia: item.kong_zhi_tiao_jia,
  1185. kong_zhi_biao_zhu: item.kong_zhi_biao_zhu,
  1186. lie_biao_shu_ju_: item.lie_biao_shu_ju_,
  1187. qu_yu_: item.qu_yu_,
  1188. ri_qi_lie_biao_: item.ri_qi_lie_biao_,
  1189. shi_fou_qi_yong_: item.shi_fou_qi_yong_,
  1190. zi_wai_deng_wai_j: item.zi_wai_deng_wai_j,
  1191. kai_shi_shi_jian_: item.kai_shi_shi_jian_
  1192. }
  1193. })
  1194. }
  1195. await this.$common.request('add', params).then(() => {
  1196. this.$message.success('添加成功!')
  1197. console.log('子表添加数据成功')
  1198. this.closeDialog()
  1199. })
  1200. }
  1201. })
  1202. }
  1203. // 紫外灯数据同步更新紫外灯消毒记录表
  1204. if (this.form.lei_xing_.includes('12')) {
  1205. const tableName = 't_jykzwdxdjlbsc'
  1206. // 生成添加请求参数
  1207. const addParams = addList.length
  1208. ? {
  1209. tableName,
  1210. paramWhere: addList.map((item) => ({
  1211. di_dian_: this.level,
  1212. bian_zhi_bu_men_: item.bu_men_,
  1213. bian_zhi_ren_: this.userId,
  1214. zi_wai_deng_ming_: item.devicename1_,
  1215. she_shi_id_: item.zi_wai_deng_wai_j,
  1216. gang_wei_: item.jian_ce_gang_wei_,
  1217. shi_fou_ting_yong: item.shi_fou_qi_yong_
  1218. }))
  1219. }
  1220. : null
  1221. // 生成更新请求参数
  1222. const updateParams = updateList.length
  1223. ? {
  1224. tableName,
  1225. updList: updateList.map((item) => ({
  1226. where: {
  1227. she_shi_id_: item.zi_wai_deng_wai_j
  1228. },
  1229. param: {
  1230. bian_zhi_bu_men_: item.bu_men_,
  1231. zi_wai_deng_ming_: item.devicename1_,
  1232. gang_wei_: item.jian_ce_gang_wei_,
  1233. shi_fou_ting_yong: item.shi_fou_qi_yong_
  1234. }
  1235. }))
  1236. }
  1237. : null
  1238. // 生成删除请求参数
  1239. // const deleteParams = deleteList.length ? {
  1240. // tableName,
  1241. // paramWhere: { she_shi_id_: deleteList.join(',') }
  1242. // } : null
  1243. // 调整为软删除
  1244. const deleteParams = deleteList.length
  1245. ? {
  1246. tableName,
  1247. updList: deleteList.map((item) => ({
  1248. where: {
  1249. she_shi_id_: item
  1250. },
  1251. param: {
  1252. shi_fou_shan_chu_: '1'
  1253. }
  1254. }))
  1255. }
  1256. : null
  1257. // 合并所有请求
  1258. const allRequests = []
  1259. if (addParams) {
  1260. allRequests.push(
  1261. this.$common
  1262. .request('add', addParams)
  1263. .then(() => console.log('添加紫外灯数据成功'))
  1264. )
  1265. }
  1266. if (updateParams) {
  1267. allRequests.push(
  1268. this.$common
  1269. .request('update', updateParams)
  1270. .then(() => console.log('更新紫外灯数据成功'))
  1271. )
  1272. }
  1273. if (deleteParams) {
  1274. // allRequests.push(this.$common.request('delete', deleteParams).then(() => console.log('删除紫外灯数据成功')))
  1275. allRequests.push(
  1276. this.$common
  1277. .request('update', deleteParams)
  1278. .then(() => console.log('软删除紫外灯数据成功'))
  1279. )
  1280. }
  1281. // 执行所有请求
  1282. await Promise.all(allRequests)
  1283. .then(() => console.log('所有请求完成'))
  1284. .catch((error) => console.error('请求出错:', error))
  1285. }
  1286. },
  1287. saveResult() {
  1288. this.$refs.form.validate((valid) => {
  1289. if (valid) {
  1290. this.submit()
  1291. } else {
  1292. this.$message.warning('请填写必填项')
  1293. return false
  1294. }
  1295. })
  1296. },
  1297. // 查询
  1298. goSearch() {
  1299. console.log(this.search)
  1300. if (
  1301. !this.search.buMen &&
  1302. !this.search.quYu &&
  1303. !this.search.fangJian &&
  1304. !this.search.zhouQi &&
  1305. !this.search.gangWei
  1306. ) {
  1307. this.isSearch = false
  1308. } else {
  1309. // 条件过滤
  1310. const searchData = this.subForm
  1311. .filter((item) => item.bu_men_.indexOf(this.search.buMen) > -1)
  1312. .filter((item) => item.qu_yu_.indexOf(this.search.quYu) > -1)
  1313. .filter((item) => item.fang_jian_.indexOf(this.search.fangJian) > -1)
  1314. .filter(
  1315. (item) => item.jian_ce_zhou_qi_.indexOf(this.search.zhouQi) > -1
  1316. )
  1317. .filter(
  1318. (item) => item.jian_ce_gang_wei_.indexOf(this.search.gangWei) > -1
  1319. )
  1320. this.isSearch = true
  1321. this.searchData = searchData
  1322. }
  1323. }
  1324. }
  1325. }
  1326. </script>
  1327. <style lang="scss" scoped>
  1328. .sub-dialog {
  1329. .contain {
  1330. padding: 20px;
  1331. }
  1332. }
  1333. .paper-detail-dialog {
  1334. ::v-deep {
  1335. .el-dialog__header {
  1336. text-align: center;
  1337. }
  1338. }
  1339. .dialog-title {
  1340. display: flex;
  1341. align-items: center;
  1342. justify-content: center;
  1343. div {
  1344. position: absolute;
  1345. right: 8vw;
  1346. }
  1347. .dialogtitle {
  1348. font-size: 22px;
  1349. font-family: SimHei;
  1350. font-weight: bold;
  1351. color: #222;
  1352. }
  1353. }
  1354. .container {
  1355. display: flex;
  1356. width: 100%;
  1357. justify-content: center;
  1358. .el-row {
  1359. margin: 0 !important;
  1360. }
  1361. .required {
  1362. color: #606266 !important;
  1363. &::before {
  1364. content: '*';
  1365. margin: 0 4px 0 -7.5px;
  1366. color: #f56c6c;
  1367. }
  1368. }
  1369. .main {
  1370. width: 80%;
  1371. height: calc(100vh - 100px);
  1372. box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
  1373. padding: 20px;
  1374. overflow-y: auto;
  1375. .form {
  1376. .el-row {
  1377. margin: 10px 0;
  1378. }
  1379. }
  1380. }
  1381. .table {
  1382. margin-top: 20px;
  1383. .el-alert {
  1384. margin-bottom: 20px;
  1385. }
  1386. .search {
  1387. display: flex;
  1388. flex-wrap: wrap;
  1389. align-items: center;
  1390. .search-item {
  1391. .label {
  1392. font-size: 12px;
  1393. min-width: 74px;
  1394. }
  1395. display: flex;
  1396. align-items: center;
  1397. width: 240px;
  1398. margin: 0 10px 8px 0;
  1399. }
  1400. }
  1401. }
  1402. }
  1403. }
  1404. ::v-deep {
  1405. .el-form-item__label {
  1406. text-align: left;
  1407. }
  1408. .el-form-item__content {
  1409. font-size: 12px !important;
  1410. display: flex;
  1411. }
  1412. }
  1413. </style>