7 files modified
1 files added
| | |
| | | method: 'GET', |
| | | params |
| | | }) |
| | | } |
| | | |
| | | export const getPlaceCheckItem = (params) => { |
| | | return http.request({ |
| | | url: '/patrol/patrolGroup/getPatrolGroupTree', |
| | | method: 'GET', |
| | | params |
| | | }) |
| | | } |
| | |
| | | version: '2.0.0', |
| | | // 开发环境接口Url |
| | | // devUrl: 'http://z4042833u6.wicp.vip', |
| | | // devUrl: 'http://192.168.0.110:9528', |
| | | devUrl: 'https://srgdjczzxtpt.com:2080/api', |
| | | devUrl: 'http://192.168.0.101:9528', |
| | | // devUrl: 'https://srgdjczzxtpt.com:2080/api', |
| | | // devUrl: 'https://kt39592615.goho.co', |
| | | minioBaseUrl: "https://srgdjczzxtpt.com:2080/gminio/jczz/", |
| | | // minioBaseUrl:"http://192.168.0.103:9528/", |
| | | // minioBaseUrl: "https://srgdjczzxtpt.com:2080/gminio/jczz/", |
| | | // minioBaseUrl: "http://192.168.0.101:9528/", |
| | | // 数据中台接口url |
| | | dataCenterUrl: 'https://sk.hubeishuiyi.cn/services', |
| | | //洪水预报接口url |
| | |
| | | "navigationBarBackgroundColor": "#fff", |
| | | "navigationBarTextStyle": "black" |
| | | } |
| | | }, |
| | | { |
| | | "path": "houseNumber/siteInspect", |
| | | "style": { |
| | | "navigationBarTitleText": "场所检查", |
| | | "enablePullDownRefresh": false, |
| | | "navigationBarBackgroundColor": "#fff", |
| | | "navigationBarTextStyle": "black" |
| | | } |
| | | } |
| | | ] |
| | | }, |
| | |
| | | </view>
|
| | | </view>
|
| | |
|
| | | <view class="block flex a-i-c j-c-s-b mb-20" v-if="roleType == 1 || roleType == 3">
|
| | | <view class="block flex a-i-c j-c-s-b mb-20" v-if="roleType == 1 || roleType == 3 || !isLogin">
|
| | | <view @click="scan" class="block-item">
|
| | | <image class="block-item-bg" src="/static/icon/nav-bg-04.png" mode="aspectFill" />
|
| | | <view class="block-item-box flex a-i-c ">
|
| | |
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | | <view class="block-item" @click="navigatorPage('/subPackage/user/clockIn/index')">
|
| | | <view class="block-item" @click="navigatorPage('/subPackage/user/clockIn/index')"
|
| | | v-if="roleType == 1 || roleType == 3">
|
| | | <image class="block-item-bg" src="/static/icon/nav-bg-05.png" mode="aspectFill" />
|
| | | <view class="block-item-box flex a-i-c">
|
| | | <u-icon name="/static/icon/nav-06.png" width="65rpx" height="65rpx"></u-icon>
|
| | |
| | | </view>
|
| | | </view>
|
| | | </view>
|
| | | <view class="block-item" @click="navigatorPage('/subPackage/statistics/index')">
|
| | | <view class="block-item" @click="navigatorPage('/subPackage/statistics/index')"
|
| | | v-if="roleType == 1 || roleType == 3">
|
| | | <image class="block-item-bg" src="/static/icon/nav-bg-04.png" mode="aspectFill" />
|
| | | <view class="block-item-box flex a-i-c">
|
| | | <u-icon name="/static/icon/nav-12.png" width="65rpx" height="65rpx"></u-icon>
|
| | |
| | | <u-icon name="/static/icon/menu-02.png" size="30"></u-icon>
|
| | | <text>场所采集</text>
|
| | | </view>
|
| | | <view class="sl-box" @click="showPopup = true" v-if="isPolice">
|
| | | <view class="sl-box" @close="showPopup=false" v-if="isPolice">
|
| | | <u-icon name="/static/icon/menu-02.png" size="30"></u-icon>
|
| | | <text>场所检查</text>
|
| | | </view>
|
| | |
| | | this.showPopup = false;
|
| | | }
|
| | | })
|
| | | },
|
| | |
|
| | | navToInspect() {
|
| | | this.$u.func.globalNavigator(`siteInspect?code=${this.stdId}`)
|
| | | }
|
| | |
|
| | | },
|
| | | }
|
| | | </script>
|
| | |
| | | flex: 1;
|
| | | display: flex;
|
| | | justify-content: center;
|
| | | align-items: center;
|
| | |
|
| | | text {
|
| | | margin-left: 15rpx;
|
| New file |
| | |
| | | <template> |
| | | <view class="wrap"> |
| | | <u-collapse :value="itemIndex"> |
| | | <u-collapse-item :title="item.title" :name="index" v-for="(item,index) in questionList"> |
| | | <u-form :model="info" :rules="rules" ref="form"> |
| | | <u-form-item labelWidth="170" :label="i.title" prop="gateStatus" v-for="(i,k) in item.children"> |
| | | <view class="btn-group flex" style="margin-left:20rpx;"> |
| | | <view class="value-item" @click="changeStatus(1,index,k)"> |
| | | 存在 |
| | | </view> |
| | | <view class="value-item" @click="changeStatus(2,index,k)"> |
| | | 不存在 |
| | | </view> |
| | | </view> |
| | | </u-form-item> |
| | | |
| | | <!-- <u-form-item labelWidth="120" label="整改内容" prop="gateStatus"> |
| | | <u-textarea v-model="info.remark" placeholder="请输入内容" placeholderClass="c-99 f-26"></u-textarea> |
| | | </u-form-item> |
| | | <u-form-item labelWidth="120" label="图片" prop="gateStatus"> |
| | | <u-upload :fileList="form.images" :previewFullImage="uploadConfig.previewFullImage" |
| | | :accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple" |
| | | :maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture" @afterRead="afterReadImg" |
| | | @delete="deletePic"> |
| | | <view class="upload-item upload-icon flex_base"> |
| | | <u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon> |
| | | </view> |
| | | </u-upload> |
| | | </u-form-item> --> |
| | | </u-form> |
| | | </u-collapse-item> |
| | | </u-collapse> |
| | | |
| | | <view class="content bgc-ff" v-if="false"> |
| | | |
| | | |
| | | <view class="upload "> |
| | | <view class="f-28 mb-20">整改内容</view> |
| | | <u-textarea v-model="info.remark" placeholder="请输入内容" placeholderClass="c-99 f-26"></u-textarea> |
| | | <view class="mt-20"> |
| | | <view class="f-28 mb-20">图片</view> |
| | | <u-upload :fileList="form.images" :previewFullImage="uploadConfig.previewFullImage" |
| | | :accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple" |
| | | :maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture" @afterRead="afterReadImg" |
| | | @delete="deletePic"> |
| | | <view class="upload-item upload-icon flex_base"> |
| | | <u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon> |
| | | </view> |
| | | </u-upload> |
| | | </view> |
| | | </view> |
| | | |
| | | </view> |
| | | <!-- <view class="sign bgc-ff mt-20"> |
| | | <view class="flex j-c-s-b a-i-c " @click="showSignature = true"> |
| | | <view class="f-28">签名</view> |
| | | <u-icon name="arrow-right"></u-icon> |
| | | </view> |
| | | <view class="bgc-ff" v-if="signatureUrl"> |
| | | <u-image :src="signatureUrl" width="70" height="70"></u-image> |
| | | </view> |
| | | </view> --> |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | <footer-btn @click="sumitInfo"></footer-btn> |
| | | |
| | | |
| | | <u-popup mode="bottom" :show="showSignature" round="10" :closeable="true" @close="showSignature=false"> |
| | | <view class="signture-popup"> |
| | | <jushi-signature :settings="signatureSettings" @change="signatureChange"></jushi-signature> |
| | | </view> |
| | | </u-popup> |
| | | |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import uploadMixin from "@/mixin/uploadMixin"; |
| | | import { |
| | | addPlaceCheck, |
| | | getPlaceCheckItem |
| | | } from "@/api/place/place.js" |
| | | export default { |
| | | mixins: [uploadMixin], |
| | | data() { |
| | | return { |
| | | form: { |
| | | images: [] |
| | | }, |
| | | info: { |
| | | remark: "", |
| | | imageUrls: "", |
| | | signaturePath: "" |
| | | }, |
| | | |
| | | desc: "", |
| | | title: "", |
| | | curSelectSite: {}, |
| | | showSignature: false, |
| | | signatureUrl: "", |
| | | signatureSettings: { //签名设置 |
| | | width: '700', //签名区域的宽 |
| | | height: '800', //签名区域的高 |
| | | lineWidth: 3, //签名时线宽 |
| | | textColor: '#007AFF' //签名文字颜色 |
| | | }, |
| | | statusOption: [{ |
| | | text: "存在", |
| | | value: 2 |
| | | }, |
| | | { |
| | | text: "不存在", |
| | | value: 1 |
| | | }, |
| | | ], |
| | | |
| | | questionList: [], |
| | | itenIndex: [] |
| | | |
| | | } |
| | | }, |
| | | onLoad(option) { |
| | | // this.info.houseCode = option.code; |
| | | this.getItem(); |
| | | }, |
| | | |
| | | methods: { |
| | | |
| | | |
| | | getItem() { |
| | | getPlaceCheckItem().then(res => { |
| | | let data = res.data; |
| | | this.questionList = res.data; |
| | | let arr = [] |
| | | for (let i = 0, ii = data.length; i < ii; i++) { |
| | | arr.push(i); |
| | | } |
| | | this.itemIndex = arr; |
| | | }) |
| | | }, |
| | | |
| | | |
| | | |
| | | changeStatus(value, fIndex, cIndex) { |
| | | this.info.status = value; |
| | | |
| | | }, |
| | | |
| | | |
| | | signatureChange(e) { |
| | | // this.signatureUrl = e; |
| | | this.uploadSignImg(e) |
| | | }, |
| | | |
| | | uploadSignImg(url) { |
| | | uni.uploadFile({ |
| | | url: this.uploadConfig.url, |
| | | filePath: url, |
| | | name: 'file', |
| | | header: this.uploadConfig.header, |
| | | success: (res) => { |
| | | console.log(res); |
| | | let data = JSON.parse(res.data); |
| | | if (res.statusCode == 200 && data.code == 200) { |
| | | // this.handleSubmit(data.data.name); |
| | | this.showSignature = false; |
| | | this.signatureUrl = data.data.link; |
| | | this.info.signaturePath = data.data.name; |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | |
| | | sumitInfo() { |
| | | if (this.form.images.length > 0) { |
| | | let urls = [] |
| | | this.form.images.forEach(e => { |
| | | urls.push(e.name) |
| | | }) |
| | | this.info.imageUrls = urls.join(",") |
| | | } |
| | | addPlaceCheck(this.info).then(res => { |
| | | uni.showToast({ |
| | | icon: 'success', |
| | | title: '提交成功', |
| | | success() { |
| | | setTimeout(() => { |
| | | uni.navigateBack(); |
| | | }, 1000) |
| | | } |
| | | }) |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="less"> |
| | | .wrap { |
| | | padding: 20rpx; |
| | | } |
| | | |
| | | .top { |
| | | display: flex; |
| | | justify-content: flex-end; |
| | | padding: 20rpx; |
| | | } |
| | | |
| | | .top-btn { |
| | | padding: 16rpx 22rpx; |
| | | border-radius: 6rpx; |
| | | text-align: center; |
| | | } |
| | | |
| | | .content { |
| | | margin: 20rpx 30rpx; |
| | | padding: 0 30rpx; |
| | | } |
| | | |
| | | .site-box { |
| | | padding: 30rpx; |
| | | margin: 20rpx 30rpx; |
| | | border-radius: 4rpx; |
| | | |
| | | .c-aa { |
| | | color: #aaa; |
| | | } |
| | | |
| | | .address { |
| | | width: 60%; |
| | | margin-left: 25rpx; |
| | | } |
| | | } |
| | | |
| | | .upload-item { |
| | | width: 140rpx; |
| | | height: 140rpx; |
| | | border: 1px solid #EEEEEE; |
| | | } |
| | | |
| | | .upload { |
| | | // margin: 0 30rpx; |
| | | padding: 30rpx 0; |
| | | |
| | | |
| | | } |
| | | |
| | | .submit-btn { |
| | | width: 690rpx; |
| | | height: 78rpx; |
| | | line-height: 78rpx; |
| | | background: linear-gradient(163deg, #01BDFC 0%, #017BFC 100%); |
| | | border-radius: 8rpx 8rpx 8rpx 8rpx; |
| | | font-size: 32rpx; |
| | | color: #fff; |
| | | margin-top: 50rpx; |
| | | } |
| | | |
| | | .list-btn { |
| | | width: 690rpx; |
| | | height: 78rpx; |
| | | line-height: 78rpx; |
| | | background: linear-gradient(163deg, #c7d7dc 0%, #c3cdd8 100%); |
| | | border-radius: 8rpx 8rpx 8rpx 8rpx; |
| | | font-size: 32rpx; |
| | | color: #fff; |
| | | margin-top: 50rpx; |
| | | } |
| | | |
| | | .address-row { |
| | | flex: 1; |
| | | justify-content: flex-end; |
| | | align-items: center; |
| | | } |
| | | |
| | | .address-content { |
| | | width: calc(100% - 116rpx - 20rpx); |
| | | margin-right: 20rpx; |
| | | text-align: right; |
| | | } |
| | | |
| | | .location-btn { |
| | | width: 116rpx; |
| | | height: 46rpx; |
| | | line-height: 46rpx; |
| | | border-radius: 4rpx; |
| | | border: 1px solid currentColor; |
| | | padding: 0; |
| | | background-color: #fff; |
| | | text-align: center; |
| | | } |
| | | |
| | | .content { |
| | | padding: 0 20rpx; |
| | | } |
| | | |
| | | .signture-popup { |
| | | padding-bottom: 20rpx; |
| | | } |
| | | |
| | | .sign { |
| | | padding: 30rpx; |
| | | // margin: 0 30rpx; |
| | | } |
| | | |
| | | .value-item { |
| | | padding: 0 40rpx; |
| | | // background-color: #ffffff; |
| | | border: 2rpx solid #333333; |
| | | height: 70rpx; |
| | | line-height: 70rpx; |
| | | box-sizing: border-box; |
| | | } |
| | | </style> |
| | |
| | | |
| | | let siteInfo = uni.getStorageSync("siteInfo"); |
| | | this.curSiteInfo = siteInfo; |
| | | this.isNine = siteInfo.isNine; |
| | | this.isNine = siteInfo.isNine || 2; |
| | | if (siteInfo.isNine == 1) { |
| | | for (let i of this.navList[1]) { |
| | | if (i.id.includes(siteInfo.categoryList[0].categoryNo)) { |
| | |
| | | <view class="box-title">
|
| | | <box-title title="基础信息"></box-title>
|
| | | </view>
|
| | |
|
| | |
|
| | |
|
| | | <u-form-item class="form-item" labelWidth="100" label="场所名称:" :required="isRequiredPlace"
|
| | | :disabled="isDisabled" prop="placeName">
|
| | | <u--input v-if="!currentId" border="none" v-model="form.placeName" placeholder="请输入">
|
| | |
| | | <view class="f-30" v-if="currentId">
|
| | | {{form.isNine == 1?"是":"否"}}
|
| | | </view>
|
| | | </u-form-item>
|
| | | <u-form-item v-if="form.isNine == 1" @click="showNineTypePicker = true" class="form-item"
|
| | | labelWidth="100" label="九小场所类型:" :required="isRequired" :disabled="isDisabled" prop="nineType">
|
| | | <u-input border="none" v-model="nineTypeValue" disabled disabledColor="#ffffff"
|
| | | placeholder="请选择">
|
| | | </u-input>
|
| | | <u-icon slot="right" name="arrow-right"></u-icon>
|
| | | </u-form-item>
|
| | | <u-form-item v-if="form.isNine == 1" label="阵地" labelWidth="100" prop="isFront"
|
| | | :required="isRequired">
|
| | | <u-radio-group v-model="form.isFront" v-if="!currentId">
|
| | | <u-radio :customStyle="{marginBottom: '8px'}" v-for="(item, index) in statusList"
|
| | | :key="index" :label="item.name" :name="item.id">
|
| | | </u-radio>
|
| | | </u-radio-group>
|
| | | <view class="f-30" v-if="currentId">
|
| | | {{form.isFront == 1?"是":"否"}}
|
| | | </view>
|
| | | </u-form-item>
|
| | | <u-form-item v-if="form.isFront == 1" @click="showFrontTypePicker = true" class="form-item"
|
| | | labelWidth="100" label="阵地类型:" :required="isRequired" :disabled="isDisabled" prop="frontType">
|
| | | <u-input border="none" v-model="frontTypeValue" disabled disabledColor="#ffffff"
|
| | | placeholder="请选择">
|
| | | </u-input>
|
| | | <u-icon slot="right" name="arrow-right"></u-icon>
|
| | | </u-form-item>
|
| | | <!-- <view v-if="showLabelList.length" class="label" style="border-bottom:1px solid eff1f3;">
|
| | | <view v-for="(item,index) in showLabelList" :key="index" class="activeLabel">
|
| | |
| | | <footer-btn @click="submit" v-if="!currentId" />
|
| | |
|
| | |
|
| | | <u-picker :show="showPicker" :defaultIndex="defaultIndex" ref="uPicker" keyName="name" :loading="pickerLoading"
|
| | | :columns="pickColumns" @change="changeHandler" @confirm="confirmPicker"
|
| | | @cancel="showPicker = false"></u-picker>
|
| | | <u-picker :show="showNineTypePicker" :defaultIndex="nineTypeIndex" ref="uPicker" keyName="name"
|
| | | :loading="pickerLoading" :columns="[nineTypeList]" @confirm="confirmNineTypePicker"
|
| | | @cancel="showNineTypePicker = false"></u-picker>
|
| | |
|
| | | <u-picker :show="showFrontTypePicker" :defaultIndex="frontTypeIndex" ref="uPicker" keyName="name"
|
| | | :loading="pickerLoading" :columns="[frontTypeList]" @confirm="confirmFrontTypePicker"
|
| | | @cancel="showFrontTypePicker = false"></u-picker>
|
| | |
|
| | |
|
| | | <u-picker :show="isShowCatePicker" :defaultIndex="categoryIndex" ref="catePicker" keyName="categoryName"
|
| | |
| | | import {
|
| | | minioBaseUrl
|
| | | } from "../../../common/setting";
|
| | | import {
|
| | | bizDictionary
|
| | | } from '@/api/system/dict.js'
|
| | | export default {
|
| | | mixins: [uploadMixin],
|
| | | components: {
|
| | |
| | | lat: '',
|
| | | lng: '',
|
| | | location: '',
|
| | | isNine: ""
|
| | | isNine: "",
|
| | | isFront: "",
|
| | | frontType: "",
|
| | | nineType: ""
|
| | | },
|
| | | rules: {
|
| | | // 'buildingCode': {
|
| | |
| | | id: 2
|
| | | }
|
| | | ],
|
| | | nineTypeList: [], //九小类型
|
| | | frontTypeList: [], //阵地
|
| | | nineTypeIndex: [0],
|
| | | frontTypeIndex: [0],
|
| | | showNineTypePicker: false,
|
| | | showFrontTypePicker: false,
|
| | | nineTypeValue: "",
|
| | | frontTypeValue: ""
|
| | |
|
| | |
|
| | | }
|
| | | },
|
| | | created() {
|
| | |
| | | })
|
| | | }
|
| | | this.getCategory();
|
| | | this.getAllBizDict();
|
| | | },
|
| | |
|
| | | watch: {
|
| | |
| | | // })
|
| | | // })
|
| | | // },
|
| | |
|
| | |
|
| | | async getAllBizDict() {
|
| | | // 获取九小场所类型
|
| | | await this.getBizDict('nineType', this.nineTypeList)
|
| | | // 获取阵地
|
| | | await this.getBizDict('frontType', this.frontTypeList)
|
| | | },
|
| | |
|
| | | // 获取业务字典
|
| | | async getBizDict(code, list) {
|
| | | const param = {
|
| | | code: code
|
| | | }
|
| | | const res = await bizDictionary(param)
|
| | | res.data.forEach(e => {
|
| | | list.push({
|
| | | name: e.dictValue,
|
| | | value: Number(e.dictKey)
|
| | | })
|
| | | })
|
| | | },
|
| | |
|
| | | navTo(type) {
|
| | | if (type == 1) {
|
| | |
| | | this.form.images = []
|
| | | }
|
| | | }
|
| | |
|
| | | if (key == "isNine") {
|
| | | let {
|
| | | index,
|
| | | name
|
| | | } = this.$getIndex(this.nineTypeList, data.nineType, "value", "name");
|
| | | this.nineTypeIndex = index;
|
| | | this.nineTypeValue = name;
|
| | | }
|
| | |
|
| | | if (key == "isFrontType") {
|
| | | let {
|
| | | index,
|
| | | name
|
| | | } = this.$getIndex(this.frontTypeList, data.frontType, "value", "name");
|
| | | this.frontTypeIndex = index;
|
| | | this.frontTypeValue = name;
|
| | | }
|
| | |
|
| | | })
|
| | |
|
| | | this.form.jwd = `${Number(data.lng).toFixed(6)},${Number(data.lat).toFixed(6)}`
|
| | |
| | | }
|
| | | })
|
| | | })
|
| | |
|
| | | })
|
| | | },
|
| | |
|
| | |
| | | }
|
| | |
|
| | | this.form.roleName = uni.getStorageSync("activeRole").roleName;
|
| | | if (this.form.isNine == 2 && this.form.nineType) {
|
| | | this.form.nineType = "";
|
| | | }
|
| | | if (this.form.isFront == 2 && this.form.frontType) {
|
| | | this.form.frontType = "";
|
| | | }
|
| | |
|
| | | delete this.form.images;
|
| | |
|
| | | add(this.form).then(res => {
|
| | | uni.showToast({
|
| | | icon: 'success',
|
| | |
| | | this.showPicker = false
|
| | | },
|
| | |
|
| | | confirmNineTypePicker(e) {
|
| | | this.nineTypeIndex = e.indexs;
|
| | | this.nineTypeValue = e.value[0].name;
|
| | | this.form.nineType = e.value[0].value;
|
| | | },
|
| | |
|
| | | confirmFrontTypePicker(e) {
|
| | | this.frontTypeIndex = e.indexs;
|
| | | this.frontTypeValue = e.value[0].name;
|
| | | this.form.frontType = e.value[0].value;
|
| | | },
|
| | |
|
| | | async changeHandler(e) {
|
| | | const {
|
| | | columnIndex,
|