facilityEnvConfig.vue 45 KB

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