Commit 8e6b81eeacc8fe60270fbdd69ec7fb0de304bd63

Authored by wesley88
1 parent b5b8bec2

1

admin-web-master/src/api/newly.js
1 1 import request from '@/utils/request'
2 2 // import request from '@/utils/request2'
  3 +// 资源数量增长趋势
  4 +export function resourceQuantityGrowth(data) {
  5 + return request({
  6 + url: '/statistical/resourceQuantityGrowth',
  7 + method: 'post',
  8 + data
  9 + })
  10 +}
  11 +// 资源分布统计
  12 +export function resourceDistributionStatistics(data) {
  13 + return request({
  14 + url: '/statistical/resourceDistributionStatistics',
  15 + method: 'post',
  16 + data
  17 + })
  18 +}
  19 +// 资源情况占比
  20 +export function resourceSituationProportion(data) {
  21 + return request({
  22 + url: '/statistical/resourceSituationProportion',
  23 + method: 'post',
  24 + data
  25 + })
  26 +}
  27 +
  28 +// 资源利用率占比
  29 +export function resourceUtilizationProportion(data) {
  30 + return request({
  31 + url: '/statistical/resourceUtilizationProportion',
  32 + method: 'post',
  33 + data
  34 + })
  35 +}
  36 +
3 37  
4 38  
5 39 // 租赁情况统计
... ...
admin-web-master/src/views/detect/analyse 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 style="width: 100%;margin-bottom:30px;">
  9 + <div style="display:flex;justify-content: space-between">
  10 + <div style="display:flex;">
  11 + <!-- <div style="margin-right: 10px;line-height:35px;">商铺/广告位资源统计</div> -->
  12 + <!-- <el-select v-model="formSel.createDate" placeholder="所属区域" style="width: 150px;margin-right: 10px">
  13 + <el-option label="1" value="1" />
  14 + <el-option label="2" value="2" />
  15 + </el-select>
  16 + <el-select v-model="formSel.createDate" placeholder="经营类型" style="width: 150px;margin-right: 10px">
  17 + <el-option label="1" value="1" />
  18 + <el-option label="2" value="2" />
  19 + </el-select> -->
  20 + <el-date-picker v-model="FormTime" value-format="yyyy-MM-dd" type="daterange"
  21 + range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"
  22 + style="width: 300px;margin-right: 10px;" prefix-icon="none">
  23 + </el-date-picker>
  24 + <el-button @click="onSubmit" style="background-color: #3F9B6A;color: #fff;">查询
  25 + </el-button>
  26 + <el-button @click="resetting" class="buttonHover"
  27 + style="color: #000;border: 1px solid #DBDBDB;background-color: #fff;">重置
  28 + </el-button>
  29 + </div>
  30 + <div>
  31 + <el-button @click="gitOut" style="background-color: #3F9B6A;color: #fff">导出
  32 + </el-button>
  33 + </div>
  34 + </div>
  35 +
  36 + </div>
  37 + <div ref="contentToConvert">
  38 + <TitleWithCircle title="商铺/广告位资源统计" style="margin: 20px 0;" />
  39 + <div style="display:flex;">
  40 + <div style="width:48%;height: 400px;">
  41 + <div style="display: flex;justify-content: space-between;">
  42 + <div style="line-height:35px;">资源数量增长趋势</div>
  43 + <!-- <div>
  44 + <el-select v-model="formSel.createDate" placeholder="状态" style="width: 100px;margin-right: 10px">
  45 + <el-option label="1" value="1" />
  46 + <el-option label="2" value="2" />
  47 + </el-select>
  48 + <el-select v-model="formSel.createDate" placeholder="类型" style="width: 100px;margin-right: 10px">
  49 + <el-option label="1" value="1" />
  50 + <el-option label="2" value="2" />
  51 + </el-select>
  52 + </div> -->
  53 + </div>
  54 + <div ref="shop1ZX" style="width:100%;height: 400px;"></div>
  55 + </div>
  56 + <div style="width:48%;height: 400px;">
  57 + <div style="display: flex;justify-content: space-between;">
  58 + <div style="line-height:35px;">各资源数量统计</div>
  59 + <!-- <div>
  60 + <el-select v-model="formSel.createDate" placeholder="状态" style="width: 100px;margin-right: 10px">
  61 + <el-option label="1" value="1" />
  62 + <el-option label="2" value="2" />
  63 + </el-select>
  64 + <el-select v-model="formSel.createDate" placeholder="类型" style="width: 100px;margin-right: 10px">
  65 + <el-option label="1" value="1" />
  66 + <el-option label="2" value="2" />
  67 + </el-select>
  68 + </div> -->
  69 + </div>
  70 + <div ref="shop1TJ" style="width:100%;height: 400px;"></div>
  71 + </div>
  72 + </div>
  73 + <TitleWithCircle title="商铺/广告位意向统计" style="margin: 20px 0;" />
  74 + <div style="width: 100%;">
  75 + <div style="display:flex;justify-content: space-between">
  76 + <div style="display:flex;">
  77 + <!-- <div style="margin-right: 10px;line-height:35px;">商铺/广告位意向统计</div> -->
  78 + <!-- <el-date-picker v-model="value1" type="datetimerange" range-separator="-" start-placeholder="开始日期"
  79 + end-placeholder="结束日期" style="width: 200px;margin-right: 10px;margin-top:0px;" prefix-icon="none">
  80 + </el-date-picker>
  81 + <el-button @click="onSubmit" style="background-color: #3F9B6A;color: #fff">检索
  82 + </el-button>
  83 + <el-button @click="resetting" class="buttonHover"
  84 + style="color: #000;border: 1px solid #DBDBDB;background-color: #fff;">重置
  85 + </el-button> -->
  86 + </div>
  87 + <!-- <div>
  88 + <el-button @click="onSubmit" style="background-color: #3F9B6A;color: #fff">导出
  89 + </el-button>
  90 + </div> -->
  91 + </div>
  92 + <div style="display:flex;margin-top:10px;">
  93 + <div style="width:48%;height: 400px;margin-right:20px;">
  94 + <div style="display: flex;justify-content: space-between;">
  95 + <div style="line-height:35px;">租赁意向人群统计</div>
  96 + <!-- <div>
  97 + <el-select v-model="formSel.createDate" placeholder="类型" style="width: 100px;margin-right: 10px">
  98 + <el-option label="1" value="1" />
  99 + <el-option label="2" value="2" />
  100 + </el-select>
  101 + </div> -->
  102 + </div>
  103 + <div ref="shop2BT" style="width:100%;height: 400px;"></div>
  104 + </div>
  105 + <div style="width:48%;height: 400px;margin-right:20px;">
  106 + <div style="display: flex;justify-content: space-between;">
  107 + <div style="line-height:35px;">意向申请数量</div>
  108 + <!-- <div>
  109 + <el-select v-model="formSel.createDate" placeholder="类型" style="width: 100px;margin-right: 10px">
  110 + <el-option label="1" value="1" />
  111 + <el-option label="2" value="2" />
  112 + </el-select>
  113 + </div> -->
  114 + </div>
  115 + <div ref="shop2TJ" style="width:100%;height: 400px;"></div>
  116 + </div>
  117 + </div>
  118 + </div>
  119 + <!-- <div style="width: 100%;margin-bottom:20px;">
  120 + <div style="display:flex;justify-content: space-between">
  121 + <div style="display:flex;">
  122 + <div style="margin-right: 10px;line-height:35px;">商铺/广告位整体经营统计</div>
  123 + <el-date-picker v-model="value1" type="datetimerange" range-separator="-" start-placeholder="开始日期"
  124 + end-placeholder="结束日期" style="width: 200px;margin-right: 10px;margin-top:0px;" prefix-icon="none">
  125 + </el-date-picker>
  126 + <el-button @click="onSubmit" style="background-color: #3F9B6A;color: #fff">检索
  127 + </el-button>
  128 + <el-button @click="resetting" class="buttonHover"
  129 + style="color: #000;border: 1px solid #DBDBDB;background-color: #fff;">重置
  130 + </el-button>
  131 + </div>
  132 + <div>
  133 + <el-button @click="onSubmit" style="background-color: #3F9B6A;color: #fff">导出
  134 + </el-button>
  135 + </div>
  136 + </div>
  137 + <div style="display:flex;margin-top:10px;">
  138 + <div style="width:48%;height: 400px;">
  139 + <div style="display: flex;justify-content: space-between;">
  140 + <div style="line-height:35px;">经营趋势统计</div>
  141 + <div>
  142 + <el-select v-model="formSel.createDate" placeholder="类型" style="width: 100px;margin-right: 10px">
  143 + <el-option label="1" value="1" />
  144 + <el-option label="2" value="2" />
  145 + </el-select>
  146 + </div>
  147 + </div>
  148 + <div ref="shop3ZX" style="width:100%;height: 400px;"></div>
  149 + </div>
  150 + <div style="width:48%;height: 400px;">
  151 + <div style="display: flex;justify-content: space-between;">
  152 + <div style="line-height:35px;">营业收入情况</div>
  153 + <div>
  154 + <el-select v-model="formSel.createDate" placeholder="类型" style="width: 100px;margin-right: 10px">
  155 + <el-option label="1" value="1" />
  156 + <el-option label="2" value="2" />
  157 + </el-select>
  158 + </div>
  159 + </div>
  160 + <div ref="shop3TJ" style="width:100%;height: 400px;"></div>
  161 + </div>
  162 + </div>
  163 + </div> -->
  164 + <!-- 进度条 -->
  165 + <!-- <div style="width: 100%;margin:20px 0;">
  166 + <div style="display:flex;justify-content: space-between">
  167 + <div style="display:flex;">
  168 + <div style="margin-right: 10px;line-height:35px;">商户收费情况统计</div>
  169 + <el-input placeholder="请输入商户名称" v-model="formSel.shopName" style="width:200px;margin-right:15px;" />
  170 + <el-date-picker v-model="value1" type="datetimerange" range-separator="-" start-placeholder="开始日期"
  171 + end-placeholder="结束日期" style="width: 200px;margin-right: 10px;margin-top:0px;" prefix-icon="none">
  172 + </el-date-picker>
  173 + <el-button @click="onSubmit" style="background-color: #3F9B6A;color: #fff">检索
  174 + </el-button>
  175 + <el-button @click="resetting" class="buttonHover"
  176 + style="color: #000;border: 1px solid #DBDBDB;background-color: #fff;">重置
  177 + </el-button>
  178 + </div>
  179 + <div>
  180 + <el-button @click="onSubmit" style="background-color: #3F9B6A;color: #fff">导出
  181 + </el-button>
  182 + </div>
  183 + </div>
  184 + <div style="margin-top:10px;padding:20px">
  185 + <div style="display:flex;margin-bottom:20px;" v-for="index in 5">
  186 + <div style="margin-right:20px;">收费项{{index}}</div>
  187 + <div style='width:90%'><el-progress :percentage="50"></el-progress></div>
  188 + </div>
  189 + </div>
  190 + </div> -->
  191 +
  192 + <!-- <div style="width: 100%;margin:20px 0;">
  193 + <div style="display:flex;justify-content: space-between">
  194 + <div style="display:flex;">
  195 + <div style="margin-right: 10px;line-height:35px;">收费位置统计</div>
  196 + <el-input placeholder="请输入商户名称" v-model="formSel.shopName" style="width:200px;margin-right:15px;" />
  197 + <el-date-picker v-model="value1" type="datetimerange" range-separator="-" start-placeholder="开始日期"
  198 + end-placeholder="结束日期" style="width: 200px;margin-right: 10px;margin-top:0px;" prefix-icon="none">
  199 + </el-date-picker>
  200 + <el-button @click="onSubmit" style="background-color: #3F9B6A;color: #fff">检索
  201 + </el-button>
  202 + <el-button @click="resetting" class="buttonHover"
  203 + style="color: #000;border: 1px solid #DBDBDB;background-color: #fff;">重置
  204 + </el-button>
  205 + </div>
  206 + <div>
  207 + <el-button @click="onSubmit" style="background-color: #3F9B6A;color: #fff">导出
  208 + </el-button>
  209 + </div>
  210 + </div>
  211 + <div style="margin-top:10px;padding:20px">
  212 + <div style="display:flex;margin-bottom:20px;" v-for="index in 5">
  213 + <div style="margin-right:20px;">线上商城{{index}}</div>
  214 + <div style='width:90%'><el-progress :percentage="50"></el-progress></div>
  215 + </div>
  216 + </div>
  217 + </div> -->
  218 +
  219 + <!-- <div style="width: 100%;margin-bottom:20px;">
  220 + <div style="display:flex;justify-content: space-between">
  221 + <div style="display:flex;">
  222 + <div style="margin-right: 10px;line-height:35px;">出租、退租、续租统计</div>
  223 + <el-select v-model="formSel.createDate" placeholder="所属区域" style="width: 150px;margin-right: 10px">
  224 + <el-option label="1" value="1" />
  225 + <el-option label="2" value="2" />
  226 + </el-select>
  227 + <el-select v-model="formSel.createDate" placeholder="经营类型" style="width: 150px;margin-right: 10px">
  228 + <el-option label="1" value="1" />
  229 + <el-option label="2" value="2" />
  230 + </el-select>
  231 + <el-date-picker v-model="value1" type="datetimerange" range-separator="-" start-placeholder="开始日期"
  232 + end-placeholder="结束日期" style="width: 200px;margin-right: 10px;ma" prefix-icon="none">
  233 + </el-date-picker>
  234 + <el-button @click="onSubmit" style="background-color: #3F9B6A;color: #fff">检索
  235 + </el-button>
  236 + <el-button @click="resetting" class="buttonHover"
  237 + style="color: #000;border: 1px solid #DBDBDB;background-color: #fff;">重置
  238 + </el-button>
  239 + </div>
  240 + <div>
  241 + <el-button @click="onSubmit" style="background-color: #3F9B6A;color: #fff">导出
  242 + </el-button>
  243 + </div>
  244 + </div>
  245 + <div style="display:flex;margin-top:10px;">
  246 + <div style="width:48%;height: 400px;">
  247 + <div style="display: flex;justify-content: space-between;">
  248 + <div style="line-height:35px;">租赁趋势统计</div>
  249 + <div>
  250 + <el-select v-model="formSel.createDate" placeholder="类型" style="width: 100px;margin-right: 10px">
  251 + <el-option label="1" value="1" />
  252 + <el-option label="2" value="2" />
  253 + </el-select>
  254 + </div>
  255 + </div>
  256 + <div ref="shop4ZX" style="width:100%;height: 400px;"></div>
  257 + </div>
  258 + <div style="width:48%;height: 400px;">
  259 + <div style="display: flex;justify-content: space-between;">
  260 + <div style="line-height:35px;">租赁商户top5</div>
  261 + <div>
  262 + <el-select v-model="formSel.createDate" placeholder="类型" style="width: 100px;margin-right: 10px">
  263 + <el-option label="1" value="1" />
  264 + <el-option label="2" value="2" />
  265 + </el-select>
  266 + </div>
  267 + </div>
  268 + <div ref="shop4TJ" style="width:100%;height: 400px;"></div>
  269 + </div>
  270 + </div>
  271 + </div> -->
  272 + <TitleWithCircle title="合同情况统计" style="margin: 20px 0;" />
  273 + <div style="width: 100%;">
  274 + <div style="display:flex;justify-content: space-between">
  275 + <div style="display:flex;">
  276 + <!-- <div style="margin-right: 10px;line-height:35px;">合同情况统计</div> -->
  277 + <!-- <el-select v-model="formSel.createDate" placeholder="所属区域" style="width: 150px;margin-right: 10px">
  278 + <el-option label="1" value="1" />
  279 + <el-option label="2" value="2" />
  280 + </el-select>
  281 + <el-select v-model="formSel.createDate" placeholder="经营类型" style="width: 150px;margin-right: 10px">
  282 + <el-option label="1" value="1" />
  283 + <el-option label="2" value="2" />
  284 + </el-select>
  285 + <el-date-picker v-model="value1" type="datetimerange" range-separator="-" start-placeholder="开始日期"
  286 + end-placeholder="结束日期" style="width: 200px;margin-right: 10px;ma" prefix-icon="none">
  287 + </el-date-picker>
  288 + <el-button @click="onSubmit" style="background-color: #3F9B6A;color: #fff">检索
  289 + </el-button>
  290 + <el-button @click="resetting" class="buttonHover"
  291 + style="color: #000;border: 1px solid #DBDBDB;background-color: #fff;">重置
  292 + </el-button> -->
  293 + </div>
  294 + <!-- <div>
  295 + <el-button @click="onSubmit" style="background-color: #3F9B6A;color: #fff">导出
  296 + </el-button>
  297 + </div> -->
  298 + </div>
  299 + <div style="display:flex;margin-top:10px;">
  300 + <div style="width:48%;height: 400px;">
  301 + <div style="display: flex;justify-content: space-between;">
  302 + <div style="line-height:35px;">合同签约数量趋势</div>
  303 + <!-- <div>
  304 + <el-select v-model="formSel.createDate" placeholder="类型" style="width: 100px;margin-right: 10px">
  305 + <el-option label="1" value="1" />
  306 + <el-option label="2" value="2" />
  307 + </el-select>
  308 + </div> -->
  309 + </div>
  310 + <div ref="shop5ZX" style="width:100%;height: 400px;"></div>
  311 + </div>
  312 + <div style="width:48%;height: 400px;">
  313 + <div style="display: flex;justify-content: space-between;">
  314 + <div style="line-height:35px;">签约数量占比</div>
  315 + <!-- <div>
  316 + <el-select v-model="formSel.createDate" placeholder="类型" style="width: 100px;margin-right: 10px">
  317 + <el-option label="1" value="1" />
  318 + <el-option label="2" value="2" />
  319 + </el-select>
  320 + </div> -->
  321 + </div>
  322 + <div ref="shop5BT" style="width:100%;height: 400px;"></div>
  323 + </div>
  324 + </div>
  325 + </div>
  326 + </div>
  327 + </div>
  328 +
  329 + </div>
  330 +</template>
  331 +
  332 +<script>
  333 + import html2canvas from 'html2canvas'
  334 + import jsPDF from 'jspdf'
  335 + import TitleWithCircle from '@/components/top/index';
  336 + import {
  337 + statistical,
  338 + } from '@/api/information'
  339 + import * as echarts from 'echarts'
  340 + import {
  341 + async
  342 + } from 'q';
  343 + export default {
  344 + components: {
  345 + TitleWithCircle,
  346 + },
  347 + name: 'atmosphereGl',
  348 + data() {
  349 + return {
  350 + currentPage: 1,
  351 + radio1: 0,
  352 + total: 100,
  353 + flag: false,
  354 + pageSize: 10,
  355 + tableData: [],
  356 + FormTime: [],
  357 + pageindex: {
  358 + startTime: "1990-09-11",
  359 + endTime: "2024-11-09"
  360 + },
  361 + formSel: {
  362 +
  363 + }
  364 + }
  365 + },
  366 + computed: {},
  367 + created() {
  368 + //获取今天日期和一个月前的日期
  369 + let today = new Date();
  370 + let monthAgo = new Date();
  371 + monthAgo.setMonth(monthAgo.getMonth() - 1);
  372 + monthAgo.setDate(monthAgo.getDate() + 1);
  373 + this.pageindex.startTime = monthAgo.toISOString().slice(0, 10);
  374 + this.pageindex.endTime = today.toISOString().slice(0, 10);
  375 + this.FormTime = [
  376 + this.pageindex.startTime,
  377 + this.pageindex.endTime
  378 + ]
  379 + console.error(this.pageindex)
  380 + this.getAll()
  381 +
  382 + },
  383 + mounted() {
  384 +
  385 + // this.charDam1()
  386 + // this.charDam2()
  387 + // this.charDam3()
  388 + // this.charDam4()
  389 + // this.charDam5()
  390 +
  391 + // this.charDam7()
  392 +
  393 + // this.charDam9()
  394 + },
  395 + methods: {
  396 + charDam(datas) {
  397 + let Dom = this.$refs.shop2TJ
  398 + let myChart = echarts.init(Dom)
  399 + let processedData = datas.map(item => ({
  400 + name: item.trendDate,
  401 + value: item.trendQuantity
  402 + }))
  403 + let option = {
  404 + legend: {},
  405 + tooltip: {},
  406 + xAxis: {
  407 + type: 'category',
  408 + data: processedData.map(item => item.name),
  409 + },
  410 + yAxis: {
  411 + type: 'value',
  412 + },
  413 + grid: {
  414 + left: '1%',
  415 + right: '1%',
  416 + top: '5%',
  417 + bottom: '6%',
  418 + containLabel: true
  419 + },
  420 + series: [{
  421 + type: 'bar',
  422 + color: '#3f9b6a',
  423 + data: processedData.map(item => item.value),
  424 + }]
  425 + };
  426 + option && myChart.setOption(option);
  427 + },
  428 + charDam1(datas) {
  429 + let Dom = this.$refs.shop1ZX
  430 + let myChart = echarts.init(Dom);
  431 +
  432 + let processedData = datas.map(item => ({
  433 + name: item.trendDate || '11',
  434 + value: item.trendQuantity
  435 + }))
  436 + processedData.push({
  437 + name: '',
  438 + value: 0
  439 + })
  440 + let option = {
  441 + xAxis: {
  442 + type: 'category',
  443 + data: ['商铺', '场地', '广告位'],
  444 + },
  445 + yAxis: {
  446 + type: 'value',
  447 + max: 50
  448 + },
  449 + grid: {
  450 + left: '1%',
  451 + right: '5%',
  452 + top: '5%',
  453 + bottom: '6%',
  454 + containLabel: true
  455 + },
  456 + series: [{ // 设置线条颜色
  457 + lineStyle: {
  458 + color: '#3f9b6a', // 这里设置为红色
  459 + width: 2, // 线条宽度
  460 + },
  461 + data: processedData.map(item => item.value),
  462 + type: 'line'
  463 + }]
  464 + }
  465 + option && myChart.setOption(option);
  466 + },
  467 + charDam2(datas) {
  468 + let Dom = this.$refs.shop2BT
  469 + let myChart = echarts.init(Dom);
  470 + let processedData = datas.map(item => ({
  471 + name: item.trendDate,
  472 + value: item.trendQuantity
  473 + }))
  474 +
  475 +
  476 + let option = {
  477 + tooltip: {
  478 + trigger: 'item'
  479 + },
  480 + legend: {
  481 + top: '5%',
  482 + left: 'right'
  483 + },
  484 + series: [{
  485 + type: 'pie',
  486 + radius: ['40%', '70%'],
  487 + avoidLabelOverlap: false,
  488 + itemStyle: {
  489 + borderRadius: 10,
  490 + borderColor: '#fff',
  491 + borderWidth: 2
  492 + },
  493 + label: {
  494 + show: false,
  495 + position: 'center'
  496 + },
  497 + emphasis: {
  498 + label: {
  499 + show: true,
  500 + fontSize: 40,
  501 + fontWeight: 'bold'
  502 + }
  503 + },
  504 + labelLine: {
  505 + show: false
  506 + },
  507 + color: ['#3f9b6a', 'rgb(61,182,211)'],
  508 + data: processedData,
  509 + }]
  510 + }
  511 + option && myChart.setOption(option);
  512 + },
  513 + charDam3(datas) {
  514 + let Dom = this.$refs.shop1TJ
  515 + let myChart = echarts.init(Dom);
  516 +
  517 + let processedData = datas.map(item => ({
  518 + // name: item.trendDate || '11',
  519 + value: item.trendQuantity
  520 + }))
  521 + let option = {
  522 + legend: {},
  523 + tooltip: {},
  524 + xAxis: {
  525 + type: 'category',
  526 + data: ['商铺', '场地', '广告位'],
  527 + },
  528 + yAxis: {
  529 + type: 'value',
  530 + max: 50
  531 + },
  532 + grid: {
  533 + left: '1%',
  534 + right: '1%',
  535 + top: '5%',
  536 + bottom: '6%',
  537 + containLabel: true
  538 + },
  539 + series: [{
  540 + type: 'bar',
  541 + color: '#3f9b6a',
  542 + data: processedData.map(item => item.value),
  543 + type: 'line'
  544 + }, ]
  545 + };
  546 + option && myChart.setOption(option);
  547 + },
  548 + // charDam4() {
  549 + // let Dom = this.$refs.shop4ZX
  550 + // let myChart = echarts.init(Dom);
  551 + // let option = {
  552 + // xAxis: {
  553 + // type: 'category',
  554 + // data: ['2024-07', '2024-08', '2024-09', '2024-10', '2024-11', '2024-12', '2024-13']
  555 + // },
  556 + // yAxis: {
  557 + // type: 'value'
  558 + // },
  559 + // grid: {
  560 + // left: '1%',
  561 + // right: '1%',
  562 + // top: '5%',
  563 + // bottom: '6%',
  564 + // containLabel: true
  565 + // },
  566 + // series: [{ // 设置线条颜色
  567 + // lineStyle: {
  568 + // color: '#3f9b6a', // 这里设置为红色
  569 + // width: 2, // 线条宽度
  570 + // },
  571 + // data: [0,0, 0, 1, 0, 0],
  572 + // type: 'line'
  573 + // }]
  574 + // }
  575 + // option && myChart.setOption(option);
  576 +
  577 + // },
  578 + // charDam5() {
  579 + // let Dom = this.$refs.shop4TJ
  580 + // let myChart = echarts.init(Dom);
  581 + // let option = {
  582 + // tooltip: {
  583 + // trigger: 'axis',
  584 + // axisPointer: {
  585 + // type: 'shadow'
  586 + // }
  587 + // },
  588 + // grid: {
  589 + // left: '3%',
  590 + // right: '4%',
  591 + // bottom: '3%',
  592 + // containLabel: true
  593 + // },
  594 + // xAxis: {
  595 + // type: 'value',
  596 + // boundaryGap: [0, 0.01]
  597 + // },
  598 + // yAxis: {
  599 + // type: 'category',
  600 + // data: ['商户A', '商户B', '商户C', '商户D', '商户E', ]
  601 + // },
  602 + // series: [{
  603 + // lineStyle: {
  604 + // color: '#3f9b6a', // 这里设置为红色
  605 + // width: 2, // 线条宽度
  606 + // },
  607 + // name: '2011',
  608 + // type: 'bar',
  609 + // data: [2, 4, 5, 4, 1, 5]
  610 + // }]
  611 + // };
  612 + // option && myChart.setOption(option);
  613 + // },
  614 + charDam6(datas) {
  615 +
  616 + let Dom = this.$refs.shop5ZX
  617 + let myChart = echarts.init(Dom)
  618 + let processedData = datas.map(item => ({
  619 + name: item.trendDate,
  620 + value: item.trendQuantity
  621 + }))
  622 + let option = {
  623 + xAxis: {
  624 + type: 'category',
  625 + data: processedData.map(item => item.name),
  626 + },
  627 + yAxis: {
  628 + type: 'value'
  629 + },
  630 + grid: {
  631 + left: '1%',
  632 + right: '1%',
  633 + top: '5%',
  634 + bottom: '6%',
  635 + containLabel: true
  636 + },
  637 + series: [{ // 设置线条颜色
  638 + lineStyle: {
  639 + color: '#3f9b6a', // 这里设置为红色
  640 + width: 2, // 线条宽度
  641 + },
  642 + data: processedData.map(item => item.value),
  643 + type: 'line'
  644 + }]
  645 + }
  646 + option && myChart.setOption(option);
  647 +
  648 +
  649 + },
  650 + charDam7(datas) {
  651 + let Dom = this.$refs.shop5BT
  652 + let myChart = echarts.init(Dom);
  653 +
  654 + let processedData = datas.map(item => ({
  655 + name: '签约数',
  656 + value: item.trendQuantity
  657 + }))
  658 +
  659 + // processedData.push({name:'签约数',value:0})
  660 + let option = {
  661 + tooltip: {
  662 + trigger: 'item'
  663 + },
  664 + legend: {
  665 + top: '5%',
  666 + left: 'center'
  667 + },
  668 + series: [{
  669 + type: 'pie',
  670 + radius: ['40%', '70%'],
  671 + avoidLabelOverlap: false,
  672 + itemStyle: {
  673 + borderRadius: 10,
  674 + borderColor: '#fff',
  675 + borderWidth: 2
  676 + },
  677 + label: {
  678 + show: false,
  679 + position: 'center'
  680 + },
  681 + emphasis: {
  682 + label: {
  683 + show: true,
  684 + fontSize: 40,
  685 + fontWeight: 'bold'
  686 + }
  687 + },
  688 + labelLine: {
  689 + show: false
  690 + },
  691 + data: processedData
  692 + }]
  693 + }
  694 + option && myChart.setOption(option);
  695 + },
  696 +
  697 + // charDam9(){
  698 +
  699 + // let Dom = this.$refs.shop3TJ
  700 + // let myChart = echarts.init(Dom);
  701 + // let option = {
  702 + // tooltip: {
  703 + // trigger: 'axis',
  704 + // axisPointer: {
  705 + // type: 'shadow'
  706 + // }
  707 + // },
  708 + // grid: {
  709 + // left: '3%',
  710 + // right: '4%',
  711 + // bottom: '3%',
  712 + // containLabel: true
  713 + // },
  714 + // xAxis: {
  715 + // type: 'value',
  716 + // boundaryGap: [0, 0.01]
  717 + // },
  718 + // yAxis: {
  719 + // type: 'category',
  720 + // data: ['商户A', '商户B', '商户C', '商户D', '商户E', ]
  721 + // },
  722 + // series: [{
  723 + // lineStyle: {
  724 + // color: '#3f9b6a', // 这里设置为红色
  725 + // width: 2, // 线条宽度
  726 + // },
  727 + // name: '2011',
  728 + // type: 'bar',
  729 + // data: [1, 2, 3, 4, 5, 10]
  730 + // }]
  731 + // };
  732 + // option && myChart.setOption(option);
  733 +
  734 + // },
  735 +
  736 + async getAll() {
  737 + const res = await statistical(this.pageindex)
  738 + console.log(res)
  739 + this.charDam(res.data.seekingIntentionStatistics)
  740 + this.charDam2(res.data.seekingIntentionStatistics)
  741 + this.charDam6(res.data.contractTrend)
  742 +
  743 + this.charDam7(res.data.basicQueryTrends)
  744 + let trends = [...res.data.shopTrend, ...res.data.venueTrend, ...res.data.advertisingTrend]
  745 +
  746 + this.charDam1(trends)
  747 + this.charDam3(trends)
  748 + },
  749 + handleSizeChange() {
  750 +
  751 + },
  752 + handleCurrentChange() {
  753 +
  754 + },
  755 + resetting() {
  756 + let today = new Date();
  757 + let monthAgo = new Date();
  758 + monthAgo.setMonth(monthAgo.getMonth() - 1);
  759 + monthAgo.setDate(monthAgo.getDate() + 1);
  760 + this.pageindex.startTime = monthAgo.toISOString().slice(0, 10);
  761 + this.pageindex.endTime = today.toISOString().slice(0, 10);
  762 + this.FormTime = [
  763 + this.pageindex.startTime,
  764 + this.pageindex.endTime
  765 + ]
  766 + this.getAll()
  767 + },
  768 + async onSubmit() {
  769 +
  770 + let Msg = {
  771 + startTime: this.FormTime[0],
  772 + endTime: this.FormTime[1]
  773 + }
  774 + const res = await statistical(Msg)
  775 + this.charDam(res.data.seekingIntentionStatistics)
  776 + this.charDam2(res.data.seekingIntentionStatistics)
  777 + this.charDam6(res.data.contractTrend)
  778 + this.charDam7(res.data.basicQueryTrends)
  779 + let trends = [...res.data.shopTrend, ...res.data.venueTrend, ...res.data.advertisingTrend]
  780 +
  781 + this.charDam1(trends)
  782 + this.charDam3(trends)
  783 +
  784 + },
  785 + async gitOut() {
  786 + const content = this.$refs.contentToConvert;
  787 +
  788 + // 使用 html2canvas 将 div 渲染为画布
  789 + const canvas = await html2canvas(content);
  790 +
  791 + // 获取画布的图像数据
  792 + const imgData = canvas.toDataURL('image/png');
  793 +
  794 + // 创建一个新的 PDF 文档
  795 + const pdf = new jsPDF('p', 'mm', 'a4');
  796 +
  797 + // 添加图像到 PDF,第二个参数是图像格式,第三个参数是缩放比例
  798 + const imgWidth = 190; // 图像的宽度(mm)
  799 + const imgHeight = (canvas.height * imgWidth) / canvas.width; // 保持图像的宽高比
  800 +
  801 + pdf.addImage(imgData, 'PNG', 10, 10, imgWidth, imgHeight); // 10, 10 是图像在 PDF 中的位置(mm)
  802 +
  803 + // 保存 PDF 文件
  804 + pdf.save('downloaded.pdf');
  805 + },
  806 + }
  807 + }
  808 +</script>
  809 +
  810 +<style scoped>
  811 + .zhuti {
  812 + padding: 0 20px 20px 20px;
  813 + min-height: calc(100vh - 50px - 20px);
  814 + background-color: #Fff;
  815 +
  816 + }
  817 +
  818 + /deep/ .el-form-item__content {
  819 + line-height: 0;
  820 + }
  821 +
  822 +
  823 +
  824 + .formSearch {
  825 + position: relative;
  826 + margin-top: 30px;
  827 + display: flex;
  828 + width: 100%;
  829 + height: 30px;
  830 + font-size: 14px;
  831 + margin-bottom: 10px;
  832 + }
  833 +
  834 + .greens {
  835 + color: #3F9B6A;
  836 + }
  837 +
  838 +
  839 + .fenye {
  840 + margin-top: 20px;
  841 + display: flex;
  842 + justify-content: flex-start;
  843 + position: relative;
  844 + }
  845 +
  846 + /deep/ .el-pagination.is-background .el-pager li:not(.disabled).active {
  847 + background-color: #3F9B6A;
  848 + }
  849 +
  850 + .el-row {
  851 + margin-bottom: 20px;
  852 + }
  853 +
  854 + :last-child {
  855 + margin-bottom: 0;
  856 + }
  857 +
  858 + .el-col {
  859 + border-radius: 4px;
  860 + }
  861 +
  862 + .bg-purple-dark {
  863 + background: #99a9bf;
  864 + }
  865 +
  866 + .bg-purple {
  867 + background: #d3dce6;
  868 + }
  869 +
  870 + .bg-purple-light {
  871 + background: #e5e9f2;
  872 + }
  873 +
  874 + .grid-content {
  875 + border-radius: 4px;
  876 + min-height: 36px;
  877 + }
  878 +
  879 + .row-bg {
  880 + padding: 10px 0;
  881 + background-color: #f9fafc;
  882 + }
  883 +
  884 + /deep/ .bg-purple[data-v-0e3fe4ec] {
  885 + background: #fff;
  886 + height: 50px;
  887 + }
  888 +
  889 + /deep/ .el-form--label-top .el-form-item__label {
  890 + padding: 0;
  891 + }
  892 +
  893 + .demo-input-suffix {
  894 + display: flex;
  895 + margin-right: 20px;
  896 + }
  897 +
  898 + .pagination {
  899 + text-align: right;
  900 + line-height: 20px;
  901 + }
  902 +
  903 + /deep/ .el-pagination__total {
  904 + margin-top: 4px;
  905 + }
  906 +
  907 + ::v-deep .el-select .el-input.is-focus .el-input__inner {
  908 + border-color: #3F9B6A
  909 + }
  910 +
  911 + /deep/ .el-dialog__header {
  912 + background-color: #fff;
  913 + padding: 0
  914 + }
  915 +
  916 + /deep/ .el-radio__input.is-checked .el-radio__inner {
  917 + border-color: #3F9B6A;
  918 + background: #3F9B6A;
  919 + }
  920 +
  921 + ::v-deep .buttonHover:hover {
  922 + color: #3f9b6a !important;
  923 + border-color: #c5e1d2 !important;
  924 + background-color: #ecf5f0 !important;
  925 + outline: none;
  926 + }
  927 +</style>
0 928 \ No newline at end of file
... ...
admin-web-master/src/views/detect/analyse.vue
... ... @@ -8,15 +8,6 @@
8 8 <div style="width: 100%;margin-bottom:30px;">
9 9 <div style="display:flex;justify-content: space-between">
10 10 <div style="display:flex;">
11   - <!-- <div style="margin-right: 10px;line-height:35px;">商铺/广告位资源统计</div> -->
12   - <!-- <el-select v-model="formSel.createDate" placeholder="所属区域" style="width: 150px;margin-right: 10px">
13   - <el-option label="1" value="1" />
14   - <el-option label="2" value="2" />
15   - </el-select>
16   - <el-select v-model="formSel.createDate" placeholder="经营类型" style="width: 150px;margin-right: 10px">
17   - <el-option label="1" value="1" />
18   - <el-option label="2" value="2" />
19   - </el-select> -->
20 11 <el-date-picker v-model="FormTime" value-format="yyyy-MM-dd" type="daterange"
21 12 range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"
22 13 style="width: 300px;margin-right: 10px;" prefix-icon="none">
... ... @@ -32,300 +23,18 @@
32 23 </el-button>
33 24 </div>
34 25 </div>
35   -
36 26 </div>
37   - <div ref="contentToConvert">
38   - <TitleWithCircle title="商铺/广告位资源统计" style="margin: 20px 0;" />
39   - <div style="display:flex;">
40   - <div style="width:48%;height: 400px;">
41   - <div style="display: flex;justify-content: space-between;">
42   - <div style="line-height:35px;">资源数量增长趋势</div>
43   - <!-- <div>
44   - <el-select v-model="formSel.createDate" placeholder="状态" style="width: 100px;margin-right: 10px">
45   - <el-option label="1" value="1" />
46   - <el-option label="2" value="2" />
47   - </el-select>
48   - <el-select v-model="formSel.createDate" placeholder="类型" style="width: 100px;margin-right: 10px">
49   - <el-option label="1" value="1" />
50   - <el-option label="2" value="2" />
51   - </el-select>
52   - </div> -->
53   - </div>
54   - <div ref="shop1ZX" style="width:100%;height: 400px;"></div>
55   - </div>
56   - <div style="width:48%;height: 400px;">
57   - <div style="display: flex;justify-content: space-between;">
58   - <div style="line-height:35px;">各资源数量统计</div>
59   - <!-- <div>
60   - <el-select v-model="formSel.createDate" placeholder="状态" style="width: 100px;margin-right: 10px">
61   - <el-option label="1" value="1" />
62   - <el-option label="2" value="2" />
63   - </el-select>
64   - <el-select v-model="formSel.createDate" placeholder="类型" style="width: 100px;margin-right: 10px">
65   - <el-option label="1" value="1" />
66   - <el-option label="2" value="2" />
67   - </el-select>
68   - </div> -->
69   - </div>
70   - <div ref="shop1TJ" style="width:100%;height: 400px;"></div>
71   - </div>
72   - </div>
73   - <TitleWithCircle title="商铺/广告位意向统计" style="margin: 20px 0;" />
74   - <div style="width: 100%;">
75   - <div style="display:flex;justify-content: space-between">
76   - <div style="display:flex;">
77   - <!-- <div style="margin-right: 10px;line-height:35px;">商铺/广告位意向统计</div> -->
78   - <!-- <el-date-picker v-model="value1" type="datetimerange" range-separator="-" start-placeholder="开始日期"
79   - end-placeholder="结束日期" style="width: 200px;margin-right: 10px;margin-top:0px;" prefix-icon="none">
80   - </el-date-picker>
81   - <el-button @click="onSubmit" style="background-color: #3F9B6A;color: #fff">检索
82   - </el-button>
83   - <el-button @click="resetting" class="buttonHover"
84   - style="color: #000;border: 1px solid #DBDBDB;background-color: #fff;">重置
85   - </el-button> -->
86   - </div>
87   - <!-- <div>
88   - <el-button @click="onSubmit" style="background-color: #3F9B6A;color: #fff">导出
89   - </el-button>
90   - </div> -->
91   - </div>
92   - <div style="display:flex;margin-top:10px;">
93   - <div style="width:48%;height: 400px;margin-right:20px;">
94   - <div style="display: flex;justify-content: space-between;">
95   - <div style="line-height:35px;">租赁意向人群统计</div>
96   - <!-- <div>
97   - <el-select v-model="formSel.createDate" placeholder="类型" style="width: 100px;margin-right: 10px">
98   - <el-option label="1" value="1" />
99   - <el-option label="2" value="2" />
100   - </el-select>
101   - </div> -->
102   - </div>
103   - <div ref="shop2BT" style="width:100%;height: 400px;"></div>
104   - </div>
105   - <div style="width:48%;height: 400px;margin-right:20px;">
106   - <div style="display: flex;justify-content: space-between;">
107   - <div style="line-height:35px;">意向申请数量</div>
108   - <!-- <div>
109   - <el-select v-model="formSel.createDate" placeholder="类型" style="width: 100px;margin-right: 10px">
110   - <el-option label="1" value="1" />
111   - <el-option label="2" value="2" />
112   - </el-select>
113   - </div> -->
114   - </div>
115   - <div ref="shop2TJ" style="width:100%;height: 400px;"></div>
116   - </div>
117   - </div>
118   - </div>
119   - <!-- <div style="width: 100%;margin-bottom:20px;">
120   - <div style="display:flex;justify-content: space-between">
121   - <div style="display:flex;">
122   - <div style="margin-right: 10px;line-height:35px;">商铺/广告位整体经营统计</div>
123   - <el-date-picker v-model="value1" type="datetimerange" range-separator="-" start-placeholder="开始日期"
124   - end-placeholder="结束日期" style="width: 200px;margin-right: 10px;margin-top:0px;" prefix-icon="none">
125   - </el-date-picker>
126   - <el-button @click="onSubmit" style="background-color: #3F9B6A;color: #fff">检索
127   - </el-button>
128   - <el-button @click="resetting" class="buttonHover"
129   - style="color: #000;border: 1px solid #DBDBDB;background-color: #fff;">重置
130   - </el-button>
131   - </div>
132   - <div>
133   - <el-button @click="onSubmit" style="background-color: #3F9B6A;color: #fff">导出
134   - </el-button>
135   - </div>
136   - </div>
137   - <div style="display:flex;margin-top:10px;">
138   - <div style="width:48%;height: 400px;">
139   - <div style="display: flex;justify-content: space-between;">
140   - <div style="line-height:35px;">经营趋势统计</div>
141   - <div>
142   - <el-select v-model="formSel.createDate" placeholder="类型" style="width: 100px;margin-right: 10px">
143   - <el-option label="1" value="1" />
144   - <el-option label="2" value="2" />
145   - </el-select>
146   - </div>
147   - </div>
148   - <div ref="shop3ZX" style="width:100%;height: 400px;"></div>
149   - </div>
150   - <div style="width:48%;height: 400px;">
151   - <div style="display: flex;justify-content: space-between;">
152   - <div style="line-height:35px;">营业收入情况</div>
153   - <div>
154   - <el-select v-model="formSel.createDate" placeholder="类型" style="width: 100px;margin-right: 10px">
155   - <el-option label="1" value="1" />
156   - <el-option label="2" value="2" />
157   - </el-select>
158   - </div>
159   - </div>
160   - <div ref="shop3TJ" style="width:100%;height: 400px;"></div>
161   - </div>
162   - </div>
163   - </div> -->
164   - <!-- 进度条 -->
165   - <!-- <div style="width: 100%;margin:20px 0;">
166   - <div style="display:flex;justify-content: space-between">
167   - <div style="display:flex;">
168   - <div style="margin-right: 10px;line-height:35px;">商户收费情况统计</div>
169   - <el-input placeholder="请输入商户名称" v-model="formSel.shopName" style="width:200px;margin-right:15px;" />
170   - <el-date-picker v-model="value1" type="datetimerange" range-separator="-" start-placeholder="开始日期"
171   - end-placeholder="结束日期" style="width: 200px;margin-right: 10px;margin-top:0px;" prefix-icon="none">
172   - </el-date-picker>
173   - <el-button @click="onSubmit" style="background-color: #3F9B6A;color: #fff">检索
174   - </el-button>
175   - <el-button @click="resetting" class="buttonHover"
176   - style="color: #000;border: 1px solid #DBDBDB;background-color: #fff;">重置
177   - </el-button>
178   - </div>
179   - <div>
180   - <el-button @click="onSubmit" style="background-color: #3F9B6A;color: #fff">导出
181   - </el-button>
182   - </div>
183   - </div>
184   - <div style="margin-top:10px;padding:20px">
185   - <div style="display:flex;margin-bottom:20px;" v-for="index in 5">
186   - <div style="margin-right:20px;">收费项{{index}}</div>
187   - <div style='width:90%'><el-progress :percentage="50"></el-progress></div>
188   - </div>
189   - </div>
190   - </div> -->
191   -
192   - <!-- <div style="width: 100%;margin:20px 0;">
193   - <div style="display:flex;justify-content: space-between">
194   - <div style="display:flex;">
195   - <div style="margin-right: 10px;line-height:35px;">收费位置统计</div>
196   - <el-input placeholder="请输入商户名称" v-model="formSel.shopName" style="width:200px;margin-right:15px;" />
197   - <el-date-picker v-model="value1" type="datetimerange" range-separator="-" start-placeholder="开始日期"
198   - end-placeholder="结束日期" style="width: 200px;margin-right: 10px;margin-top:0px;" prefix-icon="none">
199   - </el-date-picker>
200   - <el-button @click="onSubmit" style="background-color: #3F9B6A;color: #fff">检索
201   - </el-button>
202   - <el-button @click="resetting" class="buttonHover"
203   - style="color: #000;border: 1px solid #DBDBDB;background-color: #fff;">重置
204   - </el-button>
205   - </div>
206   - <div>
207   - <el-button @click="onSubmit" style="background-color: #3F9B6A;color: #fff">导出
208   - </el-button>
209   - </div>
210   - </div>
211   - <div style="margin-top:10px;padding:20px">
212   - <div style="display:flex;margin-bottom:20px;" v-for="index in 5">
213   - <div style="margin-right:20px;">线上商城{{index}}</div>
214   - <div style='width:90%'><el-progress :percentage="50"></el-progress></div>
215   - </div>
216   - </div>
217   - </div> -->
218   -
219   - <!-- <div style="width: 100%;margin-bottom:20px;">
220   - <div style="display:flex;justify-content: space-between">
221   - <div style="display:flex;">
222   - <div style="margin-right: 10px;line-height:35px;">出租、退租、续租统计</div>
223   - <el-select v-model="formSel.createDate" placeholder="所属区域" style="width: 150px;margin-right: 10px">
224   - <el-option label="1" value="1" />
225   - <el-option label="2" value="2" />
226   - </el-select>
227   - <el-select v-model="formSel.createDate" placeholder="经营类型" style="width: 150px;margin-right: 10px">
228   - <el-option label="1" value="1" />
229   - <el-option label="2" value="2" />
230   - </el-select>
231   - <el-date-picker v-model="value1" type="datetimerange" range-separator="-" start-placeholder="开始日期"
232   - end-placeholder="结束日期" style="width: 200px;margin-right: 10px;ma" prefix-icon="none">
233   - </el-date-picker>
234   - <el-button @click="onSubmit" style="background-color: #3F9B6A;color: #fff">检索
235   - </el-button>
236   - <el-button @click="resetting" class="buttonHover"
237   - style="color: #000;border: 1px solid #DBDBDB;background-color: #fff;">重置
238   - </el-button>
239   - </div>
240   - <div>
241   - <el-button @click="onSubmit" style="background-color: #3F9B6A;color: #fff">导出
242   - </el-button>
243   - </div>
244   - </div>
245   - <div style="display:flex;margin-top:10px;">
246   - <div style="width:48%;height: 400px;">
247   - <div style="display: flex;justify-content: space-between;">
248   - <div style="line-height:35px;">租赁趋势统计</div>
249   - <div>
250   - <el-select v-model="formSel.createDate" placeholder="类型" style="width: 100px;margin-right: 10px">
251   - <el-option label="1" value="1" />
252   - <el-option label="2" value="2" />
253   - </el-select>
254   - </div>
255   - </div>
256   - <div ref="shop4ZX" style="width:100%;height: 400px;"></div>
257   - </div>
258   - <div style="width:48%;height: 400px;">
259   - <div style="display: flex;justify-content: space-between;">
260   - <div style="line-height:35px;">租赁商户top5</div>
261   - <div>
262   - <el-select v-model="formSel.createDate" placeholder="类型" style="width: 100px;margin-right: 10px">
263   - <el-option label="1" value="1" />
264   - <el-option label="2" value="2" />
265   - </el-select>
266   - </div>
267   - </div>
268   - <div ref="shop4TJ" style="width:100%;height: 400px;"></div>
269   - </div>
270   - </div>
271   - </div> -->
272   - <TitleWithCircle title="合同情况统计" style="margin: 20px 0;" />
273   - <div style="width: 100%;">
274   - <div style="display:flex;justify-content: space-between">
275   - <div style="display:flex;">
276   - <!-- <div style="margin-right: 10px;line-height:35px;">合同情况统计</div> -->
277   - <!-- <el-select v-model="formSel.createDate" placeholder="所属区域" style="width: 150px;margin-right: 10px">
278   - <el-option label="1" value="1" />
279   - <el-option label="2" value="2" />
280   - </el-select>
281   - <el-select v-model="formSel.createDate" placeholder="经营类型" style="width: 150px;margin-right: 10px">
282   - <el-option label="1" value="1" />
283   - <el-option label="2" value="2" />
284   - </el-select>
285   - <el-date-picker v-model="value1" type="datetimerange" range-separator="-" start-placeholder="开始日期"
286   - end-placeholder="结束日期" style="width: 200px;margin-right: 10px;ma" prefix-icon="none">
287   - </el-date-picker>
288   - <el-button @click="onSubmit" style="background-color: #3F9B6A;color: #fff">检索
289   - </el-button>
290   - <el-button @click="resetting" class="buttonHover"
291   - style="color: #000;border: 1px solid #DBDBDB;background-color: #fff;">重置
292   - </el-button> -->
293   - </div>
294   - <!-- <div>
295   - <el-button @click="onSubmit" style="background-color: #3F9B6A;color: #fff">导出
296   - </el-button>
297   - </div> -->
  27 + <div style="width: 100%;">
  28 + <div style="width: 46%;">
  29 + <div>
  30 + <TitleWithCircle title="资源数量增长趋势" style="margin: 20px 0;" />
298 31 </div>
299   - <div style="display:flex;margin-top:10px;">
300   - <div style="width:48%;height: 400px;">
301   - <div style="display: flex;justify-content: space-between;">
302   - <div style="line-height:35px;">合同签约数量趋势</div>
303   - <!-- <div>
304   - <el-select v-model="formSel.createDate" placeholder="类型" style="width: 100px;margin-right: 10px">
305   - <el-option label="1" value="1" />
306   - <el-option label="2" value="2" />
307   - </el-select>
308   - </div> -->
309   - </div>
310   - <div ref="shop5ZX" style="width:100%;height: 400px;"></div>
311   - </div>
312   - <div style="width:48%;height: 400px;">
313   - <div style="display: flex;justify-content: space-between;">
314   - <div style="line-height:35px;">签约数量占比</div>
315   - <!-- <div>
316   - <el-select v-model="formSel.createDate" placeholder="类型" style="width: 100px;margin-right: 10px">
317   - <el-option label="1" value="1" />
318   - <el-option label="2" value="2" />
319   - </el-select>
320   - </div> -->
321   - </div>
322   - <div ref="shop5BT" style="width:100%;height: 400px;"></div>
323   - </div>
  32 + <div>
  33 + <div ref="echarts1" style="width:100%;height: 400px;"></div>
324 34 </div>
325 35 </div>
326 36 </div>
327 37 </div>
328   -
329 38 </div>
330 39 </template>
331 40  
... ... @@ -333,13 +42,13 @@
333 42 import html2canvas from 'html2canvas'
334 43 import jsPDF from 'jspdf'
335 44 import TitleWithCircle from '@/components/top/index';
336   - import {
337   - statistical,
338   - } from '@/api/information'
339 45 import * as echarts from 'echarts'
340 46 import {
341   - async
342   - } from 'q';
  47 + resourceQuantityGrowth,
  48 + resourceDistributionStatistics,
  49 + resourceSituationProportion,
  50 + resourceUtilizationProportion,
  51 + } from '@/api/newly.js'
343 52 export default {
344 53 components: {
345 54 TitleWithCircle,
... ... @@ -381,376 +90,53 @@
381 90  
382 91 },
383 92 mounted() {
384   -
385   - // this.charDam1()
386   - // this.charDam2()
387   - // this.charDam3()
388   - // this.charDam4()
389   - // this.charDam5()
390   -
391   - // this.charDam7()
392   -
393   - // this.charDam9()
394 93 },
395 94 methods: {
396   - charDam(datas) {
397   - let Dom = this.$refs.shop2TJ
398   - let myChart = echarts.init(Dom)
399   - let processedData = datas.map(item => ({
400   - name: item.trendDate,
401   - value: item.trendQuantity
402   - }))
403   - let option = {
404   - legend: {},
405   - tooltip: {},
406   - xAxis: {
407   - type: 'category',
408   - data: processedData.map(item => item.name),
409   - },
410   - yAxis: {
411   - type: 'value',
412   - },
413   - grid: {
414   - left: '1%',
415   - right: '1%',
416   - top: '5%',
417   - bottom: '6%',
418   - containLabel: true
419   - },
420   - series: [{
421   - type: 'bar',
422   - color: '#3f9b6a',
423   - data: processedData.map(item => item.value),
424   - }]
425   - };
426   - option && myChart.setOption(option);
427   - },
428   - charDam1(datas) {
429   - let Dom = this.$refs.shop1ZX
430   - let myChart = echarts.init(Dom);
431   -
432   - let processedData = datas.map(item => ({
433   - name: item.trendDate || '11',
434   - value: item.trendQuantity
435   - }))
436   - processedData.push({
437   - name: '',
438   - value: 0
439   - })
440   - let option = {
441   - xAxis: {
442   - type: 'category',
443   - data: ['商铺', '场地', '广告位'],
444   - },
445   - yAxis: {
446   - type: 'value',
447   - max: 50
448   - },
449   - grid: {
450   - left: '1%',
451   - right: '5%',
452   - top: '5%',
453   - bottom: '6%',
454   - containLabel: true
455   - },
456   - series: [{ // 设置线条颜色
457   - lineStyle: {
458   - color: '#3f9b6a', // 这里设置为红色
459   - width: 2, // 线条宽度
460   - },
461   - data: processedData.map(item => item.value),
462   - type: 'line'
463   - }]
  95 + initecharts1(datas) {
  96 + console.error(datas)
  97 + let allx = []
  98 + let list1 = {
  99 + cent:[],
  100 + name:'商铺资源',
464 101 }
465   - option && myChart.setOption(option);
466   - },
467   - charDam2(datas) {
468   - let Dom = this.$refs.shop2BT
469   - let myChart = echarts.init(Dom);
470   - let processedData = datas.map(item => ({
471   - name: item.trendDate,
472   - value: item.trendQuantity
473   - }))
474   -
475   -
476   - let option = {
477   - tooltip: {
478   - trigger: 'item'
479   - },
480   - legend: {
481   - top: '5%',
482   - left: 'right'
483   - },
484   - series: [{
485   - type: 'pie',
486   - radius: ['40%', '70%'],
487   - avoidLabelOverlap: false,
488   - itemStyle: {
489   - borderRadius: 10,
490   - borderColor: '#fff',
491   - borderWidth: 2
492   - },
493   - label: {
494   - show: false,
495   - position: 'center'
496   - },
497   - emphasis: {
498   - label: {
499   - show: true,
500   - fontSize: 40,
501   - fontWeight: 'bold'
502   - }
503   - },
504   - labelLine: {
505   - show: false
506   - },
507   - color: ['#3f9b6a', 'rgb(61,182,211)'],
508   - data: processedData,
509   - }]
  102 + for (let index = 0; index < datas.shopTrend.length; index++) {
  103 + const element = datas.shopTrend[index];
  104 + allx.push(element.trendDate)
  105 + list1.cent.push(element.trendQuantity)
510 106 }
511   - option && myChart.setOption(option);
512   - },
513   - charDam3(datas) {
514   - let Dom = this.$refs.shop1TJ
515   - let myChart = echarts.init(Dom);
516   -
517   - let processedData = datas.map(item => ({
518   - // name: item.trendDate || '11',
519   - value: item.trendQuantity
520   - }))
  107 + let Dom = this.$refs.echarts1
  108 + let myChart = echarts.init(Dom);
521 109 let option = {
522   - legend: {},
523   - tooltip: {},
524   - xAxis: {
525   - type: 'category',
526   - data: ['商铺', '场地', '广告位'],
527   - },
528   - yAxis: {
529   - type: 'value',
530   - max: 50
531   - },
532 110 grid: {
533   - left: '1%',
534   - right: '1%',
535   - top: '5%',
  111 + top: '3%',
  112 + left: '6%',
  113 + right: '6%',
536 114 bottom: '6%',
537   - containLabel: true
538 115 },
539   - series: [{
540   - type: 'bar',
541   - color: '#3f9b6a',
542   - data: processedData.map(item => item.value),
543   - type: 'line'
544   - }, ]
545   - };
546   - option && myChart.setOption(option);
547   - },
548   - // charDam4() {
549   - // let Dom = this.$refs.shop4ZX
550   - // let myChart = echarts.init(Dom);
551   - // let option = {
552   - // xAxis: {
553   - // type: 'category',
554   - // data: ['2024-07', '2024-08', '2024-09', '2024-10', '2024-11', '2024-12', '2024-13']
555   - // },
556   - // yAxis: {
557   - // type: 'value'
558   - // },
559   - // grid: {
560   - // left: '1%',
561   - // right: '1%',
562   - // top: '5%',
563   - // bottom: '6%',
564   - // containLabel: true
565   - // },
566   - // series: [{ // 设置线条颜色
567   - // lineStyle: {
568   - // color: '#3f9b6a', // 这里设置为红色
569   - // width: 2, // 线条宽度
570   - // },
571   - // data: [0,0, 0, 1, 0, 0],
572   - // type: 'line'
573   - // }]
574   - // }
575   - // option && myChart.setOption(option);
576   -
577   - // },
578   - // charDam5() {
579   - // let Dom = this.$refs.shop4TJ
580   - // let myChart = echarts.init(Dom);
581   - // let option = {
582   - // tooltip: {
583   - // trigger: 'axis',
584   - // axisPointer: {
585   - // type: 'shadow'
586   - // }
587   - // },
588   - // grid: {
589   - // left: '3%',
590   - // right: '4%',
591   - // bottom: '3%',
592   - // containLabel: true
593   - // },
594   - // xAxis: {
595   - // type: 'value',
596   - // boundaryGap: [0, 0.01]
597   - // },
598   - // yAxis: {
599   - // type: 'category',
600   - // data: ['商户A', '商户B', '商户C', '商户D', '商户E', ]
601   - // },
602   - // series: [{
603   - // lineStyle: {
604   - // color: '#3f9b6a', // 这里设置为红色
605   - // width: 2, // 线条宽度
606   - // },
607   - // name: '2011',
608   - // type: 'bar',
609   - // data: [2, 4, 5, 4, 1, 5]
610   - // }]
611   - // };
612   - // option && myChart.setOption(option);
613   - // },
614   - charDam6(datas) {
615   -
616   - let Dom = this.$refs.shop5ZX
617   - let myChart = echarts.init(Dom)
618   - let processedData = datas.map(item => ({
619   - name: item.trendDate,
620   - value: item.trendQuantity
621   - }))
622   - let option = {
623 116 xAxis: {
624 117 type: 'category',
625   - data: processedData.map(item => item.name),
  118 + boundaryGap: false,
  119 + data: allx
626 120 },
627 121 yAxis: {
628 122 type: 'value'
629 123 },
630   - grid: {
631   - left: '1%',
632   - right: '1%',
633   - top: '5%',
634   - bottom: '6%',
635   - containLabel: true
636   - },
637   - series: [{ // 设置线条颜色
638   - lineStyle: {
639   - color: '#3f9b6a', // 这里设置为红色
640   - width: 2, // 线条宽度
641   - },
642   - data: processedData.map(item => item.value),
643   - type: 'line'
644   - }]
645   - }
646   - option && myChart.setOption(option);
647   -
648   -
649   - },
650   - charDam7(datas) {
651   - let Dom = this.$refs.shop5BT
652   - let myChart = echarts.init(Dom);
653   -
654   - let processedData = datas.map(item => ({
655   - name: '签约数',
656   - value: item.trendQuantity
657   - }))
658   -
659   - // processedData.push({name:'签约数',value:0})
660   - let option = {
661   - tooltip: {
662   - trigger: 'item'
663   - },
664   - legend: {
665   - top: '5%',
666   - left: 'center'
667   - },
668   - series: [{
669   - type: 'pie',
670   - radius: ['40%', '70%'],
671   - avoidLabelOverlap: false,
672   - itemStyle: {
673   - borderRadius: 10,
674   - borderColor: '#fff',
675   - borderWidth: 2
676   - },
677   - label: {
678   - show: false,
679   - position: 'center'
680   - },
681   - emphasis: {
682   - label: {
683   - show: true,
684   - fontSize: 40,
685   - fontWeight: 'bold'
686   - }
687   - },
688   - labelLine: {
689   - show: false
  124 + series: [
  125 + {
  126 + name: list1.name,
  127 + type: 'line',
  128 + stack: 'Total',
  129 + data: list1.cent
690 130 },
691   - data: processedData
692   - }]
693   - }
  131 +
  132 + ]
  133 + };
694 134 option && myChart.setOption(option);
695 135 },
696   -
697   - // charDam9(){
698   -
699   - // let Dom = this.$refs.shop3TJ
700   - // let myChart = echarts.init(Dom);
701   - // let option = {
702   - // tooltip: {
703   - // trigger: 'axis',
704   - // axisPointer: {
705   - // type: 'shadow'
706   - // }
707   - // },
708   - // grid: {
709   - // left: '3%',
710   - // right: '4%',
711   - // bottom: '3%',
712   - // containLabel: true
713   - // },
714   - // xAxis: {
715   - // type: 'value',
716   - // boundaryGap: [0, 0.01]
717   - // },
718   - // yAxis: {
719   - // type: 'category',
720   - // data: ['商户A', '商户B', '商户C', '商户D', '商户E', ]
721   - // },
722   - // series: [{
723   - // lineStyle: {
724   - // color: '#3f9b6a', // 这里设置为红色
725   - // width: 2, // 线条宽度
726   - // },
727   - // name: '2011',
728   - // type: 'bar',
729   - // data: [1, 2, 3, 4, 5, 10]
730   - // }]
731   - // };
732   - // option && myChart.setOption(option);
733   -
734   - // },
735   -
736 136 async getAll() {
737   - const res = await statistical(this.pageindex)
738   - console.log(res)
739   - this.charDam(res.data.seekingIntentionStatistics)
740   - this.charDam2(res.data.seekingIntentionStatistics)
741   - this.charDam6(res.data.contractTrend)
742   -
743   - this.charDam7(res.data.basicQueryTrends)
744   - let trends = [...res.data.shopTrend, ...res.data.venueTrend, ...res.data.advertisingTrend]
745   -
746   - this.charDam1(trends)
747   - this.charDam3(trends)
748   - },
749   - handleSizeChange() {
750   -
751   - },
752   - handleCurrentChange() {
753   -
  137 + const res1 = await resourceQuantityGrowth({...this.pageindex})
  138 + console.log(res1.data)
  139 + this.initecharts1(res1.data)
754 140 },
755 141 resetting() {
756 142 let today = new Date();
... ...
admin-web-master/src/views/detect/information/index.vue
... ... @@ -195,7 +195,7 @@
195 195 },
196 196 tableData: [],
197 197 total: 0,
198   - onaction: '1',
  198 + onaction: '2',
199 199 formInline: {},
200 200 }
201 201 },
... ...
admin-web-master/src/views/serve/PerWorkstation/index.vue
... ... @@ -35,22 +35,22 @@
35 35 )
36 36 " :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}"
37 37 style="width: 100%">
38   - <el-table-column label="序号" width="auto" min-width="6%" align="center">
  38 + <el-table-column label="序号" width="80px" align="center">
39 39 <template slot-scope="scope">
40 40 {{scope.$index+1}}
41 41 </template>
42 42 </el-table-column>
43   - <el-table-column label="标题" prop="title" width="auto" min-width="12%" />
44   - <el-table-column label="接收商家" prop="receiverMerchant" width="auto" min-width="12%" />
45   - <!-- <el-table-column label="发布类型" prop="postType" width="auto" min-width="12%" />
  43 + <el-table-column label="标题" prop="title" />
  44 + <el-table-column label="接收商家" prop="receiverMerchant" />
  45 + <!-- <el-table-column label="发布类型" prop="postType" width="auto" min-width="12%" />
46 46 <el-table-column label="提交时间" prop="publishTime" width="auto" min-width="12%" /> -->
47   - <el-table-column label="发布状态" prop="status" width="auto" min-width="12%" />
  47 + <!-- <el-table-column label="发布状态" prop="status"/> -->
  48 + <el-table-column label="内容" show-overflow-tooltip prop="content" />
  49 + <el-table-column label="创建时间" prop="createdAt"/>
48 50  
49   - <el-table-column label="创建时间" prop="createdAt" width="auto" min-width="12%" />
50   -
51   - <el-table-column label="操作" width="auto" min-width="25%">
  51 + <el-table-column label="操作" >
52 52 <template slot-scope="scope">
53   - <!-- <div class="tableBtn greens" @click="handleEditForm(scope.row,1)">
  53 + <!-- <div class="tableBtn greens" @click="handleEditForm(scope.row,1)">
54 54 消息提醒查看
55 55 </div>
56 56 <div class="tableBtn greens" @click="handleEditForm(scope.row,2)" >
... ... @@ -87,38 +87,36 @@
87 87 <div style="padding: 0 20px 20px 20px">
88 88 <el-form ref="ruleForm" :model="secondData" label-width="100px">
89 89 <el-form-item label="标题">
90   - <el-input v-model="secondData.title" disabled style="width: 90%;" />
  90 + <el-input v-model="secondData.title" disabled style="width: 90%;" />
91 91 </el-form-item>
92 92 <el-form-item label="接收商家" v-if="xian ==1">
93 93 <el-select v-model="secondData.receiverMerchant" style="width: 90%;" disabled>
94 94 <!-- <el-option label="电商商家" value="电商商家" /> -->
95   - <el-option v-for="(item,index) in receivingMerchantList"
96   - :key="index" :label="item.label" :value="item.value"></el-option>
  95 + <el-option v-for="(item,index) in receivingMerchantList" :key="index" :label="item.label"
  96 + :value="item.value"></el-option>
97 97 </el-select>
98 98 </el-form-item>
99   - <el-form-item label="发布类型" v-if="xian ==1">
100   - <el-radio-group v-model="secondData.postType" @input="radioClick" disabled>
101   - <el-radio label="立即发布">立即发布</el-radio>
102   - <!-- <el-radio label="定时发布">定时发布</el-radio> -->
103   - </el-radio-group>
104   - <div v-if="secondData.postType == '定时发布'">
105   - <el-date-picker style="width:90%;margin-right:5px" v-model="secondData.publishTime" disabled
106   - type="datetime"
107   - placeholder="选择日期时间" >
108   - </el-date-picker>
109   - </div>
  99 + <el-form-item label="发布类型" v-if="xian ==1">
  100 + <el-radio-group v-model="secondData.postType" @input="radioClick" disabled>
  101 + <el-radio label="立即发布">立即发布</el-radio>
  102 + <!-- <el-radio label="定时发布">定时发布</el-radio> -->
  103 + </el-radio-group>
  104 + <div v-if="secondData.postType == '定时发布'">
  105 + <el-date-picker style="width:90%;margin-right:5px" v-model="secondData.publishTime" disabled
  106 + type="datetime" placeholder="选择日期时间">
  107 + </el-date-picker>
  108 + </div>
  109 + </el-form-item>
  110 + <el-form-item label="内容" prop="content">
  111 + <el-input maxlength="200" show-word-limit rows="4" v-model="secondData.content" placeholder="请输入"
  112 + type="textarea" />
110 113 </el-form-item>
111   - <el-form-item label="内容">
  114 + <!-- <el-form-item label="内容">
112 115 <div>
113   - <el-input
114   - type="textarea"
115   - :rows="2"
116   - disabled
117   - style="width: 90%;"
118   - v-model="secondData.content">
  116 + <el-input type="textarea" :rows="2" disabled style="width: 90%;" v-model="secondData.content">
119 117 </el-input>
120 118 </div>
121   - </el-form-item>
  119 + </el-form-item> -->
122 120 </el-form>
123 121 </div>
124 122 </div>
... ... @@ -151,48 +149,48 @@
151 149 新增
152 150 </div>
153 151 <div style="padding: 0 20px 20px 20px">
154   - <el-form :model="ruleForm" ref="AddFromOne"
155   -:rules="rulesOne" label-width="100px">
  152 + <el-form :model="ruleForm" ref="AddFromOne" :rules="rulesOne" label-width="100px">
156 153 <el-form-item label="标题" prop="title">
157   - <el-input v-model="ruleForm.title" placeholder="请输入" />
  154 + <el-input v-model="ruleForm.title" placeholder="请输入" />
158 155 </el-form-item>
159   - <el-form-item label="接收商家" prop="receiverMerchant">
  156 + <el-form-item label="接收商家" prop="receiverMerchant">
160 157 <el-select v-model="ruleForm.receiverMerchant" placeholder="请选择" style="width: 100%;">
161 158 <!-- <el-option label="小程序商家" value="小程序商家" /> -->
162   - <el-option v-for="(item,index) in receivingMerchantList"
163   - :key="index" :label="item.label" :value="item.value"></el-option>
  159 + <!-- <el-option v-for="(item,index) in receivingMerchantList" :key="index" :label="item.label"
  160 + :value="item.value"></el-option> -->
  161 + <el-option v-for="(item,index) in shopList" :key="index" :label="item.name+ ' ' + item.phone" :value="item.phone+''" />
164 162 </el-select>
165 163 </el-form-item>
166 164 <el-form-item label="发布类型" prop="postType">
167   - <el-radio-group v-model="ruleForm.postType" @input="radioClick">
168   - <el-radio label="立即发布" value="立即发布">立即发布</el-radio>
169   - <!-- <el-radio label="定时发布" value="定时发布">定时发布</el-radio> -->
170   - </el-radio-group>
171   - <div v-if="ruleForm.postType == '定时发布'">
172   - <el-date-picker style="width:250px;margin-right:5px" v-model="ruleForm.publishTime"
173   - type="datetime"
174   - placeholder="选择日期时间" >
175   - </el-date-picker>
176   - </div>
  165 + <el-radio-group v-model="ruleForm.postType" @input="radioClick">
  166 + <el-radio label="立即发布" value="立即发布">立即发布</el-radio>
  167 + <!-- <el-radio label="定时发布" value="定时发布">定时发布</el-radio> -->
  168 + </el-radio-group>
  169 + <div v-if="ruleForm.postType == '定时发布'">
  170 + <el-date-picker style="width:250px;margin-right:5px" v-model="ruleForm.publishTime" type="datetime"
  171 + placeholder="选择日期时间">
  172 + </el-date-picker>
  173 + </div>
177 174 </el-form-item>
178   - <el-form-item label="内容" prop="content">
  175 + <!-- <el-form-item label="内容" prop="content">
179 176 <div>
180   - <el-input
181   - type="textarea"
182   - :rows="2"
183   - placeholder="请输入"
184   - v-model="ruleForm.content">
  177 + <el-input type="textarea" :rows="2" placeholder="请输入" v-model="ruleForm.content">
185 178 </el-input>
186 179 </div>
  180 + </el-form-item> -->
  181 + <el-form-item label="内容" prop="content">
  182 + <el-input maxlength="200" show-word-limit rows="4" v-model="ruleForm.content" placeholder="请输入"
  183 + type="textarea" />
187 184 </el-form-item>
  185 + <div style="display: flex;flex-direction: row-reverse;">
  186 + <el-button class="buttonHover" style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"
  187 + @click="closeFn(2)">取 消</el-button>
  188 + <el-button style="background-color: #3F9B6A;color: #fff;padding:8px 15px;margin-right: 15px;" @click="addCheck">确
  189 + 定</el-button>
  190 + </div>
188 191 </el-form>
189 192 </div>
190   - <span slot="footer" class="dialog-footer">
191   - <el-button class="buttonHover" style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"
192   - @click="closeFn(2)">取 消</el-button>
193   - <el-button style="background-color: #3F9B6A;color: #fff;padding:8px 15px;" @click="addCheck">确
194   - 定</el-button>
195   - </span>
  193 +
196 194 </el-dialog>
197 195  
198 196 <div class="fenye">
... ... @@ -216,7 +214,9 @@
216 214 ManaEdit,
217 215 ManaDel,
218 216 } from '../../../api/PerWorkstation';
219   -
  217 + import {
  218 + cerePlatformMerchant,
  219 + } from '@/api/newly.js'
220 220 export default {
221 221 data() {
222 222 return {
... ... @@ -226,9 +226,10 @@
226 226 myHeaders: {
227 227 'Authorization-admin': token
228 228 },
  229 + shopList: [],
229 230 ggXin: false, // 新增
230 231 formSel: {
231   - title:''
  232 + title: ''
232 233 },
233 234 secondData: {
234 235  
... ... @@ -236,10 +237,10 @@
236 237 ruleForm: {
237 238 title: '', //标题
238 239 receiverMerchant: '',
239   - postType: '立即发布' ,
240   - content:'',
241   - status:'1',
242   - publishTime:''
  240 + postType: '立即发布',
  241 + content: '',
  242 + status: '1',
  243 + publishTime: ''
243 244 },
244 245 currentPage: 1,
245 246 total: 100,
... ... @@ -251,30 +252,36 @@
251 252 pageNumber: 1,
252 253 pageSize: 10,
253 254 },
254   - fabutype:'1',
255   - xian:1,
  255 + fabutype: '1',
  256 + xian: 1,
256 257 rulesOne: {
257 258 title: [{
258 259 required: true,
259 260 message: '请输入通知标题',
260 261 trigger: 'blur'
261 262 }, ],
262   - receiverMerchant: [{
263   - required: true,
264   - message: '请选择接收商家',
265   - trigger: 'change'
266   - }, ],
267   - content: [{
268   - required: true,
269   - message: '请输入通知消息',
270   - trigger: 'blur'
271   - }, ],
  263 + receiverMerchant: [{
  264 + required: true,
  265 + message: '请选择接收商家',
  266 + trigger: 'blur'
  267 + }, ],
  268 + content: [{
  269 + required: true,
  270 + message: '请输入通知消息',
  271 + trigger: 'blur'
  272 + }, ],
272 273 },
273 274 }
274 275 },
275 276  
276 277 created() {
277   -
  278 + cerePlatformMerchant({
  279 + checkState: '2',
  280 + pageNumber: 0,
  281 + pageSize: 1000,
  282 + }).then(res => {
  283 + this.shopList = res.data.content
  284 + })
278 285 },
279 286 computed: {
280 287 receivingMerchantList() {
... ... @@ -326,16 +333,16 @@
326 333 async onSubmit() {
327 334 this.formSel.pageNumber = 1
328 335 this.formSel.pageSize = 10
329   - const res = await ManaGetAll(this.formSel)
330   - this.tableData = res.data.content
331   - this.total = res.data.content.length
332   - this.formSel = {
333   - title:'',
334   - }
  336 + const res = await ManaGetAll(this.formSel)
  337 + this.tableData = res.data.content
  338 + this.total = res.data.content.length
  339 + this.formSel = {
  340 + title: '',
  341 + }
335 342 },
336 343  
337 344 // 详情点击
338   - handleEditForm(item,val) {
  345 + handleEditForm(item, val) {
339 346 this.secondData = item
340 347 this.detbox = true
341 348 this.msgid = item.id
... ... @@ -352,37 +359,74 @@
352 359 this.ruleForm = {
353 360 title: '', //标题
354 361 receiverMerchant: '',
355   - postType: '立即发布' ,
356   - content:'',
357   - status:'1',
358   - publishTime:''
  362 + postType: '立即发布',
  363 + content: '',
  364 + status: '1',
  365 + publishTime: ''
359 366 }
360 367 this.ggXin = true;
361 368 },
362 369 // 新增确定
363 370 async addCheck() {
364   -
  371 + let that = this
365 372 this.ruleForm.publishTime = this.updateCurrentTime()
366 373 this.ruleForm.createdAt = this.updateCurrentTime()
367 374 // if(this.ruleForm.postType == '立即发布'){
368 375 // this.ruleForm.publishTime = ''
369 376 // }
370   - this.$refs.AddFromOne.validate((valid) => {
371   - if (valid) {
372   - ManaAdd(this.ruleForm).then(res=>{
373   - this.getAll();
374   - this.ggXin = false;
375   - })
376   -
377   - }else{
378   - this.$message({
379   - message: '请填写完整信息',
380   - type: 'error'
381   - })
382   -
383   - }
  377 + let c1 = false
  378 + await this.$refs.AddFromOne.validate((valid) => {
  379 + if (valid) {
  380 +
  381 + } else {
  382 + this.$message({
  383 + message: '请填写完整信息',
  384 + type: 'error'
  385 + })
  386 + }
  387 + c1 = valid
384 388 })
385   -
  389 + console.error(c1)
  390 + if(!c1) {
  391 + return
  392 + }
  393 + let c2 = await ManaAdd(this.ruleForm).then(res1 => {
  394 + return res1
  395 + })
  396 + if(c2.data) {
  397 + this.getAll();
  398 + this.ggXin = false;
  399 + let info = {
  400 + type:'通知消息',
  401 + phone:this.ruleForm.receiverMerchant,
  402 + content:{
  403 + type:'1',
  404 + title:this.ruleForm.title,
  405 + content:this.ruleForm.content
  406 + },
  407 + }
  408 + console.log(']]]]]]')
  409 + let res = await that.$setmsg(info);
  410 + console.log(res)
  411 + if (res.code == 200) {
  412 + this.$message({
  413 + message: '发送成功',
  414 + type: 'success'
  415 + })
  416 + this.$emit('removeonaction', '1')
  417 + } else {
  418 + this.$message({
  419 + message: '发送失败',
  420 + type: 'error'
  421 + })
  422 + }
  423 + } else {
  424 + this.$message({
  425 + message: '发送失败',
  426 + type: 'error'
  427 + })
  428 + }
  429 +
386 430 },
387 431 handleCurrentChange(val) {
388 432 this.currentPage = val;
... ... @@ -400,30 +444,32 @@
400 444 }
401 445 },
402 446 //删除列表
403   - delGuan(item) {
404   -
405   - const h = this.$createElement;
406   - this.$msgbox({
407   - title: '消息',
408   - message: h('p', null, [
409   - h('span', null, '是否删除 '),
410   - ]),
411   - showCancelButton: true,
412   - showClose:false,
413   - confirmButtonText: '确定',
414   - cancelButtonText: '取消',
415   - customClass:'oe-dialog-btn',
416   - beforeClose: (action, instance, done) => {
417   - if (action === 'confirm') {
418   - ManaDel({id:item.id}).then(res=>{
419   - this.getAll()
420   - done();
421   - })
422   - } else {
423   - done();
424   - }
  447 + delGuan(item) {
  448 +
  449 + const h = this.$createElement;
  450 + this.$msgbox({
  451 + title: '消息',
  452 + message: h('p', null, [
  453 + h('span', null, '是否删除 '),
  454 + ]),
  455 + showCancelButton: true,
  456 + showClose: false,
  457 + confirmButtonText: '确定',
  458 + cancelButtonText: '取消',
  459 + customClass: 'oe-dialog-btn',
  460 + beforeClose: (action, instance, done) => {
  461 + if (action === 'confirm') {
  462 + ManaDel({
  463 + id: item.id
  464 + }).then(res => {
  465 + this.getAll()
  466 + done();
  467 + })
  468 + } else {
  469 + done();
425 470 }
426   - })
  471 + }
  472 + })
427 473 },
428 474  
429 475 handleClick() {},
... ... @@ -439,17 +485,20 @@
439 485 // 重置按钮
440 486 resetting() {
441 487 this.formSel = {
442   - title:''
  488 + title: ''
443 489 };
444 490 this.getAll();
445 491 },
446   - radioClick(tiem){
447   - this.ruleForm.time =''
  492 + radioClick(tiem) {
  493 + this.ruleForm.time = ''
448 494 }
449 495 }
450 496 };
451 497 </script>
452 498 <style scoped>
  499 +.el-radio-group {
  500 + margin-top: 0 !important;
  501 +}
453 502 /deep/ .first-column-bg {
454 503 background-color: #f4f4f5 !important;
455 504 }
... ...
lvdao-miniapp/pages/message/message.vue
... ... @@ -44,7 +44,7 @@
44 44 </view>
45 45 <view class="data">
46 46 <view class="title">
47   - <text>通知消息</text>
  47 + <text>平台消息</text>
48 48 </view>
49 49  
50 50 <view class="describe">
... ... @@ -206,8 +206,8 @@
206 206 this.zjlist = []
207 207 this.wylist = []
208 208 let info = {
209   - // phone:uni.getStorageSync('user').phone,
210   - phone:'18121815598',
  209 + phone:uni.getStorageSync('user').phone,
  210 + // phone:'18121815598',
211 211 isRead:'0'
212 212 }
213 213  
... ...
lvdao-miniapp/pagesA/procedureList/procedureList.vue
... ... @@ -44,8 +44,8 @@
44 44 onShow(option) {
45 45 this.tableList = []
46 46 let info = {
47   - // phone:uni.getStorageSync('user').phone,
48   - phone:'18121815598',
  47 + phone:uni.getStorageSync('user').phone,
  48 + // phone:'18121815598',
49 49 }
50 50 this.$http.sendRequest('/cereMessage/viewMessage', 'POST',{...info,messageType:this.type},1).then(res => {
51 51 let obj = res.data.data
... ...