index.vue 57 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595
  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-select v-model="form.sjxfgxdw" placeholder="请选择消防大队">
  526. <el-option
  527. :label="item.deptName"
  528. :value="item.id"
  529. v-for="item in deptData"
  530. :key="item.id"
  531. ></el-option>
  532. </el-select>
  533. </el-form-item>
  534. </el-col>
  535. </el-row>
  536. <el-row :gutter="20">
  537. <el-col :span="10">
  538. <el-form-item label="单位地址" prop="dwdz">
  539. <el-input
  540. v-model="form.dwdz"
  541. placeholder="请输入"
  542. clearable
  543. /> </el-form-item
  544. ></el-col>
  545. <el-col :span="12">
  546. <el-form-item label="监管单位类别" prop="dwlx">
  547. <el-select
  548. v-model="form.dwlx"
  549. placeholder="请选择"
  550. clearable
  551. size="small"
  552. style="width: 100%"
  553. >
  554. <!-- <el-option v-for="dict in this.getDictDatas(DICT_TYPE.BACKEND_EMP_DWLX)" :key="dict.value"
  555. :label="dict.label" :value="dict.value" /> -->
  556. <el-option
  557. v-for="dict in this.getDictDatas(DICT_TYPE.BACKEND_ORG_TYPE)"
  558. :key="dict.value"
  559. :label="dict.label"
  560. :value="dict.value"
  561. />
  562. </el-select> </el-form-item
  563. ></el-col>
  564. </el-row>
  565. <el-row :gutter="20">
  566. <el-col :span="10">
  567. <el-form-item label="行政区域" prop="xzqy">
  568. <el-input v-model="form.xzqy" placeholder="请输入" clearable />
  569. </el-form-item>
  570. </el-col>
  571. <el-col :span="12">
  572. <el-form-item label="负责人" prop="orgCharge">
  573. <el-input
  574. v-model="form.orgCharge"
  575. placeholder="请输入"
  576. clearable
  577. />
  578. </el-form-item>
  579. </el-col>
  580. </el-row>
  581. <el-row :gutter="20">
  582. <el-col :span="10">
  583. <el-form-item label="负责人电话" prop="frdbdh">
  584. <el-input v-model="form.frdbdh" placeholder="请输入" clearable />
  585. </el-form-item>
  586. </el-col>
  587. <el-col :span="12">
  588. <el-form-item label="单位电话" prop="dwdh">
  589. <el-input v-model="form.dwdh" placeholder="请输入" clearable />
  590. </el-form-item>
  591. </el-col>
  592. </el-row>
  593. <el-row :gutter="20">
  594. <el-col :span="10"
  595. ><el-form-item label="负责人身份证" prop="frdbsfz">
  596. <el-input
  597. v-model="form.frdbsfz"
  598. placeholder="请输入"
  599. clearable
  600. /> </el-form-item
  601. ></el-col>
  602. <el-col :span="12">
  603. <el-form-item label="单位邮政编码" prop="yzbm">
  604. <el-input
  605. v-model="form.yzbm"
  606. placeholder="请输入"
  607. clearable
  608. /> </el-form-item
  609. ></el-col>
  610. <!-- <el-form-item label="单位等级" prop="dwdj">
  611. <el-select v-model="form.dwdj" placeholder="请选择" clearable size="small" style="width: 100%">
  612. <el-option v-for="dict in this.getDictDatas(
  613. DICT_TYPE.DICT_IMPORTTANT_ORG_LEVEL
  614. )" :key="dict.value" :label="dict.label" :value="dict.value" />
  615. </el-select> </el-form-item></el-col> -->
  616. </el-row>
  617. <!--
  618. <el-col :span="10"><el-form-item label="负责人身份证" prop="frdbsfz">
  619. <el-input v-model="form.frdbsfz" placeholder="请输入" clearable /> </el-form-item></el-col>
  620. <el-col :span="12">
  621. <el-form-item label="负责人电话" prop="frdbdh">
  622. <el-input v-model="form.frdbdh" placeholder="请输入" clearable /> </el-form-item></el-col> -->
  623. <el-row :gutter="20">
  624. <el-col :span="10">
  625. <el-form-item label="消防安全负责人" prop="aqzrr">
  626. <el-input
  627. v-model="form.aqzrr"
  628. placeholder="请输入"
  629. clearable
  630. /> </el-form-item
  631. ></el-col>
  632. <el-col :span="12">
  633. <el-form-item label="消防安全负责人身份证" prop="aqzrrsfz">
  634. <el-input
  635. v-model="form.aqzrrsfz"
  636. placeholder="请输入"
  637. clearable
  638. /> </el-form-item
  639. ></el-col>
  640. </el-row>
  641. <el-row :gutter="20">
  642. <el-col :span="10">
  643. <el-form-item label="消防安全管理人" prop="aqglr">
  644. <el-input
  645. v-model="form.aqglr"
  646. placeholder="请输入"
  647. clearable
  648. /> </el-form-item
  649. ></el-col>
  650. <el-col :span="12">
  651. <el-form-item label="消防安全管理人身份证" prop="aqglrsfz">
  652. <el-input
  653. v-model="form.aqglrsfz"
  654. placeholder="请输入"
  655. clearable
  656. /> </el-form-item
  657. ></el-col>
  658. </el-row>
  659. <el-row :gutter="20">
  660. <el-col :span="10">
  661. <el-form-item label="消防安全负责人电话" prop="aqzrrdh">
  662. <el-input
  663. v-model="form.aqzrrdh"
  664. placeholder="请输入"
  665. clearable
  666. /> </el-form-item
  667. ></el-col>
  668. <el-col :span="12">
  669. <el-form-item label="单位电子邮箱" prop="dwdzyx">
  670. <el-input
  671. v-model="form.dwdzyx"
  672. placeholder="请输入"
  673. clearable
  674. /> </el-form-item
  675. ></el-col>
  676. </el-row>
  677. <el-row :gutter="20">
  678. <el-col :span="10">
  679. <el-form-item label="专兼职消防管理人身份证" prop="zjzxfglrsfz">
  680. <el-input
  681. v-model="form.zjzxfglrsfz"
  682. placeholder="请输入"
  683. clearable
  684. /> </el-form-item
  685. ></el-col>
  686. <el-col :span="12">
  687. <el-form-item label="专兼职消防管理人电话" prop="zjzxfglrdh">
  688. <el-input
  689. v-model="form.zjzxfglrdh"
  690. placeholder="请输入"
  691. clearable
  692. /> </el-form-item
  693. ></el-col>
  694. </el-row>
  695. <!-- <el-row :gutter="20">
  696. <el-col :span="10"
  697. ><el-form-item label="组织结构代码" prop="zzjgdm">
  698. <el-input
  699. v-model="form.zzjgdm"
  700. placeholder="请输入"
  701. clearable
  702. /> </el-form-item
  703. ></el-col>
  704. </el-row> -->
  705. <el-row :gutter="20">
  706. <el-col :span="10">
  707. <el-form-item label="单位类型" prop="dwxz">
  708. <el-select
  709. v-model="form.dwxz"
  710. placeholder="请选择"
  711. clearable
  712. size="small"
  713. style="width: 100%"
  714. >
  715. <el-option
  716. v-for="dict in this.getDictDatas(DICT_TYPE.BACKEND_ORG_TYPE)"
  717. :key="dict.value"
  718. :label="dict.label"
  719. :value="dict.value"
  720. />
  721. </el-select> </el-form-item
  722. ></el-col>
  723. <el-col :span="12">
  724. <el-form-item label="经济所有制" prop="jjsyz">
  725. <el-input
  726. v-model="form.jjsyz"
  727. placeholder="请输入"
  728. clearable
  729. /> </el-form-item
  730. ></el-col>
  731. </el-row>
  732. <el-row :gutter="20">
  733. <el-col :span="10">
  734. <el-form-item label="其他情况" prop="qtqk">
  735. <el-input v-model="form.qtqk" placeholder="请输入" clearable />
  736. </el-form-item>
  737. </el-col>
  738. <el-col :span="12">
  739. <el-form-item label="单位传真" prop="dwcz">
  740. <el-input
  741. v-model="form.dwcz"
  742. placeholder="请输入"
  743. clearable
  744. /> </el-form-item
  745. ></el-col>
  746. </el-row>
  747. <!-- <el-row :gutter="20">
  748. <el-col :span="10">
  749. <el-col :span="12">
  750. <el-form-item label="单位拼音简称" prop="dwpyjc">
  751. <el-input v-model="form.dwpyjc" placeholder="请输入" clearable /> </el-form-item></el-col>
  752. </el-row> -->
  753. <el-row :gutter="20">
  754. <el-col :span="10">
  755. <el-form-item label="确认重点单位时间" prop="qrsj">
  756. <el-date-picker
  757. clearable
  758. v-model="form.qrsj"
  759. type="date"
  760. value-format="timestamp"
  761. placeholder="请选择"
  762. style="width: 100%"
  763. /> </el-form-item
  764. ></el-col>
  765. <el-col :span="12">
  766. <el-form-item label="取消重点单位时间" prop="qxsj">
  767. <el-date-picker
  768. clearable
  769. v-model="form.qxsj"
  770. type="date"
  771. value-format="timestamp"
  772. placeholder="请选择"
  773. style="width: 100%"
  774. /> </el-form-item
  775. ></el-col>
  776. </el-row>
  777. <el-row :gutter="20">
  778. <!-- <el-col :span="10">
  779. <el-form-item label="单位序号" prop="dwid">
  780. <el-input
  781. v-model="form.dwid"
  782. placeholder="请输入"
  783. clearable /></el-form-item
  784. ></el-col> -->
  785. <el-col :span="10"
  786. ><el-form-item label="单位成立时间" prop="dwclsj">
  787. <el-date-picker
  788. clearable
  789. v-model="form.dwclsj"
  790. type="datetime"
  791. value-format="timestamp"
  792. placeholder="请选择"
  793. style="width: 100%"
  794. /> </el-form-item
  795. ></el-col>
  796. <el-col :span="12">
  797. <el-form-item label="单位排序" prop="roleSort">
  798. <el-input
  799. v-model="form.sort"
  800. placeholder="请输入"
  801. clearable
  802. @keyup.enter.native="handleQuery"
  803. />
  804. </el-form-item>
  805. </el-col>
  806. </el-row>
  807. <el-row :gutter="20">
  808. <el-col :span="10">
  809. <el-form-item label="质态:" prop="policeId">
  810. <el-input
  811. v-model="form.policeId"
  812. placeholder="请输入"
  813. clearable
  814. />
  815. </el-form-item>
  816. </el-col>
  817. </el-row>
  818. <!-- <el-row :gutter="20">
  819. <el-col :span="12">
  820. <el-form-item label="状态" prop="status">
  821. <el-radio-group v-model="form.status" style="width: 100%;">
  822. <el-radio v-for="dict in this.getDictDatas(DICT_TYPE.COMMON_STATUS)" :key="dict.value"
  823. :label="parseInt(dict.value)">{{ dict.label }}</el-radio>
  824. </el-radio-group>
  825. </el-form-item>
  826. </el-col>
  827. <el-col :span="12"></el-col>
  828. </el-row> -->
  829. </el-form>
  830. <div slot="footer" class="dialog-footer">
  831. <el-button type="primary" @click="submitForm">确 定</el-button>
  832. <el-button @click="cancel">取 消</el-button>
  833. </div>
  834. </el-dialog>
  835. <!-- tabs -->
  836. <el-dialog
  837. :visible.sync="opentabs"
  838. width="85vw"
  839. append-to-body
  840. v-if="opentabs"
  841. >
  842. <el-tabs
  843. type="border-card"
  844. v-model.trim="selectedTab"
  845. @tab-click="clickTab"
  846. >
  847. <el-tab-pane label="单位建筑信息 " name="buildingInfo">
  848. <buildingInfo :orgId="orgId"></buildingInfo>
  849. </el-tab-pane>
  850. <el-tab-pane label="单位人员管理 " name="emp">
  851. <emp :sjjg="orgId"></emp>
  852. </el-tab-pane>
  853. <el-tab-pane label="单位设施管理" name="fpd">
  854. <fpd :orgId="orgId"></fpd>
  855. </el-tab-pane>
  856. <!-- <el-tab-pane label="隐患管理" name="hiddenDanger">
  857. <hiddenDanger :orgId="orgId"></hiddenDanger>
  858. </el-tab-pane> -->
  859. <el-tab-pane label="微型消防站管理" name="microStation">
  860. <microStation :orgId="orgId"></microStation>
  861. </el-tab-pane>
  862. <el-tab-pane label="培训演练" name="orgDrill">
  863. <orgDrill :orgId="orgId"></orgDrill>
  864. </el-tab-pane>
  865. <el-tab-pane label="维保报告" name="orgReport">
  866. <orgReport :orgId="orgId"></orgReport>
  867. </el-tab-pane>
  868. <!-- <el-tab-pane label="主动检查" name="inspectHis1">
  869. <inspectHis :orgId="orgId" :taskType="inspectHis1"></inspectHis>
  870. </el-tab-pane>
  871. <el-tab-pane label="主动巡查" name="inspectHis2">
  872. <inspectHis :orgId="orgId" :taskType="inspectHis2"></inspectHis>
  873. </el-tab-pane>
  874. <el-tab-pane label="每日检查" name="inspectHis3">
  875. <inspectHis :orgId="orgId" :taskType="inspectHis3"></inspectHis>
  876. </el-tab-pane> -->
  877. </el-tabs>
  878. <div slot="footer" class="dialog-footer">
  879. <el-button type="primary" @click="opentabs = false">关 闭</el-button>
  880. </div>
  881. </el-dialog>
  882. <el-dialog
  883. title="详细信息查看"
  884. :visible.sync="openSeedialog"
  885. width="85vw"
  886. class="detail detail-style"
  887. >
  888. <el-form
  889. ref="form"
  890. :model="form"
  891. label-width="auto"
  892. label-position="left"
  893. >
  894. <el-row :gutter="20">
  895. <el-col :span="10">
  896. <el-form-item label="单位名称:" prop="orgName">
  897. <div>{{ form.orgName }}</div>
  898. </el-form-item></el-col
  899. >
  900. <el-col :span="14">
  901. <el-form-item label="单位地址:" prop="dwdz">
  902. <div>{{ form.dwdz }}</div>
  903. </el-form-item>
  904. </el-col>
  905. </el-row>
  906. <el-row :gutter="20">
  907. <el-col :span="10">
  908. <!-- <el-form-item label="单位拼音简称:" prop="dwpyjc">
  909. <div>{{ form.dwpyjc }}</div>
  910. </el-form-item> -->
  911. <el-form-item label="上级消防管辖单位:" prop="sjxfgxdw">
  912. <div>{{ deptOptionsTrans(form.sjxfgxdw) }}</div>
  913. </el-form-item>
  914. </el-col>
  915. <el-col :span="14">
  916. <el-form-item label="监管单位类别:" prop="dwlx">
  917. <div>
  918. <dict-tag
  919. :type="DICT_TYPE.BACKEND_EMP_DWLX"
  920. :value="form.dwlx"
  921. />
  922. </div>
  923. </el-form-item>
  924. </el-col>
  925. </el-row>
  926. <el-row :gutter="20">
  927. <el-col :span="10">
  928. <el-form-item label="经济所有制:" prop="jjsyz">
  929. <div>{{ form.jjsyz }}</div>
  930. </el-form-item>
  931. </el-col>
  932. <el-col :span="14">
  933. <el-form-item label="单位成立时间:" prop="dwclsj">
  934. <div>{{ parseTime(form.dwclsj) }}</div>
  935. </el-form-item>
  936. </el-col>
  937. </el-row>
  938. <el-row :gutter="20">
  939. <el-col :span="10">
  940. <!-- <el-form-item label="单位等级:" prop="dwdj">
  941. <div>
  942. <dict-tag
  943. :type="DICT_TYPE.DICT_IMPORTTANT_ORG_LEVEL"
  944. :value="form.dwdj"
  945. />
  946. </div>
  947. </el-form-item> -->
  948. <el-form-item label="负责人:" prop="orgCharge">
  949. <div>{{ form.orgCharge }}</div>
  950. </el-form-item>
  951. </el-col>
  952. <el-col :span="14"
  953. ><el-form-item label="单位类型:" prop="dwxz">
  954. <div>
  955. <dict-tag
  956. :type="DICT_TYPE.BACKEND_ORG_TYPE"
  957. :value="form.dwxz"
  958. />
  959. </div> </el-form-item
  960. ></el-col>
  961. </el-row>
  962. <el-row :gutter="20">
  963. <el-col :span="10"
  964. ><el-form-item label="其他情况:" prop="qtqk">
  965. <div>{{ form.qtqk }}</div>
  966. </el-form-item>
  967. </el-col>
  968. <el-col :span="14">
  969. <el-form-item label="行政区域:" prop="xzqy">
  970. <div>{{ form.xzqy }}</div>
  971. </el-form-item>
  972. </el-col>
  973. </el-row>
  974. <!-- <el-row :gutter="20">
  975. <el-col :span="10">
  976. <el-form-item label="组织结构代码:" prop="zzjgdm">
  977. <div>{{ form.zzjgdm }}</div>
  978. </el-form-item>
  979. </el-col>
  980. <el-col :span="14">
  981. <el-form-item label="负责人:" prop="orgCharge">
  982. <div>{{ form.orgCharge }}</div>
  983. </el-form-item>
  984. </el-col>
  985. </el-row> -->
  986. <el-row :gutter="20">
  987. <el-col :span="10">
  988. <el-form-item label="负责人身份证:" prop="frdbsfz">
  989. <div>{{ form.frdbsfz }}</div>
  990. </el-form-item>
  991. </el-col>
  992. <el-col :span="14">
  993. <el-form-item label="负责人电话:" prop="frdbdh">
  994. <div>{{ form.frdbdh }}</div>
  995. </el-form-item>
  996. </el-col>
  997. </el-row>
  998. <el-row :gutter="20">
  999. <el-col :span="10">
  1000. <el-form-item label="消防安全负责人:" prop="aqzrr">
  1001. <div>{{ form.aqzrr }}</div>
  1002. </el-form-item>
  1003. </el-col>
  1004. <el-col :span="14">
  1005. <el-form-item label="消防安全负责人身份证:" prop="aqzrrsfz">
  1006. <div>{{ form.aqzrrsfz }}</div>
  1007. </el-form-item>
  1008. </el-col>
  1009. </el-row>
  1010. <el-row :gutter="20">
  1011. <el-col :span="10">
  1012. <el-form-item label="消防安全负责人电话:" prop="aqzrrdh">
  1013. <div>{{ form.aqzrrdh }}</div>
  1014. </el-form-item>
  1015. </el-col>
  1016. <el-col :span="14">
  1017. <el-form-item label="单位电子邮箱:" prop="dwdzyx">
  1018. <div>{{ form.dwdzyx }}</div>
  1019. </el-form-item>
  1020. </el-col>
  1021. </el-row>
  1022. <el-row :gutter="20">
  1023. <el-col :span="10">
  1024. <el-form-item label="消防安全管理人:" prop="aqglr">
  1025. <div>{{ form.aqglr }}</div>
  1026. </el-form-item>
  1027. </el-col>
  1028. <el-col :span="14">
  1029. <el-form-item label="消防安全管理人身份证:" prop="aqglrsfz">
  1030. <div>{{ form.aqglrsfz }}</div>
  1031. </el-form-item>
  1032. </el-col>
  1033. </el-row>
  1034. <el-row :gutter="20">
  1035. <el-col :span="10">
  1036. <el-form-item label="消防安全管理人电话:" prop="aqglrdh">
  1037. <div>{{ form.aqglrdh }}</div>
  1038. </el-form-item>
  1039. </el-col>
  1040. <el-col :span="14">
  1041. <el-form-item label="专兼职消防管理人:" prop="zjzxfglr">
  1042. <div>{{ form.zjzxfglr }}</div>
  1043. </el-form-item>
  1044. </el-col>
  1045. </el-row>
  1046. <el-row :gutter="20">
  1047. <el-col :span="10">
  1048. <el-form-item label="专兼职消防管理人身份证:" prop="zjzxfglrsfz">
  1049. <div>{{ form.zjzxfglrsfz }}</div>
  1050. </el-form-item>
  1051. </el-col>
  1052. <el-col :span="14">
  1053. <el-form-item label="专兼职消防管理人电话:" prop="zjzxfglrdh">
  1054. <div>{{ form.zjzxfglrdh }}</div>
  1055. </el-form-item>
  1056. </el-col>
  1057. </el-row>
  1058. <el-row :gutter="20">
  1059. <el-col :span="10">
  1060. <el-form-item label="单位电话:" prop="dwdh">
  1061. <div>{{ form.dwdh }}</div>
  1062. </el-form-item>
  1063. </el-col>
  1064. <el-col :span="14">
  1065. <el-form-item label="单位传真:" prop="dwcz">
  1066. <div>{{ form.dwcz }}</div>
  1067. </el-form-item>
  1068. </el-col>
  1069. </el-row>
  1070. <el-row :gutter="20">
  1071. <el-col :span="10">
  1072. <el-form-item label="确认重点单位时间:" prop="qrsj">
  1073. <div>{{ parseTime(form.qrsj) }}</div>
  1074. </el-form-item>
  1075. </el-col>
  1076. <el-col :span="14">
  1077. <el-form-item label="取消重点单位时间:" prop="qxsj">
  1078. <div>{{ parseTime(form.qxsj) }}</div>
  1079. </el-form-item>
  1080. </el-col>
  1081. </el-row>
  1082. <el-row :gutter="20">
  1083. <el-col :span="10">
  1084. <el-form-item label="单位邮政编码:" prop="yzbm">
  1085. <div>{{ form.yzbm }}</div>
  1086. </el-form-item>
  1087. </el-col>
  1088. <!-- <el-col :span="14">
  1089. <el-form-item label="上级消防管辖单位:" prop="sjxfgxdw">
  1090. <div>{{ deptOptionsTrans(form.sjxfgxdw) }}</div>
  1091. </el-form-item>
  1092. </el-col> -->
  1093. </el-row>
  1094. </el-form>
  1095. <span slot="footer" class="dialog-footer">
  1096. <el-button @click="openSeedialog = false">关 闭</el-button>
  1097. </span>
  1098. </el-dialog>
  1099. </div>
  1100. </template>
  1101. <script>
  1102. import { DICT_TYPE, getDictDatas } from "@/utils/dict";
  1103. import { listSimpleDepts } from "@/api/system/dept";
  1104. import {
  1105. createOrg,
  1106. updateOrg,
  1107. deleteOrg,
  1108. getOrg,
  1109. getOrgPage,
  1110. exportOrgExcel,
  1111. exportOrgCode,
  1112. } from "@/api/backend/org";
  1113. import { getDdlist } from "@/api/backend/statistics";
  1114. import dept from "@/views/system/dept/index";
  1115. import emp from "@/views/unitorg/emp/index";
  1116. import fpd from "@/views/unitorg/fpd/index";
  1117. import buildingInfo from "@/views/unitorg/buildingInfo/index";
  1118. import hiddenDanger from "@/views/backend/hiddenDanger/index";
  1119. import microStation from "@/views/unitorg/microStation/index";
  1120. import inspectHis from "@/views/backend/inspectHis/index";
  1121. import orgDrill from "@/views/backend/orgDrill/index";
  1122. import orgReport from "@/views/backend/orgReport/index";
  1123. import { getTableHeight } from "@/utils/ruoyi.js";
  1124. import Treeselect from "@riophae/vue-treeselect";
  1125. import "@riophae/vue-treeselect/dist/vue-treeselect.css";
  1126. export default {
  1127. name: "Org",
  1128. components: {
  1129. Treeselect,
  1130. dept,
  1131. emp,
  1132. buildingInfo,
  1133. fpd,
  1134. hiddenDanger,
  1135. microStation,
  1136. inspectHis,
  1137. orgDrill,
  1138. orgReport,
  1139. },
  1140. data() {
  1141. return {
  1142. deptData: [],
  1143. // 格式化部门的下拉框
  1144. normalizer(node) {
  1145. return {
  1146. id: node.id,
  1147. label: node.name,
  1148. children: node.children,
  1149. };
  1150. },
  1151. deptOptionsList: {},
  1152. // 部门树选项
  1153. deptOptions: undefined,
  1154. // 遮罩层
  1155. loading: true,
  1156. // 导出遮罩层
  1157. exportLoading: false,
  1158. // 显示搜索条件
  1159. showSearch: true,
  1160. // 总条数
  1161. total: 0,
  1162. // 单位信息管理列表
  1163. list: [],
  1164. // 弹出层标题
  1165. title: "",
  1166. // 是否显示弹出层
  1167. open: false,
  1168. // 查询参数
  1169. queryParams: {
  1170. pageNo: 1,
  1171. pageSize: 10,
  1172. orgName: null,
  1173. dwdz: null,
  1174. dwlx: null,
  1175. dwxz: null,
  1176. xzqy: null,
  1177. orgCharge: null,
  1178. frdbdh: null,
  1179. dwdh: null,
  1180. sjxfgxdw: null,
  1181. status: null,
  1182. userId: this.$store.state.user.id,
  1183. },
  1184. // 表单参数
  1185. form: {
  1186. status: 0,
  1187. },
  1188. // 表单校验
  1189. rules: {
  1190. status: [{ required: true, message: "状态不能为空", trigger: "blur" }],
  1191. orgName: [
  1192. { required: true, message: "单位名称不能为空", trigger: "blur" },
  1193. ],
  1194. sjxfgxdw: [
  1195. { required: true, message: "上级管辖单位不能为空", trigger: "blur" },
  1196. ],
  1197. dwdzyx: [
  1198. {
  1199. type: "email",
  1200. message: "请输入正确的邮箱地址",
  1201. trigger: ["blur", "change"],
  1202. },
  1203. ],
  1204. aqzrrsfz: [
  1205. { required: true, message: "请输入消防安全负责人", trigger: "blur" },
  1206. ],
  1207. aqglr: [
  1208. { required: true, message: "请输入消防安全管理人", trigger: "blur" },
  1209. ],
  1210. dwdz: [{ required: true, message: "请输入单位地址", trigger: "blur" }],
  1211. dwlx: [
  1212. { required: true, message: "请选择监管单位类别", trigger: "blur" },
  1213. ],
  1214. orgCharge: [
  1215. { required: true, message: "请输入负责人", trigger: "blur" },
  1216. ],
  1217. xzqy: [
  1218. { required: true, message: "请输入消防安全负责人", trigger: "blur" },
  1219. ],
  1220. aqzrr: [{ required: true, message: "请输入行政区域", trigger: "blur" }],
  1221. // aqzrrsfz:[{ required: true, message: "请输入消防安全负责人身份证", trigger: "blur" }],
  1222. // aqglrsfz:[{ required: true, message: "请输入消防安全管理人身份证", trigger: "blur" }],
  1223. frdbdh: [
  1224. {
  1225. required: true,
  1226. pattern:
  1227. /^(?:(?:\+|00)86)?1(?:3[\d]|4[5-79]|5[0-35-9]|6[5-7]|7[0-8]|8[\d]|9[189])\d{8}$/,
  1228. message: "请输入正确的手机号码",
  1229. trigger: "blur",
  1230. },
  1231. ],
  1232. dwdh: [
  1233. {
  1234. required: true,
  1235. pattern: /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/,
  1236. message: "请输入正确的手机号码",
  1237. trigger: "blur",
  1238. },
  1239. ],
  1240. // 手机号
  1241. // frdbdh: [
  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. // aqzrrdh: [
  1247. // // 这个只能验证手机号
  1248. // // { pattern:/^0{0,1}(13[0-9]|15[7-9]|153|156|18[7-9])[0-9]{8}$/, message: "请输入合法手机号", trigger: "blur" }
  1249. // { pattern: /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/, message: "请输入合法手机号/电话号", trigger: ['blur', 'change'] }
  1250. // ],
  1251. // zjzxfglrdh: [
  1252. // // 这个只能验证手机号
  1253. // // { pattern:/^0{0,1}(13[0-9]|15[7-9]|153|156|18[7-9])[0-9]{8}$/, message: "请输入合法手机号", trigger: "blur" }
  1254. // { pattern: /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/, message: "请输入合法手机号/电话号", trigger: ['blur', 'change'] }
  1255. // ],
  1256. // aqglrdh: [
  1257. // // 这个只能验证手机号
  1258. // // { pattern:/^0{0,1}(13[0-9]|15[7-9]|153|156|18[7-9])[0-9]{8}$/, message: "请输入合法手机号", trigger: "blur" }
  1259. // { pattern: /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/, message: "请输入合法手机号/电话号", trigger: ['blur', 'change'] }
  1260. // ],
  1261. // dwdh: [
  1262. // // 这个只能验证手机号
  1263. // // { pattern:/^0{0,1}(13[0-9]|15[7-9]|153|156|18[7-9])[0-9]{8}$/, message: "请输入合法手机号", trigger: "blur" }
  1264. // { pattern: /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/, message: "请输入合法手机号/电话号", trigger: ['blur', 'change'] }
  1265. // ],
  1266. // 身份证
  1267. frdbsfz: [
  1268. {
  1269. required: true,
  1270. pattern:
  1271. /(^[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}$)/,
  1272. message: "请输入合法身份证号",
  1273. trigger: ["blur", "change"],
  1274. },
  1275. ],
  1276. aqzrrsfz: [
  1277. {
  1278. required: true,
  1279. required: true,
  1280. pattern:
  1281. /(^[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}$)/,
  1282. message: "请输入合法身份证号",
  1283. trigger: ["blur", "change"],
  1284. },
  1285. ],
  1286. aqglrsfz: [
  1287. {
  1288. required: true,
  1289. pattern:
  1290. /(^[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}$)/,
  1291. message: "请输入合法身份证号",
  1292. trigger: ["blur", "change"],
  1293. },
  1294. ],
  1295. zjzxfglrsfz: [
  1296. {
  1297. pattern:
  1298. /(^[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}$)/,
  1299. message: "请输入合法身份证号",
  1300. trigger: ["blur", "change"],
  1301. },
  1302. ],
  1303. },
  1304. selectedTab: "buildingInfo",
  1305. // 数据字典
  1306. statusDictDatas: getDictDatas(DICT_TYPE.COMMON_STATUS), //状态
  1307. dwlxDictDatas: getDictDatas(DICT_TYPE.BACKEND_ORG_TYPE), //请选择监管单位类别
  1308. dwxzDictDatas: getDictDatas(DICT_TYPE.BACKEND_ORG_TYPE), //状态
  1309. orgId: null,
  1310. opentabs: false,
  1311. tableHeight: "",
  1312. resizeFlag: null,
  1313. inspectHis1: "",
  1314. inspectHis2: "",
  1315. inspectHis3: "",
  1316. openSeedialog: false,
  1317. };
  1318. },
  1319. mounted() {
  1320. this.getDictDatas(DICT_TYPE.TASK_TYPE).map((i) => {
  1321. if (i.label == "主动检查") {
  1322. this.inspectHis1 = i.value;
  1323. } else if (i.label == "主动巡查") {
  1324. this.inspectHis2 = i.value;
  1325. } else if (i.label == "每日检查") {
  1326. this.inspectHis3 = i.value;
  1327. } else {
  1328. }
  1329. });
  1330. window.addEventListener("resize", () => {
  1331. // resizeHeight()
  1332. this.tableHeight = getTableHeight(280);
  1333. });
  1334. },
  1335. created() {
  1336. this.getTreeselect();
  1337. this.tableHeight = getTableHeight(280);
  1338. this.getDeptData();
  1339. },
  1340. methods: {
  1341. /** 获取消防大队下拉框数据 */
  1342. getDeptData() {
  1343. getDdlist().then((res) => {
  1344. this.deptData = res.data;
  1345. });
  1346. },
  1347. // 更多操作
  1348. handleCommand(command, index, row) {
  1349. switch (command) {
  1350. case "handleUpdate":
  1351. this.handleUpdate(row);
  1352. break;
  1353. case "handleDelete":
  1354. this.handleDelete(row);
  1355. break;
  1356. case "handleExportMsg":
  1357. this.handleExportMsg(row);
  1358. break;
  1359. default:
  1360. break;
  1361. }
  1362. },
  1363. deptOptionsTrans(val) {
  1364. return this.deptOptionsList[val];
  1365. },
  1366. handleInit() {
  1367. //单位信息初始化按钮
  1368. this.getList();
  1369. },
  1370. /** 查询列表 */
  1371. getList() {
  1372. this.loading = true;
  1373. // 执行查询
  1374. getOrgPage(this.queryParams).then((response) => {
  1375. this.list = response.data.list;
  1376. this.total = response.data.total;
  1377. this.loading = false;
  1378. });
  1379. },
  1380. /** 查询部门下拉树结构 + 岗位下拉 */
  1381. getTreeselect() {
  1382. listSimpleDepts().then((response) => {
  1383. // 处理 deptOptions 参数
  1384. this.deptOptions = [];
  1385. this.deptOptions.push(...this.handleTree(response.data, "id"));
  1386. var list = response.data;
  1387. list.map((i) => {
  1388. this.deptOptionsList[i.id] = i.name;
  1389. });
  1390. this.getList();
  1391. });
  1392. },
  1393. /** 取消按钮 */
  1394. cancel() {
  1395. this.open = false;
  1396. this.reset();
  1397. },
  1398. /** 表单重置 */
  1399. reset() {
  1400. this.form = {
  1401. id: undefined,
  1402. orgName: undefined,
  1403. dwdz: undefined,
  1404. dwpyjc: undefined,
  1405. dwlx: undefined,
  1406. jjsyz: undefined,
  1407. dwclsj: undefined,
  1408. dwdj: undefined,
  1409. dwxz: undefined,
  1410. qtqk: undefined,
  1411. xzqy: undefined,
  1412. zzjgdm: undefined,
  1413. orgCharge: undefined,
  1414. frdbsfz: undefined,
  1415. frdbdh: undefined,
  1416. aqzrr: undefined,
  1417. aqzrrsfz: undefined,
  1418. aqzrrdh: undefined,
  1419. dwdzyx: undefined,
  1420. aqglr: undefined,
  1421. aqglrsfz: undefined,
  1422. aqglrdh: undefined,
  1423. zjzxfglr: undefined,
  1424. zjzxfglrsfz: undefined,
  1425. zjzxfglrdh: undefined,
  1426. dwdh: undefined,
  1427. dwcz: undefined,
  1428. yzbm: undefined,
  1429. sjxfgxdw: undefined,
  1430. qrsj: undefined,
  1431. qxsj: undefined,
  1432. status: 0,
  1433. dwid: undefined,
  1434. };
  1435. this.resetForm("form");
  1436. },
  1437. /** 搜索按钮操作 */
  1438. handleQuery() {
  1439. this.queryParams.pageNo = 1;
  1440. this.getList();
  1441. console.log(this.list, "lisilist");
  1442. },
  1443. /** 重置按钮操作 */
  1444. resetQuery() {
  1445. this.resetForm("queryForm");
  1446. this.handleQuery();
  1447. },
  1448. /** 新增按钮操作 */
  1449. handleAdd() {
  1450. this.reset();
  1451. this.open = true;
  1452. this.title = "添加单位信息管理";
  1453. },
  1454. /** 查看按钮操作 */
  1455. handleSee(row) {
  1456. this.reset();
  1457. const id = row.id;
  1458. getOrg(id).then((response) => {
  1459. this.form = response.data;
  1460. this.openSeedialog = true;
  1461. });
  1462. },
  1463. /** 修改按钮操作 */
  1464. handleUpdate(row) {
  1465. this.reset();
  1466. const id = row.id;
  1467. getOrg(id).then((response) => {
  1468. this.form = response.data;
  1469. this.form.qrsj = new Date(response.data.qrsj).getTime();
  1470. this.form.qxsj = new Date(response.data.qxsj).getTime();
  1471. this.open = true;
  1472. this.title = "修改单位信息管理";
  1473. });
  1474. },
  1475. /** 提交按钮 */
  1476. submitForm() {
  1477. // if (this.form.qrsj > this.form.qxsj) {
  1478. // this.$message.error("取消重点单位时间不能小于确定重点单位时间");
  1479. // return;
  1480. // }
  1481. this.form.userId = this.$store.getters.userId;
  1482. this.$refs["form"].validate((valid) => {
  1483. if (!valid) {
  1484. return;
  1485. }
  1486. // 修改的提交
  1487. if (this.form.id != null) {
  1488. updateOrg(this.form).then((response) => {
  1489. this.$modal.msgSuccess("修改成功");
  1490. this.open = false;
  1491. this.getList();
  1492. });
  1493. return;
  1494. }
  1495. // 添加的提交
  1496. createOrg(this.form).then((response) => {
  1497. this.$modal.msgSuccess("新增成功");
  1498. this.open = false;
  1499. this.getList();
  1500. });
  1501. });
  1502. },
  1503. /** 删除按钮操作 */
  1504. handleDelete(row) {
  1505. const id = row.id;
  1506. this.$modal
  1507. .confirm('是否确认删除单位为"' + row.orgName + '"的数据项?')
  1508. .then(function () {
  1509. return deleteOrg(id);
  1510. })
  1511. .then(() => {
  1512. this.getList();
  1513. this.$modal.msgSuccess("删除成功");
  1514. })
  1515. .catch(() => {});
  1516. },
  1517. handleExport() {
  1518. // 处理查询参数
  1519. let params = { ...this.queryParams };
  1520. params.pageNo = undefined;
  1521. params.pageSize = undefined;
  1522. // 执行导出
  1523. this.$modal
  1524. .confirm("是否确认导出消防单位信息?")
  1525. .then(() => {
  1526. this.exportLoading = true;
  1527. return exportOrgExcel(params);
  1528. })
  1529. .then((response) => {
  1530. this.$download.excel(response, "消防单位信息.xls");
  1531. this.exportLoading = false;
  1532. })
  1533. .catch(() => {});
  1534. },
  1535. /** 导出按钮操作 */
  1536. handleExportMsg(row) {
  1537. const id = row.dwid;
  1538. // 执行导出
  1539. this.$modal
  1540. .confirm("是否确认导出消防二维码?")
  1541. .then(() => {
  1542. this.exportLoading = true;
  1543. return exportOrgCode({ orgId: id }).then((response) => {
  1544. this.$download.zip(response.data, "消防二维码.zip");
  1545. this.exportLoading = false;
  1546. });
  1547. })
  1548. .catch(() => {});
  1549. },
  1550. tableRowClick(row) {
  1551. console.log("row, column, event :>> ", row);
  1552. this.orgId = row.id;
  1553. },
  1554. clickTab(e) {
  1555. // console.log("e :>> ", e);
  1556. },
  1557. },
  1558. };
  1559. </script>
  1560. <style lang="scss" scoped>
  1561. @import "~@/assets/styles/dialog.scss";
  1562. ::v-deep .el-dialog__body {
  1563. margin-left: 60px !important;
  1564. }
  1565. ::v-deep .el-form-item__label-wrap {
  1566. margin-left: 0 !important;
  1567. }
  1568. .details {
  1569. ::v-deep .el-col-12 {
  1570. padding-left: 60px !important;
  1571. }
  1572. // ::v-deep .el-form-item__label-wrap {
  1573. // margin-left: 20px !important;
  1574. // }
  1575. }
  1576. </style>