Commit 118fc86d2e5fb614b1efd0f66495aaef6c1f6e0b

Authored by wesley88
1 parent 917e96ea

1

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
... ... @@ -19,6 +19,7 @@ import &#39;@/icons&#39; // icon
19 19 import '@/permission' // permission control
20 20 import { env } from 'echarts/lib/export'
21 21  
  22 +
22 23 /**
23 24 * If you don't want to use mock-server
24 25 * you want to use MockJs for mock api
... ...
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
... ... @@ -544,10 +544,5 @@
544 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 548 </style>
... ...