Commit 118fc86d2e5fb614b1efd0f66495aaef6c1f6e0b

Authored by wesley88
1 parent 917e96ea

1

admin-web-master/src/App.vue
@@ -22,7 +22,8 @@ export default { @@ -22,7 +22,8 @@ export default {
22 name: "App", 22 name: "App",
23 data() { 23 data() {
24 return { 24 return {
25 - tipShow: false 25 + tipShow: false,
  26 +
26 }; 27 };
27 }, 28 },
28 created() { 29 created() {
@@ -76,14 +77,16 @@ export default { @@ -76,14 +77,16 @@ export default {
76 .el-pagination.is-background .el-pager li:not(.disabled).active { 77 .el-pagination.is-background .el-pager li:not(.disabled).active {
77 background-color: #3F9B6A; 78 background-color: #3F9B6A;
78 } 79 }
79 - ::v-deep .buttonHover:hover {  
80 - color: #fff !important; 80 + .buttonHover:hover {
  81 + color: #3f9b6a !important;
81 border-color: #c5e1d2 !important; 82 border-color: #c5e1d2 !important;
82 background-color: #ecf5f0 !important; 83 background-color: #ecf5f0 !important;
83 outline: none; 84 outline: none;
84 } 85 }
85 86
86 - 87 + .greens {
  88 + color: #3F9B6A;
  89 + }
87 .font{ 90 .font{
88 font-family: "Alibaba-PuHuiTi-Regular"; 91 font-family: "Alibaba-PuHuiTi-Regular";
89 } 92 }
@@ -157,9 +160,9 @@ export default { @@ -157,9 +160,9 @@ export default {
157 border-color:#3F9B6A; 160 border-color:#3F9B6A;
158 } 161 }
159 .el-button:focus, .el-button:hover{ 162 .el-button:focus, .el-button:hover{
160 - color:#606266; 163 + /* color:#606266;
161 border-color:#DCDFE6; 164 border-color:#DCDFE6;
162 - background-color:#fff; 165 + background-color:#fff; */
163 } 166 }
164 .el-button--primary{ 167 .el-button--primary{
165 background-color:#3F9B6A; 168 background-color:#3F9B6A;
@@ -227,10 +230,7 @@ export default { @@ -227,10 +230,7 @@ export default {
227 font-weight: 400; 230 font-weight: 400;
228 } 231 }
229 .el-button:hover{ 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 .el-upload--picture-card:hover, .el-upload:focus{ 235 .el-upload--picture-card:hover, .el-upload:focus{
236 border-color:#3F9B6A; 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 <template> 1 <template>
2 <div> 2 <div>
3 <el-form :model="ruleForm" :rules="rulesHetong" ref="heForm" label-width="130px" class="demo-ruleForm"> 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 <el-form-item label="详细位置" prop="detailedLocation"> 86 <el-form-item label="详细位置" prop="detailedLocation">
59 <el-input v-model="ruleForm.detailedLocation" placeholder="请输入" maxlength="100"> 87 <el-input v-model="ruleForm.detailedLocation" placeholder="请输入" maxlength="100">
60 </el-input> 88 </el-input>
61 </el-form-item> 89 </el-form-item>
62 <el-form-item label="地图标点" prop="mapPunctuation"> 90 <el-form-item label="地图标点" prop="mapPunctuation">
63 <div style="width: 100%;height: 300px;"> 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 </div> 93 </div>
66 </el-form-item> 94 </el-form-item>
67 <el-form-item label="商铺描述" prop="shopDescription"> 95 <el-form-item label="商铺描述" prop="shopDescription">
68 <el-input maxlength="200" show-word-limit rows="4" v-model="ruleForm.shopDescription" placeholder="请输入" 96 <el-input maxlength="200" show-word-limit rows="4" v-model="ruleForm.shopDescription" placeholder="请输入"
69 type="textarea" /> 97 type="textarea" />
70 </el-form-item> 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 @changimg="e=>changimg(e,'architecturalDrawings')"></upimg> 101 @changimg="e=>changimg(e,'architecturalDrawings')"></upimg>
74 </el-form-item> 102 </el-form-item>
75 - <el-form-item label="展示主图" prop="displayMainImage"> 103 + <el-form-item label="宣传图" prop="displayMainImage">
76 <upimg filePath="sp" inputtype="displayMainImage" :value="ruleForm.displayMainImage" 104 <upimg filePath="sp" inputtype="displayMainImage" :value="ruleForm.displayMainImage"
77 @changimg="e=>changimg(e,'displayMainImage')"></upimg> 105 @changimg="e=>changimg(e,'displayMainImage')"></upimg>
78 </el-form-item> 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 <el-row :gutter="20"> 110 <el-row :gutter="20">
80 <el-col :span="12"> 111 <el-col :span="12">
81 <el-form-item> 112 <el-form-item>
@@ -115,10 +146,15 @@ @@ -115,10 +146,15 @@
115 MapMark, 146 MapMark,
116 newmap 147 newmap
117 }, 148 },
  149 + computed: {
  150 + regionOptions() {
  151 + return this.$store.state.app.regionOptions;
  152 + }
  153 + },
118 data() { 154 data() {
119 return { 155 return {
120 - lat:30.67,  
121 - lng:104.06, 156 + lat: 30.67,
  157 + lng: 104.06,
122 uploadFileUrl: uploadUrl, // 请求地址 158 uploadFileUrl: uploadUrl, // 请求地址
123 ruleForm: { 159 ruleForm: {
124 shopName: '', // 商铺名称 160 shopName: '', // 商铺名称
@@ -135,7 +171,7 @@ @@ -135,7 +171,7 @@
135 shopDescription: '', // 商铺描述 171 shopDescription: '', // 商铺描述
136 displayMainImage: '', // 展示主图 172 displayMainImage: '', // 展示主图
137 otherImageVideos: '', // 其他图片视频 173 otherImageVideos: '', // 其他图片视频
138 - rentalStatus: '', // 租赁状态(0.待租 1.已租) 174 + rentalStatus: '', // 租赁状态
139 publishStatus: '', // 发布状态 175 publishStatus: '', // 发布状态
140 leaseExpirationDate: '', // 租赁到期时间 176 leaseExpirationDate: '', // 租赁到期时间
141 createDate: '', // 创建时间 177 createDate: '', // 创建时间
@@ -143,12 +179,17 @@ @@ -143,12 +179,17 @@
143 updateDate: '', // 修改时间 179 updateDate: '', // 修改时间
144 updateUser: '', // 修改人 180 updateUser: '', // 修改人
145 businessNature: '', // 经营性质 181 businessNature: '', // 经营性质
146 - telephone: '', // 联系方式 182 + telephone: '', // 联系电话
147 identityCard: '', // 身份证号码 183 identityCard: '', // 身份证号码
148 belongingGreenwaySection: '', // 所属绿道段 184 belongingGreenwaySection: '', // 所属绿道段
149 belongingParkTrail: '', // 所属公园/步道 185 belongingParkTrail: '', // 所属公园/步道
150 floorSpace: '', // 建筑面积 186 floorSpace: '', // 建筑面积
151 - contractNumber: '' // 合同编号 187 + contractNumber: '', // 合同编号
  188 + shopType: '1', // 商铺类型
  189 + surveyingArea: '', // 测绘面积
  190 + propertyArea: '', // 产权面积
  191 + contacts: '', // 联系人
  192 + planningDrawings: '' // 规划图纸
152 }, 193 },
153 rulesHetong: { 194 rulesHetong: {
154 shopName: [{ 195 shopName: [{
@@ -156,46 +197,31 @@ @@ -156,46 +197,31 @@
156 message: '请输入商铺名称', 197 message: '请输入商铺名称',
157 trigger: 'blur' 198 trigger: 'blur'
158 }, ], 199 }, ],
159 - houseNumber: [{ 200 + shopType: [{
160 required: true, 201 required: true,
161 - message: '请输入门牌号', 202 + message: '请选择商铺类型',
162 trigger: 'blur' 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 belongingRegion: [{ 205 belongingRegion: [{
175 required: true, 206 required: true,
176 message: '请选择所属区域', 207 message: '请选择所属区域',
177 trigger: 'change' 208 trigger: 'change'
178 }], 209 }],
179 - head: [{  
180 - required: true,  
181 - message: '请输入负责人',  
182 - trigger: 'blur'  
183 - }, ],  
184 detailedLocation: [{ 210 detailedLocation: [{
185 required: true, 211 required: true,
186 message: '请输入详细位置', 212 message: '请输入详细位置',
187 trigger: 'blur' 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 uploadFiles: [], 226 uploadFiles: [],
201 filesLength: 1, 227 filesLength: 1,
@@ -215,14 +241,24 @@ @@ -215,14 +241,24 @@
215 console.error(this.info) 241 console.error(this.info)
216 if (this.info.id) { 242 if (this.info.id) {
217 this.ruleForm = this.info 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 const lvdao = await lvdaoduan() 249 const lvdao = await lvdaoduan()
221 this.lvdaoList = lvdao.data 250 this.lvdaoList = lvdao.data
222 }, 251 },
223 methods: { 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 updatecenter(e) { 260 updatecenter(e) {
225 - console.error('-----------',e) 261 + console.error('-----------', e)
226 this.ruleForm.detailedLocation = e.address 262 this.ruleForm.detailedLocation = e.address
227 }, 263 },
228 changimg(e, type) { 264 changimg(e, type) {
@@ -257,15 +293,17 @@ @@ -257,15 +293,17 @@
257 console.log({ 293 console.log({
258 ...this.ruleForm 294 ...this.ruleForm
259 }) 295 })
  296 + if(this.lat) {
  297 + this.ruleForm.mapPunctuation = this.lat + ',' + this.lng
  298 + }
  299 +
260 // return 300 // return
261 if (this.ruleForm.id) { 301 if (this.ruleForm.id) {
262 this.$refs.heForm.validate((valid) => { 302 this.$refs.heForm.validate((valid) => {
263 console.log(valid) 303 console.log(valid)
264 if (valid) { 304 if (valid) {
265 this.ruleForm.updateDate = this.updateCurrentTime() 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 editList(this.ruleForm).then(res => { 307 editList(this.ruleForm).then(res => {
270 if (res.code == 200) { 308 if (res.code == 200) {
271 this.$message({ 309 this.$message({
@@ -295,9 +333,9 @@ @@ -295,9 +333,9 @@
295 console.log(valid) 333 console.log(valid)
296 if (valid) { 334 if (valid) {
297 this.ruleForm.createDate = this.updateCurrentTime() 335 this.ruleForm.createDate = this.updateCurrentTime()
298 - this.ruleForm.mapPunctuation = JSON.stringify(this.mapData)  
299 this.ruleForm.rentalStatus = 0 336 this.ruleForm.rentalStatus = 0
300 this.ruleForm.publishStatus = 0 337 this.ruleForm.publishStatus = 0
  338 + this.ruleForm.createUser = localStorage.getItem('roleName')
301 addList(this.ruleForm).then(res => { 339 addList(this.ruleForm).then(res => {
302 if (res.code == 200) { 340 if (res.code == 200) {
303 this.$message({ 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 \ No newline at end of file 246 \ No newline at end of file
admin-web-master/src/components/fujianUpload/fujianList.vue
@@ -3,8 +3,15 @@ @@ -3,8 +3,15 @@
3 :auto-upload="false" multiple :action="uploadFileUrl" :accept="fileType" :on-change="handleUpload":on-success="handleUploadSuccess" 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" 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}"> 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 </el-upload> 15 </el-upload>
9 </template> 16 </template>
10 <script> 17 <script>
@@ -242,4 +249,9 @@ @@ -242,4 +249,9 @@
242 ::v-deep .el-upload { 249 ::v-deep .el-upload {
243 text-align: left !important; 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 </style> 257 </style>
246 \ No newline at end of file 258 \ No newline at end of file
admin-web-master/src/components/newmap/index.vue
@@ -22,6 +22,10 @@ @@ -22,6 +22,10 @@
22 type: Number, 22 type: Number,
23 default: 104.06 23 default: 104.06
24 }, 24 },
  25 + isonloed:{
  26 + type: Boolean,
  27 + default: false
  28 + }
25 }, 29 },
26 data() { 30 data() {
27 return { 31 return {
@@ -45,10 +49,18 @@ @@ -45,10 +49,18 @@
45 zoom: 13 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 // qq.maps.event.addListener(this.marker, 'click', this.onMarkerClick); 66 // qq.maps.event.addListener(this.marker, 'click', this.onMarkerClick);
admin-web-master/src/layout/index.vue
@@ -260,7 +260,7 @@ export default { @@ -260,7 +260,7 @@ export default {
260 listMune:[], 260 listMune:[],
261 list:[ 261 list:[
262 // ['招商资源监测','招商租赁管理','系统设置'] 262 // ['招商资源监测','招商租赁管理','系统设置']
263 - ['招商资源监测','商家管理','商铺租赁服务','招商方案管理','招商租赁管理'], 263 + ['招商资源监测','商家管理','商铺租赁服务','招商方案管理','招商租赁管理','系统设置'],
264 // ['问卷调查'], 264 // ['问卷调查'],
265 // ['招商资源监测','商家管理','招商方案管理','招商租赁管理','广告服务','客服服务管理','系统设置','商铺租赁服务','问卷调查','招商过程管理','商户寻租管理','轮播图设置','平台活动','客服配置','优惠券管理'], 265 // ['招商资源监测','商家管理','招商方案管理','招商租赁管理','广告服务','客服服务管理','系统设置','商铺租赁服务','问卷调查','招商过程管理','商户寻租管理','轮播图设置','平台活动','客服配置','优惠券管理'],
266 // ['品牌策划','活动策划','氛围策划','媒体推广'], 266 // ['品牌策划','活动策划','氛围策划','媒体推广'],
@@ -641,7 +641,7 @@ this.listMune[0] = All @@ -641,7 +641,7 @@ this.listMune[0] = All
641 this.listMune = [] 641 this.listMune = []
642 this.list=[ 642 this.list=[
643 // ['招商资源监测','招商租赁管理','系统设置'] 643 // ['招商资源监测','招商租赁管理','系统设置']
644 - ['招商资源监测','商家管理','商铺租赁服务','招商方案管理','招商租赁管理'], 644 + ['招商资源监测','商家管理','商铺租赁服务','招商方案管理','招商租赁管理','系统设置'],
645 // ['问卷调查'], 645 // ['问卷调查'],
646 // ['招商资源监测','商家管理','招商方案管理','招商租赁管理','广告服务','客服服务管理','系统设置','商铺租赁服务','问卷调查','招商过程管理','商户寻租管理','轮播图设置','平台活动','客服配置','优惠券管理'], 646 // ['招商资源监测','商家管理','招商方案管理','招商租赁管理','广告服务','客服服务管理','系统设置','商铺租赁服务','问卷调查','招商过程管理','商户寻租管理','轮播图设置','平台活动','客服配置','优惠券管理'],
647 // ['品牌策划','活动策划','氛围策划','媒体推广'], 647 // ['品牌策划','活动策划','氛围策划','媒体推广'],
admin-web-master/src/main.js
@@ -19,6 +19,7 @@ import &#39;@/icons&#39; // icon @@ -19,6 +19,7 @@ import &#39;@/icons&#39; // icon
19 import '@/permission' // permission control 19 import '@/permission' // permission control
20 import { env } from 'echarts/lib/export' 20 import { env } from 'echarts/lib/export'
21 21
  22 +
22 /** 23 /**
23 * If you don't want to use mock-server 24 * If you don't want to use mock-server
24 * you want to use MockJs for mock api 25 * you want to use MockJs for mock api
admin-web-master/src/store/modules/app.js
@@ -6,7 +6,18 @@ const state = { @@ -6,7 +6,18 @@ const state = {
6 opened: false, 6 opened: false,
7 withoutAnimation: true 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 const mutations = { 23 const mutations = {
admin-web-master/src/views/detect/information/index.vue
@@ -15,15 +15,8 @@ @@ -15,15 +15,8 @@
15 </el-form-item> 15 </el-form-item>
16 <el-form-item label="所属区域" prop="belongingRegion"> 16 <el-form-item label="所属区域" prop="belongingRegion">
17 <el-select v-model="pagequery.belongingRegion" placeholder="请选择" style="width: 168px;margin-right: 15px"> 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 </el-select> 20 </el-select>
28 </el-form-item> 21 </el-form-item>
29 <el-form-item label="所属绿道段" prop="belongingGreenwaySection"> 22 <el-form-item label="所属绿道段" prop="belongingGreenwaySection">
@@ -182,11 +175,16 @@ @@ -182,11 +175,16 @@
182 }, 175 },
183 tableData: [], 176 tableData: [],
184 total: 0, 177 total: 0,
185 - onaction: '2', 178 + onaction: '1',
186 formInline: { 179 formInline: {
187 }, 180 },
188 } 181 }
189 }, 182 },
  183 + computed: {
  184 + regionOptions() {
  185 + return this.$store.state.app.regionOptions;
  186 + }
  187 + },
190 components: { 188 components: {
191 cl, 189 cl,
192 add, 190 add,
admin-web-master/src/views/detect/map/index.vue
@@ -7,15 +7,16 @@ @@ -7,15 +7,16 @@
7 </div> 7 </div>
8 <!-- 线上 --> 8 <!-- 线上 -->
9 <div> 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 </div> 13 </div>
16 <!-- 搜索 --> 14 <!-- 搜索 -->
17 <div class="formSearch"> 15 <div class="formSearch">
18 <el-form :inline="true" :model="pagequery" style="margin-top: 15px;"> 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 <el-form-item label="所属端" prop="affiliation" v-if="leixing"> 20 <el-form-item label="所属端" prop="affiliation" v-if="leixing">
20 <el-select v-model="pagequery.affiliation" placeholder="请选择" style="width: 168px;margin-right: 15px"> 21 <el-select v-model="pagequery.affiliation" placeholder="请选择" style="width: 168px;margin-right: 15px">
21 <el-option label="游客小程序" value="游客小程序" /> 22 <el-option label="游客小程序" value="游客小程序" />
@@ -45,7 +46,7 @@ @@ -45,7 +46,7 @@
45 <!-- 表格 --> 46 <!-- 表格 -->
46 47
47 <el-table :data="tableData" 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 <el-table-column label="序号" min-width="80"> 50 <el-table-column label="序号" min-width="80">
50 <template slot-scope="scope"> 51 <template slot-scope="scope">
51 {{scope.$index +1 }} 52 {{scope.$index +1 }}
@@ -197,7 +198,7 @@ @@ -197,7 +198,7 @@
197 advertisingType: '线上广告位', 198 advertisingType: '线上广告位',
198 pageNumber: 0, 199 pageNumber: 0,
199 pageSize: 10, 200 pageSize: 10,
200 - contractName: '' 201 + advertisingName:''
201 }, 202 },
202 tableData: [], 203 tableData: [],
203 total: 0, 204 total: 0,
@@ -406,8 +407,7 @@ @@ -406,8 +407,7 @@
406 this.pagequery = { 407 this.pagequery = {
407 pageNumber: 0, 408 pageNumber: 0,
408 pageSize: 10, 409 pageSize: 10,
409 - dataStatus: '1',  
410 - contractName: '' 410 + advertisingName:''
411 }, 411 },
412 this.getAll() 412 this.getAll()
413 }, 413 },
@@ -467,9 +467,7 @@ @@ -467,9 +467,7 @@
467 font-size: 14px; 467 font-size: 14px;
468 justify-content: space-between; 468 justify-content: space-between;
469 } 469 }
470 - .greens {  
471 - color: #3F9B6A;  
472 - } 470 +
473 .bg-purple-dark { 471 .bg-purple-dark {
474 background: #99a9bf; 472 background: #99a9bf;
475 } 473 }
admin-web-master/src/views/shopRental/manage/index.vue
@@ -544,10 +544,5 @@ @@ -544,10 +544,5 @@
544 padding: 0 0 !important; 544 padding: 0 0 !important;
545 } 545 }
546 546
547 - ::v-deep .buttonHover:hover {  
548 - color: #3f9b6a !important;  
549 - border-color: #c5e1d2 !important;  
550 - background-color: #ecf5f0 !important;  
551 - outline: none;  
552 - } 547 +
553 </style> 548 </style>