From e0c780a058a97fcee0bc1987943981719a9079cd Mon Sep 17 00:00:00 2001
From: Lou <luzhiping@qqyjz.com>
Date: Tue, 30 Jan 2024 18:11:29 +0800
Subject: [PATCH] 场所检查功能完善
---
subPackage/workbench/views/checkDetail.vue | 117 +++++++++++++-
api/place/place.js | 9 +
subPackage/house/houseNumber/index.vue | 77 ++++++++-
subPackage/workbench/views/cscj.vue | 2
common/setting.js | 2
subPackage/workbench/views/auditList.vue | 13
subPackage/house/houseNumber/siteInspect.vue | 239 ++++++++++++++++++++++-------
7 files changed, 376 insertions(+), 83 deletions(-)
diff --git a/api/place/place.js b/api/place/place.js
index 62efcac..efdd24f 100644
--- a/api/place/place.js
+++ b/api/place/place.js
@@ -42,6 +42,15 @@
})
}
+export const addPlaceCheckTwo = (data) => {
+ return http.request({
+ url: '/blade-placeCheck/placeCheck/saveTwo',
+ method: 'POST',
+ data: data
+ })
+}
+
+
export const getPlaceCheckDetail = (params) => {
return http.request({
url: '/blade-placeCheck/placeCheck/detail',
diff --git a/common/setting.js b/common/setting.js
index 1f08dc9..ee2aee9 100644
--- a/common/setting.js
+++ b/common/setting.js
@@ -13,7 +13,7 @@
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: "https://srgdjczzxtpt.com:2080/gminio/jczz/",
// minioBaseUrl: "http://192.168.0.101:9528/",
// 数据中台接口url
dataCenterUrl: 'https://sk.hubeishuiyi.cn/services',
diff --git a/subPackage/house/houseNumber/index.vue b/subPackage/house/houseNumber/index.vue
index e4fef2c..8a09ad3 100644
--- a/subPackage/house/houseNumber/index.vue
+++ b/subPackage/house/houseNumber/index.vue
@@ -76,7 +76,7 @@
<u-icon name="/static/icon/menu-02.png" size="30"></u-icon>
<text>场所采集</text>
</view>
- <view class="sl-box" @close="showPopup=false" v-if="isPolice">
+ <view class="sl-box" @click="navToInspect" v-if="isPolice">
<u-icon name="/static/icon/menu-02.png" size="30"></u-icon>
<text>场所检查</text>
</view>
@@ -145,7 +145,9 @@
addPlaceCheck
} from "@/api/place/place.js"
import uploadMixin from "@/mixin/uploadMixin";
-
+ import {
+ bizDictionary
+ } from '@/api/system/dict.js'
export default {
mixins: [uploadMixin],
components: {
@@ -156,15 +158,36 @@
return {
stdId: '',
houseNumberData: [{
+ title: '场所名称',
+ name: 'placeName',
+ value: '未完善'
+ },
+ {
title: '场所标签',
name: 'label',
value: '未完善'
},
{
- title: '场所名称',
- name: 'placeName',
+ title: '九小场所',
+ name: 'isNine',
value: '未完善'
},
+ {
+ title: '九小场所类型',
+ name: 'nineType',
+ value: '未完善'
+ },
+ {
+ title: '阵地',
+ name: 'isFrontType',
+ value: '未完善'
+ },
+ {
+ title: '阵地类型',
+ name: 'frontType',
+ value: '未完善'
+ },
+
{
title: '场所负责人',
name: 'principal',
@@ -314,14 +337,13 @@
signatureUrl: ""
}
},
- onLoad(option) {
+ async onLoad(option) {
console.log("oload=>", option)
this.stdId = option.stdId
if (uni.getStorageSync("activeRole").roleName == "民警") {
this.isPolice = true;
}
-
if (option.addressType) {
this.addressType = option.addressType
}
@@ -341,6 +363,19 @@
},
methods: {
+
+ // 获取业务字典
+ getBizDict(code, callback) {
+ bizDictionary({
+ code
+ }).then(res => {
+ if (res.code == 200) {
+ callback(res.data)
+ }
+ })
+ },
+
+
async getBuildingDetail() {
// this.$nextTick(() => {
// this.$refs.uToast.show({
@@ -369,10 +404,8 @@
this.placeName = data.placeName;
const doorplateAddressEntity = data?.doorplateAddressEntity || {}
const placePoiLabelVOList = data?.placePoiLabelVOList || {}
-
this.neiName = doorplateAddressEntity.neiName || '未完善'
-
- this.houseNumberData.forEach(item => {
+ this.houseNumberData.forEach((item, index) => {
if (!data[item.name]) {
item.value = data.doorplateAddressEntity[item.name] || '未完善'
} else {
@@ -387,6 +420,28 @@
// item.value = labelArr.join('、')
item.value = data.placePoiLabelVOList[data.placePoiLabelVOList.length - 1]
.labelName;
+ }
+ if (item.name == 'isNine') {
+ item.value = data.isNine == 1 ? "是" : "否"
+ }
+ // if(data.isNine != 1 && item.name == "nineType"){
+ // this.houseNumberData.splice(index,1)
+ // }
+ if (data.isNine == 1 && item.name == "nineType") {
+ this.getBizDict('nineType', (list) => {
+ item.value = this.$getIndex(list, data.nineType, 'dictKey',
+ 'dictValue').name
+ })
+ }
+ if (item.name == 'isFront') {
+ item.value = data.isFront == 1 ? "是" : "否"
+
+ }
+ if (data.isFront == 1 && item.name == "frontType") {
+ this.getBizDict('frontType', (list) => {
+ item.value = this.$getIndex(list, data.frontType, 'dictKey',
+ 'dictValue').name
+ })
}
})
@@ -521,7 +576,9 @@
},
navToInspect() {
- this.$u.func.globalNavigator(`siteInspect?code=${this.stdId}`)
+ uni.navigateTo({
+ url: `siteInspect?code=${this.stdId}`
+ })
}
},
diff --git a/subPackage/house/houseNumber/siteInspect.vue b/subPackage/house/houseNumber/siteInspect.vue
index e6390c8..1ab6db3 100644
--- a/subPackage/house/houseNumber/siteInspect.vue
+++ b/subPackage/house/houseNumber/siteInspect.vue
@@ -1,41 +1,48 @@
<template>
<view class="wrap">
- <u-collapse :value="itemIndex">
+ <u-collapse :value="itemIndex" ref="collapse">
<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>
+ <u-form :model="info" ref="form">
+ <block v-for="(i,k) in item.children">
+ <view class="f-30 c-33">
+ {{i.title}}
</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>
+ <u-form-item labelWidth="90" label="隐患" prop="gateStatus">
+ <view class="btn-group flex">
+ <view class="value-item" :class="i.state == 0?'active bgc-main c-ff':''"
+ @click="changeStatus(0,i,index,k)">
+ 存在
+ </view>
+ <view class="value-item" :class="i.state == 1?'active bgc-main c-ff':''"
+ @click="changeStatus(1,i,index,k)">
+ 不存在
+ </view>
</view>
- </u-upload>
- </u-form-item> -->
+ </u-form-item>
+ <view class="" v-if="i.state == 0">
+ <u-form-item labelWidth="100" label="隐患照片" prop="gateStatus">
+ <u-upload :fileList="i.urls" :previewFullImage="uploadConfig.previewFullImage"
+ :accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
+ :maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture"
+ @afterRead="afterReadImgs($event,i,index,k)" @delete="deleteImages($event,index,k)">
+ <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-item labelWidth="100" label="隐患描述" prop="gateStatus">
+ <u-textarea v-model="i.remark" placeholder="请输入隐患描述"
+ placeholderClass="c-99 f-26"></u-textarea>
+ </u-form-item>
+ </view>
+ </block>
</u-form>
</u-collapse-item>
</u-collapse>
- <view class="content bgc-ff" v-if="false">
-
-
+ <view class="content">
<view class="upload ">
- <view class="f-28 mb-20">整改内容</view>
+ <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>
@@ -49,7 +56,6 @@
</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">
@@ -61,12 +67,7 @@
</view>
</view> -->
-
-
-
-
- <footer-btn @click="sumitInfo"></footer-btn>
-
+ <footer-btn @click="showSignPopup"></footer-btn>
<u-popup mode="bottom" :show="showSignature" round="10" :closeable="true" @close="showSignature=false">
<view class="signture-popup">
@@ -80,7 +81,7 @@
<script>
import uploadMixin from "@/mixin/uploadMixin";
import {
- addPlaceCheck,
+ addPlaceCheckTwo,
getPlaceCheckItem
} from "@/api/place/place.js"
export default {
@@ -93,7 +94,7 @@
info: {
remark: "",
imageUrls: "",
- signaturePath: ""
+ signaturePath: "",
},
desc: "",
@@ -109,7 +110,7 @@
},
statusOption: [{
text: "存在",
- value: 2
+ value: 0
},
{
text: "不存在",
@@ -118,12 +119,14 @@
],
questionList: [],
- itenIndex: []
+ itemIndex: [],
+ patrolRecordVOList: [],
+ count: 0
}
},
onLoad(option) {
- // this.info.houseCode = option.code;
+ this.info.houseCode = option.code;
this.getItem();
},
@@ -135,24 +138,127 @@
let data = res.data;
this.questionList = res.data;
let arr = []
+ let obj = {
+ itemId: "",
+ state: "",
+ imagesUrl: "",
+ remark: ""
+ }
+ let count = 0;
for (let i = 0, ii = data.length; i < ii; i++) {
arr.push(i);
+ for (let k = 0, kk = data[i].children.length; k < kk; k++) {
+ // this.info.patrolRecordVOList.push(obj);
+ count += 1;
+ }
}
+ this.count = count;
this.itemIndex = arr;
})
},
-
-
- changeStatus(value, fIndex, cIndex) {
- this.info.status = value;
-
+ changeStatus(value, item, fIndex, cIndex) {
+ let children = this.questionList[fIndex];
+ children.children[cIndex].state = value;
+ this.$set(this.questionList, fIndex, children)
+ if (value == 0 && !item.urls) {
+ children.children[cIndex].urls = [];
+ this.$set(this.questionList, fIndex, children)
+ }
+ this.$nextTick(() => {
+ this.$refs.collapse.init();
+ })
+ this.getSelected()
},
+ getSelected() {
+ let arr = []
+ for (let i = 0, ii = this.questionList.length; i < ii; i++) {
+ for (let k = 0, kk = this.questionList[i].children.length; k < kk; k++) {
+ if (this.questionList[i].children[k].state != null) {
+ arr.push({
+ itemId: this.questionList[i].children[k].id,
+ state: this.questionList[i].children[k].state,
+ imageUrls: this.setImages(this.questionList[i].children[k].urls),
+ remark: this.questionList[i].children[k].remark || ""
+ })
+ }
+ }
+ }
+ return arr;
+ },
+
+ setImages(key) {
+ if (!key) {
+ return ""
+ } else {
+ let urls = [];
+ for (let i of key) {
+ urls.push(i.name);
+ }
+ return urls.join(",")
+ }
+ },
+
+ async afterReadImgs(event, item, fIndex, cIndex) {
+ this.showLoading()
+ let children = this.questionList[fIndex];
+ let lists = [].concat(event.file)
+ let fileListLen = item.urls.length;
+ lists.map((item) => {
+ children.children[cIndex].urls.push({
+ ...item,
+ status: 'uploading',
+ message: '上传中'
+ })
+ this.$set(this.questionList, fIndex, children)
+ })
+ for (let i = 0; i < lists.length; i++) {
+ const result = await this.uploadFilePromise(lists[i].url)
+ children.children[cIndex].urls.splice(fileListLen, 1, Object.assign({}, {
+ url: result.data.link,
+ name: result.data.name
+ }))
+ this.$set(this.questionList, fIndex, children)
+ fileListLen++
+ }
+ this.loadingClose()
+ this.getSelected()
+ },
+
+ deleteImages(event, fIndex, cIndex) {
+ let children = this.questionList[fIndex];
+ children.children[cIndex].urls.splice(event.index, 1);
+ this.$set(this.questionList, fIndex, children);
+ this.getSelected()
+ },
signatureChange(e) {
// this.signatureUrl = e;
this.uploadSignImg(e)
+ },
+
+ showSignPopup() {
+ // if (this.getSelected().length < this.count) {
+ // this.$showTips("还有内容还未完善");
+ // return;
+ // }
+
+ let data = this.getSelected();
+ for (let i of data) {
+ if (i.state == 1) {
+ if (i.imageUrls || i.remark) {
+ i.imageUrls = "";
+ i.remark = "";
+ }
+ } else {
+ if (!i.imageUrls && !i.remark) {
+ this.$showTips("请上传隐患照片或填写隐患描述");
+ return;
+ }
+ }
+ }
+ this.showSignature = true;
},
uploadSignImg(url) {
@@ -169,13 +275,16 @@
this.showSignature = false;
this.signatureUrl = data.data.link;
this.info.signaturePath = data.data.name;
+ this.sumitInfo()
}
}
})
},
-
sumitInfo() {
+ uni.showLoading({
+ title: "加载中..."
+ })
if (this.form.images.length > 0) {
let urls = []
this.form.images.forEach(e => {
@@ -183,7 +292,11 @@
})
this.info.imageUrls = urls.join(",")
}
- addPlaceCheck(this.info).then(res => {
+
+ this.info.patrolRecordVOList = this.getSelected()
+
+ addPlaceCheckTwo(this.info).then(res => {
+ uni.hideLoading();
uni.showToast({
icon: 'success',
title: '提交成功',
@@ -217,8 +330,8 @@
}
.content {
- margin: 20rpx 30rpx;
- padding: 0 30rpx;
+ margin: 20rpx 0;
+ padding: 0 30rpx 100rpx;
}
.site-box {
@@ -245,8 +358,6 @@
.upload {
// margin: 0 30rpx;
padding: 30rpx 0;
-
-
}
.submit-btn {
@@ -294,9 +405,6 @@
text-align: center;
}
- .content {
- padding: 0 20rpx;
- }
.signture-popup {
padding-bottom: 20rpx;
@@ -308,11 +416,30 @@
}
.value-item {
- padding: 0 40rpx;
+ flex: 1;
// background-color: #ffffff;
- border: 2rpx solid #333333;
+ // width: 120rpx;
+ border: 2rpx solid #f5f5f5;
height: 70rpx;
line-height: 70rpx;
box-sizing: border-box;
+ text-align: center;
+ }
+
+ .active {
+ border: 2rpx solid currentColor;
+ }
+
+ .btn-group {
+ flex: 1;
+ }
+
+ /deep/ .u-cell__title-text {
+ font-weight: bold;
+ font-size: 30rpx;
+ }
+
+ /deep/ .u-form-item__body__left__content {
+ font-size: 26rpx;
}
</style>
\ No newline at end of file
diff --git a/subPackage/workbench/views/auditList.vue b/subPackage/workbench/views/auditList.vue
index ca613cc..d324f66 100644
--- a/subPackage/workbench/views/auditList.vue
+++ b/subPackage/workbench/views/auditList.vue
@@ -30,16 +30,17 @@
<u-tag v-if="i.status == 3" text="审核拒绝" type="error" plain plainFill></u-tag>
</view>
<view class="item-row flex a-i-c j-c-s-b">
- <text class="f-28">时间</text>
+ <text class="f-28" v-if="tabIndex == 0">时间</text>
+ <text class="f-28" v-if="tabIndex == 1">检查时间</text>
<text class="f-28 c-66">{{i.createTime}}</text>
</view>
- <view class="item-row flex a-i-c j-c-s-b" v-if="ftabIndex == 0">
+ <view class="item-row flex a-i-c j-c-s-b" v-if="tabIndex == 0">
<text class="f-28">地址</text>
<text class="address f-28 c-66">{{i.addressName || ""}}</text>
</view>
<view class="item-row flex a-i-c j-c-s-b" v-if="tabIndex == 1">
- <text class="f-28">整改内容</text>
- <text class="address f-28 c-66">{{i.remark}}</text>
+ <text class="f-28">隐患数量</text>
+ <text class="address f-28 c-66">{{i.number}}</text>
</view>
</view>
</view>
@@ -132,7 +133,7 @@
},
changeTab(e) {
this.tabIndex = e.index;
- this.currentStatus = e.status;
+ // this.currentStatus = e.status;
this.resetParams();
if (e.index == 0) {
this.getList()
@@ -156,7 +157,7 @@
let params = {
page: this.currentPage,
size: 20,
- status: this.currentStatus,
+ status: 2,
frequency: this.frequency
}
if (this.selectDate.length) {
diff --git a/subPackage/workbench/views/checkDetail.vue b/subPackage/workbench/views/checkDetail.vue
index d18bfcf..c43e449 100644
--- a/subPackage/workbench/views/checkDetail.vue
+++ b/subPackage/workbench/views/checkDetail.vue
@@ -1,22 +1,49 @@
<template>
<view class="">
-
<view class="item-row flex j-c-s-b a-i-c">
- <text>整改内容</text>
- <text>{{info.remark}}</text>
+ <text>场所名称</text>
+ <text class="item-content">{{info.placeName}}</text>
</view>
<view class="item-row flex j-c-s-b a-i-c">
- <text>时间</text>
+ <text>标签</text>
+ <text>{{label || "未完善"}}</text>
+ </view>
+ <view class="item-row flex j-c-s-b a-i-c">
+ <text>场所负责人</text>
+ <text>{{info.principal || "未完善"}}</text>
+ </view>
+ <view class="item-row flex j-c-s-b a-i-c">
+ <text>场所负责人电话</text>
+ <text>{{info.principalPhone || "未完善"}}</text>
+ </view>
+ <view class="item-row flex j-c-s-b a-i-c">
+ <text>检查人</text>
+ <text>{{info.name}}</text>
+ </view>
+ <view class="item-row flex j-c-s-b a-i-c">
+ <text>检查时间</text>
<text>{{info.createTime}}</text>
+ </view>
+ <view class="item-row flex j-c-s-b a-i-c">
+ <text>地址</text>
+ <text class="item-content">{{info.location}}</text>
+ </view>
+
+ <view class="item-row flex j-c-s-b a-i-c" v-if="inof.remark">
+ <text>其它隐患问题</text>
+ <text class="item-content">{{info.remark}}</text>
</view>
<view class="image-wrap bgc-ff" v-if="images.length">
<view class="mb-20">
图片
</view>
- <view class="image-item" v-for="(i,k) in images" @click="previewImage(images,i)">
- <u-image :src="i" width="100rpx" height="100rpx"></u-image>
+ <view class="flex flex-wrap">
+ <view class="image-item" v-for="(i,k) in images" @click="previewImage(images,i)">
+ <u-image :src="i" width="100rpx" height="100rpx"></u-image>
+ </view>
</view>
+
</view>
<view class="image-wrap bgc-ff" v-if="signatureUrl.length">
@@ -27,24 +54,60 @@
<u-image :src="i" width="100rpx" height="100rpx"></u-image>
</view>
</view>
+ <view class="mt-20 bgc-ff">
+ <block v-for="(item,index) in itemList">
+ <block v-for="(i,k) in item.children">
+ <block v-for="(n,m) in info.patrolRecordVOList">
+ <view class="item-row flex j-c-s-b a-i-c" v-if="i.id == n.itemId && n.state == 1">
+ <text class="item-left">{{i.title}}</text>
+ <text>不存在</text>
+ </view>
+ <u-collapse ref="collapse" v-if="i.id == n.itemId && n.state == 0">
+ <u-collapse-item :name="index" :title="i.title" value="存在">
+ <view class="mb-20" v-if="n.remark">
+ <view class="f-26 mb-10" style="color:#000">隐患描述</view>
+ <view class="f-28" style="color:#000">
+ {{n.remark}}
+ </view>
+ </view>
+ <view class="" v-if="n.imageUrls">
+ <view class="f-26 mb-10" style="color:#000">隐患照片</view>
+ <view class="flex flex-wrap">
+ <view class="mr-20" v-for="r in ($setImageUrl(n.imageUrls))">
+ <u-image :src="r" width="100rpx" height="100rpx"
+ @click="previewImage($setImageUrl(n.imageUrls),i)"></u-image>
+ </view>
+ </view>
+ </view>
+ </u-collapse-item>
+ </u-collapse>
+ </block>
+ </block>
+ </block>
+ </view>
+
+
</view>
</template>
<script>
import {
+ getPlaceCheckItem,
getPlaceCheckDetail
} from '@/api/place/place.js'
-
export default {
data() {
return {
info: {},
images: [],
- signatureUrl: []
+ signatureUrl: [],
+ label: "",
+ itemList: []
}
},
- onLoad(option) {
+ async onLoad(option) {
+ await this.getItem();
this.getDetail(option.id);
},
methods: {
@@ -55,11 +118,28 @@
this.info = res.data;
this.images = this.$setImageUrl(res.data.imageUrls);
this.signatureUrl = this.$setImageUrl(res.data.signaturePath);
+ if (res.data.placePoiLabelVOList.length) {
+ this.label = res.data.placePoiLabelVOList[res.data.placePoiLabelVOList.length - 1]
+ .labelName;
+ }
+
+ // this.label = res.data.
})
},
+ getItem() {
+ getPlaceCheckItem().then(res => {
+ if (res.code == 200) {
+ this.itemList = res.data;
+ }
+ })
+ },
+
+ setUrl(src) {
+ return this.$setImageUrl(url)
+ },
previewImage(urls, current) {
uni.previewImage({
@@ -89,6 +169,10 @@
width: 70%;
text-align: right;
}
+
+ .item-left {
+ width: 70%;
+ }
}
.image-wrap {
@@ -99,4 +183,19 @@
margin-right: 20rpx;
}
}
+
+ /deep/.u-cell__title-text {
+ color: #000 !important;
+ width: 70%;
+ font-size: 28rpx !important;
+ }
+
+ /deep/ .u-cell__value {
+ color: #000 !important;
+ font-size: 28rpx !important;
+ }
+
+ .mr-20 {
+ margin-right: 20rpx;
+ }
</style>
\ No newline at end of file
diff --git a/subPackage/workbench/views/cscj.vue b/subPackage/workbench/views/cscj.vue
index 8db7114..85d2f29 100644
--- a/subPackage/workbench/views/cscj.vue
+++ b/subPackage/workbench/views/cscj.vue
@@ -21,7 +21,7 @@
</view>
</u-form-item>
- <u-form-item @click="popup" class="form-item" labelWidth="100" label="标签:" :required="isRequired"
+ <u-form-item @click="popup" class="form-item" labelWidth="100" label="标签:" :required="true"
:disabled="isDisabled" prop="label">
<u-input border="none" v-model="categoryValue" disabled disabledColor="#ffffff"
placeholder="请选择">
--
Gitblit v1.9.3