extend.vue 60 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912
  1. <template>
  2. <div class="app-container">
  3. <h3 class="title">同步信息</h3>
  4. <div class="info-box">
  5. <el-descriptions>
  6. <el-descriptions-item
  7. v-for="v in dataInfo"
  8. :label="v.label"
  9. :key="v.key"
  10. >{{ v.value }}</el-descriptions-item
  11. >
  12. <el-descriptions-item label="机构组织类型">{{
  13. getLabel(dict.type.reality_org_type, orgType)
  14. }}</el-descriptions-item>
  15. <el-descriptions-item label="是否可用">{{
  16. isLock == 1 ? "否" : "是"
  17. }}</el-descriptions-item>
  18. <el-descriptions-item label="机构类型">{{
  19. getLabel(dict.type.sys_org_type, type)
  20. }}</el-descriptions-item>
  21. </el-descriptions>
  22. </div>
  23. <h3 v-if="type == 4" class="title">补充基础信息</h3>
  24. <div class="info-box">
  25. <el-form
  26. inline
  27. class="demo-form-inline"
  28. label-position="left"
  29. label-width="120px"
  30. >
  31. <el-row>
  32. <el-col :span="8">
  33. <el-form-item label="机构类型" v-if="false">
  34. <el-select v-model="type" placeholder="机构类型">
  35. <el-option
  36. v-for="dict in dict.type.sys_org_type"
  37. :key="dict.value"
  38. :label="dict.label"
  39. :value="dict.value"
  40. ></el-option>
  41. </el-select>
  42. </el-form-item>
  43. </el-col>
  44. <el-col :span="8">
  45. <el-form-item v-if="type == 4" label="城市天气区域">
  46. <!-- <el-input
  47. v-model="weatherAreaCode"
  48. placeholder="天气区域编码"
  49. @input="handleInput2"
  50. ></el-input>-->
  51. <el-select v-model="weatherAreaCode" placeholder="请选择" clearable>
  52. <el-option v-for="item in areaList" :key="item.key" :label="item.value" :value="item.key"></el-option>
  53. </el-select>
  54. </el-form-item>
  55. </el-col>
  56. <el-col :span="8">
  57. <el-form-item v-if="type == 4" label="营业场所面积">
  58. <el-input
  59. v-model="premisesArea"
  60. placeholder="营业场所面积"
  61. @input="handleInput"
  62. ></el-input>
  63. </el-form-item>
  64. </el-col>
  65. <el-col :span="8">
  66. <el-form-item
  67. v-if="type == 10"
  68. label="建设时间"
  69. prop="constructionTime"
  70. >
  71. <el-date-picker
  72. clearable
  73. v-model="constructionTime"
  74. type="date"
  75. value-format="yyyy-MM-dd HH:mm:ss"
  76. placeholder="请选择建设时间"
  77. >
  78. </el-date-picker>
  79. </el-form-item>
  80. </el-col>
  81. <el-col :span="8">
  82. <el-form-item
  83. v-if="type == 10"
  84. label="最近一次更新"
  85. prop="lastUpdateTime"
  86. >
  87. <el-date-picker
  88. clearable
  89. v-model="lastUpdateTime"
  90. type="date"
  91. value-format="yyyy-MM-dd HH:mm:ss"
  92. placeholder="请选择更新日期"
  93. >
  94. </el-date-picker>
  95. </el-form-item>
  96. </el-col>
  97. <el-col :span="8">
  98. <el-form-item v-if="type == 10" label="平台品牌">
  99. <el-select v-model="platformBrand" placeholder="平台品牌">
  100. <el-option
  101. v-for="dict in dict.type.org_platform_brand"
  102. :key="dict.value"
  103. :label="dict.label"
  104. :value="dict.value"
  105. ></el-option>
  106. </el-select>
  107. </el-form-item>
  108. </el-col>
  109. <el-col :span="8">
  110. <el-form-item v-if="type == 10" label="平台供应商品牌">
  111. <el-select
  112. v-model="platformSupplierBrand"
  113. placeholder="平台供应商品牌"
  114. >
  115. <el-option
  116. v-for="dict in dict.type.org_platform_supplier_brand"
  117. :key="dict.value"
  118. :label="dict.label"
  119. :value="dict.value"
  120. ></el-option>
  121. </el-select>
  122. </el-form-item>
  123. </el-col>
  124. </el-row>
  125. </el-form>
  126. </div>
  127. <div v-if="type == 4" class="info-box">
  128. <!-- 下拉框选择 -->
  129. <div>
  130. <el-form
  131. inline
  132. class="demo-form-inline"
  133. label-position="left"
  134. label-width="120px"
  135. >
  136. <el-row>
  137. <el-col :span="8">
  138. <el-form-item label="是否自有产权">
  139. <el-select
  140. v-model="ownership"
  141. placeholder="是否自有产权"
  142. >
  143. <el-option
  144. v-for="dict in dict.type.property_situation"
  145. :key="dict.value"
  146. :label="dict.label"
  147. :value="dict.value"
  148. ></el-option>
  149. </el-select>
  150. </el-form-item>
  151. </el-col>
  152. <el-col :span="8">
  153. <el-form-item label="是否区域外">
  154. <el-select
  155. v-model="outsideArea"
  156. placeholder="是否区域外"
  157. >
  158. <el-option
  159. v-for="dict in dict.type.org_extend_is"
  160. :key="dict.value"
  161. :label="dict.label"
  162. :value="dict.value"
  163. ></el-option>
  164. </el-select>
  165. </el-form-item>
  166. </el-col>
  167. </el-row>
  168. </el-form>
  169. </div>
  170. <!-- 表格 -->
  171. <div style="margin-top: 30px">
  172. <el-button
  173. style="margin-bottom: 20px"
  174. type="primary"
  175. plain
  176. icon="el-icon-plus"
  177. size="mini"
  178. @click="handleOrgAdd"
  179. >新增</el-button
  180. >
  181. <el-table
  182. border
  183. size="small"
  184. v-loading="orgloading"
  185. :data="constructionList"
  186. @selection-change="handleOrgSelectionChange"
  187. >
  188. <el-table-column
  189. type="selection"
  190. width="55"
  191. align="center"
  192. v-if="false"
  193. />
  194. <el-table-column type="index" label="序号" align="center" prop="id" />
  195. <el-table-column label="标准" align="center" prop="standard">
  196. <template slot-scope="r"
  197. >{{
  198. getLabel(dict.type.org_extend_standard, `${r.row.standard}`)
  199. }}
  200. </template>
  201. </el-table-column>
  202. <el-table-column
  203. label="达标日期"
  204. align="center"
  205. prop="dateOfCompliance"
  206. width="180"
  207. >
  208. <template slot-scope="scope">
  209. <span>{{
  210. formatTime(scope.row.dateOfCompliance, "YYYY-MM-DD")
  211. }}</span>
  212. </template>
  213. </el-table-column>
  214. <!-- <el-table-column
  215. label="证书佐证"
  216. align="center"
  217. prop="certificateEvidence"
  218. >
  219. <template slot-scope="scope">
  220. <span v-if="scope.row.certificateEvidence > 0">是</span>
  221. <span v-else>否</span>
  222. </template></el-table-column
  223. > -->
  224. <!-- <el-table-column label="证书" align="center" prop="certificate" />
  225. <el-table-column label="佐证" align="center" prop="evidence" /> -->
  226. <el-table-column
  227. v-if="false"
  228. label="机构id"
  229. align="center"
  230. prop="orgId"
  231. />
  232. <el-table-column
  233. label="操作"
  234. align="center"
  235. class-name="small-padding fixed-width"
  236. >
  237. <template slot-scope="scope">
  238. <el-button
  239. v-if="scope.row.certificate"
  240. size="mini"
  241. type="text"
  242. icon="el-icon-edit"
  243. @click="downBusiness(scope.row.certificate)"
  244. >查看证书</el-button
  245. >
  246. <el-button
  247. size="mini"
  248. type="text"
  249. icon="el-icon-edit"
  250. @click="handleOrgUpdate(scope.row)"
  251. >编辑</el-button
  252. >
  253. <el-button
  254. size="mini"
  255. type="text"
  256. icon="el-icon-delete"
  257. @click="handleOrgDelete(scope.row)"
  258. >删除</el-button
  259. >
  260. </template>
  261. </el-table-column>
  262. </el-table>
  263. </div>
  264. <!-- 上传 -->
  265. <div style="margin-top: 30px">
  266. <el-switch
  267. v-model="askari"
  268. active-text
  269. inactive-text="是否有保安"
  270. :active-value="1"
  271. :inactive-value="0"
  272. ></el-switch>
  273. <div></div>
  274. <el-row v-if="askari">
  275. <el-col :span="12" :xs="24">
  276. <p style="font-size: 12px; color: #999">上传保安证</p>
  277. <image-upload
  278. :value="askariCertificate"
  279. :fileSize="2"
  280. :type="'alone'"
  281. @input="getImgUrl"
  282. ></image-upload>
  283. <!-- <el-image class="zoom-image border-color-change" :src="uploadp" fit="contain" @click="triggerFileInput"></el-image>-->
  284. <!-- <input type="file"-->
  285. <!-- ref="fileInput"-->
  286. <!-- @change="handleFileChange"-->
  287. <!-- style="display: none;"/>-->
  288. </el-col>
  289. <!-- <el-col :span="12" :xs="24">
  290. <p style="font-size: 12px; color: #999">示例图</p>
  291. <div style="width: 350px">
  292. <el-image :src="uplp"></el-image>
  293. </div>
  294. </el-col> -->
  295. <!-- <el-image class="zoom-image border-color-change" :src="uplp" fit="contain"></el-image>-->
  296. </el-row>
  297. </div>
  298. </div>
  299. <el-switch
  300. v-if="type == 4"
  301. style="margin-top: 30px; margin-left: 30px"
  302. v-model="businessLibrary"
  303. active-text
  304. inactive-text="是否有业务库"
  305. :active-value="1"
  306. :inactive-value="0"
  307. ></el-switch>
  308. <div v-if="(type == 4) & (businessLibrary > 0)" style="margin-top: 30px">
  309. <h3 class="title">业务库信息</h3>
  310. <div class="info-box">
  311. <el-form inline label-position="left" label-width="100px">
  312. <el-row>
  313. <el-col :span="7">
  314. <el-form-item label="业务库类型">
  315. <el-select v-model="businessLibraryType" placeholder="请选择业务库类型">
  316. <el-option
  317. v-for="dict in dict.type.business_library_type"
  318. :key="dict.value"
  319. :label="dict.label"
  320. :value="dict.value"
  321. ></el-option>
  322. </el-select>
  323. </el-form-item>
  324. </el-col>
  325. <el-col :span="7">
  326. <el-form-item label="值守方式">
  327. <el-radio-group v-model="dutyMode">
  328. <el-radio :label="0">同楼异地值守</el-radio>
  329. <el-radio :label="1">远程值守</el-radio>
  330. </el-radio-group>
  331. </el-form-item>
  332. </el-col>
  333. <el-col :span="7">
  334. <el-form-item label="业务库出入口远程控制" label-width="150">
  335. <el-switch
  336. v-model="remoteControl"
  337. active-text
  338. inactive-text
  339. :active-value="1"
  340. :inactive-value="0"
  341. ></el-switch>
  342. </el-form-item>
  343. </el-col>
  344. </el-row>
  345. </el-form>
  346. </div>
  347. <div class="info-box">
  348. <el-button
  349. style="margin-bottom: 20px"
  350. type="primary"
  351. plain
  352. icon="el-icon-plus"
  353. size="mini"
  354. @click="handleBusinessAdd"
  355. >新增</el-button
  356. >
  357. <el-table
  358. border
  359. size="small"
  360. v-loading="businessloading"
  361. :data="BusinessPhysicalDefenseConstructionList"
  362. @selection-change="handleBusinessSelectionChange"
  363. >
  364. <el-table-column
  365. type="selection"
  366. width="55"
  367. v-if="false"
  368. align="center"
  369. />
  370. <el-table-column type="index" label="序号" align="center" prop="id" />
  371. <el-table-column label="标准" align="center" prop="standard">
  372. <template slot-scope="r"
  373. >{{
  374. getLabel(
  375. dict.type.org_extend_business_library_standard,
  376. `${r.row.standard}`
  377. )
  378. }}
  379. </template>
  380. </el-table-column>
  381. <el-table-column
  382. label="达标日期"
  383. align="center"
  384. prop="dateOfCompliance"
  385. width="180"
  386. >
  387. <template slot-scope="scope">
  388. <span>{{
  389. formatTime(scope.row.dateOfCompliance, "YYYY-MM-DD")
  390. }}</span>
  391. </template>
  392. </el-table-column>
  393. <el-table-column
  394. label="证书佐证"
  395. align="center"
  396. prop="certificateEvidence"
  397. >
  398. <template slot-scope="scope">
  399. <span v-if="scope.row.certificateEvidence > 0">是</span>
  400. <span v-else>否</span>
  401. </template></el-table-column
  402. >
  403. <!-- <el-table-column label="证书" align="center" prop="certificate">
  404. </el-table-column>
  405. <el-table-column label="佐证" align="center" prop="evidence" /> -->
  406. <el-table-column
  407. v-if="false"
  408. label="机构id"
  409. align="center"
  410. prop="orgId"
  411. />
  412. <el-table-column
  413. label="操作"
  414. align="center"
  415. class-name="small-padding fixed-width"
  416. >
  417. <template slot-scope="scope">
  418. <el-button
  419. v-if="scope.row.certificate"
  420. size="mini"
  421. type="text"
  422. icon="el-icon-edit"
  423. @click="downBusiness(scope.row.certificate)"
  424. >查看证书</el-button
  425. >
  426. <el-button
  427. size="mini"
  428. type="text"
  429. icon="el-icon-edit"
  430. @click="handleBusinessUpdate(scope.row)"
  431. >编辑</el-button
  432. >
  433. <el-button
  434. size="mini"
  435. type="text"
  436. icon="el-icon-delete"
  437. @click="handleBusinessDelete(scope.row)"
  438. >删除</el-button
  439. >
  440. </template>
  441. </el-table-column>
  442. </el-table>
  443. </div>
  444. </div>
  445. <el-switch
  446. v-if="type == 4"
  447. style="margin-top: 30px; margin-left: 30px"
  448. v-model="selfServiceBank"
  449. active-text
  450. inactive-text="是否有在行自助银行"
  451. :active-value="1"
  452. :inactive-value="0"
  453. ></el-switch>
  454. <div v-if="(type == 4) & (selfServiceBank > 0)" style="margin-top: 30px">
  455. <h3 class="title">在行自助银行信息</h3>
  456. <div class="info-box">
  457. <el-switch
  458. v-if="false"
  459. v-model="selfServiceBank"
  460. active-text
  461. inactive-text="是否有在行自助银行"
  462. :active-value="1"
  463. :inactive-value="0"
  464. ></el-switch>
  465. <span>在行式大堂设备</span>
  466. <div style="display: inline-block; width: 200px">
  467. <el-input-number
  468. style="margin-left: 10px"
  469. v-model="lobbyEquipment"
  470. controls-position="right"
  471. @change="handleChange"
  472. :min="1"
  473. :max="10"
  474. ></el-input-number>
  475. </div>
  476. <span style="margin-left: 50px">在行式穿墙设备</span>
  477. <div style="display: inline-block; width: 200px">
  478. <el-input-number
  479. style="margin-left: 10px"
  480. v-model="wallPenetratingEquipment"
  481. controls-position="right"
  482. @change="handleChange"
  483. :min="1"
  484. :max="10"
  485. ></el-input-number>
  486. </div>
  487. </div>
  488. <div class="info-box">
  489. <el-button
  490. style="margin-bottom: 20px"
  491. type="primary"
  492. plain
  493. icon="el-icon-plus"
  494. size="mini"
  495. @click="handleBankAdd"
  496. >新增</el-button
  497. >
  498. <el-table
  499. border
  500. size="small"
  501. v-loading="bankloading"
  502. :data="BankPhysicalDefenseConstructionList"
  503. @selection-change="handleBankSelectionChange"
  504. >
  505. <el-table-column
  506. type="selection"
  507. width="55"
  508. v-if="false"
  509. align="center"
  510. />
  511. <el-table-column type="index" label="序号" align="center" prop="id" />
  512. <el-table-column label="标准" align="center" prop="standard">
  513. <template slot-scope="r"
  514. >{{
  515. getLabel(
  516. dict.type.org_extend_self_service_bank_standard,
  517. `${r.row.standard}`
  518. )
  519. }}
  520. </template>
  521. </el-table-column>
  522. <el-table-column
  523. label="达标日期"
  524. align="center"
  525. prop="dateOfCompliance"
  526. width="180"
  527. >
  528. <template slot-scope="scope">
  529. <span>{{
  530. formatTime(scope.row.dateOfCompliance, "YYYY-MM-DD")
  531. }}</span>
  532. </template>
  533. </el-table-column>
  534. <el-table-column
  535. label="证书佐证"
  536. align="center"
  537. prop="certificateEvidence"
  538. >
  539. <template slot-scope="scope">
  540. <span v-if="scope.row.certificateEvidence > 0">是</span>
  541. <span v-else>否</span>
  542. </template></el-table-column
  543. >
  544. <!-- <el-table-column label="证书" align="center" prop="certificate" />
  545. <el-table-column label="佐证" align="center" prop="evidence" /> -->
  546. <el-table-column
  547. v-if="false"
  548. label="机构id"
  549. align="center"
  550. prop="orgId"
  551. />
  552. <el-table-column
  553. label="操作"
  554. align="center"
  555. class-name="small-padding fixed-width"
  556. >
  557. <template slot-scope="scope">
  558. <el-button
  559. v-if="scope.row.certificate"
  560. size="mini"
  561. type="text"
  562. icon="el-icon-edit"
  563. @click="downBusiness(scope.row.certificate)"
  564. >查看证书</el-button
  565. >
  566. <el-button
  567. size="mini"
  568. type="text"
  569. icon="el-icon-edit"
  570. @click="handleBankUpdate(scope.row)"
  571. >编辑</el-button
  572. >
  573. <el-button
  574. size="mini"
  575. type="text"
  576. icon="el-icon-delete"
  577. @click="handleBankDelete(scope.row)"
  578. >删除</el-button
  579. >
  580. </template>
  581. </el-table-column>
  582. </el-table>
  583. </div>
  584. </div>
  585. <div v-if="type == 5">
  586. <h3 class="title">离行自助银行信息</h3>
  587. <div class="info-box">
  588. <span>离行式大堂设备</span>
  589. <div style="display: inline-block; width: 200px">
  590. <el-input-number
  591. style="margin-left: 10px"
  592. v-model="detachedLobbyEquipment"
  593. controls-position="right"
  594. @change="handleChange"
  595. :min="1"
  596. :max="10"
  597. ></el-input-number>
  598. </div>
  599. <span style="margin-left: 50px">离行式穿墙设备</span>
  600. <div style="display: inline-block; width: 200px">
  601. <el-input-number
  602. style="margin-left: 10px"
  603. v-model="detachedWallPenetratingEquipment"
  604. controls-position="right"
  605. @change="handleChange"
  606. :min="1"
  607. :max="10"
  608. ></el-input-number>
  609. </div>
  610. </div>
  611. <div class="info-box">
  612. <el-button
  613. style="margin-bottom: 20px"
  614. type="primary"
  615. plain
  616. icon="el-icon-plus"
  617. size="mini"
  618. @click="handledetachedAdd"
  619. >新增</el-button
  620. >
  621. <el-table
  622. border
  623. size="small"
  624. v-loading="detachedloading"
  625. :data="detachedPhysicalDefenseConstructionList"
  626. @selection-change="handledetachedSelectionChange"
  627. >
  628. <el-table-column
  629. type="selection"
  630. width="55"
  631. v-if="false"
  632. align="center"
  633. />
  634. <el-table-column type="index" label="序号" align="center" prop="id" />
  635. <el-table-column label="标准" align="center" prop="standard">
  636. <template slot-scope="r"
  637. >{{
  638. getLabel(
  639. dict.type.org_extend_detached_standard,
  640. `${r.row.standard}`
  641. )
  642. }}
  643. </template>
  644. </el-table-column>
  645. <el-table-column
  646. label="达标日期"
  647. align="center"
  648. prop="dateOfCompliance"
  649. width="180"
  650. >
  651. <template slot-scope="scope">
  652. <span>{{
  653. formatTime(scope.row.dateOfCompliance, "YYYY-MM-DD")
  654. }}</span>
  655. </template>
  656. </el-table-column>
  657. <el-table-column
  658. label="证书佐证"
  659. align="center"
  660. prop="certificateEvidence"
  661. >
  662. <template slot-scope="scope">
  663. <span v-if="scope.row.certificateEvidence > 0">是</span>
  664. <span v-else>否</span>
  665. </template></el-table-column
  666. >
  667. <!-- <el-table-column label="证书" align="center" prop="certificate" />
  668. <el-table-column label="佐证" align="center" prop="evidence" /> -->
  669. <el-table-column
  670. v-if="false"
  671. label="机构id"
  672. align="center"
  673. prop="orgId"
  674. />
  675. <el-table-column
  676. label="操作"
  677. align="center"
  678. class-name="small-padding fixed-width"
  679. >
  680. <template slot-scope="scope">
  681. <el-button
  682. v-if="scope.row.certificate"
  683. size="mini"
  684. type="text"
  685. icon="el-icon-edit"
  686. @click="downBusiness(scope.row.certificate)"
  687. >查看证书</el-button
  688. >
  689. <el-button
  690. size="mini"
  691. type="text"
  692. icon="el-icon-edit"
  693. @click="handledetachedUpdate(scope.row)"
  694. >编辑</el-button
  695. >
  696. <el-button
  697. size="mini"
  698. type="text"
  699. icon="el-icon-delete"
  700. @click="handledetachedDelete(scope.row)"
  701. >删除</el-button
  702. >
  703. </template>
  704. </el-table-column>
  705. </el-table>
  706. </div>
  707. </div>
  708. <div style="margin-top: 50px; margin-left: 42%">
  709. <el-button type="primary" @click="saveExtend" size="small"
  710. >提交</el-button
  711. >
  712. <el-button type="primary" @click="nosaveExtend" size="small"
  713. >取消</el-button
  714. >
  715. </div>
  716. <!-- 添加或编辑业务库物防建设对话框 -->
  717. <DialogCom
  718. :title="Businesstitle"
  719. :visible.sync="Businessopen"
  720. width="500px"
  721. append-to-body
  722. >
  723. <el-form
  724. ref="Businessform"
  725. :model="Businessform"
  726. :rules="rules"
  727. label-width="80px"
  728. >
  729. <el-form-item label="标准" prop="standard">
  730. <!-- <el-input v-model="Businessform.standard" placeholder="请输入标准" /> -->
  731. <el-select
  732. prop="planType"
  733. label="标准"
  734. v-model="Businessform.standard"
  735. placeholder="请选择标准"
  736. clearable
  737. >
  738. <el-option
  739. v-for="dict in dict.type.org_extend_business_library_standard"
  740. :key="dict.value"
  741. :label="dict.label"
  742. :value="dict.value"
  743. />
  744. </el-select>
  745. </el-form-item>
  746. <el-form-item label="达标日期" prop="dateOfCompliance">
  747. <el-date-picker
  748. clearable
  749. v-model="Businessform.dateOfCompliance"
  750. type="date"
  751. value-format="yyyy-MM-dd HH:mm:ss"
  752. placeholder="请选择达标日期"
  753. >
  754. </el-date-picker>
  755. </el-form-item>
  756. <el-form-item label="证书佐证" prop="certificateEvidence">
  757. <el-switch
  758. v-model="Businessform.certificateEvidence"
  759. active-text
  760. :active-value="1"
  761. :inactive-value="0"
  762. ></el-switch>
  763. </el-form-item>
  764. <el-form-item
  765. v-if="Businessform.certificateEvidence"
  766. label="证书"
  767. prop="certificate"
  768. >
  769. <el-input
  770. v-if="false"
  771. v-model="Businessform.certificate"
  772. placeholder="请输入证书"
  773. />
  774. <div
  775. class="image-container"
  776. style="margin-left: 20px"
  777. v-if="!Businessform.certificate"
  778. >
  779. <p style="font-size: 12px; color: #999">上传证书</p>
  780. <image-upload
  781. :limit="1"
  782. :fileSize="2"
  783. @input="uploadBusinessSuccess"
  784. ></image-upload>
  785. </div>
  786. <a :href="Businessform.certificate">点击查看</a>
  787. <!-- <el-button type="primary" @click="resetimg(Businessform.certificate)">重新上传</el-button> -->
  788. </el-form-item>
  789. <el-form-item v-if="false" label="佐证" prop="evidence">
  790. <el-input v-model="Businessform.evidence" placeholder="请输入佐证" />
  791. </el-form-item>
  792. <el-form-item v-if="false" label="机构id" prop="orgId">
  793. <el-input v-model="Businessform.orgId" placeholder="请输入机构id" />
  794. </el-form-item>
  795. </el-form>
  796. <div slot="footer" class="dialog-footer">
  797. <el-button type="primary" @click="submitBusinessForm">确 定</el-button>
  798. <el-button @click="Businesscancel">取 消</el-button>
  799. </div>
  800. </DialogCom>
  801. <!-- 添加或编辑银行物防建设对话框 -->
  802. <DialogCom
  803. :title="Banktitle"
  804. :visible.sync="Bankopen"
  805. width="500px"
  806. append-to-body
  807. >
  808. <el-form
  809. ref="Bankform"
  810. :model="Bankform"
  811. label-width="80px"
  812. :rules="rules"
  813. >
  814. <el-form-item label="标准" prop="standard">
  815. <!-- <el-input v-model="Bankform.standard" placeholder="请输入标准" /> -->
  816. <el-select
  817. prop="planType"
  818. label="标准"
  819. v-model="Bankform.standard"
  820. placeholder="请选择标准"
  821. clearable
  822. >
  823. <el-option
  824. v-for="dict in dict.type.org_extend_self_service_bank_standard"
  825. :key="dict.value"
  826. :label="dict.label"
  827. :value="dict.value"
  828. />
  829. </el-select>
  830. </el-form-item>
  831. <el-form-item label="达标日期" prop="dateOfCompliance">
  832. <el-date-picker
  833. clearable
  834. v-model="Bankform.dateOfCompliance"
  835. type="date"
  836. value-format="yyyy-MM-dd HH:mm:ss"
  837. placeholder="请选择达标日期"
  838. >
  839. </el-date-picker>
  840. </el-form-item>
  841. <el-form-item label="证书佐证" prop="certificateEvidence">
  842. <!-- <el-input
  843. v-model="Bankform.certificateEvidence"
  844. placeholder="请输入证书佐证"
  845. /> -->
  846. <el-switch
  847. v-model="Bankform.certificateEvidence"
  848. active-text
  849. :active-value="1"
  850. :inactive-value="0"
  851. ></el-switch>
  852. </el-form-item>
  853. <el-form-item
  854. v-if="Bankform.certificateEvidence"
  855. label="证书"
  856. prop="certificate"
  857. >
  858. <el-input
  859. v-if="false"
  860. v-model="Bankform.certificate"
  861. placeholder="请输入证书"
  862. />
  863. <div
  864. class="image-container"
  865. style="margin-left: 20px"
  866. v-if="!Bankform.certificate"
  867. >
  868. <p style="font-size: 12px; color: #999">上传证书</p>
  869. <image-upload
  870. :limit="1"
  871. :fileSize="2"
  872. @input="uploadBankSuccess"
  873. ></image-upload>
  874. </div>
  875. <a :href="Bankform.certificate">点击查看</a>
  876. </el-form-item>
  877. <el-form-item v-if="false" label="佐证" prop="evidence">
  878. <el-input v-model="Bankform.evidence" placeholder="请输入佐证" />
  879. </el-form-item>
  880. <el-form-item v-if="false" label="机构id" prop="orgId">
  881. <el-input v-model="Bankform.orgId" placeholder="请输入机构id" />
  882. </el-form-item>
  883. </el-form>
  884. <div slot="footer" class="dialog-footer">
  885. <el-button type="primary" @click="submitBankForm">确 定</el-button>
  886. <el-button @click="Bankcancel">取 消</el-button>
  887. </div>
  888. </DialogCom>
  889. <DialogCom
  890. :title="orgtitle"
  891. :visible.sync="orgopen"
  892. width="500px"
  893. append-to-body
  894. >
  895. <el-form ref="orgform" :model="orgform" label-width="80px" :rules="rules">
  896. <el-form-item label="标准" prop="standard">
  897. <!-- <el-input v-model="orgform.standard" placeholder="请输入标准" /> -->
  898. <el-select
  899. prop="planType"
  900. label="标准"
  901. v-model="orgform.standard"
  902. placeholder="请选择标准"
  903. clearable
  904. >
  905. <el-option
  906. v-for="dict in dict.type.org_extend_standard"
  907. :key="dict.value"
  908. :label="dict.label"
  909. :value="dict.value"
  910. />
  911. </el-select>
  912. </el-form-item>
  913. <el-form-item label="达标日期" prop="dateOfCompliance">
  914. <el-date-picker
  915. clearable
  916. v-model="orgform.dateOfCompliance"
  917. type="date"
  918. value-format="yyyy-MM-dd HH:mm:ss"
  919. placeholder="请选择达标日期"
  920. >
  921. </el-date-picker>
  922. </el-form-item>
  923. <el-form-item label="证书佐证" prop="certificateEvidence">
  924. <el-switch
  925. v-model="orgform.certificateEvidence"
  926. active-text
  927. :active-value="1"
  928. :inactive-value="0"
  929. ></el-switch>
  930. </el-form-item>
  931. <el-form-item
  932. v-if="orgform.certificateEvidence"
  933. label="证书"
  934. prop="certificate"
  935. >
  936. <el-input
  937. v-if="false"
  938. v-model="orgform.certificate"
  939. placeholder="请输入证书"
  940. />
  941. <div
  942. class="image-container"
  943. style="margin-left: 20px"
  944. v-if="!orgform.certificate"
  945. >
  946. <p style="font-size: 12px; color: #999">上传证书</p>
  947. <image-upload
  948. :limit="1"
  949. :fileSize="2"
  950. @input="uploadorgSuccess"
  951. ></image-upload>
  952. </div>
  953. <a :href="orgform.certificate">点击查看</a>
  954. </el-form-item>
  955. <el-form-item v-if="false" label="佐证" prop="evidence">
  956. <el-input v-model="orgform.evidence" placeholder="请输入佐证" />
  957. </el-form-item>
  958. <el-form-item v-if="false" label="机构id" prop="orgId">
  959. <el-input v-model="orgform.orgId" placeholder="请输入机构id" />
  960. </el-form-item>
  961. </el-form>
  962. <div slot="footer" class="dialog-footer">
  963. <el-button type="primary" @click="submitOrgForm">确 定</el-button>
  964. <el-button @click="orgcancel">取 消</el-button>
  965. </div>
  966. </DialogCom>
  967. <!-- 添加或编辑离行物防建设对话框 -->
  968. <DialogCom
  969. :title="detachedtitle"
  970. :visible.sync="detachedopen"
  971. width="500px"
  972. append-to-body
  973. >
  974. <el-form
  975. ref="detachedform"
  976. :model="detachedform"
  977. label-width="80px"
  978. :rules="rules"
  979. >
  980. <el-form-item label="标准" prop="standard">
  981. <!-- <el-input v-model="detachedform.standard" placeholder="请输入标准" /> -->
  982. <el-select
  983. prop="planType"
  984. label="标准"
  985. v-model="detachedform.standard"
  986. placeholder="请选择标准"
  987. clearable
  988. >
  989. <el-option
  990. v-for="dict in dict.type.org_extend_detached_standard"
  991. :key="dict.value"
  992. :label="dict.label"
  993. :value="dict.value"
  994. />
  995. </el-select>
  996. </el-form-item>
  997. <el-form-item label="达标日期" prop="dateOfCompliance">
  998. <el-date-picker
  999. clearable
  1000. v-model="detachedform.dateOfCompliance"
  1001. type="date"
  1002. value-format="yyyy-MM-dd HH:mm:ss"
  1003. placeholder="请选择达标日期"
  1004. >
  1005. </el-date-picker>
  1006. </el-form-item>
  1007. <el-form-item label="证书佐证" prop="certificateEvidence">
  1008. <!-- <el-input
  1009. v-model="detachedform.certificateEvidence"
  1010. placeholder="请输入证书佐证"
  1011. /> -->
  1012. <el-switch
  1013. v-model="detachedform.certificateEvidence"
  1014. active-text
  1015. :active-value="1"
  1016. :inactive-value="0"
  1017. ></el-switch>
  1018. </el-form-item>
  1019. <el-form-item
  1020. v-if="detachedform.certificateEvidence"
  1021. label="证书"
  1022. prop="certificate"
  1023. >
  1024. <el-input
  1025. v-if="false"
  1026. v-model="detachedform.certificate"
  1027. placeholder="请输入证书"
  1028. />
  1029. <div
  1030. class="image-container"
  1031. style="margin-left: 20px"
  1032. v-if="!detachedform.certificate"
  1033. >
  1034. <p style="font-size: 12px; color: #999">上传证书</p>
  1035. <image-upload
  1036. :limit="1"
  1037. :fileSize="2"
  1038. @input="uploaddetachedSuccess"
  1039. ></image-upload>
  1040. </div>
  1041. <a :href="detachedform.certificate">点击查看</a>
  1042. </el-form-item>
  1043. <el-form-item v-if="false" label="佐证" prop="evidence">
  1044. <el-input v-model="detachedform.evidence" placeholder="请输入佐证" />
  1045. </el-form-item>
  1046. <el-form-item v-if="false" label="机构id" prop="orgId">
  1047. <el-input v-model="detachedform.orgId" placeholder="请输入机构id" />
  1048. </el-form-item>
  1049. </el-form>
  1050. <div slot="footer" class="dialog-footer">
  1051. <el-button type="primary" @click="submitdetachedForm">确 定</el-button>
  1052. <el-button @click="detachedcancel">取 消</el-button>
  1053. </div>
  1054. </DialogCom>
  1055. </div>
  1056. </template>
  1057. <script>
  1058. import uploadpng from "@/assets/images/upload.png";
  1059. import uplpng from "@/assets/images/upl.png";
  1060. import request from "@/utils/request";
  1061. import { statusOptions, getLabel } from "./../../commonOption";
  1062. import {
  1063. listExtend,
  1064. getExtend,
  1065. addExtend,
  1066. updateExtend,
  1067. delExtend,
  1068. getExtendByOrgId,
  1069. uploadFile,
  1070. } from "@/api/system/extend";
  1071. import {
  1072. listDept,
  1073. getDept,
  1074. delDept,
  1075. addDept,
  1076. updateDept,
  1077. listDeptExcludeChild,
  1078. } from "@/api/system/dept";
  1079. import {
  1080. listOrgPhysicalDefenseConstruction,
  1081. getOrgPhysicalDefenseConstruction,
  1082. addOrgPhysicalDefenseConstruction,
  1083. updateOrgPhysicalDefenseConstruction,
  1084. delOrgPhysicalDefenseConstruction,
  1085. } from "@/api/system/OrgPhysicalDefenseConstruction";
  1086. import {findAreaList} from "@/api/core/weather";
  1087. export default {
  1088. dicts: [
  1089. "sys_org_type",
  1090. "org_platform_brand",
  1091. "org_platform_supplier_brand",
  1092. "org_extend_type",
  1093. "business_library_type",
  1094. "reality_org_type",
  1095. "org_extend_standard",
  1096. "org_extend_business_library_standard",
  1097. "org_extend_self_service_bank_standard",
  1098. "org_extend_detached_standard",
  1099. "org_extend_is",
  1100. "property_situation"
  1101. ],
  1102. props: [],
  1103. components: {},
  1104. data() {
  1105. return {
  1106. //表单验证
  1107. rules: {
  1108. standard: [{ required: true, message: "请输入标准", trigger: "blur" }],
  1109. dateOfCompliance: [
  1110. { required: false, message: "请输入达标日期", trigger: "blur" },
  1111. ],
  1112. },
  1113. //基础信息key
  1114. infoKeys: [
  1115. { label: "机构名称", key: "name" },
  1116. // { label: "机构组织类型", key: "type" },
  1117. { label: "部门机构电话", key: "phone" },
  1118. { label: "部门机构地址", key: "address" },
  1119. { label: "排序号", key: "sort" },
  1120. // { label: "是否可用", key: "isLock" },
  1121. { label: "更新时间", key: "updateTime" },
  1122. { label: "同步时间", key: "createTime" },
  1123. ],
  1124. type: null,
  1125. isLock: null,
  1126. dataInfo: [],
  1127. //机构补充信息
  1128. extendId: null,
  1129. orgType: 1,
  1130. weatherAreaCode: null,
  1131. premisesArea: null,
  1132. ownership: null,
  1133. outsideArea: null,
  1134. askari: 1,
  1135. businessLibrary: 1,
  1136. businessLibraryType: null,
  1137. dutyMode: 0,
  1138. remoteControl: null,
  1139. selfServiceBank: null,
  1140. lobbyEquipment: 1,
  1141. wallPenetratingEquipment: 2,
  1142. platformBrand: null,
  1143. platformSupplierBrand: null,
  1144. constructionTime: null,
  1145. lastUpdateTime: null,
  1146. detachedLobbyEquipment: null,
  1147. detachedWallPenetratingEquipment: null,
  1148. cashAddingRoomRemoteControl: null,
  1149. source: null,
  1150. askariCertificate: null,
  1151. //机构建设数据
  1152. // 遮罩层
  1153. orgloading: true,
  1154. businessloading: true,
  1155. // 选中数组
  1156. orgids: [],
  1157. // 选中数组
  1158. Bankids: [],
  1159. Businessids: [],
  1160. // 非单个禁用
  1161. single: true,
  1162. // 非多个禁用
  1163. multiple: true,
  1164. // 显示搜索条件
  1165. showSearch: true,
  1166. // 总条数
  1167. total: 0,
  1168. // 机构物防建设表格数据
  1169. constructionList: [],
  1170. // 银行物防建设表格数据
  1171. BankPhysicalDefenseConstructionList: [],
  1172. detachedPhysicalDefenseConstructionList: [],
  1173. BusinessPhysicalDefenseConstructionList: [],
  1174. // 弹出层标题
  1175. orgtitle: "",
  1176. Businesstitle: "",
  1177. // 弹出层标题
  1178. Banktitle: "",
  1179. detachedtitle: "",
  1180. detachedloading: false,
  1181. // 是否显示弹出层
  1182. Bankopen: false,
  1183. Businessopen: false,
  1184. detachedopen: false,
  1185. // 表单参数
  1186. Bankform: {},
  1187. detachedform: {},
  1188. Businessform: {},
  1189. // 是否显示弹出层
  1190. Businessopen: false,
  1191. orgopen: false,
  1192. // 表单参数
  1193. orgform: {},
  1194. //2个图片信息
  1195. uploadp: uploadpng,
  1196. uplp: uplpng,
  1197. //下拉框生成信息
  1198. orgTypes: {
  1199. orgTyp1: { label: "营业网点", value: 0 },
  1200. orgTyp2: { label: "监控中心", value: 1 },
  1201. },
  1202. businessLibraryTypes: {
  1203. businessLibraryTyp1: { label: "1类业务库", value: 1 },
  1204. businessLibraryTyp2: { label: "2类业务库", value: 2 },
  1205. businessLibraryTyp3: { label: "3类业务库", value: 3 },
  1206. },
  1207. platformBrands: {
  1208. platformBrand1: { label: "品牌1", value: 0 },
  1209. platformBrand2: { label: "品牌2", value: 1 },
  1210. },
  1211. platformSupplierBrands: {
  1212. platformSupplierBrand1: { label: "品牌1", value: 0 },
  1213. platformSupplierBrand2: { label: "品牌2", value: 1 },
  1214. },
  1215. prop: "",
  1216. propItem: "",
  1217. row: "",
  1218. areaList:[],
  1219. };
  1220. },
  1221. watch: {},
  1222. computed: {
  1223. switchModel: {
  1224. get() {
  1225. return this.switchValue === 1; // 将0转换为false,1转换为true
  1226. },
  1227. set(value) {
  1228. this.switchValue = value ? 1 : 0; // 将false转换为0,true转换为1
  1229. },
  1230. },
  1231. },
  1232. created() {
  1233. this.getOrgInfo();
  1234. this.getExtendInfo();
  1235. this.getOrgPhysicalDefenseConstructionInfo();
  1236. this.getBankPhysicalDefenseConstructionInfo();
  1237. this.getBusinessPhysicalDefenseConstructionInfo();
  1238. this.getdetachedPhysicalDefenseConstructionInfo();
  1239. this.getAreaList();
  1240. },
  1241. mounted() {},
  1242. methods: {
  1243. getImgUrl(fileList) {
  1244. let matchResult = fileList.match(/\/statics(.*)/);
  1245. if (matchResult) {
  1246. let result = matchResult[0];
  1247. this.askariCertificate = result;
  1248. } else {
  1249. }
  1250. // this.askariCertificate=img;
  1251. console.log(this.askariCertificate, "imgs");
  1252. },
  1253. getAreaList() {
  1254. findAreaList({}).then(response => {
  1255. this.areaList = response.data;
  1256. });
  1257. },
  1258. downBusiness(file) {
  1259. window.open(file);
  1260. },
  1261. //证书上传
  1262. uploadBusinessSuccess(fileList) {
  1263. let matchResult = fileList.match(/\/statics(.*)/);
  1264. if (matchResult) {
  1265. let result = matchResult[0];
  1266. this.Businessform.certificate = result;
  1267. } else {
  1268. }
  1269. },
  1270. uploadBankSuccess(fileList) {
  1271. let matchResult = fileList.match(/\/statics(.*)/);
  1272. if (matchResult) {
  1273. let result = matchResult[0];
  1274. this.Bankform.certificate = result;
  1275. } else {
  1276. }
  1277. },
  1278. uploadorgSuccess(fileList) {
  1279. let matchResult = fileList.match(/\/statics(.*)/);
  1280. if (matchResult) {
  1281. let result = matchResult[0];
  1282. this.orgform.certificate = result;
  1283. } else {
  1284. }
  1285. },
  1286. uploaddetachedSuccess(fileList) {
  1287. let matchResult = fileList.match(/\/statics(.*)/);
  1288. if (matchResult) {
  1289. let result = matchResult[0];
  1290. this.detachedform.certificate = result;
  1291. } else {
  1292. }
  1293. },
  1294. handleInput() {
  1295. // 使用正则表达式过滤输入,只保留数字和小数点
  1296. this.premisesArea = this.premisesArea.replace(/[^0-9.]/g, "");
  1297. },
  1298. handleInput2() {
  1299. // 使用正则表达式过滤输入,只保留数字和小数点
  1300. this.weatherAreaCode = this.weatherAreaCode.replace(/[^a-zA-Z0-9]/g, "");
  1301. },
  1302. request() {},
  1303. handleChange(value) {},
  1304. getOrgInfo() {
  1305. getDept(this.$route.params.id).then((data) => {
  1306. // console.log(data.data);
  1307. if (!data.data) return;
  1308. let res = data.data;
  1309. this.dataInfo = this.infoKeys.map((v, i) => {
  1310. // console.log(v, res[v.key], "vvvvv");
  1311. v.value = res[v.key];
  1312. return v;
  1313. });
  1314. this.type = data.data.type;
  1315. this.isLock = data.data.isLock;
  1316. this.source = data.data.source;
  1317. // console.log(this.dataInfo, "info");
  1318. });
  1319. },
  1320. getExtendInfo() {
  1321. getExtendByOrgId(this.$route.params.id).then((data) => {
  1322. console.log(data.data);
  1323. if (data.data != null) {
  1324. this.orgType = data.data.orgType;
  1325. this.weatherAreaCode = data.data.weatherAreaCode;
  1326. this.premisesArea = data.data.premisesArea;
  1327. this.ownership = data.data.ownership;
  1328. this.outsideArea = data.data.outsideArea;
  1329. this.askari = data.data.askari;
  1330. this.remoteControl = data.data.remoteControl;
  1331. this.selfServiceBank = data.data.selfServiceBank;
  1332. this.businessLibrary = data.data.businessLibrary;
  1333. this.lobbyEquipment = data.data.lobbyEquipment;
  1334. this.wallPenetratingEquipment = data.data.wallPenetratingEquipment;
  1335. this.askariCertificate = data.data.askariCertificate;
  1336. this.extendId = data.data.id;
  1337. this.constructionTime = data.data.constructionTime;
  1338. this.lastUpdateTime = data.data.lastUpdateTime;
  1339. this.platformBrand = data.data.platformBrand;
  1340. this.platformSupplierBrand = data.data.platformSupplierBrand;
  1341. this.businessLibraryType = data.data.businessLibraryType;
  1342. this.dutyMode = data.data.dutyMode;
  1343. this.detachedLobbyEquipment = data.data.detachedLobbyEquipment;
  1344. this.detachedWallPenetratingEquipment =
  1345. data.data.detachedWallPenetratingEquipment;
  1346. this.cashAddingRoomRemoteControl =
  1347. data.data.cashAddingRoomRemoteControl;
  1348. // console.log(this.extendId);
  1349. }
  1350. });
  1351. },
  1352. getLabel(options, value) {
  1353. return getLabel(options, value);
  1354. },
  1355. getOrgPhysicalDefenseConstructionInfo() {
  1356. this.orgloading = true;
  1357. let dat = { orgId: this.$route.params.id, type: 1 };
  1358. listOrgPhysicalDefenseConstruction(dat).then((data) => {
  1359. console.log("机构信息获取成功");
  1360. this.constructionList = data.rows;
  1361. this.orgloading = false;
  1362. });
  1363. },
  1364. getBankPhysicalDefenseConstructionInfo() {
  1365. this.bankloading = true;
  1366. let dat = { orgId: this.$route.params.id, type: 3 };
  1367. listOrgPhysicalDefenseConstruction(dat).then((data) => {
  1368. // console.log(data);
  1369. this.BankPhysicalDefenseConstructionList = data.rows;
  1370. this.bankloading = false;
  1371. });
  1372. },
  1373. getdetachedPhysicalDefenseConstructionInfo() {
  1374. this.detachedloading = true;
  1375. let dat = { orgId: this.$route.params.id, type: 4 };
  1376. listOrgPhysicalDefenseConstruction(dat).then((data) => {
  1377. // console.log(data);
  1378. this.detachedPhysicalDefenseConstructionList = data.rows;
  1379. this.detachedloading = false;
  1380. });
  1381. },
  1382. getBusinessPhysicalDefenseConstructionInfo() {
  1383. this.businessloading = true;
  1384. let dat = { orgId: this.$route.params.id, type: 2 };
  1385. listOrgPhysicalDefenseConstruction(dat).then((data) => {
  1386. // console.log(data);
  1387. this.BusinessPhysicalDefenseConstructionList = data.rows;
  1388. this.businessloading = false;
  1389. });
  1390. },
  1391. // 取消按钮
  1392. Businesscancel() {
  1393. this.Businessopen = false;
  1394. this.Businessreset();
  1395. },
  1396. // 表单重置
  1397. Businessreset() {
  1398. this.Businessform = {
  1399. id: null,
  1400. standard: null,
  1401. dateOfCompliance: null,
  1402. certificateEvidence: null,
  1403. certificate: null,
  1404. evidence: null,
  1405. createTime: null,
  1406. updateTime: null,
  1407. createBy: null,
  1408. updateBy: null,
  1409. orgId: null,
  1410. };
  1411. this.resetForm("Businessform");
  1412. },
  1413. // 多选框选中数据
  1414. handleBusinessSelectionChange(selection) {
  1415. this.Businessids = selection.map((item) => item.id);
  1416. this.single = selection.length !== 1;
  1417. this.multiple = !selection.length;
  1418. },
  1419. /** 新增按钮操作 */
  1420. handleBusinessAdd() {
  1421. this.Businessreset();
  1422. this.Businessopen = true;
  1423. this.Businesstitle = "添加业务库物防建设";
  1424. },
  1425. /** 编辑按钮操作 */
  1426. handleBusinessUpdate(row) {
  1427. this.Businessreset();
  1428. const id = row.id || this.Businessids;
  1429. getOrgPhysicalDefenseConstruction(id).then((response) => {
  1430. this.Businessform = response.data;
  1431. this.Businessopen = true;
  1432. this.Businesstitle = "编辑业务库物防建设";
  1433. });
  1434. },
  1435. /** 提交按钮 */
  1436. submitBusinessForm() {
  1437. this.$refs.Businessform.validate((valid) => {
  1438. if (valid) {
  1439. // 表单验证通过,提交数据或执行其他操作
  1440. this.Businessform.orgId = this.$route.params.id;
  1441. this.Businessform.type = 2;
  1442. if (this.Businessform.id != null) {
  1443. // console.log(this.Businessform,"this.Businessform")
  1444. updateOrgPhysicalDefenseConstruction(this.Businessform).then(
  1445. (response) => {
  1446. this.$modal.msgSuccess("编辑成功");
  1447. this.Businessopen = false;
  1448. this.getBusinessPhysicalDefenseConstructionInfo();
  1449. }
  1450. );
  1451. } else {
  1452. addOrgPhysicalDefenseConstruction(this.Businessform).then(
  1453. (response) => {
  1454. this.$modal.msgSuccess("新增成功");
  1455. this.Businessopen = false;
  1456. this.getBusinessPhysicalDefenseConstructionInfo();
  1457. }
  1458. );
  1459. }
  1460. } else {
  1461. // 表单验证未通过,显示错误信息
  1462. }
  1463. });
  1464. // this.$refs["Businessform"].validate((valid) => {
  1465. // if (valid) {
  1466. // }
  1467. // });
  1468. },
  1469. /** 删除按钮操作 */
  1470. handleBusinessDelete(row) {
  1471. const Businessids = row.id || this.Businessids;
  1472. this.$modal
  1473. .confirm(
  1474. '是否确认删除银行物防建设编号为"' + Businessids + '"的数据项?'
  1475. )
  1476. .then(function () {
  1477. return delOrgPhysicalDefenseConstruction(Businessids);
  1478. })
  1479. .then(() => {
  1480. this.getBusinessPhysicalDefenseConstructionInfo();
  1481. this.$modal.msgSuccess("删除成功");
  1482. })
  1483. .catch(() => {});
  1484. },
  1485. // resetimg(certificate){
  1486. // this.Bankform.certificate=0;
  1487. // },
  1488. // 取消按钮
  1489. Bankcancel() {
  1490. this.Bankopen = false;
  1491. this.Bankreset();
  1492. },
  1493. // 表单重置
  1494. Bankreset() {
  1495. this.Bankform = {
  1496. id: null,
  1497. standard: null,
  1498. dateOfCompliance: null,
  1499. certificateEvidence: null,
  1500. certificate: null,
  1501. evidence: null,
  1502. createTime: null,
  1503. updateTime: null,
  1504. createBy: null,
  1505. updateBy: null,
  1506. orgId: null,
  1507. };
  1508. this.resetForm("Bankform");
  1509. },
  1510. // 多选框选中数据
  1511. handleBankSelectionChange(selection) {
  1512. this.Bankids = selection.map((item) => item.id);
  1513. this.single = selection.length !== 1;
  1514. this.multiple = !selection.length;
  1515. },
  1516. /** 新增按钮操作 */
  1517. handleBankAdd() {
  1518. this.Bankreset();
  1519. this.Bankopen = true;
  1520. this.Banktitle = "添加银行物防建设";
  1521. },
  1522. /** 编辑按钮操作 */
  1523. handleBankUpdate(row) {
  1524. this.Bankreset();
  1525. const id = row.id || this.Bankids;
  1526. getOrgPhysicalDefenseConstruction(id).then((response) => {
  1527. this.Bankform = response.data;
  1528. this.Bankopen = true;
  1529. this.Banktitle = "编辑银行物防建设";
  1530. });
  1531. },
  1532. /** 提交按钮 */
  1533. submitBankForm() {
  1534. this.$refs.Bankform.validate((valid) => {
  1535. if (valid) {
  1536. // 表单验证通过,提交数据或执行其他操作
  1537. this.Bankform.orgId = this.$route.params.id;
  1538. this.Bankform.type = 3;
  1539. if (this.Bankform.id != null) {
  1540. updateOrgPhysicalDefenseConstruction(this.Bankform).then(
  1541. (response) => {
  1542. this.$modal.msgSuccess("编辑成功");
  1543. this.Bankopen = false;
  1544. this.getBankPhysicalDefenseConstructionInfo();
  1545. }
  1546. );
  1547. } else {
  1548. addOrgPhysicalDefenseConstruction(this.Bankform).then(
  1549. (response) => {
  1550. this.$modal.msgSuccess("新增成功");
  1551. this.Bankopen = false;
  1552. this.getBankPhysicalDefenseConstructionInfo();
  1553. }
  1554. );
  1555. }
  1556. } else {
  1557. // 表单验证未通过,显示错误信息
  1558. }
  1559. });
  1560. // this.$refs["Bankform"].validate((valid) => {
  1561. // if (valid) {
  1562. // }
  1563. // });
  1564. },
  1565. /** 删除按钮操作 */
  1566. handleBankDelete(row) {
  1567. const Bankids = row.id || this.Bankids;
  1568. this.$modal
  1569. .confirm('是否确认删除银行物防建设编号为"' + Bankids + '"的数据项?')
  1570. .then(function () {
  1571. return delOrgPhysicalDefenseConstruction(Bankids);
  1572. })
  1573. .then(() => {
  1574. this.getBankPhysicalDefenseConstructionInfo();
  1575. this.$modal.msgSuccess("删除成功");
  1576. })
  1577. .catch(() => {});
  1578. },
  1579. // 取消按钮
  1580. detachedcancel() {
  1581. this.detachedopen = false;
  1582. this.detachedreset();
  1583. },
  1584. // 表单重置
  1585. detachedreset() {
  1586. this.detachedform = {
  1587. id: null,
  1588. standard: null,
  1589. dateOfCompliance: null,
  1590. certificateEvidence: null,
  1591. certificate: null,
  1592. evidence: null,
  1593. createTime: null,
  1594. updateTime: null,
  1595. createBy: null,
  1596. updateBy: null,
  1597. orgId: null,
  1598. };
  1599. this.resetForm("detachedform");
  1600. },
  1601. // 多选框选中数据
  1602. handledetachedSelectionChange(selection) {
  1603. this.detachedids = selection.map((item) => item.id);
  1604. this.single = selection.length !== 1;
  1605. this.multiple = !selection.length;
  1606. },
  1607. /** 新增按钮操作 */
  1608. handledetachedAdd() {
  1609. this.detachedreset();
  1610. this.detachedopen = true;
  1611. this.detachedtitle = "添加离行物防建设";
  1612. },
  1613. /** 编辑按钮操作 */
  1614. handledetachedUpdate(row) {
  1615. this.detachedreset();
  1616. const id = row.id || this.detachedids;
  1617. getOrgPhysicalDefenseConstruction(id).then((response) => {
  1618. this.detachedform = response.data;
  1619. this.detachedopen = true;
  1620. this.detachedtitle = "编辑离行物防建设";
  1621. });
  1622. },
  1623. /** 提交按钮 */
  1624. submitdetachedForm() {
  1625. this.$refs.detachedform.validate((valid) => {
  1626. if (valid) {
  1627. // 表单验证通过,提交数据或执行其他操作
  1628. this.detachedform.orgId = this.$route.params.id;
  1629. this.detachedform.type = 4;
  1630. if (this.detachedform.id != null) {
  1631. updateOrgPhysicalDefenseConstruction(this.detachedform).then(
  1632. (response) => {
  1633. this.$modal.msgSuccess("编辑成功");
  1634. this.detachedopen = false;
  1635. this.getdetachedPhysicalDefenseConstructionInfo();
  1636. }
  1637. );
  1638. } else {
  1639. addOrgPhysicalDefenseConstruction(this.detachedform).then(
  1640. (response) => {
  1641. this.$modal.msgSuccess("新增成功");
  1642. this.detachedopen = false;
  1643. this.getdetachedPhysicalDefenseConstructionInfo();
  1644. }
  1645. );
  1646. }
  1647. } else {
  1648. // 表单验证未通过,显示错误信息
  1649. }
  1650. });
  1651. // this.$refs["detachedform"].validate((valid) => {
  1652. // if (valid) {
  1653. // }
  1654. // });
  1655. },
  1656. /** 删除按钮操作 */
  1657. handledetachedDelete(row) {
  1658. const detachedids = row.id || this.detachedids;
  1659. this.$modal
  1660. .confirm(
  1661. '是否确认删除离行物防建设编号为"' + detachedids + '"的数据项?'
  1662. )
  1663. .then(function () {
  1664. return delOrgPhysicalDefenseConstruction(detachedids);
  1665. })
  1666. .then(() => {
  1667. this.getdetachedPhysicalDefenseConstructionInfo();
  1668. this.$modal.msgSuccess("删除成功");
  1669. })
  1670. .catch(() => {});
  1671. },
  1672. // 表单重置
  1673. orgreset() {
  1674. this.orgform = {
  1675. id: null,
  1676. standard: null,
  1677. dateOfCompliance: null,
  1678. certificateEvidence: null,
  1679. certificate: null,
  1680. evidence: null,
  1681. createTime: null,
  1682. updateTime: null,
  1683. createBy: null,
  1684. updateBy: null,
  1685. orgId: null,
  1686. };
  1687. this.resetForm("orgform");
  1688. },
  1689. // 取消按钮
  1690. orgcancel() {
  1691. this.orgopen = false;
  1692. this.orgreset();
  1693. },
  1694. // 多选框选中数据
  1695. handleOrgSelectionChange(selection) {
  1696. this.orgids = selection.map((item) => item.id);
  1697. this.single = selection.length !== 1;
  1698. this.multiple = !selection.length;
  1699. },
  1700. /** 新增按钮操作 */
  1701. handleOrgAdd() {
  1702. this.orgreset();
  1703. this.orgopen = true;
  1704. this.orgtitle = "添加机构物防建设";
  1705. },
  1706. /** 编辑按钮操作 */
  1707. handleOrgUpdate(row) {
  1708. this.orgreset();
  1709. const id = row.id || this.orgids;
  1710. getOrgPhysicalDefenseConstruction(id).then((response) => {
  1711. // console.log(response)
  1712. this.orgform = response.data;
  1713. this.orgopen = true;
  1714. this.orgtitle = "编辑机构物防建设";
  1715. });
  1716. },
  1717. /** 提交按钮 */
  1718. submitOrgForm() {
  1719. this.$refs.orgform.validate((valid) => {
  1720. if (valid) {
  1721. // 表单验证通过,提交数据或执行其他操作
  1722. this.orgform.orgId = this.$route.params.id;
  1723. this.orgform.type = 1;
  1724. if (this.orgform.id != null) {
  1725. updateOrgPhysicalDefenseConstruction(this.orgform).then(
  1726. (response) => {
  1727. this.$modal.msgSuccess("编辑成功");
  1728. this.orgopen = false;
  1729. this.getOrgPhysicalDefenseConstructionInfo();
  1730. }
  1731. );
  1732. } else {
  1733. addOrgPhysicalDefenseConstruction(this.orgform).then((response) => {
  1734. this.$modal.msgSuccess("新增成功");
  1735. this.orgopen = false;
  1736. this.getOrgPhysicalDefenseConstructionInfo();
  1737. });
  1738. }
  1739. } else {
  1740. // 表单验证未通过,显示错误信息
  1741. }
  1742. });
  1743. // this.$refs["orgform"].validate((valid) => {
  1744. // if (valid) {
  1745. // }
  1746. // });
  1747. },
  1748. /** 删除按钮操作 */
  1749. handleOrgDelete(row) {
  1750. const orgids = row.id || this.orgids;
  1751. this.$modal
  1752. .confirm('是否确认删除机构物防建设编号为"' + orgids + '"的数据项?')
  1753. .then(function () {
  1754. return delOrgPhysicalDefenseConstruction(orgids);
  1755. })
  1756. .then(() => {
  1757. this.getOrgPhysicalDefenseConstructionInfo();
  1758. this.$modal.msgSuccess("删除成功");
  1759. })
  1760. .catch(() => {});
  1761. },
  1762. saveExtend() {
  1763. let dat = {
  1764. orgType: this.orgType,
  1765. weatherAreaCode: this.weatherAreaCode,
  1766. askariCertificate: this.askariCertificate,
  1767. premisesArea: this.premisesArea,
  1768. ownership: this.ownership ,
  1769. outsideArea: this.outsideArea ,
  1770. askari: this.askari ? 1 : 0,
  1771. businessLibraryType: this.businessLibraryType,
  1772. dutyMode: this.dutyMode,
  1773. remoteControl: this.remoteControl ? 1 : 0,
  1774. selfServiceBank: this.selfServiceBank ? 1 : 0,
  1775. businessLibrary: this.businessLibrary ? 1 : 0,
  1776. lobbyEquipment: this.lobbyEquipment,
  1777. wallPenetratingEquipment: this.wallPenetratingEquipment,
  1778. platformBrand: this.platformBrand,
  1779. platformSupplierBrand: this.platformSupplierBrand,
  1780. constructionTime: this.constructionTime,
  1781. lastUpdateTime: this.lastUpdateTime,
  1782. orgId: this.$route.params.id,
  1783. id: this.extendId,
  1784. detachedLobbyEquipment: this.detachedLobbyEquipment,
  1785. detachedWallPenetratingEquipment: this.detachedWallPenetratingEquipment,
  1786. cashAddingRoomRemoteControl: this.cashAddingRoomRemoteControl,
  1787. };
  1788. // console.log(dat);
  1789. if (this.extendId) {
  1790. updateExtend(dat).then((res) => {
  1791. this.$modal.msgSuccess("保存成功");
  1792. this.$router.go(-1);
  1793. });
  1794. } else {
  1795. addExtend(dat).then((res) => {
  1796. this.$modal.msgSuccess("保存成功");
  1797. this.$router.go(-1);
  1798. });
  1799. }
  1800. },
  1801. nosaveExtend() {
  1802. this.$router.go(-1);
  1803. },
  1804. triggerFileInput() {
  1805. this.$refs.fileInput.click();
  1806. },
  1807. async handleFileChange(event) {
  1808. const file = event.target.files[0];
  1809. if (!file) return;
  1810. // // 创建 FormData 对象并添加文件
  1811. // const formData = new FormData();
  1812. // formData.append("file", file);
  1813. // // 发送文件到您的文件上传 API
  1814. try {
  1815. uploadFile(file, "org").then((res) => {
  1816. console.log(res);
  1817. // this.orgform.certificateEvidence = res.data;
  1818. });
  1819. // 处理上传成功的逻辑
  1820. console.log("上传成功");
  1821. } catch (error) {
  1822. // 处理上传失败的逻辑
  1823. console.log("上传失败");
  1824. }
  1825. // try {
  1826. // const response = await request.post('http://localhost:9527/dev-api/file/file/upload', formData, {
  1827. // headers: {
  1828. // 'Content-Type': 'multipart/form-data',
  1829. // },
  1830. // });
  1831. // // 处理上传成功的逻辑
  1832. // console.log('上传成功', response);
  1833. // } catch (error) {
  1834. // // 处理上传失败的逻辑
  1835. // console.log('上传失败', error);
  1836. // }
  1837. // 重置 input 元素,以便下次选择相同文件时仍能触发 change 事件
  1838. event.target.value = "";
  1839. },
  1840. },
  1841. fillter: {},
  1842. };
  1843. </script>
  1844. <style scoped lang="scss">
  1845. .title {
  1846. font-size: 18px;
  1847. text-align: left;
  1848. background: #008cd6bd;
  1849. color: #fff;
  1850. height: 36px;
  1851. line-height: 36px;
  1852. padding-left: 8px;
  1853. margin: 0;
  1854. }
  1855. .info-box {
  1856. margin: 30px;
  1857. }
  1858. .demo-form-inline {
  1859. }
  1860. .dialog-footer {
  1861. }
  1862. .container {
  1863. }
  1864. .zoom-image {
  1865. transition: transform 0.3s ease;
  1866. }
  1867. .zoom-image:hover {
  1868. transform: scale(1.02);
  1869. }
  1870. .border-color-change {
  1871. border: 1px solid #ccc;
  1872. transition: border-color 0.3s ease;
  1873. }
  1874. .border-color-change:hover {
  1875. border-color: #1ea8e9;
  1876. /* 您可以将此颜色更改为所需的颜色 */
  1877. }
  1878. </style>