index.vue 54 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567
  1. <template>
  2. <div class="app-container">
  3. <!-- 搜索工作栏 -->
  4. <el-form
  5. :model="queryParams"
  6. ref="queryForm"
  7. size="small"
  8. :inline="true"
  9. v-show="showSearch"
  10. label-width="100px"
  11. >
  12. <el-form-item label="单位名称" prop="orgName">
  13. <el-input
  14. v-model="queryParams.orgName"
  15. placeholder="请输入单位名称"
  16. clearable
  17. @keyup.enter.native="handleQuery"
  18. />
  19. </el-form-item>
  20. <!-- <el-form-item label="状态" prop="status">
  21. <el-select v-model="queryParams.status" placeholder="请选择状态" clearable size="small">
  22. <el-option v-for="dict in statusDictDatas" :key="parseInt(dict.value)" :label="dict.label"
  23. :value="parseInt(dict.value)" />
  24. </el-select>
  25. </el-form-item> -->
  26. <el-form-item label="单位地址" prop="dwdz">
  27. <el-input
  28. v-model="queryParams.dwdz"
  29. placeholder="请输入单位地址"
  30. clearable
  31. @keyup.enter.native="handleQuery"
  32. />
  33. </el-form-item>
  34. <el-form-item label="监管单位类别" prop="dwlx">
  35. <el-select
  36. v-model="queryParams.dwlx"
  37. placeholder="请选择监管单位类别"
  38. style="width: 100%"
  39. >
  40. <el-option
  41. v-for="dict in this.getDictDatas(DICT_TYPE.BACKEND_ORG_TYPE)"
  42. :key="dict.value"
  43. :label="dict.label"
  44. :value="dict.value"
  45. />
  46. </el-select>
  47. </el-form-item>
  48. <!-- <el-form-item label="单位类型" prop="dwxz">
  49. <el-select v-model="queryParams.dwxz" placeholder="请选择单位类型" style="width: 100%">
  50. <el-option v-for="dict in this.getDictDatas(DICT_TYPE.BACKEND_ORG_TYPE)" :key="dict.value" :label="dict.label"
  51. :value="dict.value" />
  52. </el-select>
  53. </el-form-item> -->
  54. <el-form-item label="行政区域" prop="xzqy">
  55. <el-input
  56. v-model="queryParams.xzqy"
  57. placeholder="请输入行政区域"
  58. clearable
  59. @keyup.enter.native="handleQuery"
  60. />
  61. </el-form-item>
  62. <el-form-item label="负责人" prop="orgCharge">
  63. <el-input
  64. v-model="queryParams.orgCharge"
  65. placeholder="请输入负责人"
  66. clearable
  67. @keyup.enter.native="handleQuery"
  68. />
  69. </el-form-item>
  70. <el-form-item label="负责人电话" prop="frdbdh">
  71. <el-input
  72. v-model="queryParams.frdbdh"
  73. placeholder="请输入负责人电话"
  74. clearable
  75. @keyup.enter.native="handleQuery"
  76. />
  77. </el-form-item>
  78. <el-form-item label="单位电话" prop="dwdh">
  79. <el-input
  80. v-model="queryParams.dwdh"
  81. placeholder="请输入单位电话"
  82. clearable
  83. @keyup.enter.native="handleQuery"
  84. />
  85. </el-form-item>
  86. <!-- <el-form-item label="上级消防管辖单位" prop="sjxfgxdw">
  87. <treeselect v-model="queryParams.sjxfgxdw" :options="deptOptions" :show-count="true" :clearable="false"
  88. placeholder="请选择上级消防管辖单位" :normalizer="normalizer" />
  89. </el-form-item> -->
  90. <el-form-item>
  91. <el-button type="primary" icon="el-icon-search" @click="handleQuery"
  92. >搜索</el-button
  93. >
  94. <el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
  95. </el-form-item>
  96. </el-form>
  97. <!-- 操作工具栏 -->
  98. <el-row :gutter="10" class="mb8">
  99. <!-- <el-col :span="1.5">
  100. <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
  101. v-hasPermi="['backend:org:create']">新增</el-button>
  102. </el-col> -->
  103. <el-col :span="1.5">
  104. <el-button
  105. type="warning"
  106. plain
  107. icon="el-icon-download"
  108. size="mini"
  109. @click="handleExport"
  110. :loading="exportLoading"
  111. v-hasPermi="['backend:org:export']"
  112. >导出</el-button
  113. >
  114. </el-col>
  115. <el-col :span="1.5">
  116. <el-button
  117. type="primary"
  118. size="mini"
  119. @click="handleInit"
  120. :loading="exportLoading"
  121. >单位信息初始化</el-button
  122. >
  123. </el-col>
  124. <right-toolbar
  125. :showSearch.sync="showSearch"
  126. @queryTable="getList"
  127. ></right-toolbar>
  128. </el-row>
  129. <!-- 列表 -->
  130. <el-table
  131. highlight-current-row
  132. v-loading="loading"
  133. :data="list"
  134. @row-click="tableRowClick"
  135. :height="tableHeight"
  136. style="width: 100%; overflow: auto"
  137. >
  138. <!-- <el-table-column type="expand">
  139. <template slot-scope="props">
  140. <el-form ref="form" label-width="180px" label-position="left">
  141. <el-row :gutter="20">
  142. <el-col :span="6">
  143. <el-form-item label="单位名称:" prop="orgName">
  144. <strong>{{ props.row.orgName }}</strong>
  145. </el-form-item></el-col>
  146. <el-col :span="6">
  147. <el-form-item label="单位地址:" prop="dwdz">
  148. <strong>{{ props.row.dwdz }}</strong>
  149. </el-form-item>
  150. </el-col>
  151. <el-col :span="6">
  152. <el-form-item label="单位拼音简称:" prop="dwpyjc">
  153. <strong>{{ props.row.dwpyjc }}</strong>
  154. </el-form-item>
  155. </el-col>
  156. <el-col :span="6">
  157. <el-form-item label="监管单位类别:" prop="dwlx">
  158. <strong>
  159. <dict-tag :type="DICT_TYPE.BACKEND_EMP_DWLX" :value="props.row.dwlx" /></strong>
  160. </el-form-item>
  161. </el-col>
  162. </el-row>
  163. <el-row :gutter="20">
  164. <el-col :span="6">
  165. <el-form-item label="经济所有制:" prop="jjsyz">
  166. <strong>{{ props.row.jjsyz }}</strong>
  167. </el-form-item>
  168. </el-col>
  169. <el-col :span="6">
  170. <el-form-item label="单位成立时间:" prop="dwclsj">
  171. <strong>{{ parseTime(props.row.dwclsj) }}</strong>
  172. </el-form-item>
  173. </el-col>
  174. <el-col :span="6">
  175. <el-form-item label="单位等级:" prop="dwdj">
  176. <strong>
  177. <dict-tag :type="DICT_TYPE.DICT_IMPORTTANT_ORG_LEVEL" :value="props.row.dwdj" />
  178. </strong>
  179. </el-form-item>
  180. </el-col>
  181. <el-col :span="6"><el-form-item label="单位类型:" prop="dwxz">
  182. <strong>
  183. <dict-tag :type="DICT_TYPE.BACKEND_ORG_TYPE" :value="props.row.dwxz" /></strong>
  184. </el-form-item></el-col>
  185. </el-row>
  186. <el-row :gutter="20">
  187. <el-col :span="6"><el-form-item label="其他情况:" prop="qtqk">
  188. <strong>{{ props.row.qtqk }}</strong>
  189. </el-form-item>
  190. </el-col>
  191. <el-col :span="6">
  192. <el-form-item label="行政区域:" prop="xzqy">
  193. <strong>{{ props.row.xzqy }}</strong>
  194. </el-form-item>
  195. </el-col>
  196. <el-col :span="6">
  197. <el-form-item label="组织结构代码:" prop="zzjgdm">
  198. <strong>{{ props.row.zzjgdm }}</strong>
  199. </el-form-item>
  200. </el-col>
  201. <el-col :span="6">
  202. <el-form-item label="负责人:" prop="orgCharge">
  203. <strong>{{ props.row.orgCharge }}</strong>
  204. </el-form-item>
  205. </el-col>
  206. </el-row>
  207. <el-row :gutter="20">
  208. <el-col :span="6">
  209. <el-form-item label="负责人身份证:" prop="frdbsfz">
  210. <strong>{{ props.row.frdbsfz }}</strong>
  211. </el-form-item>
  212. </el-col>
  213. <el-col :span="6">
  214. <el-form-item label="负责人电话:" prop="frdbdh">
  215. <strong>{{ props.row.frdbdh }}</strong>
  216. </el-form-item>
  217. </el-col>
  218. <el-col :span="6">
  219. <el-form-item label="消防安全负责人:" prop="aqzrr">
  220. <strong>{{ props.row.aqzrr }}</strong>
  221. </el-form-item>
  222. </el-col>
  223. <el-col :span="6">
  224. <el-form-item label="消防安全负责人身份证:" prop="aqzrrsfz">
  225. <strong>{{ props.row.aqzrrsfz }}</strong>
  226. </el-form-item>
  227. </el-col>
  228. </el-row>
  229. <el-row :gutter="20">
  230. <el-col :span="6">
  231. <el-form-item label="消防安全负责人电话:" prop="aqzrrdh">
  232. <strong>{{ props.row.aqzrrdh }}</strong>
  233. </el-form-item>
  234. </el-col>
  235. <el-col :span="6">
  236. <el-form-item label="单位电子邮箱:" prop="dwdzyx">
  237. <strong>{{ props.row.dwdzyx }}</strong>
  238. </el-form-item>
  239. </el-col>
  240. <el-col :span="6">
  241. <el-form-item label="消防安全管理人:" prop="aqglr">
  242. <strong>{{ props.row.aqglr }}</strong>
  243. </el-form-item>
  244. </el-col>
  245. <el-col :span="6">
  246. <el-form-item label="消防安全管理人身份证:" prop="aqglrsfz">
  247. <strong>{{ props.row.aqglrsfz }}</strong>
  248. </el-form-item>
  249. </el-col>
  250. </el-row>
  251. <el-row :gutter="20">
  252. <el-col :span="6">
  253. <el-form-item label="消防安全管理人电话:" prop="aqglrdh">
  254. <strong>{{ props.row.aqglrdh }}</strong>
  255. </el-form-item>
  256. </el-col>
  257. <el-col :span="6">
  258. <el-form-item label="专兼职消防管理人:" prop="zjzxfglr">
  259. <strong>{{ props.row.zjzxfglr }}</strong>
  260. </el-form-item>
  261. </el-col>
  262. <el-col :span="6">
  263. <el-form-item label="专兼职消防管理人身份证:" prop="zjzxfglrsfz">
  264. <strong>{{ props.row.zjzxfglrsfz }}</strong>
  265. </el-form-item>
  266. </el-col>
  267. <el-col :span="6">
  268. <el-form-item label="专兼职消防管理人电话:" prop="zjzxfglrdh">
  269. <strong>{{ props.row.zjzxfglrdh }}</strong>
  270. </el-form-item>
  271. </el-col>
  272. </el-row>
  273. <el-row :gutter="20">
  274. <el-col :span="6">
  275. <el-form-item label="单位电话:" prop="dwdh">
  276. <strong>{{ props.row.dwdh }}</strong>
  277. </el-form-item>
  278. </el-col>
  279. <el-col :span="6">
  280. <el-form-item label="单位传真:" prop="dwcz">
  281. <strong>{{ props.row.dwcz }}</strong>
  282. </el-form-item>
  283. </el-col>
  284. <el-col :span="6">
  285. <el-form-item label="单位邮政编码:" prop="yzbm">
  286. <strong>{{ props.row.yzbm }}</strong>
  287. </el-form-item>
  288. </el-col>
  289. <el-col :span="6">
  290. <el-form-item label="上级消防管辖单位:" prop="sjxfgxdw">
  291. <strong>{{ deptOptionsTrans(props.row.sjxfgxdw) }}</strong>
  292. </el-form-item>
  293. </el-col>
  294. </el-row>
  295. <el-row :gutter="20">
  296. <el-col :span="6">
  297. <el-form-item label="确认重点单位时间:" prop="qrsj">
  298. <strong>{{ parseTime(props.row.qrsj) }} </strong>
  299. </el-form-item>
  300. </el-col>
  301. <el-col :span="6">
  302. <el-form-item label="取消重点单位时间:" prop="qxsj">
  303. <strong>{{ parseTime(props.row.qxsj) }} </strong>
  304. </el-form-item>
  305. </el-col>
  306. </el-row>
  307. </el-form>
  308. </template>
  309. </el-table-column> -->
  310. <el-table-column label="ID" align="center" prop="id" width="80" />
  311. <el-table-column
  312. label="单位名称"
  313. align="center"
  314. prop="orgName"
  315. width="200"
  316. >
  317. <template v-slot="scope">
  318. <span style="color: forestgreen" @click="opentabs = true">{{
  319. scope.row.orgName
  320. }}</span>
  321. </template>
  322. </el-table-column>
  323. <el-table-column
  324. label="单位地址"
  325. align="center"
  326. prop="dwdz"
  327. width="260"
  328. />
  329. <!-- <el-table-column label="单位拼音简称" align="center" prop="dwpyjc" /> -->
  330. <el-table-column
  331. label="监管单位类别"
  332. align="center"
  333. prop="dwlx"
  334. width="100"
  335. >
  336. <template v-slot="scope">
  337. <dict-tag
  338. :type="DICT_TYPE.BACKEND_ORG_TYPE"
  339. :value="scope.row.dwlx"
  340. />
  341. </template>
  342. </el-table-column>
  343. <!-- <el-table-column label="经济所有制" align="center" prop="jjsyz" /> -->
  344. <!-- <el-table-column label="单位成立时间" align="center" prop="dwclsj" width="180">
  345. <template v-slot="scope">
  346. <span>{{ parseTime(scope.row.dwclsj) }}</span>
  347. </template>
  348. </el-table-column> -->
  349. <!-- <el-table-column label="单位等级" align="center" prop="dwdj" /> -->
  350. <el-table-column label="单位类型" align="center" prop="dwxz">
  351. <template v-slot="scope">
  352. <dict-tag
  353. :type="DICT_TYPE.BACKEND_ORG_TYPE"
  354. :value="scope.row.dwxz"
  355. />
  356. </template>
  357. </el-table-column>
  358. <!-- <el-table-column label="其他情况" align="center" prop="qtqk" /> -->
  359. <el-table-column
  360. label="行政区域"
  361. align="center"
  362. prop="xzqy"
  363. width="80px"
  364. />
  365. <!-- <el-table-column label="组织结构代码" align="center" prop="zzjgdm" /> -->
  366. <el-table-column label="负责人" align="center" prop="orgCharge" />
  367. <!-- <el-table-column label="负责人身份证" align="center" prop="frdbsfz" /> -->
  368. <el-table-column
  369. label="负责人电话"
  370. align="center"
  371. prop="frdbdh"
  372. width="120px"
  373. />
  374. <!-- <el-table-column label="消防安全负责人" align="center" prop="aqzrr" /> -->
  375. <!-- <el-table-column label="消防安全负责人身份证" align="center" prop="aqzrrsfz" /> -->
  376. <!-- <el-table-column label="消防安全负责人电话" align="center" prop="aqzrrdh" /> -->
  377. <!-- <el-table-column label="单位电子邮箱" align="center" prop="dwdzyx" /> -->
  378. <!-- <el-table-column label="消防安全管理人" align="center" prop="aqglr" /> -->
  379. <!-- <el-table-column label="消防安全管理人身份证" align="center" prop="aqglrsfz" /> -->
  380. <!-- <el-table-column label="消防安全管理人电话" align="center" prop="aqglrdh" /> -->
  381. <!-- <el-table-column label="专兼职消防管理人" align="center" prop="zjzxfglr" /> -->
  382. <!-- <el-table-column label="专兼职消防管理人身份证" align="center" prop="zjzxfglrsfz" /> -->
  383. <!-- <el-table-column label="专兼职消防管理人电话" align="center" prop="zjzxfglrdh" /> -->
  384. <el-table-column
  385. label="单位电话"
  386. align="center"
  387. prop="dwdh"
  388. width="120px"
  389. />
  390. <!-- <el-table-column label="单位传真" align="center" prop="dwcz" /> -->
  391. <!-- <el-table-column label="单位邮政编码" align="center" prop="yzbm" /> -->
  392. <el-table-column
  393. label="上级消防管辖单位"
  394. align="center"
  395. prop="sjxfgxdw"
  396. width="130px"
  397. >
  398. <template v-slot="scope">
  399. <span>{{ deptOptionsTrans(scope.row.sjxfgxdw) }}</span>
  400. </template>
  401. </el-table-column>
  402. <!-- <el-table-column label="确认重点单位时间" align="center" prop="qrsj" width="180">
  403. <template v-slot="scope">
  404. <span>{{ parseTime(scope.row.qrsj) }}</span>
  405. </template>
  406. </el-table-column> -->
  407. <!-- <el-table-column label="取消重点单位时间" align="center" prop="qxsj" width="180">
  408. <template v-slot="scope">
  409. <span>{{ parseTime(scope.row.qxsj) }}</span>
  410. </template>
  411. </el-table-column> -->
  412. <!-- <el-table-column label="状态" align="center" prop="status">
  413. <template v-slot="scope">
  414. <dict-tag :type="DICT_TYPE.COMMON_STATUS" :value="scope.row.status" />
  415. </template>
  416. </el-table-column> -->
  417. <!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="260">
  418. <template v-slot="scope">
  419. <el-button size="mini" type="text" icon="el-icon-view" @click="handleSee(scope.row)">查看</el-button>
  420. <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
  421. v-hasPermi="['backend:org:update']">修改</el-button>
  422. <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
  423. v-hasPermi="['backend:org:delete']">删除</el-button>
  424. <el-button size="mini" type="text" icon="el-icon-download" @click="handleExportMsg(scope.row)"
  425. v-hasPermi="['backend:org:delete']">导出</el-button>
  426. </template>
  427. </el-table-column> -->
  428. <el-table-column
  429. label="操作"
  430. align="center"
  431. width="160"
  432. class-name="small-padding fixed-width"
  433. >
  434. <template v-slot="scope">
  435. <el-button
  436. size="mini"
  437. type="text"
  438. icon="el-icon-view"
  439. @click="handleSee(scope.row)"
  440. >查看</el-button
  441. >
  442. <el-dropdown
  443. @command="
  444. (command) => handleCommand(command, scope.$index, scope.row)
  445. "
  446. v-hasPermi="['backend:org:update', 'backend:org:delete']"
  447. >
  448. <el-button size="mini" type="text" icon="el-icon-d-arrow-right"
  449. >更多</el-button
  450. >
  451. <el-dropdown-menu slot="dropdown">
  452. <el-dropdown-item
  453. command="handleUpdate"
  454. size="mini"
  455. type="text"
  456. icon="el-icon-edit"
  457. v-hasPermi="['backend:org:update']"
  458. >修改</el-dropdown-item
  459. >
  460. <el-dropdown-item
  461. command="handleDelete"
  462. size="mini"
  463. type="text"
  464. icon="el-icon-delete"
  465. v-hasPermi="['backend:org:delete']"
  466. >删除</el-dropdown-item
  467. >
  468. <el-dropdown-item
  469. command="handleExportMsg"
  470. size="mini"
  471. type="text"
  472. icon="el-icon-download"
  473. v-hasPermi="['backend:org:delete']"
  474. >导出二维码</el-dropdown-item
  475. >
  476. </el-dropdown-menu>
  477. </el-dropdown>
  478. </template>
  479. </el-table-column>
  480. </el-table>
  481. <!-- 分页组件 -->
  482. <pagination
  483. v-show="total > 0"
  484. :total="total"
  485. :page.sync="queryParams.pageNo"
  486. :limit.sync="queryParams.pageSize"
  487. @pagination="getList"
  488. />
  489. <!-- 对话框(添加 / 修改) -->
  490. <el-dialog
  491. :title="title"
  492. :visible.sync="open"
  493. width="80%"
  494. v-dialogDrag
  495. append-to-body
  496. class="details"
  497. >
  498. <el-form
  499. ref="form"
  500. :model="form"
  501. label-width="auto"
  502. label-position="left"
  503. :rules="rules"
  504. style="min-width: 900px"
  505. >
  506. <el-row :gutter="20">
  507. <el-col :span="10">
  508. <el-form-item label="单位名称" prop="orgName" required>
  509. <el-input
  510. v-model="form.orgName"
  511. placeholder="请输入"
  512. clearable
  513. /> </el-form-item
  514. ></el-col>
  515. <el-col :span="12">
  516. <el-form-item label="上级消防管辖单位" prop="sjxfgxdw" required>
  517. <treeselect
  518. v-model="form.sjxfgxdw"
  519. :options="deptOptions"
  520. :show-count="true"
  521. :clearable="false"
  522. placeholder="请选择"
  523. :normalizer="normalizer"
  524. />
  525. </el-form-item>
  526. </el-col>
  527. </el-row>
  528. <el-row :gutter="20">
  529. <el-col :span="10">
  530. <el-form-item label="单位地址" prop="dwdz">
  531. <el-input
  532. v-model="form.dwdz"
  533. placeholder="请输入"
  534. clearable
  535. /> </el-form-item
  536. ></el-col>
  537. <el-col :span="12">
  538. <el-form-item label="监管单位类别" prop="dwlx">
  539. <el-select
  540. v-model="form.dwlx"
  541. placeholder="请选择"
  542. clearable
  543. size="small"
  544. style="width: 100%"
  545. >
  546. <!-- <el-option v-for="dict in this.getDictDatas(DICT_TYPE.BACKEND_EMP_DWLX)" :key="dict.value"
  547. :label="dict.label" :value="dict.value" /> -->
  548. <el-option
  549. v-for="dict in this.getDictDatas(DICT_TYPE.BACKEND_ORG_TYPE)"
  550. :key="dict.value"
  551. :label="dict.label"
  552. :value="dict.value"
  553. />
  554. </el-select> </el-form-item
  555. ></el-col>
  556. </el-row>
  557. <el-row :gutter="20">
  558. <el-col :span="10">
  559. <el-form-item label="行政区域" prop="xzqy">
  560. <el-input v-model="form.xzqy" placeholder="请输入" clearable />
  561. </el-form-item>
  562. </el-col>
  563. <el-col :span="12">
  564. <el-form-item label="负责人" prop="orgCharge">
  565. <el-input
  566. v-model="form.orgCharge"
  567. placeholder="请输入"
  568. clearable
  569. />
  570. </el-form-item>
  571. </el-col>
  572. </el-row>
  573. <el-row :gutter="20">
  574. <el-col :span="10">
  575. <el-form-item label="负责人电话" prop="frdbdh">
  576. <el-input v-model="form.frdbdh" placeholder="请输入" clearable />
  577. </el-form-item>
  578. </el-col>
  579. <el-col :span="12">
  580. <el-form-item label="单位电话" prop="dwdh">
  581. <el-input v-model="form.dwdh" placeholder="请输入" clearable />
  582. </el-form-item>
  583. </el-col>
  584. </el-row>
  585. <el-row :gutter="20">
  586. <el-col :span="10"
  587. ><el-form-item label="负责人身份证" prop="frdbsfz">
  588. <el-input
  589. v-model="form.frdbsfz"
  590. placeholder="请输入"
  591. clearable
  592. /> </el-form-item
  593. ></el-col>
  594. <el-col :span="12">
  595. <el-form-item label="单位邮政编码" prop="yzbm">
  596. <el-input
  597. v-model="form.yzbm"
  598. placeholder="请输入"
  599. clearable
  600. /> </el-form-item
  601. ></el-col>
  602. <!-- <el-form-item label="单位等级" prop="dwdj">
  603. <el-select v-model="form.dwdj" placeholder="请选择" clearable size="small" style="width: 100%">
  604. <el-option v-for="dict in this.getDictDatas(
  605. DICT_TYPE.DICT_IMPORTTANT_ORG_LEVEL
  606. )" :key="dict.value" :label="dict.label" :value="dict.value" />
  607. </el-select> </el-form-item></el-col> -->
  608. </el-row>
  609. <!--
  610. <el-col :span="10"><el-form-item label="负责人身份证" prop="frdbsfz">
  611. <el-input v-model="form.frdbsfz" placeholder="请输入" clearable /> </el-form-item></el-col>
  612. <el-col :span="12">
  613. <el-form-item label="负责人电话" prop="frdbdh">
  614. <el-input v-model="form.frdbdh" placeholder="请输入" clearable /> </el-form-item></el-col> -->
  615. <el-row :gutter="20">
  616. <el-col :span="10">
  617. <el-form-item label="消防安全负责人" prop="aqzrr">
  618. <el-input
  619. v-model="form.aqzrr"
  620. placeholder="请输入"
  621. clearable
  622. /> </el-form-item
  623. ></el-col>
  624. <el-col :span="12">
  625. <el-form-item label="消防安全负责人身份证" prop="aqzrrsfz">
  626. <el-input
  627. v-model="form.aqzrrsfz"
  628. placeholder="请输入"
  629. clearable
  630. /> </el-form-item
  631. ></el-col>
  632. </el-row>
  633. <el-row :gutter="20">
  634. <el-col :span="10">
  635. <el-form-item label="消防安全管理人" prop="aqglr">
  636. <el-input
  637. v-model="form.aqglr"
  638. placeholder="请输入"
  639. clearable
  640. /> </el-form-item
  641. ></el-col>
  642. <el-col :span="12">
  643. <el-form-item label="消防安全管理人身份证" prop="aqglrsfz">
  644. <el-input
  645. v-model="form.aqglrsfz"
  646. placeholder="请输入"
  647. clearable
  648. /> </el-form-item
  649. ></el-col>
  650. </el-row>
  651. <el-row :gutter="20">
  652. <el-col :span="10">
  653. <el-form-item label="消防安全负责人电话" prop="aqzrrdh">
  654. <el-input
  655. v-model="form.aqzrrdh"
  656. placeholder="请输入"
  657. clearable
  658. /> </el-form-item
  659. ></el-col>
  660. <el-col :span="12">
  661. <el-form-item label="单位电子邮箱" prop="dwdzyx">
  662. <el-input
  663. v-model="form.dwdzyx"
  664. placeholder="请输入"
  665. clearable
  666. /> </el-form-item
  667. ></el-col>
  668. </el-row>
  669. <el-row :gutter="20">
  670. <el-col :span="10">
  671. <el-form-item label="专兼职消防管理人身份证" prop="zjzxfglrsfz">
  672. <el-input
  673. v-model="form.zjzxfglrsfz"
  674. placeholder="请输入"
  675. clearable
  676. /> </el-form-item
  677. ></el-col>
  678. <el-col :span="12">
  679. <el-form-item label="专兼职消防管理人电话" prop="zjzxfglrdh">
  680. <el-input
  681. v-model="form.zjzxfglrdh"
  682. placeholder="请输入"
  683. clearable
  684. /> </el-form-item
  685. ></el-col>
  686. </el-row>
  687. <!-- <el-row :gutter="20">
  688. <el-col :span="10"
  689. ><el-form-item label="组织结构代码" prop="zzjgdm">
  690. <el-input
  691. v-model="form.zzjgdm"
  692. placeholder="请输入"
  693. clearable
  694. /> </el-form-item
  695. ></el-col>
  696. </el-row> -->
  697. <el-row :gutter="20">
  698. <el-col :span="10">
  699. <el-form-item label="单位类型" prop="dwxz">
  700. <el-select
  701. v-model="form.dwxz"
  702. placeholder="请选择"
  703. clearable
  704. size="small"
  705. style="width: 100%"
  706. >
  707. <el-option
  708. v-for="dict in this.getDictDatas(DICT_TYPE.BACKEND_ORG_TYPE)"
  709. :key="dict.value"
  710. :label="dict.label"
  711. :value="dict.value"
  712. />
  713. </el-select> </el-form-item
  714. ></el-col>
  715. <el-col :span="12">
  716. <el-form-item label="经济所有制" prop="jjsyz">
  717. <el-input
  718. v-model="form.jjsyz"
  719. placeholder="请输入"
  720. clearable
  721. /> </el-form-item
  722. ></el-col>
  723. </el-row>
  724. <el-row :gutter="20">
  725. <el-col :span="10">
  726. <el-form-item label="其他情况" prop="qtqk">
  727. <el-input v-model="form.qtqk" placeholder="请输入" clearable />
  728. </el-form-item>
  729. </el-col>
  730. <el-col :span="12">
  731. <el-form-item label="单位传真" prop="dwcz">
  732. <el-input
  733. v-model="form.dwcz"
  734. placeholder="请输入"
  735. clearable
  736. /> </el-form-item
  737. ></el-col>
  738. </el-row>
  739. <!-- <el-row :gutter="20">
  740. <el-col :span="10">
  741. <el-col :span="12">
  742. <el-form-item label="单位拼音简称" prop="dwpyjc">
  743. <el-input v-model="form.dwpyjc" placeholder="请输入" clearable /> </el-form-item></el-col>
  744. </el-row> -->
  745. <el-row :gutter="20">
  746. <el-col :span="10">
  747. <el-form-item label="确认重点单位时间" prop="qrsj">
  748. <el-date-picker
  749. clearable
  750. v-model="form.qrsj"
  751. type="date"
  752. value-format="timestamp"
  753. placeholder="请选择"
  754. style="width: 100%"
  755. /> </el-form-item
  756. ></el-col>
  757. <el-col :span="12">
  758. <el-form-item label="取消重点单位时间" prop="qxsj">
  759. <el-date-picker
  760. clearable
  761. v-model="form.qxsj"
  762. type="date"
  763. value-format="timestamp"
  764. placeholder="请选择"
  765. style="width: 100%"
  766. /> </el-form-item
  767. ></el-col>
  768. </el-row>
  769. <el-row :gutter="20">
  770. <!-- <el-col :span="10">
  771. <el-form-item label="单位序号" prop="dwid">
  772. <el-input
  773. v-model="form.dwid"
  774. placeholder="请输入"
  775. clearable /></el-form-item
  776. ></el-col> -->
  777. <el-col :span="10"
  778. ><el-form-item label="单位成立时间" prop="dwclsj">
  779. <el-date-picker
  780. clearable
  781. v-model="form.dwclsj"
  782. type="datetime"
  783. value-format="timestamp"
  784. placeholder="请选择"
  785. style="width: 100%"
  786. /> </el-form-item
  787. ></el-col>
  788. <el-col :span="12">
  789. <el-form-item label="单位排序" prop="roleSort">
  790. <el-input
  791. v-model="form.sort"
  792. placeholder="请输入"
  793. clearable
  794. @keyup.enter.native="handleQuery"
  795. />
  796. </el-form-item>
  797. </el-col>
  798. </el-row>
  799. <!-- <el-row :gutter="20">
  800. <el-col :span="12">
  801. <el-form-item label="状态" prop="status">
  802. <el-radio-group v-model="form.status" style="width: 100%;">
  803. <el-radio v-for="dict in this.getDictDatas(DICT_TYPE.COMMON_STATUS)" :key="dict.value"
  804. :label="parseInt(dict.value)">{{ dict.label }}</el-radio>
  805. </el-radio-group>
  806. </el-form-item>
  807. </el-col>
  808. <el-col :span="12"></el-col>
  809. </el-row> -->
  810. </el-form>
  811. <div slot="footer" class="dialog-footer">
  812. <el-button type="primary" @click="submitForm">确 定</el-button>
  813. <el-button @click="cancel">取 消</el-button>
  814. </div>
  815. </el-dialog>
  816. <!-- tabs -->
  817. <el-dialog
  818. :visible.sync="opentabs"
  819. width="85vw"
  820. append-to-body
  821. v-if="opentabs"
  822. >
  823. <el-tabs
  824. type="border-card"
  825. v-model.trim="selectedTab"
  826. @tab-click="clickTab"
  827. >
  828. <el-tab-pane label="单位建筑信息 " name="buildingInfo">
  829. <buildingInfo :orgId="orgId"></buildingInfo>
  830. </el-tab-pane>
  831. <el-tab-pane label="单位人员管理 " name="emp">
  832. <emp :sjjg="orgId"></emp>
  833. </el-tab-pane>
  834. <el-tab-pane label="单位设施管理" name="fpd">
  835. <fpd :orgId="orgId"></fpd>
  836. </el-tab-pane>
  837. <!-- <el-tab-pane label="隐患管理" name="hiddenDanger">
  838. <hiddenDanger :orgId="orgId"></hiddenDanger>
  839. </el-tab-pane> -->
  840. <el-tab-pane label="微型消防站管理" name="microStation">
  841. <microStation :orgId="orgId"></microStation>
  842. </el-tab-pane>
  843. <el-tab-pane label="培训演练" name="orgDrill">
  844. <orgDrill :orgId="orgId"></orgDrill>
  845. </el-tab-pane>
  846. <el-tab-pane label="维保报告" name="orgReport">
  847. <orgReport :orgId="orgId"></orgReport>
  848. </el-tab-pane>
  849. <!-- <el-tab-pane label="主动检查" name="inspectHis1">
  850. <inspectHis :orgId="orgId" :taskType="inspectHis1"></inspectHis>
  851. </el-tab-pane>
  852. <el-tab-pane label="主动巡查" name="inspectHis2">
  853. <inspectHis :orgId="orgId" :taskType="inspectHis2"></inspectHis>
  854. </el-tab-pane>
  855. <el-tab-pane label="每日检查" name="inspectHis3">
  856. <inspectHis :orgId="orgId" :taskType="inspectHis3"></inspectHis>
  857. </el-tab-pane> -->
  858. </el-tabs>
  859. <div slot="footer" class="dialog-footer">
  860. <el-button type="primary" @click="opentabs = false">关 闭</el-button>
  861. </div>
  862. </el-dialog>
  863. <el-dialog
  864. title="详细信息查看"
  865. :visible.sync="openSeedialog"
  866. width="85vw"
  867. class="detail detail-style"
  868. >
  869. <el-form
  870. ref="form"
  871. :model="form"
  872. label-width="auto"
  873. label-position="left"
  874. >
  875. <el-row :gutter="20">
  876. <el-col :span="10">
  877. <el-form-item label="单位名称:" prop="orgName">
  878. <div>{{ form.orgName }}</div>
  879. </el-form-item></el-col
  880. >
  881. <el-col :span="14">
  882. <el-form-item label="单位地址:" prop="dwdz">
  883. <div>{{ form.dwdz }}</div>
  884. </el-form-item>
  885. </el-col>
  886. </el-row>
  887. <el-row :gutter="20">
  888. <el-col :span="10">
  889. <!-- <el-form-item label="单位拼音简称:" prop="dwpyjc">
  890. <div>{{ form.dwpyjc }}</div>
  891. </el-form-item> -->
  892. <el-form-item label="上级消防管辖单位:" prop="sjxfgxdw">
  893. <div>{{ deptOptionsTrans(form.sjxfgxdw) }}</div>
  894. </el-form-item>
  895. </el-col>
  896. <el-col :span="14">
  897. <el-form-item label="监管单位类别:" prop="dwlx">
  898. <div>
  899. <dict-tag
  900. :type="DICT_TYPE.BACKEND_EMP_DWLX"
  901. :value="form.dwlx"
  902. />
  903. </div>
  904. </el-form-item>
  905. </el-col>
  906. </el-row>
  907. <el-row :gutter="20">
  908. <el-col :span="10">
  909. <el-form-item label="经济所有制:" prop="jjsyz">
  910. <div>{{ form.jjsyz }}</div>
  911. </el-form-item>
  912. </el-col>
  913. <el-col :span="14">
  914. <el-form-item label="单位成立时间:" prop="dwclsj">
  915. <div>{{ parseTime(form.dwclsj) }}</div>
  916. </el-form-item>
  917. </el-col>
  918. </el-row>
  919. <el-row :gutter="20">
  920. <el-col :span="10">
  921. <!-- <el-form-item label="单位等级:" prop="dwdj">
  922. <div>
  923. <dict-tag
  924. :type="DICT_TYPE.DICT_IMPORTTANT_ORG_LEVEL"
  925. :value="form.dwdj"
  926. />
  927. </div>
  928. </el-form-item> -->
  929. <el-form-item label="负责人:" prop="orgCharge">
  930. <div>{{ form.orgCharge }}</div>
  931. </el-form-item>
  932. </el-col>
  933. <el-col :span="14"
  934. ><el-form-item label="单位类型:" prop="dwxz">
  935. <div>
  936. <dict-tag
  937. :type="DICT_TYPE.BACKEND_ORG_TYPE"
  938. :value="form.dwxz"
  939. />
  940. </div> </el-form-item
  941. ></el-col>
  942. </el-row>
  943. <el-row :gutter="20">
  944. <el-col :span="10"
  945. ><el-form-item label="其他情况:" prop="qtqk">
  946. <div>{{ form.qtqk }}</div>
  947. </el-form-item>
  948. </el-col>
  949. <el-col :span="14">
  950. <el-form-item label="行政区域:" prop="xzqy">
  951. <div>{{ form.xzqy }}</div>
  952. </el-form-item>
  953. </el-col>
  954. </el-row>
  955. <!-- <el-row :gutter="20">
  956. <el-col :span="10">
  957. <el-form-item label="组织结构代码:" prop="zzjgdm">
  958. <div>{{ form.zzjgdm }}</div>
  959. </el-form-item>
  960. </el-col>
  961. <el-col :span="14">
  962. <el-form-item label="负责人:" prop="orgCharge">
  963. <div>{{ form.orgCharge }}</div>
  964. </el-form-item>
  965. </el-col>
  966. </el-row> -->
  967. <el-row :gutter="20">
  968. <el-col :span="10">
  969. <el-form-item label="负责人身份证:" prop="frdbsfz">
  970. <div>{{ form.frdbsfz }}</div>
  971. </el-form-item>
  972. </el-col>
  973. <el-col :span="14">
  974. <el-form-item label="负责人电话:" prop="frdbdh">
  975. <div>{{ form.frdbdh }}</div>
  976. </el-form-item>
  977. </el-col>
  978. </el-row>
  979. <el-row :gutter="20">
  980. <el-col :span="10">
  981. <el-form-item label="消防安全负责人:" prop="aqzrr">
  982. <div>{{ form.aqzrr }}</div>
  983. </el-form-item>
  984. </el-col>
  985. <el-col :span="14">
  986. <el-form-item label="消防安全负责人身份证:" prop="aqzrrsfz">
  987. <div>{{ form.aqzrrsfz }}</div>
  988. </el-form-item>
  989. </el-col>
  990. </el-row>
  991. <el-row :gutter="20">
  992. <el-col :span="10">
  993. <el-form-item label="消防安全负责人电话:" prop="aqzrrdh">
  994. <div>{{ form.aqzrrdh }}</div>
  995. </el-form-item>
  996. </el-col>
  997. <el-col :span="14">
  998. <el-form-item label="单位电子邮箱:" prop="dwdzyx">
  999. <div>{{ form.dwdzyx }}</div>
  1000. </el-form-item>
  1001. </el-col>
  1002. </el-row>
  1003. <el-row :gutter="20">
  1004. <el-col :span="10">
  1005. <el-form-item label="消防安全管理人:" prop="aqglr">
  1006. <div>{{ form.aqglr }}</div>
  1007. </el-form-item>
  1008. </el-col>
  1009. <el-col :span="14">
  1010. <el-form-item label="消防安全管理人身份证:" prop="aqglrsfz">
  1011. <div>{{ form.aqglrsfz }}</div>
  1012. </el-form-item>
  1013. </el-col>
  1014. </el-row>
  1015. <el-row :gutter="20">
  1016. <el-col :span="10">
  1017. <el-form-item label="消防安全管理人电话:" prop="aqglrdh">
  1018. <div>{{ form.aqglrdh }}</div>
  1019. </el-form-item>
  1020. </el-col>
  1021. <el-col :span="14">
  1022. <el-form-item label="专兼职消防管理人:" prop="zjzxfglr">
  1023. <div>{{ form.zjzxfglr }}</div>
  1024. </el-form-item>
  1025. </el-col>
  1026. </el-row>
  1027. <el-row :gutter="20">
  1028. <el-col :span="10">
  1029. <el-form-item label="专兼职消防管理人身份证:" prop="zjzxfglrsfz">
  1030. <div>{{ form.zjzxfglrsfz }}</div>
  1031. </el-form-item>
  1032. </el-col>
  1033. <el-col :span="14">
  1034. <el-form-item label="专兼职消防管理人电话:" prop="zjzxfglrdh">
  1035. <div>{{ form.zjzxfglrdh }}</div>
  1036. </el-form-item>
  1037. </el-col>
  1038. </el-row>
  1039. <el-row :gutter="20">
  1040. <el-col :span="10">
  1041. <el-form-item label="单位电话:" prop="dwdh">
  1042. <div>{{ form.dwdh }}</div>
  1043. </el-form-item>
  1044. </el-col>
  1045. <el-col :span="14">
  1046. <el-form-item label="单位传真:" prop="dwcz">
  1047. <div>{{ form.dwcz }}</div>
  1048. </el-form-item>
  1049. </el-col>
  1050. </el-row>
  1051. <el-row :gutter="20">
  1052. <el-col :span="10">
  1053. <el-form-item label="确认重点单位时间:" prop="qrsj">
  1054. <div>{{ parseTime(form.qrsj) }}</div>
  1055. </el-form-item>
  1056. </el-col>
  1057. <el-col :span="14">
  1058. <el-form-item label="取消重点单位时间:" prop="qxsj">
  1059. <div>{{ parseTime(form.qxsj) }}</div>
  1060. </el-form-item>
  1061. </el-col>
  1062. </el-row>
  1063. <el-row :gutter="20">
  1064. <el-col :span="10">
  1065. <el-form-item label="单位邮政编码:" prop="yzbm">
  1066. <div>{{ form.yzbm }}</div>
  1067. </el-form-item>
  1068. </el-col>
  1069. <!-- <el-col :span="14">
  1070. <el-form-item label="上级消防管辖单位:" prop="sjxfgxdw">
  1071. <div>{{ deptOptionsTrans(form.sjxfgxdw) }}</div>
  1072. </el-form-item>
  1073. </el-col> -->
  1074. </el-row>
  1075. </el-form>
  1076. <span slot="footer" class="dialog-footer">
  1077. <el-button @click="openSeedialog = false">关 闭</el-button>
  1078. </span>
  1079. </el-dialog>
  1080. </div>
  1081. </template>
  1082. <script>
  1083. import { DICT_TYPE, getDictDatas } from "@/utils/dict";
  1084. import { listSimpleDepts } from "@/api/system/dept";
  1085. import {
  1086. createOrg,
  1087. updateOrg,
  1088. deleteOrg,
  1089. getOrg,
  1090. getOrgPage,
  1091. exportOrgExcel,
  1092. exportOrgCode,
  1093. } from "@/api/backend/org";
  1094. import dept from "@/views/system/dept/index";
  1095. import emp from "@/views/unitorg/emp/index";
  1096. import fpd from "@/views/unitorg/fpd/index";
  1097. import buildingInfo from "@/views/unitorg/buildingInfo/index";
  1098. import hiddenDanger from "@/views/backend/hiddenDanger/index";
  1099. import microStation from "@/views/unitorg/microStation/index";
  1100. import inspectHis from "@/views/backend/inspectHis/index";
  1101. import orgDrill from "@/views/backend/orgDrill/index";
  1102. import orgReport from "@/views/backend/orgReport/index";
  1103. import { getTableHeight } from "@/utils/ruoyi.js";
  1104. import Treeselect from "@riophae/vue-treeselect";
  1105. import "@riophae/vue-treeselect/dist/vue-treeselect.css";
  1106. export default {
  1107. name: "Org",
  1108. components: {
  1109. Treeselect,
  1110. dept,
  1111. emp,
  1112. buildingInfo,
  1113. fpd,
  1114. hiddenDanger,
  1115. microStation,
  1116. inspectHis,
  1117. orgDrill,
  1118. orgReport,
  1119. },
  1120. data() {
  1121. return {
  1122. // 格式化部门的下拉框
  1123. normalizer(node) {
  1124. return {
  1125. id: node.id,
  1126. label: node.name,
  1127. children: node.children,
  1128. };
  1129. },
  1130. deptOptionsList: {},
  1131. // 部门树选项
  1132. deptOptions: undefined,
  1133. // 遮罩层
  1134. loading: true,
  1135. // 导出遮罩层
  1136. exportLoading: false,
  1137. // 显示搜索条件
  1138. showSearch: true,
  1139. // 总条数
  1140. total: 0,
  1141. // 单位信息管理列表
  1142. list: [],
  1143. // 弹出层标题
  1144. title: "",
  1145. // 是否显示弹出层
  1146. open: false,
  1147. // 查询参数
  1148. queryParams: {
  1149. pageNo: 1,
  1150. pageSize: 10,
  1151. orgName: null,
  1152. dwdz: null,
  1153. dwlx: null,
  1154. dwxz: null,
  1155. xzqy: null,
  1156. orgCharge: null,
  1157. frdbdh: null,
  1158. dwdh: null,
  1159. sjxfgxdw: null,
  1160. status: null,
  1161. userId: this.$store.state.user.id,
  1162. },
  1163. // 表单参数
  1164. form: {
  1165. status: 0,
  1166. },
  1167. // 表单校验
  1168. rules: {
  1169. status: [{ required: true, message: "状态不能为空", trigger: "blur" }],
  1170. orgName: [
  1171. { required: true, message: "单位名称不能为空", trigger: "blur" },
  1172. ],
  1173. sjxfgxdw: [
  1174. { required: true, message: "上级管辖单位不能为空", trigger: "blur" },
  1175. ],
  1176. dwdzyx: [
  1177. {
  1178. type: "email",
  1179. message: "请输入正确的邮箱地址",
  1180. trigger: ["blur", "change"],
  1181. },
  1182. ],
  1183. aqzrrsfz: [
  1184. { required: true, message: "请输入消防安全负责人", trigger: "blur" },
  1185. ],
  1186. aqglr: [
  1187. { required: true, message: "请输入消防安全管理人", trigger: "blur" },
  1188. ],
  1189. dwdz: [{ required: true, message: "请输入单位地址", trigger: "blur" }],
  1190. dwlx: [
  1191. { required: true, message: "请选择监管单位类别", trigger: "blur" },
  1192. ],
  1193. orgCharge: [
  1194. { required: true, message: "请输入负责人", trigger: "blur" },
  1195. ],
  1196. xzqy: [
  1197. { required: true, message: "请输入消防安全负责人", trigger: "blur" },
  1198. ],
  1199. aqzrr: [{ required: true, message: "请输入行政区域", trigger: "blur" }],
  1200. // aqzrrsfz:[{ required: true, message: "请输入消防安全负责人身份证", trigger: "blur" }],
  1201. // aqglrsfz:[{ required: true, message: "请输入消防安全管理人身份证", trigger: "blur" }],
  1202. frdbdh: [
  1203. {
  1204. required: true,
  1205. pattern:
  1206. /^(?:(?:\+|00)86)?1(?:3[\d]|4[5-79]|5[0-35-9]|6[5-7]|7[0-8]|8[\d]|9[189])\d{8}$/,
  1207. message: "请输入正确的手机号码",
  1208. trigger: "blur",
  1209. },
  1210. ],
  1211. dwdh: [
  1212. {
  1213. required: true,
  1214. pattern:
  1215. /^(?:(?:\+|00)86)?1(?:3[\d]|4[5-79]|5[0-35-9]|6[5-7]|7[0-8]|8[\d]|9[189])\d{8}$/,
  1216. message: "请输入正确的手机号码",
  1217. trigger: "blur",
  1218. },
  1219. ],
  1220. // 手机号
  1221. // frdbdh: [
  1222. // // 这个只能验证手机号
  1223. // // { pattern:/^0{0,1}(13[0-9]|15[7-9]|153|156|18[7-9])[0-9]{8}$/, message: "请输入合法手机号", trigger: "blur" }
  1224. // { pattern: /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/, message: "请输入合法手机号/电话号", trigger: ['blur', 'change'] }
  1225. // ],
  1226. // aqzrrdh: [
  1227. // // 这个只能验证手机号
  1228. // // { pattern:/^0{0,1}(13[0-9]|15[7-9]|153|156|18[7-9])[0-9]{8}$/, message: "请输入合法手机号", trigger: "blur" }
  1229. // { pattern: /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/, message: "请输入合法手机号/电话号", trigger: ['blur', 'change'] }
  1230. // ],
  1231. // zjzxfglrdh: [
  1232. // // 这个只能验证手机号
  1233. // // { pattern:/^0{0,1}(13[0-9]|15[7-9]|153|156|18[7-9])[0-9]{8}$/, message: "请输入合法手机号", trigger: "blur" }
  1234. // { pattern: /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/, message: "请输入合法手机号/电话号", trigger: ['blur', 'change'] }
  1235. // ],
  1236. // aqglrdh: [
  1237. // // 这个只能验证手机号
  1238. // // { pattern:/^0{0,1}(13[0-9]|15[7-9]|153|156|18[7-9])[0-9]{8}$/, message: "请输入合法手机号", trigger: "blur" }
  1239. // { pattern: /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/, message: "请输入合法手机号/电话号", trigger: ['blur', 'change'] }
  1240. // ],
  1241. // dwdh: [
  1242. // // 这个只能验证手机号
  1243. // // { pattern:/^0{0,1}(13[0-9]|15[7-9]|153|156|18[7-9])[0-9]{8}$/, message: "请输入合法手机号", trigger: "blur" }
  1244. // { pattern: /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/, message: "请输入合法手机号/电话号", trigger: ['blur', 'change'] }
  1245. // ],
  1246. // 身份证
  1247. frdbsfz: [
  1248. {
  1249. required: true,
  1250. pattern:
  1251. /(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$)/,
  1252. message: "请输入合法身份证号",
  1253. trigger: ["blur", "change"],
  1254. },
  1255. ],
  1256. aqzrrsfz: [
  1257. {
  1258. required: true,
  1259. required: true,
  1260. pattern:
  1261. /(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$)/,
  1262. message: "请输入合法身份证号",
  1263. trigger: ["blur", "change"],
  1264. },
  1265. ],
  1266. aqglrsfz: [
  1267. {
  1268. required: true,
  1269. pattern:
  1270. /(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$)/,
  1271. message: "请输入合法身份证号",
  1272. trigger: ["blur", "change"],
  1273. },
  1274. ],
  1275. zjzxfglrsfz: [
  1276. {
  1277. pattern:
  1278. /(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$)/,
  1279. message: "请输入合法身份证号",
  1280. trigger: ["blur", "change"],
  1281. },
  1282. ],
  1283. },
  1284. selectedTab: "buildingInfo",
  1285. // 数据字典
  1286. statusDictDatas: getDictDatas(DICT_TYPE.COMMON_STATUS), //状态
  1287. dwlxDictDatas: getDictDatas(DICT_TYPE.BACKEND_ORG_TYPE), //请选择监管单位类别
  1288. dwxzDictDatas: getDictDatas(DICT_TYPE.BACKEND_ORG_TYPE), //状态
  1289. orgId: null,
  1290. opentabs: false,
  1291. tableHeight: "",
  1292. resizeFlag: null,
  1293. inspectHis1: "",
  1294. inspectHis2: "",
  1295. inspectHis3: "",
  1296. openSeedialog: false,
  1297. };
  1298. },
  1299. mounted() {
  1300. this.getDictDatas(DICT_TYPE.TASK_TYPE).map((i) => {
  1301. if (i.label == "主动检查") {
  1302. this.inspectHis1 = i.value;
  1303. } else if (i.label == "主动巡查") {
  1304. this.inspectHis2 = i.value;
  1305. } else if (i.label == "每日检查") {
  1306. this.inspectHis3 = i.value;
  1307. } else {
  1308. }
  1309. });
  1310. window.addEventListener("resize", () => {
  1311. // resizeHeight()
  1312. this.tableHeight = getTableHeight(280);
  1313. });
  1314. },
  1315. created() {
  1316. this.getTreeselect();
  1317. this.tableHeight = getTableHeight(280);
  1318. },
  1319. methods: {
  1320. // 更多操作
  1321. handleCommand(command, index, row) {
  1322. switch (command) {
  1323. case "handleUpdate":
  1324. this.handleUpdate(row);
  1325. break;
  1326. case "handleDelete":
  1327. this.handleDelete(row);
  1328. break;
  1329. case "handleExportMsg":
  1330. this.handleExportMsg(row);
  1331. break;
  1332. default:
  1333. break;
  1334. }
  1335. },
  1336. deptOptionsTrans(val) {
  1337. return this.deptOptionsList[val];
  1338. },
  1339. handleInit() {
  1340. //单位信息初始化按钮
  1341. this.getList();
  1342. },
  1343. /** 查询列表 */
  1344. getList() {
  1345. this.loading = true;
  1346. // 执行查询
  1347. getOrgPage(this.queryParams).then((response) => {
  1348. this.list = response.data.list;
  1349. this.total = response.data.total;
  1350. this.loading = false;
  1351. });
  1352. },
  1353. /** 查询部门下拉树结构 + 岗位下拉 */
  1354. getTreeselect() {
  1355. listSimpleDepts().then((response) => {
  1356. // 处理 deptOptions 参数
  1357. this.deptOptions = [];
  1358. this.deptOptions.push(...this.handleTree(response.data, "id"));
  1359. var list = response.data;
  1360. list.map((i) => {
  1361. this.deptOptionsList[i.id] = i.name;
  1362. });
  1363. this.getList();
  1364. });
  1365. },
  1366. /** 取消按钮 */
  1367. cancel() {
  1368. this.open = false;
  1369. this.reset();
  1370. },
  1371. /** 表单重置 */
  1372. reset() {
  1373. this.form = {
  1374. id: undefined,
  1375. orgName: undefined,
  1376. dwdz: undefined,
  1377. dwpyjc: undefined,
  1378. dwlx: undefined,
  1379. jjsyz: undefined,
  1380. dwclsj: undefined,
  1381. dwdj: undefined,
  1382. dwxz: undefined,
  1383. qtqk: undefined,
  1384. xzqy: undefined,
  1385. zzjgdm: undefined,
  1386. orgCharge: undefined,
  1387. frdbsfz: undefined,
  1388. frdbdh: undefined,
  1389. aqzrr: undefined,
  1390. aqzrrsfz: undefined,
  1391. aqzrrdh: undefined,
  1392. dwdzyx: undefined,
  1393. aqglr: undefined,
  1394. aqglrsfz: undefined,
  1395. aqglrdh: undefined,
  1396. zjzxfglr: undefined,
  1397. zjzxfglrsfz: undefined,
  1398. zjzxfglrdh: undefined,
  1399. dwdh: undefined,
  1400. dwcz: undefined,
  1401. yzbm: undefined,
  1402. sjxfgxdw: undefined,
  1403. qrsj: undefined,
  1404. qxsj: undefined,
  1405. status: 0,
  1406. dwid: undefined,
  1407. };
  1408. this.resetForm("form");
  1409. },
  1410. /** 搜索按钮操作 */
  1411. handleQuery() {
  1412. this.queryParams.pageNo = 1;
  1413. this.getList();
  1414. console.log(this.list, "lisilist");
  1415. },
  1416. /** 重置按钮操作 */
  1417. resetQuery() {
  1418. this.resetForm("queryForm");
  1419. this.handleQuery();
  1420. },
  1421. /** 新增按钮操作 */
  1422. handleAdd() {
  1423. this.reset();
  1424. this.open = true;
  1425. this.title = "添加单位信息管理";
  1426. },
  1427. /** 查看按钮操作 */
  1428. handleSee(row) {
  1429. this.reset();
  1430. const id = row.id;
  1431. getOrg(id).then((response) => {
  1432. this.form = response.data;
  1433. this.openSeedialog = true;
  1434. });
  1435. },
  1436. /** 修改按钮操作 */
  1437. handleUpdate(row) {
  1438. this.reset();
  1439. const id = row.id;
  1440. getOrg(id).then((response) => {
  1441. this.form = response.data;
  1442. this.form.qrsj = new Date(response.data.qrsj).getTime();
  1443. this.form.qxsj = new Date(response.data.qxsj).getTime();
  1444. this.open = true;
  1445. this.title = "修改单位信息管理";
  1446. });
  1447. },
  1448. /** 提交按钮 */
  1449. submitForm() {
  1450. if (this.form.qrsj > this.form.qxsj) {
  1451. this.$message.error("取消重点单位时间不能小于确定重点单位时间");
  1452. return;
  1453. }
  1454. this.form.userId = this.$store.getters.userId;
  1455. this.$refs["form"].validate((valid) => {
  1456. if (!valid) {
  1457. return;
  1458. }
  1459. // 修改的提交
  1460. if (this.form.id != null) {
  1461. updateOrg(this.form).then((response) => {
  1462. this.$modal.msgSuccess("修改成功");
  1463. this.open = false;
  1464. this.getList();
  1465. });
  1466. return;
  1467. }
  1468. // 添加的提交
  1469. createOrg(this.form).then((response) => {
  1470. this.$modal.msgSuccess("新增成功");
  1471. this.open = false;
  1472. this.getList();
  1473. });
  1474. });
  1475. },
  1476. /** 删除按钮操作 */
  1477. handleDelete(row) {
  1478. const id = row.id;
  1479. this.$modal
  1480. .confirm('是否确认删除单位为"' + row.orgName + '"的数据项?')
  1481. .then(function () {
  1482. return deleteOrg(id);
  1483. })
  1484. .then(() => {
  1485. this.getList();
  1486. this.$modal.msgSuccess("删除成功");
  1487. })
  1488. .catch(() => {});
  1489. },
  1490. handleExport() {
  1491. // 处理查询参数
  1492. let params = { ...this.queryParams };
  1493. params.pageNo = undefined;
  1494. params.pageSize = undefined;
  1495. // 执行导出
  1496. this.$modal
  1497. .confirm("是否确认导出消防单位信息?")
  1498. .then(() => {
  1499. this.exportLoading = true;
  1500. return exportOrgExcel(params);
  1501. })
  1502. .then((response) => {
  1503. this.$download.excel(response, "消防单位信息.xls");
  1504. this.exportLoading = false;
  1505. })
  1506. .catch(() => {});
  1507. },
  1508. /** 导出按钮操作 */
  1509. handleExportMsg(row) {
  1510. const id = row.dwid;
  1511. // 执行导出
  1512. this.$modal
  1513. .confirm("是否确认导出消防二维码?")
  1514. .then(() => {
  1515. this.exportLoading = true;
  1516. return exportOrgCode({ orgId: id }).then((response) => {
  1517. this.$download.zip(response.data, "消防二维码.zip");
  1518. this.exportLoading = false;
  1519. });
  1520. })
  1521. .catch(() => {});
  1522. },
  1523. tableRowClick(row) {
  1524. console.log("row, column, event :>> ", row);
  1525. this.orgId = row.id;
  1526. },
  1527. clickTab(e) {
  1528. // console.log("e :>> ", e);
  1529. },
  1530. },
  1531. };
  1532. </script>
  1533. <style lang="scss" scoped>
  1534. @import "~@/assets/styles/dialog.scss";
  1535. ::v-deep .el-dialog__body {
  1536. margin-left: 60px !important;
  1537. }
  1538. ::v-deep .el-form-item__label-wrap {
  1539. margin-left: 0 !important;
  1540. }
  1541. .details {
  1542. ::v-deep .el-col-12 {
  1543. padding-left: 60px !important;
  1544. }
  1545. // ::v-deep .el-form-item__label-wrap {
  1546. // margin-left: 20px !important;
  1547. // }
  1548. }
  1549. </style>