placeRegisterInfo.vue 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700
  1. <template>
  2. <van-nav-bar
  3. fixed
  4. title="场所详细信息"
  5. left-arrow
  6. @click-left="onClickLeft"
  7. :style="{ 'background-color': selectColor }"
  8. />
  9. <div class="main" style="height: 100vh">
  10. <div class="banner">
  11. <img src="../../../../public/loginbg/banner.jpg" alt="" />
  12. </div>
  13. <div class="info" style="height: 600px">
  14. <van-tabs v-model:active="active" swipeable>
  15. <!-- 基础信息 -->
  16. <van-tab>
  17. <template #title> <van-icon name="orders-o" />基础信息</template>
  18. <div style="padding: 0 10px; height: 570px; overflow: auto">
  19. <van-cell-group>
  20. <van-field
  21. name="uploader"
  22. label-align="top"
  23. label-width="8em"
  24. label="场所内外景照片:"
  25. >
  26. <template #input>
  27. <van-uploader
  28. v-model="fileList"
  29. :after-read="afterRead1"
  30. :max-count="6"
  31. capture="camera"
  32. accept=""
  33. :before-delete="fjdelete"
  34. >
  35. </van-uploader>
  36. </template>
  37. </van-field>
  38. </van-cell-group>
  39. <van-cell-group>
  40. <van-field
  41. v-model="dataitem.name"
  42. center
  43. required
  44. clearable
  45. label="场所名称:"
  46. input-align="right"
  47. placeholder="请输入场所名称"
  48. />
  49. </van-cell-group>
  50. <van-cell-group>
  51. <van-field
  52. v-model="religiousType"
  53. readonly
  54. required
  55. label="宗教类型:"
  56. name="validator"
  57. placeholder="请选择教别"
  58. input-align="right"
  59. right-icon="arrow-down"
  60. @click="hs_religious = true"
  61. />
  62. </van-cell-group>
  63. <van-cell-group>
  64. <van-field
  65. v-model="dataitem.tyshxydm"
  66. center
  67. label-width="7em"
  68. clearable
  69. label="社会信用代码:"
  70. input-align="right"
  71. placeholder="请输入社会信用代码"
  72. />
  73. </van-cell-group>
  74. <van-cell-group>
  75. <van-field
  76. v-model="dataitem.contact"
  77. center
  78. label-width="7em"
  79. clearable
  80. label="场所联系人:"
  81. input-align="right"
  82. placeholder="请填写场所联系人"
  83. />
  84. </van-cell-group>
  85. <van-cell-group>
  86. <van-field
  87. v-model="dataitem.contactNumber"
  88. center
  89. label-width="7em"
  90. clearable
  91. label="联系电话:"
  92. input-align="right"
  93. placeholder="请输入联系电话"
  94. />
  95. </van-cell-group>
  96. <van-cell-group>
  97. <van-field
  98. v-model="dataitem.placeSelectName"
  99. center
  100. clearable
  101. label="场所地点:"
  102. input-align="right"
  103. placeholder="请输入场所地点"
  104. />
  105. </van-cell-group>
  106. <van-cell-group>
  107. <van-field
  108. v-model="dataitem.place"
  109. center
  110. clearable
  111. label="详细地点:"
  112. input-align="right"
  113. placeholder="请输入详细场所地点"
  114. />
  115. </van-cell-group>
  116. <van-cell-group>
  117. <van-field
  118. v-model="dataitem.longitude"
  119. center
  120. clearable
  121. label-width="7em"
  122. label="场所坐标-经度:"
  123. input-align="right"
  124. placeholder="请输入场所经度坐标"
  125. />
  126. </van-cell-group>
  127. <van-cell-group>
  128. <van-field
  129. v-model="dataitem.latitude"
  130. center
  131. clearable
  132. label-width="7em"
  133. label="场所坐标-纬度:"
  134. input-align="right"
  135. placeholder="请输入场所纬度坐标"
  136. />
  137. </van-cell-group>
  138. <van-cell-group>
  139. <van-field
  140. v-model="dataitem.peopleThreshold"
  141. center
  142. clearable
  143. required
  144. label="额定人数:"
  145. input-align="right"
  146. placeholder="请输入场所额定人数"
  147. />
  148. </van-cell-group>
  149. <van-cell-group>
  150. <van-field
  151. v-model="dataitem.siteType"
  152. center
  153. clearable
  154. required
  155. label="场所类型:"
  156. input-align="right"
  157. placeholder="请选择场所类型"
  158. >
  159. <template #input>
  160. <span v-if="dataitem.siteType == 1">线下</span>
  161. <span v-if="dataitem.siteType == 0">线上</span>
  162. </template>
  163. </van-field>
  164. </van-cell-group>
  165. <van-cell-group>
  166. <van-field
  167. v-model="dataitem.nature"
  168. center
  169. required
  170. clearable
  171. label="场所性质:"
  172. input-align="right"
  173. placeholder="请选择场所性质"
  174. >
  175. <template #input>
  176. <span v-if="dataitem.siteType == 1">寺观教堂</span>
  177. <span v-if="dataitem.siteType == 0">固定场所</span>
  178. </template>
  179. </van-field>
  180. </van-cell-group>
  181. <van-cell-group>
  182. <van-field
  183. v-model="dataitem.place"
  184. center
  185. clearable
  186. label-width="7em"
  187. label="文物保护级别:"
  188. input-align="right"
  189. placeholder="请输入文物保护级别"
  190. />
  191. </van-cell-group>
  192. <van-cell-group>
  193. <van-field
  194. v-model="dataitem.constructionStage"
  195. center
  196. required
  197. clearable
  198. label-width="7em"
  199. label="场所建设阶段:"
  200. input-align="right"
  201. placeholder="请选择场所建设阶段"
  202. >
  203. <template #input>
  204. <span v-if="dataitem.siteType == 1">建设完成</span>
  205. <span v-if="dataitem.siteType == 0">筹备</span>
  206. </template>
  207. </van-field>
  208. </van-cell-group>
  209. <van-cell-group>
  210. <van-field
  211. v-model="dataitem.place"
  212. center
  213. clearable
  214. label="建筑面积(㎡):"
  215. input-align="right"
  216. placeholder="请输入场所建筑面积"
  217. />
  218. </van-cell-group>
  219. <van-cell-group>
  220. <van-field
  221. v-model="dataitem.place"
  222. center
  223. clearable
  224. label="占地面积(㎡):"
  225. input-align="right"
  226. placeholder="请输入场所占地面积"
  227. />
  228. </van-cell-group>
  229. <van-cell-group>
  230. <van-field
  231. v-model="dataitem.plan"
  232. center
  233. clearable
  234. label="场所规划:"
  235. input-align="right"
  236. placeholder="请填写场所规划"
  237. />
  238. </van-cell-group>
  239. <van-cell-group>
  240. <van-field
  241. v-model="dataitem.mainRoads"
  242. center
  243. clearable
  244. label-width="8em"
  245. label="出入口主要道路:"
  246. input-align="right"
  247. placeholder="请填写出入口主要道路"
  248. />
  249. </van-cell-group>
  250. <van-cell-group>
  251. <van-field
  252. v-model="dataitem.publicArea"
  253. center
  254. clearable
  255. label-width="7em"
  256. label="外围公共区域:"
  257. input-align="right"
  258. placeholder="请填写外围公共区域"
  259. />
  260. </van-cell-group>
  261. <van-cell-group>
  262. <van-field
  263. name="uploader"
  264. label-width="8em"
  265. label="宗教礼仪空间:"
  266. >
  267. <template #input>
  268. <van-uploader>
  269. <van-button type="primary"> 点击上传 </van-button>
  270. </van-uploader>
  271. </template>
  272. </van-field>
  273. </van-cell-group>
  274. <van-cell-group>
  275. <van-field
  276. v-model="message"
  277. rows="1"
  278. autosize
  279. label="备注:"
  280. type="textarea"
  281. placeholder="请输入备注"
  282. />
  283. </van-cell-group>
  284. </div>
  285. </van-tab>
  286. <!-- 备案信息 -->
  287. <van-tab>
  288. <template #title> <van-icon name="bulb-o" />备案信息 </template>
  289. <div style="padding: 0 10px; height: 570px; overflow: auto">
  290. <van-cell-group>
  291. <van-field
  292. v-model="dataitem.filingNo"
  293. center
  294. clearable
  295. label="场所备案号:"
  296. input-align="right"
  297. placeholder="请输入场所备案号"
  298. />
  299. </van-cell-group>
  300. <van-cell-group>
  301. <van-field
  302. v-model="dataitem.approvedEstablishmentTime"
  303. center
  304. required
  305. clearable
  306. label-width="8em"
  307. label="批准设立时间:"
  308. input-align="right"
  309. placeholder="请选择批准设立时间"
  310. />
  311. </van-cell-group>
  312. <van-cell-group>
  313. <van-field
  314. v-model="dataitem.approveOffice"
  315. center
  316. required
  317. clearable
  318. label="登记机关:"
  319. input-align="right"
  320. placeholder="请输入登记机关"
  321. />
  322. </van-cell-group>
  323. <van-cell-group>
  324. <van-field
  325. v-model="dataitem.registrationDate"
  326. center
  327. required
  328. clearable
  329. label="登记日期:"
  330. input-align="right"
  331. placeholder="请选择登记日期"
  332. />
  333. </van-cell-group>
  334. <van-cell-group>
  335. <van-field
  336. v-model="dataitem.teachingStaff"
  337. center
  338. required
  339. clearable
  340. label-width="7em"
  341. label="主要教职人员:"
  342. input-align="right"
  343. placeholder="请输入主要教职人员"
  344. />
  345. </van-cell-group>
  346. <van-cell-group>
  347. <van-field
  348. v-model="dataitem.registrationAuthority"
  349. center
  350. clearable
  351. label-width="7em"
  352. label="批准设立机关:"
  353. input-align="right"
  354. placeholder="请输入批准设立机关"
  355. />
  356. </van-cell-group>
  357. <van-cell-group>
  358. <van-field
  359. v-model="dataitem.registrationAuthority"
  360. center
  361. clearable
  362. label-width="10em"
  363. label="宗教部门管理人员:"
  364. input-align="right"
  365. placeholder="请选择宗教部门管理人员"
  366. />
  367. </van-cell-group>
  368. <van-cell-group>
  369. <van-field
  370. v-model="dataitem.registrationAuthority"
  371. center
  372. clearable
  373. label-width="10em"
  374. label="公安部门管理人员:"
  375. input-align="right"
  376. placeholder="请选择公安部门管理人员"
  377. />
  378. </van-cell-group>
  379. <van-cell-group>
  380. <van-field
  381. name="uploader"
  382. label-width="10em"
  383. label="场所建设审批手续:"
  384. >
  385. <template #input>
  386. <van-uploader>
  387. <van-button type="primary"> 点击上传 </van-button>
  388. </van-uploader>
  389. </template>
  390. </van-field>
  391. </van-cell-group>
  392. </div>
  393. </van-tab>
  394. <!-- 互联网专区 -->
  395. <van-tab>
  396. <template #title> <van-icon name="desktop-o" />互联网专区 </template>
  397. <div style="padding: 0 10px; height: 570px; overflow: auto">
  398. <div style="overflow: hidden">
  399. <p style="font-weight: 700">
  400. 直播间<van-button
  401. type="primary"
  402. size="mini"
  403. style="margin-left: 10px; vertical-align: middle"
  404. >新增</van-button
  405. >
  406. </p>
  407. <div>
  408. <van-cell-group>
  409. <van-field
  410. v-model="dataitem.registrationAuthority"
  411. center
  412. clearable
  413. label-width="7em"
  414. label="所属平台:"
  415. input-align="right"
  416. placeholder="请选择所属平台"
  417. />
  418. </van-cell-group>
  419. <van-cell-group>
  420. <van-field
  421. v-model="dataitem.registrationAuthority"
  422. center
  423. clearable
  424. label-width="7em"
  425. label="直播账号:"
  426. input-align="right"
  427. placeholder="请输入直播账号"
  428. />
  429. </van-cell-group>
  430. <van-cell-group>
  431. <van-field
  432. v-model="dataitem.registrationAuthority"
  433. center
  434. clearable
  435. label-width="7em"
  436. label="管理员:"
  437. input-align="right"
  438. placeholder="请填写管理员"
  439. />
  440. </van-cell-group>
  441. <van-cell-group>
  442. <van-field
  443. v-model="dataitem.registrationAuthority"
  444. center
  445. clearable
  446. label-width="7em"
  447. label="联系方式:"
  448. input-align="right"
  449. placeholder="请输入联系方式"
  450. />
  451. </van-cell-group>
  452. <van-button type="danger" size="mini" color="#e6a23c"
  453. >删除</van-button
  454. >
  455. </div>
  456. </div>
  457. <div style="overflow: hidden">
  458. <p style="font-weight: 700">
  459. 公众号<van-button
  460. type="primary"
  461. size="mini"
  462. style="margin-left: 10px; vertical-align: middle"
  463. >新增</van-button
  464. >
  465. </p>
  466. <div>
  467. <van-cell-group>
  468. <van-field
  469. v-model="dataitem.registrationAuthority"
  470. center
  471. clearable
  472. label-width="7em"
  473. label="公众号账号:"
  474. input-align="right"
  475. placeholder="请输入直播账号"
  476. />
  477. </van-cell-group>
  478. <van-cell-group>
  479. <van-field
  480. v-model="dataitem.registrationAuthority"
  481. center
  482. clearable
  483. label-width="7em"
  484. label="管理员:"
  485. input-align="right"
  486. placeholder="请填写管理员"
  487. />
  488. </van-cell-group>
  489. <van-cell-group>
  490. <van-field
  491. v-model="dataitem.registrationAuthority"
  492. center
  493. clearable
  494. label-width="7em"
  495. label="联系方式:"
  496. input-align="right"
  497. placeholder="请输入联系方式"
  498. />
  499. </van-cell-group>
  500. <van-button type="danger" size="mini" color="#e6a23c"
  501. >删除</van-button
  502. >
  503. </div>
  504. </div>
  505. <div style="overflow: hidden">
  506. <p style="font-weight: 700">
  507. 微信群<van-button
  508. type="primary"
  509. size="mini"
  510. style="margin-left: 10px; vertical-align: middle"
  511. >新增</van-button
  512. >
  513. </p>
  514. <div>
  515. <van-cell-group>
  516. <van-field
  517. v-model="dataitem.registrationAuthority"
  518. center
  519. clearable
  520. label-width="7em"
  521. label="微信群账号:"
  522. input-align="right"
  523. placeholder="请输入直播账号"
  524. />
  525. </van-cell-group>
  526. <van-cell-group>
  527. <van-field
  528. v-model="dataitem.registrationAuthority"
  529. center
  530. clearable
  531. label-width="7em"
  532. label="管理员:"
  533. input-align="right"
  534. placeholder="请填写管理员"
  535. />
  536. </van-cell-group>
  537. <van-cell-group>
  538. <van-field
  539. v-model="dataitem.registrationAuthority"
  540. center
  541. clearable
  542. label-width="7em"
  543. label="联系方式:"
  544. input-align="right"
  545. placeholder="请输入联系方式"
  546. />
  547. </van-cell-group>
  548. <van-button type="danger" size="mini" color="#e6a23c"
  549. >删除</van-button
  550. >
  551. </div>
  552. </div>
  553. <div style="overflow: hidden">
  554. <p style="font-weight: 700">网站</p>
  555. <div>
  556. <van-cell-group>
  557. <van-field
  558. v-model="dataitem.registrationAuthority"
  559. center
  560. clearable
  561. label-width="7em"
  562. label="网站地址:"
  563. input-align="right"
  564. placeholder="请输入网站地址"
  565. />
  566. </van-cell-group>
  567. </div>
  568. </div>
  569. </div>
  570. </van-tab>
  571. </van-tabs>
  572. <div class="btn">
  573. <van-button type="primary">确认</van-button>
  574. </div>
  575. </div>
  576. <!-- 宗教类型 -->
  577. <van-popup v-model:show="hs_religious" round position="bottom">
  578. <van-picker
  579. title="宗教类型"
  580. :columns="religious"
  581. @cancel="hs_religious = false"
  582. @confirm="getreligious"
  583. />
  584. </van-popup>
  585. <!-- 场所地点 -->
  586. <!-- 场所类型 -->
  587. <!-- 场所性质 -->
  588. <!-- 场所建设阶段 -->
  589. </div>
  590. </template>
  591. <script>
  592. import { useRouter } from "vue-router";
  593. import { onMounted, ref } from "vue";
  594. import placeRegister from "@/api/placeRegister/placeRegister";
  595. import tools from "@/api/sys/tools";
  596. export default {
  597. setup() {
  598. const active = ref(0);
  599. // 导航栏颜色
  600. const selectColor = ref(window.localStorage.getItem("MZ_COLOR"));
  601. //场所数据
  602. let dataitem = ref({});
  603. //数据接收
  604. const router = useRouter();
  605. onMounted(() => {
  606. var id = JSON.parse(router.currentRoute.value.query.id);
  607. new placeRegister().queryById(id).then((res) => {
  608. // console.log(res);
  609. dataitem.value = res;
  610. religiousType.value = getreligiousT(dataitem.value.religiousType);
  611. });
  612. });
  613. //宗教类型
  614. const religiousType = ref("");
  615. const getreligiousT = (type) => {
  616. const typeObject = {
  617. 1: "伊斯兰教",
  618. 2: "基督教",
  619. 3: "天主教",
  620. 4: "佛教",
  621. 5: "道教",
  622. };
  623. return typeObject[type];
  624. };
  625. const religious = [
  626. { text: "伊斯兰教", value: "1" },
  627. { text: "基督教", value: "2" },
  628. { text: "天主教", value: "3" },
  629. { text: "佛教", value: "4" },
  630. { text: "道教", value: "5" },
  631. ];
  632. let hs_religious = ref(false);
  633. const getreligious = ({ selectedOptions }) => {
  634. hs_religious.value = false;
  635. // const json = Object.assign(inputForm.value, {
  636. // religion: selectedOptions[0].value,
  637. // });
  638. // inputForm.value = json;
  639. religiousType.value = selectedOptions[0].text;
  640. };
  641. //图片上传
  642. let fileList = ref([]);
  643. let fileImg = ref([]);
  644. const afterRead1 = (file) => {
  645. new tools()
  646. .uploadFile(file, `religioussites/siteinfo/religiousSitesInfo`)
  647. .then(({ data }) => {
  648. data.name = decodeURIComponent(
  649. data.url.substring(data.url.lastIndexOf("/") + 1)
  650. );
  651. placeActivity.placeData.scenesImage += "" + data.url;
  652. fileImg.value.push(data);
  653. });
  654. };
  655. const fjdelete = (file) => {
  656. //删除文件操作
  657. for (let index = 0; index < fileList.value.length; index++) {
  658. if (file.file == fileList.value[index].file) {
  659. let delurl = fileImg.value[index].url;
  660. new tools().uploadFiledelete("", delurl).then(({ data }) => {});
  661. fileImg.value.splice(index, 1);
  662. fileList.value.splice(index, 1);
  663. }
  664. }
  665. };
  666. //返回
  667. const onClickLeft = () => {
  668. history.back();
  669. };
  670. return {
  671. onClickLeft,
  672. dataitem,
  673. selectColor,
  674. active,
  675. //图片上传
  676. fileList,
  677. afterRead1,
  678. //图片删除
  679. fjdelete,
  680. //宗教类型
  681. religiousType,
  682. hs_religious,
  683. religious,
  684. getreligious,
  685. };
  686. },
  687. };
  688. </script>
  689. <style lang="less">
  690. .btn {
  691. margin: 10px auto;
  692. .van-button {
  693. width: 100%;
  694. height: 50px;
  695. }
  696. }
  697. </style>