Commit 56d4ba28b6da2e82784c2f7de8ba901ff3566593

Authored by 杨鑫
2 parents 29cad55a 091b75ed

Merge branch 'master' of http://39.98.150.180/webapp/GreenwayWeb

Showing 33 changed files with 4608 additions and 1864 deletions
admin-web-master/.env.development
... ... @@ -6,7 +6,7 @@ VUE_APP_BASE_API = '/dev-api'
6 6  
7 7 # VUE_APP_DOMAIN_PREFIX_1 = "https://zhld.028wlkj.com:49008/cdwlMall/admin-server"
8 8 # VUE_APP_DOMAIN_PREFIX_1 = "https://jy.scjysm.asia:18086/cdwlMall/atmosphere/atmosphereSp"
9   -VUE_APP_DOMAIN_PREFIX_1='http://8.130.38.56:9003'
  9 +VUE_APP_DOMAIN_PREFIX_1='http://172.16.61.125:9003'
10 10 # VUE_APP_DOMAIN_PREFIX_1='http://172.16.61.245:49013'
11 11 # VUE_APP_DOMAIN_PREFIX_2='http://192.168.2.38:9003'
12 12 VUE_APP_DOMAIN_PREFIX_2='https://zhld.028wlkj.com:49008/cdwlMall/business-server'
13 13 \ No newline at end of file
... ...
admin-web-master/.env.production
... ... @@ -5,7 +5,7 @@ ENV = 'production'
5 5 VUE_APP_BASE_API = '/prod-api'
6 6 # VUE_APP_DOMAIN_PREFIX_1 = "http://zhld.028wlkj.com:49008/cdwlMall/admin-server"
7 7 # VUE_APP_DOMAIN_PREFIX_1 = "https://jy.scjysm.asia:18086/cdwlMall/atmosphere/atmosphereSp"
8   -VUE_APP_DOMAIN_PREFIX_1='http://8.130.38.56:9003'
  8 +VUE_APP_DOMAIN_PREFIX_1='http://172.16.61.125:9003'
9 9 # VUE_APP_DOMAIN_PREFIX_1='http://172.16.61.124:9003'
10 10 # VUE_APP_DOMAIN_PREFIX_2='http://192.168.2.38:9003'
11 11 VUE_APP_DOMAIN_PREFIX_2='https://zhld.028wlkj.com:49008/cdwlMall/business-server'
... ...
admin-web-master/dist.zip
No preview for this file type
admin-web-master/src/components/ImageUpload/index.vue
... ... @@ -26,7 +26,7 @@
26 26 </div>
27 27 </div>
28 28 <div style="position: relative;">
29   - <input style="opacity: 0;position: absolute;" :id="inputtype" ref="fileInput" type="file" :multiple="true"
  29 + <input :accept="options.accept" style="opacity: 0;position: absolute;" :id="inputtype" ref="fileInput" type="file" :multiple="true"
30 30 @change="handleUploadFile" />
31 31 <div v-if="
32 32 localValue && localValue.length < options.limit && !options.disabled
... ... @@ -247,6 +247,7 @@
247 247 this.fileList.push(this.localValue[i].address)
248 248 }
249 249 let urlstr = this.fileList.join(',')
  250 + console.error(urlstr)
250 251 this.$emit('changimg',urlstr)
251 252 },
252 253 async handleSetCover(file, i) {
... ...
admin-web-master/src/components/add/addMarkActivity.vue 0 → 100644
  1 +<template>
  2 + <div>
  3 + <el-form :model="formInline" :rules="rules" ref="heForm" label-width="130px" class="demo-ruleForm">
  4 + <el-form-item label="营销活动标题" prop="title">
  5 + <el-input placeholder="请输入" v-model="formInline.title"></el-input>
  6 + </el-form-item>
  7 + <el-form-item label="内容" prop="content" tyle="width: 100%;">
  8 + <wang-editor v-model="formInline.content" ref="editor" :height="200"></wang-editor>
  9 + </el-form-item>
  10 + <el-row :gutter="20">
  11 + <el-col :span="24">
  12 + <el-form-item label="场地" prop="shopNumber">
  13 + <div style="border: 1px solid #E5E5E5;padding: 1px" id="huodong">
  14 + <div
  15 + style="font-size: 14px;border-bottom: 1px solid #E5E5E5;display: flex;justify-content: space-between;line-height:20px;background:#F2F3F5;">
  16 + <div style="padding:10px;">场地选择</div>
  17 + <div v-if="AddData.length != 1" style="color: #3F9B6A;padding:10px;" @click="mingShow">
  18 + 添加
  19 + </div>
  20 + </div>
  21 + <div style="padding: 15px;">
  22 + <div style="padding: 0px 20px 0px 0px">
  23 + <el-table :data="AddData"
  24 + :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}">
  25 + <el-table-column label="序号" min-width="5%">
  26 + <template slot-scope="scope">
  27 + {{scope.$index + 1}}
  28 + </template>
  29 + </el-table-column>
  30 + <el-table-column label="资源名称" min-width="20%" show-overflow-tooltip>
  31 + <template slot-scope="scope">
  32 + {{scope.row.shopName ? scope.row.shopName : scope.row.advertisingName?scope.row.advertisingName:scope.row.venueName}}
  33 + </template>
  34 + </el-table-column>
  35 + <el-table-column label="资源类型" min-width="10%">
  36 + <template slot-scope="scope">
  37 + {{scope.row.shopName ? '商铺' : scope.row.advertisingType?scope.row.advertisingType:'场地'}}
  38 + </template>
  39 + </el-table-column>
  40 +
  41 + <el-table-column label="详细地址" min-width="20%">
  42 + <template slot-scope="scope">
  43 + {{scope.row.detailedLocation}}
  44 + </template>
  45 + </el-table-column>
  46 +
  47 + <el-table-column prop="notes" label="实际使用面积" min-width="25%">
  48 + <template slot-scope="scope">
  49 + {{scope.row.actualArea ? scope.row.actualArea : scope.row.actualUsableArea?scope.row.actualUsableArea:'-'}}
  50 + </template>
  51 +
  52 + </el-table-column>
  53 +
  54 + <el-table-column label="操作" min-width="15%">
  55 + <template slot-scope="scope">
  56 + <div @click="MingDelete(scope.$index)" class="tableBtn greens">删除</div>
  57 + </template>
  58 + </el-table-column>
  59 + </el-table>
  60 + </div>
  61 + </div>
  62 + </div>
  63 + </el-form-item>
  64 + </el-col>
  65 + </el-row>
  66 + <el-form-item label="起止时间" prop="content">
  67 + <el-date-picker style="width: 50%;" v-model="plan_Time" value-format="yyyy-MM-dd HH:mm:ss"
  68 + type="datetimerange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" align="right">
  69 + </el-date-picker>
  70 + </el-form-item>
  71 + <el-form-item label="联系人" prop="contactPerson">
  72 + <el-input placeholder="请输入" v-model="formInline.contactPerson"></el-input>
  73 + </el-form-item>
  74 + <el-form-item label="联系电话" prop="contactPhone">
  75 + <el-input placeholder="请输入" v-model="formInline.contactPhone"></el-input>
  76 + </el-form-item>
  77 + <el-form-item label="封面图片">
  78 + <upimg :cmpOption="{disabled:false,isSetCover:false}" filePath="ys" inputtype="coverImage" :value="formInline.coverImage"
  79 + @changimg="e=>changimg(e,'coverImage')"></upimg>
  80 + </el-form-item>
  81 + <el-row :gutter="20">
  82 + <el-col :span="12">
  83 + <el-form-item>
  84 + <div style="margin-top: 20px">
  85 + <el-button @click="add()" style="background-color: #3F9B6A;color: #fff;">确定</el-button>
  86 + <el-button @click="close()" class="buttonHover"
  87 + style="color: #606266;border: 1px solid #DBDBDB;background-color: #fff;">取消</el-button>
  88 + </div>
  89 + </el-form-item>
  90 + </el-col>
  91 + </el-row>
  92 + </el-form>
  93 + <el-dialog :visible.sync="addMing" title="选择资源" width="65%" append-to-body center
  94 + :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false">
  95 + <zy v-if="addMing" @minSev="minSev" @mingClose="mingClose"></zy>
  96 + </el-dialog>
  97 + </div>
  98 +</template>
  99 +
  100 +<script>
  101 + import zy from '@/components/change/zy.vue'
  102 + import {
  103 + businessListGetAll,
  104 + } from '@/api/business'
  105 + import upimg from "@/components/ImageUpload/index"
  106 + import wangEditor from "@/components/editor/index";
  107 + import {
  108 + uploadUrl
  109 + } from '@/utils/request'
  110 + import {
  111 + getAlls,
  112 + changAlls
  113 + } from '@/api/information.js'
  114 + import {
  115 + getAlls as map1
  116 + } from '@/api/map1.js'
  117 + import {
  118 + miniioupload
  119 + } from '@/api/commodityLease.js'
  120 + import {
  121 +
  122 + contractinsertAdd
  123 + } from '@/api/manage.js'
  124 + import {
  125 + cerePlatformMerchant
  126 + } from '@/api/newly.js'
  127 + import {
  128 + MarkGetAll,
  129 + MarkAdd,
  130 + MarkEdit,
  131 + MarkDel,
  132 + QRcode,
  133 + Registration
  134 + } from '@/api/MarkActivity.js'
  135 + export default {
  136 + components: {
  137 + zy,
  138 + upimg,
  139 + wangEditor
  140 + },
  141 + data() {
  142 + return {
  143 + AddData: [], //最后资源
  144 + multipleSelection: [], //资源
  145 + addMing: false,
  146 + ziyuanData: [],
  147 + shopId: null,
  148 + hefuData: [], //合同附件
  149 + uploadFileUrl: uploadUrl, // 请求地址
  150 + shopList: [],
  151 + plan_Time: [],
  152 + formInline: {
  153 + title: '',
  154 + content: '',
  155 + venue: '',
  156 + contactPerson: '',
  157 + contactPhone: '',
  158 + coverImage: '',
  159 + registeredCount: '',
  160 + },
  161 + rules: {
  162 + title: [{
  163 + required: true,
  164 + message: '请选择合同类型',
  165 + trigger: 'change'
  166 + }],
  167 + content: [{
  168 + required: true,
  169 + message: '请输入合同编号',
  170 + trigger: 'blur'
  171 + }],
  172 + venue: [{
  173 + required: true,
  174 + message: '请输入标段号',
  175 + trigger: 'blur'
  176 + }],
  177 + contactPerson: [{
  178 + required: true,
  179 + message: '请输入合同名称',
  180 + trigger: 'blur'
  181 + }],
  182 + contactPhone: [{
  183 + required: true,
  184 + message: '请输入押金',
  185 + trigger: 'blur'
  186 + }],
  187 + coverImage: [{
  188 + required: true,
  189 + message: '请选择签订日期',
  190 + trigger: 'change'
  191 + }],
  192 + registeredCount: [{
  193 + required: true,
  194 + message: '请选择终止日期',
  195 + trigger: 'change'
  196 + }]
  197 + },
  198 + shopfrom: {
  199 + checkState:'2',
  200 + pageNumber: 0,
  201 + pageSize: 1000,
  202 + },
  203 + pageindex: {
  204 + pageNumber: 0,
  205 + pageSize: 20,
  206 + },
  207 + baseURL: 'http://192.168.2.38:9003',
  208 + uploadFiles: [],
  209 + filesLength: 1
  210 + };
  211 + },
  212 + props: {
  213 + info: {
  214 + type: Object,
  215 + default: {}
  216 + }
  217 + },
  218 + created() {
  219 + cerePlatformMerchant(this.shopfrom).then(res => {
  220 + this.shopList = res.data.content
  221 + console.error(this.shopList)
  222 + })
  223 + },
  224 + methods: {
  225 + changimg(e, type) {
  226 + this.formInline[type] = e
  227 + console.error(this.ruleForm[type])
  228 + },
  229 + add() {
  230 +
  231 + if (this.formInline.id) {
  232 + } else {
  233 + this.$refs.heForm.validate((valid) => {
  234 + console.log(valid)
  235 + if (valid) {
  236 + MarkAdd({
  237 + ...this.formInline
  238 + }).then(res => {
  239 + console.error(res)
  240 + if (res.code == 200) {
  241 + this.$message({
  242 + message: '添加成功',
  243 + type: 'success'
  244 + })
  245 + this.$emit('removeonaction', '1')
  246 + } else {
  247 + this.$message({
  248 + message: res.msg,
  249 + type: 'error'
  250 + })
  251 + }
  252 +
  253 + })
  254 + } else {
  255 + this.$message({
  256 + message: '请填写完整信息',
  257 + type: 'error'
  258 + })
  259 + return false;
  260 + }
  261 + })
  262 +
  263 + }
  264 + },
  265 + close() {
  266 + this.$emit('removeonaction', '1')
  267 + },
  268 + MingDelete(item) {
  269 + this.AddData.splice(item, 1);
  270 + },
  271 + async mingShow() {
  272 + const ziyuan = await getAlls(this.pageindex)
  273 + const ggw = await map1(this.pageindex)
  274 + const changdi = await changAlls(this.pageindex)
  275 + this.ziyuanData = [...ziyuan.data.content, ...ggw.data.content, ...changdi.data.content]
  276 + console.error(this.ziyuanData)
  277 + this.addMing = true
  278 + },
  279 + handleSelectionChange(selection) {
  280 + // 处理选择变化的逻辑
  281 + console.error(selection)
  282 + this.multipleSelection= []
  283 + this.multipleSelection.push(selection)
  284 + },
  285 + minSev() {
  286 + // this.AddData = this.multipleSelection
  287 + const filteredAddData = this.AddData.filter(itemAdd => {
  288 + // 使用 some 方法检查 this.multipleSelection 中是否存在具有相同 id 的元素
  289 + return !this.multipleSelection.some(itemMultiple => itemMultiple.id === itemAdd.id);
  290 + });
  291 + this.AddData = filteredAddData.concat(this.multipleSelection)
  292 + this.addMing = false
  293 + this.multipleSelection = []
  294 +
  295 + },
  296 + mingClose() {
  297 + this.multipleSelection = []
  298 + this.ziyuanData = []
  299 + this.addMing = false
  300 + },
  301 + changeRelatedMerchants(e) {
  302 + console.error(e)
  303 + this.shopId = this.shopList[e].id
  304 + this.formInline.tenantName = this.shopList[e].name
  305 + this.formInline.tenantTelephone = this.shopList[e].phone
  306 + },
  307 + hefuRemove() {
  308 + this.hefuData = []
  309 + },
  310 + hefuSuccess(response, file, fileList) {
  311 + this.hefuData = []
  312 + console.error(response)
  313 + let fd = new FormData()
  314 + fd.append('file', response.raw)
  315 + fd.append('filePath', 'hetong')
  316 + miniioupload(fd).then(res => {
  317 + console.error(res)
  318 + const fileMsg = {
  319 + name: response.name,
  320 + url: res.data,
  321 + }
  322 + this.hefuData.push(fileMsg)
  323 + })
  324 + },
  325 +
  326 +
  327 + },
  328 + };
  329 +</script>
  330 +<style lang="css">
  331 + .el-upload {
  332 + display: block;
  333 + text-align: left;
  334 + }
  335 +
  336 + .el-dialog__header {
  337 + background-color: #F2F3F5;
  338 + text-align: left;
  339 + }
  340 +
  341 + .el-dialog__title {
  342 + line-height: 30px;
  343 + font-size: 15px;
  344 + color: #303133;
  345 + }
  346 +</style>
  347 +<style lang="scss" scoped>
  348 + ::v-deep .el-dialog__body {
  349 + padding: 0 0 !important;
  350 + }
  351 + .el-dialog__header{
  352 + padding: 0;
  353 + display: none;
  354 + }
  355 +</style>
  356 +
... ...
admin-web-master/src/components/add/addcd copy.vue 0 → 100644
  1 +<template>
  2 + <div>
  3 + <el-form :model="ruleForm" :rules="rulesSt" ref="ruleForm" label-width="130px"
  4 + class="demo-ruleForm">
  5 + <el-row :gutter="20">
  6 + <el-col :span="12">
  7 + <el-form-item label="场地名称" prop="venueName">
  8 + <el-input v-model="ruleForm.venueName" placeholder="请输入" style="margin-top:5px;" maxlength="50"></el-input>
  9 + </el-form-item>
  10 + </el-col>
  11 + <el-col :span="12">
  12 + <el-form-item label="场地类型" prop="venueType">
  13 + <el-select v-model="ruleForm.venueType" placeholder="请选择" style="margin-top:5px;width: 100%;">
  14 + <el-option label="草地" value="草地"></el-option>
  15 + </el-select>
  16 + </el-form-item>
  17 + </el-col>
  18 +
  19 + </el-row>
  20 + <el-row :gutter="20">
  21 + <el-col :span="12">
  22 + <el-form-item label="实际使用面积" prop="actualArea">
  23 + <el-input v-model="ruleForm.actualArea" placeholder="请输入" style="margin-top:5px;">
  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="district">
  30 + <el-select v-model="ruleForm.district" placeholder="请选择" style="margin-top:5px;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-col>
  43 + </el-row>
  44 + <el-row :gutter="20">
  45 + <el-col :span="12">
  46 + <el-form-item label="归属部门" prop="department">
  47 + <el-input v-model="ruleForm.department" placeholder="请输入" style="margin-top:5px;" maxlength="50">
  48 + </el-input>
  49 + </el-form-item>
  50 + </el-col>
  51 + <el-col :span="12">
  52 + <el-form-item label="负责人" prop="responsiblePerson">
  53 + <el-input v-model="ruleForm.responsiblePerson" placeholder="请输入" style="margin-top:5px;" maxlength="20">
  54 + </el-input>
  55 + </el-form-item>
  56 + </el-col>
  57 + </el-row>
  58 +
  59 + <el-row :gutter="20">
  60 + <el-col :span="12">
  61 + <el-form-item label="详细位置" prop="detailedLocation">
  62 + <el-input v-model="ruleForm.detailedLocation" placeholder="请输入" style="margin-top:5px;" maxlength="100">
  63 + </el-input>
  64 + </el-form-item>
  65 + </el-col>
  66 + </el-row>
  67 + <el-row :gutter="20">
  68 + <el-col :span="24">
  69 + <el-form-item label="地图标点" prop="mapMarker">
  70 + <div style="width: 100%;height: 300px;border: 1px solid #3F9B6A;" >
  71 + <MapMark :sendChildDate="getChildDate" ref="mapComponent"></MapMark>
  72 + </div>
  73 + </el-form-item>
  74 + </el-col>
  75 + </el-row>
  76 + <el-form-item label="规划图纸" prop="planningDrawing">
  77 + <upimg filePath="cd" inputtype="planningDrawing" :value="ruleForm.planningDrawing" @changimg="e=>changimg(e,'planningDrawing')"></upimg>
  78 + <!-- <upimg filePath="cd" :value="ruleForm.planningDrawing" @changimg="e=>changimg(e,'planningDrawing')" :limit="5" :fileSize="1"></upimg> -->
  79 + </el-form-item>
  80 + <el-form-item label="场地描述" prop="description">
  81 + <el-input type="textarea" v-model="ruleForm.description" style="margin-top:5px;"
  82 + placeholder="请输入" maxlength="200"></el-input>
  83 + </el-form-item>
  84 + <el-form-item label="展示主图" prop="displayImage">
  85 + <upimg filePath="cd" inputtype="displayImage" :value="ruleForm.displayImage" @changimg="e=>changimg(e,'displayImage')"></upimg>
  86 + <!-- <upimg filePath="cd" :value="ruleForm.displayImage" @changimg="e=>changimg(e,'displayImage')" :limit="1" :fileSize="1"></upimg> -->
  87 + </el-form-item>
  88 + <el-form-item label="其他视频" prop="otherImageVideos">
  89 + <upfile filePath="cd" :value="ruleForm.otherImageVideos" :fileType="'.mp4'" @changimg="e=>changimg(e,'otherImageVideos')"></upfile>
  90 + </el-form-item>
  91 + <el-row :gutter="20">
  92 + <el-col :span="12">
  93 + <el-form-item>
  94 + <div style="margin-top: 20px">
  95 + <el-button @click="add()" style="background-color: #3F9B6A;color: #fff;">确定</el-button>
  96 + <el-button @click="close()" class="buttonHover"
  97 + style="color: #606266;border: 1px solid #DBDBDB;background-color: #fff;">取消</el-button>
  98 + </div>
  99 + </el-form-item>
  100 + </el-col>
  101 + </el-row>
  102 + </el-form>
  103 + </div>
  104 +</template>
  105 +
  106 +<script>
  107 + import MapMark from "@/components/MapContainer/MapMark";
  108 + import upimg from "@/components/ImageUpload/index"
  109 + import upfile from "@/components/fujianUpload/fujianList"
  110 + import {
  111 + uploadUrl
  112 + } from '@/utils/request'
  113 + import {
  114 + miniioupload
  115 + } from '../../api/commodityLease.js'
  116 + import {
  117 + gongyuan,
  118 + lvdaoduan,
  119 + addList,
  120 + editList
  121 + } from '../../api/map1.js';
  122 + import {
  123 + changadd,
  124 + changedit
  125 + } from '../../api/information'
  126 + export default {
  127 + components: {
  128 + upimg,
  129 + MapMark,
  130 + upfile
  131 + },
  132 + data() {
  133 + return {
  134 + ontype:'线上广告位',
  135 + typelist:[
  136 + {
  137 + name:'线上广告位',
  138 + vaule:'线上广告位'
  139 + },
  140 + {
  141 + name:'实体广告位',
  142 + vaule:'实体广告位'
  143 + },
  144 + ],
  145 + //地图标点的经纬度
  146 + mapData: {},
  147 + uploadFileUrl: uploadUrl, // 请求地址
  148 + ruleForm: {
  149 + venueName: '',
  150 + venueType: '',
  151 + actualArea: '',
  152 + district: '',
  153 + department: '',
  154 + responsiblePerson: '',
  155 + detailedLocation: '',//详细位置
  156 + mapMarker: '',//地图标点
  157 + description: '',//场地描述
  158 + planningDrawing: '',//规划图纸
  159 + displayImage: '',//展示主图
  160 + otherMedia: '', //其他图片视频
  161 + },
  162 + rulesSt: {
  163 + venueName: [{
  164 + required: true,
  165 + message: '请输入场地名称',
  166 + trigger: 'blur'
  167 + }, ],
  168 + venueType: [{
  169 + required: true,
  170 + message: '请选择场地类型',
  171 + trigger: 'change'
  172 + }, ],
  173 + actualArea: [{
  174 + required: true,
  175 + message: '请输入实际使用面积',
  176 + trigger: 'blur'
  177 + }, ],
  178 + district: [{
  179 + required: true,
  180 + message: '请选择所属区域',
  181 + trigger: 'change'
  182 + }],
  183 + detailedLocation: [{
  184 + required: true,
  185 + message: '请输入详细位置',
  186 + trigger: 'blur'
  187 + }, ]
  188 + },
  189 + uploadFiles: [],
  190 + filesLength: 1,
  191 + gongyuanList: [],
  192 + fileData: [],
  193 + parentMessage: {},
  194 + edit: true
  195 + };
  196 + },
  197 + props: {
  198 + info: {
  199 + type: Object,
  200 + default: {}
  201 + },
  202 +
  203 + },
  204 + async created() {
  205 + if (this.info && this.info.id) {
  206 + this.ruleForm = this.info
  207 +
  208 + } else {
  209 +
  210 + }
  211 + },
  212 + methods: {
  213 + changimg(e,type) {
  214 + this.ruleForm[type] = e
  215 + },
  216 + changeadvertisingType(e){
  217 + console.error(e)
  218 + this.ontype = e
  219 + },
  220 + //获取当前时间
  221 + updateCurrentTime() {
  222 + const now = new Date();
  223 + const year = now.getFullYear();
  224 + const month = (now.getMonth() + 1).toString().padStart(2, '0');
  225 + const day = now.getDate().toString().padStart(2, '0');
  226 + const hours = now.getHours().toString().padStart(2, '0');
  227 + const minutes = now.getMinutes().toString().padStart(2, '0');
  228 + const seconds = now.getSeconds().toString().padStart(2, '0');
  229 +
  230 + return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
  231 + },
  232 + //获取地图点击的经纬度
  233 + getChildDate(mapData) {
  234 + this.mapData = mapData
  235 +
  236 + },
  237 + lvdaoSel(vaule) {
  238 + this.ruleForm.belongingParkTrail = ''
  239 + this.gongyuan(vaule)
  240 + },
  241 + async gongyuan(value) {
  242 + const gongyaun = await gongyuan()
  243 + this.gongyuanList = gongyaun.data.filter(item => item.superior == value);
  244 + },
  245 + add() {
  246 +
  247 + if (this.ruleForm.id) {
  248 + this.$refs.ruleForm.validate((valid) => {
  249 + console.log(valid)
  250 + if (valid) {
  251 + this.ruleForm.updateDate = this.updateCurrentTime()
  252 + if (this.fileData.length != 0) {
  253 + this.ruleForm.otherImageVideos = this.fileData[0].url
  254 + }
  255 + this.ruleForm.mapMarker = JSON.stringify(this.mapData)
  256 + changedit(this.ruleForm).then(res => {
  257 + if (res.code == 200) {
  258 + this.$message({
  259 + message: '修改成功',
  260 + type: 'success'
  261 + })
  262 + this.$emit('removeonaction', '1')
  263 + } else {
  264 + this.$message({
  265 + message: res.msg,
  266 + type: 'error'
  267 + })
  268 + }
  269 + })
  270 + } else {
  271 + this.$message({
  272 + message: '请填写完整信息',
  273 + type: 'error'
  274 + })
  275 + return false;
  276 + }
  277 +
  278 +
  279 + })
  280 + } else {
  281 + this.$refs.ruleForm.validate((valid) => {
  282 + console.log(valid)
  283 + if (valid) {
  284 + if (this.fileData.length != 0) {
  285 + this.ruleForm.otherImageVideos = this.fileData[0].url
  286 + }
  287 + this.ruleForm.createDate = this.updateCurrentTime()
  288 + this.ruleForm.mapMarker = JSON.stringify(this.mapData)
  289 + this.ruleForm.rentalStatus = 0
  290 + this.ruleForm.publishStatus = 0
  291 + changadd(this.ruleForm).then(res => {
  292 + if (res.code == 200) {
  293 + this.$message({
  294 + message: '添加成功',
  295 + type: 'success'
  296 + })
  297 + this.$emit('removeonaction', '1')
  298 + } else {
  299 + this.$message({
  300 + message: res.msg,
  301 + type: 'error'
  302 + })
  303 + }
  304 + })
  305 + } else {
  306 + this.$message({
  307 + message: '请填写完整信息',
  308 + type: 'error'
  309 + })
  310 + return false;
  311 + }
  312 + })
  313 +
  314 + }
  315 + },
  316 + close() {
  317 + this.$emit('removeonaction', '1')
  318 + },
  319 + hefuRemove() {
  320 + this.hefuData = []
  321 + },
  322 + hefuSuccess(response, file, fileList) {
  323 + this.fileData = []
  324 + console.error(response)
  325 + let fd = new FormData()
  326 + fd.append('file', response.raw)
  327 + fd.append('filePath', 'hetong')
  328 + miniioupload(fd).then(res => {
  329 + console.error(res)
  330 + const fileMsg = {
  331 + name: response.name,
  332 + url: res.data,
  333 + }
  334 + this.fileData.push(fileMsg)
  335 + })
  336 + },
  337 +
  338 +
  339 + },
  340 + };
  341 +</script>
  342 +<style lang="scss">
  343 + .el-upload {
  344 + display: block;
  345 + /* text-align: left; */
  346 + }
  347 +
  348 + .video-uploader {
  349 + .el-upload {
  350 + text-align: left;
  351 + }
  352 + }
  353 +
  354 + .el-dialog__header {
  355 + background-color: #F2F3F5;
  356 + text-align: left;
  357 + }
  358 +
  359 + .el-dialog__title {
  360 + line-height: 30px;
  361 + font-size: 15px;
  362 + color: #303133;
  363 + }
  364 +</style>
... ...
admin-web-master/src/components/add/addcd.vue
1 1 <template>
2 2 <div>
3   - <el-form :model="ruleForm" :rules="rulesSt" ref="ruleForm" label-width="130px"
4   - class="demo-ruleForm">
  3 + <el-form :model="ruleForm" :rules="rulesSt" ref="ruleForm" label-width="130px" class="demo-ruleForm">
5 4 <el-row :gutter="20">
6   - <el-col :span="12">
7   - <el-form-item label="场地名称" prop="venueName">
8   - <el-input v-model="ruleForm.venueName" placeholder="请输入" style="margin-top:5px;" maxlength="50"></el-input>
9   - </el-form-item>
10   - </el-col>
11   - <el-col :span="12">
12   - <el-form-item label="场地类型" prop="venueType">
13   - <el-select v-model="ruleForm.venueType" placeholder="请选择" style="margin-top:5px;width: 100%;">
14   - <el-option label="草地" value="草地"></el-option>
15   - </el-select>
16   - </el-form-item>
17   - </el-col>
18   -
19   - </el-row>
20   - <el-row :gutter="20">
21   - <el-col :span="12">
22   - <el-form-item label="实际使用面积" prop="actualArea">
23   - <el-input v-model="ruleForm.actualArea" placeholder="请输入" style="margin-top:5px;">
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="district">
30   - <el-select v-model="ruleForm.district" placeholder="请选择" style="margin-top:5px;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-col>
43   - </el-row>
44   - <el-row :gutter="20">
45   - <el-col :span="12">
46   - <el-form-item label="归属部门" prop="department">
47   - <el-input v-model="ruleForm.department" placeholder="请输入" style="margin-top:5px;" maxlength="50">
48   - </el-input>
49   - </el-form-item>
50   - </el-col>
51   - <el-col :span="12">
52   - <el-form-item label="负责人" prop="responsiblePerson">
53   - <el-input v-model="ruleForm.responsiblePerson" placeholder="请输入" style="margin-top:5px;" maxlength="20">
54   - </el-input>
55   - </el-form-item>
56   - </el-col>
57   - </el-row>
  5 + <el-col :span="12">
  6 + <el-form-item label="场地名称" prop="venueName">
  7 + <el-input v-model="ruleForm.venueName" placeholder="请输入" maxlength="50"></el-input>
  8 + </el-form-item>
  9 + </el-col>
  10 + <el-col :span="12">
  11 + <el-form-item label="场地类型" prop="venueType">
  12 + <el-select v-model="ruleForm.venueType" placeholder="请选择" style="width: 100%;">
  13 + <el-option label="草地" value="草地"></el-option>
  14 + </el-select>
  15 + </el-form-item>
  16 + </el-col>
  17 + </el-row>
  18 + <el-row :gutter="20">
  19 + <el-col :span="12">
  20 + <el-form-item label="实际使用面积" prop="actualArea">
  21 + <el-input v-model="ruleForm.actualArea" placeholder="请输入" >
  22 + <template slot="append">M<sup>2</sup></template>
  23 + </el-input>
  24 + </el-form-item>
  25 + </el-col>
  26 + <el-col :span="12">
  27 + <el-form-item label="所属区域" prop="district">
  28 + <el-select v-model="ruleForm.district" placeholder="请选择" style="width: 100%;">
  29 + <el-option v-for="(item,index) in regionOptions"
  30 + :key="index" :label="item.label" :value="item.value"></el-option>
  31 + </el-select>
  32 + </el-form-item>
  33 + </el-col>
  34 + </el-row>
58 35  
59   - <el-row :gutter="20">
60   - <el-col :span="12">
61   - <el-form-item label="详细位置" prop="detailedLocation">
62   - <el-input v-model="ruleForm.detailedLocation" placeholder="请输入" style="margin-top:5px;" maxlength="100">
63   - </el-input>
64   - </el-form-item>
65   - </el-col>
66   - </el-row>
67   - <el-row :gutter="20">
68   - <el-col :span="24">
69   - <el-form-item label="地图标点" prop="mapMarker">
70   - <div style="width: 100%;height: 300px;border: 1px solid #3F9B6A;" >
71   - <MapMark :sendChildDate="getChildDate" ref="mapComponent"></MapMark>
72   - </div>
73   - </el-form-item>
74   - </el-col>
75   - </el-row>
76   - <el-form-item label="规划图纸" prop="planningDrawing">
77   - <upimg filePath="cd" inputtype="planningDrawing" :value="ruleForm.planningDrawing" @changimg="e=>changimg(e,'planningDrawing')"></upimg>
78   - <!-- <upimg filePath="cd" :value="ruleForm.planningDrawing" @changimg="e=>changimg(e,'planningDrawing')" :limit="5" :fileSize="1"></upimg> -->
79   - </el-form-item>
80   - <el-form-item label="场地描述" prop="description">
81   - <el-input type="textarea" v-model="ruleForm.description" style="margin-top:5px;"
82   - placeholder="请输入" maxlength="200"></el-input>
83   - </el-form-item>
84   - <el-form-item label="展示主图" prop="displayImage">
85   - <upimg filePath="cd" inputtype="displayImage" :value="ruleForm.displayImage" @changimg="e=>changimg(e,'displayImage')"></upimg>
86   - <!-- <upimg filePath="cd" :value="ruleForm.displayImage" @changimg="e=>changimg(e,'displayImage')" :limit="1" :fileSize="1"></upimg> -->
87   - </el-form-item>
88   - <el-form-item label="其他视频" prop="otherImageVideos">
89   - <upfile filePath="cd" :value="ruleForm.otherImageVideos" :fileType="'.mp4'" @changimg="e=>changimg(e,'otherImageVideos')"></upfile>
90   - </el-form-item>
  36 + <el-row :gutter="20">
  37 + <el-col :span="12">
  38 + <el-form-item label="归属部门" prop="department">
  39 + <el-input v-model="ruleForm.department" placeholder="请输入" maxlength="50">
  40 + </el-input>
  41 + </el-form-item>
  42 + </el-col>
  43 + <el-col :span="12">
  44 + <el-form-item label="负责人" prop="responsiblePerson">
  45 + <el-input v-model="ruleForm.responsiblePerson" placeholder="请输入" maxlength="20">
  46 + </el-input>
  47 + </el-form-item>
  48 + </el-col>
  49 + </el-row>
  50 + <el-row :gutter="20">
  51 + <el-col :span="12">
  52 + <el-form-item label="联系人" prop="contact">
  53 + <el-input v-model="ruleForm.contact" placeholder="请输入" maxlength="20">
  54 + </el-input>
  55 + </el-form-item>
  56 + </el-col>
  57 + <el-col :span="12">
  58 + <el-form-item label="联系电话" prop="phoneNumber">
  59 + <el-input v-model="ruleForm.phoneNumber" placeholder="请输入" maxlength="20">
  60 + </el-input>
  61 + </el-form-item>
  62 + </el-col>
  63 + </el-row>
  64 + <el-form-item label="详细位置" prop="detailedLocation">
  65 + <el-input v-model="ruleForm.detailedLocation" placeholder="请输入" maxlength="100">
  66 + </el-input>
  67 + </el-form-item>
  68 + <el-form-item label="地图标点" prop="mapMarker">
  69 + <div style="width: 100%;height: 300px;">
  70 + <newmap :isonloed="info.id?true:false" :lat="lat" :lng="lng" @updatecenter="updatecenter"></newmap>
  71 + </div>
  72 + </el-form-item>
  73 + <el-form-item label="场地描述" prop="description">
  74 + <el-input maxlength="200" show-word-limit rows="4" v-model="ruleForm.description" placeholder="请输入"
  75 + type="textarea" />
  76 + </el-form-item>
  77 + <el-form-item label="规划图纸" prop="planningDrawing">
  78 + <upimg filePath="cd" inputtype="planningDrawing" :value="ruleForm.planningDrawing" :cmpOption="{disabled:false,isSetCover:false}"
  79 + @changimg="e=>changimg(e,'planningDrawing')"></upimg>
  80 + </el-form-item>
  81 + <el-form-item label="展示主图" prop="displayImage">
  82 + <upimg filePath="cd" inputtype="displayImage" :value="ruleForm.displayImage"
  83 + @changimg="e=>changimg(e,'displayImage')"></upimg>
  84 + </el-form-item>
  85 + <el-form-item label="其他视频" prop="otherImageVideos">
  86 + <upfile filePath="cd" inputtype="otherImageVideos" :value="ruleForm.otherImageVideos" @changimg="e=>changimg(e,'otherImageVideos')"></upfile>
  87 + </el-form-item>
91 88 <el-row :gutter="20">
92 89 <el-col :span="12">
93 90 <el-form-item>
... ... @@ -106,7 +103,7 @@
106 103 <script>
107 104 import MapMark from "@/components/MapContainer/MapMark";
108 105 import upimg from "@/components/ImageUpload/index"
109   - import upfile from "@/components/fujianUpload/fujianList"
  106 + import upfile from "@/components/fujianUpload/fujianList"
110 107 import {
111 108 uploadUrl
112 109 } from '@/utils/request'
... ... @@ -123,68 +120,88 @@
123 120 changadd,
124 121 changedit
125 122 } from '../../api/information'
  123 + import newmap from "@/components/newmap/index";
126 124 export default {
127 125 components: {
128 126 upimg,
129 127 MapMark,
130   - upfile
  128 + upfile,
  129 + newmap
131 130 },
132 131 data() {
133 132 return {
134   - ontype:'线上广告位',
135   - typelist:[
136   - {
137   - name:'线上广告位',
138   - vaule:'线上广告位'
  133 + lat: 30.67,
  134 + lng: 104.06,
  135 + ontype: '线上广告位',
  136 + typelist: [{
  137 + name: '线上广告位',
  138 + vaule: '线上广告位'
139 139 },
140 140 {
141   - name:'实体广告位',
142   - vaule:'实体广告位'
  141 + name: '实体广告位',
  142 + vaule: '实体广告位'
143 143 },
144 144 ],
145 145 //地图标点的经纬度
146 146 mapData: {},
147 147 uploadFileUrl: uploadUrl, // 请求地址
148 148 ruleForm: {
149   - venueName: '',
150   - venueType: '',
151   - actualArea: '',
152   - district: '',
153   - department: '',
154   - responsiblePerson: '',
155   - detailedLocation: '',//详细位置
156   - mapMarker: '',//地图标点
157   - description: '',//场地描述
158   - planningDrawing: '',//规划图纸
159   - displayImage: '',//展示主图
160   - otherMedia: '', //其他图片视频
  149 + venueName: '', // 场地名称
  150 + venueType: '', // 场地类型
  151 + actualArea: '', // 实际使用面积(单位:平方米)
  152 + district: '', // 所属区域
  153 + department: '', // 归属部门
  154 + responsiblePerson: '', // 负责人
  155 + detailedLocation: '', // 详细位置
  156 + mapMarker: '', // 地图标点(如经纬度)
  157 + description: '', // 场地描述
  158 + planningDrawing: '', // 规划图纸(二进制大对象)
  159 + displayImage: '', // 展示主图(二进制大对象)
  160 + otherMedia: '', // 其他图片/视频(可存储URL或路径)
  161 + rentalStatus: '', // 租赁状态(0.待租 1.已租)
  162 + publishStatus: '', // 发布状态
  163 + contractNumber: '', // 合同编号
  164 + contact: '', // 联系人
  165 + phoneNumber: '', // 联系电话
  166 + createDate: '', // 创建时间
  167 + createUser: '', // 创建人
161 168 },
162 169 rulesSt: {
163 170 venueName: [{
164 171 required: true,
165 172 message: '请输入场地名称',
166   - trigger: 'blur'
  173 + trigger: 'blur'
167 174 }, ],
168 175 venueType: [{
169 176 required: true,
170 177 message: '请选择场地类型',
171   - trigger: 'change'
  178 + trigger: 'change'
172 179 }, ],
173 180 actualArea: [{
174 181 required: true,
175 182 message: '请输入实际使用面积',
176   - trigger: 'blur'
  183 + trigger: 'blur'
177 184 }, ],
178 185 district: [{
179 186 required: true,
180 187 message: '请选择所属区域',
181   - trigger: 'change'
  188 + trigger: 'change'
182 189 }],
183 190 detailedLocation: [{
184 191 required: true,
185 192 message: '请输入详细位置',
186   - trigger: 'blur'
187   - }, ]
  193 + trigger: 'blur'
  194 + }, ],
  195 + mapMarker: [{
  196 + required: true,
  197 + message: '请选择地图标点',
  198 + trigger: 'blur'
  199 + }, ],
  200 + displayImage: [{
  201 + required: true,
  202 + message: '请上传宣传图',
  203 + trigger: 'change'
  204 + }]
188 205 },
189 206 uploadFiles: [],
190 207 filesLength: 1,
... ... @@ -194,6 +211,11 @@
194 211 edit: true
195 212 };
196 213 },
  214 + computed: {
  215 + regionOptions() {
  216 + return this.$store.state.app.regionOptions;
  217 + }
  218 + },
197 219 props: {
198 220 info: {
199 221 type: Object,
... ... @@ -204,16 +226,26 @@
204 226 async created() {
205 227 if (this.info && this.info.id) {
206 228 this.ruleForm = this.info
207   -
  229 + if (this.ruleForm.mapMarker) {
  230 + this.lat = this.ruleForm.mapMarker.split(',')[0]
  231 + this.lng = this.ruleForm.mapMarker.split(',')[1]
  232 + }
208 233 } else {
209 234  
210 235 }
211 236 },
212 237 methods: {
213   - changimg(e,type) {
  238 +
  239 + updatecenter(e) {
  240 + console.error('-----------', e)
  241 + this.ruleForm.detailedLocation = e.address
  242 + this.lat = e.lat
  243 + this.lng = e.lng
  244 + },
  245 + changimg(e, type) {
214 246 this.ruleForm[type] = e
215 247 },
216   - changeadvertisingType(e){
  248 + changeadvertisingType(e) {
217 249 console.error(e)
218 250 this.ontype = e
219 251 },
... ... @@ -243,16 +275,15 @@
243 275 this.gongyuanList = gongyaun.data.filter(item => item.superior == value);
244 276 },
245 277 add() {
246   -
  278 + if(this.lat) {
  279 + this.ruleForm.mapMarker = this.lat + ',' + this.lng
  280 + }
247 281 if (this.ruleForm.id) {
248 282 this.$refs.ruleForm.validate((valid) => {
249 283 console.log(valid)
250 284 if (valid) {
  285 + this.ruleForm.updateUser = localStorage.getItem('roleName')
251 286 this.ruleForm.updateDate = this.updateCurrentTime()
252   - if (this.fileData.length != 0) {
253   - this.ruleForm.otherImageVideos = this.fileData[0].url
254   - }
255   - this.ruleForm.mapMarker = JSON.stringify(this.mapData)
256 287 changedit(this.ruleForm).then(res => {
257 288 if (res.code == 200) {
258 289 this.$message({
... ... @@ -274,18 +305,13 @@
274 305 })
275 306 return false;
276 307 }
277   -
278   -
279 308 })
280 309 } else {
281 310 this.$refs.ruleForm.validate((valid) => {
282 311 console.log(valid)
283 312 if (valid) {
284   - if (this.fileData.length != 0) {
285   - this.ruleForm.otherImageVideos = this.fileData[0].url
286   - }
287 313 this.ruleForm.createDate = this.updateCurrentTime()
288   - this.ruleForm.mapMarker = JSON.stringify(this.mapData)
  314 + this.ruleForm.createUser = localStorage.getItem('roleName')
289 315 this.ruleForm.rentalStatus = 0
290 316 this.ruleForm.publishStatus = 0
291 317 changadd(this.ruleForm).then(res => {
... ...
admin-web-master/src/components/add/addinformation.vue
... ... @@ -105,7 +105,7 @@
105 105 @changimg="e=>changimg(e,'displayMainImage')"></upimg>
106 106 </el-form-item>
107 107 <el-form-item label="其他视频" prop="otherImageVideos">
108   - <upfile filePath="sp" :value="ruleForm.otherImageVideos" :fileType="'.mp4'" @changimg="e=>changimg(e,'otherImageVideos')"></upfile>
  108 + <upfile filePath="sp" inputtype="otherImageVideos" :value="ruleForm.otherImageVideos" @changimg="e=>changimg(e,'otherImageVideos')"></upfile>
109 109 </el-form-item>
110 110 <el-row :gutter="20">
111 111 <el-col :span="12">
... ... @@ -176,8 +176,8 @@
176 176 leaseExpirationDate: '', // 租赁到期时间
177 177 createDate: '', // 创建时间
178 178 createUser: '', // 创建人
179   - updateDate: '', // 修改时间
180   - updateUser: '', // 修改人
  179 + // updateDate: '', // 修改时间
  180 + // updateUser: '', // 修改人
181 181 businessNature: '', // 经营性质
182 182 telephone: '', // 联系电话
183 183 identityCard: '', // 身份证号码
... ... @@ -242,8 +242,8 @@
242 242 if (this.info.id) {
243 243 this.ruleForm = this.info
244 244 if (this.ruleForm.mapPunctuation) {
245   - this.lat = this.ruleForm.mapPunctuation.split(',')[0]
246   - this.lng = this.ruleForm.mapPunctuation.split(',')[1]
  245 + this.lat = Number(this.ruleForm.mapPunctuation.split(',')[0])
  246 + this.lng = Number(this.ruleForm.mapPunctuation.split(',')[1])
247 247 }
248 248 }
249 249 const lvdao = await lvdaoduan()
... ... @@ -260,9 +260,12 @@
260 260 updatecenter(e) {
261 261 console.error('-----------', e)
262 262 this.ruleForm.detailedLocation = e.address
  263 + this.lat = e.lat
  264 + this.lng = e.lng
263 265 },
264 266 changimg(e, type) {
265 267 this.ruleForm[type] = e
  268 + console.error(this.ruleForm[type])
266 269 },
267 270 //获取当前时间
268 271 updateCurrentTime() {
... ...
admin-web-master/src/components/add/addmap copy.vue 0 → 100644
  1 +<template>
  2 + <div>
  3 + <el-form :model="formInline" :rules="leixing?rules:rulesSt" ref="formInline" label-width="100px"
  4 + class="demo-ruleForm">
  5 + <el-row :gutter="20">
  6 + <el-col :span="12">
  7 + <el-form-item label="广告位名称" prop="advertisingName">
  8 + <el-input v-model="formInline.advertisingName" placeholder="请输入" style="margin-top:5px;"
  9 + maxlength="50"></el-input>
  10 + </el-form-item>
  11 + </el-col>
  12 + <el-col :span="12">
  13 + <el-form-item label="广告位编号" prop="advertisingSpaceNumber">
  14 + <el-input v-model="formInline.advertisingSpaceNumber" disabled placeholder="将根据类型自动为资源编号"
  15 + style="margin-top:5px;"></el-input>
  16 + </el-form-item>
  17 + </el-col>
  18 +
  19 + </el-row>
  20 + <el-row :gutter="20">
  21 + <el-col :span="12">
  22 + <el-form-item label="广告位类型" prop="advertisingType">
  23 + <el-select @change="changeadvertisingType" v-model="formInline.advertisingType" placeholder="请选择" style="margin-top:5px;width: 100%;">
  24 + <el-option v-for="(item, index) in typelist" :key="index" :label="item.name" :value="item.vaule"></el-option>
  25 + <!-- <el-option label="实体广告位" value="实体广告位" v-else></el-option> -->
  26 + </el-select>
  27 + </el-form-item>
  28 + </el-col>
  29 + <el-col :span="12">
  30 + <el-form-item label="所属端" prop="affiliation" v-if="ontype =='线上广告位'">
  31 + <el-select v-model="formInline.affiliation" placeholder="请选择" style="margin-top:5px;width: 100%;">
  32 + <el-option label="游客小程序" value="游客小程序"></el-option>
  33 + <el-option label="商家客户端" value="商家客户端"></el-option>
  34 + </el-select>
  35 + </el-form-item>
  36 + <el-form-item label="详细位置" prop="detailedLocation" v-if="ontype =='实体广告位'">
  37 + <el-input v-model="formInline.detailedLocation" placeholder="请输入" style="margin-top:5px;"
  38 + maxlength="200"></el-input>
  39 + <!-- </el-select> -->
  40 + </el-form-item>
  41 + </el-col>
  42 +
  43 + </el-row>
  44 + <el-row :gutter="20">
  45 + <el-col :span="24">
  46 + <el-form-item label="地图标点" prop="mapPunctuation" v-if="ontype =='实体广告位'">
  47 + <div style="width: 100%;height: 300px;">
  48 + <map-mark :sendChildDate="getChildDate"></map-mark>
  49 + </div>
  50 + </el-form-item>
  51 + </el-col>
  52 + </el-row>
  53 + <el-row :gutter="20">
  54 + <el-col :span="12">
  55 + <el-form-item label="轮播顺序" prop="rotationOrder" v-if="ontype =='线上广告位'">
  56 + <el-select v-model="formInline.rotationOrder" placeholder="请选择" style="margin-top:5px;width: 100%;">
  57 + <el-option label="1" value="1"></el-option>
  58 + <el-option label="2" value="2"></el-option>
  59 + </el-select>
  60 + </el-form-item>
  61 + </el-col>
  62 + <el-col :span="12">
  63 + <el-form-item label="广告尺寸" prop="dimensions" v-if="ontype =='线上广告位'">
  64 + <el-input v-model="formInline.dimensions" disabled placeholder="宽:300px 长:400px"
  65 + style="margin-top:5px;"></el-input>
  66 +
  67 + </el-form-item>
  68 + </el-col>
  69 +
  70 + </el-row>
  71 +
  72 +
  73 +
  74 + <el-row :gutter="20">
  75 + <el-col :span="12">
  76 + <el-form-item label="可上传大小" prop="size" v-if="ontype =='线上广告位'">
  77 + <el-input v-model="formInline.size" disabled placeholder="100kb" style="margin-top:5px;"></el-input>
  78 + </el-form-item>
  79 + </el-col>
  80 + <el-col :span="12">
  81 + <el-form-item label="上传格式" prop="uploadFormat" v-if="ontype =='线上广告位'">
  82 + <el-input v-model="formInline.uploadFormat" disabled placeholder="JPG、PNG、MP4"
  83 + style="margin-top:5px;"></el-input>
  84 + </el-form-item>
  85 + </el-col>
  86 +
  87 + </el-row>
  88 + <el-row :gutter="20">
  89 + <el-col :span="12">
  90 + <el-form-item label="可上传大小" prop="size" v-if="ontype =='实体广告位'">
  91 + <el-input v-model="formInline.size" disabled placeholder="100kb" style="margin-top:5px;"></el-input>
  92 + </el-form-item>
  93 + <el-form-item label="设备类型" prop="deviceType" v-if="ontype =='实体广告位'">
  94 + <div style="display: flex;justify-content: space-between;">
  95 + <el-select v-model="formInline.deviceType" placeholder="请选择" style="margin-top:5px;width: 92%;">
  96 + <el-option label="灯箱广告牌" value="灯箱广告牌"></el-option>
  97 +
  98 + </el-select>
  99 + </div>
  100 + </el-form-item>
  101 + </el-col>
  102 + <el-col :span="12">
  103 + <el-form-item label="设备大小" prop="equipmentSize" v-if="ontype =='实体广告位'">
  104 + <div style="display: flex;">
  105 + <div>
  106 + <span style="font-size: 14px;">长:</span>
  107 + <el-select v-model="formInline.equipmentSizeH" placeholder="请选择"
  108 + style="margin-top:5px;width: 90px;margin: 0 5px 0 0;">
  109 + <el-option label="10" value="10"></el-option>
  110 + <el-option label="20" value="20"></el-option>
  111 + </el-select>
  112 + <span style="font-size: 14px;margin-right:5px;">mm</span>
  113 + </div>
  114 + <div>
  115 + <span style="font-size: 14px;">宽:</span>
  116 + <el-select v-model="formInline.equipmentSizeK" placeholder="请选择"
  117 + style="margin-top:5px;width: 90px;margin: 0 5px 0 0;">
  118 + <el-option label="10" value="10"></el-option>
  119 + <el-option label="20" value="20"></el-option>
  120 + </el-select>
  121 + <span style="font-size: 14px;margin-right:5px;">mm</span>
  122 + </div>
  123 + <div>
  124 + <span style="font-size: 14px;">高:</span>
  125 + <el-select v-model="formInline.equipmentSizeG" placeholder="请选择"
  126 + style="margin-top:5px;width: 90px;margin: 0 5px 0 0;">
  127 + <el-option label="10" value="10"></el-option>
  128 + <el-option label="20" value="20"></el-option>
  129 + </el-select>
  130 + <span style="font-size: 14px;margin-right:5px;">mm</span>
  131 + </div>
  132 + </div>
  133 + </el-form-item>
  134 + </el-col>
  135 +
  136 + </el-row>
  137 +
  138 + <el-row :gutter="20">
  139 + <el-col :span="12">
  140 + <el-form-item label="广告尺寸" v-if="ontype =='实体广告位'">
  141 + <div style="display: flex;">
  142 + <div>
  143 + <span style="font-size: 14px;">长:</span>
  144 + <el-select v-model="formInline.dimensionsH" placeholder="请选择"
  145 + style="margin-top:5px;width: 90px;margin: 0 5px 0 0;">
  146 + <el-option label="10" value="10"></el-option>
  147 + <el-option label="20" value="20"></el-option>
  148 + </el-select>
  149 + <span style="font-size: 14px;margin-right:5px;">mm</span>
  150 + </div>
  151 + <div>
  152 + <span style="font-size: 14px;">宽:</span>
  153 + <el-select v-model="formInline.dimensionsK" placeholder="请选择"
  154 + style="margin-top:5px;width: 90px;margin: 0 5px 0 0;">
  155 + <el-option label="10" value="10"></el-option>
  156 + <el-option label="20" value="20"></el-option>
  157 + </el-select>
  158 + <span style="font-size: 14px;margin-right:5px;">mm</span>
  159 + </div>
  160 + </div>
  161 + </el-form-item>
  162 +
  163 + </el-col>
  164 + <el-col :span="12">
  165 + <el-form-item label="广告材质" prop="advertisingMaterial" v-if="ontype =='实体广告位'">
  166 + <div style="display: flex;justify-content: space-between;">
  167 + <el-select v-model="formInline.advertisingMaterial" placeholder="请选择" style="margin-top:5px;width: 92%">
  168 + <el-option label="亚克力" value="亚克力"></el-option>
  169 + <el-option label="玻璃" value="玻璃"></el-option>
  170 + </el-select>
  171 + </div>
  172 + </el-form-item>
  173 + </el-col>
  174 + </el-row>
  175 + <el-row :gutter="20">
  176 + <el-col :span="12">
  177 + <el-form-item label="位置示意图" prop="locationDiagram">
  178 + <!-- <upimg filePath="gg" :value="formInline.locationDiagram" @changimg="e=>changimg(e,'locationDiagram')" :limit="1" :fileSize="1"></upimg> -->
  179 + <upimg filePath="gg" inputtype="locationDiagram" :value="formInline.locationDiagram" @changimg="e=>changimg(e,'locationDiagram')"></upimg>
  180 + </el-form-item>
  181 + </el-col>
  182 + </el-row>
  183 + <el-row :gutter="20">
  184 + <el-col :span="12">
  185 + <el-form-item>
  186 + <div style="margin-top: 20px">
  187 + <el-button @click="add()" style="background-color: #3F9B6A;color: #fff;">确定</el-button>
  188 + <el-button @click="close()" class="buttonHover"
  189 + style="color: #606266;border: 1px solid #DBDBDB;background-color: #fff;">取消</el-button>
  190 + </div>
  191 + </el-form-item>
  192 + </el-col>
  193 + </el-row>
  194 + </el-form>
  195 + </div>
  196 +</template>
  197 +
  198 +<script>
  199 + import MapMark from "@/components/MapContainer/MapMark";
  200 + import upimg from "@/components/ImageUpload/index"
  201 + import {
  202 + uploadUrl
  203 + } from '@/utils/request'
  204 + import {
  205 + miniioupload
  206 + } from '../../api/commodityLease.js'
  207 + import {
  208 + gongyuan,
  209 + lvdaoduan,
  210 + addList,
  211 + editList
  212 + } from '../../api/map1.js';
  213 +
  214 + export default {
  215 + components: {
  216 + upimg,
  217 + MapMark
  218 + },
  219 + data() {
  220 + return {
  221 + ontype:'线上广告位',
  222 + typelist:[
  223 + {
  224 + name:'线上广告位',
  225 + vaule:'线上广告位'
  226 + },
  227 + {
  228 + name:'实体广告位',
  229 + vaule:'实体广告位'
  230 + },
  231 + ],
  232 + //地图标点的经纬度
  233 + mapData: {},
  234 + uploadFileUrl: uploadUrl, // 请求地址
  235 + formInline: {
  236 + advertisingName: '', //广告位名称
  237 + advertisingType: '', //广告位类型
  238 + rotationOrder: '', // 轮播顺序
  239 + createUser: '', // 创建人
  240 + affiliation: '', //所属端
  241 + detailedLocation: '', //详细位置
  242 + dimensions: '', //广告尺寸
  243 + size: '', //广告大小
  244 + uploadFormat: '', //上传类型
  245 + advertisingSpaceStrategy: '', //策略
  246 + advertisingSpaceNumber: '', //广告位编号
  247 + locationDiagram: '', //位置示意图
  248 + mapPunctuation: '', //地图标点
  249 + deviceType: '', //设备类型
  250 + equipmentSize: '', //设备尺寸
  251 + advertisingMaterial: '', //广告材质
  252 + createDate: '', //创建时间
  253 + equipmentSizeH: "",
  254 + equipmentSizeK: '',
  255 + equipmentSizeG: '',
  256 + dimensionsH: '',
  257 + dimensionsK: '',
  258 + rentalStatus: '0',
  259 + publishStatus: '0'
  260 + },
  261 + rules: {
  262 + advertisingName: [{
  263 + required: true,
  264 + message: '请输入名称',
  265 + trigger: ['blur', 'change']
  266 + }],
  267 + advertisingType: [{
  268 + required: true,
  269 + message: '请选择类型',
  270 + trigger: ['blur', 'change']
  271 + }],
  272 + affiliation: [{
  273 + required: true,
  274 + message: '请选择所属端',
  275 + trigger: ['blur', 'change']
  276 + }],
  277 + rotationOrder: [{
  278 + required: true,
  279 + message: '请选择轮播顺序',
  280 + trigger: ['blur', 'change']
  281 + }],
  282 +
  283 + },
  284 + rulesSt: {
  285 + advertisingName: [{
  286 + required: true,
  287 + message: '请输入名称',
  288 + trigger: ['blur', 'change']
  289 + }],
  290 + advertisingType: [{
  291 + required: true,
  292 + message: '请选择类型',
  293 + trigger: ['blur', 'change']
  294 + }],
  295 + position: [{
  296 + required: true,
  297 + message: '请输入详细位置',
  298 + trigger: ['blur', 'change']
  299 + }],
  300 + dimensionsH: [{
  301 + required: true,
  302 + message: '请选择广告尺寸',
  303 + trigger: ['blur', 'change']
  304 + }],
  305 + dimensionsK: [{
  306 + required: true,
  307 + message: '请选择广告尺寸',
  308 + trigger: ['blur', 'change']
  309 + }],
  310 + advertisingMaterial: [{
  311 + required: true,
  312 + message: '请选择材质',
  313 + trigger: ['blur', 'change']
  314 + }],
  315 + },
  316 + uploadFiles: [],
  317 + filesLength: 1,
  318 + gongyuanList: [],
  319 + fileData: [],
  320 + parentMessage: {},
  321 + edit: true
  322 + };
  323 + },
  324 + props: {
  325 + info: {
  326 + type: Object,
  327 + default: {}
  328 + },
  329 + leixing: {
  330 + type: Boolean,
  331 + default: true
  332 + }
  333 + },
  334 + async created() {
  335 + if (this.info && this.info.id) {
  336 + this.formInline = this.info
  337 + if (this.leixing == false) {
  338 + this.parentMessage = JSON.parse(this.info.mapPunctuation)
  339 + }
  340 + this.ontype = this.formInline.advertisingType
  341 + if(this.ontype == '线上广告位') {
  342 + this.typelist = [
  343 + {
  344 + name:'线上广告位',
  345 + vaule:'线上广告位'
  346 + }]
  347 + } else {
  348 + this.typelist = [
  349 + {
  350 + name:'实体广告位',
  351 + vaule:'实体广告位'
  352 + }]
  353 + }
  354 + } else {
  355 + if (this.leixing ) {
  356 + this.ontype = '线上广告位'
  357 + this.formInline.advertisingType = '线上广告位'
  358 + } else {
  359 + this.ontype = '实体广告位'
  360 + this.formInline.advertisingType = '实体广告位'
  361 + }
  362 + }
  363 + },
  364 + methods: {
  365 + changimg(e,type) {
  366 + this.formInline[type] = e
  367 + },
  368 + changeadvertisingType(e){
  369 + console.error(e)
  370 + this.ontype = e
  371 + },
  372 + //获取当前时间
  373 + updateCurrentTime() {
  374 + const now = new Date();
  375 + const year = now.getFullYear();
  376 + const month = (now.getMonth() + 1).toString().padStart(2, '0');
  377 + const day = now.getDate().toString().padStart(2, '0');
  378 + const hours = now.getHours().toString().padStart(2, '0');
  379 + const minutes = now.getMinutes().toString().padStart(2, '0');
  380 + const seconds = now.getSeconds().toString().padStart(2, '0');
  381 +
  382 + return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
  383 + },
  384 + //获取地图点击的经纬度
  385 + getChildDate(mapData) {
  386 + this.mapData = mapData
  387 +
  388 + },
  389 + lvdaoSel(vaule) {
  390 + this.formInline.belongingParkTrail = ''
  391 + this.gongyuan(vaule)
  392 + },
  393 + async gongyuan(value) {
  394 + const gongyaun = await gongyuan()
  395 + this.gongyuanList = gongyaun.data.filter(item => item.superior == value);
  396 + },
  397 + add() {
  398 +
  399 + if (this.formInline.id) {
  400 + this.$refs.formInline.validate((valid) => {
  401 + console.log(valid)
  402 + if (valid) {
  403 + this.formInline.updateDate = this.updateCurrentTime()
  404 +
  405 + if (this.leixing == false) {
  406 + if (Object.keys(this.mapData).length != 0) {
  407 + this.formInline.mapPunctuation = JSON.stringify(this.mapData)
  408 + }
  409 +
  410 + this.formInline.equipmentSize =
  411 + `长:${this.formInline.equipmentSizeH} 宽:${this.formInline.equipmentSizeK} 高:${this.formInline.equipmentSizeG}`
  412 + this.formInline.dimensions = `长:${this.formInline.dimensionsH} 宽:${this.formInline.dimensionsK}`
  413 + }
  414 +
  415 + editList(this.formInline).then(res => {
  416 + if (res.code == 200) {
  417 + this.$message({
  418 + message: '修改成功',
  419 + type: 'success'
  420 + })
  421 + this.$emit('removeonaction', '1')
  422 + } else {
  423 + this.$message({
  424 + message: res.msg,
  425 + type: 'error'
  426 + })
  427 + }
  428 +
  429 + })
  430 + } else {
  431 + this.$message({
  432 + message: '请填写完整信息',
  433 + type: 'error'
  434 + })
  435 + return false;
  436 + }
  437 +
  438 +
  439 + })
  440 + } else {
  441 + this.$refs.formInline.validate((valid) => {
  442 + console.log(valid)
  443 + if (valid) {
  444 + this.formInline.createDate = this.updateCurrentTime()
  445 + if (this.leixing) {
  446 + this.formInline.dimensions = '宽:300px 长:400px'
  447 + this.formInline.size = '100kb'
  448 + this.formInline.uploadFormat = 'JPG、PNG、MP4'
  449 + } else {
  450 + this.formInline.mapPunctuation = JSON.stringify(this.mapData)
  451 + this.formInline.equipmentSize =
  452 + `长:${this.formInline.equipmentSizeH} 宽:${this.formInline.equipmentSizeK} 高:${this.formInline.equipmentSizeG}`
  453 + this.formInline.dimensions = `长:${this.formInline.dimensionsH} 宽:${this.formInline.dimensionsK}`
  454 + }
  455 + addList(this.formInline).then(res => {
  456 + if (res.code == 200) {
  457 + this.$message({
  458 + message: '添加成功',
  459 + type: 'success'
  460 + })
  461 + this.$emit('removeonaction', '1')
  462 + } else {
  463 + this.$message({
  464 + message: res.msg,
  465 + type: 'error'
  466 + })
  467 + }
  468 +
  469 + })
  470 + } else {
  471 + this.$message({
  472 + message: '请填写完整信息',
  473 + type: 'error'
  474 + })
  475 + return false;
  476 + }
  477 + })
  478 +
  479 + }
  480 + },
  481 + close() {
  482 + this.$emit('removeonaction', '1')
  483 + },
  484 + hefuRemove() {
  485 + this.hefuData = []
  486 + },
  487 + hefuSuccess(response, file, fileList) {
  488 + this.fileData = []
  489 + console.error(response)
  490 + let fd = new FormData()
  491 + fd.append('file', response.raw)
  492 + fd.append('filePath', 'hetong')
  493 + miniioupload(fd).then(res => {
  494 + console.error(res)
  495 + const fileMsg = {
  496 + name: response.name,
  497 + url: res.data,
  498 + }
  499 + this.fileData.push(fileMsg)
  500 + })
  501 + },
  502 +
  503 +
  504 + },
  505 + };
  506 +</script>
  507 +<style lang="scss">
  508 + .el-upload {
  509 + display: block;
  510 + /* text-align: left; */
  511 + }
  512 +
  513 + .video-uploader {
  514 + .el-upload {
  515 + text-align: left;
  516 + }
  517 + }
  518 +
  519 + .el-dialog__header {
  520 + background-color: #F2F3F5;
  521 + text-align: left;
  522 + }
  523 +
  524 + .el-dialog__title {
  525 + line-height: 30px;
  526 + font-size: 15px;
  527 + color: #303133;
  528 + }
  529 +</style>
... ...
admin-web-master/src/components/add/addmap.vue
1 1 <template>
2 2 <div>
3   - <el-form :model="formInline" :rules="leixing?rules:rulesSt" ref="formInline" label-width="100px"
  3 + <el-form v-if="ontype =='线上广告位'" :model="formInline" :rules="rules" ref="formInline" label-width="100px"
4 4 class="demo-ruleForm">
  5 + <el-form-item label="广告位类型" prop="advertisingType">
  6 + <el-select @change="changeadvertisingType" v-model="formInline.advertisingType" placeholder="请选择" style="margin-top:5px;width: 100%;">
  7 + <el-option v-for="(item, index) in typelist" :key="index" :label="item.name" :value="item.vaule"></el-option>
  8 + </el-select>
  9 + </el-form-item>
  10 + <el-form-item label="广告位名称" prop="advertisingName">
  11 + <el-input v-model="formInline.advertisingName" placeholder="请输入" maxlength="30"></el-input>
  12 + </el-form-item>
  13 + <el-form-item label="所属端" prop="affiliation" >
  14 + <el-select v-model="formInline.affiliation" placeholder="请选择" style="width: 100%;">
  15 + <el-option label="游客小程序" value="游客小程序"></el-option>
  16 + <el-option label="商家客户端" value="商家客户端"></el-option>
  17 + </el-select>
  18 + </el-form-item>
  19 + <el-form-item label="轮播顺序" prop="rotationOrder" >
  20 + <el-select v-model="formInline.rotationOrder" placeholder="请选择" style="width: 100%;">
  21 + <el-option label="1" value="1"></el-option>
  22 + <el-option label="2" value="2"></el-option>
  23 + <el-option label="3" value="3"></el-option>
  24 + </el-select>
  25 + </el-form-item>
  26 + <el-form-item label="广告尺寸" prop="dimensions" >
  27 + <el-input v-model="formInline.dimensions" placeholder="宽:300px 长:400px" maxlength="20"></el-input>
  28 + </el-form-item>
  29 + <el-form-item label="可上传大小" prop="size" >
  30 + <el-input v-model="formInline.size" placeholder="100kb" maxlength="20"></el-input>
  31 + </el-form-item>
  32 + <el-form-item label="播放时长(秒)" prop="playDuration" >
  33 + <el-input v-model.number="formInline.playDuration" maxlength="20" placeholder="请输入" @input="validateNumber('playDuration', $event)"></el-input>
  34 + </el-form-item>
  35 + <el-form-item label="推送地址" prop="pushAddress" >
  36 + <el-input v-model="formInline.pushAddress" placeholder="请输入" maxlength="50"></el-input>
  37 + </el-form-item>
  38 + <el-form-item label="位置示意图" prop="locationDiagram">
  39 + <upimg :cmpOption="{disabled:false,isSetCover:false}" filePath="gg" inputtype="locationDiagram" :value="formInline.locationDiagram"
  40 + @changimg="e=>changimg(e,'locationDiagram')"></upimg>
  41 + </el-form-item>
  42 + <el-form-item label="备注信息" prop="memo">
  43 + <el-input maxlength="200" show-word-limit rows="4" v-model="formInline.memo" placeholder="请输入"
  44 + type="textarea" />
  45 + </el-form-item>
5 46 <el-row :gutter="20">
6 47 <el-col :span="12">
7   - <el-form-item label="广告位名称" prop="advertisingName">
8   - <el-input v-model="formInline.advertisingName" placeholder="请输入" style="margin-top:5px;"
9   - maxlength="50"></el-input>
10   - </el-form-item>
11   - </el-col>
12   - <el-col :span="12">
13   - <el-form-item label="广告位编号" prop="advertisingSpaceNumber">
14   - <el-input v-model="formInline.advertisingSpaceNumber" disabled placeholder="将根据类型自动为资源编号"
15   - style="margin-top:5px;"></el-input>
16   - </el-form-item>
17   - </el-col>
18   -
19   - </el-row>
20   - <el-row :gutter="20">
21   - <el-col :span="12">
22   - <el-form-item label="广告位类型" prop="advertisingType">
23   - <el-select @change="changeadvertisingType" v-model="formInline.advertisingType" placeholder="请选择" style="margin-top:5px;width: 100%;">
24   - <el-option v-for="(item, index) in typelist" :key="index" :label="item.name" :value="item.vaule"></el-option>
25   - <!-- <el-option label="实体广告位" value="实体广告位" v-else></el-option> -->
26   - </el-select>
27   - </el-form-item>
28   - </el-col>
29   - <el-col :span="12">
30   - <el-form-item label="所属端" prop="affiliation" v-if="ontype =='线上广告位'">
31   - <el-select v-model="formInline.affiliation" placeholder="请选择" style="margin-top:5px;width: 100%;">
32   - <el-option label="游客小程序" value="游客小程序"></el-option>
33   - <el-option label="商家客户端" value="商家客户端"></el-option>
34   - </el-select>
35   - </el-form-item>
36   - <el-form-item label="详细位置" prop="detailedLocation" v-if="ontype =='实体广告位'">
37   - <el-input v-model="formInline.detailedLocation" placeholder="请输入" style="margin-top:5px;"
38   - maxlength="200"></el-input>
39   - <!-- </el-select> -->
40   - </el-form-item>
41   - </el-col>
42   -
43   - </el-row>
44   - <el-row :gutter="20">
45   - <el-col :span="24">
46   - <el-form-item label="地图标点" prop="mapPunctuation" v-if="ontype =='实体广告位'">
47   - <div style="width: 100%;height: 300px;">
48   - <map-mark :sendChildDate="getChildDate"></map-mark>
49   - </div>
50   - </el-form-item>
51   - </el-col>
52   - </el-row>
53   - <el-row :gutter="20">
54   - <el-col :span="12">
55   - <el-form-item label="轮播顺序" prop="rotationOrder" v-if="ontype =='线上广告位'">
56   - <el-select v-model="formInline.rotationOrder" placeholder="请选择" style="margin-top:5px;width: 100%;">
57   - <el-option label="1" value="1"></el-option>
58   - <el-option label="2" value="2"></el-option>
59   - </el-select>
60   - </el-form-item>
61   - </el-col>
62   - <el-col :span="12">
63   - <el-form-item label="广告尺寸" prop="dimensions" v-if="ontype =='线上广告位'">
64   - <el-input v-model="formInline.dimensions" disabled placeholder="宽:300px 长:400px"
65   - style="margin-top:5px;"></el-input>
66   -
67   - </el-form-item>
68   - </el-col>
69   -
70   - </el-row>
71   -
72   -
73   -
74   - <el-row :gutter="20">
75   - <el-col :span="12">
76   - <el-form-item label="可上传大小" prop="size" v-if="ontype =='线上广告位'">
77   - <el-input v-model="formInline.size" disabled placeholder="100kb" style="margin-top:5px;"></el-input>
78   - </el-form-item>
79   - </el-col>
80   - <el-col :span="12">
81   - <el-form-item label="上传格式" prop="uploadFormat" v-if="ontype =='线上广告位'">
82   - <el-input v-model="formInline.uploadFormat" disabled placeholder="JPG、PNG、MP4"
83   - style="margin-top:5px;"></el-input>
84   - </el-form-item>
85   - </el-col>
86   -
87   - </el-row>
88   - <el-row :gutter="20">
89   - <el-col :span="12">
90   - <el-form-item label="可上传大小" prop="size" v-if="ontype =='实体广告位'">
91   - <el-input v-model="formInline.size" disabled placeholder="100kb" style="margin-top:5px;"></el-input>
92   - </el-form-item>
93   - <el-form-item label="设备类型" prop="deviceType" v-if="ontype =='实体广告位'">
94   - <div style="display: flex;justify-content: space-between;">
95   - <el-select v-model="formInline.deviceType" placeholder="请选择" style="margin-top:5px;width: 92%;">
96   - <el-option label="灯箱广告牌" value="灯箱广告牌"></el-option>
97   -
98   - </el-select>
99   - </div>
100   - </el-form-item>
101   - </el-col>
102   - <el-col :span="12">
103   - <el-form-item label="设备大小" prop="equipmentSize" v-if="ontype =='实体广告位'">
104   - <div style="display: flex;">
105   - <div>
106   - <span style="font-size: 14px;">长:</span>
107   - <el-select v-model="formInline.equipmentSizeH" placeholder="请选择"
108   - style="margin-top:5px;width: 90px;margin: 0 5px 0 0;">
109   - <el-option label="10" value="10"></el-option>
110   - <el-option label="20" value="20"></el-option>
111   - </el-select>
112   - <span style="font-size: 14px;margin-right:5px;">mm</span>
113   - </div>
114   - <div>
115   - <span style="font-size: 14px;">宽:</span>
116   - <el-select v-model="formInline.equipmentSizeK" placeholder="请选择"
117   - style="margin-top:5px;width: 90px;margin: 0 5px 0 0;">
118   - <el-option label="10" value="10"></el-option>
119   - <el-option label="20" value="20"></el-option>
120   - </el-select>
121   - <span style="font-size: 14px;margin-right:5px;">mm</span>
122   - </div>
123   - <div>
124   - <span style="font-size: 14px;">高:</span>
125   - <el-select v-model="formInline.equipmentSizeG" placeholder="请选择"
126   - style="margin-top:5px;width: 90px;margin: 0 5px 0 0;">
127   - <el-option label="10" value="10"></el-option>
128   - <el-option label="20" value="20"></el-option>
129   - </el-select>
130   - <span style="font-size: 14px;margin-right:5px;">mm</span>
131   - </div>
132   - </div>
133   - </el-form-item>
134   - </el-col>
135   -
136   - </el-row>
137   -
138   - <el-row :gutter="20">
139   - <el-col :span="12">
140   - <el-form-item label="广告尺寸" v-if="ontype =='实体广告位'">
141   - <div style="display: flex;">
142   - <div>
143   - <span style="font-size: 14px;">长:</span>
144   - <el-select v-model="formInline.dimensionsH" placeholder="请选择"
145   - style="margin-top:5px;width: 90px;margin: 0 5px 0 0;">
146   - <el-option label="10" value="10"></el-option>
147   - <el-option label="20" value="20"></el-option>
148   - </el-select>
149   - <span style="font-size: 14px;margin-right:5px;">mm</span>
150   - </div>
151   - <div>
152   - <span style="font-size: 14px;">宽:</span>
153   - <el-select v-model="formInline.dimensionsK" placeholder="请选择"
154   - style="margin-top:5px;width: 90px;margin: 0 5px 0 0;">
155   - <el-option label="10" value="10"></el-option>
156   - <el-option label="20" value="20"></el-option>
157   - </el-select>
158   - <span style="font-size: 14px;margin-right:5px;">mm</span>
159   - </div>
160   - </div>
161   - </el-form-item>
162   -
163   - </el-col>
164   - <el-col :span="12">
165   - <el-form-item label="广告材质" prop="advertisingMaterial" v-if="ontype =='实体广告位'">
166   - <div style="display: flex;justify-content: space-between;">
167   - <el-select v-model="formInline.advertisingMaterial" placeholder="请选择" style="margin-top:5px;width: 92%">
168   - <el-option label="亚克力" value="亚克力"></el-option>
169   - <el-option label="玻璃" value="玻璃"></el-option>
170   - </el-select>
  48 + <el-form-item>
  49 + <div style="margin-top: 20px">
  50 + <el-button @click="add()" style="background-color: #3F9B6A;color: #fff;">确定</el-button>
  51 + <el-button @click="close()" class="buttonHover"
  52 + style="color: #606266;border: 1px solid #DBDBDB;background-color: #fff;">取消</el-button>
171 53 </div>
172 54 </el-form-item>
173 55 </el-col>
174 56 </el-row>
175   - <el-row :gutter="20">
176   - <el-col :span="12">
177   - <el-form-item label="位置示意图" prop="locationDiagram">
178   - <!-- <upimg filePath="gg" :value="formInline.locationDiagram" @changimg="e=>changimg(e,'locationDiagram')" :limit="1" :fileSize="1"></upimg> -->
179   - <upimg filePath="gg" inputtype="locationDiagram" :value="formInline.locationDiagram" @changimg="e=>changimg(e,'locationDiagram')"></upimg>
180   - </el-form-item>
181   - </el-col>
182   - </el-row>
  57 + </el-form>
  58 + <el-form v-if="ontype =='实体广告位'" :model="formInline" :rules="rulesSt" ref="formInline" label-width="100px"
  59 + class="demo-ruleForm">
  60 + <el-form-item label="广告位类型" prop="advertisingType">
  61 + <el-select @change="changeadvertisingType" v-model="formInline.advertisingType" placeholder="请选择" style="margin-top:5px;width: 100%;">
  62 + <el-option v-for="(item, index) in typelist" :key="index" :label="item.name" :value="item.vaule"></el-option>
  63 + </el-select>
  64 + </el-form-item>
  65 + <el-form-item label="广告位名称" prop="advertisingName">
  66 + <el-input v-model="formInline.advertisingName" placeholder="请输入" maxlength="30"></el-input>
  67 + </el-form-item>
  68 + <el-form-item label="详细位置" prop="detailedLocation">
  69 + <el-input v-model="formInline.detailedLocation" placeholder="请输入" maxlength="50"></el-input>
  70 + </el-form-item>
  71 + <el-form-item label="地图标点" prop="mapPunctuation" >
  72 + <!-- <div style="width: 100%;height: 300px;">
  73 + <map-mark :sendChildDate="getChildDate"></map-mark>
  74 + </div> -->
  75 + <div style="width: 100%;height: 300px;">
  76 + <newmap :isonloed="info.id?true:false" :lat="lat" :lng="lng" @updatecenter="updatecenter"></newmap>
  77 + </div>
  78 + </el-form-item>
  79 + <el-form-item label="设备类型" prop="deviceType" >
  80 + <div style="display: flex;justify-content: space-between;">
  81 + <el-select v-model="formInline.deviceType" placeholder="请选择" style="width: 92%;">
  82 + <el-option label="灯箱广告牌" value="灯箱广告牌"></el-option>
  83 + </el-select>
  84 + </div>
  85 + </el-form-item>
  86 + <el-form-item label="设备大小" prop="equipmentSize" >
  87 + <el-input v-model="formInline.equipmentSize" placeholder="宽:300mm 长:400mm 高: 400mm" maxlength="30"></el-input>
  88 + </el-form-item>
  89 + <el-form-item label="广告尺寸" prop="dimensions">
  90 + <el-input v-model="formInline.dimensions" placeholder="宽:300px 长:400px" maxlength="20"></el-input>
  91 + </el-form-item>
  92 + <el-form-item label="广告材质" prop="advertisingMaterial">
  93 + <div style="display: flex;justify-content: space-between;">
  94 + <el-select v-model="formInline.advertisingMaterial" placeholder="请选择" style="width: 100%">
  95 + <el-option label="亚克力" value="亚克力"></el-option>
  96 + <el-option label="玻璃" value="玻璃"></el-option>
  97 + </el-select>
  98 + </div>
  99 + </el-form-item>
  100 + <el-form-item label="位置示意图" prop="locationDiagram">
  101 + <upimg :cmpOption="{disabled:false,isSetCover:false}" filePath="gg" inputtype="locationDiagram" :value="formInline.locationDiagram"
  102 + @changimg="e=>changimg(e,'locationDiagram')"></upimg>
  103 + </el-form-item>
183 104 <el-row :gutter="20">
184 105 <el-col :span="12">
185 106 <el-form-item>
... ... @@ -192,10 +113,12 @@
192 113 </el-col>
193 114 </el-row>
194 115 </el-form>
  116 +
195 117 </div>
196 118 </template>
197 119  
198 120 <script>
  121 + import newmap from "@/components/newmap/index";
199 122 import MapMark from "@/components/MapContainer/MapMark";
200 123 import upimg from "@/components/ImageUpload/index"
201 124 import {
... ... @@ -214,103 +137,118 @@
214 137 export default {
215 138 components: {
216 139 upimg,
217   - MapMark
  140 + MapMark,
  141 + newmap
218 142 },
219 143 data() {
220 144 return {
221   - ontype:'线上广告位',
222   - typelist:[
223   - {
224   - name:'线上广告位',
225   - vaule:'线上广告位'
  145 + lat: 30.67,
  146 + lng: 104.06,
  147 + ontype: '线上广告位',
  148 + typelist: [{
  149 + name: '线上广告位',
  150 + vaule: '线上广告位'
226 151 },
227 152 {
228   - name:'实体广告位',
229   - vaule:'实体广告位'
  153 + name: '实体广告位',
  154 + vaule: '实体广告位'
230 155 },
231 156 ],
232 157 //地图标点的经纬度
233 158 mapData: {},
234 159 uploadFileUrl: uploadUrl, // 请求地址
235 160 formInline: {
236   - advertisingName: '', //广告位名称
237   - advertisingType: '', //广告位类型
  161 + advertisingName: '', // 广告位名称
  162 + advertisingType: '线上广告位', // 广告位类型
  163 + affiliation: '', // 所属端
  164 + detailedLocation: '', // 详细位置
238 165 rotationOrder: '', // 轮播顺序
  166 + dimensions: '', // 广告尺寸
  167 + size: '', // 广告大小
  168 + uploadFormat: '', // 上传格式
  169 + advertisingSpaceStrategy: '', // 广告位策略
  170 + advertisingSpaceNumber: '', // 广告位编号
  171 + locationDiagram: '', // 位置示意图
  172 + mapPunctuation: '', // 地图标点
  173 + deviceType: '', // 设备类型
  174 + equipmentSize: '', // 设备尺寸
  175 + advertisingMaterial: '', // 广告材质
  176 + createDate: '', // 创建时间
239 177 createUser: '', // 创建人
240   - affiliation: '', //所属端
241   - detailedLocation: '', //详细位置
242   - dimensions: '', //广告尺寸
243   - size: '', //广告大小
244   - uploadFormat: '', //上传类型
245   - advertisingSpaceStrategy: '', //策略
246   - advertisingSpaceNumber: '', //广告位编号
247   - locationDiagram: '', //位置示意图
248   - mapPunctuation: '', //地图标点
249   - deviceType: '', //设备类型
250   - equipmentSize: '', //设备尺寸
251   - advertisingMaterial: '', //广告材质
252   - createDate: '', //创建时间
253   - equipmentSizeH: "",
254   - equipmentSizeK: '',
255   - equipmentSizeG: '',
256   - dimensionsH: '',
257   - dimensionsK: '',
258   - rentalStatus: '0',
259   - publishStatus: '0'
  178 + // updateDate: '', // 修改时间
  179 + // updateUser: '', // 修改人
  180 + rentalStatus: '', // 租赁状态
  181 + publishStatus: '', // 发布状态
  182 + leaseExpirationDate: '', // 租赁到期时间
  183 + contractNumber: '', // 合同编号
  184 + advertisingNumber: null, // 广告位数量
  185 + playDuration: null, // 播放时长
  186 + pushAddress: '', // 推送地址
  187 + memo: '', // 备注信息
  188 + onlineType: '' // 线上类型
260 189 },
261 190 rules: {
262   - advertisingName: [{
  191 + advertisingType: [{
263 192 required: true,
264   - message: '请输入名称',
265   - trigger: ['blur', 'change']
  193 + message: '请选择广告类型',
  194 + trigger: ['change']
266 195 }],
267   - advertisingType: [{
  196 + advertisingName: [{
268 197 required: true,
269   - message: '请选择类型',
270   - trigger: ['blur', 'change']
  198 + message: '请输入广告位名称',
  199 + trigger: ['change']
271 200 }],
272 201 affiliation: [{
273 202 required: true,
274 203 message: '请选择所属端',
275   - trigger: ['blur', 'change']
  204 + trigger: ['change']
276 205 }],
277 206 rotationOrder: [{
278 207 required: true,
279 208 message: '请选择轮播顺序',
280   - trigger: ['blur', 'change']
  209 + trigger: ['change']
  210 + }],
  211 + locationDiagram: [{
  212 + required: true,
  213 + message: '请上传位置示意图',
  214 + trigger: ['change']
281 215 }],
282   -
283 216 },
284 217 rulesSt: {
285   - advertisingName: [{
  218 + advertisingType: [{
286 219 required: true,
287   - message: '请输入名称',
288   - trigger: ['blur', 'change']
  220 + message: '请选择广告类型',
  221 + trigger: ['change']
289 222 }],
290   - advertisingType: [{
  223 + advertisingName: [{
291 224 required: true,
292   - message: '请选择类型',
293   - trigger: ['blur', 'change']
  225 + message: '请输入广告位名称',
  226 + trigger: ['change']
294 227 }],
295   - position: [{
  228 + detailedLocation: [{
296 229 required: true,
297 230 message: '请输入详细位置',
298   - trigger: ['blur', 'change']
  231 + trigger: ['change']
299 232 }],
300   - dimensionsH: [{
  233 + mapPunctuation: [{
301 234 required: true,
302   - message: '请选择广告尺寸',
303   - trigger: ['blur', 'change']
  235 + message: '请选择地图标点',
  236 + trigger: ['change']
304 237 }],
305   - dimensionsK: [{
  238 + dimensions: [{
306 239 required: true,
307 240 message: '请选择广告尺寸',
308   - trigger: ['blur', 'change']
  241 + trigger: ['change']
309 242 }],
310 243 advertisingMaterial: [{
311 244 required: true,
312   - message: '请选择材质',
313   - trigger: ['blur', 'change']
  245 + message: '请选择广告材质',
  246 + trigger: ['change']
  247 + }],
  248 + locationDiagram: [{
  249 + required: true,
  250 + message: '请上传位置示意图',
  251 + trigger: ['change']
314 252 }],
315 253 },
316 254 uploadFiles: [],
... ... @@ -322,6 +260,10 @@
322 260 };
323 261 },
324 262 props: {
  263 + type: {
  264 + type: String,
  265 + default: 'one'
  266 + },
325 267 info: {
326 268 type: Object,
327 269 default: {}
... ... @@ -334,27 +276,26 @@
334 276 async created() {
335 277 if (this.info && this.info.id) {
336 278 this.formInline = this.info
337   - if (this.leixing == false) {
338   - this.parentMessage = JSON.parse(this.info.mapPunctuation)
  279 + if (this.formInline.mapPunctuation) {
  280 + this.lat = Number(this.formInline.mapPunctuation.split(',')[0])
  281 + this.lng = Number(this.formInline.mapPunctuation.split(',')[1])
339 282 }
340 283 this.ontype = this.formInline.advertisingType
341   - if(this.ontype == '线上广告位') {
342   - this.typelist = [
343   - {
344   - name:'线上广告位',
345   - vaule:'线上广告位'
  284 + if (this.ontype == '线上广告位') {
  285 + this.typelist = [{
  286 + name: '线上广告位',
  287 + vaule: '线上广告位'
346 288 }]
347 289 } else {
348   - this.typelist = [
349   - {
350   - name:'实体广告位',
351   - vaule:'实体广告位'
  290 + this.typelist = [{
  291 + name: '实体广告位',
  292 + vaule: '实体广告位'
352 293 }]
353 294 }
354 295 } else {
355   - if (this.leixing ) {
356   - this.ontype = '线上广告位'
357   - this.formInline.advertisingType = '线上广告位'
  296 + if (this.leixing) {
  297 + this.ontype = '线上广告位'
  298 + this.formInline.advertisingType = '线上广告位'
358 299 } else {
359 300 this.ontype = '实体广告位'
360 301 this.formInline.advertisingType = '实体广告位'
... ... @@ -362,10 +303,23 @@
362 303 }
363 304 },
364 305 methods: {
365   - changimg(e,type) {
  306 + validateNumber(field, value) {
  307 + // 使用正则表达式确保输入的是数字,并且可以包含最多两位小数
  308 + const regex = /^\d+(\.\d{1,2})?$/;
  309 + if (!regex.test(value)) {
  310 + this.ruleForm[field] = value.replace(/[^\d.]/g, '').replace(/(\.\d{2}).*$/, '$1');
  311 + }
  312 + },
  313 + updatecenter(e) {
  314 + console.error('-----------', e)
  315 + this.formInline.detailedLocation = e.address
  316 + this.lat = e.lat
  317 + this.lng = e.lng
  318 + },
  319 + changimg(e, type) {
366 320 this.formInline[type] = e
367 321 },
368   - changeadvertisingType(e){
  322 + changeadvertisingType(e) {
369 323 console.error(e)
370 324 this.ontype = e
371 325 },
... ... @@ -395,23 +349,15 @@
395 349 this.gongyuanList = gongyaun.data.filter(item => item.superior == value);
396 350 },
397 351 add() {
398   -
  352 + if(this.lat) {
  353 + this.formInline.mapPunctuation = this.lat + ',' + this.lng
  354 + }
399 355 if (this.formInline.id) {
400 356 this.$refs.formInline.validate((valid) => {
401 357 console.log(valid)
402 358 if (valid) {
403 359 this.formInline.updateDate = this.updateCurrentTime()
404   -
405   - if (this.leixing == false) {
406   - if (Object.keys(this.mapData).length != 0) {
407   - this.formInline.mapPunctuation = JSON.stringify(this.mapData)
408   - }
409   -
410   - this.formInline.equipmentSize =
411   - `长:${this.formInline.equipmentSizeH} 宽:${this.formInline.equipmentSizeK} 高:${this.formInline.equipmentSizeG}`
412   - this.formInline.dimensions = `长:${this.formInline.dimensionsH} 宽:${this.formInline.dimensionsK}`
413   - }
414   -
  360 + this.formInline.updateUser = localStorage.getItem('roleName')
415 361 editList(this.formInline).then(res => {
416 362 if (res.code == 200) {
417 363 this.$message({
... ... @@ -442,16 +388,14 @@
442 388 console.log(valid)
443 389 if (valid) {
444 390 this.formInline.createDate = this.updateCurrentTime()
445   - if (this.leixing) {
446   - this.formInline.dimensions = '宽:300px 长:400px'
447   - this.formInline.size = '100kb'
448   - this.formInline.uploadFormat = 'JPG、PNG、MP4'
  391 + this.formInline.createUser = localStorage.getItem('roleName')
  392 + if (this.ontype =='线上广告位') {
  393 +
449 394 } else {
450   - this.formInline.mapPunctuation = JSON.stringify(this.mapData)
451   - this.formInline.equipmentSize =
452   - `长:${this.formInline.equipmentSizeH} 宽:${this.formInline.equipmentSizeK} 高:${this.formInline.equipmentSizeG}`
453   - this.formInline.dimensions = `长:${this.formInline.dimensionsH} 宽:${this.formInline.dimensionsK}`
  395 +
  396 +
454 397 }
  398 + this.formInline.publishStatus = 0
455 399 addList(this.formInline).then(res => {
456 400 if (res.code == 200) {
457 401 this.$message({
... ...
admin-web-master/src/components/chakan/cd.vue
... ... @@ -8,109 +8,78 @@
8 8 <div style="padding: 20px;">
9 9 <el-form :model="editbgid" ref="formInline" label-width="120px" class="demo-ruleForm">
10 10 <el-row :gutter="20">
11   - <el-col :span="12">
  11 + <el-col :span="8">
12 12 <el-form-item label="场地名称" prop="venueName">
13   - <div class="duiqi">{{editbgid.venueName}}</div>
14   -
  13 + <div class="duiqi">{{editbgid.venueName || '无'}}</div>
15 14 </el-form-item>
16 15 </el-col>
17   - <el-col :span="12">
  16 + <el-col :span="8">
18 17 <el-form-item label="场地类型" prop="venueType">
19   - <div class="duiqi" >{{editbgid.venueType}}</div>
20   -
  18 + <div class="duiqi">{{editbgid.venueType || '无'}}</div>
21 19 </el-form-item>
22 20 </el-col>
23   - </el-row>
24   - <el-row :gutter="20">
25   - <el-col :span="12">
  21 + <el-col :span="8">
26 22 <el-form-item label="实际使用面积" prop="actualArea">
27   - <div class="duiqi">{{editbgid.actualArea}}</div>
28   -
  23 + <div class="duiqi">{{editbgid.actualArea || '无'}}</div>
29 24 </el-form-item>
30 25 </el-col>
31   - <el-col :span="12">
  26 + </el-row>
  27 + <el-row :gutter="20">
  28 + <el-col :span="8">
32 29 <el-form-item label="所属区域" prop="district">
33   - <div class="duiqi">{{editbgid.district}}</div>
34   -
  30 + <div class="duiqi">{{editbgid.district || '无'}}</div>
35 31 </el-form-item>
36 32 </el-col>
37   - </el-row>
38   - <el-row :gutter="20">
39   - <el-col :span="12">
  33 + <el-col :span="8">
40 34 <el-form-item label="归属部门" prop="department">
41   - <div class="duiqi">{{editbgid.department}}</div>
42   -
  35 + <div class="duiqi">{{editbgid.department || '无'}}</div>
43 36 </el-form-item>
44 37 </el-col>
45   - <el-col :span="12">
  38 + <el-col :span="8">
46 39 <el-form-item label="负责人" prop="responsiblePerson">
47   - <div class="duiqi">{{editbgid.belongingParkTrail}}</div>
48   -
49   - </el-form-item>
50   - </el-col>
51   - </el-row>
52   -
53   - <el-row :gutter="20">
54   - <el-col :span="12">
55   - <el-form-item label="详细位置" prop="detailedLocation">
56   - <div class="duiqi">{{editbgid.detailedLocation}}</div>
57   -
  40 + <div class="duiqi">{{editbgid.belongingParkTrail || '无'}}</div>
58 41 </el-form-item>
59 42 </el-col>
60 43 </el-row>
61 44 <el-row :gutter="20">
62   - <el-col :span="24">
63   - <el-form-item label="地图标点" prop="mapMarker">
64   - <div style="width: 100%;height: 300px;">
65   - <MapXian :message="parentMessage"></MapXian>
66   -
67   - </div>
  45 + <el-col :span="8">
  46 + <el-form-item label="联系人" prop="contact">
  47 + <div class="duiqi">{{editbgid.contact || '无'}}</div>
68 48 </el-form-item>
69 49 </el-col>
70   -
71   - </el-row>
72   -
73   - <el-row :gutter="20">
74   - <el-col :span="12">
75   - <el-form-item label="场地描述" prop="description">
76   - <div class="duiqi">{{editbgid.description}}</div>
77   -
  50 + <el-col :span="8">
  51 + <el-form-item label="联系电话" prop="phoneNumber">
  52 + <div class="duiqi">{{editbgid.belongingParkTrail || '无'}}</div>
78 53 </el-form-item>
79 54 </el-col>
80   -
81 55 </el-row>
82   -
83   - <el-row :gutter="20">
84   - <el-col :span="12">
85   - <el-form-item label="规划图纸" prop="planningDrawing">
86   - <!-- <img :src="editbgid.planningDrawing" alt="" style="width:140px;height:140px;" > -->
87   -
88   - <div >
89   - <img :src="$baseURL+item" alt="" style="width:140px;height:140px;"
90   - v-for="item in editbgid.planningDrawing.split(',')">
91   - </div>
92   -
93   - </el-form-item>
94   - </el-col>
95   - </el-row>
96   - <el-row :gutter="20">
97   - <el-col :span="12">
98   - <el-form-item label="展示主图" prop="displayImage">
99   - <div >
100   - <img :src="$baseURL+item" alt="" style="width:140px;height:140px;"
101   - v-for="item in editbgid.displayImage.split(',')">
102   - </div>
103   - <!-- <img :src="$baseURL+editbgid.displayImage" alt="" style="width:140px;height:140px;" > -->
104   - </el-form-item>
105   - </el-col>
106   - </el-row>
107   - <!-- <el-row :gutter="20">
108   - <el-col :span="12">
109   - <el-form-item label="其他图片/视频" prop="otherMedia">
110   - <div class="duiqi">{{editbgid.otherMedia}}</div>
111   - </el-form-item>
112   - </el-col>
113   - </el-row> -->
  56 + <el-form-item label="详细位置" prop="detailedLocation">
  57 + <div class="duiqi">{{editbgid.detailedLocation || '无'}}</div>
  58 + </el-form-item>
  59 + <el-form-item label="地图标点" prop="mapMarker">
  60 + <div style="width: 100%;height: 300px;">
  61 + <newmap :isx="false" :message="editbgid.mapMarker"></newmap>
  62 + </div>
  63 + </el-form-item>
  64 + <el-form-item label="场地描述" prop="description">
  65 + <div class="duiqi">{{editbgid.description || '无'}}</div>
  66 + </el-form-item>
  67 + <el-form-item label="规划图纸" prop="planningDrawing">
  68 + <div v-if="editbgid.planningDrawing">
  69 + <img :src="$baseURL+item" alt="" style="width:140px;height:140px;"
  70 + v-for="item in editbgid.planningDrawing.split(',')">
  71 + </div>
  72 + <div class="duiqi" v-else>无</div>
  73 + </el-form-item>
  74 + <el-form-item label="展示主图" prop="displayImage">
  75 + <div >
  76 + <img :src="$baseURL+item" alt="" style="width:140px;height:140px;"
  77 + v-for="item in editbgid.displayImage.split(',')">
  78 + </div>
  79 + </el-form-item>
  80 + <el-form-item label="其他视频" prop="otherImageVideos" >
  81 + <div class="duiqi" :class="editbgid.otherImageVideos?'greens':''" @click ="editbgid.otherImageVideos?openfile($baseURL+editbgid.otherImageVideos):''">{{editbgid.otherImageVideos?'查看详情':'无'}}</div>
  82 + </el-form-item>
114 83 </el-form>
115 84 </div>
116 85 </div>
... ... @@ -175,9 +144,11 @@
175 144 cereResourceStrategylist,
176 145 cereBusinessPlan
177 146 } from '@/api/newly';
  147 + import newmap from "@/components/newmap/index";
178 148 export default {
179 149 components: {
180 150 TitleWithCircle,
  151 + newmap,
181 152 MapXian
182 153 },
183 154 props: {
... ... @@ -206,7 +177,7 @@
206 177 let c1 = {
207 178 pageNumber: 0,
208 179 pageSize: 10,
209   - resourcesId: 'sp' + this.editbgid.id
  180 + resourcesId: 'cd' + this.editbgid.id
210 181 }
211 182 cereResourceStrategylist(c1).then(res => {
212 183 console.error(res)
... ... @@ -216,11 +187,7 @@
216 187 console.error(res)
217 188 this.datalist1 = res.data
218 189 })
219   - if (typeof this.editbgid.mapMarker == 'string' && this.editbgid.mapMarker != '') {
220   - this.parentMessage = JSON.parse(this.editbgid.mapMarker)
221   - } else {
222   - this.parentMessage = this.editbgid.mapMarker
223   - }
  190 +
224 191 }
225 192  
226 193 },
... ... @@ -228,6 +195,18 @@
228 195  
229 196 },
230 197 methods: {
  198 + openfile(e) {
  199 + if (e) {
  200 + const fullUrl = e;
  201 + try {
  202 + window.open(fullUrl, '_blank'); // 在新标签页中打开文件
  203 + } catch (error) {
  204 + console.error('打开文件失败:', error);
  205 + }
  206 + } else {
  207 + console.error('无文件可查看');
  208 + }
  209 + },
231 210 changetype() {
232 211 this.xiangTab = 'first'
233 212 this.$emit('removeonaction', '1')
... ...
admin-web-master/src/components/chakan/map.vue
... ... @@ -10,131 +10,92 @@
10 10 <el-row :gutter="20">
11 11 <el-col :span="8">
12 12 <el-form-item label="广告位名称" prop="advertisingName">
13   - <div class="duiqi">{{editbgid.advertisingName}}</div>
  13 + <div class="duiqi">{{editbgid.advertisingName || '无'}}</div>
14 14 </el-form-item>
15 15 </el-col>
16 16 <el-col :span="8">
17 17 <el-form-item label="广告位编号" prop="advertisingSpaceNumber">
18   - <div class="duiqi">{{editbgid.advertisingSpaceNumber}}</div>
  18 + <div class="duiqi">{{editbgid.advertisingSpaceNumber || '无'}}</div>
19 19 </el-form-item>
20 20 </el-col>
21 21 <el-col :span="8">
22 22 <el-form-item label="广告位类型" prop="advertisingType">
23   - <div class="duiqi">{{editbgid.advertisingType}}</div>
24   - </el-select>
  23 + <div class="duiqi">{{editbgid.advertisingType || '无'}}</div>
25 24 </el-form-item>
26 25 </el-col>
27 26 </el-row>
28   - <el-row :gutter="20">
29   -
  27 + <el-row :gutter="20" v-if="editbgid.advertisingType == '线上广告位'">
30 28 <el-col :span="8">
31   - <el-form-item label="所属端" prop="affiliation" v-if='leixing'>
32   - <div class="duiqi">{{editbgid.affiliation}}</div>
33   - </el-form-item>
34   - <el-form-item label="详细位置" prop="detailedLocation" v-if='leixing == false'>
35   - <div class="duiqi">{{editbgid.detailedLocation}}</div>
  29 + <el-form-item label="所属端" prop="affiliation" >
  30 + <div class="duiqi">{{editbgid.affiliation || '无'}}</div>
36 31 </el-form-item>
37 32 </el-col>
38 33 <el-col :span="8">
39   - <el-form-item label="轮播顺序" prop="rotationOrder" v-if='leixing'>
40   - <div class="duiqi">{{editbgid.rotationOrder}}</div>
41   -
  34 + <el-form-item label="广告位数量" prop="advertisingNumber" >
  35 + <div class="duiqi">{{editbgid.advertisingNumber || '无'}}</div>
42 36 </el-form-item>
43 37 </el-col>
44 38 <el-col :span="8">
45   - <el-form-item label="广告尺寸" prop="dimensions" v-if='leixing'>
46   - <div class="duiqi">{{editbgid.dimensions}}</div>
  39 + <el-form-item label="广告尺寸" prop="dimensions">
  40 + <div class="duiqi">{{editbgid.dimensions || '无'}}</div>
47 41 </el-form-item>
48 42 </el-col>
49   - </el-row>
50   - <el-row :gutter="20">
51   - <el-col :span="24">
52   - <el-form-item label="地图标点" prop="mapPunctuation" v-if='leixing == false'>
53   - <div style="width: 100%;height: 300px;">
54   - <MapXian :message="parentMessage"></MapXian>
55   - </div>
  43 + <el-col :span="8">
  44 + <el-form-item label="可上传大小" prop="size">
  45 + <div class="duiqi">{{editbgid.size || '无'}}</div>
56 46 </el-form-item>
57 47 </el-col>
58   - </el-row>
59   -
60   - <el-row :gutter="20">
61 48 <el-col :span="8">
62   - <el-form-item label="可上传大小" prop="size" v-if='leixing'>
63   - <div class="duiqi">{{editbgid.size}}</div>
  49 + <el-form-item label="播放时长" prop="playDuration">
  50 + <div class="duiqi">{{editbgid.playDuration || '无'}}</div>
64 51 </el-form-item>
65 52 </el-col>
66 53 <el-col :span="8">
67   - <el-form-item label="上传格式" prop="uploadFormat" v-if='leixing'>
68   - <div class="duiqi">{{editbgid.uploadFormat}}</div>
  54 + <el-form-item label="推送地址" prop="pushAddress">
  55 + <div class="duiqi">{{editbgid.pushAddress || '无'}}</div>
69 56 </el-form-item>
70 57 </el-col>
  58 + </el-row>
  59 + <el-row :gutter="20" v-if="editbgid.advertisingType == '实体广告位'">
71 60 <el-col :span="8">
72   - <el-form-item label="设备类型" prop="deviceType" v-if='leixing == false'>
73   - <div class="duiqi">{{editbgid.deviceType}}</div>
  61 + <el-form-item label="设备类型" prop="deviceType" >
  62 + <div class="duiqi">{{editbgid.deviceType || '无'}}</div>
74 63 </el-form-item>
75 64 </el-col>
76   - </el-row>
77   - <el-row :gutter="20">
78   -
79   - <el-col :span="12">
80   - <el-form-item label="设备大小" prop="equipmentSize" v-if='leixing == false'>
81   - <div style="display: flex;">
82   - <div>
83   - <span style="font-size: 14px;">长:</span>
84   - <span>{{ editbgid.equipmentSizeH }}</span>
85   - <span style="font-size: 14px;margin-right:5px;">mm</span>
86   - </div>
87   - <div>
88   - <span style="font-size: 14px;">宽:</span>
89   - <span>{{ editbgid.equipmentSizeK }}</span>
90   - <span style="font-size: 14px;margin-right:5px;">mm</span>
91   - </div>
92   - <div>
93   - <span style="font-size: 14px;">高:</span>
94   - <span>{{ editbgid.equipmentSizeG }}</span>
95   - <span style="font-size: 14px;margin-right:5px;">mm</span>
96   - </div>
97   - </div>
98   -
  65 + <el-col :span="8">
  66 + <el-form-item label="设备大小" prop="equipmentSize" >
  67 + <div class="duiqi">{{editbgid.equipmentSize || '无'}}</div>
99 68 </el-form-item>
100 69 </el-col>
101   - <el-col :span="12">
102   - <el-form-item label="广告尺寸" v-if='leixing == false'>
103   - <div style="display: flex;">
104   - <div>
105   - <span style="font-size: 14px;">长:</span>
106   - <span>{{ editbgid.dimensionsH }}</span>
107   - <span style="font-size: 14px;margin-right:5px;">mm</span>
108   - </div>
109   - <div>
110   - <span style="font-size: 14px;">宽:</span>
111   - <span>{{ editbgid.dimensionsK }}</span>
112   - <span style="font-size: 14px;margin-right:5px;">mm</span>
113   - </div>
114   - </div>
  70 + <el-col :span="8">
  71 + <el-form-item label="广告尺寸" prop="dimensions">
  72 + <div class="duiqi">{{editbgid.dimensions || '无'}}</div>
115 73 </el-form-item>
116 74 </el-col>
117   -
118   - </el-row>
119   - <el-row :gutter="20">
120   -
121   -
122 75 <el-col :span="8">
123   - <el-form-item label="广告材质" prop="advertisingMaterial" v-if='leixing == false'>
124   - <div class="duiqi">{{editbgid.advertisingMaterial}}</div>
  76 + <el-form-item label="广告材质" prop="advertisingMaterial">
  77 + <div class="duiqi">{{editbgid.advertisingMaterial || '无'}}</div>
125 78 </el-form-item>
126 79 </el-col>
127 80 </el-row>
  81 + <el-form-item label="详细位置" prop="detailedLocation" v-if="editbgid.advertisingType == '实体广告位'">
  82 + <div class="duiqi">{{editbgid.detailedLocation || '无'}}</div>
  83 + </el-form-item>
  84 + <el-form-item label="地图标点" prop="mapPunctuation" v-if="editbgid.advertisingType == '实体广告位'">
  85 + <div style="width: 100%;height: 300px;">
  86 + <newmap :isx="false" :message="editbgid.mapPunctuation"></newmap>
  87 + </div>
  88 + </el-form-item>
  89 + <el-form-item label="位置示意图" prop="locationDiagram">
  90 + <img v-for="item in editbgid.locationDiagram.split(',')" :src="$baseURL+item" alt="" style="width:140px;height:140px;margin-left: 15px;">
  91 + </el-form-item>
  92 +
  93 + <el-form-item label="备注信息" prop="memo" v-if="editbgid.advertisingType == '线上广告位'">
  94 + <div class="duiqi">{{editbgid.memo || '无'}}</div>
  95 + </el-form-item>
128 96  
129 97  
130   - <el-row :gutter="20">
131   - <el-col :span="12">
132   - <el-form-item label="位置示意图" prop="locationDiagram">
133   - <img :src="$baseURL+editbgid.locationDiagram" alt="" style="width:140px;height:140px;">
134   - </el-form-item>
135   - </el-col>
136   -
137   - </el-row>
  98 +
138 99  
139 100  
140 101  
... ... @@ -196,6 +157,7 @@
196 157 </template>
197 158  
198 159 <script>
  160 + import newmap from "@/components/newmap/index";
199 161 import MapXian from "@/components/MapContainer/MapXian";
200 162 import TitleWithCircle from '@/components/top/index';
201 163 import {
... ... @@ -205,7 +167,8 @@
205 167 export default {
206 168 components: {
207 169 TitleWithCircle,
208   - MapXian
  170 + MapXian,
  171 + newmap
209 172 },
210 173 props: {
211 174 leixing: {
... ... @@ -237,34 +200,20 @@
237 200 }
238 201 cereResourceStrategylist(c1).then(res => {
239 202 console.error(res)
  203 + if (!Array.isArray(res.data)) {
  204 + this.datalist = [];
  205 + return;
  206 + }
240 207 this.datalist = res.data
241 208 })
242 209 cereBusinessPlan(c1).then(res => {
243 210 console.error(res)
244   - this.datalist1 = res.data
245   - })
246   - let dimensions_parts = this.editbgid.dimensions.split(" ")
247   - let dimensions = this.editbgid.equipmentSize.split(" ")
248   -
249   - dimensions_parts.forEach(part => {
250   - if (part.startsWith("长")) {
251   - this.editbgid.dimensionsH = part.split(":")[1];
252   - } else if (part.startsWith("宽")) {
253   - this.editbgid.dimensionsK = part.split(":")[1];
254   - }
255   - })
256   - dimensions.forEach(part => {
257   - if (part.startsWith("长")) {
258   - this.editbgid.equipmentSizeH = part.split(":")[1];
259   - } else if (part.startsWith("宽")) {
260   - this.editbgid.equipmentSizeK = part.split(":")[1];
261   - } else if (part.startsWith("高")) {
262   - this.editbgid.equipmentSizeG = part.split(":")[1];
  211 + if (!Array.isArray(res.data)) {
  212 + this.datalist1 = [];
  213 + return;
263 214 }
  215 + this.datalist1 = res.data
264 216 })
265   - if (this.leixing == false) {
266   - this.parentMessage = JSON.parse(this.editbgid.mapPunctuation)
267   - }
268 217 }
269 218  
270 219  
... ...
admin-web-master/src/components/change/cl.vue
1 1 <template>
2 2 <div class="policy-selector">
3   - <!-- <div class="policy-selector-header">
4   - <h3>选择策略</h3>
5   - </div> -->
6   - <div class="policy-selector-content" style="max-height:50vh;overflow-y: auto;">
7   - <el-table
8   - :data="celueData"
9   - tooltip-effect="dark"
10   - @selection-change="handleSelectionChange"
11   - :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}"
12   - >
13   - <el-table-column label="选择" type="selection" width="55"></el-table-column>
14   - <el-table-column label="策略名称" prop="policyName" min-width="200"></el-table-column>
15   - <el-table-column label="适用资源" prop="applicableResources" min-width="100"></el-table-column>
16   - <el-table-column label="经营类型" prop="businessType" min-width="150"></el-table-column>
17   - <el-table-column label="租金价格" prop="rentalPrice" min-width="150"></el-table-column>
18   - <el-table-column label="租期" prop="leaseTerm" min-width="100"></el-table-column>
19   - <el-table-column label="是否出租" prop="planningObjectives" min-width="100">
20   - <template slot-scope="scope">
21   - {{ scope.row.isrental == '0' ? '否' : '是' }}
22   - </template>
23   - </el-table-column>
24   - <el-table-column label="是否自营" prop="planningObjectives" min-width="100">
25   - <template slot-scope="scope">
26   - {{ scope.row.isSelfOperated == '0' ? '否' : '是' }}
27   - </template>
28   - </el-table-column>
29   - </el-table>
  3 + <div class="policy-selector-content">
  4 + <div style="border: 1px solid #E5E5E5;padding: 1px" id="huodong">
  5 + <div
  6 + style="padding: 10px 13px;font-size: 14px;border-bottom: 1px solid #E5E5E5;display: flex;justify-content: space-between;">
  7 + <div style="line-height:200%">选择策略</div>
  8 + <div style="display: flex">
  9 + <el-input placeholder="请输入" suffix-icon="el-icon-search" style="margin-right:15px;width: 40%;"
  10 + v-model="pageindex.policyName">
  11 + </el-input>
  12 + <el-button @click="onSearch" style="background-color: #3F9B6A;color: #fff">查询
  13 + </el-button>
  14 + <el-button @click="resetting" class="buttonHover"
  15 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;">重置
  16 + </el-button>
  17 + </div>
  18 + </div>
  19 + <div style="padding: 15px;">
  20 + <div style="padding: 0px 20px 0px 0px;max-height:40vh;overflow-y: auto;">
  21 + <el-table :data="celueData" tooltip-effect="dark" @selection-change="handleSelectionChange"
  22 + :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}">
  23 + <el-table-column label="选择" type="selection" width="55">
  24 + </el-table-column>
  25 + <el-table-column label="策略名称" prop="policyName" show-overflow-tooltip></el-table-column>
  26 + <el-table-column label="适用资源" prop="applicableResources" show-overflow-tooltip></el-table-column>
  27 + <el-table-column label="租金价格" prop="rentalPrice" show-overflow-tooltip></el-table-column>
  28 + <el-table-column label="付款周期" prop="leaseTerm" show-overflow-tooltip></el-table-column>
  29 + <el-table-column label="付款日" prop="payDay" show-overflow-tooltip></el-table-column>
  30 + </el-table>
  31 + </div>
  32 + </div>
  33 + </div>
  34 + </div>
  35 + <div style="display: flex;justify-content: space-between;margin: 20px 0;" class="bom">
  36 + <div style="font-size: 14px;">共 <span style="color: #3F9B6A;">{{total}}</span> 项数据</div>
  37 + <el-pagination :current-page="pageindex.pageNumber+1" :page-sizes="[5,10, 20, 50, 100]" :page-size="pageindex.pageSize" background
  38 + small layout="prev, pager, next" :total="total" @size-change="handleSizeChange"
  39 + @current-change="handleCurrentChange">
  40 + </el-pagination>
30 41 </div>
31 42 <div class="policy-selector-footer" style="display: flex; justify-content: flex-end; align-items: center;">
32 43 <el-button @click="confirm" style="background-color: #3F9B6A;color: #fff;">确定</el-button>
33   - <el-button @click="cancel" class="buttonHover" style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;">取消</el-button>
  44 + <el-button @click="cancel" class="buttonHover"
  45 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;">取消</el-button>
34 46 </div>
35 47 </div>
36 48 </template>
... ... @@ -39,64 +51,89 @@
39 51 import {
40 52 ceGetAll
41 53 } from '@/api/sam.js'
42   -export default {
43   - name: 'PolicySelector',
44   - data() {
45   - return {
  54 + export default {
  55 + name: 'PolicySelector',
  56 + data() {
  57 + return {
  58 + total: 0,
46 59 pageindex: {
47   - pageNumber: 1,
48   - pageSize: 10,
  60 + pageNumber: 0,
  61 + pageSize: 5,
  62 + policyName: ''
49 63 },
50   - selectedRows: [],
51   - celueData: []
52   - };
53   - },
54   - async created() {
55   - const celue = await ceGetAll(this.pageindex)
56   - this.celueData = celue.data.content
57   - },
58   - methods: {
59   - handleSelectionChange(selection) {
60   - this.selectedRows = selection;
  64 + selectedRows: [],
  65 + celueData: []
  66 + };
61 67 },
62   - confirm() {
63   - this.$emit('minSev', this.selectedRows);
  68 + created() {
  69 + this.getAll()
64 70 },
65   - cancel() {
66   - this.$emit('mingClose');
  71 + methods: {
  72 + async getAll() {
  73 + const celue = await ceGetAll(this.pageindex)
  74 + this.celueData = celue.data.content
  75 + this.total = celue.data.totalElements
  76 + },
  77 + handleCurrentChange(val) {
  78 + this.pageindex.pageNumber = val-1
  79 + this.getAll()
  80 + },
  81 + handleSizeChange(val) {
  82 + this.pageindex.pageSize = val
  83 + },
  84 + onSearch() {
  85 + this.pageindex.pageNumber = 0
  86 + this.getAll()
  87 + },
  88 + resetting() {
  89 + this.pageindex ={
  90 + pageNumber: 0,
  91 + pageSize: 5,
  92 + policyName: ''
  93 + }
  94 + this.getAll()
  95 + },
  96 + handleSelectionChange(selection) {
  97 + this.selectedRows = selection;
  98 + },
  99 + confirm() {
  100 + this.$emit('minSev', this.selectedRows);
  101 + },
  102 + cancel() {
  103 + this.$emit('mingClose');
  104 + }
67 105 }
68   - }
69   -};
  106 + };
70 107 </script>
71 108  
72 109 <style scoped>
73   -.policy-selector {
74   - padding: 20px;
75   - width: 100%;
76   - margin: 0 auto;
77   - border: 1px solid #ddd;
78   - border-radius: 4px;
79   - /* box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); */
80   -}
  110 + .policy-selector {
  111 + padding: 20px;
  112 + width: 100%;
  113 + margin: 0 auto;
  114 + border: 1px solid #ddd;
  115 + /* border-radius: 4px; */
  116 + /* box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); */
  117 + }
81 118  
82   -.policy-selector-header {
83   - text-align: left;
84   - margin-bottom: 20px;
85   -}
  119 + .policy-selector-header {
  120 + text-align: left;
  121 + margin-bottom: 20px;
  122 + }
86 123  
87   -.policy-selector-header h3 {
88   - margin: 0;
89   - font-size: 18px;
90   - color: #303133;
91   -}
  124 + .policy-selector-header h3 {
  125 + margin: 0;
  126 + font-size: 18px;
  127 + color: #303133;
  128 + }
92 129  
93   -.policy-selector-content {
94   - margin-bottom: 20px;
95   -}
  130 + .policy-selector-content {
  131 + margin-bottom: 20px;
  132 + }
96 133  
97   -.policy-selector-footer {
98   - display: flex;
99   - justify-content: flex-end;
100   - align-items: center;
101   -}
102   -</style>
103 134 \ No newline at end of file
  135 + .policy-selector-footer {
  136 + display: flex;
  137 + justify-content: flex-end;
  138 + align-items: center;
  139 + }
  140 +</style>
... ...
admin-web-master/src/components/change/zy.vue 0 → 100644
  1 +<template>
  2 + <div class="policy-selector">
  3 + <div class="policy-selector-content">
  4 + <div style="border: 1px solid #E5E5E5;padding: 1px" id="huodong">
  5 + <div
  6 + style="padding: 10px 13px;font-size: 14px;border-bottom: 1px solid #E5E5E5;display: flex;justify-content: space-between;">
  7 + <div style="line-height:200%">选择资源</div>
  8 + <div style="display: flex">
  9 + <el-input placeholder="请输入" suffix-icon="el-icon-search" style="margin-right:15px;width: 40%;"
  10 + v-model="pageindex.policyName">
  11 + </el-input>
  12 + <el-button @click="onSearch" style="background-color: #3F9B6A;color: #fff">查询
  13 + </el-button>
  14 + <el-button @click="resetting" class="buttonHover"
  15 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;">重置
  16 + </el-button>
  17 + </div>
  18 + </div>
  19 + <div style="padding: 15px;">
  20 + <div style="padding: 0px 20px 0px 0px;max-height:40vh;overflow-y: auto;">
  21 + <el-table :data="ziyuanData" tooltip-effect="dark" @selection-change="handleSelectionChange"
  22 + :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}">
  23 + <el-table-column label="选择" type="selection" width="55">
  24 + </el-table-column>
  25 + <el-table-column label="编号" prop="id">
  26 +
  27 + </el-table-column>
  28 + <el-table-column label="资源名称">
  29 + <template slot-scope="scope">
  30 + {{scope.row.shopName ? scope.row.shopName : scope.row.advertisingName?scope.row.advertisingName:scope.row.venueName}}
  31 + </template>
  32 + </el-table-column>
  33 + <el-table-column label="资源类型">
  34 + <template slot-scope="scope">
  35 + {{scope.row.shopName ? '商铺' : scope.row.advertisingType?scope.row.advertisingType:'场地'}}
  36 + </template>
  37 + </el-table-column>
  38 + </el-table>
  39 + </div>
  40 + </div>
  41 + </div>
  42 + </div>
  43 + <!-- <div style="display: flex;justify-content: space-between;margin: 20px 0;" class="bom">
  44 + <div style="font-size: 14px;">共 <span style="color: #3F9B6A;">{{total}}</span> 项数据</div>
  45 + <el-pagination :current-page="pageindex.pageNumber+1" :page-sizes="[5,10, 20, 50, 100]" :page-size="pageindex.pageSize" background
  46 + small layout="prev, pager, next" :total="total" @size-change="handleSizeChange"
  47 + @current-change="handleCurrentChange">
  48 + </el-pagination>
  49 + </div> -->
  50 + <div class="policy-selector-footer" style="display: flex; justify-content: flex-end; align-items: center;">
  51 + <el-button @click="confirm" style="background-color: #3F9B6A;color: #fff;">确定</el-button>
  52 + <el-button @click="cancel" class="buttonHover"
  53 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;">取消</el-button>
  54 + </div>
  55 + </div>
  56 +</template>
  57 +
  58 +<script>
  59 + import {
  60 + getAlls,
  61 + changAlls
  62 + } from '@/api/information.js'
  63 + import {
  64 + getAlls as map1
  65 + } from '@/api/map1.js'
  66 + export default {
  67 + name: 'PolicySelector',
  68 + data() {
  69 + return {
  70 + total: 0,
  71 + pageindex: {
  72 + pageNumber: 0,
  73 + pageSize: 5,
  74 + policyName: ''
  75 + },
  76 + selectedRows: [],
  77 + ziyuanData: []
  78 + };
  79 + },
  80 + created() {
  81 + this.getAll()
  82 + },
  83 + methods: {
  84 + async getAll() {
  85 + const ziyuan = await getAlls(this.pageindex)
  86 + const ggw = await map1(this.pageindex)
  87 + const changdi = await changAlls(this.pageindex)
  88 + this.ziyuanData = [...ziyuan.data.content, ...ggw.data.content, ...changdi.data.content]
  89 + // console.error(this.ziyuanData)
  90 + // this.total = celue.data.totalElements
  91 + },
  92 + handleCurrentChange(val) {
  93 + this.pageindex.pageNumber = val-1
  94 + this.getAll()
  95 + },
  96 + handleSizeChange(val) {
  97 + this.pageindex.pageSize = val
  98 + },
  99 + onSearch() {
  100 + this.pageindex.pageNumber = 0
  101 + this.getAll()
  102 + },
  103 + resetting() {
  104 + this.pageindex ={
  105 + pageNumber: 0,
  106 + pageSize: 5,
  107 + policyName: ''
  108 + }
  109 + this.getAll()
  110 + },
  111 + handleSelectionChange(selection) {
  112 + this.selectedRows = selection;
  113 + },
  114 + confirm() {
  115 + this.$emit('minSev', this.selectedRows);
  116 + },
  117 + cancel() {
  118 + this.$emit('mingClose');
  119 + }
  120 + }
  121 + };
  122 +</script>
  123 +
  124 +<style scoped>
  125 + .policy-selector {
  126 + padding: 20px;
  127 + width: 100%;
  128 + margin: 0 auto;
  129 + border: 1px solid #ddd;
  130 + /* border-radius: 4px; */
  131 + /* box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); */
  132 + }
  133 +
  134 + .policy-selector-header {
  135 + text-align: left;
  136 + margin-bottom: 20px;
  137 + }
  138 +
  139 + .policy-selector-header h3 {
  140 + margin: 0;
  141 + font-size: 18px;
  142 + color: #303133;
  143 + }
  144 +
  145 + .policy-selector-content {
  146 + margin-bottom: 20px;
  147 + }
  148 +
  149 + .policy-selector-footer {
  150 + display: flex;
  151 + justify-content: flex-end;
  152 + align-items: center;
  153 + }
  154 +</style>
... ...
admin-web-master/src/components/fujianUpload/fujianList copy 2.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 + <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>
  15 + </el-upload>
  16 +</template>
  17 +<script>
  18 + import {
  19 + miniioupload
  20 + } from '@/api/commodityLease.js'
  21 + // import { getAccessToken } from '@/utils/auth'
  22 + import {
  23 + uploadUrl
  24 + } from '@/utils/request'
  25 + export default {
  26 + props: {
  27 + value: [String, Object, Array],
  28 + // 图片数量限制
  29 + limit: {
  30 + type: Number,
  31 + default: 1
  32 + },
  33 + filePath: {
  34 + type: String,
  35 + default: 'other'
  36 + },
  37 + // 大小限制(MB)
  38 + fileSize: {
  39 + type: Number,
  40 + default: 5
  41 + },
  42 + // 文件类型, 例如['png', 'jpg', 'jpeg']
  43 + fileType: {
  44 + type: String,
  45 + default:'.bmp,.jpg,.jpeg,.png',
  46 + },
  47 + // 是否显示提示
  48 + isShowTip: {
  49 + type: Boolean,
  50 + default: true
  51 + }
  52 + },
  53 + data() {
  54 + return {
  55 +
  56 + host: '',
  57 + number: 0,
  58 + uploadList: [],
  59 + dialogImageUrl: '',
  60 + dialogVisible: false,
  61 + hideUpload: false,
  62 + uploadFileUrl: uploadUrl, // 请求地址
  63 + headers: {
  64 + Authorization: ''
  65 + }, // 设置上传的请求头部
  66 + fileList: [],
  67 + }
  68 + },
  69 + computed: {
  70 + // 是否显示提示
  71 + showTip() {
  72 + return this.isShowTip && (this.fileType || this.fileSize)
  73 + }
  74 + },
  75 + watch: {
  76 + value: {
  77 + handler(val) {
  78 + if (val) {
  79 + // 首先将值转为数组
  80 + this.uploadList = []
  81 + const list = Array.isArray(val) ? val : this.value.split(',')
  82 + // 然后将数组转为对象数组
  83 + for (const item of list) {
  84 + if (typeof item === 'string') {
  85 + let info = {
  86 + name: this.$baseURL+item,
  87 + url: this.$baseURL+item
  88 + }
  89 + this.uploadList.push(item)
  90 + this.fileList.push(info)
  91 + }
  92 + }
  93 + } else {
  94 + this.uploadList = []
  95 + this.fileList = []
  96 + return []
  97 + }
  98 + },
  99 + deep: true,
  100 + immediate: true
  101 + }
  102 + },
  103 + methods: {
  104 + checkFileType(file) {
  105 + console.error(file)
  106 + let {
  107 + accept
  108 + } = this.options;
  109 + if (!accept || accept === '*') {
  110 + return true;
  111 + }
  112 + accept = accept.toLowerCase().replace(/\s/g, '');
  113 + const acceptTypeList = accept.split(',');
  114 + const fileType = file.name.match(/\.\w*$/)?.shift() ?? '';
  115 + return acceptTypeList.includes(fileType.toLowerCase());
  116 + },
  117 + checkSize({
  118 + size
  119 + }) {
  120 + return size <= this.options.limitSize * 1024 * 1024;
  121 + },
  122 + filesCheck(files) {
  123 + const limit = this.limit;
  124 + const limitSize = this.fileSize;
  125 + const accept = this.fileType;
  126 + if (this.uploadList.length + files.length > limit) {
  127 + this.$message.error(`最多上传${limit}个文件`);
  128 + return false;
  129 + }
  130 + for (let index = 0; index < files.length; index++) {
  131 + const file = files[index];
  132 + if (!this.checkFileType(file)) {
  133 + this.$message.error(`请上传${accept}等格式`);
  134 + return false;
  135 + }
  136 + if (!this.checkSize(file)) {
  137 + this.$message.error(`文件大小不能超过 ${limitSize}MB!`);
  138 + return false;
  139 + }
  140 + }
  141 +
  142 + return true;
  143 + },
  144 + handleUpload(response) {
  145 + // if (!this.filesCheck(response)) {
  146 + // return;
  147 + // }
  148 + // console.error(response)
  149 + // return
  150 + let fd = new FormData()
  151 + fd.append('file', response.raw)
  152 + fd.append('filePath',this.filePath)
  153 + miniioupload(fd).then(res => {
  154 + console.error(res)
  155 + const fileMsg = {
  156 + name: response.name,
  157 + url: this.$baseURL + res.data,
  158 + }
  159 + this.fileList.push(fileMsg)
  160 + this.uploadList.push(res.data)
  161 + this.$emit('changimg',this.uploadList.join(','))
  162 + })
  163 + },
  164 + // 删除图片
  165 + handleRemove(file, fileList) {
  166 + this.fileList = []
  167 + this.uploadList = []
  168 + this.$emit('changimg',this.uploadList.join(','))
  169 + // const findex = this.fileList.map(f => f.name).indexOf(file.name)
  170 + // if (findex > -1) {
  171 + // this.fileList.splice(findex, 1)
  172 + // this.uploadList.splice(findex, 1)
  173 +
  174 + // }
  175 + },
  176 + // 上传成功回调
  177 + handleUploadSuccess(res) {
  178 + this.uploadList.push({
  179 + name: res.data.url,
  180 + url: res.data.url
  181 + })
  182 + console.log(this.uploadList)
  183 + if (this.uploadList.length === this.number) {
  184 + this.fileList = this.fileList.concat(this.uploadList)
  185 + this.uploadList = []
  186 + this.number = 0
  187 + this.$emit('input', this.listToString(this.fileList))
  188 + // this.$modal.closeLoading()
  189 + }
  190 + },
  191 + // 上传前loading加载
  192 + handleBeforeUpload(file) {
  193 + // let isImg = false
  194 + // if (this.fileType.length) {
  195 + // let fileExtension = ''
  196 + // if (file.name.lastIndexOf('.') > -1) {
  197 + // fileExtension = file.name.slice(file.name.lastIndexOf('.') + 1)
  198 + // }
  199 + // isImg = this.fileType.some(type => {
  200 + // if (file.type.indexOf(type) > -1) return true
  201 + // if (fileExtension && fileExtension.indexOf(type) > -1) return true
  202 + // return false
  203 + // })
  204 + // } else {
  205 + // isImg = file.type.indexOf('image') > -1
  206 + // }
  207 +
  208 + // if (!isImg) {
  209 + // this.$message.error(`文件格式不正确, 请上传${this.fileType.join('/')}图片格式文件!`)
  210 + // return false
  211 + // }
  212 + // if (this.fileSize) {
  213 + // const isLt = file.size / 1024 / 1024 < this.fileSize
  214 + // if (!isLt) {
  215 + // this.$message.error(`上传头像图片大小不能超过 ${this.fileSize} MB!`)
  216 + // return false
  217 + // }
  218 + // }
  219 + // this.$message.warning('正在上传图片,请稍候...')
  220 + // this.number++
  221 + },
  222 + // 文件个数超出
  223 + handleExceed() {
  224 + this.$message.error(`上传文件数量不能超过 ${this.limit} 个!`)
  225 + },
  226 + // 上传失败
  227 + handleUploadError() {
  228 + this.$message.error('上传图片失败,请重试')
  229 + // this.$modal.closeLoading()
  230 + },
  231 + // 预览
  232 + handlePictureCardPreview(file) {
  233 + this.dialogImageUrl = file.url
  234 + this.dialogVisible = true
  235 + },
  236 + // 对象转成指定字符串分隔
  237 + listToString(list, separator) {
  238 + let strs = ''
  239 + separator = separator || ','
  240 + for (const i in list) {
  241 + strs += list[i].url.replace(this.baseUrl, '') + separator
  242 + }
  243 + return strs !== '' ? strs.substr(0, strs.length - 1) : ''
  244 + }
  245 + }
  246 + }
  247 +</script>
  248 +<style lang="scss" scoped>
  249 + ::v-deep .el-upload {
  250 + text-align: left !important;
  251 + }
  252 + .tips {
  253 + color: #0006;
  254 + font: 14px 'Alibaba PuHuiTi 2.0-55 Regular';
  255 + line-height: 38px;
  256 + }
  257 +</style>
0 258 \ No newline at end of file
... ...
admin-web-master/src/components/fujianUpload/fujianList.vue
1 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   - <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>
  2 + <div class="upload-container">
  3 + <div class="card-list-box">
  4 +
  5 + <div style="position: relative;width: 100%;">
  6 + <input :accept="options.accept" style="opacity: 0;position: absolute;" :id="inputtype" ref="fileInput" type="file" :multiple="true"
  7 + @change="handleUploadFile" />
  8 + <div v-if="localValue && localValue.length < options.limit && !options.disabled" style="display: flex;align-items: center;width: 100%;">
  9 + <el-button @click="handleUpload" style="background-color: #fff;color: #000;border: 1px solid #dcdfe6;" class="buttonHover">
  10 + <div style="display: flex;align-items: center;">
  11 + <img src="@/assets/images/upload.png" style="width: 16px;height: 16px;margin-right: 4px;" alt="">
  12 + <span style="">上传附件</span>
  13 + </div>
  14 + </el-button>
  15 + <div class="tips" style="margin-left: 10px;">不超过{{ options.limitSize }}MB</div>
  16 + </div>
  17 + </div>
  18 + <div v-for="(file, i) in localValue" :key="'upload-BaseImage' + i" style="display: flex;justify-content: space-between;width: 100%;">
  19 + <div>文件{{i+1}}</div>
  20 + <div title="删除" class="delete-box"
  21 + @click="handleDeleteImg(file, i)">
  22 + <i class="el-icon-close"></i>
11 23 </div>
12   - </el-button>
13   - <div v-if="fileList.length < limit" slot="tip" class="tips" style="margin-left: 10px;">不超过{{ fileSize }}MB</div>
  24 + </div>
14 25 </div>
15   - </el-upload>
  26 + </div>
16 27 </template>
  28 +
17 29 <script>
  30 + // import { uploadFiles, uploadStraightFile } from '@/api/commonApi/file';
18 31 import {
19 32 miniioupload
20 33 } from '@/api/commodityLease.js'
21   - // import { getAccessToken } from '@/utils/auth'
22   - import {
23   - uploadUrl
24   - } from '@/utils/request'
  34 + import BaseImage from '@/components/BaseImage/index.vue';
  35 +
25 36 export default {
  37 + components: {
  38 + BaseImage,
  39 + },
  40 + name: 'BaseUpload',
26 41 props: {
27   - value: [String, Object, Array],
28   - // 图片数量限制
29   - limit: {
30   - type: Number,
31   - default: 1
  42 + value: {
  43 + type: String,
  44 + default: '',
  45 + },
  46 + cmpOption: {
  47 + type: Object,
  48 + default: () => ({
  49 + disabled: false,
  50 + isSetCover: true,
  51 + }),
32 52 },
33 53 filePath: {
34 54 type: String,
35   - default: 'other'
36   - },
37   - // 大小限制(MB)
38   - fileSize: {
39   - type: Number,
40   - default: 5
  55 + default: 'other',
41 56 },
42   - // 文件类型, 例如['png', 'jpg', 'jpeg']
43   - fileType: {
  57 + inputtype: {
44 58 type: String,
45   - default:'.bmp,.jpg,.jpeg,.png',
  59 + default: '',
  60 + },
  61 + limit: {
  62 + type: Number,
  63 + default: 1,
46 64 },
47   - // 是否显示提示
48   - isShowTip: {
49   - type: Boolean,
50   - default: true
51   - }
52 65 },
53 66 data() {
54 67 return {
55   -
56   - host: '',
57   - number: 0,
58   - uploadList: [],
59   - dialogImageUrl: '',
60   - dialogVisible: false,
61   - hideUpload: false,
62   - uploadFileUrl: uploadUrl, // 请求地址
63   - headers: {
64   - Authorization: ''
65   - }, // 设置上传的请求头部
66   - fileList: [],
67   - }
68   - },
69   - computed: {
70   - // 是否显示提示
71   - showTip() {
72   - return this.isShowTip && (this.fileType || this.fileSize)
73   - }
  68 + fileList:[],
  69 + onforIndex:0,
  70 + localValue: [],
  71 + options: {
  72 + limitSize: 10,
  73 + accept: '.mp4',
  74 + multiple: false,
  75 + limit: 1,
  76 + disabled: false,
  77 + field: 'files',
  78 + reqParams: {
  79 + code: 2000
  80 + },
  81 + },
  82 + reactiveData: {
  83 + files: [],
  84 + filesIng: [],
  85 + status: 'uploading',
  86 + message: '上传中...',
  87 + total: 0,
  88 + loaded: 0,
  89 + lengthComputable: false,
  90 + },
  91 + };
74 92 },
75 93 watch: {
  94 + limit: {
  95 + handler() {
  96 + this.options.limit= this.limit
  97 + },
  98 + immediate: true,
  99 + },
  100 + cmpOption: {
  101 + handler() {
  102 + this.setOptions();
  103 + },
  104 + immediate: true,
  105 + },
76 106 value: {
77 107 handler(val) {
78   - if (val) {
  108 + if (val && val !='') {
79 109 // 首先将值转为数组
80   - this.uploadList = []
81 110 const list = Array.isArray(val) ? val : this.value.split(',')
82 111 // 然后将数组转为对象数组
83   - for (const item of list) {
  112 + this.fileList = list
  113 + this.localValue = list.map(item => {
84 114 if (typeof item === 'string') {
85   - let info = {
86   - name: this.$baseURL+item,
87   - url: this.$baseURL+item
  115 + item = {
  116 + address: item,
88 117 }
89   - this.uploadList.push(item)
90   - this.fileList.push(info)
91 118 }
92   - }
  119 + return item
  120 + })
93 121 } else {
94   - this.uploadList = []
  122 + this.localValue = []
95 123 this.fileList = []
96 124 return []
97 125 }
98 126 },
99   - deep: true,
100   - immediate: true
101   - }
  127 + immediate: true,
  128 + },
102 129 },
103 130 methods: {
104   - checkFileType(file) {
105   - console.error(file)
106   - let {
107   - accept
108   - } = this.options;
109   - if (!accept || accept === '*') {
110   - return true;
  131 + async handleUploadFile(value) {
  132 + const files = value.target.files
  133 + if (!this.filesCheck(files)) {
  134 + return;
111 135 }
112   - accept = accept.toLowerCase().replace(/\s/g, '');
113   - const acceptTypeList = accept.split(',');
114   - const fileType = file.name.match(/\.\w*$/)?.shift() ?? '';
115   - return acceptTypeList.includes(fileType.toLowerCase());
  136 + this.reactiveData.filesIng = new Array(files.length);
  137 + this.reactiveData.lengthComputable = false;
  138 + this.reactiveData.status = 'uploading';
  139 + this.reactiveData.total = 0;
  140 + this.reactiveData.loaded = 0;
  141 + let c1 = await this.asyncFileUpload(Array.from(files));
  142 + console.error('-----------')
  143 + console.error(this.localValue)
  144 + console.error(c1)
  145 + let list = []
  146 + for (let i = 0; i < c1.length; i++) {
  147 + let info = {
  148 + address:c1[i]
  149 + }
  150 + list.push(info)
  151 + }
  152 + console.error(list)
  153 + this.localValue = [...this.localValue,...list]
  154 + this.reactiveData.filesIng = []
  155 + this.fileList = []
  156 + for (let i = 0; i < this.localValue.length; i++) {
  157 + this.fileList.push(this.localValue[i].address)
  158 + }
  159 + let urlstr = this.fileList.join(',')
  160 + this.$emit('changimg',urlstr)
  161 +
116 162 },
117   - checkSize({
118   - size
119   - }) {
120   - return size <= this.options.limitSize * 1024 * 1024;
  163 + setOptions() {
  164 + this.options = {
  165 + ...this.options,
  166 + ...this.cmpOption
  167 + };
  168 + },
  169 + uploadPercentage() {
  170 + return parseInt(String(this.reactiveData.loaded / (this.reactiveData.total / 100)));
  171 + },
  172 + handleUpload() {
  173 + const input = document.querySelector('#'+this.inputtype)
  174 + input.click()
  175 + },
  176 + async asyncFileUpload(formDataArray) {
  177 + console.error(formDataArray)
  178 + try {
  179 + // 初始化上传状态
  180 + this.reactiveData.status = 'uploading';
  181 + this.reactiveData.filesIng = formDataArray.map(() => ({
  182 + status: 'pending',
  183 + loaded: 0,
  184 + total: 0
  185 + }));
  186 + this.reactiveData.lengthComputable = false;
  187 + this.reactiveData.total = 0;
  188 + this.reactiveData.loaded = 0;
  189 + let list = []
  190 + // 循环遍历每个文件并进行上传
  191 + for (let i = 0; i < formDataArray.length; i++) {
  192 + const fileData = formDataArray[i];
  193 +
  194 + // 创建一个新的 FormData 对象
  195 + let fd = new FormData();
  196 + fd.append('file', fileData); // 假设 formData 包含文件
  197 + fd.append('filePath', this.filePath);
  198 +
  199 + // 更新当前文件的上传状态
  200 + this.reactiveData.filesIng[i].status = 'uploading';
  201 +
  202 + // 调用 miniioupload 方法并等待响应
  203 + const res = await miniioupload(fd);
  204 + list.push(res.data)
  205 + // 处理成功响应
  206 + this.reactiveData.filesIng[i].status = 'success';
  207 +
  208 + }
  209 +
  210 + // 所有文件上传完成
  211 + this.reactiveData.status = 'success';
  212 + this.$message.success('文件上传成功');
  213 + console.error(list)
  214 + return list
  215 + } catch (error) {
  216 + // 处理错误
  217 + console.error('上传失败:', error);
  218 + this.reactiveData.status = 'error';
  219 + this.reactiveData.filesIng = formDataArray.map(() => ({
  220 + status: 'error',
  221 + loaded: 0,
  222 + total: 0
  223 + }));
  224 + this.$message.error('上传失败');
  225 + return []
  226 + }
  227 + },
  228 + async handleDeleteImg(file, i) {
  229 + let modelValue_ = this.localValue.filter((value, index) => index != i);
  230 + this.localValue = modelValue_
  231 + this.fileList = []
  232 + for (let i = 0; i < this.localValue.length; i++) {
  233 + this.fileList.push(this.localValue[i].address)
  234 + }
  235 + let urlstr = this.fileList.join(',')
  236 + this.$emit('changimg',urlstr)
  237 + },
  238 + async handleSetCover(file, i) {
  239 + console.error(file, i)
  240 + this.onforIndex = i
121 241 },
122 242 filesCheck(files) {
123   - const limit = this.limit;
124   - const limitSize = this.fileSize;
125   - const accept = this.fileType;
126   - if (this.uploadList.length + files.length > limit) {
  243 + const {
  244 + limitSize,
  245 + accept,
  246 + limit
  247 + } = this.options;
  248 + if (this.reactiveData.files.length + files.length > limit) {
127 249 this.$message.error(`最多上传${limit}个文件`);
128 250 return false;
129 251 }
... ... @@ -141,117 +263,162 @@
141 263  
142 264 return true;
143 265 },
144   - handleUpload(response) {
145   - // if (!this.filesCheck(response)) {
146   - // return;
147   - // }
148   - // console.error(response)
149   - // return
150   - let fd = new FormData()
151   - fd.append('file', response.raw)
152   - fd.append('filePath',this.filePath)
153   - miniioupload(fd).then(res => {
154   - console.error(res)
155   - const fileMsg = {
156   - name: response.name,
157   - url: this.$baseURL + res.data,
158   - }
159   - this.fileList.push(fileMsg)
160   - this.uploadList.push(res.data)
161   - this.$emit('changimg',this.uploadList.join(','))
162   - })
163   - },
164   - // 删除图片
165   - handleRemove(file, fileList) {
166   - this.fileList = []
167   - this.uploadList = []
168   - this.$emit('changimg',this.uploadList.join(','))
169   - // const findex = this.fileList.map(f => f.name).indexOf(file.name)
170   - // if (findex > -1) {
171   - // this.fileList.splice(findex, 1)
172   - // this.uploadList.splice(findex, 1)
173   -
174   - // }
  266 + checkSize({
  267 + size
  268 + }) {
  269 + return size <= this.options.limitSize * 1024 * 1024;
175 270 },
176   - // 上传成功回调
177   - handleUploadSuccess(res) {
178   - this.uploadList.push({
179   - name: res.data.url,
180   - url: res.data.url
181   - })
182   - console.log(this.uploadList)
183   - if (this.uploadList.length === this.number) {
184   - this.fileList = this.fileList.concat(this.uploadList)
185   - this.uploadList = []
186   - this.number = 0
187   - this.$emit('input', this.listToString(this.fileList))
188   - // this.$modal.closeLoading()
  271 + checkFileType(file) {
  272 + console.error(file)
  273 + let {
  274 + accept
  275 + } = this.options;
  276 + if (!accept || accept === '*') {
  277 + return true;
189 278 }
  279 + accept = accept.toLowerCase().replace(/\s/g, '');
  280 + const acceptTypeList = accept.split(',');
  281 + const fileType = file.name.match(/\.\w*$/)?.shift() ?? '';
  282 + return acceptTypeList.includes(fileType.toLowerCase());
190 283 },
191   - // 上传前loading加载
192   - handleBeforeUpload(file) {
193   - // let isImg = false
194   - // if (this.fileType.length) {
195   - // let fileExtension = ''
196   - // if (file.name.lastIndexOf('.') > -1) {
197   - // fileExtension = file.name.slice(file.name.lastIndexOf('.') + 1)
198   - // }
199   - // isImg = this.fileType.some(type => {
200   - // if (file.type.indexOf(type) > -1) return true
201   - // if (fileExtension && fileExtension.indexOf(type) > -1) return true
202   - // return false
203   - // })
204   - // } else {
205   - // isImg = file.type.indexOf('image') > -1
206   - // }
207   -
208   - // if (!isImg) {
209   - // this.$message.error(`文件格式不正确, 请上传${this.fileType.join('/')}图片格式文件!`)
210   - // return false
211   - // }
212   - // if (this.fileSize) {
213   - // const isLt = file.size / 1024 / 1024 < this.fileSize
214   - // if (!isLt) {
215   - // this.$message.error(`上传头像图片大小不能超过 ${this.fileSize} MB!`)
216   - // return false
217   - // }
218   - // }
219   - // this.$message.warning('正在上传图片,请稍候...')
220   - // this.number++
221   - },
222   - // 文件个数超出
223   - handleExceed() {
224   - this.$message.error(`上传文件数量不能超过 ${this.limit} 个!`)
225   - },
226   - // 上传失败
227   - handleUploadError() {
228   - this.$message.error('上传图片失败,请重试')
229   - // this.$modal.closeLoading()
230   - },
231   - // 预览
232   - handlePictureCardPreview(file) {
233   - this.dialogImageUrl = file.url
234   - this.dialogVisible = true
235   - },
236   - // 对象转成指定字符串分隔
237   - listToString(list, separator) {
238   - let strs = ''
239   - separator = separator || ','
240   - for (const i in list) {
241   - strs += list[i].url.replace(this.baseUrl, '') + separator
242   - }
243   - return strs !== '' ? strs.substr(0, strs.length - 1) : ''
244   - }
245   - }
246   - }
  284 + },
  285 + };
247 286 </script>
  287 +
248 288 <style lang="scss" scoped>
249   - ::v-deep .el-upload {
250   - text-align: left !important;
251   - }
252   - .tips {
  289 + .upload-container {
  290 + width: 100%;
  291 +
  292 + .tips {
253 293 color: #0006;
254 294 font: 14px 'Alibaba PuHuiTi 2.0-55 Regular';
255 295 line-height: 38px;
256 296 }
257   -</style>
258 297 \ No newline at end of file
  298 +
  299 + .action-box {
  300 + cursor: pointer;
  301 + padding-left: 10px;
  302 +
  303 + .default-action {
  304 + color: #3f9b6a;
  305 + }
  306 + }
  307 +
  308 + .card-list-box {
  309 + width: 100%;
  310 + display: flex;
  311 + flex-wrap: wrap;
  312 +
  313 + .card-item-box {
  314 + position: relative;
  315 + width: 112px;
  316 + height: 112px;
  317 + border: 1px dotted #dcdfe6;
  318 + border-radius: 2px;
  319 + overflow: hidden;
  320 + margin: 0 10px 10px 0;
  321 +
  322 + .delete-box {
  323 + padding: 2px 5px;
  324 + position: absolute;
  325 + right: 0;
  326 + top: 0;
  327 + line-height: normal;
  328 + background-color: #000;
  329 + color: #fff;
  330 + border-radius: 50%;
  331 + transform: translate(40%, -30%);
  332 +
  333 + .el-icon-close {
  334 + font-size: 12px;
  335 + transform: translate(-30%, 20%);
  336 + }
  337 + }
  338 + }
  339 +
  340 + .card-action-box {
  341 + display: flex;
  342 + flex-direction: column;
  343 + justify-content: center;
  344 + align-items: center;
  345 + width: 112px;
  346 + height: 112px;
  347 + border: 1px dashed #cdd0d6;
  348 + border-radius: 2px;
  349 + overflow: hidden;
  350 + // margin-bottom: 10px;
  351 + background-color: #fafafa;
  352 + cursor: pointer;
  353 + font-size: 12px;
  354 + color: #00000066;
  355 +
  356 + .el-icon-plus {
  357 + font-size: 20px;
  358 + }
  359 +
  360 + &:hover {
  361 + border-color: #3f9b6a;
  362 + color: #3f9b6a;
  363 + }
  364 + }
  365 + }
  366 +
  367 + .text-list-box {
  368 + .text-item-box {
  369 + padding: 0 5px;
  370 + border-radius: 2px;
  371 + overflow: hidden;
  372 +
  373 + .file-name {
  374 + flex: 1;
  375 + }
  376 +
  377 + .text-icon {
  378 + flex-shrink: 0;
  379 + padding-right: 10px;
  380 + }
  381 +
  382 + .el-icon-close {
  383 + cursor: pointer;
  384 + padding-left: 10px;
  385 + flex-shrink: 0;
  386 + }
  387 +
  388 + &:hover {
  389 + background-color: rgba(63, 155, 106, 0.2);
  390 +
  391 + .file-name {
  392 + color: #3f9b6a;
  393 + }
  394 + }
  395 +
  396 + &:nth-child(n + 2) {
  397 + margin-top: 10px;
  398 + }
  399 + }
  400 + }
  401 +
  402 + .uploading-box {
  403 + position: absolute;
  404 + top: 0;
  405 + left: 0;
  406 + width: 100%;
  407 + height: 100%;
  408 + color: #fff;
  409 + background-color: #c0c4cc;
  410 + }
  411 +
  412 + .progress-box {
  413 + width: 100%;
  414 + height: 100%;
  415 + position: relative;
  416 +
  417 + .el-progress {
  418 + position: absolute;
  419 + right: 10px;
  420 + top: 50%;
  421 + transform: translateY(-50%);
  422 + }
  423 + }
  424 + }
  425 +</style>
... ...
admin-web-master/src/components/newmap/index.vue
... ... @@ -25,7 +25,15 @@
25 25 isonloed:{
26 26 type: Boolean,
27 27 default: false
28   - }
  28 + },
  29 + isx:{
  30 + type: Boolean,
  31 + default: true
  32 + },
  33 + message:{
  34 + type: String,
  35 + default: ''
  36 + },
29 37 },
30 38 data() {
31 39 return {
... ... @@ -48,6 +56,7 @@
48 56 center: centerLatLng,
49 57 zoom: 13
50 58 });
  59 +
51 60 // 创建标记
52 61 if(this.isonloed) {
53 62 this.marker = new qq.maps.Marker({
... ... @@ -60,13 +69,22 @@
60 69 map: this.map
61 70 });
62 71 }
63   -
  72 + if(this.isx) {
  73 + qq.maps.event.addListener(this.map, 'click', this.onMapClick);
  74 + } else {
  75 + const centerLatLng1 = new qq.maps.LatLng(this.message.split(',')[0], this.message.split(',')[1]);
  76 + console.error(this.message)
  77 + this.marker = new qq.maps.Marker({
  78 + position: centerLatLng1,
  79 + map: this.map
  80 + });
  81 + }
64 82  
65 83 // 添加点击事件监听器
66 84 // qq.maps.event.addListener(this.marker, 'click', this.onMarkerClick);
67 85  
68 86 // 添加地图点击事件监听器
69   - qq.maps.event.addListener(this.map, 'click', this.onMapClick);
  87 +
70 88  
71 89 // // 获取地址信息
72 90 // this.getAreaCode(this.lat, this.lng);
... ...
admin-web-master/src/components/newmap/map.vue 0 → 100644
  1 +<template>
  2 + <div style="position: relative;width: 100%;">
  3 + <div id="mapContainer" class="map"></div>
  4 + </div>
  5 +</template>
  6 +
  7 +<script>
  8 +export default {
  9 + name: 'TencentMap',
  10 + props: {
  11 + lat: {
  12 + type: Number,
  13 + default: 30.67
  14 + },
  15 + lng: {
  16 + type: Number,
  17 + default: 104.06
  18 + },
  19 + isonloed: {
  20 + type: Boolean,
  21 + default: false
  22 + },
  23 + isx: {
  24 + type: Boolean,
  25 + default: true
  26 + },
  27 + ontype: {
  28 + type: String,
  29 + default: '1'
  30 + },
  31 + message: {
  32 + type: Array,
  33 + default: () => []
  34 + },
  35 + },
  36 + data() {
  37 + return {
  38 + map: null,
  39 + marker: null,
  40 + address: '',
  41 + markers: [],
  42 + infoWindow: null,
  43 + };
  44 + },
  45 + mounted() {
  46 + // 初始化地图
  47 + this.initMap(this.message);
  48 + },
  49 + methods: {
  50 + initMap(e) {
  51 + // 将经纬度转换为腾讯地图的LatLng对象
  52 + const centerLatLng = new qq.maps.LatLng(this.lat, this.lng);
  53 +
  54 + // 创建地图实例
  55 + this.map = new qq.maps.Map(document.getElementById('mapContainer'), {
  56 + center: centerLatLng,
  57 + zoom: 13
  58 + });
  59 +
  60 + // 创建信息窗口实例
  61 + this.infoWindow = new qq.maps.InfoWindow({
  62 + map: this.map
  63 + });
  64 +
  65 + // 遍历 message 数组,为每个位置创建一个标记
  66 + if (e.length > 0) {
  67 + e.forEach(item => {
  68 + let list = this.ontype == '1' ? item.mapPunctuation.split(',') : this.ontype == '2' ? item.mapPunctuation.split(',') : this.ontype == '3' ? item.mapMarker.split(',') : [];
  69 + item.lat = parseFloat(list[0]);
  70 + item.lng = parseFloat(list[1]);
  71 + item.name = this.ontype == '1' ? item.shopName : this.ontype == '2' ? item.advertisingName : this.ontype == '3' ? item.venueName :'无';
  72 + const markerLatLng = new qq.maps.LatLng(item.lat, item.lng);
  73 + const marker = new qq.maps.Marker({
  74 + position: markerLatLng,
  75 + map: this.map
  76 + });
  77 +
  78 + // 为标记添加点击事件监听器
  79 + qq.maps.event.addListener(marker, 'click', () => {
  80 + this.showInfoWindow(marker, item);
  81 + });
  82 +
  83 + this.markers.push(marker);
  84 + });
  85 + }
  86 + },
  87 + showInfoWindow(marker, item) {
  88 + // 设置信息窗口的内容
  89 + const content = `
  90 + <div>
  91 + <p><strong>资源名称:</strong> ${item.name}</p>
  92 + <p><strong>位置:</strong> ${item.detailedLocation}</p>
  93 + </div>
  94 + `;
  95 +
  96 + // 设置信息窗口的位置和内容
  97 + this.infoWindow.setPosition(marker.getPosition());
  98 + this.infoWindow.setContent(content);
  99 + this.infoWindow.open();
  100 + }
  101 + }
  102 +}
  103 +</script>
  104 +
  105 +<style scoped>
  106 +.map {
  107 + width: 100%;
  108 + height: 400px;
  109 +}
  110 +
  111 +.address-info {
  112 + position: absolute;
  113 + bottom: 0;
  114 + left: 0;
  115 + z-index: 999999;
  116 + background: #fff;
  117 +}
  118 +</style>
0 119 \ No newline at end of file
... ...
admin-web-master/src/components/resourceCommodity/index copy.vue 0 → 100644
  1 +<template>
  2 + <div>
  3 + <div>
  4 + <el-tabs v-model="xiangTab">
  5 + <el-tab-pane label="资源信息" name="first">
  6 + <div style="margin-top: 30px;" class="editcss">
  7 + <TitleWithCircle title="基础信息" />
  8 + <div style="padding: 20px;">
  9 + <el-form :model="editbgid" ref="ruleForm" label-width="140px" class="demo-ruleForm">
  10 + <el-row :gutter="20">
  11 + <el-col :span="8">
  12 + <el-form-item label="商铺名称" prop="shopName">
  13 + <div class="duiqi">{{editbgid.shopName}}</div>
  14 + </el-form-item>
  15 + </el-col>
  16 + <el-col :span="8">
  17 + <el-form-item label="场地编号" prop="venueNumber">
  18 + <div class="duiqi">{{editbgid.venueNumber}}</div>
  19 + </el-form-item>
  20 + </el-col>
  21 + <el-col :span="8">
  22 + <el-form-item label="门牌号" prop="houseNumber">
  23 + <div class="duiqi">{{editbgid.houseNumber}}</div>
  24 + </el-form-item>
  25 + </el-col>
  26 + </el-row>
  27 + <el-row :gutter="20">
  28 + <el-col :span="8">
  29 + <el-form-item label="建筑形式" prop="architecturalForm">
  30 + <div class="duiqi">{{editbgid.architecturalForm}}</div>
  31 + </el-form-item>
  32 + </el-col>
  33 + <el-col :span="8">
  34 + <el-form-item label="所属绿道段" prop="belongingGreenwaySection">
  35 + <div class="duiqi">{{editbgid.belongingGreenwaySection}}</div>
  36 + </el-form-item>
  37 + </el-col>
  38 + <el-col :span="8">
  39 + <el-form-item label="所属公园/步道" prop="belongingParkTrail">
  40 + <div class="duiqi">{{editbgid.belongingParkTrail}}</div>
  41 + </el-form-item>
  42 + </el-col>
  43 + </el-row>
  44 + <el-row :gutter="20">
  45 + <el-col :span="8">
  46 + <el-form-item label="建筑面积" prop="floorSpace">
  47 + <div class="duiqi">{{editbgid.floorSpace}}</div>
  48 + </el-form-item>
  49 + </el-col>
  50 + <el-col :span="8">
  51 + <el-form-item label="实际使用面积" prop="actualUsableArea">
  52 + <div class="duiqi">{{editbgid.actualUsableArea}}</div>
  53 + </el-form-item>
  54 + </el-col>
  55 + <el-col :span="8">
  56 + <el-form-item label="所属区域" prop="belongingRegion">
  57 + <div class="duiqi">{{editbgid.belongingRegion}}</div>
  58 + </el-form-item>
  59 + </el-col>
  60 + </el-row>
  61 + <el-row :gutter="20">
  62 + <el-col :span="8">
  63 + <el-form-item label="归属部门" prop="belongingDepartment">
  64 + <div class="duiqi">{{editbgid.belongingDepartment}}</div>
  65 + </el-form-item>
  66 + </el-col>
  67 + <el-col :span="8">
  68 + <el-form-item label="负责人" prop="head">
  69 + <div class="duiqi">{{editbgid.head}}</div>
  70 + </el-form-item>
  71 + </el-col>
  72 + <el-col :span="8">
  73 + <el-form-item label="详细位置" prop="detailedLocation">
  74 + <div class="duiqi">{{editbgid.detailedLocation}}</div>
  75 + </el-form-item>
  76 + </el-col>
  77 + </el-row>
  78 + <el-form-item label="地图标点" prop="mapPunctuation" v-if="false">
  79 + <div style="width: 100%;height: 300px;">
  80 + <!-- :edit='edit' :sendMap='getChildDate' -->
  81 + <MapXian :message="parentMessage"></MapXian>
  82 + </div>
  83 + </el-form-item>
  84 + <el-form-item label="建筑图纸" prop="architecturalDrawings">
  85 + <div>
  86 + <img :src="$baseURL+item" alt="" style="width:140px;height:140px;margin-left: 15px;"
  87 + v-for="item in editbgid.architecturalDrawings.split(',')">
  88 + </div>
  89 + </el-form-item>
  90 + <el-form-item label="商铺描述" prop="shopDescription">
  91 + <div class="duiqi">{{editbgid.shopDescription}}</div>
  92 + </el-form-item>
  93 + <el-form-item label="展示主图" prop="displayMainImage">
  94 + <img v-for="item in editbgid.displayMainImage.split(',')" :src="$baseURL+item" alt="" style="width:140px;height:140px;margin-left: 15px;">
  95 + </el-form-item>
  96 + <!-- <el-form-item label="其他图片/视频" prop="otherImageVideos" >
  97 + <div class="duiqi" v-for="item in editbgid.otherImageVideos.split(',')">{{item}}</div>
  98 + </el-form-item> -->
  99 + </el-form>
  100 + </div>
  101 + </div>
  102 + </el-tab-pane>
  103 + <el-tab-pane label="招商方案信息" name="second">
  104 + <div style="margin-top: 30px;" class="editcss">
  105 + <!-- <TitleWithCircle title="招商方案信息" />
  106 + <div style="padding: 20px;">
  107 + <el-table :data="datalist1"
  108 + :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}"
  109 + tooltip-effect="dark custom-tooltip-effect">
  110 + <el-table-column label="招商方案名称" prop="planName" min-width="200">
  111 + </el-table-column>
  112 + <el-table-column label="创建日期" prop="createTime" min-width="100">
  113 + </el-table-column>
  114 + </el-table>
  115 + </div> -->
  116 + <TitleWithCircle title="策略方案" />
  117 + <div style="padding: 20px;">
  118 + <el-table :data="datalist"
  119 + :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}"
  120 + tooltip-effect="dark custom-tooltip-effect">
  121 + <el-table-column label="策略名称" prop="policyName" min-width="200">
  122 + </el-table-column>
  123 + <el-table-column label="适用资源" prop="applicableResources" min-width="100">
  124 + </el-table-column>
  125 + <el-table-column label="经营类型" prop="businessType" min-width="100">
  126 +
  127 + </el-table-column>
  128 + <el-table-column label="租金价格" prop="rentalPrice" min-width="150">
  129 + </el-table-column>
  130 + <el-table-column label="租期" prop="leaseTerm" min-width="100">
  131 + </el-table-column>
  132 + <el-table-column label="是否出租" prop="isRental" min-width="100">
  133 + <template slot-scope="scope">
  134 + {{scope.row.isRental == '0'?'否':'是'}}
  135 + </template>
  136 + </el-table-column>
  137 + <el-table-column label="是否自营" prop="planningObjectives" min-width="100">
  138 + <template slot-scope="scope">
  139 + {{scope.row.isSelfOperated == '0'?'否':'是'}}
  140 + </template>
  141 + </el-table-column>
  142 + </el-table>
  143 + </div>
  144 + </div>
  145 + </el-tab-pane>
  146 + <!-- <el-tab-pane label="租赁记录" name="third" v-if="edit">
  147 + <div style="margin-top: 30px;" class="editcss">
  148 + <div class="titles">
  149 + 租赁记录
  150 + </div>
  151 + <div style="padding: 20px;">
  152 + <el-table :data="tableData.slice((currentPage - 1) * pageSize, currentPage * pageSize)"
  153 + :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}"
  154 + tooltip-effect="dark custom-tooltip-effect">
  155 + <el-table-column label="承租商家" min-width="80">
  156 +
  157 + </el-table-column>
  158 + <el-table-column label="租赁期限" prop="houseNumber" min-width="80" show-overflow-tooltip>
  159 +
  160 + </el-table-column>
  161 + <el-table-column label="经营类型" prop="actualUsableArea" min-width="150" show-overflow-tooltip>
  162 + </el-table-column>
  163 +
  164 + <el-table-column label="租金/周期" prop="head" min-width="120" show-overflow-tooltip>
  165 + </el-table-column>
  166 + <el-table-column label="租赁状态" prop="rentalStatus" min-width="120" show-overflow-tooltip>
  167 + <template slot-scope="scope">
  168 + {{scope.row.rentalStatus=='0'?'待租':'已租'}}
  169 + </template>
  170 + </el-table-column>
  171 + <el-table-column label="当前状态" prop="publishStatus" min-width="150" show-overflow-tooltip>
  172 + <template slot-scope="scope">
  173 + {{scope.row.publishStatus=='0'?'待发布':scope.row.publishStatus=='1'?'待审核':'已审核'}}
  174 + </template>
  175 + </el-table-column>
  176 +
  177 + <el-table-column label="操作" min-width="160" fixed="right">
  178 + <template slot-scope="scope">
  179 + <div @click="handleEditForm(scope.row)" class="tableBtn greens">查看</div>
  180 + </template>
  181 + </el-table-column>
  182 + </el-table>
  183 + </div>
  184 + </div>
  185 + </el-tab-pane> -->
  186 + <!-- <el-tab-pane label="人流情况" name="fourth" v-if="edit">
  187 + <div style="margin-top: 30px;" class="editcss">
  188 + <div class="titles">
  189 + 人流量情况
  190 + </div>
  191 + </div>
  192 + </el-tab-pane>
  193 + <el-tab-pane label="物业维护记录" name="five" v-if="edit">
  194 + <div style="margin-top: 30px;" class="editcss">
  195 + <div class="titles">
  196 + 物业维护记录
  197 + </div>
  198 + </div>
  199 + </el-tab-pane> -->
  200 + </el-tabs>
  201 + </div>
  202 + <div>
  203 + <el-button class="buttonHover"
  204 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;margin-top: 20px;"
  205 + @click="changetype">返回</el-button>
  206 + </div>
  207 + </div>
  208 +</template>
  209 +
  210 +<script>
  211 + import MapXian from "@/components/MapContainer/MapXian";
  212 + import TitleWithCircle from '@/components/top/index';
  213 + import {
  214 + cereResourceStrategylist,
  215 + cereBusinessPlan
  216 + } from '@/api/newly';
  217 + export default {
  218 + components: {
  219 + TitleWithCircle,
  220 + MapXian
  221 + },
  222 + props: {
  223 + editbgid: {
  224 + type: Object,
  225 + default: function() {
  226 + return {};
  227 + },
  228 + },
  229 + },
  230 + data() {
  231 + return {
  232 + xiangTab: 'first',
  233 + list: [],
  234 + parentMessage: {},
  235 + datalist: [],
  236 + datalist1:[]
  237 + }
  238 + },
  239 + created() {
  240 +
  241 + console.error(this.editbgid)
  242 + if (this.editbgid.id) {
  243 + let c1 = {
  244 + pageNumber: 0,
  245 + pageSize: 10,
  246 + resourcesId: 'sp' + this.editbgid.id
  247 + }
  248 + cereResourceStrategylist(c1).then(res => {
  249 + console.error(res)
  250 + this.datalist = res.data
  251 + })
  252 + cereBusinessPlan(c1).then(res => {
  253 + console.error(res)
  254 + this.datalist1 = res.data
  255 + })
  256 + if (typeof this.editbgid.mapPunctuation == 'string' && this.editbgid.mapPunctuation != '') {
  257 + this.parentMessage = JSON.parse(this.editbgid.mapPunctuation)
  258 + } else {
  259 + this.parentMessage = this.editbgid.mapPunctuation
  260 + }
  261 + }
  262 + },
  263 + computed: {
  264 +
  265 + },
  266 + methods: {
  267 + changetype() {
  268 + this.xiangTab = 'first'
  269 + this.$emit('removeonaction', '1')
  270 + },
  271 + }
  272 + }
  273 +</script>
  274 +<style>
  275 + .el-form-item__label {
  276 + color: #a2a2a2;
  277 +
  278 + }
  279 +
  280 + .greens {
  281 + color: #3F9B6A;
  282 + }
  283 +</style>
... ...
admin-web-master/src/components/resourceCommodity/index.vue
... ... @@ -19,83 +19,86 @@
19 19 </el-form-item>
20 20 </el-col>
21 21 <el-col :span="8">
22   - <el-form-item label="门牌号" prop="houseNumber">
23   - <div class="duiqi">{{editbgid.houseNumber}}</div>
  22 + <el-form-item label="商铺类型" prop="shopType">
  23 + <div class="duiqi">{{editbgid.shopType=='1'?'移动铺位':editbgid.shopType=='2'?'固定铺位':'无'}}</div>
24 24 </el-form-item>
25 25 </el-col>
26 26 </el-row>
27 27 <el-row :gutter="20">
28 28 <el-col :span="8">
29   - <el-form-item label="建筑形式" prop="architecturalForm">
30   - <div class="duiqi">{{editbgid.architecturalForm}}</div>
  29 + <el-form-item label="测绘面积" prop="surveyingArea">
  30 + <div class="duiqi">{{editbgid.surveyingArea || '无'}}</div>
31 31 </el-form-item>
32 32 </el-col>
33 33 <el-col :span="8">
34   - <el-form-item label="所属绿道段" prop="belongingGreenwaySection">
35   - <div class="duiqi">{{editbgid.belongingGreenwaySection}}</div>
  34 + <el-form-item label="产权面积" prop="propertyArea">
  35 + <div class="duiqi">{{editbgid.propertyArea || '无'}}</div>
36 36 </el-form-item>
37 37 </el-col>
38 38 <el-col :span="8">
39   - <el-form-item label="所属公园/步道" prop="belongingParkTrail">
40   - <div class="duiqi">{{editbgid.belongingParkTrail}}</div>
  39 + <el-form-item label="实际使用面积" prop="actualUsableArea">
  40 + <div class="duiqi">{{editbgid.actualUsableArea || '无'}}</div>
41 41 </el-form-item>
42 42 </el-col>
43 43 </el-row>
44 44 <el-row :gutter="20">
45 45 <el-col :span="8">
46   - <el-form-item label="建筑面积" prop="floorSpace">
47   - <div class="duiqi">{{editbgid.floorSpace}}</div>
  46 + <el-form-item label="所属区域" prop="belongingRegion">
  47 + <div class="duiqi">{{editbgid.belongingRegion || '无'}}</div>
48 48 </el-form-item>
49 49 </el-col>
50 50 <el-col :span="8">
51   - <el-form-item label="实际使用面积" prop="actualUsableArea">
52   - <div class="duiqi">{{editbgid.actualUsableArea}}</div>
  51 + <el-form-item label="归属部门" prop="belongingDepartment">
  52 + <div class="duiqi">{{editbgid.belongingDepartment || '无'}}</div>
53 53 </el-form-item>
54 54 </el-col>
55 55 <el-col :span="8">
56   - <el-form-item label="所属区域" prop="belongingRegion">
57   - <div class="duiqi">{{editbgid.belongingRegion}}</div>
  56 + <el-form-item label="负责人" prop="head">
  57 + <div class="duiqi">{{editbgid.head || '无'}}</div>
58 58 </el-form-item>
59 59 </el-col>
60 60 </el-row>
61 61 <el-row :gutter="20">
62 62 <el-col :span="8">
63   - <el-form-item label="归属部门" prop="belongingDepartment">
64   - <div class="duiqi">{{editbgid.belongingDepartment}}</div>
  63 + <el-form-item label="联系人" prop="contacts">
  64 + <div class="duiqi">{{editbgid.contacts || '无'}}</div>
65 65 </el-form-item>
66 66 </el-col>
67 67 <el-col :span="8">
68   - <el-form-item label="负责人" prop="head">
69   - <div class="duiqi">{{editbgid.head}}</div>
  68 + <el-form-item label="联系方式" prop="telephone">
  69 + <div class="duiqi">{{editbgid.telephone || '无'}}</div>
70 70 </el-form-item>
71 71 </el-col>
72 72 <el-col :span="8">
73   - <el-form-item label="详细位置" prop="detailedLocation">
74   - <div class="duiqi">{{editbgid.detailedLocation}}</div>
75   - </el-form-item>
  73 +
76 74 </el-col>
77 75 </el-row>
78   - <el-form-item label="地图标点" prop="mapPunctuation" v-if="false">
  76 + <el-form-item label="详细位置" prop="detailedLocation">
  77 + <div class="duiqi">{{editbgid.detailedLocation || '无'}}</div>
  78 + </el-form-item>
  79 + <el-form-item label="地图标点" prop="mapPunctuation">
79 80 <div style="width: 100%;height: 300px;">
80 81 <!-- :edit='edit' :sendMap='getChildDate' -->
81   - <MapXian :message="parentMessage"></MapXian>
  82 + <newmap :isx="false" :message="editbgid.mapPunctuation"></newmap>
82 83 </div>
83 84 </el-form-item>
84 85 <el-form-item label="建筑图纸" prop="architecturalDrawings">
85   - <div>
  86 + <div v-if="editbgid.architecturalDrawings">
86 87 <img :src="$baseURL+item" alt="" style="width:140px;height:140px;margin-left: 15px;"
87 88 v-for="item in editbgid.architecturalDrawings.split(',')">
88 89 </div>
  90 + <div class="duiqi" v-else>无</div>
89 91 </el-form-item>
90 92 <el-form-item label="商铺描述" prop="shopDescription">
91   - <div class="duiqi">{{editbgid.shopDescription}}</div>
  93 + <div class="duiqi">{{editbgid.shopDescription || '无'}}</div>
92 94 </el-form-item>
93 95 <el-form-item label="展示主图" prop="displayMainImage">
94 96 <img v-for="item in editbgid.displayMainImage.split(',')" :src="$baseURL+item" alt="" style="width:140px;height:140px;margin-left: 15px;">
95 97 </el-form-item>
96   - <!-- <el-form-item label="其他图片/视频" prop="otherImageVideos" >
97   - <div class="duiqi" v-for="item in editbgid.otherImageVideos.split(',')">{{item}}</div>
98   - </el-form-item> -->
  98 + <el-form-item label="其他视频" prop="otherImageVideos" >
  99 + <div class="duiqi" :class="editbgid.otherImageVideos?'greens':''" @click ="editbgid.otherImageVideos?openfile($baseURL+editbgid.otherImageVideos):''">{{editbgid.otherImageVideos?'查看详情':'无'}}</div>
  100 + <!-- <div class="duiqi" v-for="item in editbgid.otherImageVideos.split(',')">{{$baseURL+item}}</div> -->
  101 + </el-form-item>
99 102 </el-form>
100 103 </div>
101 104 </div>
... ... @@ -214,10 +217,12 @@
214 217 cereResourceStrategylist,
215 218 cereBusinessPlan
216 219 } from '@/api/newly';
  220 + import newmap from "@/components/newmap/index";
217 221 export default {
218 222 components: {
219 223 TitleWithCircle,
220   - MapXian
  224 + MapXian,
  225 + newmap
221 226 },
222 227 props: {
223 228 editbgid: {
... ... @@ -247,23 +252,39 @@
247 252 }
248 253 cereResourceStrategylist(c1).then(res => {
249 254 console.error(res)
  255 + if (!Array.isArray(res.data)) {
  256 + this.datalist = [];
  257 + return;
  258 + }
250 259 this.datalist = res.data
251 260 })
252 261 cereBusinessPlan(c1).then(res => {
253 262 console.error(res)
  263 + if (!Array.isArray(res.data)) {
  264 + this.datalist1 = [];
  265 + return;
  266 + }
254 267 this.datalist1 = res.data
255 268 })
256   - if (typeof this.editbgid.mapPunctuation == 'string' && this.editbgid.mapPunctuation != '') {
257   - this.parentMessage = JSON.parse(this.editbgid.mapPunctuation)
258   - } else {
259   - this.parentMessage = this.editbgid.mapPunctuation
260   - }
  269 +
261 270 }
262 271 },
263 272 computed: {
264 273  
265 274 },
266 275 methods: {
  276 + openfile(e) {
  277 + if (e) {
  278 + const fullUrl = e;
  279 + try {
  280 + window.open(fullUrl, '_blank'); // 在新标签页中打开文件
  281 + } catch (error) {
  282 + console.error('打开文件失败:', error);
  283 + }
  284 + } else {
  285 + console.error('无文件可查看');
  286 + }
  287 + },
267 288 changetype() {
268 289 this.xiangTab = 'first'
269 290 this.$emit('removeonaction', '1')
... ...
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/utils/request2.js
... ... @@ -17,7 +17,7 @@ let baseURL = &#39;&#39;
17 17 // || host === 'localhost:9528'
18 18 if(host === 'localhost:8080' || host === 'localhost:8081'|| host === 'localhost:9528' || host === '192.168.31.45:9528') {
19 19 // baseURL = 'https://zhld.028wlkj.com:49008/cdwlMall/business-server';
20   - baseURL = 'http://8.130.38.56:9004';
  20 + baseURL = 'http://172.16.61.125:9004';
21 21 } else {
22 22 console.error('---------------------')
23 23 console.error(hostall)
... ...
admin-web-master/src/views/couponmanagement/capitalpool.vue
... ... @@ -33,7 +33,7 @@
33 33 <!-- 表格 -->
34 34 <div class="tableBox">
35 35 <el-table ref="multipleTable" :data="tableData"
36   - :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#f5f8f9'}"
  36 + :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}"
37 37 tooltip-effect="light">
38 38 <!-- <el-table-column label="编号">
39 39 <template slot-scope="scope">{{ scope.row.poolId }}</template>
... ...
admin-web-master/src/views/couponmanagement/capitalpoolinfo.vue
... ... @@ -44,7 +44,7 @@
44 44 <el-table
45 45 ref="multipleTable"
46 46 :data="tableData"
47   - :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#f5f8f9'}"
  47 + :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}"
48 48 tooltip-effect="light"
49 49 >
50 50 <el-table-column label="优惠券名称" >
... ...
admin-web-master/src/views/couponmanagement/couponinfo.vue
... ... @@ -44,7 +44,7 @@
44 44 <!-- 表格 -->
45 45 <div class="tableBox">
46 46 <el-table ref="multipleTable" :data="qdlist" v-if="activeName == 'first'"
47   - :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#f5f8f9'}"
  47 + :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}"
48 48 tooltip-effect="light">
49 49 <el-table-column label="渠道方">
50 50 <template slot-scope="scope">{{ scope.row.channelParty }}</template>
... ... @@ -57,7 +57,7 @@
57 57 </el-table-column>
58 58 </el-table>
59 59 <el-table ref="multipleTable" :data="qdlist" v-if="activeName == 'second'"
60   - :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#f5f8f9'}"
  60 + :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}"
61 61 tooltip-effect="light">
62 62 <el-table-column label="优惠券">
63 63 <template slot-scope="scope">{{ infoyhq.couponName}}</template>
... ... @@ -70,7 +70,7 @@
70 70 </el-table-column>
71 71 </el-table>
72 72 <el-table ref="multipleTable" :data="qdlist" v-if="activeName == 'third'"
73   - :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#f5f8f9'}"
  73 + :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}"
74 74 tooltip-effect="light">
75 75 <el-table-column label="优惠券">
76 76 <template slot-scope="scope">{{ infoyhq.couponName}}</template>
... ... @@ -83,7 +83,7 @@
83 83 </el-table-column>
84 84 </el-table>
85 85 <el-table ref="multipleTable" :data="qdlist" v-if="activeName == 'fourth'"
86   - :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#f5f8f9'}"
  86 + :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}"
87 87 tooltip-effect="light">
88 88 <el-table-column label="商家">
89 89 <template slot-scope="scope">{{ scope.row.shop.shopName }}</template>
... ...
admin-web-master/src/views/couponmanagement/couponlist.vue
... ... @@ -24,7 +24,7 @@
24 24 <el-table
25 25 ref="multipleTable"
26 26 :data="tableData"
27   - :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#f5f8f9'}"
  27 + :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}"
28 28 tooltip-effect="light"
29 29  
30 30 >
... ...
admin-web-master/src/views/detect/admap.vue
... ... @@ -5,6 +5,21 @@
5 5 <div style="color:#0006"> <span>招商资源监测</span> <span style="padding:0 5px;">></span> <span
6 6 style="color:#000000e6">资源地图</span></div>
7 7 </div>
  8 + <div class="formSearch">
  9 + <el-form :inline="true">
  10 + <el-form-item label="资源名称" prop="name">
  11 + <el-input v-model="name" placeholder="请输入" maxlength="50"></el-input>
  12 + </el-form-item>
  13 + </el-form>
  14 +
  15 + <div>
  16 + <el-button @click="onSubmit" style="background-color: #3F9B6A;color: #fff">查询
  17 + </el-button>
  18 + <el-button @click="resetting" class="buttonHover"
  19 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;">重置
  20 + </el-button>
  21 + </div>
  22 + </div>
8 23 <!-- 线上 -->
9 24 <div>
10 25 <div style="margin-bottom: 20px;">
... ... @@ -15,7 +30,7 @@
15 30 <!-- 地图 -->
16 31 <div style="display: flex;justify-content: space-between;margin-bottom: 20px;">
17 32 <div style="width: 100%;height: 400px; border: 1px solid #3F9B6A;position: relative;">
18   - <MapContainer :message="tableData" @MapItem='HandMapItem' ref="mapComponent"></MapContainer>
  33 + <mapchakannew :ontype="ontype" ref="mapchakannewrefs"></mapchakannew>
19 34 </div>
20 35 </div>
21 36 <div style="margin: 20px 0;">
... ... @@ -29,39 +44,41 @@
29 44 </div>
30 45 </div>
31 46 <!-- 表格 -->
32   - <el-table v-if="ontype=='1'" :data="tableData"
  47 + <el-table v-if="ontype=='1'" :data="tableData"
33 48 :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}">
34   - <el-table-column label="序号" min-width="80">
  49 + <el-table-column label="序号" width="50">
35 50 <template slot-scope="scope">
36 51 {{scope.$index +1 }}
37 52 </template>
38 53 </el-table-column>
39   - <el-table-column label="编号" prop="venueNumber" show-overflow-tooltip>
40   - </el-table-column>
41   - <el-table-column label="门牌号" prop="houseNumber" show-overflow-tooltip>
42   -
43   - </el-table-column>
44   - <el-table-column label="商铺名称" prop="shopName" show-overflow-tooltip>
45   -
  54 + <el-table-column label="商铺名称" prop="shopName" show-overflow-tooltip></el-table-column>
  55 + <el-table-column label="商铺类型" prop="publishStatus" show-overflow-tooltip>
  56 + <template slot-scope="scope">
  57 + {{scope.row.shopType=='1'?'移动铺位':scope.row.shopType=='2'?'固定铺位':'无'}}
  58 + </template>
46 59 </el-table-column>
47 60 <el-table-column label="所属区域" prop="belongingRegion" show-overflow-tooltip>
48 61 </el-table-column>
49   - <el-table-column label="建筑形式" prop="architecturalForm" show-overflow-tooltip>
  62 + <el-table-column prop="detailedLocation" width="180" label="详细地址" show-overflow-tooltip>
50 63 </el-table-column>
51   - <el-table-column prop="detailedLocation" label="详细地址" show-overflow-tooltip>
52   - </el-table-column>
53   - <el-table-column label="实际使用面积" prop="actualUsableArea" show-overflow-tooltip>
  64 + <el-table-column label="实际使用面积" prop="actualUsableArea" show-overflow-tooltip>
  65 + <template slot-scope="scope">
  66 + {{scope.row.actualUsableArea || '无'}}
  67 + </template>
54 68 </el-table-column>
55 69 <el-table-column label="负责人" prop="head" show-overflow-tooltip>
  70 + <template slot-scope="scope">
  71 + {{scope.row.head || '无'}}
  72 + </template>
56 73 </el-table-column>
57 74 <el-table-column label="租赁到期时间" prop="leaseExpirationDate" show-overflow-tooltip>
58 75 </el-table-column>
59 76 <el-table-column label="状态" prop="publishStatus" show-overflow-tooltip>
60 77 <template slot-scope="scope">
61   - {{scope.row.publishStatus=='0'?'待发布':scope.row.publishStatus=='1'?'已发布':scope.row.publishStatus=='2'?'已下架':scope.row.publishStatus=='3'?'待审核':scope.row.publishStatus=='4'?'驳回':'-'}}
  78 + {{scope.row.publishStatus=='0'?'待发布':scope.row.publishStatus=='1'?'已发布':scope.row.publishStatus=='2'?'空置中':scope.row.publishStatus=='3'?'待审核':scope.row.publishStatus=='4'?'驳回':'-'}}
62 79 </template>
63 80 </el-table-column>
64   - <el-table-column label="操作" min-width="250" fixed="right">
  81 + <el-table-column label="操作" min-width="100" fixed="right">
65 82 <template slot-scope="scope">
66 83 <div @click="details(scope.row)" class="tableBtn greens">查看</div>
67 84 <div class="tableBtn greens" v-if="scope.row.publishStatus=='0'" @click="removeinfo(scope.row,'编辑')">编辑
... ... @@ -74,42 +91,24 @@
74 91 </template>
75 92 </el-table-column>
76 93 </el-table>
77   - <el-table v-if="ontype=='2'" :data="tableData"
  94 + <el-table v-if="ontype=='2'" :data="tableData"
78 95 :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}">
79   - <el-table-column label="序号" min-width="100">
  96 + <el-table-column label="序号" width="50">
80 97 <template slot-scope="scope">
81 98 {{scope.$index +1}}
82 99 </template>
83 100 </el-table-column>
84   - <el-table-column label="广告位名称" prop="advertisingName" min-width="200">
85   - </el-table-column>
86   - <el-table-column label="广告位类型" prop="advertisingType" min-width="150">
87   - </el-table-column>
88   - <!-- <el-table-column label="详细地址" prop="detailedLocation" min-width="200">
  101 + <el-table-column label="广告位名称" prop="advertisingName">
89 102 </el-table-column>
90   - <el-table-column label="设备类型" prop="deviceType" min-width="150">
  103 + <el-table-column label="广告位类型" prop="advertisingType" >
91 104 </el-table-column>
92   - <el-table-column label="设备尺寸" prop="equipmentSize" min-width="200">
93   - </el-table-column>
94   - <el-table-column label="场地编号" prop="venueNumber" min-width="150">
95   - </el-table-column>
96   - <el-table-column label="广告尺寸" prop="dimensions" min-width="200">
97   - </el-table-column>
98   - <el-table-column label="广告材质" prop="advertisingMaterial" min-width="150">
99   - </el-table-column>
100   - <el-table-column prop="createUser" label="创建人" min-width="120">
101   - </el-table-column>
102   - <el-table-column prop="rentalStatus" label="租赁状态" min-width="120">
  105 + <el-table-column label="广告尺寸" prop="dimensions" show-overflow-tooltip></el-table-column>
  106 + <el-table-column prop="publishStatus" label="发布状态" >
103 107 <template slot-scope="scope">
104   - {{scope.row.rentalStatus == 0?'未租':'已租'}}
105   - </template>
106   - </el-table-column> -->
107   - <el-table-column prop="publishStatus" label="发布状态" min-width="120">
108   - <template slot-scope="scope">
109   - {{scope.row.publishStatus=='0'?'待发布':scope.row.publishStatus=='1'?'已发布':scope.row.publishStatus=='2'?'已下架':scope.row.publishStatus=='3'?'待审核':scope.row.publishStatus=='4'?'驳回':'-'}}
  108 + {{scope.row.publishStatus=='0'?'待发布':scope.row.publishStatus=='1'?'已发布':scope.row.publishStatus=='2'?'空置中':scope.row.publishStatus=='3'?'待审核':scope.row.publishStatus=='4'?'驳回':'-'}}
110 109 </template>
111 110 </el-table-column>
112   - <el-table-column prop="leaseExpirationDate" label="租赁到期时间" min-width="200">
  111 + <el-table-column prop="leaseExpirationDate" label="租赁到期时间" >
113 112 </el-table-column>
114 113 <el-table-column label="操作" fixed="right">
115 114 <template slot-scope="scope">
... ... @@ -124,45 +123,38 @@
124 123 </template>
125 124 </el-table-column>
126 125 </el-table>
127   - <el-table v-if="ontype=='3'" :data="tableData"
  126 + <el-table v-if="ontype=='3'" :data="tableData"
128 127 :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}">
129   - <el-table-column label="序号">
  128 + <el-table-column label="序号" width="50">
130 129 <template slot-scope="scope">
131 130 {{scope.$index +1}}
132 131 </template>
133 132 </el-table-column>
134   - <!-- <el-table-column label="编号" prop="id" v-if="activeName == 'second'">
135   - </el-table-column> -->
136   - <el-table-column label="场地名称" prop="venueName">
  133 + <el-table-column label="场地名称" prop="venueName" show-overflow-tooltip>
137 134 </el-table-column>
138   - <el-table-column label="实际使用面积" prop="actualArea">
  135 + <el-table-column label="场地类型" prop="venueType" show-overflow-tooltip>
139 136 </el-table-column>
140   - <el-table-column label="场地类型" prop="venueType">
  137 + <el-table-column label="实际使用面积" prop="actualArea" show-overflow-tooltip>
141 138 </el-table-column>
142   - <el-table-column label="所属区域" prop="district">
  139 + <el-table-column label="所属区域" prop="district" show-overflow-tooltip>
143 140 </el-table-column>
144   - <el-table-column label="详细位置" prop="detailedLocation">
  141 + <el-table-column label="详细位置" prop="detailedLocation" show-overflow-tooltip>
145 142 </el-table-column>
146   - <!-- <el-table-column label="租赁状态" >
147   - </el-table-column> -->
148   - <!-- <el-table-column label="状态" >
149   - </el-table-column> -->
150   - <el-table-column prop="publishStatus" label="发布状态" min-width="120">
  143 + <el-table-column prop="publishStatus" label="发布状态">
151 144 <template slot-scope="scope">
152   - {{scope.row.publishStatus == 0?'待发布':'已提交'}}
  145 + {{scope.row.publishStatus=='0'?'待发布':scope.row.publishStatus=='1'?'已发布':scope.row.publishStatus=='2'?'空置中':scope.row.publishStatus=='3'?'待审核':scope.row.publishStatus=='4'?'驳回':'-'}}
153 146 </template>
154 147 </el-table-column>
155   - <el-table-column label="操作" fixed="right">
  148 + <el-table-column label="操作" fixed="right">
156 149 <template slot-scope="scope">
157 150 <div @click="details(scope.row)" class="tableBtn greens">查看</div>
158   - <!-- <div @click="opencl(scope.row,'cd')" class="tableBtn greens">绑定策略</div> -->
159   - <div class="tableBtn greens" @click="removeinfo(scope.row,'编辑')">编辑
  151 + <div class="tableBtn greens" v-if="scope.row.publishStatus=='0'" @click="removeinfo(scope.row,'编辑')">编辑
160 152 </div>
161   - <!-- <div class="tableBtn greens" v-if="scope.row.publishStatus=='0'" @click="closemsg(scope.row)">删除</div>
  153 + <div class="tableBtn greens" v-if="scope.row.publishStatus=='0'" @click="closemsg(scope.row)">删除</div>
162 154 <div class="tableBtn greens" v-if="scope.row.publishStatus=='0'"
163   - @click="removeinfozz(scope.row,'1','发布')">发布</div>
  155 + @click="opencl(scope.row,'cd')">发布</div>
164 156 <div class="tableBtn greens" v-if="scope.row.publishStatus=='1'"
165   - @click="removeinfozz(scope.row,'0','下架')">下架</div> -->
  157 + @click="removeinfozz(scope.row,'2','下架')">下架</div>
166 158 </template>
167 159 </el-table-column>
168 160 </el-table>
... ... @@ -185,10 +177,10 @@
185 177  
186 178 <div class="zhuti" v-if="onaction == '2'">
187 179 <div style="height:58px;line-height:58px;">
188   - <div style="color:#0006"> <span>{{onaction == '1'?'商铺基本信息':onaction == '2'?'广告位基本信息管理':onaction == '3'?'场地基本信息管理':'-' }}</span> <span style="padding:0 5px;">></span> <span
  180 + <div style="color:#0006"> <span>{{ontype == '1'?'商铺基本信息':ontype == '2'?'广告位基本信息管理':ontype == '3'?'场地基本信息管理':'-' }}</span> <span style="padding:0 5px;">></span> <span
189 181 style="color:#000000e6">新增</span></div>
190 182 </div>
191   - <div style="margin: 20px 0;">
  183 + <div style="margin: 0 0;">
192 184 <div style="display: flex;font-size: 14px">
193 185 <div style="margin-right: 25px;cursor: pointer;" @click="chenge('1')" :class="ontype=='1'?'chengeXia':''">商铺
194 186 </div>
... ... @@ -202,7 +194,7 @@
202 194 <add @removeonaction="removeonaction"></add>
203 195 </div>
204 196 <div v-if="ontype == '2'" style="padding: 20px 20px 20px 0;">
205   - <addmap @removeonaction="removeonaction" :leixing="leixing"></addmap>
  197 + <addmap @removeonaction="removeonaction" type="all" :leixing="leixing"></addmap>
206 198 </div>
207 199 <div v-if="ontype == '3'" style="padding: 20px 20px 20px 0;">
208 200 <addcd @removeonaction="removeonaction"></addcd>
... ... @@ -210,7 +202,7 @@
210 202 </div>
211 203 <div class="zhuti" v-if="onaction == '3'">
212 204 <div style="height:58px;line-height:58px;">
213   - <div style="color:#0006"> <span>{{onaction == '1'?'商铺基本信息':onaction == '2'?'广告位基本信息管理':onaction == '3'?'场地基本信息管理':'-' }}</span> <span style="padding:0 5px;">></span> <span
  205 + <div style="color:#0006"> <span>{{ontype == '1'?'商铺基本信息':ontype == '2'?'广告位基本信息管理':ontype == '3'?'场地基本信息管理':'-' }}</span> <span style="padding:0 5px;">></span> <span
214 206 style="color:#000000e6">查看</span></div>
215 207 </div>
216 208 <div v-if="ontype == '1'">
... ... @@ -225,7 +217,7 @@
225 217 </div>
226 218 <div class="zhuti" v-if="onaction == '4'">
227 219 <div style="height:58px;line-height:58px;">
228   - <div style="color:#0006"> <span>{{onaction == '1'?'商铺基本信息':onaction == '2'?'广告位基本信息管理':onaction == '3'?'场地基本信息管理':'-' }}</span> <span style="padding:0 5px;">></span> <span
  220 + <div style="color:#0006"> <span>{{ontype == '1'?'商铺基本信息':ontype == '2'?'广告位基本信息管理':ontype == '3'?'场地基本信息管理':'-' }}</span> <span style="padding:0 5px;">></span> <span
229 221 style="color:#000000e6">{{contractChangeReason}}</span></div>
230 222 </div>
231 223 <div v-if="ontype == '1'" style="padding: 20px 20px 20px 0;">
... ... @@ -271,12 +263,11 @@
271 263 import chakanmap from '../../components/chakan/map'
272 264 import chakancd from '../../components/chakan/cd'
273 265 import cl from '@/components/change/cl.vue'
274   - import {
275   - on
276   - } from 'screenfull';
  266 + import mapchakannew from '@/components/newmap/map'
277 267 export default {
278 268 data() {
279 269 return {
  270 + name:'',
280 271 oninfo: {},
281 272 celueData: [],
282 273 clData: [],
... ... @@ -289,10 +280,8 @@
289 280 contractChangeReason: '',
290 281 detailsinfo: {},
291 282 pagequery: {
292   - dataStatus: '1',
293 283 pageNumber: 0,
294 284 pageSize: 10,
295   - contractName: ''
296 285 },
297 286 tableData: [],
298 287 total: 0,
... ... @@ -305,6 +294,7 @@
305 294 }
306 295 },
307 296 components: {
  297 + mapchakannew,
308 298 cl,
309 299 chakancd,
310 300 addcd,
... ... @@ -483,18 +473,21 @@
483 473 },
484 474 async getAll() {
485 475 if (this.ontype == '1') {
486   - const res = await getAlls(this.pagequery)
  476 + const res = await getAlls({...this.pagequery,shopName:this.name})
487 477 this.tableData = res.data.content
488 478 this.total = res.data.totalElements
489 479 } else if (this.ontype == '2') {
490   - const res = await likeGet(this.pagequery)
  480 + const res = await likeGet({...this.pagequery,advertisingName:this.name})
491 481 this.tableData = res.data.content
492 482 this.total = res.data.totalElements
493 483 } else if (this.ontype == '3') {
494   - const res = await changAlls(this.pagequery)
  484 + const res = await changAlls({...this.pagequery,venueName:this.name})
495 485 this.tableData = res.data.content
496 486 this.total = res.data.totalElements
497 487 }
  488 + // console.error(']]]]]]]]]')
  489 + // console.error(this.tableData)
  490 + this.$refs.mapchakannewrefs.initMap(this.tableData)
498 491  
499 492 },
500 493 removeonaction(e) {
... ... @@ -520,9 +513,8 @@
520 513 this.pagequery = {
521 514 pageNumber: 0,
522 515 pageSize: 10,
523   - dataStatus: '1',
524   - contractName: ''
525 516 },
  517 + this.name = ''
526 518 this.getAll()
527 519 },
528 520 //删除
... ... @@ -627,6 +619,12 @@
627 619 }
628 620 </script>
629 621 <style lang="scss" scoped>
  622 + .formSearch {
  623 + display: flex;
  624 + width: 100%;
  625 + font-size: 14px;
  626 + justify-content: space-between;
  627 + }
630 628 .zhuti {
631 629 padding: 0 20px 20px 20px;
632 630 min-height: calc(100vh - 50px - 20px);
... ... @@ -644,6 +642,13 @@
644 642 margin-right: 10px;
645 643 cursor: pointer;
646 644 }
  645 + ::v-deep .el-dialog__body {
  646 + padding: 0 0 !important;
  647 + }
  648 + .el-dialog__header{
  649 + padding: 0;
  650 + display: none;
  651 + }
647 652 </style>
648 653  
649 654  
... ...
admin-web-master/src/views/detect/examine/index.vue
... ... @@ -8,26 +8,18 @@
8 8 <!-- 线上 -->
9 9 <div>
10 10 <!-- 搜索 -->
11   - <!-- <div class="formSearch">
12   - <el-form :inline="true" :model="pagequery">
13   - <el-form-item label="所属区域" prop="belongingRegion">
14   - <el-select v-model="pagequery.belongingRegion" placeholder="请选择" style="width: 168px;margin-right: 15px">
15   - <el-option label="成华区" value="成华区"></el-option>
16   - <el-option label="武侯区" value="武侯区"></el-option>
17   - <el-option label="锦江区" value="锦江区"></el-option>
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-select>
  11 + <div class="formSearch">
  12 + <el-form :inline="true">
  13 + <el-form-item label="资源名称" prop="name">
  14 + <el-input v-model="name" placeholder="请输入" maxlength="50"></el-input>
  15 + </el-form-item>
  16 + <el-form-item label="策略名称" prop="clName">
  17 + <el-input v-model="clName" placeholder="请输入" maxlength="50"></el-input>
25 18 </el-form-item>
26   - <el-form-item label="建筑形式" prop="architecturalForm">
27   - <el-select v-model="pagequery.architecturalForm" placeholder="请选择"
  19 + <el-form-item label="审核状态" prop="publishStatus">
  20 + <el-select v-model="publishStatus" placeholder="请选择"
28 21 style="width: 168px;margin-right: 15px">
29   - <el-option label="框剪结构" value="框剪结构"></el-option>
30   - <el-option label="区域二" value="区域二"></el-option>
  22 + <el-option label="待审核" value="3"></el-option>
31 23 </el-select>
32 24 </el-form-item>
33 25 </el-form>
... ... @@ -39,20 +31,20 @@
39 31 style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;">重置
40 32 </el-button>
41 33 </div>
42   - </div> -->
43   - <div style="margin: 20px 0;">
  34 + </div>
  35 + <div style="margin-bottom: 20px;">
44 36 <div style="display: flex;font-size: 14px">
45 37 <div style="margin-right: 25px;cursor: pointer;" @click="chenge('1')" :class="ontype=='1'?'chengeXia':''">商铺
46 38 </div>
47   - <!-- <div style="margin-right: 25px;cursor: pointer;" @click="chenge('2')" :class="ontype=='2'?'chengeXia':''">
  39 + <div style="margin-right: 25px;cursor: pointer;" @click="chenge('2')" :class="ontype=='2'?'chengeXia':''">
48 40 广告位</div>
49 41 <div style="margin-right: 25px;cursor: pointer;" @click="chenge('3')" :class="ontype=='3'?'chengeXia':''">场地
50   - </div> -->
  42 + </div>
51 43 </div>
52 44 </div>
53 45 <!-- 表格 -->
54 46 <!-- -->
55   - <el-table border v-if="ontype=='1'" :span-method="objectSpanMethod" :data="tableData"
  47 + <el-table v-if="ontype=='1'" :span-method="objectSpanMethod" :data="tableData"
56 48 :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}">
57 49 <el-table-column label="商铺名称" prop="shopName" show-overflow-tooltip>
58 50 <template slot-scope="scope">
... ... @@ -86,16 +78,12 @@
86 78 </el-table-column>
87 79 <el-table-column label="状态" prop="publishStatus" show-overflow-tooltip>
88 80 <template slot-scope="scope">
89   - {{scope.row.cereBasicInformationShop.publishStatus=='0'?'待发布':scope.row.cereBasicInformationShop.publishStatus=='1'?'已发布':scope.row.cereBasicInformationShop.publishStatus=='2'?'已下架':scope.row.cereBasicInformationShop.publishStatus=='3'?'待审核':scope.row.cereBasicInformationShop.publishStatus=='4'?'驳回':'-'}}
  81 + {{scope.row.cereBasicInformationShop.publishStatus=='0'?'待发布':scope.row.cereBasicInformationShop.publishStatus=='1'?'已发布':scope.row.cereBasicInformationShop.publishStatus=='2'?'空置中':scope.row.cereBasicInformationShop.publishStatus=='3'?'待审核':scope.row.cereBasicInformationShop.publishStatus=='4'?'驳回':'-'}}
90 82 </template>
91 83 </el-table-column>
92 84 <el-table-column label="操作" fixed="right">
93 85 <template slot-scope="scope">
94   - <!-- <div @click="opencl(scope.row,'sp')" class="tableBtn greens">绑定策略</div> -->
95 86 <div @click="details(scope.row.cereBasicInformationShop)" class="tableBtn greens">查看</div>
96   - <!-- <div class="tableBtn greens" v-if="scope.row.publishStatus=='0'" @click="removeinfo(scope.row,'编辑')">编辑
97   - </div> -->
98   - <!-- <div class="tableBtn greens" v-if="scope.row.publishStatus=='0'" @click="closemsg(scope.row)">删除</div> -->
99 87 <div v-if="scope.row.cereBasicInformationShop.publishStatus=='3'" class="tableBtn greens"
100 88 @click="removeinfozz(scope.row.cereBasicInformationShop,'1','通过')">通过</div>
101 89 <div v-if="scope.row.cereBasicInformationShop.publishStatus=='3'" class="tableBtn greens"
... ... @@ -103,100 +91,102 @@
103 91 </template>
104 92 </el-table-column>
105 93 </el-table>
106   - <el-table v-if="ontype=='2'" :data="tableData"
  94 + <el-table v-if="ontype=='2'" :span-method="objectSpanMethod" :data="tableData"
107 95 :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}">
108   - <el-table-column label="序号" min-width="100">
  96 + <el-table-column label="广告位名称" prop="advertisingName" show-overflow-tooltip>
109 97 <template slot-scope="scope">
110   - {{scope.$index +1}}
  98 + {{scope.row.cereAdvertisingInformation.advertisingName}}
111 99 </template>
112 100 </el-table-column>
113   - <el-table-column label="广告位名称" prop="advertisingName" min-width="200">
114   - </el-table-column>
115   - <el-table-column label="广告位类型" prop="advertisingType" min-width="150">
116   - </el-table-column>
117   - <!-- <el-table-column label="详细地址" prop="detailedLocation" min-width="200">
118   - </el-table-column>
119   - <el-table-column label="设备类型" prop="deviceType" min-width="150">
120   - </el-table-column>
121   - <el-table-column label="设备尺寸" prop="equipmentSize" min-width="200">
122   - </el-table-column>
123   - <el-table-column label="场地编号" prop="venueNumber" min-width="150">
124   - </el-table-column>
125   - <el-table-column label="广告尺寸" prop="dimensions" min-width="200">
  101 + <el-table-column prop="advertisingType" label="广告位类型" show-overflow-tooltip>
  102 + <template slot-scope="scope">
  103 + {{scope.row.cereAdvertisingInformation.advertisingType}}
  104 + </template>
126 105 </el-table-column>
127   - <el-table-column label="广告材质" prop="advertisingMaterial" min-width="150">
  106 + <el-table-column label="所属端" prop="affiliation" show-overflow-tooltip>
  107 + <template slot-scope="scope">
  108 + {{scope.row.cereAdvertisingInformation.affiliation}}
  109 + </template>
128 110 </el-table-column>
129   - <el-table-column prop="createUser" label="创建人" min-width="120">
  111 + <el-table-column label="策略名称" prop="policyName" show-overflow-tooltip>
  112 + <template slot-scope="scope">
  113 + {{scope.row.shopinfo.policyName}}
  114 + </template>
130 115 </el-table-column>
131   - <el-table-column prop="rentalStatus" label="租赁状态" min-width="120">
  116 + <el-table-column label="租金/周期" prop="rentalPrice" show-overflow-tooltip>
132 117 <template slot-scope="scope">
133   - {{scope.row.rentalStatus == 0?'未租':'已租'}}
  118 + {{scope.row.shopinfo.rentalPrice}} /{{ scope.row.shopinfo.leaseTerm }}
134 119 </template>
135   - </el-table-column> -->
136   - <el-table-column prop="publishStatus" label="发布状态" min-width="120">
  120 + </el-table-column>
  121 + <el-table-column label="付款日" prop="payDay" show-overflow-tooltip>
137 122 <template slot-scope="scope">
138   - {{scope.row.publishStatus == 0?'待发布':'已提交'}}
  123 + {{scope.row.shopinfo.payDay}}
139 124 </template>
140 125 </el-table-column>
141   - <el-table-column prop="leaseExpirationDate" label="租赁到期时间" min-width="200">
  126 + <el-table-column label="状态" prop="publishStatus" show-overflow-tooltip>
  127 + <template slot-scope="scope">
  128 + {{scope.row.cereAdvertisingInformation.publishStatus=='0'?'待发布':scope.row.cereAdvertisingInformation.publishStatus=='1'?'已发布':scope.row.cereAdvertisingInformation.publishStatus=='2'?'空置中':scope.row.cereAdvertisingInformation.publishStatus=='3'?'待审核':scope.row.cereAdvertisingInformation.publishStatus=='4'?'驳回':'-'}}
  129 + </template>
142 130 </el-table-column>
143   - <el-table-column label="操作" min-width="250" fixed="right">
  131 +
  132 + <el-table-column label="操作" fixed="right">
144 133 <template slot-scope="scope">
145   - <div @click="details(scope.row)" class="tableBtn greens">查看</div>
146   - <div @click="opencl(scope.row,'gg')" class="tableBtn greens">绑定策略</div>
147   - <div class="tableBtn greens" v-if="scope.row.publishStatus=='0'" @click="removeinfo(scope.row,'编辑')">编辑
148   - </div>
149   - <div class="tableBtn greens" v-if="scope.row.publishStatus=='0'" @click="closemsg(scope.row)">删除</div>
150   - <div class="tableBtn greens" v-if="scope.row.publishStatus=='0'"
151   - @click="removeinfozz(scope.row,'1','发布')">发布</div>
152   - <div class="tableBtn greens" v-if="scope.row.publishStatus=='1'"
153   - @click="removeinfozz(scope.row,'0','下架')">下架</div>
  134 + <div @click="details(scope.row.cereAdvertisingInformation)" class="tableBtn greens">查看</div>
  135 + <div v-if="scope.row.cereAdvertisingInformation.publishStatus=='3'" class="tableBtn greens"
  136 + @click="removeinfozz(scope.row.cereAdvertisingInformation,'1','通过')">通过</div>
  137 + <div v-if="scope.row.cereAdvertisingInformation.publishStatus=='3'" class="tableBtn greens"
  138 + @click="removeinfozz(scope.row.cereAdvertisingInformation,'4','驳回')">驳回</div>
154 139 </template>
155 140 </el-table-column>
156 141 </el-table>
157   - <el-table v-if="ontype=='3'" :data="tableData"
  142 + <el-table v-if="ontype=='3'" :span-method="objectSpanMethod" :data="tableData"
158 143 :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}">
159   - <el-table-column label="序号">
  144 + <el-table-column label="场地名称" prop="venueName" show-overflow-tooltip>
160 145 <template slot-scope="scope">
161   - {{scope.$index +1}}
  146 + {{scope.row.cereBasicInformationVenue.venueName}}
162 147 </template>
163 148 </el-table-column>
164   - <!-- <el-table-column label="编号" prop="id" v-if="activeName == 'second'">
165   - </el-table-column> -->
166   - <el-table-column label="场地名称" prop="venueName">
  149 + <el-table-column prop="venueType" label="场地类型" show-overflow-tooltip>
  150 + <template slot-scope="scope">
  151 + {{scope.row.cereBasicInformationVenue.venueType}}
  152 + </template>
167 153 </el-table-column>
168   - <el-table-column label="实际使用面积" prop="actualArea">
  154 + <el-table-column label="实际使用面积" prop="actualUsableArea" show-overflow-tooltip>
  155 + <template slot-scope="scope">
  156 + {{scope.row.cereBasicInformationVenue.actualUsableArea}}
  157 + </template>
169 158 </el-table-column>
170   - <el-table-column label="场地类型" prop="venueType">
  159 + <el-table-column label="策略名称" prop="policyName" show-overflow-tooltip>
  160 + <template slot-scope="scope">
  161 + {{scope.row.shopinfo.policyName}}
  162 + </template>
171 163 </el-table-column>
172   - <el-table-column label="所属区域" prop="district">
  164 + <el-table-column label="租金/周期" prop="rentalPrice" show-overflow-tooltip>
  165 + <template slot-scope="scope">
  166 + {{scope.row.shopinfo.rentalPrice}} /{{ scope.row.shopinfo.leaseTerm }}
  167 + </template>
173 168 </el-table-column>
174   - <el-table-column label="详细位置" prop="detailedLocation">
  169 + <el-table-column label="付款日" prop="payDay" show-overflow-tooltip>
  170 + <template slot-scope="scope">
  171 + {{scope.row.shopinfo.payDay}}
  172 + </template>
175 173 </el-table-column>
176   - <!-- <el-table-column label="租赁状态" >
177   - </el-table-column> -->
178   - <!-- <el-table-column label="状态" >
179   - </el-table-column> -->
180   - <el-table-column prop="publishStatus" label="发布状态" min-width="120">
  174 + <el-table-column label="状态" prop="publishStatus" show-overflow-tooltip>
181 175 <template slot-scope="scope">
182   - {{scope.row.publishStatus == 0?'待发布':'已提交'}}
  176 + {{scope.row.cereBasicInformationVenue.publishStatus=='0'?'待发布':scope.row.cereBasicInformationVenue.publishStatus=='1'?'已发布':scope.row.cereBasicInformationVenue.publishStatus=='2'?'空置中':scope.row.cereBasicInformationVenue.publishStatus=='3'?'待审核':scope.row.cereBasicInformationVenue.publishStatus=='4'?'驳回':'-'}}
183 177 </template>
184 178 </el-table-column>
185   - <el-table-column label="操作" min-width="250" fixed="right">
  179 + <el-table-column label="操作" fixed="right">
186 180 <template slot-scope="scope">
187   - <div @click="details(scope.row)" class="tableBtn greens">查看</div>
188   - <div @click="opencl(scope.row,'cd')" class="tableBtn greens">绑定策略</div>
189   - <div class="tableBtn greens" v-if="scope.row.publishStatus=='0'" @click="removeinfo(scope.row,'编辑')">编辑
190   - </div>
191   - <div class="tableBtn greens" v-if="scope.row.publishStatus=='0'" @click="closemsg(scope.row)">删除</div>
192   - <div class="tableBtn greens" v-if="scope.row.publishStatus=='0'"
193   - @click="removeinfozz(scope.row,'1','发布')">发布</div>
194   - <div class="tableBtn greens" v-if="scope.row.publishStatus=='1'"
195   - @click="removeinfozz(scope.row,'0','下架')">下架</div>
  181 + <div @click="details(scope.row.cereBasicInformationVenue)" class="tableBtn greens">查看</div>
  182 + <div v-if="scope.row.cereBasicInformationVenue.publishStatus=='3'" class="tableBtn greens"
  183 + @click="removeinfozz(scope.row.cereBasicInformationVenue,'1','通过')">通过</div>
  184 + <div v-if="scope.row.cereBasicInformationVenue.publishStatus=='3'" class="tableBtn greens"
  185 + @click="removeinfozz(scope.row.cereBasicInformationVenue,'4','驳回')">驳回</div>
196 186 </template>
197 187 </el-table-column>
198 188 </el-table>
199   - <div style="display: flex;justify-content: space-between;" class="bom">
  189 + <div v-if="total>0" style="display: flex;justify-content: space-between;" class="bom">
200 190 <div style="font-size: 14px;">共 <span style="color: #3F9B6A;">{{total}}</span> 项数据</div>
201 191 <el-pagination :current-page="pagequery.pageNumber+1" :page-sizes="[10, 20, 50, 100]" :page-size="10"
202 192 background small layout="prev, pager, next" :total="total" @size-change="handleSizeChange"
... ... @@ -314,6 +304,9 @@
314 304 export default {
315 305 data() {
316 306 return {
  307 + publishStatus:'',
  308 + clName:'',
  309 + name:'',
317 310 oninfo: {},
318 311 celueData: [],
319 312 clData: [],
... ... @@ -559,7 +552,8 @@
559 552 if (this.ontype == '1') {
560 553 const res = await getResourceStrategy({
561 554 ...this.pagequery,
562   - resourcesId: 'sp'
  555 + resourcesId: 'sp',
  556 + shopName:this.name
563 557 })
564 558 let c1 = []
565 559 for (let index = 0; index < res.data.length; index++) {
... ... @@ -583,16 +577,52 @@
583 577 } else if (this.ontype == '2') {
584 578 const res = await getResourceStrategy({
585 579 ...this.pagequery,
586   - resourcesId: 'gg'
  580 + resourcesId: 'gg',
  581 + advertisingName:this.name
587 582 })
588   - this.tableData = res.data.list
  583 + let c1 = []
  584 + for (let index = 0; index < res.data.length; index++) {
  585 + const element = res.data[index];
  586 + if (element.cereAdvertisingInformation.id) {
  587 + for (let i = 0; i < element.cereRentalPolicies.length; i++) {
  588 + var element1 = element.cereRentalPolicies[i];
  589 +
  590 + var obj = {
  591 + cereAdvertisingInformation: element.cereAdvertisingInformation,
  592 + num: element.cereRentalPolicies.length,
  593 + shopinfo: element1
  594 + };
  595 + c1.push(obj);
  596 + }
  597 + }
  598 + }
  599 + this.tableData = c1
  600 + console.error(this.tableData)
589 601 this.total = res.data.total
590 602 } else if (this.ontype == '3') {
591 603 const res = await getResourceStrategy({
592 604 ...this.pagequery,
593   - resourcesId: 'cd'
  605 + resourcesId: 'cd',
  606 + // venueName:this.name
594 607 })
595   - this.tableData = res.data.list
  608 + let c1 = []
  609 + for (let index = 0; index < res.data.length; index++) {
  610 + const element = res.data[index];
  611 + if (element.cereBasicInformationVenue.id) {
  612 + for (let i = 0; i < element.cereRentalPolicies.length; i++) {
  613 + var element1 = element.cereRentalPolicies[i];
  614 +
  615 + var obj = {
  616 + cereBasicInformationVenue: element.cereBasicInformationVenue,
  617 + num: element.cereRentalPolicies.length,
  618 + shopinfo: element1
  619 + };
  620 + c1.push(obj);
  621 + }
  622 + }
  623 + }
  624 + this.tableData = c1
  625 + console.error(this.tableData)
596 626 this.total = res.data.total
597 627 }
598 628  
... ...
admin-web-master/src/views/detect/information/index.vue
... ... @@ -19,12 +19,12 @@
19 19 :key="index" :label="item.label" :value="item.value"></el-option>
20 20 </el-select>
21 21 </el-form-item>
22   - <el-form-item label="所属绿道段" prop="belongingGreenwaySection">
  22 + <!-- <el-form-item label="所属绿道段" prop="belongingGreenwaySection">
23 23 <el-select v-model="pagequery.belongingGreenwaySection" placeholder="请选择">
24 24 <el-option :label="item.name" :value="item.code" v-for="(item,index) in lvdaoList"
25 25 :key="index"></el-option>
26 26 </el-select>
27   - </el-form-item>
  27 + </el-form-item> -->
28 28 <el-form-item label="归属部门" prop="belongingDepartment">
29 29 <el-input v-model="pagequery.belongingDepartment" placeholder="请输入" maxlength="50"></el-input>
30 30 </el-form-item>
... ... @@ -45,36 +45,43 @@
45 45 </div>
46 46 <!-- 表格 -->
47 47  
48   - <el-table :data="tableData" border :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#f5f8f9'}">
49   - <el-table-column label="序号" min-width="50">
  48 + <el-table :data="tableData" :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}">
  49 + <el-table-column label="序号" width="50">
50 50 <template slot-scope="scope">
51 51 {{scope.$index +1 }}
52 52 </template>
53 53 </el-table-column>
54   - <el-table-column label="门牌号" prop="houseNumber" show-overflow-tooltip>
55   -
56   - </el-table-column>
57   - <el-table-column label="商铺名称" prop="shopName" show-overflow-tooltip>
  54 + <!-- <el-table-column label="门牌号" prop="houseNumber" show-overflow-tooltip>
58 55  
  56 + </el-table-column> -->
  57 + <el-table-column label="商铺名称" prop="shopName" show-overflow-tooltip></el-table-column>
  58 + <el-table-column label="商铺类型" prop="publishStatus" show-overflow-tooltip>
  59 + <template slot-scope="scope">
  60 + {{scope.row.shopType=='1'?'移动铺位':scope.row.shopType=='2'?'固定铺位':'无'}}
  61 + </template>
59 62 </el-table-column>
60 63 <el-table-column label="所属区域" prop="belongingRegion" show-overflow-tooltip>
61 64 </el-table-column>
62   - <el-table-column label="建筑形式" prop="architecturalForm" show-overflow-tooltip>
  65 + <el-table-column prop="detailedLocation" width="180" label="详细地址" show-overflow-tooltip>
63 66 </el-table-column>
64   - <el-table-column prop="detailedLocation" label="详细地址" show-overflow-tooltip>
65   - </el-table-column>
66   - <el-table-column label="实际使用面积" prop="actualUsableArea" show-overflow-tooltip>
  67 + <el-table-column label="实际使用面积" prop="actualUsableArea" show-overflow-tooltip>
  68 + <template slot-scope="scope">
  69 + {{scope.row.actualUsableArea || '无'}}
  70 + </template>
67 71 </el-table-column>
68 72 <el-table-column label="负责人" prop="head" show-overflow-tooltip>
  73 + <template slot-scope="scope">
  74 + {{scope.row.head || '无'}}
  75 + </template>
69 76 </el-table-column>
70 77 <el-table-column label="租赁到期时间" prop="leaseExpirationDate" show-overflow-tooltip>
71 78 </el-table-column>
72 79 <el-table-column label="状态" prop="publishStatus" show-overflow-tooltip>
73 80 <template slot-scope="scope">
74   - {{scope.row.publishStatus=='0'?'待发布':scope.row.publishStatus=='1'?'已发布':scope.row.publishStatus=='2'?'已下架':scope.row.publishStatus=='3'?'待审核':scope.row.publishStatus=='4'?'驳回':'-'}}
  81 + {{scope.row.publishStatus=='0'?'待发布':scope.row.publishStatus=='1'?'已发布':scope.row.publishStatus=='2'?'空置中':scope.row.publishStatus=='3'?'待审核':scope.row.publishStatus=='4'?'驳回':'-'}}
75 82 </template>
76 83 </el-table-column>
77   - <el-table-column label="操作" min-width="200" fixed="right">
  84 + <el-table-column label="操作" min-width="100" fixed="right">
78 85 <template slot-scope="scope">
79 86 <div @click="details(scope.row)" class="tableBtn greens">查看</div>
80 87 <div class="tableBtn greens" v-if="scope.row.publishStatus=='0' || scope.row.publishStatus=='2'" @click="removeinfo(scope.row,'编辑')">编辑
... ...
admin-web-master/src/views/detect/map/index.vue
... ... @@ -44,62 +44,38 @@
44 44 <!-- <el-button @click="" style="background-color: #3F9B6A;color: #fff">批量导入</el-button> -->
45 45 </div>
46 46 <!-- 表格 -->
47   -
48 47 <el-table :data="tableData"
49   - :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#f5f8f9'}">
50   - <el-table-column label="序号" min-width="80">
  48 + :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}">
  49 + <el-table-column label="序号" width="50">
51 50 <template slot-scope="scope">
52 51 {{scope.$index +1 }}
53 52 </template>
54 53 </el-table-column>
55   - <el-table-column label="广告位名称" prop="advertisingName" min-width="150" show-overflow-tooltip>
56   - </el-table-column>
57   - <el-table-column label="广告位类型" prop="advertisingType" min-width="120" show-overflow-tooltip>
58   - </el-table-column>
59   - <el-table-column label="所属端" prop="affiliation" min-width="120" v-if="leixing" show-overflow-tooltip>
60   - </el-table-column>
61   - <el-table-column label="详细地址" prop="detailedLocation" min-width="200" v-if="leixing == false"
62   - show-overflow-tooltip>
63   - </el-table-column>
64   - <el-table-column label="设备类型" prop="deviceType" min-width="200" v-if="leixing == false" show-overflow-tooltip>
  54 + <el-table-column label="广告位名称" prop="advertisingName" show-overflow-tooltip>
65 55 </el-table-column>
66   - <el-table-column label="设备尺寸" prop="equipmentSize" min-width="200" v-if="leixing == false">
  56 + <el-table-column label="广告位类型" prop="advertisingType" show-overflow-tooltip>
67 57 </el-table-column>
68   - <!-- <el-table-column label="场地编号" prop="venueNumber" min-width="120" v-if="leixing == false"
69   - show-overflow-tooltip>
70   - </el-table-column> -->
71   - <el-table-column label="轮播顺序" prop="rotationOrder" min-width="80" v-if="leixing">
72 58  
73   - </el-table-column>
74   - <el-table-column label="广告尺寸" prop="dimensions" min-width="200" v-if="leixing == false">
75   - </el-table-column>
76   - <el-table-column label="广告材质" prop="advertisingMaterial" min-width="120" v-if="leixing == false">
77   - </el-table-column>
78   - <el-table-column label="可上传大小" prop="size" min-width="120" v-if="leixing">
79 59  
80   - </el-table-column>
81   - <el-table-column label="上传格式" prop="uploadFormat" min-width="150" v-if="leixing">
82   - </el-table-column>
83   - <!-- <el-table-column prop="createUser" label="创建人" min-width="120">
84   - </el-table-column> -->
85   - <!-- <el-table-column prop="rentalStatus" label="租赁状态" min-width="120">
86   - <template slot-scope="scope">
87   - {{scope.row.rentalStatus=='0'?'待租':'已租'}}
88   - </template>
89   - </el-table-column> -->
90   - <!-- <el-table-column prop="publishStatus" label="发布状态" min-width="120">
91   - <template slot-scope="scope">
92   - {{scope.row.rentalStatus=='0'?'待发布':scope.row.rentalStatus=='1'?'待审核':'已审核'}}
93   - </template>
94   - </el-table-column> -->
95   - <el-table-column label="状态" prop="publishStatus" show-overflow-tooltip>
  60 + <el-table-column label="所属端" width="100" prop="affiliation" v-if="leixing" show-overflow-tooltip></el-table-column>
  61 + <el-table-column label="轮播顺序" width="100" prop="rotationOrder" v-if="leixing"> </el-table-column>
  62 + <el-table-column label="广告尺寸" width="120" prop="dimensions" v-if="leixing" show-overflow-tooltip></el-table-column>
  63 + <el-table-column label="上传大小" prop="size" v-if="leixing"></el-table-column>
  64 +
  65 +
  66 + <el-table-column label="详细位置" prop="detailedLocation" v-if="leixing == false" show-overflow-tooltip></el-table-column>
  67 + <el-table-column label="设备类型" width="100" prop="deviceType" v-if="leixing == false" show-overflow-tooltip></el-table-column>
  68 + <el-table-column label="广告尺寸" width="120" prop="dimensions" v-if="leixing == false" show-overflow-tooltip></el-table-column>
  69 + <el-table-column label="广告材质" width="100" prop="advertisingMaterial" v-if="leixing == false"></el-table-column>
  70 +
  71 + <el-table-column label="状态" prop="publishStatus" show-overflow-tooltip>
96 72 <template slot-scope="scope">
97   - {{scope.row.publishStatus=='0'?'待发布':scope.row.publishStatus=='1'?'已发布':scope.row.publishStatus=='2'?'已下架':scope.row.publishStatus=='3'?'待审核':scope.row.publishStatus=='4'?'驳回':'-'}}
  73 + {{scope.row.publishStatus=='0'?'待发布':scope.row.publishStatus=='1'?'已发布':scope.row.publishStatus=='2'?'空置中':scope.row.publishStatus=='3'?'待审核':scope.row.publishStatus=='4'?'驳回':'-'}}
98 74 </template>
99 75 </el-table-column>
100   - <el-table-column prop="leaseExpirationDate" label="租赁到期时间" min-width="150" show-overflow-tooltip>
  76 + <el-table-column prop="leaseExpirationDate" label="租赁到期时间" show-overflow-tooltip>
101 77 </el-table-column>
102   - <el-table-column label="操作" min-width="250" fixed="right">
  78 + <el-table-column label="操作" fixed="right">
103 79 <template slot-scope="scope">
104 80 <div @click="details(scope.row)" class="tableBtn greens">查看</div>
105 81 <div class="tableBtn greens" v-if="scope.row.publishStatus=='0'" @click="removeinfo(scope.row,'编辑')">编辑
... ...
admin-web-master/src/views/serve/MarkActivity/index copy.vue 0 → 100644
  1 +<template>
  2 + <div style="background-color:#f7f7f7;padding:10px 10px;">
  3 + <div class="zhuti">
  4 + <div style="height:58px;line-height:58px;">
  5 + <div style="color:#0006"> <span>客服服务管理</span> <span style="padding:0 5px;">></span> <span
  6 + style="color:#000000e6">营销推广活动</span></div>
  7 + </div>
  8 + <div>
  9 + <!-- 搜索 -->
  10 + <div class="formSearch">
  11 + <el-form :inline="true" :model="formSel">
  12 + <el-form-item label="活动标题">
  13 + <el-input v-model="formSel.title" placeholder="请输入" style="width:168px;" />
  14 + </el-form-item>
  15 + <el-form-item label="场地名称">
  16 + <el-input v-model="formSel.venue" placeholder="请输入" style="width:168px;" />
  17 + </el-form-item>
  18 + <el-form-item label="联系人">
  19 + <el-input v-model="formSel.contactPerson" placeholder="请输入" style="width:168px;" />
  20 + </el-form-item>
  21 + <el-form-item label="联系电话">
  22 + <el-input v-model="formSel.contactPhone" placeholder="请输入" style="width:168px;" />
  23 + </el-form-item>
  24 + <el-form-item label="起止时间">
  25 + <el-select v-model="formSel.startTime" placeholder="请选择" style="width:168px;margin-right: 15px">
  26 + <el-option label="" value="" />
  27 + </el-select>
  28 + </el-form-item>
  29 + </el-form>
  30 + <div>
  31 + <el-button @click="onSubmit" style="background-color: #3F9B6A;color: #fff">查询
  32 + </el-button>
  33 + <el-button @click="resetting" class="buttonHover"
  34 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;">重置
  35 + </el-button>
  36 + </div>
  37 + </div>
  38 + <div style="margin-bottom: 20px;">
  39 + <div>
  40 + <el-button style="background-color: #3F9B6A;color: #fff;padding:8px 15px;"
  41 + icon="el-icon-circle-plus-outline" @click="ggXin = true">新增</el-button>
  42 + </div>
  43 + </div>
  44 + <!-- 表格 -->
  45 +
  46 + <el-table :data="tableData.slice((currentPage - 1) * pageSize, currentPage * pageSize)"
  47 + :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}">
  48 + <el-table-column label="序号" min-width="150">
  49 + <template slot-scope="scope">
  50 + {{scope.$index +1 }}
  51 + </template>
  52 + </el-table-column>
  53 + <el-table-column label="活动标题" min-width="200" prop="title">
  54 + </el-table-column>
  55 + <el-table-column label="场地名称" min-width="150" prop="venue">
  56 + </el-table-column>
  57 + <el-table-column label="起止时间" prop="startTime" min-width="250">
  58 + </el-table-column>
  59 + <el-table-column label="联系人" prop="contactPerson" min-width="150">
  60 +
  61 + </el-table-column>
  62 + <el-table-column label="联系电话" prop="contactPhone" min-width="150">
  63 +
  64 + </el-table-column>
  65 + <el-table-column label="已参与报名人数" prop="registeredCount" min-width="150">
  66 + </el-table-column>
  67 + <el-table-column prop="createdAt" label="创建时间" min-width="250">
  68 +
  69 + </el-table-column>
  70 + <el-table-column label="创建人" prop="createdBy" min-width="150">
  71 + </el-table-column>
  72 + <el-table-column prop="reviewStatus" label="状态" min-width="150">
  73 + <template slot-scope="scope">
  74 + {{scope.row.reviewStatus=='1'?'未发布':'已发布'}}
  75 + </template>
  76 + </el-table-column>
  77 + <el-table-column label="操作" min-width="350">
  78 + <template slot-scope="scope">
  79 + <div @click="details(scope.row)" class="tableBtn greens">查看</div>
  80 + <div @click="fabu(scope.row,'2')" class="tableBtn greens" v-if="scope.row.reviewStatus=='1'">发布</div>
  81 + <div @click="fabu(scope.row,'1')" class="tableBtn greens" v-if="scope.row.reviewStatus=='2'">下架</div>
  82 + <div @click="zhongzhi(scope.row)" class="tableBtn greens" v-if="scope.row.reviewStatus =='1'">编辑</div>
  83 + <div @click="getMing(scope.row.id)" class="tableBtn greens" v-if="scope.row.reviewStatus!='1'">报名名单</div>
  84 + <div @click="deltab(scope.row)" class="tableBtn greens" v-if="scope.row.reviewStatus =='1'">删除</div>
  85 + <div @click="Qcode(scope.row)" class="tableBtn greens">活动二维码</div>
  86 + </template>
  87 + </el-table-column>
  88 + </el-table>
  89 + <div class="fenye">
  90 + <el-pagination :hide-on-single-page='flag' background small size="mini" :current-page="currentPage"
  91 + :page-sizes="[10, 20, 50, 100]" layout="prev, pager, next,total" :total="total "
  92 + @size-change="handleSizeChange" @current-change="handleCurrentChange" />
  93 + </div>
  94 + </div>
  95 +
  96 + </div>
  97 + <!-- 详情框 -->
  98 + <el-dialog :visible.sync="detbox" custom-class='tongyong_css' style="padding: 0;" width="65%" center
  99 + :close-on-click-modal="false" :show-close="false">
  100 + <div style="padding:20px;">
  101 + <div style="font-size: 14px;padding-bottom: 20px;color: #000;">详情页</div>
  102 + <div>
  103 +
  104 + <el-form ref="form" :model="xiangData" label-width="120px">
  105 + <el-form-item label="营销活动标题" prop="title">
  106 + <el-input placeholder="请输入" v-model="xiangData.title" :disabled="edit"></el-input>
  107 + </el-form-item>
  108 + <el-form-item label="内容" prop="content" tyle="width: 100%;">
  109 + <wang-editor v-model="xiangData.content" ref="editor" :height="200" v-if="!edit"></wang-editor>
  110 + <div v-html="xiangData.content" style="line-height:40px" v-else></div>
  111 + </el-form-item>
  112 + </el-form>
  113 + <div style="border:1px solid #DCDFE6;font-size:14px;margin-bottom:10px;">
  114 + <div
  115 + style="padding: 10px 20px;border-bottom: 1px solid #DCDFE6;display: flex;justify-content: space-between;">
  116 + <div>场地选择</div>
  117 + <div style="color: #3F9B6A;margin-left: 10px;" @click="addziyuan = true" v-if="!edit">
  118 + 添加
  119 + </div>
  120 + </div>
  121 + <div style="padding:20px;">
  122 + <el-table :data="addziyuanData.slice((currentPage - 1) * pageSize, currentPage * pageSize)"
  123 + :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}">
  124 + <el-table-column label="序号" width="80">
  125 + <template slot-scope="scope">
  126 + {{scope.$index + 1}}
  127 + </template>
  128 + </el-table-column>
  129 + <el-table-column label="资源编号" prop="id" width="150">
  130 +
  131 + </el-table-column>
  132 + </el-table-column>
  133 + <el-table-column label="场地名称" prop="venueName" width="150">
  134 +
  135 + </el-table-column>
  136 + <el-table-column label="所属区域" prop="district" min-width="150">
  137 + </el-table-column>
  138 + <el-table-column label="场地类型" prop="venueType" width="150">
  139 +
  140 + </el-table-column>
  141 + <el-table-column label="详细位置" prop="detailedLocation" min-width="150">
  142 + </el-table-column>
  143 + <el-table-column label="操作" min-width="150">
  144 + <template slot-scope="scope">
  145 + <div class="tableBtn greens" @click="addziyuanData = []">删除</div>
  146 + </template>
  147 + </el-table-column>
  148 + </el-table>
  149 + </div>
  150 + </div>
  151 + <el-form ref="form" :model="xiangData" label-width="120px">
  152 + <el-form-item label="起止时间">
  153 + <el-date-picker style="width: 100%;" v-model="plan_Time" value-format="yyyy-MM-dd HH:mm:ss"
  154 + :disabled="edit" type="datetimerange" range-separator="至" start-placeholder="开始日期"
  155 + end-placeholder="结束日期" align="right">
  156 + </el-date-picker>
  157 + </el-form-item>
  158 + <el-form-item label="联系人" prop="contactPerson">
  159 + <el-input placeholder="请输入" v-model="xiangData.contactPerson" :disabled="edit"></el-input>
  160 + </el-form-item>
  161 + <el-form-item label="联系电话" prop="contactPhone">
  162 + <el-input placeholder="请输入" v-model="xiangData.contactPhone" :disabled="edit"></el-input>
  163 + </el-form-item>
  164 + <el-form-item label="封面图片" prop="coverImage">
  165 + <upimg v-model="xiangData.coverImage" :limit="1" :fileSize="1" :isShowTip="false" v-if="!edit"></upimg>
  166 + <img :src="xiangData.coverImage" alt="" v-else>
  167 + </el-form-item>
  168 +
  169 + </el-form>
  170 + </div>
  171 +
  172 + <div style="padding-top:20px;display:flex;justify-content: flex-end;">
  173 + <el-button class="buttonHover" style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"
  174 + @click="closeFn(2)">返回</el-button>
  175 + <el-button @click="edit = false" style="background-color: #3F9B6A;color: #fff"
  176 + v-if="edit && xiangData.reviewStatus!='2'">编辑</el-button>
  177 + <el-button @click="addbuss(2)" style="background-color: #3F9B6A;color: #fff" v-else>确认</el-button>
  178 +
  179 +
  180 + </div>
  181 + </div>
  182 +
  183 + </el-dialog>
  184 +
  185 + <!-- 新增 -->
  186 + <el-dialog title="新增" :visible.sync="ggXin" custom-class="diaslog_zhong" style="padding: 0;" width="50%"
  187 + class="dialog_css_Xq" center :close-on-click-modal="false" :show-close="false">
  188 + <div style="margin-bottom: 20px;">
  189 + <el-form ref="form" :model="formInline" label-width="120px">
  190 + <el-form-item label="营销活动标题" prop="title">
  191 + <el-input placeholder="请输入" v-model="formInline.title"></el-input>
  192 + </el-form-item>
  193 + <el-form-item label="内容" prop="content" tyle="width: 100%;">
  194 + <wang-editor v-model="formInline.content" ref="editor" :height="200"></wang-editor>
  195 + </el-form-item>
  196 + </el-form>
  197 + </div>
  198 +
  199 + <div style="border:1px solid #DCDFE6;font-size:14px;margin-bottom:10px;">
  200 + <div style="padding: 10px 20px;border-bottom: 1px solid #DCDFE6;display: flex;justify-content: space-between;">
  201 + <div>场地选择</div>
  202 + <div style="color: #3F9B6A;margin-left: 10px;" @click="addziyuan = true">
  203 + 添加
  204 + </div>
  205 + </div>
  206 + <div style="padding:20px;">
  207 + <el-table :data="addziyuanData.slice((currentPage - 1) * pageSize, currentPage * pageSize)"
  208 + :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}">
  209 + <el-table-column label="序号" width="80">
  210 + <template slot-scope="scope">
  211 + {{scope.$index + 1}}
  212 + </template>
  213 + </el-table-column>
  214 + <el-table-column label="资源编号" prop="id" width="150">
  215 +
  216 + </el-table-column>
  217 + </el-table-column>
  218 + <el-table-column label="场地名称" prop="venueName" width="150">
  219 +
  220 + </el-table-column>
  221 + <el-table-column label="所属区域" prop="district" min-width="150">
  222 + </el-table-column>
  223 + <el-table-column label="场地类型" prop="venueType" width="150">
  224 +
  225 + </el-table-column>
  226 + <el-table-column label="详细位置" prop="detailedLocation" min-width="150">
  227 + </el-table-column>
  228 + <el-table-column label="操作" min-width="150">
  229 + <template slot-scope="scope">
  230 + <div class="tableBtn greens" @click="addziyuanData = []">删除</div>
  231 + </template>
  232 + </el-table-column>
  233 + </el-table>
  234 + </div>
  235 + </div>
  236 + <el-form ref="form" :model="formInline" label-width="120px">
  237 + <el-form-item label="起止时间">
  238 + <el-date-picker style="width: 100%;" v-model="plan_Time" value-format="yyyy-MM-dd HH:mm:ss"
  239 + type="datetimerange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" align="right">
  240 + </el-date-picker>
  241 + </el-form-item>
  242 + <el-form-item label="联系人" prop="currentStage">
  243 + <el-input placeholder="请输入" v-model="formInline.contactPerson"></el-input>
  244 + </el-form-item>
  245 + <el-form-item label="联系电话">
  246 + <el-input placeholder="请输入" v-model="formInline.contactPhone"></el-input>
  247 + </el-form-item>
  248 + <el-form-item label="封面图片">
  249 + <upimg v-model="formInline.coverImage" :limit="1" :fileSize="1" :isShowTip="false"></upimg>
  250 + </el-form-item>
  251 +
  252 + </el-form>
  253 + <div style="display: flex;justify-content: flex-end;">
  254 + <el-button @click="closeFn(1)" class="buttonHover"
  255 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;">返回</el-button>
  256 + <el-button @click="addCheck(4)" style="background-color: #3F9B6A;color: #fff">确定</el-button>
  257 + </div>
  258 + <!-- 场地选择 -->
  259 + <el-dialog :visible.sync="addziyuan" custom-class='XDD_css' style="padding: 0;" width="50%" append-to-body center
  260 + :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false">
  261 + <div
  262 + style="padding: 10px 13px;font-size: 14px;border-bottom: 1px solid #E5E5E5;display: flex;justify-content: space-between;">
  263 + <div>添加</div>
  264 + </div>
  265 + <div style="padding: 15px;width:100%">
  266 +
  267 + <div style="border: 1px solid #E5E5E5;padding: 1px" id="huodong">
  268 + <div
  269 + style="padding: 10px 13px;font-size: 14px;border-bottom: 1px solid #E5E5E5;display: flex;justify-content: space-between;">
  270 + <div>选择场地</div>
  271 + </div>
  272 + <div style="padding: 15px;">
  273 + <div style="padding: 0px 20px 0px 0px">
  274 + <el-table :data="ziyuanData" highlight-current-row @current-change="handleSelectionChange"
  275 + :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}">
  276 +
  277 + <el-table-column label="序号" min-width="8%">
  278 + <template slot-scope="scope">
  279 + {{scope.$index + 1}}
  280 + </template>
  281 + </el-table-column>
  282 + <el-table-column label="编号" prop="id" min-width="22%">
  283 +
  284 + </el-table-column>
  285 + <el-table-column label="场地名称" prop="venueName" min-width="15%">
  286 +
  287 + </el-table-column>
  288 + <el-table-column label="场地类型" prop="venueType" min-width="15%">
  289 +
  290 + </el-table-column>
  291 + <el-table-column prop="notes" label="对应策略" min-width="15%">
  292 + </el-table-column>
  293 + </el-table>
  294 + </div>
  295 + </div>
  296 + </div>
  297 + </div>
  298 + <div style="display: flex;justify-content: flex-end;padding: 10px 20px 10px 0">
  299 + <el-button @click="mingClose" class="buttonHover"
  300 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;">取消
  301 + </el-button>
  302 + <el-button @click="minSev" style="background-color: #3F9B6A;color: #fff;">确定
  303 + </el-button>
  304 +
  305 + </div>
  306 + </el-dialog>
  307 +
  308 + </el-dialog>
  309 + <el-dialog :visible.sync="showQF" custom-class='tongyong_css' style="padding: 0;" width="25%" center
  310 + :close-on-click-modal="false" :show-close="false">
  311 + <div style="padding:20px;">
  312 + <div style="font-size: 14px;padding-bottom: 20px;color: #000;">活动二维码</div>
  313 + <div style="padding:20px;">
  314 + <img :src="qfUrl" alt="" style="height:330px;width:80%">
  315 + </div>
  316 + <div style="padding-top:20px;display:flex;justify-content: flex-end;">
  317 + <el-button class="buttonHover" style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"
  318 + @click="showQF =false">返回</el-button>
  319 + </div>
  320 + </div>
  321 +
  322 + </el-dialog>
  323 + <!-- 报名名单 -->
  324 + <el-dialog :visible.sync="baoming" custom-class='tongyong_css' style="padding: 0;" width="55%" center
  325 + :close-on-click-modal="false" :show-close="false">
  326 + <div style="padding:20px;">
  327 + <div style="font-size: 14px;padding-bottom: 20px;color: #000;">报名名单</div>
  328 + <div style="padding:20px;">
  329 + <el-table :data="mingList"
  330 + :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}">
  331 + <el-table-column label="序号" min-width="150">
  332 + <template slot-scope="scope">
  333 + {{scope.$index +1 }}
  334 + </template>
  335 + </el-table-column>
  336 + <el-table-column label="联系人" prop="userName" min-width="150">
  337 +
  338 + </el-table-column>
  339 + <el-table-column label="联系电话" prop="userPhone" min-width="150">
  340 +
  341 + </el-table-column>
  342 + </el-table>
  343 + </div>
  344 + <div style="padding-top:20px;display:flex;justify-content: flex-end;">
  345 + <el-button class="buttonHover" style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"
  346 + @click="baoming =false">返回</el-button>
  347 + </div>
  348 + </div>
  349 +
  350 + </el-dialog>
  351 + </div>
  352 +
  353 +
  354 +</template>
  355 +
  356 +<script>
  357 + import {
  358 + async
  359 + } from 'q'
  360 + import axios from 'axios'
  361 + import wangEditor from "@/components/editor/index";
  362 + import {
  363 + MarkGetAll,
  364 + MarkAdd,
  365 + MarkEdit,
  366 + MarkDel,
  367 + QRcode,
  368 + Registration
  369 + } from '../../../api/MarkActivity.js'
  370 + import upimg from "@/components/ImageUpload/index"
  371 + import {
  372 + changAlls
  373 + } from '../../../api/information.js'
  374 +
  375 + export default {
  376 + components: {
  377 + upimg,
  378 + wangEditor
  379 + },
  380 + data() {
  381 + return {
  382 + hetongBox: false,
  383 + detbox: false, //详情
  384 + leixing: true, //切换
  385 + currentPage: 1,
  386 + total: 10,
  387 + flag: false,
  388 + pageSize: 10,
  389 + ggXin: false,
  390 + formInline: {
  391 + title: '',
  392 + content: '',
  393 + venue: '',
  394 + contactPerson: '',
  395 + contactPhone: '',
  396 + coverImage: '',
  397 + registeredCount: '',
  398 + },
  399 + plan_Time: [],
  400 + followUpTime: [],
  401 + tableData: [],
  402 + secondData: {},
  403 + formSel: {
  404 + title: '',
  405 + venue: '',
  406 + contactPerson: '',
  407 + contactPhone: '',
  408 + },
  409 + pageindex: {
  410 + pageNumber: 1,
  411 + pageSize: 10,
  412 + },
  413 + bianjiBox: 1,
  414 + chengeTatle: 1,
  415 + zhong: {},
  416 + edit: true, //编辑切换
  417 + xiangTabs: 'first',
  418 + addkehu: false,
  419 + addziyuan: false,
  420 + ziyuanData: [], //资源
  421 + addziyuanData: [],
  422 + multipleSelection: [],
  423 + xiangData: {},
  424 + showQF: false,
  425 + qfUrl: '',
  426 + baoming: false,
  427 + mingList: []
  428 + }
  429 + },
  430 + created() {
  431 + this.getAll()
  432 + },
  433 + computed: {
  434 +
  435 + },
  436 + methods: {
  437 + // 获取时间
  438 + currentTime() {
  439 + let date = new Date();
  440 + let year = date.getFullYear(); //月份从0~11,所以加一
  441 + let month = date.getMonth();
  442 + let dateArr = [date.getMonth() + 1, date.getDate(), date.getHours()]
  443 + for (let i = 0; i < dateArr.length; i++) {
  444 + if (dateArr[i] >= 1 && dateArr[i] <= 9) {
  445 + dateArr[i] = '0' + dateArr[i]
  446 + }
  447 + }
  448 + let strDate = year + '-' + dateArr[0] + '-' + dateArr[1]
  449 + return strDate
  450 + },
  451 + chenge(val) {
  452 + this.formSel = {
  453 + title: '',
  454 + venue: '',
  455 + contactPerson: '',
  456 + contactPhone: '',
  457 + }
  458 + this.leixing = !this.leixing
  459 + this.chengeTatle = val
  460 + },
  461 + async getAll() {
  462 + const res = await MarkGetAll(this.pageindex)
  463 + this.tableData = res.data.content
  464 + this.total = res.data.content.length
  465 + const ziyuan = await changAlls(this.pageindex)
  466 + this.ziyuanData = [...ziyuan.data.content]
  467 +
  468 + },
  469 +
  470 + // 新增确定按钮
  471 + async addCheck(val) {
  472 + if (this.addziyuanData.length != 0) {
  473 + this.formInline.venue = this.addziyuanData.map(item => item.id).join(',');
  474 + }
  475 + if (this.plan_Time.length != 0) {
  476 + this.formInline.startTime = this.plan_Time[0]
  477 + this.formInline.endTime = this.plan_Time[1]
  478 + }
  479 + this.formInline.reviewStatus = '2'
  480 + this.formInline.createdAt = this.currentTime()
  481 + await MarkAdd(this.formInline)
  482 + this.ggXin = false
  483 + this.formInline = {
  484 + title: '',
  485 + content: '',
  486 + venue: '',
  487 + contactPerson: '',
  488 + contactPhone: '',
  489 + coverImage: '',
  490 + registeredCount: '',
  491 +
  492 + }
  493 +
  494 + this.plan_Time = []
  495 + this.addziyuanData = []
  496 + this.getAll()
  497 + },
  498 + // 获取时间
  499 + currentTime() {
  500 + let date = new Date();
  501 + let year = date.getFullYear();
  502 + let month = date.getMonth() + 1; // 月份从0~11,所以加一
  503 + let day = date.getDate();
  504 + let hours = date.getHours();
  505 + let minutes = date.getMinutes();
  506 + let seconds = date.getSeconds();
  507 +
  508 + // 为月、日、小时、分钟和秒添加前导零(如果需要)
  509 + month = month < 10 ? '0' + month : month;
  510 + day = day < 10 ? '0' + day : day;
  511 + hours = hours < 10 ? '0' + hours : hours;
  512 + minutes = minutes < 10 ? '0' + minutes : minutes;
  513 + seconds = seconds < 10 ? '0' + seconds : seconds;
  514 +
  515 + // 返回格式化的日期和时间字符串
  516 + return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
  517 + },
  518 +
  519 + //详情
  520 + details(item) {
  521 + this.plan_Time[0] = item.startTime
  522 + this.plan_Time[1] = item.endTime
  523 + this.edit = true
  524 + this.xiangData = item
  525 + this.detbox = true
  526 +
  527 +
  528 +
  529 + },
  530 + zhongzhi(item) {
  531 + this.edit = false
  532 + this.xiangData = item
  533 + this.detbox = true
  534 + this.plan_Time[0] = item.startTime
  535 + this.plan_Time[1] = item.endTime
  536 + },
  537 + async addbuss() {
  538 + if (this.plan_Time.length != 0) {
  539 + this.xiangData.startTime = this.plan_Time[0]
  540 + this.xiangData.endTime = this.plan_Time[1]
  541 + }
  542 +
  543 + await MarkEdit(this.xiangData)
  544 + this.plan_Time = []
  545 + this.detbox = false
  546 + this.getAll()
  547 + },
  548 + handleSizeChange(val) {
  549 + this.pageSize = val
  550 + },
  551 + handleCurrentChange(val) {
  552 + this.currentPage = val
  553 + },
  554 +
  555 + closeFn(val) {
  556 + this.plan_Time = []
  557 + this.addziyuanData = []
  558 + this.formInline = {
  559 + title: '',
  560 + content: '',
  561 + venue: '',
  562 + contactPerson: '',
  563 + contactPhone: '',
  564 + coverImage: '',
  565 + registeredCount: '',
  566 +
  567 + }
  568 + this.bianjiBox = 1
  569 + if (val == 1) {
  570 + this.ggXin = false
  571 + } else {
  572 + this.detbox = false
  573 + }
  574 + },
  575 + //查看合同
  576 + lookHetong(val) {
  577 + this.hetongBox = true
  578 + },
  579 + // 查询按钮
  580 + async onSubmit() {
  581 + this.formSel.pageNumber = 1
  582 + this.formSel.pageSize = 10
  583 + const res = await MarkGetAll(this.formSel)
  584 + this.tableData = res.data.content
  585 + this.total = res.data.content.length
  586 + this.formSel = {
  587 + title: '',
  588 + venue: '',
  589 + contactPerson: '',
  590 + contactPhone: '',
  591 + }
  592 + },
  593 + //重置按钮
  594 + resetting() {
  595 + this.formSel = {
  596 + title: '',
  597 + venue: '',
  598 + contactPerson: '',
  599 + contactPhone: '',
  600 + }
  601 + this.getAll()
  602 + },
  603 +
  604 + minSev() {
  605 + this.addziyuanData = this.multipleSelection
  606 + this.addziyuan = false
  607 + this.multipleSelection = []
  608 + },
  609 + mingClose() {
  610 + this.multipleSelection = []
  611 + this.addziyuan = false
  612 + },
  613 + handleSelectionChange(val) {
  614 +
  615 + this.multipleSelection.push(val)
  616 + },
  617 + deltab(item) {
  618 + const h = this.$createElement;
  619 + this.$msgbox({
  620 + title: '消息',
  621 + message: h('p', null, [
  622 + h('span', null, '是否删除 '),
  623 + ]),
  624 + showCancelButton: true,
  625 + showClose: false,
  626 + confirmButtonText: '确定',
  627 + cancelButtonText: '取消',
  628 + customClass: 'oe-dialog-btn',
  629 + beforeClose: (action, instance, done) => {
  630 + if (action === 'confirm') {
  631 + MarkDel({
  632 + id: item.id
  633 + }).then(res => {
  634 + this.getAll()
  635 + done();
  636 + })
  637 + } else {
  638 + done();
  639 + }
  640 + }
  641 + })
  642 + },
  643 + fabu(item, val) {
  644 + const h = this.$createElement;
  645 + this.$msgbox({
  646 + title: '消息',
  647 + message: h('p', null, [
  648 + h('span', null, '是否处理'),
  649 + ]),
  650 + showCancelButton: true,
  651 + showClose: false,
  652 + confirmButtonText: '确定',
  653 + cancelButtonText: '取消',
  654 + customClass: 'oe-dialog-btn',
  655 + beforeClose: (action, instance, done) => {
  656 + if (action === 'confirm') {
  657 + MarkEdit({
  658 + id: item.id,
  659 + reviewStatus: val
  660 + }).then(res => {
  661 + this.getAll()
  662 + done();
  663 + })
  664 + } else {
  665 + done();
  666 + }
  667 + }
  668 + })
  669 +
  670 + },
  671 + Qcode(items) {
  672 + this.showQF = true
  673 + let pgs = {
  674 + scene: `item='${items.id}'`,
  675 + // scene:items,
  676 + page: "pages/marketing/marketingDetail/marketingDetail"
  677 + }
  678 + QRcode(pgs).then(res => {
  679 + this.qfUrl = res.data
  680 + })
  681 + },
  682 + async getMing(ids) {
  683 + let page = {
  684 + activityId: ids
  685 + }
  686 + const res = await Registration(page)
  687 + this.mingList = res.data
  688 + this.baoming = true
  689 + }
  690 +
  691 + }
  692 + }
  693 +</script>
  694 +
  695 +<style scoped>
  696 + .zhuti {
  697 + padding: 0 20px 20px 20px;
  698 + min-height: calc(100vh - 50px - 20px);
  699 + background-color: #Fff;
  700 +
  701 + }
  702 +
  703 + .chengeXia {
  704 + border-bottom: 6px solid #3F9B6A;
  705 + padding-bottom: 4px;
  706 + color: #3F9B6A;
  707 + }
  708 +
  709 + /deep/ .el-form-item__content {
  710 + line-height: 0;
  711 + }
  712 +
  713 + .tableBtn {
  714 + display: inline-block;
  715 + margin-right: 10px;
  716 + color: #ACACAC;
  717 + }
  718 +
  719 + .formSearch {
  720 + display: flex;
  721 + width: 100%;
  722 + font-size: 14px;
  723 + justify-content: space-between;
  724 + }
  725 +
  726 + .greens {
  727 + color: #3F9B6A;
  728 + }
  729 +
  730 + /deep/ .el-table__row {
  731 + font-size: 14px;
  732 + color: #000000e6;
  733 + height: 42px;
  734 + }
  735 +
  736 + .fenye {
  737 + margin-top: 20px;
  738 + display: flex;
  739 + justify-content: flex-end;
  740 + }
  741 +
  742 + /deep/ .el-pagination.is-background .el-pager li:not(.disabled).active {
  743 + background-color: #3F9B6A;
  744 + }
  745 +
  746 + .el-row {
  747 + margin-bottom: 20px;
  748 +
  749 + &:last-child {
  750 + margin-bottom: 0;
  751 + }
  752 + }
  753 +
  754 + .el-col {
  755 + border-radius: 4px;
  756 + }
  757 +
  758 + .bg-purple-dark {
  759 + background: #99a9bf;
  760 + }
  761 +
  762 + .bg-purple {
  763 + background: #d3dce6;
  764 + }
  765 +
  766 + .bg-purple-light {
  767 + background: #e5e9f2;
  768 + }
  769 +
  770 + .grid-content {
  771 + border-radius: 4px;
  772 + min-height: 36px;
  773 + }
  774 +
  775 + .row-bg {
  776 + padding: 10px 0;
  777 + background-color: #f9fafc;
  778 + }
  779 +
  780 + /deep/ .bg-purple[data-v-0e3fe4ec] {
  781 + background: #fff;
  782 + height: 50px;
  783 + }
  784 +
  785 + /deep/ .bg-purple[data-v-3bebae82] {
  786 + background: #fff;
  787 + height: 50px;
  788 + }
  789 +
  790 + ::v-deep .bg-purple {
  791 + background: #fff;
  792 + height: 50px;
  793 + }
  794 +
  795 + /deep/ .el-form--label-top .el-form-item__label {
  796 + padding: 0;
  797 + }
  798 +
  799 + ::v-deep .el-form-item {
  800 + margin-bottom: 16px;
  801 + }
  802 +
  803 + .device-form .el-form-item__label::after {
  804 + content: "*";
  805 + color: #1A1A1A;
  806 + margin-left: 5px;
  807 + font-size: 16px;
  808 + }
  809 +
  810 +
  811 + ::v-deep .el-dialog__wrapper {
  812 + .el-dialog__header {
  813 + background-color: #FAFAFA;
  814 + }
  815 + }
  816 +
  817 + ::v-deep .el-input__inner:focus {
  818 + border: #3F9B6A 1px solid;
  819 + }
  820 +
  821 + .dialog-footer {
  822 + display: flex;
  823 + justify-content: flex-end;
  824 + border-top: solid rgba(209, 209, 209, 0.2) 2px;
  825 + padding-top: 20px;
  826 + }
  827 +
  828 + ::v-deep .el-input__inner:focus {
  829 + border: #3F9B6A 1px solid;
  830 + }
  831 +
  832 + ::v-deep .el-input__inner:hover {
  833 + border: #3F9B6A 1px solid;
  834 + }
  835 +
  836 + ::v-deep .el-select .el-input.is-focus .el-input__inner {
  837 + border-color: #3F9B6A
  838 + }
  839 +
  840 + .el-select-dropdown__item.selected {
  841 + color: #3F9B6A;
  842 + }
  843 +
  844 + .el-pagination__sizes .el-input .el-input__inner:hover {
  845 + border-color: #3F9B6A;
  846 + }
  847 +
  848 + ::v-deep .el-dialog__wrapper {
  849 +
  850 + .dialog_css {
  851 + margin-right: 12px;
  852 + margin-top: 61px !important;
  853 +
  854 + .el-dialog__title {
  855 + font-size: 16px !important;
  856 + font-weight: 600;
  857 + color: #000;
  858 + }
  859 + }
  860 +
  861 + .diaslog_zhong {
  862 + margin-left: 25%;
  863 + margin-top: 61px !important;
  864 + }
  865 +
  866 + }
  867 +
  868 + ::v-deep .diaslog_zhong {
  869 + margin-left: 20%;
  870 + margin-top: 61px !important;
  871 +
  872 + .el-dialog__header {
  873 + background-color: #fff;
  874 + border-bottom: 1px solid #EFEFEF;
  875 +
  876 + .el-dialog__title {
  877 + font-size: 14px;
  878 + color: #000000e6;
  879 + }
  880 + }
  881 +
  882 + .el-dialog__body {
  883 + padding: 10px 30px 30px 20px
  884 + }
  885 + }
  886 +
  887 + /deep/ .el-table_1_column_8 .hetong {
  888 + color: #7DBB9A;
  889 + text-decoration: underline;
  890 + }
  891 +
  892 + /deep/ .first-column-bg {
  893 + background-color: #FAFAFA !important;
  894 + }
  895 +
  896 + ::v-deep .textarea {
  897 + width: 85%;
  898 +
  899 + .el-textarea__inner {
  900 + width: 100%;
  901 + }
  902 + }
  903 +
  904 + ::v-deep .pass_input {
  905 + width: 100%;
  906 +
  907 + .el-input__inner {
  908 + border: none;
  909 + padding: 0;
  910 + }
  911 + }
  912 +
  913 + ::v-deep .pass_select {
  914 + width: 100%;
  915 +
  916 + .el-input__inner {
  917 + border: none;
  918 + padding: 0;
  919 + }
  920 +
  921 + .el-icon-arrow-up:before {
  922 + content: ''
  923 + }
  924 +
  925 + }
  926 +
  927 + /deep/ .el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell {
  928 + background-color: #fff;
  929 + }
  930 +</style>
  931 +<style lang="scss" scoped>
  932 + ::v-deep .bian_css {
  933 + .el-dialog__header {
  934 + padding: 0px;
  935 + }
  936 +
  937 + .el-input__inner {
  938 + height: 18px;
  939 + border: 0px;
  940 + margin-top: 0px;
  941 + }
  942 +
  943 + .el-input__inner:hover {
  944 + border: 0px;
  945 + }
  946 +
  947 + .el-input__inner:focus {
  948 + border: 0px;
  949 + }
  950 + }
  951 +
  952 + ::v-deep .buttonHover:hover {
  953 + color: #3f9b6a !important;
  954 + border-color: #c5e1d2 !important;
  955 + background-color: #ecf5f0 !important;
  956 + outline: none;
  957 + }
  958 +
  959 + ::v-deep .el-pagination__total {
  960 + position: absolute;
  961 + left: 33px;
  962 + }
  963 +
  964 + ::v-deep .diaslog_zhong {
  965 + .el-dialog__body {
  966 + padding: 10px 20px 20px 20px;
  967 + }
  968 +
  969 + .el-upload--picture-card {
  970 + width: 130px;
  971 + height: 130px;
  972 + }
  973 + }
  974 +</style>
... ...
admin-web-master/src/views/serve/MarkActivity/index.vue
1 1 <template>
2 2 <div style="background-color:#f7f7f7;padding:10px 10px;">
3   - <div class="zhuti">
  3 + <div class="zhuti" v-if="onaction == '1'">
4 4 <div style="height:58px;line-height:58px;">
5 5 <div style="color:#0006"> <span>客服服务管理</span> <span style="padding:0 5px;">></span> <span
6 6 style="color:#000000e6">营销推广活动</span></div>
7 7 </div>
  8 + <!-- 线上 -->
8 9 <div>
9 10 <!-- 搜索 -->
10 11 <div class="formSearch">
11   - <el-form :inline="true" :model="formSel">
12   - <el-form-item label="活动标题">
13   - <el-input v-model="formSel.title" placeholder="请输入" style="width:168px;" />
14   - </el-form-item>
15   - <el-form-item label="场地名称">
16   - <el-input v-model="formSel.venue" placeholder="请输入" style="width:168px;" />
17   - </el-form-item>
18   - <el-form-item label="联系人">
19   - <el-input v-model="formSel.contactPerson" placeholder="请输入" style="width:168px;" />
20   - </el-form-item>
21   - <el-form-item label="联系电话">
22   - <el-input v-model="formSel.contactPhone" placeholder="请输入" style="width:168px;" />
23   - </el-form-item>
24   - <el-form-item label="起止时间">
25   - <el-select v-model="formSel.startTime" placeholder="请选择" style="width:168px;margin-right: 15px">
26   - <el-option label="" value="" />
27   - </el-select>
  12 + <el-form :inline="true" :model="pagequery">
  13 + <el-form-item label="名称">
  14 + <el-input v-model="pagequery.name" placeholder="请输入" style="width:168px;" />
28 15 </el-form-item>
29 16 </el-form>
  17 +
30 18 <div>
31 19 <el-button @click="onSubmit" style="background-color: #3F9B6A;color: #fff">查询
32 20 </el-button>
... ... @@ -35,690 +23,281 @@
35 23 </el-button>
36 24 </div>
37 25 </div>
38   - <div style="margin-bottom: 20px;">
39   - <div>
40   - <el-button
41   - style="background-color: #3F9B6A;color: #fff;padding:8px 15px;" icon="el-icon-circle-plus-outline"
42   - @click="ggXin = true">新增</el-button>
43   - </div>
44   - </div>
  26 + <div style="margin-bottom:20px;">
  27 + <el-button @click="removeonaction('2')" icon="el-icon-circle-plus-outline" style="background-color: #3F9B6A;color: #fff;">新增
  28 + </el-button>
  29 + </div>
45 30 <!-- 表格 -->
46 31  
47   - <el-table :data="tableData.slice((currentPage - 1) * pageSize, currentPage * pageSize)"
48   - :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}"
49   - >
50   - <el-table-column label="序号" min-width="150">
51   - <template slot-scope="scope">
52   - {{scope.$index +1 }}
53   - </template>
  32 + <el-table :data="tableData"
  33 + :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}">
  34 + <el-table-column label="序号" width="50">
  35 + <template slot-scope="scope">
  36 + {{scope.$index + 1}}
  37 + </template>
54 38 </el-table-column>
55   - <el-table-column label="活动标题" min-width="200" prop="title">
  39 + <el-table-column label="活动标题" prop="title">
56 40 </el-table-column>
57   - <el-table-column label="场地名称" min-width="150" prop="venue">
  41 + <el-table-column label="场地名称" prop="venue">
58 42 </el-table-column>
59   - <el-table-column label="起止时间" prop="startTime" min-width="250">
  43 + <el-table-column label="起止时间" prop="startTime" >
60 44 </el-table-column>
61   - <el-table-column label="联系人" prop="contactPerson" min-width="150">
  45 + <el-table-column label="联系人" prop="contactPerson" >
62 46  
63 47 </el-table-column>
64   - <el-table-column label="联系电话" prop="contactPhone" min-width="150">
  48 + <el-table-column label="联系电话" prop="contactPhone" >
65 49  
66 50 </el-table-column>
67   - <el-table-column label="已参与报名人数" prop="registeredCount" min-width="150">
  51 + <el-table-column label="已参与报名人数" prop="registeredCount" >
68 52 </el-table-column>
69   - <el-table-column prop="createdAt" label="创建时间" min-width="250">
  53 + <el-table-column prop="createdAt" label="创建时间" >
70 54  
71 55 </el-table-column>
72   - <el-table-column label="创建人" prop="createdBy" min-width="150">
  56 + <el-table-column label="创建人" prop="createdBy" >
73 57 </el-table-column>
74   - <el-table-column prop="reviewStatus" label="状态" min-width="150">
  58 + <el-table-column prop="reviewStatus" label="状态" >
75 59 <template slot-scope="scope">
76 60 {{scope.row.reviewStatus=='1'?'未发布':'已发布'}}
77 61 </template>
78 62 </el-table-column>
79   - <el-table-column label="操作" min-width="350">
  63 + <el-table-column label="操作" fixed="right">
80 64 <template slot-scope="scope">
81 65 <div @click="details(scope.row)" class="tableBtn greens">查看</div>
82   - <div @click="fabu(scope.row,'2')" class="tableBtn greens" v-if="scope.row.reviewStatus=='1'">发布</div>
83   - <div @click="fabu(scope.row,'1')" class="tableBtn greens" v-if="scope.row.reviewStatus=='2'">下架</div>
84   - <div @click="zhongzhi(scope.row)" class="tableBtn greens" v-if="scope.row.reviewStatus =='1'">编辑</div>
85   - <div @click="getMing(scope.row.id)" class="tableBtn greens" v-if="scope.row.reviewStatus!='1'">报名名单</div>
86   - <div @click="deltab(scope.row)" class="tableBtn greens" v-if="scope.row.reviewStatus =='1'">删除</div>
87   - <div @click="Qcode(scope.row)" class="tableBtn greens" >活动二维码</div>
  66 + <!-- <div @click="openyujingSet(scope.row)" class="tableBtn greens">审核</div> -->
88 67 </template>
89 68 </el-table-column>
90 69 </el-table>
91   - <div class="fenye">
92   - <el-pagination :hide-on-single-page='flag' background small size="mini" :current-page="currentPage"
93   - :page-sizes="[10, 20, 50, 100]" layout="prev, pager, next,total" :total="total "
94   - @size-change="handleSizeChange" @current-change="handleCurrentChange" />
  70 + <div style="display: flex;justify-content: space-between;" class="bom">
  71 + <div style="font-size: 14px;">共 <span style="color: #3F9B6A;">{{total}}</span> 项数据</div>
  72 + <el-pagination :current-page="pagequery.pageNumber+1" :page-sizes="[10, 20, 50, 100]" :page-size="10"
  73 + background small layout="prev, pager, next" :total="total" @size-change="handleSizeChange"
  74 + @current-change="handleCurrentChange">
  75 + </el-pagination>
95 76 </div>
  77 +
96 78 </div>
97 79  
98 80 </div>
99   - <!-- 详情框 -->
100   - <el-dialog :visible.sync="detbox" custom-class='tongyong_css' style="padding: 0;" width="65%" center
101   - :close-on-click-modal="false" :show-close="false">
102   - <div style="padding:20px;">
103   - <div style="font-size: 14px;padding-bottom: 20px;color: #000;">详情页</div>
104   - <div>
105   -
106   - <el-form ref="form" :model="xiangData" label-width="120px">
107   - <el-form-item label="营销活动标题" prop="title">
108   - <el-input placeholder="请输入" v-model="xiangData.title" :disabled="edit" ></el-input>
109   - </el-form-item>
110   - <el-form-item label="内容" prop="content" tyle="width: 100%;">
111   - <wang-editor v-model="xiangData.content" ref="editor" :height="200" v-if="!edit"></wang-editor>
112   - <div v-html="xiangData.content" style="line-height:40px" v-else></div>
113   - </el-form-item>
114   - </el-form>
115   - <div style="border:1px solid #DCDFE6;font-size:14px;margin-bottom:10px;">
116   - <div style="padding: 10px 20px;border-bottom: 1px solid #DCDFE6;display: flex;justify-content: space-between;">
117   - <div>场地选择</div>
118   - <div style="color: #3F9B6A;margin-left: 10px;" @click="addziyuan = true" v-if="!edit">
119   - 添加
120   - </div>
121   - </div>
122   - <div style="padding:20px;">
123   - <el-table :data="addziyuanData.slice((currentPage - 1) * pageSize, currentPage * pageSize)"
124   - :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}"
125   - >
126   - <el-table-column label="序号" width="80" >
127   - <template slot-scope="scope">
128   - {{scope.$index + 1}}
129   - </template>
130   - </el-table-column>
131   - <el-table-column label="资源编号" prop="id" width="150">
132   -
133   - </el-table-column>
134   - </el-table-column>
135   - <el-table-column label="场地名称" prop="venueName"
136   - width="150">
137   -
138   - </el-table-column>
139   - <el-table-column label="所属区域" prop="district" min-width="150">
140   - </el-table-column>
141   - <el-table-column label="场地类型" prop="venueType" width="150">
142   -
143   - </el-table-column>
144   - <el-table-column label="详细位置" prop="detailedLocation" min-width="150">
145   - </el-table-column>
146   - <el-table-column label="操作" min-width="150">
147   - <template slot-scope="scope">
148   - <div class="tableBtn greens" @click="addziyuanData = []" >删除</div>
149   - </template>
150   - </el-table-column>
151   - </el-table>
152   - </div>
153   - </div>
154   - <el-form ref="form" :model="xiangData" label-width="120px">
155   - <el-form-item label="起止时间">
156   - <el-date-picker style="width: 100%;" v-model="plan_Time" value-format="yyyy-MM-dd HH:mm:ss" :disabled="edit"
157   - type="datetimerange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" align="right">
158   - </el-date-picker>
159   - </el-form-item>
160   - <el-form-item label="联系人" prop="contactPerson">
161   - <el-input placeholder="请输入" v-model="xiangData.contactPerson" :disabled="edit"></el-input>
162   - </el-form-item>
163   - <el-form-item label="联系电话" prop="contactPhone">
164   - <el-input placeholder="请输入" v-model="xiangData.contactPhone" :disabled="edit"></el-input>
165   - </el-form-item>
166   - <el-form-item label="封面图片" prop="coverImage">
167   - <upimg v-model="xiangData.coverImage" :limit="1" :fileSize="1" :isShowTip="false" v-if="!edit"></upimg>
168   - <img :src="xiangData.coverImage" alt="" v-else>
169   - </el-form-item>
170   -
171   - </el-form>
172   - </div>
173 81  
174   - <div style="padding-top:20px;display:flex;justify-content: flex-end;">
175   - <el-button class="buttonHover" style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"
176   - @click="closeFn(2)">返回</el-button>
177   - <el-button @click="edit = false" style="background-color: #3F9B6A;color: #fff" v-if="edit && xiangData.reviewStatus!='2'">编辑</el-button>
178   - <el-button @click="addbuss(2)" style="background-color: #3F9B6A;color: #fff" v-else>确认</el-button>
179 82  
180 83  
181   - </div>
182   - </div>
183 84  
184   - </el-dialog>
185 85  
186   - <!-- 新增 -->
187   - <el-dialog title="新增" :visible.sync="ggXin" custom-class="diaslog_zhong" style="padding: 0;" width="50%"
188   - class="dialog_css_Xq" center :close-on-click-modal="false" :show-close="false">
189   - <div style="margin-bottom: 20px;">
190   - <el-form ref="form" :model="formInline" label-width="120px">
191   - <el-form-item label="营销活动标题" prop="title">
192   - <el-input placeholder="请输入" v-model="formInline.title" ></el-input>
193   - </el-form-item>
194   - <el-form-item label="内容" prop="content" tyle="width: 100%;">
195   - <wang-editor v-model="formInline.content" ref="editor" :height="200"></wang-editor>
196   - </el-form-item>
197   - </el-form>
198   - </div>
199 86  
200   - <div style="border:1px solid #DCDFE6;font-size:14px;margin-bottom:10px;">
201   - <div style="padding: 10px 20px;border-bottom: 1px solid #DCDFE6;display: flex;justify-content: space-between;">
202   - <div>场地选择</div>
203   - <div style="color: #3F9B6A;margin-left: 10px;" @click="addziyuan = true">
204   - 添加
205   - </div>
  87 + <el-dialog title="审核" :visible.sync="yujingSet" style="padding: 0;" width="60%" center :close-on-click-modal="false" :show-close="false" top="20vh">
  88 + <div>
  89 + <div style="margin-bottom: 20px;">
  90 + <el-form ref="form" :model="detailsinfo" label-width="120px">
  91 + <el-form-item label="审核状态" prop="checkState">
  92 + <el-select v-model="detailsinfo.checkState" placeholder="请选择" style="width: 100%;">
  93 + <!-- <el-option label="待审核" value="1"></el-option> -->
  94 + <el-option label="同意" value="2"></el-option>
  95 + <el-option label="拒绝" value="3"></el-option>
  96 + </el-select>
  97 + </el-form-item>
  98 + <el-form-item label="审核意见">
  99 + <el-input maxlength="200" show-word-limit rows="4" v-model="detailsinfo.checkOpinion" placeholder="请输入审核意见" type="textarea" />
  100 + </el-form-item>
  101 + </el-form>
  102 +
206 103 </div>
207   - <div style="padding:20px;">
208   - <el-table :data="addziyuanData.slice((currentPage - 1) * pageSize, currentPage * pageSize)"
209   - :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}"
210   - >
211   - <el-table-column label="序号" width="80" >
212   - <template slot-scope="scope">
213   - {{scope.$index + 1}}
214   - </template>
215   - </el-table-column>
216   - <el-table-column label="资源编号" prop="id" width="150">
217   -
218   - </el-table-column>
219   - </el-table-column>
220   - <el-table-column label="场地名称" prop="venueName"
221   - width="150">
222   -
223   - </el-table-column>
224   - <el-table-column label="所属区域" prop="district" min-width="150">
225   - </el-table-column>
226   - <el-table-column label="场地类型" prop="venueType" width="150">
227   -
228   - </el-table-column>
229   - <el-table-column label="详细位置" prop="detailedLocation" min-width="150">
230   - </el-table-column>
231   - <el-table-column label="操作" min-width="150">
232   - <template slot-scope="scope">
233   - <div class="tableBtn greens" @click="addziyuanData = []" >删除</div>
234   - </template>
235   - </el-table-column>
236   - </el-table>
  104 + <div style="display: flex;justify-content: flex-end;">
  105 + <el-button @click="yuclose" class="buttonHover"
  106 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;">返回</el-button>
  107 + <el-button @click="yuChenk" style="background-color: #3F9B6A;color: #fff">确定</el-button>
237 108 </div>
238 109 </div>
239   - <el-form ref="form" :model="formInline" label-width="120px">
240   - <el-form-item label="起止时间">
241   - <el-date-picker style="width: 100%;" v-model="plan_Time" value-format="yyyy-MM-dd HH:mm:ss"
242   - type="datetimerange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" align="right">
243   - </el-date-picker>
244   - </el-form-item>
245   - <el-form-item label="联系人" prop="currentStage">
246   - <el-input placeholder="请输入" v-model="formInline.contactPerson" ></el-input>
247   - </el-form-item>
248   - <el-form-item label="联系电话">
249   - <el-input placeholder="请输入" v-model="formInline.contactPhone" ></el-input>
250   - </el-form-item>
251   - <el-form-item label="封面图片">
252   - <upimg v-model="formInline.coverImage" :limit="1" :fileSize="1" :isShowTip="false"></upimg>
253   - </el-form-item>
254   -
255   - </el-form>
256   - <div style="display: flex;justify-content: flex-end;">
257   - <el-button @click="closeFn(1)" class="buttonHover"
258   - style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;">返回</el-button>
259   - <el-button @click="addCheck(4)" style="background-color: #3F9B6A;color: #fff">确定</el-button>
  110 + </el-dialog>
  111 + <div class="zhuti" v-if="onaction == '2'">
  112 + <div style="height:58px;line-height:58px;">
  113 + <div style="color:#0006"> <span>营销推广活动</span> <span style="padding:0 5px;">></span> <span
  114 + style="color:#000000e6">新增</span></div>
260 115 </div>
261   - <!-- 场地选择 -->
262   - <el-dialog :visible.sync="addziyuan" custom-class='XDD_css' style="padding: 0;" width="50%"
263   - append-to-body center :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false">
264   - <div style="padding: 10px 13px;font-size: 14px;border-bottom: 1px solid #E5E5E5;display: flex;justify-content: space-between;">
265   - <div>添加</div>
266   - </div>
267   - <div style="padding: 15px;width:100%">
268   -
269   - <div style="border: 1px solid #E5E5E5;padding: 1px" id="huodong">
270   - <div style="padding: 10px 13px;font-size: 14px;border-bottom: 1px solid #E5E5E5;display: flex;justify-content: space-between;">
271   - <div>选择场地</div>
272   - </div>
273   - <div style="padding: 15px;">
274   - <div style="padding: 0px 20px 0px 0px">
275   - <el-table :data="ziyuanData"
276   - highlight-current-row
277   - @current-change="handleSelectionChange"
278   - :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}"
279   - >
280   -
281   - <el-table-column label="序号" min-width="8%" >
282   - <template slot-scope="scope">
283   - {{scope.$index + 1}}
284   - </template>
285   - </el-table-column>
286   - <el-table-column label="编号" prop="id" min-width="22%">
287   -
288   - </el-table-column>
289   - <el-table-column label="场地名称" prop="venueName" min-width="15%">
290   -
291   - </el-table-column>
292   - <el-table-column label="场地类型" prop="venueType" min-width="15%">
293   -
294   - </el-table-column>
295   - <el-table-column prop="notes" label="对应策略" min-width="15%">
296   - </el-table-column>
297   - </el-table>
298   - </div>
299   - </div>
300   - </div>
301   - </div>
302   - <div style="display: flex;justify-content: flex-end;padding: 10px 20px 10px 0">
303   - <el-button @click="mingClose" class="buttonHover"
304   - style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;">取消
305   - </el-button>
306   - <el-button @click="minSev" style="background-color: #3F9B6A;color: #fff;">确定
307   - </el-button>
308 116  
309   - </div>
310   - </el-dialog>
311   -
312   - </el-dialog>
313   - <el-dialog :visible.sync="showQF" custom-class='tongyong_css' style="padding: 0;" width="25%" center
314   - :close-on-click-modal="false" :show-close="false">
315   - <div style="padding:20px;">
316   - <div style="font-size: 14px;padding-bottom: 20px;color: #000;">活动二维码</div>
317   - <div style="padding:20px;">
318   - <img :src="qfUrl" alt="" style="height:330px;width:80%">
319   - </div>
320   - <div style="padding-top:20px;display:flex;justify-content: flex-end;">
321   - <el-button class="buttonHover" style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"
322   - @click="showQF =false">返回</el-button>
323   - </div>
324   - </div>
  117 + <div style="padding: 20px 20px 20px 0;">
  118 + <add @removeonaction="removeonaction"></add>
  119 + </div>
  120 + </div>
  121 + <div class="zhuti" v-if="onaction == '3'">
  122 + <div style="height:58px;line-height:58px;">
  123 + <div style="color:#0006"> <span>营销推广活动</span> <span style="padding:0 5px;">></span> <span
  124 + style="color:#000000e6">查看</span></div>
  125 + </div>
  126 + <div>
  127 + <merchantInformation :info="detailsinfo" @removeonaction="removeonaction"></merchantInformation>
  128 + </div>
  129 + <!-- <div>
  130 + <el-button class="buttonHover"
  131 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;margin-top: 20px;"
  132 + @click="removeonaction('1')">返回</el-button>
  133 + </div> -->
  134 + </div>
325 135  
326   - </el-dialog>
327   - <!-- 报名名单 -->
328   - <el-dialog :visible.sync="baoming" custom-class='tongyong_css' style="padding: 0;" width="55%" center
329   - :close-on-click-modal="false" :show-close="false">
330   - <div style="padding:20px;">
331   - <div style="font-size: 14px;padding-bottom: 20px;color: #000;">报名名单</div>
332   - <div style="padding:20px;">
333   - <el-table :data="mingList"
334   - :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}"
335   - >
336   - <el-table-column label="序号" min-width="150">
337   - <template slot-scope="scope">
338   - {{scope.$index +1 }}
339   - </template>
340   - </el-table-column>
341   - <el-table-column label="联系人" prop="userName" min-width="150">
342   -
343   - </el-table-column>
344   - <el-table-column label="联系电话" prop="userPhone" min-width="150">
345   -
346   - </el-table-column>
347   - </el-table>
348   - </div>
349   - <div style="padding-top:20px;display:flex;justify-content: flex-end;">
350   - <el-button class="buttonHover" style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"
351   - @click="baoming =false">返回</el-button>
352   - </div>
353   - </div>
354   -
355   - </el-dialog>
356 136 </div>
357   -
  137 + <!-- </div> -->
358 138  
359 139 </template>
360 140  
361 141 <script>
  142 + import add from '@/components/add/addMarkActivity.vue'
362 143 import {
363   - async
364   - } from 'q'
365   - import axios from 'axios'
366   - import wangEditor from "@/components/editor/index";
367   - import {
368   - MarkGetAll,
369   - MarkAdd,
370   - MarkEdit,
371   - MarkDel,
372   - QRcode,
373   - Registration
  144 + MarkGetAll,
  145 + MarkAdd,
  146 + MarkEdit,
  147 + MarkDel,
  148 + QRcode,
  149 + Registration
374 150 } from '../../../api/MarkActivity.js'
375   - import upimg from "@/components/ImageUpload/index"
376 151 import {
377   - changAlls
378   - } from '../../../api/information.js'
379   -
  152 + cereReminderSet,
  153 + cereReminderSetedit
  154 + } from '../../../api/commodityLease.js'
  155 + import merchantInformation from '../../../components/merchantInformation/index.vue'
  156 + import wangEditor from "@/components/editor/index"
380 157 export default {
381   - components: {
382   - upimg,
383   - wangEditor
384   - },
385 158 data() {
386 159 return {
387   - hetongBox: false,
388   - detbox: false, //详情
389   - leixing: true, //切换
390   - currentPage: 1,
391   - total: 10,
392   - flag: false,
393   - pageSize: 10,
394   - ggXin: false,
395   - formInline: {
396   - title:'',
397   - content:'',
398   - venue:'',
399   - contactPerson:'',
400   - contactPhone:'',
401   - coverImage:'',
402   - registeredCount:'',
403   - },
404   - plan_Time:[],
405   - followUpTime:[],
406   - tableData: [],
407   - secondData: {},
408   - formSel: {
409   - title:'',
410   - venue:'',
411   - contactPerson:'',
412   - contactPhone:'',
  160 + zhong: {
  161 +
413 162 },
414   - pageindex: {
415   - pageNumber: 1,
416   - pageSize: 10,
  163 + yujingSet: false,
  164 + detailsinfo: {},
  165 + pagequery: {
  166 + pageNumber: 0,
  167 + pageSize: 10,
  168 + checkState:'2',
  169 + name: '',
  170 +
417 171 },
418   - bianjiBox: 1,
419   - chengeTatle: 1,
420   - zhong: {},
421   - edit: true, //编辑切换
422   - xiangTabs:'first',
423   - addkehu:false,
424   - addziyuan:false,
425   - ziyuanData:[],//资源
426   - addziyuanData:[],
427   - multipleSelection:[],
428   - xiangData:{},
429   - showQF:false,
430   - qfUrl:'',
431   - baoming:false,
432   - mingList:[]
  172 + tableData: [],
  173 + total: 0,
  174 + onaction: '1',
  175 + info: {}
433 176 }
434 177 },
  178 + components: {
  179 + add,
  180 + merchantInformation,
  181 + wangEditor
  182 + },
435 183 created() {
436 184 this.getAll()
437   - },
438   - computed: {
439 185  
440 186 },
441 187 methods: {
442   - // 获取时间
443   - currentTime() {
444   - let date = new Date();
445   - let year = date.getFullYear(); //月份从0~11,所以加一
446   - let month = date.getMonth();
447   - let dateArr = [date.getMonth() + 1, date.getDate(), date.getHours()]
448   - for (let i = 0; i < dateArr.length; i++) {
449   - if (dateArr[i] >= 1 && dateArr[i] <= 9) {
450   - dateArr[i] = '0' + dateArr[i]
  188 + calculateDaysUntilExpiration(endDateString) {
  189 + const endDate = new Date(endDateString);
  190 + const today = new Date();
  191 + const timeDifference = endDate - today;
  192 + const daysDifference = Math.ceil(timeDifference / (1000 * 60 * 60 * 24));
  193 + return daysDifference >= 0 ? daysDifference : '已过期';
  194 + },
  195 + yuclose() {
  196 + this.yujingSet = false
  197 + },
  198 + yuChenk() {
  199 + console.error(this.detailsinfo)
  200 + cerePlatformMerchantedit(this.detailsinfo).then(res => {
  201 + console.error(res)
  202 + if (res.code == 200) {
  203 + this.$message({
  204 + message: '处理成功',
  205 + type: 'success'
  206 + })
  207 + this.yujingSet = false
  208 + } else {
  209 + this.$message({
  210 + message: '处理失败',
  211 + type: 'error'
  212 + })
451 213 }
452   - }
453   - let strDate = year + '-' + dateArr[0] + '-' + dateArr[1]
454   - return strDate
  214 + })
  215 +
455 216 },
456   - chenge(val) {
457   - this.formSel = {
458   - title:'',
459   - venue:'',
460   - contactPerson:'',
461   - contactPhone:'',}
462   - this.leixing = !this.leixing
463   - this.chengeTatle = val
  217 + openyujingSet(row) {
  218 + // cereReminderSet({
  219 + // reminderType: '1'
  220 + // }).then(res => {
  221 + // console.error(res)
  222 + // this.zhong = res.data
  223 + // })
  224 + this.detailsinfo = JSON.parse(JSON.stringify(row))
  225 + this.yujingSet = true
464 226 },
465   - async getAll() {
466   - const res = await MarkGetAll(this.pageindex)
467   - this.tableData = res.data.content
468   - this.total = res.data.content.length
469   - const ziyuan = await changAlls(this.pageindex)
470   - this.ziyuanData = [...ziyuan.data.content]
471   -
  227 + details(row) {
  228 + this.detailsinfo = row
  229 + this.onaction = '3'
472 230 },
473   -
474   - // 新增确定按钮
475   - async addCheck(val) {
476   - if(this.addziyuanData.length !=0){
477   - this.formInline.venue = this.addziyuanData.map(item => item.id).join(',');
478   - }
479   - if(this.plan_Time.length !=0){
480   - this.formInline.startTime = this.plan_Time[0]
481   - this.formInline.endTime = this.plan_Time[1]
482   - }
483   - this.formInline.reviewStatus = '2'
484   - this.formInline.createdAt = this.currentTime()
485   - await MarkAdd(this.formInline)
486   - this.ggXin = false
487   - this.formInline = {
488   - title:'',
489   - content:'',
490   - venue:'',
491   - contactPerson:'',
492   - contactPhone:'',
493   - coverImage:'',
494   - registeredCount:'',
495   -
496   - }
497   -
498   - this.plan_Time =[]
499   - this.addziyuanData =[]
500   - this.getAll()
  231 + biangeng(row) {
  232 + alert(`合同变更 - 店铺ID: ${row.id}`);
501 233 },
502   - // 获取时间
503   - currentTime() {
504   - let date = new Date();
505   - let year = date.getFullYear();
506   - let month = date.getMonth() + 1; // 月份从0~11,所以加一
507   - let day = date.getDate();
508   - let hours = date.getHours();
509   - let minutes = date.getMinutes();
510   - let seconds = date.getSeconds();
511   -
512   - // 为月、日、小时、分钟和秒添加前导零(如果需要)
513   - month = month < 10 ? '0' + month : month;
514   - day = day < 10 ? '0' + day : day;
515   - hours = hours < 10 ? '0' + hours : hours;
516   - minutes = minutes < 10 ? '0' + minutes : minutes;
517   - seconds = seconds < 10 ? '0' + seconds : seconds;
518   -
519   - // 返回格式化的日期和时间字符串
520   - return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
  234 + xuyue(row) {
  235 + alert(`合同续约 - 店铺ID: ${row.id}`);
521 236 },
522   -
523   - //详情
524   - details(item) {
525   - this.plan_Time[0] = item.startTime
526   - this.plan_Time[1] = item.endTime
527   - this.edit = true
528   - this.xiangData = item
529   - this.detbox = true
530   -
531   -
532   -
533   - },
534   - zhongzhi(item){
535   - this.edit = false
536   - this.xiangData = item
537   - this.detbox = true
538   - this.plan_Time[0] = item.startTime
539   - this.plan_Time[1] = item.endTime
  237 + zhongzhi(row) {
  238 + alert(`合同终止 - 店铺ID: ${row.id}`);
540 239 },
541   - async addbuss() {
542   - if(this.plan_Time.length !=0){
543   - this.xiangData.startTime = this.plan_Time[0]
544   - this.xiangData.endTime = this.plan_Time[1]
545   - }
546   -
547   - await MarkEdit(this.xiangData)
548   - this.plan_Time = []
549   - this.detbox = false
550   - this.getAll()
  240 + async getAll() {
  241 + const res = await MarkGetAll(this.pagequery)
  242 + this.tableData = res.data.content
  243 + this.total = res.data.totalElements
551 244 },
552   - handleSizeChange(val) {
553   - this.pageSize = val
  245 + removeonaction(e) {
  246 + console.error(e)
  247 + this.onaction = e
  248 + this.onSubmit()
554 249 },
555 250 handleCurrentChange(val) {
556   - this.currentPage = val
557   - },
558   -
559   - closeFn(val) {
560   - this.plan_Time =[]
561   - this.addziyuanData =[]
562   - this.formInline = {
563   - title:'',
564   - content:'',
565   - venue:'',
566   - contactPerson:'',
567   - contactPhone:'',
568   - coverImage:'',
569   - registeredCount:'',
570   -
571   - }
572   - this.bianjiBox = 1
573   - if (val == 1) {
574   - this.ggXin = false
575   - } else {
576   - this.detbox = false
577   - }
  251 + this.pagequery.pageNumber = val - 1
  252 + this.getAll()
578 253 },
579   - //查看合同
580   - lookHetong(val) {
581   - this.hetongBox = true
  254 + handleSizeChange(val) {
  255 + this.pagequery.pageSize = val
582 256 },
583 257 // 查询按钮
584 258 async onSubmit() {
585   - this.formSel.pageNumber = 1
586   - this.formSel.pageSize = 10
587   - const res = await MarkGetAll(this.formSel)
588   - this.tableData = res.data.content
589   - this.total = res.data.content.length
590   - this.formSel = {
591   - title:'',
592   - venue:'',
593   - contactPerson:'',
594   - contactPhone:'',
595   - }
  259 + this.pagequery.pageNumber = 0
  260 + this.getAll()
596 261 },
597 262 //重置按钮
598 263 resetting() {
599   - this.formSel = {
600   - title:'',
601   - venue:'',
602   - contactPerson:'',
603   - contactPhone:'',}
  264 + this.pagequery = {
  265 + pageNumber: 0,
  266 + pageSize: 10,
  267 + checkState:'2',
  268 + name: ''
  269 + },
604 270 this.getAll()
605 271 },
606   -
607   - minSev() {
608   - this.addziyuanData = this.multipleSelection
609   - this.addziyuan = false
610   - this.multipleSelection =[]
611   - },
612   - mingClose(){
613   - this.multipleSelection =[]
614   - this.addziyuan = false
615   - },
616   - handleSelectionChange(val) {
617   -
618   - this.multipleSelection.push(val)
619   - },
620   - deltab(item){
621   - const h = this.$createElement;
622   - this.$msgbox({
623   - title: '消息',
624   - message: h('p', null, [
625   - h('span', null, '是否删除 '),
626   - ]),
627   - showCancelButton: true,
628   - showClose:false,
629   - confirmButtonText: '确定',
630   - cancelButtonText: '取消',
631   - customClass:'oe-dialog-btn',
632   - beforeClose: (action, instance, done) => {
633   - if (action === 'confirm') {
634   - MarkDel({id:item.id}).then(res=>{
635   - this.getAll()
636   - done();
637   - })
638   - } else {
639   - done();
640   - }
641   - }
642   - })
643   - },
644   - fabu(item,val){
645   - const h = this.$createElement;
646   - this.$msgbox({
647   - title: '消息',
648   - message: h('p', null, [
649   - h('span', null, '是否处理'),
650   - ]),
651   - showCancelButton: true,
652   - showClose:false,
653   - confirmButtonText: '确定',
654   - cancelButtonText: '取消',
655   - customClass:'oe-dialog-btn',
656   - beforeClose: (action, instance, done) => {
657   - if (action === 'confirm') {
658   - MarkEdit({id:item.id,reviewStatus:val}).then(res=>{
659   - this.getAll()
660   - done();
661   - })
662   - } else {
663   - done();
664   - }
665   - }
666   - })
667   -
668   - },
669   - Qcode(items){
670   - this.showQF = true
671   - let pgs={
672   - scene:`item='${items.id}'`,
673   - // scene:items,
674   - page:"pages/marketing/marketingDetail/marketingDetail"
675   - }
676   - QRcode(pgs).then(res=>{
677   - this.qfUrl = res.data
678   - })
679   - },
680   - async getMing(ids){
681   - let page={
682   - activityId:ids
683   - }
684   - const res = await Registration(page)
685   - this.mingList = res.data
686   - this.baoming = true
687   - }
688   -
689 272 }
  273 +
690 274 }
691 275 </script>
692 276  
693 277 <style scoped>
694 278 .zhuti {
695   - padding: 0 20px 20px 20px;
  279 + padding: 0 20px 20px 20px;
696 280 min-height: calc(100vh - 50px - 20px);
697 281 background-color: #Fff;
698 282  
699 283 }
700   -
701   - .chengeXia {
702   - border-bottom: 6px solid #3F9B6A;
703   - padding-bottom: 4px;
704   - color: #3F9B6A;
  284 + .chengeXia{
  285 + border-bottom: 6px solid #3F9B6A;padding-bottom: 4px;color: #3F9B6A;
705 286 }
706 287  
707 288 /deep/ .el-form-item__content {
708   - line-height: 0;
  289 + /* line-height: 0; */
709 290 }
710 291  
711   - .tableBtn {
712   - display: inline-block;
713   - margin-right: 10px;
714   - color: #ACACAC;
715   - }
  292 +
716 293  
717 294 .formSearch {
718 295 display: flex;
719 296 width: 100%;
720 297 font-size: 14px;
721 298 justify-content: space-between;
  299 + padding-bottom: 10px;
  300 +
722 301 }
723 302  
724 303 .greens {
... ... @@ -727,8 +306,8 @@
727 306  
728 307 /deep/ .el-table__row {
729 308 font-size: 14px;
730   - color: #000000e6;
731   - height: 42px;
  309 + color:#000000e6;
  310 + height:42px;
732 311 }
733 312  
734 313 .fenye {
... ... @@ -779,25 +358,21 @@
779 358 background: #fff;
780 359 height: 50px;
781 360 }
782   -
783   - /deep/ .bg-purple[data-v-3bebae82] {
  361 + /deep/ .bg-purple[data-v-3bebae82]{
784 362 background: #fff;
785 363 height: 50px;
786 364 }
787 365  
788   - ::v-deep .bg-purple {
  366 +::v-deep .bg-purple{
789 367 background: #fff;
790 368 height: 50px;
791 369 }
792   -
793 370 /deep/ .el-form--label-top .el-form-item__label {
794 371 padding: 0;
795 372 }
796   -
797   - ::v-deep .el-form-item {
798   - margin-bottom: 16px;
799   - }
800   -
  373 +::v-deep .el-form-item{
  374 + margin-bottom:16px;
  375 +}
801 376 .device-form .el-form-item__label::after {
802 377 content: "*";
803 378 color: #1A1A1A;
... ... @@ -811,162 +386,133 @@
811 386 background-color: #FAFAFA;
812 387 }
813 388 }
814   -
815   - ::v-deep .el-input__inner:focus {
816   - border: #3F9B6A 1px solid;
817   - }
818   -
  389 + ::v-deep .el-input__inner:focus {
  390 + border: #3F9B6A 1px solid;
  391 + }
819 392 .dialog-footer {
820 393 display: flex;
821 394 justify-content: flex-end;
822 395 border-top: solid rgba(209, 209, 209, 0.2) 2px;
823 396 padding-top: 20px;
824 397 }
825   -
826   - ::v-deep .el-input__inner:focus {
827   - border: #3F9B6A 1px solid;
828   - }
829   -
830   - ::v-deep .el-input__inner:hover {
831   - border: #3F9B6A 1px solid;
832   - }
833   -
834   - ::v-deep .el-select .el-input.is-focus .el-input__inner {
835   - border-color: #3F9B6A
836   - }
837   -
838   - .el-select-dropdown__item.selected {
  398 + ::v-deep .el-input__inner:focus {
  399 + border: #3F9B6A 1px solid;
  400 + }
  401 + ::v-deep .el-input__inner:hover {
  402 + border: #3F9B6A 1px solid;
  403 + }
  404 + ::v-deep .el-select .el-input.is-focus .el-input__inner{
  405 + border-color:#3F9B6A
  406 + }
  407 +::v-deep .btn .el-button:focus,
  408 +.el-button:hover {
  409 + border: 1px solid #3F9B6A;
  410 +}
  411 +.el-select-dropdown__item.selected{
839 412 color: #3F9B6A;
840   - }
  413 +}
841 414  
842   - .el-pagination__sizes .el-input .el-input__inner:hover {
  415 +.el-pagination__sizes .el-input .el-input__inner:hover{
843 416 border-color: #3F9B6A;
844   - }
845   -
846   - ::v-deep .el-dialog__wrapper {
  417 +}
  418 +::v-deep .el-dialog__wrapper{
847 419  
848   - .dialog_css {
  420 + .dialog_css{
849 421 margin-right: 12px;
850   - margin-top: 61px !important;
851   -
  422 + margin-top:61px !important;
852 423 .el-dialog__title {
853 424 font-size: 16px !important;
854 425 font-weight: 600;
855 426 color: #000;
856 427 }
857   - }
858   -
859   - .diaslog_zhong {
860   - margin-left: 25%;
861   - margin-top: 61px !important;
862   - }
863   -
864 428 }
865   -
866   - ::v-deep .diaslog_zhong {
867   - margin-left: 20%;
868   - margin-top: 61px !important;
869   -
870   - .el-dialog__header {
871   - background-color: #fff;
872   - border-bottom: 1px solid #EFEFEF;
873   -
874   - .el-dialog__title {
875   - font-size: 14px;
876   - color: #000000e6;
877   - }
878   - }
879   -
880   - .el-dialog__body {
881   - padding: 10px 30px 30px 20px
882   - }
883   - }
884   -
885   - /deep/ .el-table_1_column_8 .hetong {
886   - color: #7DBB9A;
887   - text-decoration: underline;
  429 + .diaslog_zhong{
  430 + margin-left: 20%;
  431 + margin-top:61px !important;
  432 + }
  433 +
  434 +}
  435 + ::v-deep .diaslog_zhong{
  436 + margin-left: 20%;
  437 + margin-top:61px !important;
  438 + .el-dialog__header{
  439 + background-color:#fff;
  440 + border-bottom:1px solid #EFEFEF;
  441 + .el-dialog__title{
  442 + font-size: 14px;
  443 + color: #000000e6;
  444 + }
  445 + }
  446 + .el-dialog__body{
  447 + padding:10px 20px 30px 20px
  448 + }
888 449 }
889 450  
890   - /deep/ .first-column-bg {
  451 + /deep/ .el-table_1_column_8 .hetong{
  452 + color:#7DBB9A;
  453 + text-decoration: underline;
  454 +}
  455 +/deep/ .first-column-bg {
891 456 background-color: #FAFAFA !important;
892 457 }
893 458  
894   - ::v-deep .textarea {
895   - width: 85%;
  459 +.el-table tr{
  460 + height:56px;
  461 +}
896 462  
897   - .el-textarea__inner {
898   - width: 100%;
899   - }
  463 +::v-deep .table3{
  464 + .el-table__empty-block{
  465 + display:none;
900 466 }
901   -
902   - ::v-deep .pass_input {
  467 +}
  468 +::v-deep .textarea{
  469 + width: 85%;
  470 + .el-textarea__inner{
903 471 width: 100%;
904   -
905   - .el-input__inner {
906   - border: none;
907   - padding: 0;
908   - }
909 472 }
910   -
911   - ::v-deep .pass_select {
  473 +}
  474 +::v-deep .el-button--mini{
  475 + padding: 7px 10px;
  476 +}
  477 +::v-deep .pass_input{
912 478 width: 100%;
913   -
914 479 .el-input__inner {
915 480 border: none;
916   - padding: 0;
  481 + padding:0;
  482 + }
  483 + }
  484 +::v-deep .pass_select{
  485 + width: 100%;
  486 + .el-input__inner {
  487 + border: none;
  488 + padding:0;
917 489 }
  490 + .el-icon-arrow-up:before{
  491 + content:''
  492 + }
918 493  
919   - .el-icon-arrow-up:before {
920   - content: ''
921   - }
  494 +}
  495 + /deep/ .el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell{
  496 + background-color: #fff;
  497 +}
922 498  
923   - }
924 499  
925   - /deep/ .el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell {
926   - background-color: #fff;
927   - }
928 500 </style>
929 501 <style lang="scss" scoped>
930   - ::v-deep .bian_css {
931   - .el-dialog__header {
932   - padding: 0px;
933   - }
934   -
935   - .el-input__inner {
936   - height: 18px;
937   - border: 0px;
938   - margin-top: 0px;
939   - }
940   -
941   - .el-input__inner:hover {
942   - border: 0px;
943   - }
944   -
945   - .el-input__inner:focus {
946   - border: 0px;
  502 + ::v-deep .bian_css{
  503 + .el-dialog__header{
  504 + padding:0px;
947 505 }
948 506 }
949   -
950   - ::v-deep .buttonHover:hover {
951   - color: #3f9b6a !important;
  507 + ::v-deep .buttonHover:hover{
  508 + color:#3f9b6a !important;
952 509 border-color: #c5e1d2 !important;
953 510 background-color: #ecf5f0 !important;
954 511 outline: none;
955 512 }
956   -
957   - ::v-deep .el-pagination__total {
958   - position: absolute;
959   - left: 33px;
960   - }
961   -
962   - ::v-deep .diaslog_zhong {
963   - .el-dialog__body {
964   - padding: 10px 20px 20px 20px;
965   - }
966   -
967   - .el-upload--picture-card {
968   - width: 130px;
969   - height: 130px;
970   - }
  513 + ::v-deep .el-pagination__total{
  514 + position: absolute;
  515 + left: 33px;
971 516 }
972 517 </style>
  518 +
... ...
wenjuan/.env.staging
... ... @@ -6,4 +6,4 @@ ENV = &#39;staging&#39;
6 6 # base api
7 7 VUE_APP_BASE_API = '/stage-api'
8 8  
9   -VUE_APP_DOMAIN_PREFIX = 'http://8.130.38.56:8027/admin-web'
  9 +VUE_APP_DOMAIN_PREFIX = 'http://8.130.38.56:8027/admin-web'
... ...