| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265 |
- <template>
- <van-nav-bar fixed title="场所详细信息" left-arrow @click-left="onClickLeft"
- :style="{ 'background-color': selectColor }" />
- <div class="main" style="height: 100vh">
- <div class="banner">
- <img src="../../../../public/loginbg/banner.jpg" alt="" />
- </div>
- <div class="info" style="height: 500px">
- <van-form @submit="submit" @failed="failed" show-error :show-error-message="false">
- <van-tabs v-model:active="active" swipeable>
- <!-- 基础信息 -->
- <van-tab>
- <template #title> <van-icon name="orders-o" />基础信息</template>
- <div style="padding: 0 10px; height: 470px; overflow: auto">
- <div class="imgbox">
- <div class="img-left">
- <van-cell-group>
- <van-field name="uploader" label-align="top" label-width="8em"
- label="场所内外景(主):">
- <template #input>
- <van-uploader readonly v-model="fileList" :max-count="1" accept=""
- :preview-full-image="false" :before-delete="deleteRead"
- @click-upload="chooseImg">
- </van-uploader>
- </template>
- </van-field>
- </van-cell-group>
- </div>
- <div class="img-left">
- <van-cell-group>
- <van-field name="uploader" label-align="top" label-width="9em"
- label="场所内外景(其他):">
- <template #input>
- <van-uploader readonly v-model="fileList4" :max-count="5"
- preview-size="60" accept="" :preview-full-image="false"
- :before-delete="deleteRead4" @click-upload="chooseImg4">
- </van-uploader>
- </template>
- </van-field>
- </van-cell-group>
- </div>
- </div>
- <van-cell-group>
- <van-field v-model="dataitem.name" center required clearable
- :rules="[{ required: true }]" label="场所名称:" input-align="right"
- placeholder="请输入场所名称" />
- </van-cell-group>
- <van-cell-group>
- <van-field v-model="religiousType" readonly required :rules="[{ required: true }]"
- label="宗教类型:" name="validator" placeholder="请选择教别" input-align="right"
- right-icon="arrow-down" @click="hs_religious = true" />
- </van-cell-group>
- <van-cell-group>
- <van-field v-model="dataitem.tyshxydm" center label-width="7em" clearable
- label="社会信用代码:" input-align="right" placeholder="请输入社会信用代码" />
- </van-cell-group>
- <van-cell-group>
- <van-field v-model="dataitem.contact" center label-width="7em" clearable label="场所联系人:"
- input-align="right" placeholder="请填写场所联系人" />
- </van-cell-group>
- <van-cell-group>
- <van-field v-model="dataitem.contactNumber" center label-width="7em" clearable
- label="联系电话:" input-align="right" placeholder="请输入联系电话" />
- </van-cell-group>
- <van-cell-group>
- <van-field v-model="placeAddress" center clearable readonly label="场所地点:"
- input-align="right" right-icon="arrow-down" placeholder="请输入场所地点"
- @click="showPlace1 = true" />
- </van-cell-group>
- <van-cell-group>
- <van-field v-model="dataitem.place" center clearable label="详细地点:" input-align="right"
- placeholder="请输入详细场所地点">
- <template #right-icon>
- <van-icon name="location" @click="getLocation" />
- </template>
- </van-field>
- </van-cell-group>
- <van-cell-group>
- <van-field v-model="dataitem.longitude" center clearable label-width="7em"
- label="场所坐标-经度:" input-align="right" placeholder="请输入场所经度坐标" />
- </van-cell-group>
- <van-cell-group>
- <van-field v-model="dataitem.latitude" center clearable label-width="7em"
- label="场所坐标-纬度:" input-align="right" placeholder="请输入场所纬度坐标" />
- </van-cell-group>
- <van-cell-group>
- <van-field v-model="dataitem.peopleThreshold" center clearable required
- :rules="[{ required: true }]" label="额定人数:" input-align="right"
- placeholder="请输入场所额定人数" />
- </van-cell-group>
- <van-cell-group>
- <van-field v-model="placeTypeName" center readonly clearable required
- :rules="[{ required: true }]" label="场所类型:" input-align="right"
- placeholder="请选择场所类型" right-icon="arrow-down" @click="showPicker1 = true">
- </van-field>
- </van-cell-group>
- <van-cell-group>
- <van-field v-model="propertyName" readonly required :rules="[{ required: true }]"
- label="场所性质" placeholder="请选择场所性质" input-align="right" right-icon="arrow-down"
- @click="showPicker3 = true" />
- </van-cell-group>
- <van-cell-group>
- <van-field v-model="dataitem.protectionLevel" center clearable label-width="7em"
- label="文物保护级别:" input-align="right" placeholder="请输入文物保护级别" />
- </van-cell-group>
- <van-cell-group>
- <van-field v-model="constructionName" center required readonly clearable
- label-width="7em" label="场所建设阶段:" input-align="right" right-icon="arrow-down"
- placeholder="请选择场所建设阶段" @click="showPicker2 = true">
- </van-field>
- </van-cell-group>
- <van-cell-group>
- <van-field v-model="lv" center required readonly clearable :rules="[{ required: true }]"
- label-width="7em" label="场所建筑等级:" input-align="right" right-icon="arrow-down"
- placeholder="请选择场所建筑等级" @click="showlv = true">
- </van-field>
- </van-cell-group>
- <van-cell-group>
- <van-field v-model="dataitem.coveredArea" center clearable label="建筑面积(㎡):"
- input-align="right" placeholder="请输入场所建筑面积" />
- </van-cell-group>
- <van-cell-group>
- <van-field v-model="dataitem.floorSpace" center clearable label="占地面积(㎡):"
- input-align="right" placeholder="请输入场所占地面积" />
- </van-cell-group>
- <van-cell-group>
- <van-field v-model="dataitem.plan" center clearable label="场所规划:" input-align="right"
- placeholder="请填写场所规划" />
- </van-cell-group>
- <van-cell-group>
- <van-field v-model="dataitem.mainRoads" center clearable label-width="8em"
- label="出入口主要道路:" input-align="right" placeholder="请填写出入口主要道路" />
- </van-cell-group>
- <van-cell-group>
- <van-field v-model="dataitem.publicArea" center clearable label-width="7em"
- label="外围公共区域:" input-align="right" placeholder="请填写外围公共区域" />
- </van-cell-group>
- <van-cell-group>
- <van-field name="uploader" label-align="top" label-width="8em" label="宗教礼仪空间:">
- <template #input>
- <van-uploader readonly v-model="fileList2" :max-count="5" accept=""
- :preview-full-image="false" :before-delete="deleteRead2"
- @click-upload="chooseImg2">
- </van-uploader>
- </template>
- </van-field>
- </van-cell-group>
- <van-cell-group>
- <van-field v-model="dataitem.remake" rows="1" autosize label="备注:" type="textarea"
- placeholder="请输入备注" />
- </van-cell-group>
- </div>
- </van-tab>
- <!-- 备案信息 -->
- <van-tab>
- <template #title> <van-icon name="bulb-o" />备案信息 </template>
- <div style="padding: 0 10px; height: 470px; overflow: auto">
- <van-cell-group>
- <van-field v-model="dataitem.filingNo" center clearable label="场所备案号:"
- input-align="right" placeholder="请输入场所备案号" />
- </van-cell-group>
- <van-cell-group>
- <van-field v-model="dataitem.approvedEstablishmentTime" center readonly required
- label-width="8em" :rules="[{ required: true }]" label="批准设立时间:" placeholder="请选择时间"
- input-align="right" right-icon="arrow-down" @click="hs_SetupTime = true" />
- </van-cell-group>
- <van-cell-group>
- <van-field v-model="dataitem.registrationAuthority" center :rules="[{ required: true }]"
- required clearable label="登记机关:" input-align="right" placeholder="请输入登记机关" />
- </van-cell-group>
- <van-cell-group>
- <van-field v-model="dataitem.registrationDate" center readonly required
- label-width="8em" :rules="[{ required: true }]" label="登记日期:" placeholder="请选择时间"
- input-align="right" right-icon="arrow-down" @click="hs_SignTime = true" />
- </van-cell-group>
- <van-cell-group>
- <van-field v-model="dataitem.teachingStaff" center clearable label-width="7em"
- label="主要教职人员:" input-align="right" placeholder="请输入主要教职人员" />
- </van-cell-group>
- <van-cell-group>
- <van-field v-model="dataitem.approveOffice" center clearable label-width="7em"
- label="批准设立机关:" input-align="right" placeholder="请输入批准设立机关" />
- </van-cell-group>
- <van-cell-group>
- <van-field v-model="religiousDeptManaUserName" center label="宗教管理人员"
- placeholder="请填写宗教管理人员" input-align="right" right-icon="arrow-down"
- @click="showPerson = true" />
- </van-cell-group>
- <van-cell-group>
- <van-field v-model="securityDeptManaUserName" center label="公安管理人员"
- placeholder="请填写公安管理人员" input-align="right" right-icon="arrow-down"
- @click="showReport = true" />
- </van-cell-group>
- <van-cell-group>
- <van-field name="uploader" label-align="top" label-width="10em" label="场所建设审批手续:">
- <template #input>
- <van-uploader readonly v-model="fileList3" :max-count="5" accept=""
- :preview-full-image="false" :before-delete="deleteRead3"
- @click-upload="chooseImg3">
- <van-button>上传文件(可添加图片、音、视频和文本等)</van-button>
- </van-uploader>
- </template>
- </van-field>
- </van-cell-group>
- </div>
- </van-tab>
- <!-- 互联网专区 -->
- <van-tab>
- <template #title>
- <van-icon name="desktop-o" />互联网专区
- </template>
- <div style="padding: 0 10px; height: 470px; overflow: auto">
- <div style="overflow: hidden">
- <p style="font-weight: 700; font-size: 14px">
- 直播间<van-button type="primary" size="mini"
- style="margin-left: 10px; vertical-align: middle"
- @click="addForm('直播间')">新增</van-button>
- </p>
- <div v-for="item in internetForm.zbjForm" :key="item.key">
- <van-cell-group>
- <van-field v-model="item.typeName" center clearable readonly label-width="7em"
- label="所属平台:" input-align="right" right-icon="arrow-down"
- placeholder="请选择所属平台" @click="showNew(item.key)" />
- </van-cell-group>
- <van-cell-group>
- <van-field v-model="item.account" center clearable label-width="7em"
- label="直播账号:" input-align="right" placeholder="请输入直播账号" />
- </van-cell-group>
- <van-cell-group>
- <van-field v-model="item.manager" center clearable label-width="7em"
- label="管理员:" input-align="right" placeholder="请填写管理员" />
- </van-cell-group>
- <van-cell-group>
- <van-field v-model="item.contact" center clearable label-width="7em"
- label="联系方式:" input-align="right" placeholder="请输入联系方式" />
- </van-cell-group>
- <van-button @click="removeForm(item, '直播间')" type="danger" size="mini"
- color="#e6a23c">删除</van-button>
- </div>
- </div>
- <div style="overflow: hidden">
- <p style="font-weight: 700; font-size: 14px">
- 公众号<van-button type="primary" size="mini" @click="addForm('公众号')"
- style="margin-left: 10px; vertical-align: middle">新增</van-button>
- </p>
- <div v-for="item in internetForm.gzhForm" :key="item.key">
- <van-cell-group>
- <van-field v-model="item.account" center clearable label-width="7em"
- label="公众号账号:" input-align="right" placeholder="请输入公众号账号" />
- </van-cell-group>
- <van-cell-group>
- <van-field v-model="item.manager" center clearable label-width="7em"
- label="管理员:" input-align="right" placeholder="请填写管理员" />
- </van-cell-group>
- <van-cell-group>
- <van-field v-model="item.contact" center clearable label-width="7em"
- label="联系方式:" input-align="right" placeholder="请输入联系方式" />
- </van-cell-group>
- <van-button @click="removeForm(item, '公众号')" type="danger" size="mini"
- color="#e6a23c">删除</van-button>
- </div>
- </div>
- <div style="overflow: hidden">
- <p style="font-weight: 700; font-size: 14px">
- 微信群<van-button type="primary" size="mini"
- style="margin-left: 10px; vertical-align: middle"
- @click="addForm('微信群')">新增</van-button>
- </p>
- <div v-for="item in internetForm.wxqForm" :key="item.key">
- <van-cell-group>
- <van-field v-model="item.account" center clearable label-width="7em"
- label="微信群账号:" input-align="right" placeholder="请输入微信群账号" />
- </van-cell-group>
- <van-cell-group>
- <van-field v-model="item.manager" center clearable label-width="7em"
- label="管理员:" input-align="right" placeholder="请填写管理员" />
- </van-cell-group>
- <van-cell-group>
- <van-field v-model="item.contact" center clearable label-width="7em"
- label="联系方式:" input-align="right" placeholder="请输入联系方式" />
- </van-cell-group>
- <van-button @click="removeForm(item, '微信群')" type="danger" size="mini"
- color="#e6a23c">删除</van-button>
- </div>
- </div>
- <div style="overflow: hidden">
- <p style="font-weight: 700; font-size: 14px">网站</p>
- <div>
- <van-cell-group>
- <van-field v-model="dataitem.website" center clearable label-width="7em"
- label="网站地址:" input-align="right" placeholder="请输入网站地址" />
- </van-cell-group>
- </div>
- </div>
- </div>
- </van-tab>
- </van-tabs>
- <div class="btn">
- <van-button type="primary" native-type="submit">确认修改</van-button>
- </div>
- </van-form>
- </div>
- <!-- 宗教类型 -->
- <van-popup v-model:show="hs_religious" round position="bottom">
- <van-picker title="宗教类型" :columns="religious" @cancel="hs_religious = false" @confirm="getreligious" />
- </van-popup>
- <!-- 场所地点 -->
- <van-popup v-model:show="showPlace1" round position="bottom">
- <van-picker title="场所地点" :columns="options" :columns-field-names="customFieldName"
- @cancel="showPlace1 = false" @confirm="getPlace1" />
- </van-popup>
- <!-- 场所类型 -->
- <van-popup v-model:show="showPicker1" round position="bottom">
- <van-picker title="场所类型" :columns="placeType" @cancel="showPicker1 = false" @confirm="getplaceType" />
- </van-popup>
- <!-- 场所性质 -->
- <van-popup v-model:show="showPicker3" round position="bottom">
- <van-picker title="场所性质选择" :columns="property" @cancel="showPicker3 = false" @confirm="getproperty" />
- </van-popup>
- <!-- 场所建设阶段 -->
- <van-popup v-model:show="showPicker2" round position="bottom">
- <van-picker title="场所建设阶段" :columns="construction" @cancel="showPicker2 = false"
- @confirm="getConstruction" />
- </van-popup>
- <!-- 场所建筑等级 -->
- <van-popup v-model:show="showlv" round position="bottom">
- <van-picker title="场所建筑等级" :columns="$dictUtils.getDictList('site_building_grade')" :columns-field-names="{
- text: 'label',
- value: 'value',
- }" @cancel="showlv = false" @confirm="getlv" />
- </van-popup>
- <!-- 宗教管理人员 -->
- <van-dialog v-model:show="showPerson" title="宗教部门管理人员" show-cancel-button @confirm="reselected" width="100%">
- <manage-list @selected="selected" :type="0"></manage-list>
- </van-dialog>
- <!-- 公安部门人员 -->
- <van-dialog v-model:show="showReport" title="公安部门管理人员" show-cancel-button @confirm="reselected2" width="100%">
- <manage-list-2 @selected2="selected2"></manage-list-2>
- </van-dialog>
- <!-- 直播类型 -->
- <van-popup v-model:show="showzbj" round position="bottom">
- <van-picker title="直播类型" :columns="zbj" @cancel="showzbj = false" @confirm="getzbj" />
- </van-popup>
- <!-- 批准设立时间 -->
- <van-popup v-model:show="hs_SetupTime" round position="bottom">
- <van-picker-group title="批准设立时间" :tabs="['选择日期', '选择时间']" next-step-text="下一步" @confirm="getSetupTime"
- @cancel="hs_SetupTime = false">
- <van-date-picker v-model="currentDate" />
- <van-time-picker v-model="currentTime" :columns-type="columnsType" />
- </van-picker-group>
- </van-popup>
- <!-- 登记日期 -->
- <van-popup v-model:show="hs_SignTime" round position="bottom">
- <van-picker-group title="登记日期" :tabs="['选择日期', '选择时间']" next-step-text="下一步" @confirm="getSignTime"
- @cancel="hs_SignTime = false">
- <van-date-picker v-model="currentDate" />
- <van-time-picker v-model="currentTime" :columns-type="columnsType" />
- </van-picker-group>
- </van-popup>
- </div>
- </template>
- <script>
- import ManageList from "../ManageList.vue";
- import ManageList2 from "../ManageList2.vue";
- import {
- useRouter
- } from "vue-router";
- import {
- onMounted,
- ref,
- getCurrentInstance
- } from "vue";
- import placeRegister from "@/api/placeRegister/placeRegister";
- import tools from "@/api/sys/tools";
- import $base from "@/utils/config";
- import {
- formatDate,
- formatTime
- } from "@/utils/datatime";
- export default {
- components: {
- ManageList,
- ManageList2
- },
- setup() {
- const active = ref(0);
- // 导航栏颜色
- const selectColor = ref(window.localStorage.getItem("MZ_COLOR"));
- //场所数据
- let dataitem = ref({});
- //数据接收
- const router = useRouter();
- const current = getCurrentInstance();
- onMounted(() => {
- var id = JSON.parse(router.currentRoute.value.query.id);
- new placeRegister().queryById(id).then((res) => {
- dataitem.value = res;
- const rN = Object.assign(dataitem.value, {
- religiousName: getreligiousT(dataitem.value.religiousType),
- placeSelectLastId: dataitem.value.placeSelectId.split("/")[2],
- });
- dataitem.value = rN;
- religiousType.value = getreligiousT(dataitem.value.religiousType);
- propertyName.value = getpropertyType(dataitem.value.nature);
- constructionName.value = getConstructionType(
- dataitem.value.constructionStage
- );
- placeTypeName.value = getplaceTypeN(dataitem.value.siteType);
- placeAddress.value = dataitem.value.placeSelectName;
- lv.value =
- current.appContext.config.globalProperties.$dictUtils.getDictLabel(
- "site_building_grade",
- dataitem.value.siteBuildingGrade
- );
- dataitem.value.scenesImageMain.split("|").forEach((item) => {
- if (item.trim().length > 0) {
- fileImg.value.push({
- name: decodeURIComponent(
- item.substring(item.lastIndexOf("/") + 1)
- ),
- url: $base + "/" + item.replace("程序附件//", "程序附件/"),
- id: item.replace("程序附件//", "程序附件/"),
- });
- fileList.value.push({
- name: decodeURIComponent(
- item.substring(item.lastIndexOf("/") + 1)
- ),
- url: $base + "/" + item.replace("程序附件//", "程序附件/"),
- id: item.replace("程序附件//", "程序附件/"),
- });
- }
- });
- dataitem.value.etiquetteSpace.split("|").forEach((item) => {
- if (item.trim().length > 0) {
- fileImg2.value.push({
- name: decodeURIComponent(
- item.substring(item.lastIndexOf("/") + 1)
- ),
- url: $base + "/" + item.replace("程序附件//", "程序附件/"),
- id: item.replace("程序附件//", "程序附件/"),
- });
- fileList2.value.push({
- name: decodeURIComponent(
- item.substring(item.lastIndexOf("/") + 1)
- ),
- url: $base + "/" + item.replace("程序附件//", "程序附件/"),
- id: item.replace("程序附件//", "程序附件/"),
- });
- }
- });
- dataitem.value.approvalProcedures.split("|").forEach((item) => {
- if (item.trim().length > 0) {
- fileImg3.value.push({
- name: decodeURIComponent(
- item.substring(item.lastIndexOf("/") + 1)
- ),
- url: $base + "/" + item.replace("程序附件//", "程序附件/"),
- id: item.replace("程序附件//", "程序附件/"),
- });
- fileList3.value.push({
- name: decodeURIComponent(
- item.substring(item.lastIndexOf("/") + 1)
- ),
- url: $base + "/" + item.replace("程序附件//", "程序附件/"),
- id: item.replace("程序附件//", "程序附件/"),
- });
- }
- });
- dataitem.value.scenesImage.split("|").forEach((item) => {
- if (item.trim().length > 0) {
- fileImg4.value.push({
- name: decodeURIComponent(
- item.substring(item.lastIndexOf("/") + 1)
- ),
- url: $base + "/" + item.replace("程序附件//", "程序附件/"),
- id: item.replace("程序附件//", "程序附件/"),
- });
- fileList4.value.push({
- name: decodeURIComponent(
- item.substring(item.lastIndexOf("/") + 1)
- ),
- url: $base + "/" + item.replace("程序附件//", "程序附件/"),
- id: item.replace("程序附件//", "程序附件/"),
- });
- }
- });
- let id = dataitem.value.id;
- new placeRegister().queryInternetBySiteId(id).then(({
- data
- }) => {
- dynamicFormDataClear();
- dynamicFormDataProceed(data);
- });
- });
- });
- //详细地址定位
- const getLocation = () => {
- xm.getLocation().then((data) => {
- placeActivity.placeData.place = data.POIName;
- });
- };
- // 地区选择
- let placeAddress = ref("");
- const customFieldName = {
- text: "name",
- value: "id",
- };
- // 选项列表,children 代表子选项,支持多级嵌套
- const options = ref([]);
- // 获取地区数据树
- new placeRegister().treeDate().then((res) => {
- options.value.push(...res);
- });
- let showPlace1 = ref(false);
- const getPlace1 = ({
- selectedOptions
- }) => {
- showPlace1.value = false;
- placeAddress.value =
- selectedOptions[0].name +
- "/" +
- selectedOptions[1].name +
- "/" +
- selectedOptions[2].name;
- const json = Object.assign(dataitem.value, {
- placeSelectName: selectedOptions[0].name +
- "/" +
- selectedOptions[1].name +
- "/" +
- selectedOptions[2].name,
- placeSelectId: selectedOptions[0].id +
- "/" +
- selectedOptions[1].id +
- "/" +
- selectedOptions[2].id,
- placeSelectType3: selectedOptions[0].id,
- placeSelectType4: selectedOptions[1].id,
- placeSelectType5: selectedOptions[2].id,
- placeSelectLastId: selectedOptions[2].id,
- });
- dataitem.value = json;
- };
- //宗教类型
- const religiousType = ref("");
- const getreligiousT = (type) => {
- const typeObject = {
- 1: "伊斯兰教",
- 2: "基督教",
- 3: "天主教",
- 4: "佛教",
- 5: "道教",
- };
- return typeObject[type];
- };
- const religious = [{
- text: "伊斯兰教",
- value: "1"
- },
- {
- text: "基督教",
- value: "2"
- },
- {
- text: "天主教",
- value: "3"
- },
- {
- text: "佛教",
- value: "4"
- },
- {
- text: "道教",
- value: "5"
- },
- ];
- let hs_religious = ref(false);
- const getreligious = ({
- selectedOptions
- }) => {
- hs_religious.value = false;
- const json = Object.assign(dataitem.value, {
- religiousType: selectedOptions[0].value,
- religiousName: selectedOptions[0].text,
- });
- dataitem.value = json;
- religiousType.value = selectedOptions[0].text;
- };
- // 场所类型
- const placeTypeName = ref("");
- const placeType = [{
- text: "线上",
- value: "0"
- },
- {
- text: "线下",
- value: "1"
- },
- ];
- const getplaceTypeN = (type) => {
- const typeObject = {
- 0: "线上",
- 1: "线下",
- };
- return typeObject[type];
- };
- let showPicker1 = ref(false);
- const getplaceType = ({
- selectedOptions
- }) => {
- showPicker1.value = false;
- const json = Object.assign(dataitem.value, {
- siteType: selectedOptions[0].value,
- });
- dataitem.value = json;
- placeTypeName.value = selectedOptions[0].text;
- };
- // 场所性质
- const propertyName = ref("");
- const property = [{
- text: "固定场所",
- value: "0"
- },
- {
- text: "寺观教堂",
- value: "1"
- },
- ];
- const getpropertyType = (type) => {
- const typeObject = {
- 0: "固定场所",
- 1: "寺观教堂",
- };
- return typeObject[type];
- };
- let showPicker3 = ref(false);
- const getproperty = ({
- selectedOptions
- }) => {
- showPicker3.value = false;
- const json = Object.assign(dataitem.value, {
- nature: selectedOptions[0].value,
- });
- dataitem.value = json;
- propertyName.value = selectedOptions[0].text;
- };
- // 场所建设
- const constructionName = ref("");
- const construction = [{
- text: "筹备",
- value: "0"
- },
- {
- text: "建设完成",
- value: "1"
- },
- ];
- const getConstructionType = (type) => {
- const typeObject = {
- 0: "筹备",
- 1: "建设完成",
- };
- return typeObject[type];
- };
- let showPicker2 = ref(false);
- const getConstruction = ({
- selectedOptions
- }) => {
- showPicker2.value = false;
- const json = Object.assign(dataitem.value, {
- constructionStage: selectedOptions[0].value,
- });
- dataitem.value = json;
- constructionName.value = selectedOptions[0].text;
- };
- // 场所建筑等级
- const lv = ref("");
- let showlv = ref(false);
- const getlv = ({
- selectedOptions
- }) => {
- showlv.value = false;
- const json = Object.assign(dataitem.value, {
- siteBuildingGrade: selectedOptions[0].value,
- });
- dataitem.value = json;
- lv.value = selectedOptions[0].label;
- };
- //图片上传
- let fileList = ref([]);
- let fileImg = ref([]);
- const chooseImg = () => {
- xm.chooseFile({
- count: 1,
- name: "file",
- url: $base +
- `/sys/file/webupload/upload?uploadPath=religioussites/siteinfo/religiousSitesInfo`,
- headers: {
- "Content-Type": "multipart/form-data"
- },
- }).then((res) => {
- let data = res[0].data;
- data.name = decodeURIComponent(
- data.id.substring(data.url.lastIndexOf("/") + 1)
- );
- data.url = $base + data.url;
- fileImg.value.push(data);
- fileList.value.push(data);
- xm.showToast({
- message: "上传成功",
- });
- });
- };
- // 删除文件
- const deleteRead = (file) => {
- //删除文件操作
- for (let index = 0; index < fileList.value.length; index++) {
- if (file.id == fileList.value[index].id) {
- fileList.value.splice(index, 1);
- if (fileImg.value[index]) {
- let delurl = fileImg.value[index].url;
- new tools().uploadFiledelete("", delurl).then(({
- data
- }) => {});
- fileImg.value.splice(index, 1);
- }
- }
- }
- };
- let fileList2 = ref([]);
- let fileImg2 = ref([]);
- const chooseImg2 = () => {
- xm.chooseFile({
- count: 1,
- name: "file",
- url: $base +
- `/sys/file/webupload/upload?uploadPath=religioussites/siteinfo/religiousSitesInfo`,
- headers: {
- "Content-Type": "multipart/form-data"
- },
- }).then((res) => {
- let data = res[0].data;
- data.name = decodeURIComponent(
- data.id.substring(data.url.lastIndexOf("/") + 1)
- );
- data.url = $base + data.url;
- fileImg2.value.push(data);
- fileList2.value.push(data);
- xm.showToast({
- message: "上传成功",
- });
- });
- };
- // 删除文件
- const deleteRead2 = (file) => {
- //删除文件操作
- for (let index = 0; index < fileList2.value.length; index++) {
- if (file.id == fileList2.value[index].id) {
- fileList2.value.splice(index, 1);
- if (fileImg2.value[index]) {
- let delurl = fileImg2.value[index].url;
- new tools().uploadFiledelete("", delurl).then(({
- data
- }) => {});
- fileImg2.value.splice(index, 1);
- }
- }
- }
- };
- let fileList3 = ref([]);
- let fileImg3 = ref([]);
- const chooseImg3 = () => {
- xm.chooseFile({
- count: 1,
- name: "file",
- url: $base +
- `/sys/file/webupload/upload?uploadPath=religioussites/siteinfo/religiousSitesInfo`,
- headers: {
- "Content-Type": "multipart/form-data"
- },
- }).then((res) => {
- let data = res[0].data;
- data.name = decodeURIComponent(
- data.id.substring(data.url.lastIndexOf("/") + 1)
- );
- data.url = $base + data.url;
- fileImg3.value.push(data);
- fileList3.value.push(data);
- xm.showToast({
- message: "上传成功",
- });
- });
- };
- // 删除文件
- const deleteRead3 = (file) => {
- //删除文件操作
- for (let index = 0; index < fileList3.value.length; index++) {
- if (file.id == fileList3.value[index].id) {
- fileList3.value.splice(index, 1);
- if (fileImg3.value[index]) {
- let delurl = fileImg3.value[index].url;
- new tools().uploadFiledelete("", delurl).then(({
- data
- }) => {});
- fileImg3.value.splice(index, 1);
- }
- }
- }
- };
- let fileList4 = ref([]);
- let fileImg4 = ref([]);
- const chooseImg4 = () => {
- xm.chooseFile({
- count: 1,
- name: "file",
- url: $base +
- `/sys/file/webupload/upload?uploadPath=religioussites/siteinfo/religiousSitesInfo`,
- headers: {
- "Content-Type": "multipart/form-data"
- },
- }).then((res) => {
- let data = res[0].data;
- data.name = decodeURIComponent(
- data.id.substring(data.url.lastIndexOf("/") + 1)
- );
- data.url = $base + data.url;
- fileImg4.value.push(data);
- fileList4.value.push(data);
- xm.showToast({
- message: "上传成功",
- });
- });
- };
- // 删除文件
- const deleteRead4 = (file) => {
- //删除文件操作
- for (let index = 0; index < fileList4.value.length; index++) {
- if (file.id == fileList4.value[index].id) {
- fileList4.value.splice(index, 1);
- if (fileImg4.value[index]) {
- let delurl = fileImg4.value[index].url;
- new tools().uploadFiledelete("", delurl).then(({
- data
- }) => {});
- fileImg4.value.splice(index, 1);
- }
- }
- }
- };
- //宗教公安人员选择
- const religiousDeptManaUserName = ref("");
- const securityDeptManaUserName = ref("");
- let showPerson = ref(false);
- let showReport = ref(false);
- let list = {
- value: [],
- type: "",
- };
- let list2 = {
- value: [],
- type: "",
- };
- const selected = (val) => {
- list.value = val;
- };
- const selected2 = (val) => {
- list2.value = val;
- };
- const reselected = () => {
- const json = Object.assign(dataitem.value, {
- religiousDeptManaUser: list.value.id,
- });
- dataitem.value = json;
- religiousDeptManaUserName.value = list.value.name;
- };
- const reselected2 = () => {
- const json = Object.assign(dataitem.value, {
- securityDeptManaUser: list2.value.id,
- });
- dataitem.value = json;
- securityDeptManaUserName.value = list2.value.name;
- };
- //批准设立时间
- let currentDate = ref(formatDate(new Date()));
- let currentTime = ref(formatTime(new Date()));
- const columnsType = ["hour", "minute", "second"];
- let hs_SetupTime = ref(false);
- const getSetupTime = ({
- selectedOptions
- }) => {
- hs_SetupTime.value = false;
- dataitem.value.approvedEstablishmentTime = `${currentDate.value.join(
- "-"
- )} ${currentTime.value.join(":")}`;
- };
- //登记时间
- let hs_SignTime = ref(false);
- const getSignTime = ({
- selectedOptions
- }) => {
- hs_SignTime.value = false;
- dataitem.value.registrationDate = `${currentDate.value.join(
- "-"
- )} ${currentTime.value.join(":")}`;
- };
- // 互联网专区
- const internetForm = ref({
- zbjForm: [],
- gzhForm: [],
- wxqForm: [],
- dynamicForm: [],
- });
- const addForm = (type) => {
- let data_add = [];
- if (type == "直播间") {
- data_add = internetForm.value.zbjForm;
- } else if (type == "公众号") {
- data_add = internetForm.value.gzhForm;
- } else {
- data_add = internetForm.value.wxqForm;
- }
- data_add.push({
- key: randomString(12),
- siteId: dataitem.value.id,
- type: type,
- typeChild: "",
- account: "",
- manager: "",
- contact: "",
- });
- };
- const randomString = (len) => {
- len = len || 32;
- var $chars =
- "ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678"; /****默认去掉了容易混淆的字符oOLl,9gq,Vv,Uu,I1****/
- var maxPos = $chars.length;
- var pwd = "";
- for (let i = 0; i < len; i++) {
- pwd += $chars.charAt(Math.floor(Math.random() * maxPos));
- }
- return pwd;
- };
- const removeForm = (item, type) => {
- let data_add = [];
- if (type == "直播间") {
- data_add = internetForm.value.zbjForm;
- } else if (type == "公众号") {
- data_add = internetForm.value.gzhForm;
- } else {
- data_add = internetForm.value.wxqForm;
- }
- let index = data_add.indexOf(item);
- if (index !== -1) {
- data_add.splice(index, 1);
- }
- };
- const hlwToSubmit = () => {
- internetForm.value.dynamicForm = [];
- internetForm.value.zbjForm.forEach((ele) => {
- if (ele.account != "" || ele.manager != "" || ele.contact != "") {
- internetForm.value.dynamicForm.push(ele);
- }
- });
- internetForm.value.gzhForm.forEach((ele) => {
- if (ele.account != "" || ele.manager != "" || ele.contact != "") {
- internetForm.value.dynamicForm.push(ele);
- }
- });
- internetForm.value.wxqForm.forEach((ele) => {
- if (ele.account != "" || ele.manager != "" || ele.contact != "") {
- internetForm.value.dynamicForm.push(ele);
- }
- });
- };
- const dynamicFormDataProceed = (initial_form) => {
- if (!initial_form || initial_form.length == 0) {
- initial_form = [{
- key: randomString(12),
- siteId: dataitem.value.id,
- type: "直播间",
- typeChild: "",
- account: "",
- manager: "",
- contact: "",
- },
- {
- key: randomString(12),
- siteId: dataitem.value.id,
- type: "公众号",
- typeChild: "",
- account: "",
- manager: "",
- contact: "",
- },
- {
- key: randomString(12),
- siteId: dataitem.value.id,
- type: "微信群",
- typeChild: "",
- account: "",
- manager: "",
- contact: "",
- },
- ];
- }
- initial_form.forEach((ele) => {
- if (ele.id) {
- ele.key = ele.id;
- }
- if (ele.type == "直播间") {
- ele.typeName = getzbjType2(ele.typeChild);
- internetForm.value.zbjForm.push(ele);
- } else if (ele.type == "公众号") {
- internetForm.value.gzhForm.push(ele);
- } else {
- internetForm.value.wxqForm.push(ele);
- }
- });
- };
- const dynamicFormDataClear = () => {
- internetForm.value.zbjForm = [];
- internetForm.value.gzhForm = [];
- internetForm.value.wxqForm = [];
- internetForm.value.dynamicForm = [];
- };
- // 直播间类型
- // const zbjTypeName = ref("");
- const zbj = [{
- text: "斗鱼",
- value: "0"
- },
- {
- text: "小红书",
- value: "1"
- },
- {
- text: "抖音",
- value: "2"
- },
- {
- text: "哔哩哔哩",
- value: "3"
- },
- {
- text: "虎牙",
- value: "4"
- },
- {
- text: "快手",
- value: "5"
- },
- {
- text: "YY直播",
- value: "6"
- },
- {
- text: "淘宝直播",
- value: "7"
- },
- {
- text: "京东直播",
- value: "8"
- },
- ];
- const getzbjType2 = (type) => {
- const typeObject = {
- 0: "斗鱼",
- 1: "小红书",
- 2: "抖音",
- 3: "哔哩哔哩",
- 4: "虎牙",
- 5: "快手",
- 6: "YY直播",
- 7: "淘宝直播",
- 8: "京东直播",
- };
- return typeObject[type];
- };
- const nowIndex = ref("");
- const showNew = (key) => {
- showzbj.value = true;
- nowIndex.value = key;
- };
- let showzbj = ref(false);
- const getzbj = ({
- selectedOptions
- }) => {
- showzbj.value = false;
- internetForm.value.zbjForm.forEach((item) => {
- if (item.key == nowIndex.value) {
- item.typeName = selectedOptions[0].text;
- item.typeChild = selectedOptions[0].value;
- }
- });
- };
- //校验
- const failed = () => {
- xm.showToast({
- message: "请检查表单必填项是否存在填写遗漏!",
- });
- };
- //返回
- const onClickLeft = () => {
- history.back();
- };
- // 数据提交
- const submit = () => {
- hlwToSubmit();
- let dynami = JSON.stringify(internetForm.value.dynamicForm);
- const json = Object.assign(dataitem.value, {
- dynamicFormJson: dynami
- });
- dataitem.value = json;
- //保存前附件处理
- dataitem.value.scenesImageMain = fileImg.value
- .map((option) => option.id)
- .join("|");
- dataitem.value.etiquetteSpace = fileImg2.value
- .map((option) => option.id)
- .join("|");
- dataitem.value.approvalProcedures = fileImg3.value
- .map((option) => option.id)
- .join("|");
- dataitem.value.scenesImage = fileImg4.value
- .map((option) => option.id)
- .join("|");
- new placeRegister().sava(dataitem.value).then((res) => {
- if (res.status == 200) {
- xm.showToast({
- message: "场所修改成功",
- });
- router.push({
- path: "/placeRegisterList",
- });
- } else {
- xm.showToast({
- message: "场所修改失败",
- });
- }
- });
- };
- return {
- onClickLeft,
- dataitem,
- selectColor,
- active,
- //图片上传
- fileList,
- chooseImg,
- deleteRead,
- fileList2,
- chooseImg2,
- deleteRead2,
- fileList3,
- chooseImg3,
- deleteRead3,
- fileList4,
- chooseImg4,
- deleteRead4,
- //宗教类型
- religiousType,
- hs_religious,
- religious,
- getreligious,
- //场所类型
- showPicker1,
- placeType,
- getplaceType,
- placeTypeName,
- //场所性质
- showPicker3,
- property,
- getproperty,
- propertyName,
- //场所建设阶段
- showPicker2,
- construction,
- getConstruction,
- constructionName,
- showlv,
- lv,
- getlv,
- // 详细地址定位
- getLocation,
- // 地区选择
- placeAddress,
- customFieldName,
- showPlace1,
- getPlace1,
- options,
- //宗教公安人员选择
- showPerson,
- showReport,
- selected,
- selected2,
- reselected,
- reselected2,
- religiousDeptManaUserName,
- securityDeptManaUserName,
- // 批准设立时间
- currentDate,
- currentTime,
- columnsType,
- hs_SetupTime,
- getSetupTime,
- // 登记时间
- hs_SignTime,
- getSignTime,
- // 互联网专区
- internetForm,
- addForm,
- removeForm,
- zbj,
- showzbj,
- getzbj,
- showNew,
- //校验
- failed,
- //数据提交
- submit,
- };
- },
- };
- </script>
- <style lang="less">
- .main {
- .imgbox {
- width: 100%;
- overflow: hidden;
- .img-left {
- float: left;
- width: 50%;
- }
- .img-right {
- float: left;
- width: 50%;
- }
- }
- }
- .btn {
- margin: 10px auto;
- .van-button {
- width: 100%;
- height: 50px;
- }
- }
- </style>
|