Commit 118fc86d2e5fb614b1efd0f66495aaef6c1f6e0b
1 parent
917e96ea
1
Showing
12 changed files
with
452 additions
and
142 deletions
admin-web-master/src/App.vue
| ... | ... | @@ -22,7 +22,8 @@ export default { |
| 22 | 22 | name: "App", |
| 23 | 23 | data() { |
| 24 | 24 | return { |
| 25 | - tipShow: false | |
| 25 | + tipShow: false, | |
| 26 | + | |
| 26 | 27 | }; |
| 27 | 28 | }, |
| 28 | 29 | created() { |
| ... | ... | @@ -76,14 +77,16 @@ export default { |
| 76 | 77 | .el-pagination.is-background .el-pager li:not(.disabled).active { |
| 77 | 78 | background-color: #3F9B6A; |
| 78 | 79 | } |
| 79 | - ::v-deep .buttonHover:hover { | |
| 80 | - color: #fff !important; | |
| 80 | + .buttonHover:hover { | |
| 81 | + color: #3f9b6a !important; | |
| 81 | 82 | border-color: #c5e1d2 !important; |
| 82 | 83 | background-color: #ecf5f0 !important; |
| 83 | 84 | outline: none; |
| 84 | 85 | } |
| 85 | 86 | |
| 86 | - | |
| 87 | + .greens { | |
| 88 | + color: #3F9B6A; | |
| 89 | + } | |
| 87 | 90 | .font{ |
| 88 | 91 | font-family: "Alibaba-PuHuiTi-Regular"; |
| 89 | 92 | } |
| ... | ... | @@ -157,9 +160,9 @@ export default { |
| 157 | 160 | border-color:#3F9B6A; |
| 158 | 161 | } |
| 159 | 162 | .el-button:focus, .el-button:hover{ |
| 160 | - color:#606266; | |
| 163 | + /* color:#606266; | |
| 161 | 164 | border-color:#DCDFE6; |
| 162 | - background-color:#fff; | |
| 165 | + background-color:#fff; */ | |
| 163 | 166 | } |
| 164 | 167 | .el-button--primary{ |
| 165 | 168 | background-color:#3F9B6A; |
| ... | ... | @@ -227,10 +230,7 @@ export default { |
| 227 | 230 | font-weight: 400; |
| 228 | 231 | } |
| 229 | 232 | .el-button:hover{ |
| 230 | - color: #ffffff; | |
| 231 | - border-color: #79b997; | |
| 232 | - background-color: #79b997 !important; | |
| 233 | - outline: none; | |
| 233 | + opacity: 0.8; | |
| 234 | 234 | } |
| 235 | 235 | .el-upload--picture-card:hover, .el-upload:focus{ |
| 236 | 236 | border-color:#3F9B6A; | ... | ... |
admin-web-master/src/assets/images/upload.png
0 → 100644
285 Bytes
admin-web-master/src/components/add/addinformation.vue
| 1 | 1 | <template> |
| 2 | 2 | <div> |
| 3 | 3 | <el-form :model="ruleForm" :rules="rulesHetong" ref="heForm" label-width="130px" class="demo-ruleForm"> |
| 4 | - <el-form-item label="商铺名称" prop="shopName"> | |
| 5 | - <el-input v-model="ruleForm.shopName" placeholder="请输入" maxlength="50"></el-input> | |
| 6 | - </el-form-item> | |
| 7 | - <el-form-item label="商铺类型" prop="shopType"> | |
| 8 | - <el-select v-model="ruleForm.shopType" placeholder="请选择" style="width: 100%;"> | |
| 9 | - <el-option label="移动铺位" value="1"></el-option> | |
| 10 | - <el-option label="固定铺位" value="2"></el-option> | |
| 11 | - </el-select> | |
| 4 | + <el-row :gutter="20"> | |
| 5 | + <el-col :span="12"> | |
| 6 | + <el-form-item label="商铺名称" prop="shopName"> | |
| 7 | + <el-input v-model="ruleForm.shopName" placeholder="请输入" maxlength="20"></el-input> | |
| 8 | + </el-form-item> | |
| 9 | + </el-col> | |
| 10 | + <el-col :span="12"> | |
| 11 | + <el-form-item label="商铺类型" prop="shopType"> | |
| 12 | + <el-select v-model="ruleForm.shopType" placeholder="请选择" style="width: 100%;"> | |
| 13 | + <el-option label="移动铺位" value="1"></el-option> | |
| 14 | + <el-option label="固定铺位" value="2"></el-option> | |
| 15 | + </el-select> | |
| 16 | + </el-form-item> | |
| 17 | + </el-col> | |
| 18 | + </el-row> | |
| 19 | + | |
| 20 | + <el-row :gutter="20"> | |
| 21 | + <el-col :span="12"> | |
| 22 | + <el-form-item label="测绘面积" prop="surveyingArea"> | |
| 23 | + <el-input v-model.number="ruleForm.surveyingArea" placeholder="请输入" maxlength="10" @input="validateNumber('surveyingArea', $event)"> | |
| 24 | + <template slot="append">M<sup>2</sup></template> | |
| 25 | + </el-input> | |
| 26 | + </el-form-item> | |
| 27 | + </el-col> | |
| 28 | + <el-col :span="12"> | |
| 29 | + <el-form-item label="产权面积" prop="propertyArea"> | |
| 30 | + <el-input v-model.number="ruleForm.propertyArea" placeholder="请输入" maxlength="10" @input="validateNumber('propertyArea', $event)"> | |
| 31 | + <template slot="append">M<sup>2</sup></template> | |
| 32 | + </el-input> | |
| 33 | + </el-form-item> | |
| 34 | + </el-col> | |
| 35 | + </el-row> | |
| 36 | + <el-row :gutter="20"> | |
| 37 | + <el-col :span="12"> | |
| 38 | + <el-form-item label="实际使用面积" prop="actualUsableArea"> | |
| 39 | + <el-input v-model.number="ruleForm.actualUsableArea" placeholder="请输入" maxlength="10" @input="validateNumber('actualUsableArea', $event)"> | |
| 40 | + <template slot="append">M<sup>2</sup></template> | |
| 41 | + </el-input> | |
| 42 | + </el-form-item> | |
| 43 | + </el-col> | |
| 44 | + <el-col :span="12"> | |
| 45 | + <el-form-item label="所属区域" prop="belongingRegion"> | |
| 46 | + <el-select v-model="ruleForm.belongingRegion" placeholder="请选择" style="width: 100%;"> | |
| 47 | + <el-option v-for="(item,index) in regionOptions" | |
| 48 | + :key="index" :label="item.label" :value="item.value"></el-option> | |
| 49 | + </el-select> | |
| 50 | + </el-form-item> | |
| 51 | + </el-col> | |
| 52 | + </el-row> | |
| 53 | + | |
| 54 | + | |
| 55 | + <el-row :gutter="20"> | |
| 56 | + <el-col :span="12"> | |
| 57 | + <el-form-item label="归属部门" prop="belongingDepartment"> | |
| 58 | + <el-input v-model="ruleForm.belongingDepartment" placeholder="请输入" maxlength="20"> | |
| 59 | + </el-input> | |
| 60 | + </el-form-item> | |
| 61 | + </el-col> | |
| 62 | + <el-col :span="12"> | |
| 63 | + <el-form-item label="负责人" prop="head"> | |
| 64 | + <el-input v-model="ruleForm.head" placeholder="请输入" maxlength="10"> | |
| 65 | + </el-input> | |
| 66 | + </el-form-item> | |
| 67 | + </el-col> | |
| 68 | + </el-row> | |
| 69 | + | |
| 70 | + <el-row :gutter="20"> | |
| 71 | + <el-col :span="12"> | |
| 72 | + <el-form-item label="联系人" prop="contacts"> | |
| 73 | + <el-input v-model="ruleForm.contacts" placeholder="请输入" maxlength="10"> | |
| 74 | + </el-input> | |
| 75 | + </el-form-item> | |
| 76 | + </el-col> | |
| 77 | + <el-col :span="12"> | |
| 78 | + <el-form-item label="联系方式" prop="telephone"> | |
| 79 | + <el-input v-model="ruleForm.telephone" placeholder="请输入" maxlength="20"> | |
| 80 | + </el-input> | |
| 81 | + </el-form-item> | |
| 82 | + </el-col> | |
| 83 | + </el-row> | |
| 84 | + | |
| 12 | 85 | |
| 13 | - </el-form-item> | |
| 14 | - <el-form-item label="测绘面积" prop="surveyingArea"> | |
| 15 | - <el-input v-model="ruleForm.surveyingArea" placeholder="请输入"> | |
| 16 | - <template slot="append">M<sup>2</sup></template> | |
| 17 | - </el-input> | |
| 18 | - </el-form-item> | |
| 19 | - <el-form-item label="产权面积" prop="propertyArea"> | |
| 20 | - <el-input v-model="ruleForm.propertyArea" placeholder="请输入"> | |
| 21 | - <template slot="append">M<sup>2</sup></template> | |
| 22 | - </el-input> | |
| 23 | - </el-form-item> | |
| 24 | - <el-form-item label="实际使用面积" prop="actualUsableArea"> | |
| 25 | - <el-input v-model="ruleForm.actualUsableArea" placeholder="请输入"> | |
| 26 | - <template slot="append">M<sup>2</sup></template> | |
| 27 | - </el-input> | |
| 28 | - </el-form-item> | |
| 29 | - <el-form-item label="所属区域" prop="belongingRegion"> | |
| 30 | - <el-select v-model="ruleForm.belongingRegion" placeholder="请选择" style="width: 100%;"> | |
| 31 | - <el-option label="成华区" value="成华区"></el-option> | |
| 32 | - <el-option label="武侯区" value="武侯区"></el-option> | |
| 33 | - <el-option label="锦江区" value="锦江区"></el-option> | |
| 34 | - <el-option label="青羊区" value="青羊区"></el-option> | |
| 35 | - <el-option label="金牛区" value="金牛区"></el-option> | |
| 36 | - <el-option label="双流区" value="双流区"></el-option> | |
| 37 | - <el-option label="郫都区" value="郫都区"></el-option> | |
| 38 | - <el-option label="龙泉驿区" value="龙泉驿区"></el-option> | |
| 39 | - <el-option label="温江区" value="温江区"></el-option> | |
| 40 | - </el-select> | |
| 41 | - </el-form-item> | |
| 42 | - <el-form-item label="归属部门" prop="belongingDepartment"> | |
| 43 | - <el-input v-model="ruleForm.belongingDepartment" placeholder="请输入" maxlength="50"> | |
| 44 | - </el-input> | |
| 45 | - </el-form-item> | |
| 46 | - <el-form-item label="负责人" prop="head"> | |
| 47 | - <el-input v-model="ruleForm.head" placeholder="请输入" maxlength="20"> | |
| 48 | - </el-input> | |
| 49 | - </el-form-item> | |
| 50 | - <el-form-item label="联系人" prop="contacts"> | |
| 51 | - <el-input v-model="ruleForm.contacts" placeholder="请输入" maxlength="20"> | |
| 52 | - </el-input> | |
| 53 | - </el-form-item> | |
| 54 | - <el-form-item label="联系方式" prop="telephone"> | |
| 55 | - <el-input v-model="ruleForm.telephone" placeholder="请输入" maxlength="20"> | |
| 56 | - </el-input> | |
| 57 | - </el-form-item> | |
| 58 | 86 | <el-form-item label="详细位置" prop="detailedLocation"> |
| 59 | 87 | <el-input v-model="ruleForm.detailedLocation" placeholder="请输入" maxlength="100"> |
| 60 | 88 | </el-input> |
| 61 | 89 | </el-form-item> |
| 62 | 90 | <el-form-item label="地图标点" prop="mapPunctuation"> |
| 63 | 91 | <div style="width: 100%;height: 300px;"> |
| 64 | - <newmap :lat="lat" :lng="lng" @updatecenter="updatecenter"></newmap> | |
| 92 | + <newmap :isonloed="info.id?true:false" :lat="lat" :lng="lng" @updatecenter="updatecenter"></newmap> | |
| 65 | 93 | </div> |
| 66 | 94 | </el-form-item> |
| 67 | 95 | <el-form-item label="商铺描述" prop="shopDescription"> |
| 68 | 96 | <el-input maxlength="200" show-word-limit rows="4" v-model="ruleForm.shopDescription" placeholder="请输入" |
| 69 | 97 | type="textarea" /> |
| 70 | 98 | </el-form-item> |
| 71 | - <el-form-item label="建筑图纸" prop="architecturalDrawings"> | |
| 72 | - <upimg filePath="sp" inputtype="architecturalDrawings" :value="ruleForm.architecturalDrawings" | |
| 99 | + <el-form-item label="建筑图纸" prop="architecturalDrawings"> | |
| 100 | + <upimg :cmpOption="{disabled:false,isSetCover:false}" filePath="sp" inputtype="architecturalDrawings" :value="ruleForm.architecturalDrawings" | |
| 73 | 101 | @changimg="e=>changimg(e,'architecturalDrawings')"></upimg> |
| 74 | 102 | </el-form-item> |
| 75 | - <el-form-item label="展示主图" prop="displayMainImage"> | |
| 103 | + <el-form-item label="宣传图" prop="displayMainImage"> | |
| 76 | 104 | <upimg filePath="sp" inputtype="displayMainImage" :value="ruleForm.displayMainImage" |
| 77 | 105 | @changimg="e=>changimg(e,'displayMainImage')"></upimg> |
| 78 | 106 | </el-form-item> |
| 107 | + <el-form-item label="其他视频" prop="otherImageVideos"> | |
| 108 | + <upfile filePath="sp" :value="ruleForm.otherImageVideos" :fileType="'.mp4'" @changimg="e=>changimg(e,'otherImageVideos')"></upfile> | |
| 109 | + </el-form-item> | |
| 79 | 110 | <el-row :gutter="20"> |
| 80 | 111 | <el-col :span="12"> |
| 81 | 112 | <el-form-item> |
| ... | ... | @@ -115,10 +146,15 @@ |
| 115 | 146 | MapMark, |
| 116 | 147 | newmap |
| 117 | 148 | }, |
| 149 | + computed: { | |
| 150 | + regionOptions() { | |
| 151 | + return this.$store.state.app.regionOptions; | |
| 152 | + } | |
| 153 | + }, | |
| 118 | 154 | data() { |
| 119 | 155 | return { |
| 120 | - lat:30.67, | |
| 121 | - lng:104.06, | |
| 156 | + lat: 30.67, | |
| 157 | + lng: 104.06, | |
| 122 | 158 | uploadFileUrl: uploadUrl, // 请求地址 |
| 123 | 159 | ruleForm: { |
| 124 | 160 | shopName: '', // 商铺名称 |
| ... | ... | @@ -135,7 +171,7 @@ |
| 135 | 171 | shopDescription: '', // 商铺描述 |
| 136 | 172 | displayMainImage: '', // 展示主图 |
| 137 | 173 | otherImageVideos: '', // 其他图片视频 |
| 138 | - rentalStatus: '', // 租赁状态(0.待租 1.已租) | |
| 174 | + rentalStatus: '', // 租赁状态 | |
| 139 | 175 | publishStatus: '', // 发布状态 |
| 140 | 176 | leaseExpirationDate: '', // 租赁到期时间 |
| 141 | 177 | createDate: '', // 创建时间 |
| ... | ... | @@ -143,12 +179,17 @@ |
| 143 | 179 | updateDate: '', // 修改时间 |
| 144 | 180 | updateUser: '', // 修改人 |
| 145 | 181 | businessNature: '', // 经营性质 |
| 146 | - telephone: '', // 联系方式 | |
| 182 | + telephone: '', // 联系电话 | |
| 147 | 183 | identityCard: '', // 身份证号码 |
| 148 | 184 | belongingGreenwaySection: '', // 所属绿道段 |
| 149 | 185 | belongingParkTrail: '', // 所属公园/步道 |
| 150 | 186 | floorSpace: '', // 建筑面积 |
| 151 | - contractNumber: '' // 合同编号 | |
| 187 | + contractNumber: '', // 合同编号 | |
| 188 | + shopType: '1', // 商铺类型 | |
| 189 | + surveyingArea: '', // 测绘面积 | |
| 190 | + propertyArea: '', // 产权面积 | |
| 191 | + contacts: '', // 联系人 | |
| 192 | + planningDrawings: '' // 规划图纸 | |
| 152 | 193 | }, |
| 153 | 194 | rulesHetong: { |
| 154 | 195 | shopName: [{ |
| ... | ... | @@ -156,46 +197,31 @@ |
| 156 | 197 | message: '请输入商铺名称', |
| 157 | 198 | trigger: 'blur' |
| 158 | 199 | }, ], |
| 159 | - houseNumber: [{ | |
| 200 | + shopType: [{ | |
| 160 | 201 | required: true, |
| 161 | - message: '请输入门牌号', | |
| 202 | + message: '请选择商铺类型', | |
| 162 | 203 | trigger: 'blur' |
| 163 | 204 | }, ], |
| 164 | - architecturalForm: [{ | |
| 165 | - required: true, | |
| 166 | - message: '请选择建筑形式', | |
| 167 | - trigger: 'change' | |
| 168 | - }], | |
| 169 | - actualUsableArea: [{ | |
| 170 | - required: true, | |
| 171 | - message: '请输入实际使用面积', | |
| 172 | - trigger: 'blur' | |
| 173 | - }], | |
| 174 | 205 | belongingRegion: [{ |
| 175 | 206 | required: true, |
| 176 | 207 | message: '请选择所属区域', |
| 177 | 208 | trigger: 'change' |
| 178 | 209 | }], |
| 179 | - head: [{ | |
| 180 | - required: true, | |
| 181 | - message: '请输入负责人', | |
| 182 | - trigger: 'blur' | |
| 183 | - }, ], | |
| 184 | 210 | detailedLocation: [{ |
| 185 | 211 | required: true, |
| 186 | 212 | message: '请输入详细位置', |
| 187 | 213 | trigger: 'blur' |
| 188 | 214 | }, ], |
| 189 | - // displayMainImage: [{ | |
| 190 | - // required: true, | |
| 191 | - // message: '请上传主图', | |
| 192 | - // trigger: 'blur' | |
| 193 | - // }, ], | |
| 194 | - // belongingGreenwaySection: [{ | |
| 195 | - // required: true, | |
| 196 | - // message: '请选择所属绿道段', | |
| 197 | - // trigger: 'change' | |
| 198 | - // }], | |
| 215 | + mapPunctuation: [{ | |
| 216 | + required: true, | |
| 217 | + message: '请选择地图标点', | |
| 218 | + trigger: 'change' | |
| 219 | + }], | |
| 220 | + displayMainImage: [{ | |
| 221 | + required: true, | |
| 222 | + message: '请上传宣传图', | |
| 223 | + trigger: 'change' | |
| 224 | + }] | |
| 199 | 225 | }, |
| 200 | 226 | uploadFiles: [], |
| 201 | 227 | filesLength: 1, |
| ... | ... | @@ -215,14 +241,24 @@ |
| 215 | 241 | console.error(this.info) |
| 216 | 242 | if (this.info.id) { |
| 217 | 243 | this.ruleForm = this.info |
| 218 | - | |
| 244 | + if (this.ruleForm.mapPunctuation) { | |
| 245 | + this.lat = this.ruleForm.mapPunctuation.split(',')[0] | |
| 246 | + this.lng = this.ruleForm.mapPunctuation.split(',')[1] | |
| 247 | + } | |
| 219 | 248 | } |
| 220 | 249 | const lvdao = await lvdaoduan() |
| 221 | 250 | this.lvdaoList = lvdao.data |
| 222 | 251 | }, |
| 223 | 252 | methods: { |
| 253 | + validateNumber(field, value) { | |
| 254 | + // 使用正则表达式确保输入的是数字,并且可以包含最多两位小数 | |
| 255 | + const regex = /^\d+(\.\d{1,2})?$/; | |
| 256 | + if (!regex.test(value)) { | |
| 257 | + this.ruleForm[field] = value.replace(/[^\d.]/g, '').replace(/(\.\d{2}).*$/, '$1'); | |
| 258 | + } | |
| 259 | + }, | |
| 224 | 260 | updatecenter(e) { |
| 225 | - console.error('-----------',e) | |
| 261 | + console.error('-----------', e) | |
| 226 | 262 | this.ruleForm.detailedLocation = e.address |
| 227 | 263 | }, |
| 228 | 264 | changimg(e, type) { |
| ... | ... | @@ -257,15 +293,17 @@ |
| 257 | 293 | console.log({ |
| 258 | 294 | ...this.ruleForm |
| 259 | 295 | }) |
| 296 | + if(this.lat) { | |
| 297 | + this.ruleForm.mapPunctuation = this.lat + ',' + this.lng | |
| 298 | + } | |
| 299 | + | |
| 260 | 300 | // return |
| 261 | 301 | if (this.ruleForm.id) { |
| 262 | 302 | this.$refs.heForm.validate((valid) => { |
| 263 | 303 | console.log(valid) |
| 264 | 304 | if (valid) { |
| 265 | 305 | this.ruleForm.updateDate = this.updateCurrentTime() |
| 266 | - // if (Object.keys(this.mapData).length != 0) { | |
| 267 | - // this.ruleForm.mapPunctuation = JSON.stringify(this.mapData) | |
| 268 | - // } | |
| 306 | + this.ruleForm.updateUser = localStorage.getItem('roleName') | |
| 269 | 307 | editList(this.ruleForm).then(res => { |
| 270 | 308 | if (res.code == 200) { |
| 271 | 309 | this.$message({ |
| ... | ... | @@ -295,9 +333,9 @@ |
| 295 | 333 | console.log(valid) |
| 296 | 334 | if (valid) { |
| 297 | 335 | this.ruleForm.createDate = this.updateCurrentTime() |
| 298 | - this.ruleForm.mapPunctuation = JSON.stringify(this.mapData) | |
| 299 | 336 | this.ruleForm.rentalStatus = 0 |
| 300 | 337 | this.ruleForm.publishStatus = 0 |
| 338 | + this.ruleForm.createUser = localStorage.getItem('roleName') | |
| 301 | 339 | addList(this.ruleForm).then(res => { |
| 302 | 340 | if (res.code == 200) { |
| 303 | 341 | this.$message({ | ... | ... |
admin-web-master/src/components/fujianUpload/fujianList copy.vue
0 → 100644
| 1 | +<template> | |
| 2 | + <el-upload | |
| 3 | + :auto-upload="false" multiple :action="uploadFileUrl" :accept="fileType" :on-change="handleUpload":on-success="handleUploadSuccess" | |
| 4 | + :limit="limit" :on-error="handleUploadError" :on-exceed="handleExceed" :on-remove="handleRemove" :headers="headers" :file-list="fileList" | |
| 5 | + :on-preview="handlePictureCardPreview" :class="{hide: this.fileList.length >= this.limit}"> | |
| 6 | + <el-button v-if="fileList.length < limit" style="background-color: #fff;color: #3F9B6A;border: 1px solid #dcdfe6;" class="buttonHover">+点击上传</el-button> | |
| 7 | + <div v-if="fileList.length < limit" slot="tip" class="el-upload__tip">只能上传{{fileType}}文件,且不超过{{ fileSize }}MB</div> | |
| 8 | + </el-upload> | |
| 9 | +</template> | |
| 10 | +<script> | |
| 11 | + import { | |
| 12 | + miniioupload | |
| 13 | + } from '@/api/commodityLease.js' | |
| 14 | + // import { getAccessToken } from '@/utils/auth' | |
| 15 | + import { | |
| 16 | + uploadUrl | |
| 17 | + } from '@/utils/request' | |
| 18 | + export default { | |
| 19 | + props: { | |
| 20 | + value: [String, Object, Array], | |
| 21 | + // 图片数量限制 | |
| 22 | + limit: { | |
| 23 | + type: Number, | |
| 24 | + default: 1 | |
| 25 | + }, | |
| 26 | + filePath: { | |
| 27 | + type: String, | |
| 28 | + default: 'other' | |
| 29 | + }, | |
| 30 | + // 大小限制(MB) | |
| 31 | + fileSize: { | |
| 32 | + type: Number, | |
| 33 | + default: 5 | |
| 34 | + }, | |
| 35 | + // 文件类型, 例如['png', 'jpg', 'jpeg'] | |
| 36 | + fileType: { | |
| 37 | + type: String, | |
| 38 | + default:'.bmp,.jpg,.jpeg,.png', | |
| 39 | + }, | |
| 40 | + // 是否显示提示 | |
| 41 | + isShowTip: { | |
| 42 | + type: Boolean, | |
| 43 | + default: true | |
| 44 | + } | |
| 45 | + }, | |
| 46 | + data() { | |
| 47 | + return { | |
| 48 | + | |
| 49 | + host: '', | |
| 50 | + number: 0, | |
| 51 | + uploadList: [], | |
| 52 | + dialogImageUrl: '', | |
| 53 | + dialogVisible: false, | |
| 54 | + hideUpload: false, | |
| 55 | + uploadFileUrl: uploadUrl, // 请求地址 | |
| 56 | + headers: { | |
| 57 | + Authorization: '' | |
| 58 | + }, // 设置上传的请求头部 | |
| 59 | + fileList: [], | |
| 60 | + } | |
| 61 | + }, | |
| 62 | + computed: { | |
| 63 | + // 是否显示提示 | |
| 64 | + showTip() { | |
| 65 | + return this.isShowTip && (this.fileType || this.fileSize) | |
| 66 | + } | |
| 67 | + }, | |
| 68 | + watch: { | |
| 69 | + value: { | |
| 70 | + handler(val) { | |
| 71 | + if (val) { | |
| 72 | + // 首先将值转为数组 | |
| 73 | + this.uploadList = [] | |
| 74 | + const list = Array.isArray(val) ? val : this.value.split(',') | |
| 75 | + // 然后将数组转为对象数组 | |
| 76 | + for (const item of list) { | |
| 77 | + if (typeof item === 'string') { | |
| 78 | + let info = { | |
| 79 | + name: this.$baseURL+item, | |
| 80 | + url: this.$baseURL+item | |
| 81 | + } | |
| 82 | + this.uploadList.push(item) | |
| 83 | + this.fileList.push(info) | |
| 84 | + } | |
| 85 | + } | |
| 86 | + } else { | |
| 87 | + this.uploadList = [] | |
| 88 | + this.fileList = [] | |
| 89 | + return [] | |
| 90 | + } | |
| 91 | + }, | |
| 92 | + deep: true, | |
| 93 | + immediate: true | |
| 94 | + } | |
| 95 | + }, | |
| 96 | + methods: { | |
| 97 | + checkFileType(file) { | |
| 98 | + console.error(file) | |
| 99 | + let { | |
| 100 | + accept | |
| 101 | + } = this.options; | |
| 102 | + if (!accept || accept === '*') { | |
| 103 | + return true; | |
| 104 | + } | |
| 105 | + accept = accept.toLowerCase().replace(/\s/g, ''); | |
| 106 | + const acceptTypeList = accept.split(','); | |
| 107 | + const fileType = file.name.match(/\.\w*$/)?.shift() ?? ''; | |
| 108 | + return acceptTypeList.includes(fileType.toLowerCase()); | |
| 109 | + }, | |
| 110 | + checkSize({ | |
| 111 | + size | |
| 112 | + }) { | |
| 113 | + return size <= this.options.limitSize * 1024 * 1024; | |
| 114 | + }, | |
| 115 | + filesCheck(files) { | |
| 116 | + const limit = this.limit; | |
| 117 | + const limitSize = this.fileSize; | |
| 118 | + const accept = this.fileType; | |
| 119 | + if (this.uploadList.length + files.length > limit) { | |
| 120 | + this.$message.error(`最多上传${limit}个文件`); | |
| 121 | + return false; | |
| 122 | + } | |
| 123 | + for (let index = 0; index < files.length; index++) { | |
| 124 | + const file = files[index]; | |
| 125 | + if (!this.checkFileType(file)) { | |
| 126 | + this.$message.error(`请上传${accept}等格式`); | |
| 127 | + return false; | |
| 128 | + } | |
| 129 | + if (!this.checkSize(file)) { | |
| 130 | + this.$message.error(`文件大小不能超过 ${limitSize}MB!`); | |
| 131 | + return false; | |
| 132 | + } | |
| 133 | + } | |
| 134 | + | |
| 135 | + return true; | |
| 136 | + }, | |
| 137 | + handleUpload(response) { | |
| 138 | + // if (!this.filesCheck(response)) { | |
| 139 | + // return; | |
| 140 | + // } | |
| 141 | + // console.error(response) | |
| 142 | + // return | |
| 143 | + let fd = new FormData() | |
| 144 | + fd.append('file', response.raw) | |
| 145 | + fd.append('filePath',this.filePath) | |
| 146 | + miniioupload(fd).then(res => { | |
| 147 | + console.error(res) | |
| 148 | + const fileMsg = { | |
| 149 | + name: response.name, | |
| 150 | + url: this.$baseURL + res.data, | |
| 151 | + } | |
| 152 | + this.fileList.push(fileMsg) | |
| 153 | + this.uploadList.push(res.data) | |
| 154 | + this.$emit('changimg',this.uploadList.join(',')) | |
| 155 | + }) | |
| 156 | + }, | |
| 157 | + // 删除图片 | |
| 158 | + handleRemove(file, fileList) { | |
| 159 | + this.fileList = [] | |
| 160 | + this.uploadList = [] | |
| 161 | + this.$emit('changimg',this.uploadList.join(',')) | |
| 162 | + // const findex = this.fileList.map(f => f.name).indexOf(file.name) | |
| 163 | + // if (findex > -1) { | |
| 164 | + // this.fileList.splice(findex, 1) | |
| 165 | + // this.uploadList.splice(findex, 1) | |
| 166 | + | |
| 167 | + // } | |
| 168 | + }, | |
| 169 | + // 上传成功回调 | |
| 170 | + handleUploadSuccess(res) { | |
| 171 | + this.uploadList.push({ | |
| 172 | + name: res.data.url, | |
| 173 | + url: res.data.url | |
| 174 | + }) | |
| 175 | + console.log(this.uploadList) | |
| 176 | + if (this.uploadList.length === this.number) { | |
| 177 | + this.fileList = this.fileList.concat(this.uploadList) | |
| 178 | + this.uploadList = [] | |
| 179 | + this.number = 0 | |
| 180 | + this.$emit('input', this.listToString(this.fileList)) | |
| 181 | + // this.$modal.closeLoading() | |
| 182 | + } | |
| 183 | + }, | |
| 184 | + // 上传前loading加载 | |
| 185 | + handleBeforeUpload(file) { | |
| 186 | + // let isImg = false | |
| 187 | + // if (this.fileType.length) { | |
| 188 | + // let fileExtension = '' | |
| 189 | + // if (file.name.lastIndexOf('.') > -1) { | |
| 190 | + // fileExtension = file.name.slice(file.name.lastIndexOf('.') + 1) | |
| 191 | + // } | |
| 192 | + // isImg = this.fileType.some(type => { | |
| 193 | + // if (file.type.indexOf(type) > -1) return true | |
| 194 | + // if (fileExtension && fileExtension.indexOf(type) > -1) return true | |
| 195 | + // return false | |
| 196 | + // }) | |
| 197 | + // } else { | |
| 198 | + // isImg = file.type.indexOf('image') > -1 | |
| 199 | + // } | |
| 200 | + | |
| 201 | + // if (!isImg) { | |
| 202 | + // this.$message.error(`文件格式不正确, 请上传${this.fileType.join('/')}图片格式文件!`) | |
| 203 | + // return false | |
| 204 | + // } | |
| 205 | + // if (this.fileSize) { | |
| 206 | + // const isLt = file.size / 1024 / 1024 < this.fileSize | |
| 207 | + // if (!isLt) { | |
| 208 | + // this.$message.error(`上传头像图片大小不能超过 ${this.fileSize} MB!`) | |
| 209 | + // return false | |
| 210 | + // } | |
| 211 | + // } | |
| 212 | + // this.$message.warning('正在上传图片,请稍候...') | |
| 213 | + // this.number++ | |
| 214 | + }, | |
| 215 | + // 文件个数超出 | |
| 216 | + handleExceed() { | |
| 217 | + this.$message.error(`上传文件数量不能超过 ${this.limit} 个!`) | |
| 218 | + }, | |
| 219 | + // 上传失败 | |
| 220 | + handleUploadError() { | |
| 221 | + this.$message.error('上传图片失败,请重试') | |
| 222 | + // this.$modal.closeLoading() | |
| 223 | + }, | |
| 224 | + // 预览 | |
| 225 | + handlePictureCardPreview(file) { | |
| 226 | + this.dialogImageUrl = file.url | |
| 227 | + this.dialogVisible = true | |
| 228 | + }, | |
| 229 | + // 对象转成指定字符串分隔 | |
| 230 | + listToString(list, separator) { | |
| 231 | + let strs = '' | |
| 232 | + separator = separator || ',' | |
| 233 | + for (const i in list) { | |
| 234 | + strs += list[i].url.replace(this.baseUrl, '') + separator | |
| 235 | + } | |
| 236 | + return strs !== '' ? strs.substr(0, strs.length - 1) : '' | |
| 237 | + } | |
| 238 | + } | |
| 239 | + } | |
| 240 | +</script> | |
| 241 | +<style lang="scss" scoped> | |
| 242 | + ::v-deep .el-upload { | |
| 243 | + text-align: left !important; | |
| 244 | + } | |
| 245 | +</style> | |
| 0 | 246 | \ No newline at end of file | ... | ... |
admin-web-master/src/components/fujianUpload/fujianList.vue
| ... | ... | @@ -3,8 +3,15 @@ |
| 3 | 3 | :auto-upload="false" multiple :action="uploadFileUrl" :accept="fileType" :on-change="handleUpload":on-success="handleUploadSuccess" |
| 4 | 4 | :limit="limit" :on-error="handleUploadError" :on-exceed="handleExceed" :on-remove="handleRemove" :headers="headers" :file-list="fileList" |
| 5 | 5 | :on-preview="handlePictureCardPreview" :class="{hide: this.fileList.length >= this.limit}"> |
| 6 | - <el-button v-if="fileList.length < limit" style="background-color: #fff;color: #3F9B6A;border: 1px solid #dcdfe6;" class="buttonHover">+点击上传</el-button> | |
| 7 | - <div v-if="fileList.length < limit" slot="tip" class="el-upload__tip">只能上传{{fileType}}文件,且不超过{{ fileSize }}MB</div> | |
| 6 | + <div style="display: flex;align-items: center;"> | |
| 7 | + <el-button v-if="fileList.length < limit" style="background-color: #fff;color: #000;border: 1px solid #dcdfe6;" class="buttonHover"> | |
| 8 | + <div style="display: flex;align-items: center;"> | |
| 9 | + <img src="@/assets/images/upload.png" style="width: 16px;height: 16px;margin-right: 4px;" alt=""> | |
| 10 | + <span style="">上传附件</span> | |
| 11 | + </div> | |
| 12 | + </el-button> | |
| 13 | + <div v-if="fileList.length < limit" slot="tip" class="tips" style="margin-left: 10px;">不超过{{ fileSize }}MB</div> | |
| 14 | + </div> | |
| 8 | 15 | </el-upload> |
| 9 | 16 | </template> |
| 10 | 17 | <script> |
| ... | ... | @@ -242,4 +249,9 @@ |
| 242 | 249 | ::v-deep .el-upload { |
| 243 | 250 | text-align: left !important; |
| 244 | 251 | } |
| 252 | + .tips { | |
| 253 | + color: #0006; | |
| 254 | + font: 14px 'Alibaba PuHuiTi 2.0-55 Regular'; | |
| 255 | + line-height: 38px; | |
| 256 | + } | |
| 245 | 257 | </style> |
| 246 | 258 | \ No newline at end of file | ... | ... |
admin-web-master/src/components/newmap/index.vue
| ... | ... | @@ -22,6 +22,10 @@ |
| 22 | 22 | type: Number, |
| 23 | 23 | default: 104.06 |
| 24 | 24 | }, |
| 25 | + isonloed:{ | |
| 26 | + type: Boolean, | |
| 27 | + default: false | |
| 28 | + } | |
| 25 | 29 | }, |
| 26 | 30 | data() { |
| 27 | 31 | return { |
| ... | ... | @@ -45,10 +49,18 @@ |
| 45 | 49 | zoom: 13 |
| 46 | 50 | }); |
| 47 | 51 | // 创建标记 |
| 48 | - this.marker = new qq.maps.Marker({ | |
| 49 | - position: centerLatLng, | |
| 50 | - map: this.map | |
| 51 | - }); | |
| 52 | + if(this.isonloed) { | |
| 53 | + this.marker = new qq.maps.Marker({ | |
| 54 | + position: centerLatLng, | |
| 55 | + map: this.map | |
| 56 | + }); | |
| 57 | + } else { | |
| 58 | + this.marker = new qq.maps.Marker({ | |
| 59 | + // position: centerLatLng, | |
| 60 | + map: this.map | |
| 61 | + }); | |
| 62 | + } | |
| 63 | + | |
| 52 | 64 | |
| 53 | 65 | // 添加点击事件监听器 |
| 54 | 66 | // qq.maps.event.addListener(this.marker, 'click', this.onMarkerClick); | ... | ... |
admin-web-master/src/layout/index.vue
| ... | ... | @@ -260,7 +260,7 @@ export default { |
| 260 | 260 | listMune:[], |
| 261 | 261 | list:[ |
| 262 | 262 | // ['招商资源监测','招商租赁管理','系统设置'] |
| 263 | - ['招商资源监测','商家管理','商铺租赁服务','招商方案管理','招商租赁管理'], | |
| 263 | + ['招商资源监测','商家管理','商铺租赁服务','招商方案管理','招商租赁管理','系统设置'], | |
| 264 | 264 | // ['问卷调查'], |
| 265 | 265 | // ['招商资源监测','商家管理','招商方案管理','招商租赁管理','广告服务','客服服务管理','系统设置','商铺租赁服务','问卷调查','招商过程管理','商户寻租管理','轮播图设置','平台活动','客服配置','优惠券管理'], |
| 266 | 266 | // ['品牌策划','活动策划','氛围策划','媒体推广'], |
| ... | ... | @@ -641,7 +641,7 @@ this.listMune[0] = All |
| 641 | 641 | this.listMune = [] |
| 642 | 642 | this.list=[ |
| 643 | 643 | // ['招商资源监测','招商租赁管理','系统设置'] |
| 644 | - ['招商资源监测','商家管理','商铺租赁服务','招商方案管理','招商租赁管理'], | |
| 644 | + ['招商资源监测','商家管理','商铺租赁服务','招商方案管理','招商租赁管理','系统设置'], | |
| 645 | 645 | // ['问卷调查'], |
| 646 | 646 | // ['招商资源监测','商家管理','招商方案管理','招商租赁管理','广告服务','客服服务管理','系统设置','商铺租赁服务','问卷调查','招商过程管理','商户寻租管理','轮播图设置','平台活动','客服配置','优惠券管理'], |
| 647 | 647 | // ['品牌策划','活动策划','氛围策划','媒体推广'], | ... | ... |
admin-web-master/src/main.js
admin-web-master/src/store/modules/app.js
| ... | ... | @@ -6,7 +6,18 @@ const state = { |
| 6 | 6 | opened: false, |
| 7 | 7 | withoutAnimation: true |
| 8 | 8 | }, |
| 9 | - device: 'desktop' | |
| 9 | + device: 'desktop', | |
| 10 | + regionOptions:[ | |
| 11 | + { label: '成华区', value: '成华区' }, | |
| 12 | + { label: '武侯区', value: '武侯区' }, | |
| 13 | + { label: '锦江区', value: '锦江区' }, | |
| 14 | + { label: '青羊区', value: '青羊区' }, | |
| 15 | + { label: '金牛区', value: '金牛区' }, | |
| 16 | + { label: '双流区', value: '双流区' }, | |
| 17 | + { label: '郫都区', value: '郫都区' }, | |
| 18 | + { label: '龙泉驿区', value: '龙泉驿区' }, | |
| 19 | + { label: '温江区', value: '温江区' } | |
| 20 | +] | |
| 10 | 21 | } |
| 11 | 22 | |
| 12 | 23 | const mutations = { | ... | ... |
admin-web-master/src/views/detect/information/index.vue
| ... | ... | @@ -15,15 +15,8 @@ |
| 15 | 15 | </el-form-item> |
| 16 | 16 | <el-form-item label="所属区域" prop="belongingRegion"> |
| 17 | 17 | <el-select v-model="pagequery.belongingRegion" placeholder="请选择" style="width: 168px;margin-right: 15px"> |
| 18 | - <el-option label="成华区" value="成华区"></el-option> | |
| 19 | - <el-option label="武侯区" value="武侯区"></el-option> | |
| 20 | - <el-option label="锦江区" value="锦江区"></el-option> | |
| 21 | - <el-option label="青羊区" value="青羊区"></el-option> | |
| 22 | - <el-option label="金牛区" value="金牛区"></el-option> | |
| 23 | - <el-option label="双流区" value="双流区"></el-option> | |
| 24 | - <el-option label="郫都区" value="郫都区"></el-option> | |
| 25 | - <el-option label="龙泉驿区" value="龙泉驿区"></el-option> | |
| 26 | - <el-option label="温江区" value="温江区"></el-option> | |
| 18 | + <el-option v-for="(item,index) in regionOptions" | |
| 19 | + :key="index" :label="item.label" :value="item.value"></el-option> | |
| 27 | 20 | </el-select> |
| 28 | 21 | </el-form-item> |
| 29 | 22 | <el-form-item label="所属绿道段" prop="belongingGreenwaySection"> |
| ... | ... | @@ -182,11 +175,16 @@ |
| 182 | 175 | }, |
| 183 | 176 | tableData: [], |
| 184 | 177 | total: 0, |
| 185 | - onaction: '2', | |
| 178 | + onaction: '1', | |
| 186 | 179 | formInline: { |
| 187 | 180 | }, |
| 188 | 181 | } |
| 189 | 182 | }, |
| 183 | + computed: { | |
| 184 | + regionOptions() { | |
| 185 | + return this.$store.state.app.regionOptions; | |
| 186 | + } | |
| 187 | + }, | |
| 190 | 188 | components: { |
| 191 | 189 | cl, |
| 192 | 190 | add, | ... | ... |
admin-web-master/src/views/detect/map/index.vue
| ... | ... | @@ -7,15 +7,16 @@ |
| 7 | 7 | </div> |
| 8 | 8 | <!-- 线上 --> |
| 9 | 9 | <div> |
| 10 | - <div style="display: flex;font-size: 14px"> | |
| 11 | - <div style="margin-right: 4px;cursor: pointer;" @click="chenge(1)" :class="leixing?'chengeXia':''">线上</div> | |
| 12 | - ({{xsNum}}) | |
| 13 | - <div style="margin-left: 20px;margin-right: 4px;cursor: pointer;" @click="chenge(2)" | |
| 14 | - :class="leixing?'':'chengeXia'">实体</div>({{xxNum}}) | |
| 10 | + <div style="display: flex;font-size: 14px;" > | |
| 11 | + <div style="margin-right: 4px;cursor: pointer;" @click="chenge(1)" :class="leixing?'chengeXia greens':''">线上({{xsNum}})</div> | |
| 12 | + <div style="margin-left: 20px;margin-right: 4px;cursor: pointer;" @click="chenge(2)" :class="leixing?'':'chengeXia greens'">实体({{xxNum}})</div> | |
| 15 | 13 | </div> |
| 16 | 14 | <!-- 搜索 --> |
| 17 | 15 | <div class="formSearch"> |
| 18 | 16 | <el-form :inline="true" :model="pagequery" style="margin-top: 15px;"> |
| 17 | + <el-form-item label="广告位名称" prop="advertisingName"> | |
| 18 | + <el-input v-model="pagequery.advertisingName" placeholder="请输入" maxlength="50"></el-input> | |
| 19 | + </el-form-item> | |
| 19 | 20 | <el-form-item label="所属端" prop="affiliation" v-if="leixing"> |
| 20 | 21 | <el-select v-model="pagequery.affiliation" placeholder="请选择" style="width: 168px;margin-right: 15px"> |
| 21 | 22 | <el-option label="游客小程序" value="游客小程序" /> |
| ... | ... | @@ -45,7 +46,7 @@ |
| 45 | 46 | <!-- 表格 --> |
| 46 | 47 | |
| 47 | 48 | <el-table :data="tableData" |
| 48 | - :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}"> | |
| 49 | + :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#f5f8f9'}"> | |
| 49 | 50 | <el-table-column label="序号" min-width="80"> |
| 50 | 51 | <template slot-scope="scope"> |
| 51 | 52 | {{scope.$index +1 }} |
| ... | ... | @@ -197,7 +198,7 @@ |
| 197 | 198 | advertisingType: '线上广告位', |
| 198 | 199 | pageNumber: 0, |
| 199 | 200 | pageSize: 10, |
| 200 | - contractName: '' | |
| 201 | + advertisingName:'' | |
| 201 | 202 | }, |
| 202 | 203 | tableData: [], |
| 203 | 204 | total: 0, |
| ... | ... | @@ -406,8 +407,7 @@ |
| 406 | 407 | this.pagequery = { |
| 407 | 408 | pageNumber: 0, |
| 408 | 409 | pageSize: 10, |
| 409 | - dataStatus: '1', | |
| 410 | - contractName: '' | |
| 410 | + advertisingName:'' | |
| 411 | 411 | }, |
| 412 | 412 | this.getAll() |
| 413 | 413 | }, |
| ... | ... | @@ -467,9 +467,7 @@ |
| 467 | 467 | font-size: 14px; |
| 468 | 468 | justify-content: space-between; |
| 469 | 469 | } |
| 470 | - .greens { | |
| 471 | - color: #3F9B6A; | |
| 472 | - } | |
| 470 | + | |
| 473 | 471 | .bg-purple-dark { |
| 474 | 472 | background: #99a9bf; |
| 475 | 473 | } | ... | ... |
admin-web-master/src/views/shopRental/manage/index.vue