Lou
2024-02-23 6211659e247248edf924cae5673914dcd17e2115
取保候审页面样式优化,场所采集、编辑场所调整
3 files modified
468 ■■■■ changed files
subPackage/workbench/views/bailReportDetail.vue 49 ●●●● patch | view | raw | blame | history
subPackage/workbench/views/cscj.vue 45 ●●●●● patch | view | raw | blame | history
subPackage/workbench/views/editCscj.vue 374 ●●●● patch | view | raw | blame | history
subPackage/workbench/views/bailReportDetail.vue
@@ -1,12 +1,24 @@
<template>
    <view class="container">
        <view class="basic">
            <box-title title="基本信息" class="box-title"></box-title>
            <view class="info">
            <!-- <box-title title="基本信息" class="box-title"></box-title> -->
            <view class="info mt-20 bgc-ff">
                <lineItem :dataInfo="basicData"></lineItem>
                <view class="licence" v-if="locationImageUrls.length">
                    <!-- <box-title title="位置图片" class="box-title"></box-title> -->
                    <view class="f-30 mb-20">位置图片</view>
                    <view class="flex-wrap">
                        <view v-for="(i,k) in locationImageUrls" :key="k" class="mr-20 mt-20"
                            @click="previewImg(i,locationImageUrls)">
                            <u-image :src="i" width="80" height="80"></u-image>
                        </view>
                    </view>
                </view>
            </view>
        </view>
        <view class="licence" v-if="locationImageUrls.length">
        <!-- <view class="licence" v-if="locationImageUrls.length">
            <box-title title="位置图片" class="box-title"></box-title>
            <view class="flex-wrap">
                <view v-for="(i,k) in locationImageUrls" :key="k" class="ml-20 mt-20"
@@ -14,10 +26,10 @@
                    <u-image :src="i" width="80" height="80"></u-image>
                </view>
            </view>
        </view>
        </view> -->
        <view class="item mt-30">
        <view class="item mt-20 bgc-ff">
            <u-form labelPosition="left" :model="info" ref="form" labelWidth="100" :labelStyle="{fontSize:'28rpx'}">
                <u-form-item label="审核结果" prop="confirmFlag" borderBottom>
                    <u-input v-model="confirmFlag" disabled disabledColor="#ffffff" border="none" placeholder="请输入"
@@ -41,7 +53,7 @@
            </u-form>
        </view>
        <view v-if="status == 2">
        <view v-if="status == 2" class="section bgc-ff mt-20 mb-20">
            <u-subsection :list="tabList" :current="tabIndex" button-color="#017BFC" @change="changeTab"></u-subsection>
            <u-form labelPosition="left" :model="goOutInfo" ref="form" labelWidth="100"
                :labelStyle="{fontSize:'28rpx'}">
@@ -83,7 +95,7 @@
                </view>
            </u-form>
            <view class="upload bgc-ff">
                <view class="f-28 mb-20">位置图片</view>
                <view class="f-30 mb-20">位置图片</view>
                <view class="mt-20" v-if="tabIndex == 0">
                    <u-upload :fileList="startImageUrls" :previewFullImage="uploadConfig.previewFullImage"
                        :accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
@@ -459,6 +471,10 @@
</script>
<style lang="scss">
    page {
        background-color: #f5f5f5;
    }
    .container {
        padding: 0 20rpx 130rpx;
@@ -505,11 +521,12 @@
    /deep/ .u-form-item__body__left__content__label,
    /deep/ .uni-input-placeholder {
        font-size: 30rpx;
        color: #000;
    }
    .upload {
        margin: 0 30rpx;
        padding: 30rpx;
        // margin: 0 30rpx;
        padding: 20rpx 0 0;
    }
@@ -519,4 +536,18 @@
        height: 140rpx;
        border: 1px solid #EEEEEE;
    }
    .section {
        padding: 20rpx;
    }
    .item,
    .licence {
        padding: 0 20rpx;
    }
    /deep/ .line-item-container .text .r {
        color: #000 !important;
    }
</style>
subPackage/workbench/views/cscj.vue
@@ -789,25 +789,38 @@
                            // } = this.$getIndex(this.nineTypeList, data.nineType, "value", "name");
                            // this.nineTypeIndex = index;
                            // this.nineTypeValue = name;
                            this.$refs.selector.showDefault(data.nineType)
                            setTimeout(() => {
                                if (this.$refs.selector.selectedItem.childrenId) {
                                    this.nineTypeValue = this.$refs.selector.selectedItem
                                        .childrenName
                                } else {
                                    this.nineTypeValue = this.$refs.selector.selectedItem
                                        .parentName;
                            if (!data.isNine) {
                                this.form.isNine = 2;
                            } else {
                                if (data.isNine == 1) {
                                    this.$refs.selector.showDefault(data.nineType)
                                    setTimeout(() => {
                                        if (this.$refs.selector.selectedItem.childrenId) {
                                            this.nineTypeValue = this.$refs.selector.selectedItem
                                                .childrenName
                                        } else {
                                            this.nineTypeValue = this.$refs.selector.selectedItem
                                                .parentName;
                                        }
                                    }, 200)
                                }
                            }, 200)
                            }
                        }
                        if (key == "isFront" && data.isFront != null) {
                            let {
                                index,
                                name
                            } = this.$getIndex(this.frontTypeList, data.frontType, "value", "name");
                            this.frontTypeIndex = index;
                            this.frontTypeValue = name;
                        if (key == "isFront") {
                            if (!data.isFront) {
                                this.form.isFront = 2;
                            } else {
                                if (data.isFront == 1) {
                                    let {
                                        index,
                                        name
                                    } = this.$getIndex(this.frontTypeList, data.frontType, "value",
                                        "name");
                                    this.frontTypeIndex = index;
                                    this.frontTypeValue = name;
                                }
                            }
                        }
                    })
                    this.$set(this.form, "jwd", `${Number(data.lng).toFixed(6)},${Number(data.lat).toFixed(6)}`)
subPackage/workbench/views/editCscj.vue
@@ -25,7 +25,52 @@
                        </u-input>
                        <u-icon slot="right" name="arrow-right"></u-icon>
                    </u-form-item>
                    <u-form-item label="九小场所:" labelWidth="100" prop="isNine" :required="isRequired">
                        <u-radio-group v-model="form.isNine" 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.isNine == 1?"是":"否"}}
                        </view>
                    </u-form-item>
                    <u-form-item v-if="form.isNine == 1" @click="showNineTypeSelector" 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 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">
                            <u-tag :closable="currentId?false:true" :show="!item.isClose" size="mini"
                                @close="delTag(item)" :text="item.text"></u-tag>
                        </view>
                    </view> -->
                    <!-- <view v-if="categoryValue.length" class="label" style="border-bottom:1px solid eff1f3;">
                        <view v-for="(item,index) in categoryValue" :key="index" class="activeLabel">
                            <u-tag :closable="currentId?false:true"  size="mini"
                                @close="delTag()" :text="item.categoryName"></u-tag>
                        </view>
                    </view> -->
                    <u-form-item class="form-item" labelWidth="100" label="备注:" prop="remark">
                        <u--input border="none" v-model="form.remark" placeholder="请输入">
                        </u--input>
@@ -82,16 +127,23 @@
            </u-form>
        </view>
        <footer-btn @click="submit" text="保存" />
        <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="showPicker" :defaultIndex="defaultIndex" ref="uPicker" keyName="name" :loading="pickerLoading"
            :columns="pickColumns" @change="changeHandler" @confirm="confirmPicker"
            @cancel="showPicker = 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"
            :columns="categoryList" @confirm="confirmCategory" @change="changeCategory"
            @cancel="isShowCatePicker = false"></u-picker>
        <cate-selector ref="selector" @comfirm="comfirmNineType" />
    </view>
</template>
@@ -118,11 +170,19 @@
    import {
        minioBaseUrl
    } from "../../../common/setting";
    import {
        bizDictionary,
        bizDictionaryTree
    } from '@/api/system/dict.js'
    import cateSelector from "../components/cateSelector.vue"
    export default {
        mixins: [uploadMixin],
        components: {
            lineItem,
            boxTitle
            boxTitle,
            cateSelector
        },
        data() {
            return {
@@ -145,9 +205,14 @@
                    placeName: "",
                    principal: '',
                    principalPhone: '',
                    principalIdCard: '',
                    lat: '',
                    lng: '',
                    location: ''
                    location: '',
                    isNine: "",
                    isFront: "",
                    frontType: "",
                    nineType: ""
                },
                rules: {
                    // 'buildingCode': {
@@ -156,6 +221,12 @@
                    //     message: '请选择楼栋',
                    //     trigger: ['blur', 'change']
                    // },
                    'form.isNine': {
                        type: 'string',
                        required: true,
                        message: '是否九小场所',
                        trigger: ['blur', 'change']
                    },
                    'form.placeName': {
                        type: 'string',
                        required: true,
@@ -187,7 +258,22 @@
                            trigger: ['change', 'blur']
                        }
                    ],
                    'form.principalIdCard': [{
                            type: 'string',
                            required: false,
                            message: '请输入身份证号码',
                            trigger: ['change', 'blur']
                        },
                        {
                            validator: (rule, value, callback) => {
                                const idCardRegex =
                                    /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/
                                return idCardRegex.test(value)
                            },
                            message: '身份证号码有误',
                            trigger: ['change', 'blur']
                        }
                    ],
                },
@@ -231,16 +317,16 @@
                        //     name: 'username',
                        //     value: "未完善",
                        // },
                        {
                            label: "采集人",
                            name: 'createUserName',
                            value: "未完善"
                        },
                        {
                            label: "采集时间",
                            name: 'createTime',
                            value: "未完善"
                        },
                        // {
                        //     label: "采集人",
                        //     name: 'createUserName',
                        //     value: "未完善"
                        // },
                        // {
                        //     label: "采集时间",
                        //     name: 'createTime',
                        //     value: "未完善"
                        // },
                        // {
                        //     label: "历史事件",
                        //     value: "未完善",
@@ -317,7 +403,26 @@
                secondId: "",
                categoryValue: "",
                houseCode: "",
                from: ""
                statusList: [{
                        name: "是",
                        id: 1
                    },
                    {
                        name: "否",
                        id: 2
                    }
                ],
                nineTypeList: [], //九小类型
                frontTypeList: [], //阵地
                nineTypeIndex: [0],
                frontTypeIndex: [0],
                showNineTypePicker: false,
                showFrontTypePicker: false,
                nineTypeValue: "",
                frontTypeValue: "",
                isView: false
            }
        },
        created() {
@@ -326,7 +431,12 @@
        options: {
            styleIsolation: 'shared', // 解除样式隔离
        },
        onLoad(option) {
        async onLoad(option) {
            console.log("option===>", option);
            await this.getCategory();
            await this.getAllBizDict();
            // this.getNineTypeList();
            const {
                type
            } = option
@@ -343,7 +453,8 @@
            if (option.id || option.houseCode) {
                this.getBuildingDetail()
            }
            this.getCategory();
            this.getCurrentLocation();
            // this.getCategory();
        },
        watch: {
@@ -365,7 +476,9 @@
            // }  
        },
        onReady() {
            this.$refs.form.setRules(this.rules)
        },
        methods: {
            // getBuildingDetail(params = {}) {
@@ -412,6 +525,40 @@
            //         })
            //     })
            // },
            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)
                    })
                })
            },
            getNineTypeList() {
                bizDictionaryTree({
                    code: "nineType"
                }).then(res => {
                    console.log(res.data);
                })
            },
            showNineTypeSelector() {
                this.$refs.selector.open();
            },
            navTo(type) {
                if (type == 1) {
@@ -502,6 +649,9 @@
                        id: this.currentId
                    }
                }
                uni.showLoading({
                    title: "加载中..."
                })
                getPlaceDetail({
                    ...params,
                    ...idorCodeParams
@@ -509,6 +659,7 @@
                    code,
                    data
                }) => {
                    uni.hideLoading();
                    if (code !== 200) {
                        uni.showToast({
                            title: "数据加载失败",
@@ -548,8 +699,49 @@
                                this.form.images = []
                            }
                        }
                        if (key == "isNine") {
                            // let {
                            //     index,
                            //     name
                            // } = this.$getIndex(this.nineTypeList, data.nineType, "value", "name");
                            // this.nineTypeIndex = index;
                            // this.nineTypeValue = name;
                            if (!data.isNine) {
                                this.form.isNine = 2;
                            } else {
                                if (data.isNine == 1) {
                                    this.$refs.selector.showDefault(data.nineType)
                                    setTimeout(() => {
                                        if (this.$refs.selector.selectedItem.childrenId) {
                                            this.nineTypeValue = this.$refs.selector.selectedItem
                                                .childrenName
                                        } else {
                                            this.nineTypeValue = this.$refs.selector.selectedItem
                                                .parentName;
                                        }
                                    }, 200)
                                }
                            }
                        }
                        if (key == "isFront") {
                            if (!data.isFront) {
                                this.form.isFront = 2;
                            } else {
                                if (data.isFront == 1) {
                                    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.$set(this.form, "jwd", `${Number(data.lng).toFixed(6)},${Number(data.lat).toFixed(6)}`)
                    this.form.building = arr.join("")
                    let labelList = data.placePoiLabelVOList;
                    let tempLabelList = [];
@@ -561,13 +753,14 @@
                    this.firstId = tempLabelList[0].poiCode;
                    this.categoryValue = tempLabelList[1].labelName;
                    this.form.label = tempLabelList[1].poiCode
                    setTimeout(() => {
                        let firstIndex = this.categoryList[0].findIndex(i => i.categoryNo ==
                            tempLabelList[0].poiCode)
                        let childIndex = this.categoryList[1].findIndex(i => i.categoryNo ==
                            tempLabelList[1].poiCode)
                        this.categoryIndex = [firstIndex, childIndex]
                    }, 500)
                    // setTimeout(() => {
                    let firstIndex = this.categoryList[0].findIndex(i => i.categoryNo ==
                        tempLabelList[0].poiCode)
                    let childIndex = this.categoryList[1].findIndex(i => i.categoryNo ==
                        tempLabelList[1].poiCode)
                    this.categoryIndex = [firstIndex, childIndex]
                    // }, 500)
                    Object.keys(this.comprehensiveData).forEach(key => {
                        this.comprehensiveData[key].forEach(item => {
@@ -594,32 +787,67 @@
                })
            },
            //选择九小场所类型
            comfirmNineType(val) {
                if (val.childrenId) {
                    this.form.nineType = val.childrenId;
                    this.nineTypeValue = val.childrenName;
                } else {
                    this.form.nineType = val.parentId;
                    this.nineTypeValue = val.parentName;
                }
            },
            //表单提交
            submit() {
                const that = this
                this.$refs.form.validate().then(valid => {
                    if (valid) {
                        if (this.form?.images?.length > 0) {
                            let urls = []
                            this.form.images.forEach(e => {
                                urls.push(e.name)
                            })
                            this.form.imageUrls = urls.join(",")
                        }
                if (!this.form.placeName) {
                    this.$showTips("请输入场所名称")
                    return
                }
                        this.form.roleName = uni.getStorageSync("activeRole").roleName;
                        add(this.form).then(res => {
                            uni.showToast({
                                icon: 'success',
                                title: '保存成功'
                            })
                            setTimeout(() => {
                                uni.navigateBack()
                            }, 300)
                        })
                    }
                if (!this.form.label) {
                    this.$showTips("请选择标签")
                    return
                }
                // this.$refs.form.validate().then(valid => {
                //     if (valid) {
                if (this.form?.images?.length > 0) {
                    let urls = []
                    this.form.images.forEach(e => {
                        urls.push(e.name)
                    })
                    this.form.imageUrls = urls.join(",")
                }
                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 = "";
                }
                if (this.form.isNine == 1 && !this.form.nineType) {
                    this.$showTips("请选择九小场所类型")
                    return
                }
                if (this.form.isFront == 1 && !this.form.frontType) {
                    this.$showTips("请选择阵地类型")
                    return
                }
                delete this.form.images;
                add(this.form).then(res => {
                    this.$showTips("提交成功", "success");
                    setTimeout(() => {
                        uni.navigateBack()
                    }, 300)
                })
            },
            async buildColumn() {
                //设置街道
@@ -641,6 +869,34 @@
            setColumn(data, index) {
                this.$set(this.pickColumns, index, data)
            },
            //获取当前位置信息
            getCurrentLocation() {
                uni.getLocation({
                    type: 'gcj02', // 坐标系类型
                    success: (res) => {
                        // var latitude = res.latitude; // 维度
                        // var longitude = res.longitude; // 经度
                        // this.form.lng = longitude
                        // this.form.lat = latitude
                        // this.form.jwd =
                        //     `${Number(res.longitude).toFixed(6)},${Number(res.latitude).toFixed(6)}`
                    },
                    complete: (res) => {
                        if (res.latitude) {
                            this.$set(this.form, "x", res.longitude)
                            this.$set(this.form, "y", res.latitude)
                        } else {
                            uni.showModal({
                                title: "提示!",
                                content: `获取定位信息失败 ${res.errMsg}`,
                                showCancel: false
                            })
                        }
                    }
                });
            },
            getLocation() {
@@ -674,6 +930,20 @@
                this.showPicker = false
            },
            confirmNineTypePicker(e) {
                this.nineTypeIndex = e.indexs;
                this.nineTypeValue = e.value[0].name;
                this.form.nineType = e.value[0].value;
                this.showNineTypePicker = false;
            },
            confirmFrontTypePicker(e) {
                this.frontTypeIndex = e.indexs;
                this.frontTypeValue = e.value[0].name;
                this.form.frontType = e.value[0].value;
                this.showFrontTypePicker = false;
            },
            async changeHandler(e) {
                const {
                    columnIndex,