Commit d765895dbd645501b760ac37cd339109396fb1ec

Authored by wesley88
2 parents 4373acf5 aeb74e3a

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

Showing 56 changed files with 7209 additions and 565 deletions
yanshouban/src/api/account.js
... ... @@ -39,3 +39,11 @@ export function quDel(data) {
39 39 })
40 40 }
41 41  
  42 +export function statisticalAnalysis(data) {
  43 + return request({
  44 + url: 'cereChannelManagement/statisticalAnalysis',
  45 + method: 'post',
  46 + data
  47 + })
  48 +}
  49 +
... ...
yanshouban/src/api/activityBz.js
... ... @@ -237,3 +237,11 @@ export function effectEvaluation(data) {
237 237 data
238 238 })
239 239 }
  240 +//历史方案查询
  241 +export function lishiDeta(data) {
  242 + return request({
  243 + url: '/cereEventDetailsLog/getAll',
  244 + method: 'post',
  245 + data
  246 + })
  247 +}
... ...
yanshouban/src/api/information.js
... ... @@ -106,3 +106,24 @@ export function statistical(data) {
106 106 data
107 107 })
108 108 }
  109 +
  110 +// 商户导入管理模板
  111 +export const excelAdd = (data = {}) => {
  112 + return request({
  113 + url: '/cereBasicInformationShop/excelAdd',
  114 + method: 'post',
  115 + data,
  116 + headers: {
  117 + 'Content-type': 'multipart/form-data'
  118 + }
  119 + })
  120 +}
  121 +
  122 +// 租赁信息
  123 +export function zulxin(data) {
  124 + return request({
  125 + url: `cereBasicInformationShop/${data.venueNumber}`,
  126 + method: 'get',
  127 + data
  128 + })
  129 +}
... ...
yanshouban/src/api/kefuServeBao.js
... ... @@ -16,6 +16,14 @@ export function ReportDel(data) {
16 16 data
17 17 })
18 18 }
  19 +// 报修修改
  20 +export function Reportedit(data) {
  21 + return request({
  22 + url: '/cereReportIssuesRepairs/edit',
  23 + method: 'post',
  24 + data
  25 + })
  26 +}
19 27 // 投诉
20 28 export function ComplaintGetAll(data) {
21 29 return request({
... ...
yanshouban/src/api/map1.js
... ... @@ -44,3 +44,12 @@ export function likeGet(data) {
44 44 data
45 45 })
46 46 }
  47 +
  48 +// 租赁信息
  49 +export function zulxin(data) {
  50 + return request({
  51 + url: `cereBasicInformationShop/${data.venueNumber}`,
  52 + method: 'get',
  53 + data
  54 + })
  55 +}
... ...
yanshouban/src/api/piaowu.js
... ... @@ -89,3 +89,14 @@ export function excelToRefundData(data) {
89 89 responseType: 'blob'
90 90 })
91 91 }
  92 +
  93 +
  94 +// 总销售额导出
  95 +export function excelToTotalSales(data) {
  96 + return request({
  97 + url: '/ticket/excelToTotalSales',
  98 + method: 'post',
  99 + data,
  100 + responseType: 'blob'
  101 + })
  102 +}
... ...
yanshouban/src/api/sam.js
... ... @@ -33,3 +33,34 @@ export function ceDel(data) {
33 33 data
34 34 })
35 35 }
  36 +
  37 +
  38 +export function addAddress(data) {
  39 + return request({
  40 + url: '/cereBasicInformationShopLocation/add',
  41 + method: 'post',
  42 + data
  43 + })
  44 +}
  45 +
  46 +export function deleteAddress(data) {
  47 + return request({
  48 + url: `cereBasicInformationShopLocation/delete/${data.id}`,
  49 + method: 'get',
  50 + data
  51 + })
  52 +}
  53 +export function editAddress(data) {
  54 + return request({
  55 + url: '/cereBasicInformationShopLocation/edit',
  56 + method: 'post',
  57 + data
  58 + })
  59 +}
  60 +export function getAllAddress(data) {
  61 + return request({
  62 + url: '/cereBasicInformationShopLocation/getAll',
  63 + method: 'post',
  64 + data
  65 + })
  66 +}
... ...
yanshouban/src/utils/request.js
... ... @@ -21,7 +21,7 @@ if (host == '172.16.61.48' || host == '172.16.61.49:5173' || host =='172.16.61.1
21 21 // PREFIX = 'http://172.16.61.48/meserver/admin-server';
22 22 // PREFIX = 'http://192.168.2.213:9003';
23 23 // PREFIX = 'http://8.130.38.56:8019/admin-server';
24   - PREFIX = 'http://192.168.8.106:9003';
  24 + PREFIX = 'http://192.168.2.250:9003';
25 25 // PREFIX = 'https://wjdc.scjysm.asia:1443/meserver/admin-server';
26 26 // PREFIX = 'https://jy.scjysm.asia:18086/admin-server';
27 27 // PREFIX = 'http://172.16.61.126:8080/meserver/admin-server';
... ...
yanshouban/src/views/activity/activityBz.vue
... ... @@ -97,6 +97,18 @@
97 97 </el-select>
98 98 </el-form-item>
99 99 </el-col>
  100 + <el-col :span="12">
  101 + <el-form-item label="历史活动方案" class="grid-content bg-purple device-from" >
  102 + <el-select v-model="lishiList" placeholder="请选择" style="width:100%" @change="lichange" >
  103 + <el-option
  104 + v-for="(item,index) in fenxiData"
  105 + :key="item.id"
  106 + :label="item.operationType"
  107 + :value="index">
  108 + </el-option>
  109 + </el-select>
  110 + </el-form-item>
  111 + </el-col>
100 112 </el-row>
101 113 <el-row :gutter="20">
102 114 <el-col :span="12">
... ... @@ -359,7 +371,8 @@
359 371 MingEdit,
360 372 MingDel,
361 373 fujiaAdd,
362   - imgUp
  374 + imgUp,
  375 + lishiDeta
363 376 } from '../../api/activityBz'
364 377 // import { Editor, Toolbar } from '@wangeditor/editor-for-vue'
365 378 import wangEditor from "@/components/editor/index";
... ... @@ -387,6 +400,7 @@
387 400 wangEditor,
388 401 upimg
389 402 },
  403 +
390 404 data() {
391 405 return {
392 406 uploadFileUrl: uploadUrl, // 请求地址
... ... @@ -481,6 +495,8 @@
481 495 yugu: null,
482 496 fun: null
483 497 },
  498 +fenxiData:[],
  499 +lishiList:'',
484 500  
485 501 }
486 502 },
... ... @@ -490,6 +506,7 @@
490 506 },
491 507 mounted() {
492 508 this.editTrue = true
  509 + this.lishi()
493 510 },
494 511 methods: {
495 512 //获取当前时间
... ... @@ -504,6 +521,22 @@
504 521  
505 522 this.currentTime = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
506 523 },
  524 + lishi(){
  525 + lishiDeta({eventDetailsType:'1'}).then(res=>{
  526 + this.fenxiData = res.data
  527 + })
  528 + },
  529 + lichange(e){
  530 +
  531 + let msg =this.fenxiData[e]
  532 + let obj = JSON.parse(msg.originalData)
  533 +
  534 + for (let key in obj) {
  535 + if (this.ruleForm.hasOwnProperty(key)) {
  536 + this.ruleForm[key] = obj[key];
  537 + }
  538 + }
  539 + },
507 540 zancun() {},
508 541 //上传
509 542 submitUpload() {
... ...
yanshouban/src/views/activity/activityHis.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 style="color:#000000e6">活动策划调整</span></div>
  6 + </div>
  7 + <div>
  8 + <!-- 搜索 -->
  9 + <div class="formSearch">
  10 + <div class="demo-input-suffix">
  11 + <div v-if="searPei.name" style="display: flex;">
  12 + <div style="width: 68px;height:36px;line-height:36px;" >方案名称</div>
  13 + <el-input placeholder="请输入" v-model="formSear.planName" style="width:168px;">
  14 + </el-input>
  15 + </div>
  16 + <!-- <div v-if="searPei.lei" style="display: flex;">
  17 + <div style="width: 68px;height:36px;line-height:36px;">方案类型</div>
  18 + <el-input placeholder="请输入" v-model="planName" style="width:168px;">
  19 + </el-input>
  20 + </div> -->
  21 + <div v-if="searPei.staut" style="display: flex;">
  22 + <div style="width: 68px;height:36px;line-height:36px;">审批状态</div>
  23 + <el-select v-model="formSear.state" placeholder="请选择"
  24 + style="width: 100px;margin-right: 5px">
  25 + <el-option label="待提交" value="" />
  26 + <el-option label="待审核" value="1" />
  27 + <el-option label="已通过" value="5" />
  28 + <el-option label="已驳回" value="6" />
  29 + </el-select>
  30 + </el-input>
  31 + </div>
  32 +
  33 +
  34 + </div>
  35 + <div >
  36 +
  37 + <el-button @click="onSubmit" style="background-color: #3F9B6A;color: #fff">查询
  38 + </el-button>
  39 + <el-button @click="resetting"
  40 + class="buttonHover"
  41 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;">重置
  42 + </el-button>
  43 + </div>
  44 + </div>
  45 + <div style="margin: 20px 0;">
  46 + <div style="display:flex;">
  47 + <el-button style="background-color: #3F9B6A;color: #fff;" @click="setSearch">搜索关键词设置</el-button>
  48 + <el-button style="background-color: #3F9B6A;color: #fff;" @click="duibi">效果对比</el-button>
  49 + <el-upload class="upload-demo" ref="upload"
  50 + :limit="1"
  51 + accept=".xlsx"
  52 + :action="uploadFileUrl"
  53 + :on-success="daoru"
  54 + :file-list="daoData"
  55 + :auto-upload="true"
  56 + :show-file-list="false">
  57 + <el-button style="background-color: #fff;color: #3F9B6A;border: 1px solid #dcdfe6;margin:0 15px;" class="buttonHover" >导入</el-button>
  58 + </el-upload>
  59 +
  60 + <el-button style="background-color: #3F9B6A;color: #fff;" @click="daochu">审核流程导出</el-button>
  61 + <!-- <el-button style="background-color: #fff;color: #000;border: 1px solid #B1B1B1;"
  62 + icon="el-icon-folder-add" class="buttonHover" @click="xinFenlei">活动分类管理</el-button> -->
  63 + </div>
  64 +
  65 + </div>
  66 + <!-- 分栏 -->
  67 + <div class="fenlan">
  68 + <!-- 搜索分类 -->
  69 +
  70 + <div class="tableList">
  71 +
  72 + <!-- 表格 -->
  73 + <div>
  74 + <el-table :data="tableData.slice((currentPage - 1) * pageSize, currentPage * pageSize)"
  75 + @selection-change="handleSelectionChange" tooltip-effect="dark" align="left"
  76 + :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}"
  77 + ref="mulTable">
  78 + <el-table-column type="selection" width="80">
  79 + </el-table-column>
  80 + <el-table-column label="方案名称" width="300" prop="planName">
  81 + </el-table-column>
  82 + <el-table-column label="类型" prop="planType" width="80">
  83 + </el-table-column>
  84 + <!-- <el-table-column label="发布状态" width="80" >
  85 +
  86 + </el-table-column> -->
  87 + <el-table-column label="审批状态" width="150">
  88 + <template slot-scope="scope">
  89 + {{scope.row.state == ''?'待提交':scope.row.state == '1'?'待审批':scope.row.state == '2'?'部门领导审批':scope.row.state == '3'?'公司领导审批':scope.row.state == '4'?'其他审批':scope.row.state == '5'?'审核通过':'已驳回'}}
  90 + </template>
  91 + </el-table-column>
  92 + <el-table-column label="创建时间" prop="createDate"width="250" >
  93 + </el-table-column>
  94 + <el-table-column prop="auditReminderTime" label="审核提醒时间" width="200">
  95 +
  96 + </el-table-column>
  97 + <el-table-column label="操作" width="350">
  98 + <template slot-scope="scope">
  99 + <div @click="actBian(scope.row)" class="tableBtn greens" v-if="scope.row.state == ''">修改</div>
  100 + <!-- <div class="tableBtn greens">发布</div> -->
  101 + <div class="tableBtn greens" @click="handleEditForm(scope.row)">执行情况</div>
  102 + <!-- <div class="tableBtn greens" @click="handleEditForm(scope.row)">历史方案查看</div> -->
  103 +
  104 + <!-- <div class="tableBtn greens">策略调整</div> -->
  105 + <!-- <div class="tableBtn greens" @click="koop(scope.row)">复制</div> -->
  106 + </template>
  107 + </el-table-column>
  108 +</el-table>
  109 +<div class="fenye">
  110 + <div>
  111 + <el-button @click="tableAll" class="buttonHover" style="color: #000;border: 1px solid #DBDBDB;background-color: #fff;">选择全部
  112 + </el-button>
  113 + <el-button @click="toggleSelection(tableData)"
  114 + class="buttonHover"
  115 + style="color: #000;border: 1px solid #DBDBDB;background-color: #fff;">反向选择
  116 + </el-button>
  117 + </div>
  118 + <el-pagination class="pagination" :hide-on-single-page="flag" background small :current-page="currentPage"
  119 + :page-size="pageSize" layout="prev,pager,next" :total="total"
  120 + @current-change="handleCurrentChange" />
  121 +</div>
  122 +
  123 +</div>
  124 +</div>
  125 +</div>
  126 +
  127 +
  128 +
  129 +<!-- 详情活动方案 -->
  130 +<el-dialog title="活动方案详情" :visible.sync="ggXin" custom-class='xiang_css' style="padding: 0;" width="80%" center
  131 + :close-on-click-modal="false" :close-on-press-escape="false" @close="refreshData">
  132 + <div ref="actXiang">
  133 + <div style="width: 100%;">
  134 + <div style="display: flex;padding:0px 20px 20px 20px; ">
  135 + <div style="width: 150px;height: 80px;" v-if="secondData.coverPoster">
  136 + <img :src="secondData.coverPoster" alt="" style="width: 100%;height: 80px;" />
  137 + </div>
  138 + <div
  139 + style="display: flex;flex-direction: column;justify-content: space-around;padding: 0 10px;font-size: 12px;">
  140 + <span style="margin-bottom: 10px;">{{text}}</span>
  141 + <span>活动时间:{{tableData1[1].eventTheme}}至{{tableData1[1].planName}}</span>
  142 + <span>活动地点:{{tableData1[0].planName}}</span>
  143 + </div>
  144 + </div>
  145 + </div>
  146 + <div style="width: 100%;background-color: #fff;">
  147 + <el-tabs v-model="activeName" @tab-click="handleClick" style="padding-left:20px;">
  148 + <el-tab-pane label="方案概况" name="first"></el-tab-pane>
  149 + <el-tab-pane label="执行效果" name="second"></el-tab-pane>
  150 + <el-tab-pane label="历史方案" name="fourd"></el-tab-pane>
  151 + </el-tabs>
  152 + </div>
  153 + <div v-if="activeName=='first'" style="display: flex;">
  154 + <div style="width: 100%;">
  155 + <div style="width: 100%;">
  156 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">基本信息</div>
  157 + <div style="padding: 10px 20px;">
  158 + <el-table :data="tableData1"
  159 + :header-cell-style="{fontSize: '14px', backgroundColor: '#fff',color:'#000',fontWeight: 'normal'}"
  160 + style="width: 100%;margin: auto;">
  161 + <el-table-column class-name="first-column-bg" label="方案编号" prop="name" min-width="15%">
  162 + </el-table-column>
  163 + <el-table-column :label="id" prop="eventTheme" min-width="35%">
  164 +
  165 + </el-table-column>
  166 + <el-table-column class-name="first-column-bg" label="方案名称" prop="text" min-width="15%">
  167 +
  168 + </el-table-column>
  169 + <el-table-column :label="text" prop="planName" min-width="35%">
  170 +
  171 + </el-table-column>
  172 + </el-table>
  173 +
  174 +
  175 + </div>
  176 + </div>
  177 + <div style="width: 100%;">
  178 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">活动明细信息</div>
  179 + <div style="padding: 10px 20px;">
  180 + <el-table :data="tableData2"
  181 + :header-cell-style="{fontSize: '14px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
  182 + style="width: 100%;margin: auto;">
  183 + <el-table-column label="序号" min-width="5%" align='center'>
  184 + <template slot-scope="scope">
  185 + <span style="">{{ scope.$index +1}}</span>
  186 + </template>
  187 + </el-table-column>
  188 + <el-table-column label="明细项名称" prop="detailLtemName" min-width="28%">
  189 + </el-table-column>
  190 + <el-table-column label="预估数量" prop="estimatedQuantity" min-width="20%">
  191 +
  192 + </el-table-column>
  193 + <el-table-column label="预估费用" prop="estimatedCost" min-width="20%">
  194 +
  195 + </el-table-column>
  196 + <el-table-column label="备注" prop="notes" min-width="20%">
  197 + </el-table-column>
  198 + </el-table>
  199 + </div>
  200 + </div>
  201 + <div style="width: 100%;">
  202 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">活动成本信息</div>
  203 + <div style="padding:10px 20px;">
  204 + <el-table :data="tableData3"
  205 + :header-cell-style="{fontSize: '14px', backgroundColor: '#fff',color:'#000',fontWeight: 'normal'}"
  206 + style="width: 100%;margin: auto;">
  207 + <el-table-column class-name="first-column-bg" label="内部人力成本预估" prop="name" min-width="15%">
  208 + </el-table-column>
  209 + <el-table-column :label="internalLaborCostEstimation" prop="eventTheme" min-width="35%">
  210 +
  211 + </el-table-column>
  212 + <el-table-column class-name="first-column-bg" label="外部人力成本预估" prop="text" min-width="15%">
  213 +
  214 + </el-table-column>
  215 + <el-table-column :label="externalLaborCostEstimation" prop="planName" min-width="35%">
  216 +
  217 + </el-table-column>
  218 + </el-table>
  219 + </div>
  220 + </div>
  221 + <div style="width: 100%;">
  222 + <div style="font-size: 14px;padding:10px 20px 0px 20px;">预估效果</div>
  223 + <div style="padding:10px 20px;">
  224 + <el-table :data="tableData4"
  225 + :header-cell-style="{fontSize: '14px', backgroundColor: '#fff',color:'#000',fontWeight: 'normal'}"
  226 + style="width: 100%;margin: auto;">
  227 + <el-table-column class-name="first-column-bg" label="预计吸引流量" prop="name" min-width="15%">
  228 + </el-table-column>
  229 + <el-table-column :label="expectedAttractTraffic" prop="eventTheme" min-width="35%">
  230 +
  231 + </el-table-column>
  232 + <el-table-column class-name="first-column-bg" label="预计参与人数" prop="text" min-width="15%">
  233 +
  234 + </el-table-column>
  235 + <el-table-column :label="expectedParticipation" prop="planName" min-width="35%">
  236 +
  237 + </el-table-column>
  238 + </el-table>
  239 + </el-table-column>
  240 + </div>
  241 + </div>
  242 + <div style="width: 100%;">
  243 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">相关附件信息</div>
  244 + <div style="padding:10px 20px;">
  245 + <el-table :data="tableData6"
  246 + :header-cell-style="{fontSize: '14px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
  247 + style="width: 100%;margin: auto;">
  248 + <el-table-column label="序号" min-width="5%" align='center'>
  249 + <template slot-scope="scope">
  250 + <span style="">{{ scope.$index + 1 }}</span>
  251 + </template>
  252 + </el-table-column>
  253 + <el-table-column label="附件名称" prop="attachmentName" min-width="75%">
  254 + </el-table-column>
  255 + <el-table-column label="操作" min-width="20%">
  256 + <template slot-scope="scope">
  257 + <!-- <div class="tableBtn greens" @click="Down(scope.row)">下载</div> -->
  258 + <a class="tableBtn greens" :href="scope.row.attachmentUrl" target="_blank" download>下载</a>
  259 + </template>
  260 + </el-table-column>
  261 +
  262 + </el-table>
  263 + </div>
  264 + </div>
  265 + <div style="width: 100%;">
  266 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">系统信息</div>
  267 + <div style="padding:10px 20px;">
  268 + <el-table :data="tableData5"
  269 + :header-cell-style="{fontSize: '14px', backgroundColor: '#fff',color:'#000',fontWeight: 'normal'}"
  270 + style="width: 100%;margin: auto;">
  271 + <el-table-column class-name="first-column-bg" label="创建人" prop="name" min-width="15%">
  272 + </el-table-column>
  273 + <el-table-column :label="createUser" prop="eventTheme" min-width="35%">
  274 +
  275 + </el-table-column>
  276 + <el-table-column class-name="first-column-bg" label="创建时间" prop="text" min-width="15%">
  277 +
  278 + </el-table-column>
  279 + <el-table-column :label="createDate" prop="planName" min-width="35%">
  280 +
  281 + </el-table-column>
  282 + </el-table>
  283 + </div>
  284 + </div>
  285 + </div>
  286 + </div>
  287 + <div v-if="activeName=='second'">
  288 + <div style="padding: 20px">
  289 + <div style="border: solid 1px #E5E5E5;border-radius: 5px">
  290 + <div style="border-bottom: 1px solid #E5E5E5;padding: 1px">
  291 + <div style="padding: 10px 20px;background-color: #FAFAFA;font-size: 14px;">
  292 + 基本信息
  293 + </div>
  294 + </div>
  295 + <div style="padding: 20px 40px 20px 20px">
  296 + <el-form label-position="top" ref="ruleFormInfo" :model="zhixingList" label-width="120px"
  297 + style="position: relative">
  298 + <el-row :gutter="20">
  299 + <el-col :span="8">
  300 + <el-form-item label="活动名称" class="grid-content bg-purple device-from" prop="name">
  301 + <el-input v-model="zhixingList.planName" placeholder="请输入" :disabled="!zhixingBian" />
  302 + </el-form-item>
  303 + </el-col>
  304 + <el-col :span="8">
  305 + <el-form-item label="实际举办地点" class="grid-content bg-purple" prop="name">
  306 + <el-input v-model="zhixingList.eventAddrs" placeholder="请输入" :disabled="!zhixingBian" />
  307 + </el-form-item>
  308 + </el-col>
  309 +
  310 + <el-col :span="8">
  311 + <el-form-item label="实际举办时间" class="grid-content bg-purple" prop="event_start_time"
  312 + style="position: relative">
  313 + <el-date-picker style="width: 100%;" v-model="zhixingList.planTime"
  314 + @input="formTime"
  315 + value-format="yyyy-MM-dd HH:mm:ss" :disabled="!zhixingBian" type="datetimerange"
  316 + range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" align="right"
  317 + >
  318 + </el-date-picker>
  319 + </el-form-item>
  320 + </el-col>
  321 + </el-row>
  322 +
  323 + <el-row :gutter="20">
  324 + <el-col :span="8">
  325 + <el-form-item label="活动主办方" class="grid-content bg-purple" prop="name">
  326 + <el-input v-model="zhixingList.sponsor" placeholder="请输入" :disabled="!zhixingBian" />
  327 + </el-form-item>
  328 + </el-col>
  329 + <el-col :span="8">
  330 + <el-form-item label="活动实际参与方" class="grid-content bg-purple" prop="name">
  331 + <el-input v-model="zhixingList.participants" placeholder="请输入" :disabled="!zhixingBian" />
  332 + </el-form-item>
  333 + </el-col>
  334 + </el-row>
  335 + </el-form>
  336 + </div>
  337 + </div>
  338 + </div>
  339 + <div style="padding: 0px 20px 20px 20px">
  340 + <div style="border: solid 1px #E5E5E5;border-radius: 5px">
  341 + <div style="border-bottom: 1px solid #E5E5E5;padding: 1px;display: flex">
  342 + <div style="padding: 10px 20px;background-color: #FAFAFA;font-size: 14px;">
  343 + 活动明细信息
  344 + </div>
  345 + <div style="color: #2d8a58;margin-top: 10px;font-size: 14px;" @click="tianMing">
  346 + 添加明细
  347 + </div>
  348 + </div>
  349 + <!-- 表格-->
  350 + <div style="padding: 20px 20px 20px 20px">
  351 + <el-table :data="tableDa"
  352 + :header-cell-style="{fontSize: '14px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
  353 + style="width: 100%">
  354 + <el-table-column label="序号" width="auto" min-width="5%" prop="date" align="center">
  355 + <template slot-scope="scope">
  356 + {{scope.$index +1}}
  357 + </template>
  358 + </el-table-column>
  359 + <el-table-column label="明细项名称" prop="detailLtemName" width="auto" min-width="22%">
  360 +
  361 + </el-table-column>
  362 + <el-table-column label="预估数量" prop="estimatedQuantity" width="auto" min-width="15%">
  363 +
  364 + </el-table-column>
  365 + <el-table-column label="预估费用" prop="estimatedCost" width="auto" min-width="15%">
  366 + </el-table-column>
  367 + <el-table-column prop="notes" label="备注" width="auto" min-width="15%">
  368 + </el-table-column>
  369 + <el-table-column label="操作" width="auto" min-width="18%" v-if="zhixingBian">
  370 + <template slot-scope="scope">
  371 + <!-- <div class="tableBtn greens">详情</div> -->
  372 + <div class="tableBtn greens" @click="MingDelete(scope.$index,scope.row)">删除</div>
  373 + </template>
  374 + </el-table-column>
  375 + </el-table>
  376 +
  377 + </div>
  378 + </div>
  379 + </div>
  380 + <div style="padding: 20px">
  381 + <div style="border: solid 1px #E5E5E5;border-radius: 5px;padding-bottom: 20px;">
  382 + <div style="border-bottom: 1px solid #E5E5E5;padding: 1px">
  383 + <div style="padding: 10px 20px;background-color: #FAFAFA;font-size: 14px;">
  384 + 实际花费成本
  385 + </div>
  386 + </div>
  387 + <div style="padding: 20px 40px 0px 20px">
  388 + <el-form label-position="top" ref="ruleFormInfo" :model="zhixingList" label-width="120px"
  389 + style="position: relative">
  390 + <el-row :gutter="20">
  391 + <el-col :span="8">
  392 + <el-form-item label="内部人力成本预估" class="grid-content bg-purple device-from" prop="name">
  393 + <el-input v-model="zhixingList.internalLaborCostEstimation" placeholder="请输入"
  394 + :disabled="!zhixingBian" />
  395 + </el-form-item>
  396 + </el-col>
  397 + <el-col :span="8">
  398 + <el-form-item label="外部人力成本预估" class="grid-content bg-purple" prop="name">
  399 + <el-input v-model="zhixingList.externalLaborCostEstimation" placeholder="请输入"
  400 + :disabled="!zhixingBian" />
  401 + </el-form-item>
  402 + </el-col>
  403 +
  404 + <el-col :span="8">
  405 + <el-form-item label="商品成本预估" class="grid-content bg-purple" prop="name">
  406 + <el-input v-model="zhixingList.costEstimationGoods" placeholder="请输入" :disabled="!zhixingBian" />
  407 + </el-form-item>
  408 + </el-col>
  409 + </el-row>
  410 +
  411 + <el-row :gutter="20">
  412 + <el-col :span="8">
  413 + <el-form-item label="设备成本" class="grid-content bg-purple" prop="name">
  414 + <el-input v-model="zhixingList.setCostEstimate" placeholder="请输入" :disabled="!zhixingBian" />
  415 + </el-form-item>
  416 + </el-col>
  417 + <el-col :span="8">
  418 + <el-form-item label="宣传费用" class="grid-content bg-purple" prop="name">
  419 + <el-input v-model="zhixingList.estimatedPromotionalExpenses" placeholder="请输入"
  420 + :disabled="!zhixingBian" />
  421 + </el-form-item>
  422 + </el-col>
  423 + <el-col :span="8">
  424 + <el-form-item label="其他成本" class="grid-content bg-purple" prop="name">
  425 + <el-input v-model="zhixingList.otherNecessaryEstimates" placeholder="请输入"
  426 + :disabled="!zhixingBian" />
  427 + </el-form-item>
  428 + </el-col>
  429 + </el-row>
  430 +
  431 + <el-row :gutter="20">
  432 + <el-col :span="8">
  433 + <el-form-item label="总成本" prop="name" class="grid-content bg-purple">
  434 + <el-input v-model="zhixingList.totalCostEstimation" placeholder="请输入" :disabled="!zhixingBian" />
  435 + </el-form-item>
  436 + </el-col>
  437 + <el-col :span="16">
  438 + <el-form-item label="备注" prop="name" class="grid-content bg-purple">
  439 + <el-input v-model="zhixingList.notes" placeholder="请输入" :disabled="!zhixingBian" />
  440 + </el-form-item>
  441 + </el-col>
  442 + </el-row>
  443 + </el-form>
  444 + </div>
  445 + </div>
  446 + </div>
  447 +
  448 + <div style="padding: 20px">
  449 + <div style="border: solid 1px #E5E5E5;border-radius: 5px;padding-bottom: 20px;">
  450 + <div style="border-bottom: 1px solid #E5E5E5;padding: 1px">
  451 + <div style="padding: 10px 20px;background-color: #FAFAFA;font-size: 14px;">
  452 + 活动执行效果
  453 + </div>
  454 + </div>
  455 + <div style="padding: 20px 40px 0px 20px">
  456 + <el-form label-position="top" ref="ruleFormInfo" :model="zhixingList" label-width="120px"
  457 + style="position: relative">
  458 + <el-row :gutter="20">
  459 + <el-col :span="8">
  460 + <el-form-item label="吸引流量" class="grid-content bg-purple device-from" prop="name">
  461 + <el-input v-model="zhixingList.expectedAttractTraffic" placeholder="请输入" :disabled="!zhixingBian" />
  462 + </el-form-item>
  463 + </el-col>
  464 + <el-col :span="8">
  465 + <el-form-item label="参与人数" class="grid-content bg-purple" prop="name">
  466 + <el-input v-model="zhixingList.expectedParticipation" placeholder="请输入" :disabled="!zhixingBian" />
  467 + </el-form-item>
  468 + </el-col>
  469 +
  470 + <el-col :span="8">
  471 + <el-form-item label="直接收益" class="grid-content bg-purple" prop="name">
  472 + <el-input v-model="zhixingList.expectedDirectBenefits" placeholder="请输入" :disabled="!zhixingBian" />
  473 + </el-form-item>
  474 + </el-col>
  475 + </el-row>
  476 + <el-row :gutter="20">
  477 + <el-col :span="8">
  478 + <el-form-item label="间接收益" class="grid-content bg-purple" prop="name">
  479 + <el-input v-model="zhixingList.expectedIndirectBenefits" placeholder="请输入"
  480 + :disabled="!zhixingBian" />
  481 + </el-form-item>
  482 + </el-col>
  483 +
  484 + </el-row>
  485 + <el-row :gutter="20">
  486 + <el-col :span="24">
  487 + <el-form-item label="反馈内容" class="grid-content bg-purple" prop="name">
  488 + <el-upload class="upload-demo" ref="upload" :on-remove="handleRemove"
  489 + :action="uploadFileUrl" :on-success="handleUploadSuccess" :file-list="fileData"
  490 + :show-file-list="true" v-if="zhixingBian">
  491 + <el-button style="background-color: #fff;color: #3F9B6A;border: 1px solid #dcdfe6;" class="buttonHover" v-if="fileData.length==0">+点击上传</el-button>
  492 + </el-upload>
  493 + <div v-else>{{zhixingList.feedbackContent}}</div>
  494 + </el-form-item>
  495 + </el-col>
  496 +
  497 + </el-row>
  498 + </el-form>
  499 + </div>
  500 + </div>
  501 + </div>
  502 +
  503 + </div>
  504 + <div v-if="activeName=='fourd'">
  505 + <div>
  506 + <el-select v-model="lishiList" placeholder="请选择" style="margin:0 20px 20px 20px;" @change="lichange">
  507 + <el-option
  508 + v-for="(item,index) in liData"
  509 + :key="item.id"
  510 + :label="item.operationType"
  511 + :value="index">
  512 + </el-option>
  513 + </el-select>
  514 + <el-button @click="tiaozheng" style="background-color: #3F9B6A;color: #fff" v-if="lishiList!=null" >调整对比
  515 + </el-button>
  516 + </div>
  517 + <div style="width: 100%;" v-if="lishiList!=null" ref="lishiRef">
  518 + <div style="width: 100%;">
  519 + <div style="padding: 10px 20px;">
  520 + <el-descriptions class="margin-top" title="基本信息" :column="2" border :labelStyle="labelStyle" >
  521 + <el-descriptions-item>
  522 + <template slot="label">
  523 + 方案编号
  524 + </template>
  525 + {{lixiang.id}}
  526 + </el-descriptions-item>
  527 + <el-descriptions-item>
  528 + <template slot="label">
  529 + 方案名称
  530 + </template>
  531 +
  532 + <span :style="duibiList.planName == lixiang.planName?'color: red':''" >{{lixiang.planName}}</span>
  533 + </el-descriptions-item>
  534 + <el-descriptions-item>
  535 + <template slot="label">
  536 + 类型
  537 + </template>
  538 +<span :style="duibiList.planType == lixiang.planType?'color: red':''" >{{lixiang.planType}}</span>
  539 + </el-descriptions-item>
  540 + <el-descriptions-item>
  541 + <template slot="label">
  542 + 活动地点
  543 + </template>
  544 +
  545 + <span :style="duibiList.eventAddrs == lixiang.eventAddrs?'color: red':''" >{{lixiang.eventAddrs}}</span>
  546 + </el-descriptions-item>
  547 + <el-descriptions-item>
  548 + <template slot="label">
  549 + 活动开始时间
  550 + </template>
  551 +
  552 + <span :style="duibiList.eventStartTime == lixiang.eventStartTime?'color: red':''" >{{lixiang.eventStartTime}}</span>
  553 + </el-descriptions-item>
  554 + <el-descriptions-item>
  555 + <template slot="label">
  556 + 活动结束时间
  557 + </template>
  558 +
  559 +<span :style="duibiList.eventEndTime == lixiang.eventEndTime?'color: red':''" >{{lixiang.eventEndTime}}</span>
  560 + </el-descriptions-item>
  561 + <el-descriptions-item>
  562 + <template slot="label">
  563 + 活动主题
  564 + </template>
  565 + <span :style="duibiList.eventTheme == lixiang.eventTheme?'color: red':''" >{{lixiang.eventTheme}}</span>
  566 + </el-descriptions-item>
  567 + <el-descriptions-item>
  568 + <template slot="label">
  569 + 活动主办方
  570 + </template>
  571 +<span :style="duibiList.sponsor == lixiang.sponsor?'color: red':''" >{{lixiang.sponsor}}</span>
  572 +
  573 + </el-descriptions-item>
  574 + <el-descriptions-item>
  575 + <template slot="label">
  576 + 活动参与方
  577 + </template>
  578 +
  579 +<span :style="duibiList.participants == lixiang.participants?'color: red':''" >{{lixiang.participants}}</span>
  580 + </el-descriptions-item>
  581 + <el-descriptions-item>
  582 + <template slot="label">
  583 + 活动主要目的
  584 + </template>
  585 +
  586 +<span :style="duibiList.mainPurpose == lixiang.mainPurpose?'color: red':''" >{{lixiang.mainPurpose}}</span>
  587 + </el-descriptions-item>
  588 + <el-descriptions-item>
  589 + <template slot="label">
  590 + 范围设置
  591 + </template>
  592 +
  593 +<span :style="duibiList.rangeSetting == lixiang.rangeSetting?'color: red':''" >{{lixiang.rangeSetting}}</span>
  594 + </el-descriptions-item>
  595 + <el-descriptions-item>
  596 + <template slot="label">
  597 + 状态
  598 + </template>
  599 +
  600 +{{getStatus(lixiang.state)}}
  601 +
  602 + </el-descriptions-item>
  603 + </el-descriptions>
  604 +
  605 + </div>
  606 + </div>
  607 + <div style="width: 100%;">
  608 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">活动明细信息</div>
  609 + <div style="padding: 10px 20px;">
  610 + <el-table :data="tableData2"
  611 + :header-cell-style="{fontSize: '14px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
  612 + style="width: 100%;margin: auto;">
  613 + <el-table-column label="序号" min-width="5%" align='center'>
  614 + <template slot-scope="scope">
  615 + <span style="">{{ scope.$index +1}}</span>
  616 + </template>
  617 + </el-table-column>
  618 + <el-table-column label="明细项名称" prop="detailLtemName" min-width="28%">
  619 + </el-table-column>
  620 + <el-table-column label="预估数量" prop="estimatedQuantity" min-width="20%">
  621 +
  622 + </el-table-column>
  623 + <el-table-column label="预估费用" prop="estimatedCost" min-width="20%">
  624 +
  625 + </el-table-column>
  626 + <el-table-column label="备注" prop="notes" min-width="20%">
  627 + </el-table-column>
  628 + </el-table>
  629 + </div>
  630 + </div>
  631 + <div style="width: 100%;">
  632 + <div style="padding:10px 20px;">
  633 + <el-descriptions class="margin-top" title="活动成本信息" :column="2" border :labelStyle="labelStyle" >
  634 + <el-descriptions-item>
  635 + <template slot="label">
  636 + 内部人力成本预估
  637 + </template>
  638 +
  639 +<span :style="duibiList.internalLaborCostEstimation == lixiang.internalLaborCostEstimation?'color: red':''" >{{lixiang.internalLaborCostEstimation}}</span>
  640 + </el-descriptions-item>
  641 + <el-descriptions-item>
  642 + <template slot="label">
  643 + 外部人力成本预估
  644 + </template>
  645 +
  646 + <span :style="duibiList.externalLaborCostEstimation == lixiang.externalLaborCostEstimation?'color: red':''" >{{lixiang.externalLaborCostEstimation}}</span>
  647 + </el-descriptions-item>
  648 + <el-descriptions-item>
  649 + <template slot="label">
  650 + 商品成本预估
  651 + </template>
  652 +
  653 +<span :style="duibiList.costEstimationGoods == lixiang.costEstimationGoods?'color: red':''" >{{lixiang.costEstimationGoods}}</span>
  654 + </el-descriptions-item>
  655 + <el-descriptions-item>
  656 + <template slot="label">
  657 + 设备成本预估
  658 + </template>
  659 +
  660 +<span :style="duibiList.setCostEstimate == lixiang.setCostEstimate?'color: red':''" >{{lixiang.setCostEstimate}}</span>
  661 + </el-descriptions-item>
  662 + <el-descriptions-item>
  663 + <template slot="label">
  664 + 宣传费用预估
  665 + </template>
  666 +
  667 + <span :style="duibiList.estimatedPromotionalExpenses == lixiang.estimatedPromotionalExpenses?'color: red':''" >{{lixiang.estimatedPromotionalExpenses}}</span>
  668 + </el-descriptions-item>
  669 + <el-descriptions-item>
  670 + <template slot="label">
  671 + 其他必要成本预估
  672 + </template>
  673 +
  674 +<span :style="duibiList.otherNecessaryEstimates == lixiang.otherNecessaryEstimates?'color: red':''" >{{lixiang.otherNecessaryEstimates}}</span>
  675 + </el-descriptions-item>
  676 + <el-descriptions-item>
  677 + <template slot="label">
  678 + 总成本预估
  679 + </template>
  680 +
  681 +<span :style="duibiList.totalCostEstimation == lixiang.totalCostEstimation?'color: red':''" >{{lixiang.totalCostEstimation}}</span>
  682 + </el-descriptions-item>
  683 + <el-descriptions-item>
  684 + <template slot="label">
  685 + 备注
  686 + </template>
  687 +
  688 +<span :style="duibiList.notes == lixiang.notes?'color: red':''" >{{lixiang.notes}}</span>
  689 + </el-descriptions-item>
  690 + </el-descriptions>
  691 + </div>
  692 + </div>
  693 + <div style="width: 100%;">
  694 +
  695 + <div style="padding:10px 20px;">
  696 + <el-descriptions class="margin-top" title="预估效果" :column="2" border :labelStyle="labelStyle" >
  697 + <el-descriptions-item>
  698 + <template slot="label">
  699 + 预计吸引流量
  700 + </template>
  701 +
  702 +<span :style="duibiList.expectedAttractTraffic == lixiang.expectedAttractTraffic?'color: red':''" >{{lixiang.expectedAttractTraffic}}</span>
  703 + </el-descriptions-item>
  704 + <el-descriptions-item>
  705 + <template slot="label">
  706 + 预计参与人数
  707 + </template>
  708 +
  709 +<span :style="duibiList.expectedParticipation == lixiang.expectedParticipation?'color: red':''" >{{lixiang.expectedParticipation}}</span>
  710 + </el-descriptions-item>
  711 + <el-descriptions-item>
  712 + <template slot="label">
  713 + 预计直接收益
  714 + </template>
  715 +
  716 +<span :style="duibiList.expectedDirectBenefits == lixiang.expectedDirectBenefits?'color: red':''" >{{lixiang.expectedDirectBenefits}}</span>
  717 + </el-descriptions-item>
  718 + <el-descriptions-item>
  719 + <template slot="label">
  720 + 预计间接收益
  721 + </template>
  722 +
  723 +<span :style="duibiList.expectedIndirectBenefits == lixiang.expectedIndirectBenefits?'color: red':''" >{{lixiang.expectedIndirectBenefits}}</span>
  724 + </el-descriptions-item>
  725 +
  726 + </el-descriptions>
  727 +
  728 + </div>
  729 + </div>
  730 + <div style="width: 100%;">
  731 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">相关附件信息</div>
  732 + <div style="padding:10px 20px;">
  733 + <el-table :data="tableData6"
  734 + :header-cell-style="{fontSize: '14px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
  735 + style="width: 100%;margin: auto;">
  736 + <el-table-column label="序号" min-width="5%" align='center'>
  737 + <template slot-scope="scope">
  738 + <span style="">{{ scope.$index + 1 }}</span>
  739 + </template>
  740 + </el-table-column>
  741 + <el-table-column label="附件名称" prop="attachmentName" min-width="75%">
  742 + </el-table-column>
  743 + <el-table-column label="操作" min-width="20%">
  744 + <template slot-scope="scope">
  745 + <!-- <div class="tableBtn greens" @click="Down(scope.row)">下载</div> -->
  746 + <a class="tableBtn greens" :href="scope.row.attachmentUrl" target="_blank" download>下载</a>
  747 + </template>
  748 + </el-table-column>
  749 +
  750 + </el-table>
  751 + </div>
  752 + </div>
  753 + <div style="width: 100%;">
  754 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">系统信息</div>
  755 + <div style="padding:10px 20px;">
  756 + <el-table :data="tableData5"
  757 + :header-cell-style="{fontSize: '14px', backgroundColor: '#fff',color:'#000',fontWeight: 'normal'}"
  758 + style="width: 100%;margin: auto;">
  759 + <el-table-column class-name="first-column-bg" label="创建人" prop="name" min-width="15%">
  760 + </el-table-column>
  761 + <el-table-column :label="createUser" prop="eventTheme" min-width="35%">
  762 +
  763 + </el-table-column>
  764 + <el-table-column class-name="first-column-bg" label="创建时间" prop="text" min-width="15%">
  765 +
  766 + </el-table-column>
  767 + <el-table-column :label="createDate" prop="planName" min-width="35%">
  768 +
  769 + </el-table-column>
  770 + </el-table>
  771 + </div>
  772 + </div>
  773 + </div>
  774 + </div>
  775 + </div>
  776 + <div style="display: flex;justify-content: flex-end;padding:10px" v-if="activeName=='fourd'">
  777 + <el-button @click="lishidownloadPdf" style="background-color: #3F9B6A;color: #fff" >导出
  778 + </el-button></div>
  779 + <div style="display: flex;justify-content: flex-end;padding:10px" v-if="activeName=='first'">
  780 + <el-button @click="downloadPdf" style="background-color: #3F9B6A;color: #fff" >导出
  781 + </el-button>
  782 + <el-button @click="jiucuo" style="background-color: #3F9B6A;color: #fff" >活动策划调整纠错
  783 + </el-button>
  784 + </div>
  785 +</el-dialog>
  786 +</div>
  787 +</div>
  788 +<!-- 调整对比 -->
  789 +<el-dialog title="调整对比" :visible.sync="tiaozhengShow" custom-class='xiang_css' style="padding: 0;" width="80%" center
  790 + :close-on-click-modal="false" :close-on-press-escape="false" @close="reshData">
  791 + <div>
  792 + <div style="width: 100%;">
  793 + <div style="display: flex;padding:0px 20px 20px 20px; ">
  794 + <div style="width: 150px;height: 80px;" v-if="secondData.coverPoster">
  795 + <img :src="secondData.coverPoster" alt="" style="width: 100%;height: 80px;" />
  796 + </div>
  797 + <div
  798 + style="display: flex;flex-direction: column;justify-content: space-around;padding: 0 10px;font-size: 12px;">
  799 + <span style="margin-bottom: 10px;">{{text}}</span>
  800 + <span>活动时间:{{tableData1[1].eventTheme}}至{{tableData1[1].planName}}</span>
  801 + <span>活动地点:{{tableData1[0].planName}}</span>
  802 + </div>
  803 + </div>
  804 + </div>
  805 +
  806 + <div style="display: flex;">
  807 + <div style="width: 50%;">
  808 + <div style="width: 100%;">
  809 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">修改后</div>
  810 + <div style="padding: 10px 20px;">
  811 + <el-table :data="tableData1"
  812 + :header-cell-style="{fontSize: '14px', backgroundColor: '#fff',color:'#000',fontWeight: 'normal'}"
  813 + style="width: 100%;margin: auto;">
  814 + <el-table-column class-name="first-column-bg" label="方案编号" prop="name" min-width="15%">
  815 + </el-table-column>
  816 + <el-table-column :label="id" prop="eventTheme" min-width="35%">
  817 +
  818 + </el-table-column>
  819 + <el-table-column class-name="first-column-bg" label="方案名称" prop="text" min-width="15%">
  820 +
  821 + </el-table-column>
  822 + <el-table-column :label="text" prop="planName" min-width="35%">
  823 +
  824 + </el-table-column>
  825 + </el-table>
  826 +
  827 +
  828 + </div>
  829 + </div>
  830 + <div style="width: 100%;">
  831 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">活动明细信息</div>
  832 + <div style="padding: 10px 20px;">
  833 + <el-table :data="tableData2"
  834 + :header-cell-style="{fontSize: '14px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
  835 + style="width: 100%;margin: auto;">
  836 + <el-table-column label="序号" min-width="5%" align='center'>
  837 + <template slot-scope="scope">
  838 + <span style="">{{ scope.$index +1}}</span>
  839 + </template>
  840 + </el-table-column>
  841 + <el-table-column label="明细项名称" prop="detailLtemName" min-width="28%">
  842 + </el-table-column>
  843 + <el-table-column label="预估数量" prop="estimatedQuantity" min-width="20%">
  844 +
  845 + </el-table-column>
  846 + <el-table-column label="预估费用" prop="estimatedCost" min-width="20%">
  847 +
  848 + </el-table-column>
  849 + <el-table-column label="备注" prop="notes" min-width="20%">
  850 + </el-table-column>
  851 + </el-table>
  852 + </div>
  853 + </div>
  854 + <div style="width: 100%;">
  855 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">活动成本信息</div>
  856 + <div style="padding:10px 20px;">
  857 + <el-table :data="tableData3"
  858 + :header-cell-style="{fontSize: '14px', backgroundColor: '#fff',color:'#000',fontWeight: 'normal'}"
  859 + style="width: 100%;margin: auto;">
  860 + <el-table-column class-name="first-column-bg" label="内部人力成本预估" prop="name" min-width="15%">
  861 + </el-table-column>
  862 + <el-table-column :label="internalLaborCostEstimation" prop="eventTheme" min-width="35%">
  863 +
  864 + </el-table-column>
  865 + <el-table-column class-name="first-column-bg" label="外部人力成本预估" prop="text" min-width="15%">
  866 +
  867 + </el-table-column>
  868 + <el-table-column :label="externalLaborCostEstimation" prop="planName" min-width="35%">
  869 +
  870 + </el-table-column>
  871 + </el-table>
  872 + </div>
  873 + </div>
  874 + <div style="width: 100%;">
  875 + <div style="font-size: 14px;padding:10px 20px 0px 20px;">预估效果</div>
  876 + <div style="padding:10px 20px;">
  877 + <el-table :data="tableData4"
  878 + :header-cell-style="{fontSize: '14px', backgroundColor: '#fff',color:'#000',fontWeight: 'normal'}"
  879 + style="width: 100%;margin: auto;">
  880 + <el-table-column class-name="first-column-bg" label="预计吸引流量" prop="name" min-width="15%">
  881 + </el-table-column>
  882 + <el-table-column :label="expectedAttractTraffic" prop="eventTheme" min-width="35%">
  883 +
  884 + </el-table-column>
  885 + <el-table-column class-name="first-column-bg" label="预计参与人数" prop="text" min-width="15%">
  886 +
  887 + </el-table-column>
  888 + <el-table-column :label="expectedParticipation" prop="planName" min-width="35%">
  889 +
  890 + </el-table-column>
  891 + </el-table>
  892 + </el-table-column>
  893 + </div>
  894 + </div>
  895 + <div style="width: 100%;">
  896 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">相关附件信息</div>
  897 + <div style="padding:10px 20px;">
  898 + <el-table :data="tableData6"
  899 + :header-cell-style="{fontSize: '14px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
  900 + style="width: 100%;margin: auto;">
  901 + <el-table-column label="序号" min-width="5%" align='center'>
  902 + <template slot-scope="scope">
  903 + <span style="">{{ scope.$index + 1 }}</span>
  904 + </template>
  905 + </el-table-column>
  906 + <el-table-column label="附件名称" prop="attachmentName" min-width="75%">
  907 + </el-table-column>
  908 + <el-table-column label="操作" min-width="20%">
  909 + <template slot-scope="scope">
  910 + <!-- <div class="tableBtn greens" @click="Down(scope.row)">下载</div> -->
  911 + <a class="tableBtn greens" :href="scope.row.attachmentUrl" target="_blank" download>下载</a>
  912 + </template>
  913 + </el-table-column>
  914 +
  915 + </el-table>
  916 + </div>
  917 + </div>
  918 + <div style="width: 100%;">
  919 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">系统信息</div>
  920 + <div style="padding:10px 20px;">
  921 + <el-table :data="tableData5"
  922 + :header-cell-style="{fontSize: '14px', backgroundColor: '#fff',color:'#000',fontWeight: 'normal'}"
  923 + style="width: 100%;margin: auto;">
  924 + <el-table-column class-name="first-column-bg" label="创建人" prop="name" min-width="15%">
  925 + </el-table-column>
  926 + <el-table-column :label="createUser" prop="eventTheme" min-width="35%">
  927 +
  928 + </el-table-column>
  929 + <el-table-column class-name="first-column-bg" label="创建时间" prop="text" min-width="15%">
  930 +
  931 + </el-table-column>
  932 + <el-table-column :label="createDate" prop="planName" min-width="35%">
  933 +
  934 + </el-table-column>
  935 + </el-table>
  936 + </div>
  937 + </div>
  938 + </div>
  939 + <div style="width: 50%;">
  940 + <div style="width: 100%;">
  941 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">修改前</div>
  942 + <div style="padding: 10px 20px;">
  943 + <el-descriptions class="margin-top" :column="2" border :labelStyle="labelStyleOne" >
  944 + <el-descriptions-item>
  945 + <template slot="label">
  946 + 方案编号
  947 + </template>
  948 + {{lixiang.id}}
  949 + </el-descriptions-item>
  950 + <el-descriptions-item>
  951 + <template slot="label">
  952 + 方案名称
  953 + </template>
  954 + {{lixiang.planName}}
  955 + </el-descriptions-item>
  956 + <el-descriptions-item>
  957 + <template slot="label">
  958 + 类型
  959 + </template>
  960 + {{lixiang.planType}}
  961 + </el-descriptions-item>
  962 + <el-descriptions-item>
  963 + <template slot="label">
  964 + 活动地点
  965 + </template>
  966 + {{lixiang.eventAddrs}}
  967 + </el-descriptions-item>
  968 + <el-descriptions-item>
  969 + <template slot="label">
  970 + 活动开始时间
  971 + </template>
  972 + {{lixiang.eventStartTime}}
  973 + </el-descriptions-item>
  974 + <el-descriptions-item>
  975 + <template slot="label">
  976 + 活动结束时间
  977 + </template>
  978 + {{lixiang.eventEndTime}}
  979 + </el-descriptions-item>
  980 + <el-descriptions-item>
  981 + <template slot="label">
  982 + 活动主题
  983 + </template>
  984 + {{lixiang.eventTheme}}
  985 + </el-descriptions-item>
  986 + <el-descriptions-item>
  987 + <template slot="label">
  988 + 活动主办方
  989 + </template>
  990 + {{lixiang.sponsor}}
  991 + </el-descriptions-item>
  992 + <el-descriptions-item>
  993 + <template slot="label">
  994 + 活动参与方
  995 + </template>
  996 + {{lixiang.participants}}
  997 + </el-descriptions-item>
  998 + <el-descriptions-item>
  999 + <template slot="label">
  1000 + 活动主要目的
  1001 + </template>
  1002 + {{lixiang.mainPurpose}}
  1003 + </el-descriptions-item>
  1004 + <el-descriptions-item>
  1005 + <template slot="label">
  1006 + 范围设置
  1007 + </template>
  1008 + {{lixiang.rangeSetting}}
  1009 + </el-descriptions-item>
  1010 + <el-descriptions-item>
  1011 + <template slot="label">
  1012 + 状态
  1013 + </template>
  1014 + {{getStatus(lixiang.state)}}
  1015 +
  1016 + </el-descriptions-item>
  1017 + </el-descriptions>
  1018 +
  1019 + </div>
  1020 + </div>
  1021 + <div style="width: 100%;">
  1022 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">活动明细信息</div>
  1023 + <div style="padding: 10px 20px;">
  1024 + <el-table :data="tableData2"
  1025 + :header-cell-style="{fontSize: '14px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
  1026 + style="width: 100%;margin: auto;">
  1027 + <el-table-column label="序号" min-width="5%" align='center'>
  1028 + <template slot-scope="scope">
  1029 + <span style="">{{ scope.$index +1}}</span>
  1030 + </template>
  1031 + </el-table-column>
  1032 + <el-table-column label="明细项名称" prop="detailLtemName" min-width="28%">
  1033 + </el-table-column>
  1034 + <el-table-column label="预估数量" prop="estimatedQuantity" min-width="20%">
  1035 +
  1036 + </el-table-column>
  1037 + <el-table-column label="预估费用" prop="estimatedCost" min-width="20%">
  1038 +
  1039 + </el-table-column>
  1040 + <el-table-column label="备注" prop="notes" min-width="20%">
  1041 + </el-table-column>
  1042 + </el-table>
  1043 + </div>
  1044 + </div>
  1045 + <div style="width: 100%;">
  1046 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">活动成本信息</div>
  1047 + <div style="padding:10px 20px;">
  1048 + <el-descriptions class="margin-top" :column="2" border :labelStyle="labelStyleOne" >
  1049 + <el-descriptions-item>
  1050 + <template slot="label">
  1051 + 内部人力成本预估
  1052 + </template>
  1053 + {{lixiang.internalLaborCostEstimation}}
  1054 + </el-descriptions-item>
  1055 + <el-descriptions-item>
  1056 + <template slot="label">
  1057 + 外部人力成本预估
  1058 + </template>
  1059 + {{lixiang.externalLaborCostEstimation}}
  1060 + </el-descriptions-item>
  1061 + <el-descriptions-item>
  1062 + <template slot="label">
  1063 + 商品成本预估
  1064 + </template>
  1065 + {{lixiang.costEstimationGoods}}
  1066 + </el-descriptions-item>
  1067 + <el-descriptions-item>
  1068 + <template slot="label">
  1069 + 设备成本预估
  1070 + </template>
  1071 + {{lixiang.setCostEstimate}}
  1072 + </el-descriptions-item>
  1073 + <el-descriptions-item>
  1074 + <template slot="label">
  1075 + 宣传费用预估
  1076 + </template>
  1077 + {{lixiang.estimatedPromotionalExpenses}}
  1078 + </el-descriptions-item>
  1079 + <el-descriptions-item>
  1080 + <template slot="label">
  1081 + 其他必要成本预估
  1082 + </template>
  1083 + {{lixiang.otherNecessaryEstimates}}
  1084 + </el-descriptions-item>
  1085 + <el-descriptions-item>
  1086 + <template slot="label">
  1087 + 总成本预估
  1088 + </template>
  1089 + {{lixiang.totalCostEstimation}}
  1090 + </el-descriptions-item>
  1091 + <el-descriptions-item>
  1092 + <template slot="label">
  1093 + 备注
  1094 + </template>
  1095 + {{lixiang.notes}}
  1096 + </el-descriptions-item>
  1097 + </el-descriptions>
  1098 + </div>
  1099 + </div>
  1100 + <div style="width: 100%;">
  1101 +<div style="font-size: 14px;padding: 10px 20px 0px 20px;">预估效果</div>
  1102 + <div style="padding:10px 20px;">
  1103 + <el-descriptions class="margin-top" :column="2" border :labelStyle="labelStyleOne" >
  1104 + <el-descriptions-item>
  1105 + <template slot="label">
  1106 + 预计吸引流量
  1107 + </template>
  1108 + {{lixiang.expectedAttractTraffic}}
  1109 + </el-descriptions-item>
  1110 + <el-descriptions-item>
  1111 + <template slot="label">
  1112 + 预计参与人数
  1113 + </template>
  1114 + {{lixiang.expectedParticipation}}
  1115 + </el-descriptions-item>
  1116 + <el-descriptions-item>
  1117 + <template slot="label">
  1118 + 预计直接收益
  1119 + </template>
  1120 + {{lixiang.expectedDirectBenefits}}
  1121 + </el-descriptions-item>
  1122 + <el-descriptions-item>
  1123 + <template slot="label">
  1124 + 预计间接收益
  1125 + </template>
  1126 + {{lixiang.expectedIndirectBenefits}}
  1127 + </el-descriptions-item>
  1128 +
  1129 + </el-descriptions>
  1130 +
  1131 + </div>
  1132 + </div>
  1133 + <div style="width: 100%;">
  1134 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">相关附件信息</div>
  1135 + <div style="padding:10px 20px;">
  1136 + <el-table :data="tableData6"
  1137 + :header-cell-style="{fontSize: '14px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
  1138 + style="width: 100%;margin: auto;">
  1139 + <el-table-column label="序号" min-width="5%" align='center'>
  1140 + <template slot-scope="scope">
  1141 + <span style="">{{ scope.$index + 1 }}</span>
  1142 + </template>
  1143 + </el-table-column>
  1144 + <el-table-column label="附件名称" prop="attachmentName" min-width="75%">
  1145 + </el-table-column>
  1146 + <el-table-column label="操作" min-width="20%">
  1147 + <template slot-scope="scope">
  1148 + <!-- <div class="tableBtn greens" @click="Down(scope.row)">下载</div> -->
  1149 + <a class="tableBtn greens" :href="scope.row.attachmentUrl" target="_blank" download>下载</a>
  1150 + </template>
  1151 + </el-table-column>
  1152 +
  1153 + </el-table>
  1154 + </div>
  1155 + </div>
  1156 + <div style="width: 100%;">
  1157 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">系统信息</div>
  1158 + <div style="padding:10px 20px;">
  1159 + <el-table :data="tableData5"
  1160 + :header-cell-style="{fontSize: '14px', backgroundColor: '#fff',color:'#000',fontWeight: 'normal'}"
  1161 + style="width: 100%;margin: auto;">
  1162 + <el-table-column class-name="first-column-bg" label="创建人" prop="name" min-width="15%">
  1163 + </el-table-column>
  1164 + <el-table-column :label="createUser" prop="eventTheme" min-width="35%">
  1165 +
  1166 + </el-table-column>
  1167 + <el-table-column class-name="first-column-bg" label="创建时间" prop="text" min-width="15%">
  1168 +
  1169 + </el-table-column>
  1170 + <el-table-column :label="createDate" prop="planName" min-width="35%">
  1171 +
  1172 + </el-table-column>
  1173 + </el-table>
  1174 + </div>
  1175 + </div>
  1176 + </div>
  1177 + </div>
  1178 +
  1179 +
  1180 + </div>
  1181 +</el-dialog>
  1182 +
  1183 +<el-dialog title="新增明细" :visible.sync="addMing" custom-class='dialog_css' style="padding: 0;" width="50%" append-to-body
  1184 + center :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false">
  1185 + <div style="padding: 15px;width:100%">
  1186 + <div style="">
  1187 + <div style="padding: 15px;">
  1188 + <el-form label-position="right" ref="ruleFormInfo" :model="mingFrom" label-width="140px"
  1189 + style="position: relative">
  1190 + <el-form-item label="明细项名称" class="grid-content bg-purple device-from" prop="planName">
  1191 + <el-input v-model="mingFrom.detailLtemName" placeholder="请输入" />
  1192 + </el-form-item>
  1193 + <el-form-item label="预估数量" class="grid-content bg-purple" prop=" planType">
  1194 + <el-input v-model="mingFrom.estimatedQuantity" placeholder="请输入" />
  1195 + </el-form-item>
  1196 +
  1197 + <el-form-item label="预估费用" class="grid-content bg-purple" prop="eventAddrs">
  1198 + <el-input v-model="mingFrom.estimatedCost" placeholder="请输入" />
  1199 + </el-form-item>
  1200 + <el-form-item label="备注" class="grid-content bg-purple device-from" prop="planName">
  1201 + <el-input v-model="mingFrom.notes" placeholder="请输入" />
  1202 + </el-form-item>
  1203 + </el-form>
  1204 + </div>
  1205 + </div>
  1206 +
  1207 + </div>
  1208 + <div style="display: flex;justify-content: flex-end;padding: 10px 20px 10px 0">
  1209 +
  1210 + <el-button plain @click="minSev" style="background-color: #3F9B6A;color: #fff;">保存
  1211 + </el-button>
  1212 + <el-button plain @click="addMing=false" style="background-color: #3F9B6A;color: #fff;">取消
  1213 + </el-button>
  1214 + </div>
  1215 +</el-dialog>
  1216 +<!-- 效果对比 -->
  1217 +<el-dialog :visible.sync="xiaoDui" custom-class='dialog_css' style="padding: 0;" width="60%" center
  1218 + :close-on-click-modal="false" :close-on-press-escape="false">
  1219 + <div style="padding: 0 50px;display:flex;justify-content: space-evenly;">
  1220 + <div style="width:30%">
  1221 + <div style="display: flex;">
  1222 + <div style="margin-right: 10px;padding: 10px 0;">
  1223 + <div>调整前方案</div>
  1224 + <div style="font-size: 22px;color: #3F9B6A;font-weight: 600;margin: 10px 0;">{{xiaoduiObj.biliOne}}</div>
  1225 + <div style="font-size: 16px;color: #3F9B6A;font-weight: 600;">投入产出比</div>
  1226 + </div>
  1227 + <el-progress type="circle" :percentage="xiaoduiObj.bilis" :show-text="false" :width="100">
  1228 + </el-progress>
  1229 + </div>
  1230 + <div style="padding:30px 0">计划任务(完成度)</div>
  1231 + <div class="jindutiao">
  1232 + <div style="margin-right:10px;width:56px">直接收入</div>
  1233 + <!-- <el-progress :text-inside="true" :stroke-width="26" :format="format(xiaoduiObj.shou)" :percentage="xiaoduiObj.shouBi"></el-progress> -->
  1234 + <el-progress
  1235 + style="width: 150px;"
  1236 + :text-inside="true"
  1237 + :stroke-width="20"
  1238 + :percentage="baifenbi(duibiOne.expectedDirectBenefits)"
  1239 + status="success"
  1240 + :format="() => customFormat(duibiOne.expectedDirectBenefits)"
  1241 + ></el-progress>
  1242 + </div>
  1243 + <div class="jindutiao">
  1244 + <div style="margin-right:10px;width:56px">间接收入</div>
  1245 + <!-- <el-progress :text-inside="true" :stroke-width="26" :format="format(xiaoduiObj.shou)" :percentage="xiaoduiObj.shouBi"></el-progress> -->
  1246 + <el-progress
  1247 + style="width: 150px;"
  1248 + :text-inside="true"
  1249 + :stroke-width="20"
  1250 + :percentage="baifenbi(duibiOne.expectedIndirectBenefits)"
  1251 + status="success"
  1252 + :format="() => customFormat(duibiOne.expectedIndirectBenefits)"
  1253 + ></el-progress>
  1254 + </div>
  1255 + <div class="jindutiao">
  1256 + <div style="margin-right:10px;width:56px">人力</div>
  1257 + <!-- <el-progress :text-inside="true" :stroke-width="26" :format="format(xiaoduiObj.shou)" :percentage="xiaoduiObj.shouBi"></el-progress> -->
  1258 + <el-progress
  1259 + style="width: 150px;"
  1260 + :text-inside="true"
  1261 + :stroke-width="20"
  1262 + :percentage="baifenbi(duibiOne.internalLaborCostEstimation)"
  1263 + status="success"
  1264 + :format="() => customFormat(duibiOne.internalLaborCostEstimation)"
  1265 + ></el-progress>
  1266 + </div>
  1267 + <div class="jindutiao">
  1268 + <div style="margin-right:10px;width:56px">设备</div>
  1269 + <!-- <el-progress :text-inside="true" :stroke-width="26" :format="format(xiaoduiObj.shou)" :percentage="xiaoduiObj.shouBi"></el-progress> -->
  1270 + <el-progress
  1271 + style="width: 150px;"
  1272 + :text-inside="true"
  1273 + :stroke-width="20"
  1274 + :percentage="baifenbi(duibiOne.setCostEstimate)"
  1275 + status="success"
  1276 + :format="() => customFormat(duibiOne.setCostEstimate)"
  1277 + ></el-progress>
  1278 + </div>
  1279 + <div class="jindutiao">
  1280 + <div style="margin-right:10px;width:56px">宣传</div>
  1281 + <!-- <el-progress :text-inside="true" :stroke-width="26" :format="format(xiaoduiObj.shou)" :percentage="xiaoduiObj.shouBi"></el-progress> -->
  1282 + <el-progress
  1283 + style="width: 150px;"
  1284 + :text-inside="true"
  1285 + :stroke-width="20"
  1286 + :percentage="baifenbi(duibiOne.estimatedPromotionalExpenses)"
  1287 + status="success"
  1288 + :format="() => customFormat(duibiOne.estimatedPromotionalExpenses)"
  1289 + ></el-progress>
  1290 + </div>
  1291 + <div class="jindutiao">
  1292 + <div style="margin-right:10px;width:56px">其他</div>
  1293 + <!-- <el-progress :text-inside="true" :stroke-width="26" :format="format(xiaoduiObj.shou)" :percentage="xiaoduiObj.shouBi"></el-progress> -->
  1294 + <el-progress
  1295 + style="width: 150px;"
  1296 + :text-inside="true"
  1297 + :stroke-width="20"
  1298 + :percentage="baifenbi(duibiOne.otherNecessaryEstimates)"
  1299 + status="success"
  1300 + :format="() => customFormat(duibiOne.otherNecessaryEstimates)"
  1301 + ></el-progress>
  1302 + </div>
  1303 + </div>
  1304 + <div style="width:30%">
  1305 + <div style="display: flex;">
  1306 + <div style="margin-right: 10px;padding: 10px 0;">
  1307 + <div>调整后方案</div>
  1308 + <div style="font-size: 22px;color: #3F9B6A;font-weight: 600;margin: 10px 0;">{{xiaoduiObj.biliTwo}}</div>
  1309 + <div style="font-size: 16px;color: #3F9B6A;font-weight: 600;">投入产出比</div>
  1310 + </div>
  1311 + <el-progress type="circle" :percentage="xiaoduiObj.biliT" :show-text="false" :width="100">
  1312 + </el-progress>
  1313 + </div>
  1314 + <div style="padding:30px 0">计划任务(完成度)</div>
  1315 + <div class="jindutiao">
  1316 + <div style="margin-right:10px;width:56px">直接收入</div>
  1317 + <!-- <el-progress :text-inside="true" :stroke-width="26" :format="format(xiaoduiObj.shou)" :percentage="xiaoduiObj.shouBi"></el-progress> -->
  1318 + <el-progress
  1319 + style="width: 150px;"
  1320 + :text-inside="true"
  1321 + :stroke-width="20"
  1322 + :percentage="baifenbi(duibiTwo.expectedDirectBenefits==undefined?'':duibiTwo.expectedDirectBenefits)"
  1323 + status="success"
  1324 + :format="() => customFormat(duibiTwo.expectedDirectBenefits==undefined?'':duibiTwo.expectedDirectBenefits)"
  1325 + ></el-progress>
  1326 + </div>
  1327 + <div class="jindutiao">
  1328 + <div style="margin-right:10px;width:56px">间接收入</div>
  1329 + <!-- <el-progress :text-inside="true" :stroke-width="26" :format="format(xiaoduiObj.shou)" :percentage="xiaoduiObj.shouBi"></el-progress> -->
  1330 + <el-progress
  1331 + style="width: 150px;"
  1332 + :text-inside="true"
  1333 + :stroke-width="20"
  1334 + :percentage="baifenbi(duibiTwo.expectedIndirectBenefits==undefined?'':duibiTwo.expectedIndirectBenefits)"
  1335 + status="success"
  1336 + :format="() => customFormat(duibiTwo.expectedIndirectBenefits==undefined?'':duibiTwo.expectedIndirectBenefits)"
  1337 + ></el-progress>
  1338 + </div>
  1339 + <div class="jindutiao">
  1340 + <div style="margin-right:10px;width:56px">人力</div>
  1341 + <!-- <el-progress :text-inside="true" :stroke-width="26" :format="format(xiaoduiObj.shou)" :percentage="xiaoduiObj.shouBi"></el-progress> -->
  1342 + <el-progress
  1343 + style="width: 150px;"
  1344 + :text-inside="true"
  1345 + :stroke-width="20"
  1346 + :percentage="baifenbi(duibiTwo.internalLaborCostEstimation==undefined?'':duibiTwo.internalLaborCostEstimation)"
  1347 + status="success"
  1348 + :format="() => customFormat(duibiTwo.internalLaborCostEstimation==undefined?'':duibiTwo.internalLaborCostEstimation)"
  1349 + ></el-progress>
  1350 + </div>
  1351 + <div class="jindutiao">
  1352 + <div style="margin-right:10px;width:56px">设备</div>
  1353 + <!-- <el-progress :text-inside="true" :stroke-width="26" :format="format(xiaoduiObj.shou)" :percentage="xiaoduiObj.shouBi"></el-progress> -->
  1354 + <el-progress
  1355 + style="width: 150px;"
  1356 + :text-inside="true"
  1357 + :stroke-width="20"
  1358 + :percentage="baifenbi(duibiTwo.setCostEstimate==undefined?'':duibiTwo.setCostEstimate)"
  1359 + status="success"
  1360 + :format="() => customFormat(duibiTwo.setCostEstimate==undefined?'':duibiTwo.setCostEstimate)"
  1361 + ></el-progress>
  1362 + </div>
  1363 + <div class="jindutiao">
  1364 + <div style="margin-right:10px;width:56px">宣传</div>
  1365 + <!-- <el-progress :text-inside="true" :stroke-width="26" :format="format(xiaoduiObj.shou)" :percentage="xiaoduiObj.shouBi"></el-progress> -->
  1366 + <el-progress
  1367 + style="width: 150px;"
  1368 + :text-inside="true"
  1369 + :stroke-width="20"
  1370 + :percentage="baifenbi(duibiTwo.estimatedPromotionalExpenses==undefined?'':duibiTwo.estimatedPromotionalExpenses)"
  1371 + status="success"
  1372 + :format="() => customFormat(duibiTwo.estimatedPromotionalExpenses==undefined?'':duibiTwo.estimatedPromotionalExpenses)"
  1373 + ></el-progress>
  1374 + </div>
  1375 + <div class="jindutiao">
  1376 + <div style="margin-right:10px;width:56px">其他</div>
  1377 + <el-progress
  1378 + style="width: 150px;"
  1379 + :text-inside="true"
  1380 + :stroke-width="20"
  1381 + :percentage="baifenbi(duibiTwo.otherNecessaryEstimates==undefined?'':duibiTwo.otherNecessaryEstimates)"
  1382 + status="success"
  1383 + :format="() => customFormat(duibiTwo.otherNecessaryEstimates==undefined?'':duibiTwo.otherNecessaryEstimates)"
  1384 + ></el-progress>
  1385 + </div>
  1386 + </div>
  1387 + </div>
  1388 +</el-dialog>
  1389 +
  1390 +
  1391 + <!-- 复制 -->
  1392 + <el-dialog :visible.sync="copyShow" custom-class='xiaoguo_css' style="padding: 0;" width="50%"
  1393 + center :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false">
  1394 + <div style="padding:15px;background-color:#F9F9F9;font-size:14px;border:1px solid #ECECEC;margin-bottom:20px;display: flex;justify-content: space-between;">
  1395 + <div>复制页</div>
  1396 + </div>
  1397 + <div style="padding:0 36px;">
  1398 + <el-form label-position="right" :model="copy" label-width="120px"
  1399 + style="position: relative">
  1400 + <el-form-item label="新方案名称" class="grid-content bg-purple device-from" prop="planName">
  1401 + <el-input v-model="copy.planName" placeholder="请输入" />
  1402 + </el-form-item>
  1403 + </el-form>
  1404 + </div>
  1405 +
  1406 + <div style="display: flex;justify-content: flex-end;padding: 10px 20px 10px 0">
  1407 + <el-button class="buttonHover"
  1408 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"
  1409 + @click="copyClose" >返回</el-button>
  1410 + <el-button plain @click="copysev" style="background-color: #3F9B6A;color: #fff;" >保存
  1411 + </el-button>
  1412 + </div>
  1413 + </el-dialog>
  1414 +<el-dialog :visible.sync="searchShow" custom-class='xiaoguo_css' style="padding: 0;" width="50%"
  1415 + center :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false">
  1416 + <div style="padding:15px;background-color:#F9F9F9;font-size:14px;border:1px solid #ECECEC;margin-bottom:20px;display: flex;justify-content: space-between;">
  1417 + <div>搜索关键词配置</div>
  1418 + </div>
  1419 + <div style="padding:0 36px;">
  1420 + <el-checkbox v-model="searPei.name">方案名称</el-checkbox>
  1421 + <!-- <el-checkbox v-model="searPei.lei">方案类型</el-checkbox> -->
  1422 + <el-checkbox v-model="searPei.staut">审核状态</el-checkbox>
  1423 + </div>
  1424 +
  1425 + <div style="display: flex;justify-content: flex-end;padding: 10px 20px 10px 0">
  1426 + <el-button class="buttonHover"
  1427 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"
  1428 + @click="searchShow=false" >返回</el-button>
  1429 + <el-button plain @click="searchShow=false" style="background-color: #3F9B6A;color: #fff;" >保存
  1430 + </el-button>
  1431 + </div>
  1432 + </el-dialog>
  1433 +<el-dialog :visible.sync="jiucuoShow" custom-class='bian_css' style="padding: 0;" width="50%"
  1434 + :close-on-press-escape="false" center :close-on-click-modal="false" class="dialog_css_Xq" :show-close="false">
  1435 + <div style="padding:20px;">
  1436 + <div style="font-size: 14px;padding-bottom: 20px;color: #000;">活动策划调整纠错</div>
  1437 + <wangEditor v-model="jiuMsg" ref="editor"></wangEditor>
  1438 + <div style="padding-top:20px;display:flex;justify-content: flex-end;">
  1439 + <el-button style="background-color: #3F9B6A;color: #fff"
  1440 + @click="jiuCheck">确定</el-button>
  1441 + <el-button @click="jiucuoShow = false" style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;" class="buttonHover">取消</el-button>
  1442 +
  1443 + </div>
  1444 +
  1445 + </div>
  1446 +
  1447 + </el-dialog>
  1448 +
  1449 +<actbians :showBian="actbianMsg" @BianchildClose='BianchildClose'></actbians>
  1450 +</div>
  1451 +</template>
  1452 +
  1453 +<script>
  1454 + import {
  1455 + deleteById,
  1456 + queryByPage,
  1457 + xiangByPage,
  1458 + fujiaTable,
  1459 + mingTable,
  1460 + danqueryById,
  1461 + xiangedit,
  1462 + actEdit,
  1463 + actAdd,
  1464 + actPage,
  1465 + MingAdd,
  1466 + MingDel,
  1467 + cereGet,
  1468 + cereAdd,
  1469 + cereEdit,
  1470 + cereDel,
  1471 + copy,
  1472 + excelQueryByPage,
  1473 + excelAdd,
  1474 + effectEvaluation,
  1475 + lishiDeta
  1476 + } from '../../api/activityBz'
  1477 + import actbians from "./activityBian"
  1478 + import * as echarts from 'echarts'
  1479 + import Vue from 'vue'
  1480 + import html2canvas from 'html2canvas'
  1481 + import jsPDF from 'jspdf'
  1482 + import wangEditor from "@/components/editor/index";
  1483 + import {
  1484 + uploadUrl
  1485 + } from '@/utils/request'
  1486 + export default {
  1487 + components: {
  1488 + actbians,
  1489 + wangEditor
  1490 + },
  1491 + data() {
  1492 + return {
  1493 + uploadFileUrl: uploadUrl, // 请求地址
  1494 + daoData:[],
  1495 + actbianMsg: {
  1496 + acBian: '', //编辑数据
  1497 + bianshow: false, //编辑页
  1498 + },
  1499 + fileData:[],
  1500 + fenlei: [],
  1501 + secondData: {},
  1502 +
  1503 + formSear:{
  1504 + planName: '',
  1505 + state:null,
  1506 + dataOwnership: '1',
  1507 + pageNumber: 1,
  1508 + pageSize: 10,
  1509 + isDraft:0
  1510 + },
  1511 +
  1512 + planFen: '',
  1513 + eventTheme: '',
  1514 + currentPage: 1,
  1515 + total: 100,
  1516 + flag: false,
  1517 + pageSize: 10,
  1518 + ggXin: false,
  1519 + radio: '1',
  1520 + shan: '',
  1521 + activeName: 'first',
  1522 + rules: {
  1523 + coDe: [{
  1524 + required: true,
  1525 + message: '请输入活动名称',
  1526 + trigger: 'blur'
  1527 + },
  1528 +
  1529 + ],
  1530 + },
  1531 + formInline: {
  1532 + merchantName: '', // 商家名称
  1533 + storeId: '', // 编码
  1534 + contacts: '', // 联系人
  1535 + businessEntity: '', //经营主体
  1536 + page: 1, // 当前页
  1537 + pageSize: 10 // 每页记录数
  1538 + },
  1539 + tableData: [],
  1540 + id: '',
  1541 + text: '123',
  1542 + tableData1: [{
  1543 + id: 0,
  1544 + name: '类型',
  1545 + planName: '',
  1546 + text: '活动地点',
  1547 + eventTheme: ''
  1548 + }, {
  1549 + id: 0,
  1550 + name: '活动开始时间',
  1551 + planName: '',
  1552 + text: '活动结束时间',
  1553 + eventTheme: ''
  1554 + }, {
  1555 + id: 0,
  1556 + name: '活动主题',
  1557 + planName: '',
  1558 + text: '活动主办方',
  1559 + eventTheme: ''
  1560 + }, {
  1561 + id: 0,
  1562 + name: '活动参与方',
  1563 + planName: '',
  1564 + text: '活动主要目的',
  1565 + eventTheme: ''
  1566 + }, {
  1567 + id: 0,
  1568 + name: '范围设置',
  1569 + planName: '',
  1570 + text: '状态',
  1571 + eventTheme: ''
  1572 + }],
  1573 + internalLaborCostEstimation: '',
  1574 + externalLaborCostEstimation: '',
  1575 + tableData3: [{
  1576 + id: 0,
  1577 + name: '商品成本预估',
  1578 + planName: '',
  1579 + text: '设备成本预估',
  1580 + eventTheme: ''
  1581 + }, {
  1582 + id: 0,
  1583 + name: '宣传费用预估',
  1584 + planName: '',
  1585 + text: '其他必要成本预估',
  1586 + eventTheme: ''
  1587 + }, {
  1588 + id: 0,
  1589 + name: '总成本预估',
  1590 + planName: '',
  1591 + text: '备注',
  1592 + eventTheme: ''
  1593 + }],
  1594 + expectedAttractTraffic: '',
  1595 + expectedParticipation: '',
  1596 + tableData4: [{
  1597 + id: 0,
  1598 + name: '预计直接收益',
  1599 + planName: '',
  1600 + text: '预计间接收益',
  1601 + eventTheme: '-'
  1602 + }],
  1603 + createUser: '',
  1604 + createDate: '',
  1605 + tableData5: [{
  1606 + id: 0,
  1607 + name: '更新人',
  1608 + planName: '',
  1609 + text: '更新时间',
  1610 + eventTheme: '-'
  1611 + }],
  1612 + tableData2: [], //基本信息明细列表
  1613 + tableData6: [], //基本信息附件列表
  1614 + addMing: false, //执行效果添加明细
  1615 + zhixingBian: false, //判断是否编辑执行效果
  1616 + tableDa: [], //执行效果明细列表
  1617 + zhiXing: true, //判断是否是新增的执行效果
  1618 + mingFrom: {
  1619 + detailLtemName: '',
  1620 + estimatedQuantity: '',
  1621 + estimatedCost: '',
  1622 + notes: ''
  1623 + },
  1624 + planTime:[],
  1625 + zhixingList: {
  1626 + planTime: [],
  1627 + planName: '', //活动名称
  1628 + eventAddrs: '', //实际举办地点
  1629 + eventStartTime: 0, //实际开始时间
  1630 + eventEndTime: 0, //实际结束时间
  1631 + sponsor: '', //实际主办方
  1632 + participants: '', //实际参与方
  1633 + internalLaborCostEstimation: '', //内部人工成本
  1634 + externalLaborCostEstimation: '', //外部人工成本
  1635 + costEstimationGoods: '', //商品成本
  1636 + setCostEstimate: '', //设备成本
  1637 + estimatedPromotionalExpenses: '', //宣传费用预估
  1638 + otherNecessaryEstimates: '', //其他成本预估
  1639 + totalCostEstimation: '', //总成本预估
  1640 + notes: '', //备注
  1641 + expectedAttractTraffic: '', //吸引流量
  1642 + expectedParticipation: '', //参与人数
  1643 + expectedDirectBenefits: '', //直接收益
  1644 + expectedIndirectBenefits: '', //间接收益
  1645 + createDate: '', //创建时间
  1646 + feedbackContent:''
  1647 + }, //执行效果列表
  1648 + pageindex: {
  1649 + pageNumber: 1,
  1650 + pageSize: 10,
  1651 + dataOwnership: '1',
  1652 + isDraft:0
  1653 + },
  1654 + multipleSelection: [],
  1655 + options: [],
  1656 + xinADD:{
  1657 + classificationName:'',
  1658 + parentId:'',
  1659 + classificationType:'0'
  1660 + },
  1661 + value: '',
  1662 + xiaoDui: false, //效果对比
  1663 + dataList:[],
  1664 +
  1665 + fenleiDelId:null,//删除的分类ID
  1666 + xiaoduiObj:{
  1667 + biliOne:'0%',
  1668 + bilis:0,
  1669 + biliTwo:'0%',
  1670 + biliT:0
  1671 + },//效果对比数据
  1672 + fujiLei:'',
  1673 + defaultProps:{
  1674 + children: 'children',
  1675 + label: 'classificationName'
  1676 + },
  1677 +
  1678 + copy:{
  1679 + planName:''
  1680 + },
  1681 + copyShow:false,
  1682 + duibiOne:{},
  1683 + duibiTwo:{},
  1684 + searchShow:false,
  1685 + searPei:{
  1686 + name:true,
  1687 + lei:false,
  1688 + staut:false,
  1689 + },
  1690 + lishiList:null,
  1691 + labelStyle:{
  1692 + width:'197px',
  1693 + height:'42px',
  1694 + },
  1695 + labelStyleOne:{
  1696 + width:'110px',
  1697 + height:'42px',
  1698 + color:'#000',
  1699 + },
  1700 + lidata:[],
  1701 + lixiang:{},
  1702 + duibiList:{},
  1703 + tiaozhengShow:false,
  1704 + jiucuoShow:false,
  1705 + jiuMsg:'',
  1706 + editId:''
  1707 + }
  1708 + },
  1709 + created() {
  1710 + this.getAll()
  1711 +
  1712 + },
  1713 + computed: {
  1714 +
  1715 + },
  1716 + methods: {
  1717 + getStatus(state) {
  1718 + switch (state) {
  1719 + case '':
  1720 + return '待提交';
  1721 + case '1':
  1722 + return '待审核';
  1723 + case '2':
  1724 + return '业务部审核';
  1725 + case '3':
  1726 + return '品牌审核';
  1727 + case '4':
  1728 + return '审核通过';
  1729 + case '5':
  1730 + return '审核不通过'
  1731 + }
  1732 + },
  1733 + //查询全数据
  1734 + async getAll() {
  1735 + const res = await queryByPage(this.pageindex)
  1736 + this.tableData = res.data.content
  1737 + this.total = res.data.content.length
  1738 +
  1739 + },
  1740 + //删除记录按钮
  1741 + handleDelete(val) {
  1742 + if (this.multipleSelection.length == 1) {
  1743 +
  1744 + const h = this.$createElement;
  1745 + this.$msgbox({
  1746 + title: '消息',
  1747 + message: h('p', null, [
  1748 + h('span', null, '是否删除 '),
  1749 + ]),
  1750 + showCancelButton: true,
  1751 + showClose: false,
  1752 + confirmButtonText: '确定',
  1753 + cancelButtonText: '取消',
  1754 + customClass: 'oe-dialog-btn',
  1755 + beforeClose: (action, instance, done) => {
  1756 + if (action === 'confirm') {
  1757 + deleteById({
  1758 + id: this.multipleSelection[0].id
  1759 + }).then(res => {
  1760 + this.getAll()
  1761 + done();
  1762 + })
  1763 + } else {
  1764 + done();
  1765 + }
  1766 + }
  1767 + })
  1768 + } else {
  1769 + this.$message({
  1770 + message: '请选择一个文件删除',
  1771 + customClass: 'custom-message',
  1772 + offset: 100
  1773 + })
  1774 + }
  1775 + },
  1776 + //查询
  1777 + async onSubmit() {
  1778 + const res = await danqueryById(this.formSear)
  1779 + this.tableData = res.data.content
  1780 + },
  1781 + //重置按钮
  1782 + resetting() {
  1783 + this.formSear ={
  1784 + planName: '',
  1785 + state:null,
  1786 + dataOwnership: '1',
  1787 + pageNumber: 1,
  1788 + pageSize: 10,
  1789 + isDraft:0
  1790 + }
  1791 + this.getAll()
  1792 + },
  1793 + //编辑页
  1794 + BianchildClose(msg) {
  1795 + this.actbianMsg.bianshow = msg
  1796 + this.getAll()
  1797 + },
  1798 + actBian(item) {
  1799 + this.actbianMsg.acBian = item
  1800 + this.actbianMsg.bianshow = true
  1801 + },
  1802 + //详情点击
  1803 + handleEditForm(item) {
  1804 + this.editId =item.id
  1805 + this.liData = []
  1806 + this.lixiang = {}
  1807 + this.lishiList=null
  1808 + this.fileData = []
  1809 + this.zhixingList = {
  1810 + planTime:[],
  1811 + planName: '', //活动名称
  1812 + eventAddrs: '', //实际举办地点
  1813 + eventStartTime: 0, //实际开始时间
  1814 + eventEndTime: 0, //实际结束时间
  1815 + sponsor: '', //实际主办方
  1816 + participants: '', //实际参与方
  1817 + internalLaborCostEstimation: '', //内部人工成本
  1818 + externalLaborCostEstimation: '', //外部人工成本
  1819 + costEstimationGoods: '', //商品成本
  1820 + setCostEstimate: '', //设备成本
  1821 + estimatedPromotionalExpenses: '', //宣传费用预估
  1822 + otherNecessaryEstimates: '', //其他成本预估
  1823 + totalCostEstimation: '', //总成本预估
  1824 + notes: '', //备注
  1825 + expectedAttractTraffic: '', //吸引流量
  1826 + expectedParticipation: '', //参与人数
  1827 + expectedDirectBenefits: '', //直接收益
  1828 + expectedIndirectBenefits: '', //间接收益
  1829 + createDate: '', //创建时间
  1830 + feedbackContent:''
  1831 + } //执行效果列表
  1832 + actPage({
  1833 + detailsId: item.id,
  1834 + pageNumber: 1,
  1835 + pageSize: 10,
  1836 + }).then(res => {
  1837 + console.log(res.data.content)
  1838 + if (res.data.content.length == 0) {
  1839 + this.zhiXing = true
  1840 + } else {
  1841 + mingTable({
  1842 + detailsId: res.data.content[0].id,
  1843 + pageNumber: 1,
  1844 + pageSize: 10,
  1845 + }).then(res => {
  1846 + this.tableDa = res.data.content
  1847 + })
  1848 + this.zhiXing = false
  1849 + this.zhixingList = res.data.content[0]
  1850 + if((typeof this.zhixingList.eventStartTime) == 'object' || (typeof this.zhixingList.eventEndTime) == 'object' ){
  1851 + this.zhixingList.planTime = []
  1852 + }else{
  1853 + console.log(typeof this.zhixingList.eventStartTime)
  1854 + this.zhixingList.planTime = [ this.zhixingList.eventStartTime, this.zhixingList.eventEndTime]
  1855 + }
  1856 +
  1857 + }
  1858 + })
  1859 + let that = this
  1860 + this.planTime = [item.eventStartTime, item.eventEndTime]
  1861 + fujiaTable({
  1862 + detailsId: item.id,
  1863 + pageNumber: 1,
  1864 + pageSize: 10,
  1865 + }).then(res => {
  1866 + this.tableData6 = res.data.content
  1867 + })
  1868 + mingTable({
  1869 + detailsId: item.id,
  1870 + pageNumber: 1,
  1871 + pageSize: 10,
  1872 + }).then(res => {
  1873 + this.tableData2 = res.data.content
  1874 + })
  1875 +
  1876 +
  1877 + danqueryById({
  1878 + id: item.id,
  1879 + dataOwnership: '1',
  1880 + pageNumber: 1,
  1881 + pageSize: 10,
  1882 + }).then(res => {
  1883 + this.secondData = res.data.content[0]
  1884 + //基本信息
  1885 + // that.id=res.data.content[0].id
  1886 + that.text = res.data.content[0].planName
  1887 + that.tableData1[0].eventTheme = res.data.content[0].planType
  1888 + that.tableData1[0].planName = res.data.content[0].eventAddrs
  1889 + that.tableData1[1].eventTheme = res.data.content[0].eventStartTime
  1890 + that.tableData1[1].planName = res.data.content[0].eventEndTime
  1891 + that.tableData1[2].eventTheme = res.data.content[0].eventTheme
  1892 + that.tableData1[2].planName = res.data.content[0].sponsor
  1893 + that.tableData1[3].eventTheme = res.data.content[0].participants
  1894 + that.tableData1[3].planName = res.data.content[0].mainPurpose
  1895 + that.tableData1[4].planName = this.getStatus(res.data.content[0].state)
  1896 + that.tableData1[4].eventTheme = res.data.content[0].rangeSetting
  1897 + //活动成本信息
  1898 + that.internalLaborCostEstimation = res.data.content[0].internalLaborCostEstimation
  1899 + that.externalLaborCostEstimation = res.data.content[0].externalLaborCostEstimation
  1900 + that.tableData3[0].eventTheme = res.data.content[0].costEstimationGoods
  1901 + that.tableData3[0].planName = res.data.content[0].setCostEstimate
  1902 + that.tableData3[1].eventTheme = res.data.content[0].estimatedPromotionalExpenses
  1903 + that.tableData3[1].planName = res.data.content[0].otherNecessaryEstimates
  1904 + that.tableData3[2].eventTheme = res.data.content[0].totalCostEstimation
  1905 + that.tableData3[2].planName = res.data.content[0].notes
  1906 + //预估效果
  1907 + that.expectedAttractTraffic = res.data.content[0].expectedAttractTraffic
  1908 + that.expectedParticipation = res.data.content[0].expectedParticipation
  1909 + that.tableData4[0].eventTheme = res.data.content[0].expectedDirectBenefits
  1910 + that.tableData4[0].planName = res.data.content[0].expectedIndirectBenefits
  1911 + //系统信息
  1912 + that.createUser = res.data.content[0].createUser
  1913 + that.createDate = res.data.content[0].createDate
  1914 +
  1915 + that.tableData5[0].planName = '-'
  1916 + that.tableData5[0].eventTheme = res.data.content[0].updateUser
  1917 +
  1918 + }).catch(err => {
  1919 + console.log(err)
  1920 +
  1921 + })
  1922 + if (!item) {
  1923 + this.formItem = {}
  1924 + } else {
  1925 + this.formItem = item
  1926 + }
  1927 + lishiDeta({eventDetailsId:item.id}).then(res=>{
  1928 + this.liData = res.data
  1929 + })
  1930 + this.ggXin = true
  1931 + },
  1932 + formTime(data){
  1933 + this.zhixingList.planTime = data
  1934 + },
  1935 + removeEmptyValues(obj) {
  1936 + if (typeof obj !== 'object' || obj === null) {
  1937 + return obj;
  1938 + }
  1939 +
  1940 + const newObj = Array.isArray(obj) ? [] : {};
  1941 +
  1942 + for (const key in obj) {
  1943 + if (Object.prototype.hasOwnProperty.call(obj, key)) {
  1944 + const value = obj[key];
  1945 + if (value !== null && value !== undefined && value !== '' && !this.isEmptyObject(value)) {
  1946 + if (Array.isArray(newObj)) {
  1947 + newObj.push(this.removeEmptyValues(value));
  1948 + } else {
  1949 + newObj[key] = this.removeEmptyValues(value);
  1950 + }
  1951 + }
  1952 + }
  1953 + }
  1954 +
  1955 + return newObj;
  1956 + },
  1957 + isEmptyObject(obj) {
  1958 + return Object.keys(obj).length === 0 && obj.constructor === Object;
  1959 + },
  1960 + //获取当前时间
  1961 + updateCurrentTime() {
  1962 + const now = new Date();
  1963 + const year = now.getFullYear();
  1964 + const month = (now.getMonth() + 1).toString().padStart(2, '0');
  1965 + const day = now.getDate().toString().padStart(2, '0');
  1966 + const hours = now.getHours().toString().padStart(2, '0');
  1967 + const minutes = now.getMinutes().toString().padStart(2, '0');
  1968 + const seconds = now.getSeconds().toString().padStart(2, '0');
  1969 +
  1970 + return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
  1971 + },
  1972 +
  1973 + handleCurrentChange(val) {
  1974 + this.currentPage = val
  1975 + },
  1976 + handleSizeChange(val) {
  1977 + this.pageSize = val
  1978 + },
  1979 + closeFn() {
  1980 + this.ggXin = false
  1981 + },
  1982 + handleClick() {
  1983 + console.log()
  1984 + },
  1985 + refreshData() {
  1986 + // console.log('12123')
  1987 + this.tableDa = []
  1988 + this.activeName = 'first'
  1989 + this.zhixingBian = false
  1990 + },
  1991 + reshData() {
  1992 + this.tableDa = []
  1993 + this.tiaozhengShow = false
  1994 + },
  1995 +
  1996 + handleSelectionChange(val) {
  1997 + this.multipleSelection = val;
  1998 + },
  1999 + toggleSelection(rows) {
  2000 + if (rows) {
  2001 + rows.forEach(row => {
  2002 + this.$refs.mulTable.toggleRowSelection(row);
  2003 + });
  2004 + }
  2005 + },
  2006 + tableAll() {
  2007 + this.$refs.mulTable.clearSelection(); // 清除所有选项
  2008 + const allRows = this.$refs.mulTable.data; // 获取所有行数据
  2009 + allRows.forEach(row => {
  2010 + this.$refs.mulTable.toggleRowSelection(row, true); // 全选所有项
  2011 + });
  2012 + },
  2013 + TabClick(tab, event) {
  2014 + console.log(tab, event)
  2015 + if (tab.index == '0') {
  2016 + this.getAll()
  2017 + } else {
  2018 + this.tableData = []
  2019 + }
  2020 + },
  2021 + minSev() {
  2022 + if (this.zhiXing) {
  2023 + this.tableDa.push(this.mingFrom)
  2024 + } else {
  2025 + this.mingFrom.detailsId = this.zhixingList.id
  2026 + MingAdd(this.mingFrom).then(res => {
  2027 + this.mingcha(this.zhixingList.id)
  2028 + })
  2029 + }
  2030 + this.mingFrom = {
  2031 + detailLtemName: '',
  2032 + estimatedQuantity: '',
  2033 + estimatedCost: '',
  2034 + notes: ''
  2035 + }
  2036 + this.addMing = false
  2037 + },
  2038 + // 查询执行明细
  2039 + mingcha(id) {
  2040 + mingTable({
  2041 + detailsId: id,
  2042 + pageNumber: 1,
  2043 + pageSize: 10
  2044 + }).then(res => {
  2045 + this.tableDa = res.data.content
  2046 + })
  2047 + },
  2048 + MingDelete(index, item) {
  2049 + const h = this.$createElement;
  2050 + this.$msgbox({
  2051 + title: '消息',
  2052 + message: h('p', null, [
  2053 + h('span', null, '是否删除 '),
  2054 + ]),
  2055 + showCancelButton: true,
  2056 + showClose: false,
  2057 + confirmButtonText: '确定',
  2058 + cancelButtonText: '取消',
  2059 + customClass: 'oe-dialog-btn',
  2060 + beforeClose: (action, instance, done) => {
  2061 + if (action === 'confirm') {
  2062 + if (this.zhiXing) {
  2063 + this.tableDa.splice(item, 1);
  2064 + } else {
  2065 + MingDel({
  2066 + id: item.id
  2067 + }).then(res => {
  2068 + this.mingcha(this.zhixingList.id)
  2069 + })
  2070 + }
  2071 + done();
  2072 + } else {
  2073 + done();
  2074 + }
  2075 + }
  2076 + })
  2077 + },
  2078 + tianMing() {
  2079 + if (this.zhixingBian) {
  2080 + this.addMing = true
  2081 + }
  2082 + },
  2083 +
  2084 + duibi(){
  2085 + if (this.multipleSelection.length ==1 ) {
  2086 + this.xiaoDui = true
  2087 + this.duibiOne = this.multipleSelection[0]
  2088 + console.log(this.multipleSelection[0])
  2089 + let that = this
  2090 + actPage({
  2091 + detailsId:this.multipleSelection[0].id,
  2092 + pageNumber: 1,
  2093 + pageSize: 10,
  2094 + }).then(res => {
  2095 + this.duibiTwo = res.data.content[0] === undefined ? {} : res.data.content[0];
  2096 + console.log(this.duibiTwo)
  2097 + if( res.data.content[0] === undefined || res.data.content[0].totalCostEstimation =='' ){
  2098 + that.xiaoduiObj.biliTwo = '0%'
  2099 + that.xiaoduiObj.biliT = 0
  2100 + }else{
  2101 + that.xiaoduiObj.biliT = that.duibiTwo.internalLaborCostEstimation / that.duibiTwo.totalCostEstimation*100
  2102 + that.xiaoduiObj.biliTwo =`${Math.round(that.duibiTwo.internalLaborCostEstimation / that.duibiTwo.totalCostEstimation*100)}%`
  2103 + }
  2104 +
  2105 + })
  2106 + if(that.duibiOne.totalCostEstimation ==''){
  2107 + that.xiaoduiObj.biliOne = '0%'
  2108 + that.xiaoduiObj.bilis = 0
  2109 + }else{
  2110 + that.xiaoduiObj.bilis = that.duibiOne.internalLaborCostEstimation / that.duibiOne.totalCostEstimation*100
  2111 + that.xiaoduiObj.biliOne = `${Math.round(that.duibiOne.internalLaborCostEstimation / that.duibiOne.totalCostEstimation*100)}%`
  2112 + }
  2113 +
  2114 + }else{
  2115 + this.$message({
  2116 + message: '请选择一个文件对比',
  2117 + customClass: 'custom-message',
  2118 + offset: 100
  2119 + })
  2120 + }
  2121 +
  2122 + },
  2123 +
  2124 + koop(item){
  2125 + this.copy.id = item.id
  2126 + this.copyShow = true
  2127 + },
  2128 + copyClose(){
  2129 + this.copyShow = false
  2130 + this.copy.planName = ''
  2131 + },
  2132 + copysev(){
  2133 + if(this.copy.planName == ''){
  2134 + this.$message({
  2135 + message: '请填写数据',
  2136 + customClass: 'custom-message',
  2137 + offset: 100
  2138 + })
  2139 + return;
  2140 + }else{
  2141 + copy(this.copy).then(res=>{
  2142 + this.copyShow = false
  2143 + this.getAll()
  2144 + })
  2145 + }
  2146 + },
  2147 +
  2148 +
  2149 + fenleiChange(value){
  2150 + this.xinADD.parentId = value[value.length - 1]
  2151 + },
  2152 +
  2153 +
  2154 + customFormat(percentage) {
  2155 + let zong
  2156 + if(percentage==undefined ||percentage === null || percentage == '' ){
  2157 + percentage = 0
  2158 + zong = 10000
  2159 + }
  2160 + return `${percentage} / ${percentage==''?zong:parseInt(percentage) *10}`;
  2161 + },
  2162 + baifenbi(item){
  2163 +
  2164 + let zong
  2165 + if(item == undefined || item === null || item == '' ){
  2166 + item = 0
  2167 + zong = 10000
  2168 + return Math.round(item / (item*10) * 100);
  2169 + }else{
  2170 + return Math.round(item / zong * 100);
  2171 + }
  2172 +
  2173 + },
  2174 + handleUploadSuccess(response, file, fileList) {
  2175 + const fileMsg = {
  2176 + name:file.name,
  2177 + url: file.response.data.url,
  2178 + }
  2179 + // 将文件地址存储在 uploadedFiles 数组中
  2180 + this.fileData.push(fileMsg);
  2181 + },
  2182 + handleRemove(){
  2183 + this.fileData = []
  2184 + },
  2185 + daoru(response, file, fileList){
  2186 + this.daoData.push(file.raw)
  2187 + const formDate = new FormData()
  2188 + formDate.append('file', this.daoData[0])
  2189 + excelAdd(formDate).then(res => {
  2190 + this.getAll()
  2191 + })
  2192 + },
  2193 +
  2194 +
  2195 + async daochu(){
  2196 + let res = await excelQueryByPage(this.pageindex)
  2197 + if(!res){
  2198 + return
  2199 + }
  2200 + const blob = new Blob([res], { type: 'application/vnd.ms-excel' })
  2201 + const fileName = '审核流程.xls'
  2202 + if ('download' in document.createElement('a')) {
  2203 + // 非IE下载
  2204 + const elink = document.createElement('a')
  2205 + elink.download = fileName
  2206 + elink.style.display = 'none'
  2207 + elink.href = URL.createObjectURL(blob)
  2208 + document.body.appendChild(elink)
  2209 + elink.click()
  2210 + URL.revokeObjectURL(elink.href) // 释放URL 对象
  2211 + document.body.removeChild(elink)
  2212 + } else {
  2213 + // IE10+下载
  2214 + navigator.msSaveBlob(blob, fileName)
  2215 + }
  2216 + this.$message({
  2217 + message: '导出成功',
  2218 + type: 'success'
  2219 + })
  2220 +
  2221 +
  2222 + },
  2223 + // 下载
  2224 + async downloadPdf() {
  2225 + const content = this.$refs.actXiang;
  2226 +
  2227 + // 使用 html2canvas 将 div 渲染为画布
  2228 + const canvas = await html2canvas(content);
  2229 +
  2230 + // 获取画布的图像数据
  2231 + const imgData = canvas.toDataURL('image/png');
  2232 +
  2233 + // 创建一个新的 PDF 文档
  2234 + const pdf = new jsPDF('p', 'mm', 'a4');
  2235 +
  2236 + // 添加图像到 PDF,第二个参数是图像格式,第三个参数是缩放比例
  2237 + const imgWidth = 190; // 图像的宽度(mm)
  2238 + const imgHeight = (canvas.height * imgWidth) / canvas.width; // 保持图像的宽高比
  2239 +
  2240 + pdf.addImage(imgData, 'PNG', 10, 10, imgWidth, imgHeight); // 10, 10 是图像在 PDF 中的位置(mm)
  2241 +
  2242 + // 保存 PDF 文件
  2243 + pdf.save('活动方案.pdf');
  2244 + },
  2245 + // 下载
  2246 + async lishidownloadPdf() {
  2247 + const content = this.$refs.lishiRef;
  2248 +
  2249 + // 使用 html2canvas 将 div 渲染为画布
  2250 + const canvas = await html2canvas(content);
  2251 +
  2252 + // 获取画布的图像数据
  2253 + const imgData = canvas.toDataURL('image/png');
  2254 +
  2255 + // 创建一个新的 PDF 文档
  2256 + const pdf = new jsPDF('p', 'mm', 'a4');
  2257 +
  2258 + // 添加图像到 PDF,第二个参数是图像格式,第三个参数是缩放比例
  2259 + const imgWidth = 190; // 图像的宽度(mm)
  2260 + const imgHeight = (canvas.height * imgWidth) / canvas.width; // 保持图像的宽高比
  2261 +
  2262 + pdf.addImage(imgData, 'PNG', 10, 10, imgWidth, imgHeight); // 10, 10 是图像在 PDF 中的位置(mm)
  2263 +
  2264 + // 保存 PDF 文件
  2265 + pdf.save('历史方案.pdf');
  2266 + },
  2267 +setSearch(){
  2268 +this.searchShow = true
  2269 +},
  2270 +lichange(e){
  2271 +this.lishiList=e
  2272 + let msg =this.liData[e]
  2273 +this.duibiList = JSON.parse(msg.modifyContent)
  2274 +this.lixiang = JSON.parse(msg.originalData)
  2275 +
  2276 +},
  2277 +tiaozheng(){
  2278 + this.tiaozhengShow = true
  2279 +},
  2280 +jiucuo(){
  2281 + this.jiuMsg = ''
  2282 + this.jiucuoShow =true
  2283 +},
  2284 +jiuCheck(){
  2285 + xiangedit({id:this.editId,isErrorCorrection:this.jiuMsg}).then(res=>{
  2286 + this.jiucuoShow = false
  2287 + })
  2288 +},
  2289 + }
  2290 + }
  2291 +</script>
  2292 +
  2293 +<style scoped>
  2294 + .custom-tree-node {
  2295 + flex: 1;
  2296 + display: flex;
  2297 + align-items: center;
  2298 + justify-content: space-between;
  2299 + font-size: 14px;
  2300 + padding-right: 8px;
  2301 + }
  2302 + /deep/ .first-column-bg {
  2303 + background-color: #f4f4f5 !important;
  2304 + }
  2305 +
  2306 + .zhuti {
  2307 + padding: 0 20px 20px 20px;
  2308 + min-height: calc(100vh - 50px - 20px);
  2309 + background-color: #Fff;
  2310 +
  2311 + }
  2312 +::v-deep .el-form-item{
  2313 + margin-bottom:16px;
  2314 +}
  2315 + /deep/ .el-form-item__content {
  2316 + line-height: 0;
  2317 + }
  2318 +
  2319 + .tableBtn {
  2320 + display: inline-block;
  2321 + margin-right: 10px;
  2322 + }
  2323 +
  2324 + .formSearch {
  2325 + display: flex;
  2326 + width: 100%;
  2327 + font-size: 14px;
  2328 + justify-content: space-between;
  2329 + padding-bottom: 10px;
  2330 + align-items: center;
  2331 + }
  2332 +
  2333 + .greens {
  2334 + color: #3F9B6A;
  2335 + }
  2336 +
  2337 + /deep/ .el-table__row {
  2338 + font-size: 14px;
  2339 + color:#000000e6;
  2340 + height:42px;
  2341 + }
  2342 +
  2343 + .fenye {
  2344 + margin-top: 20px;
  2345 + display: flex;
  2346 + justify-content: space-between;
  2347 + position: relative;
  2348 + }
  2349 +
  2350 + /deep/ .el-pagination.is-background .el-pager li:not(.disabled).active {
  2351 + background-color: #3F9B6A;
  2352 + }
  2353 +
  2354 + .el-row {
  2355 + margin-bottom: 20px;
  2356 + }
  2357 +
  2358 + :last-child {
  2359 + margin-bottom: 0;
  2360 + }
  2361 +
  2362 + .el-col {
  2363 + border-radius: 4px;
  2364 + }
  2365 +
  2366 + .bg-purple-dark {
  2367 + background: #99a9bf;
  2368 + }
  2369 +
  2370 + .bg-purple {
  2371 + /* background: #d3dce6; */
  2372 + }
  2373 +
  2374 + .bg-purple-light {
  2375 + background: #e5e9f2;
  2376 + }
  2377 +
  2378 + .grid-content {
  2379 + border-radius: 4px;
  2380 + min-height: 36px;
  2381 + }
  2382 +
  2383 + .row-bg {
  2384 + padding: 10px 0;
  2385 + background-color: #f9fafc;
  2386 + }
  2387 +
  2388 + /deep/ .bg-purple[data-v-0e3fe4ec] {
  2389 + background: #fff;
  2390 + height: 50px;
  2391 + }
  2392 +
  2393 + /deep/ .el-form--label-top .el-form-item__label {
  2394 + padding: 0;
  2395 + }
  2396 +
  2397 +
  2398 + .pagination {
  2399 + text-align: right;
  2400 + line-height: 20px;
  2401 + }
  2402 +
  2403 + /deep/ .el-pagination__total {
  2404 + margin-top: 4px;
  2405 + }
  2406 +
  2407 +::v-deep .xiang_css{
  2408 + margin-top:11vh !important;
  2409 + margin-left: 13%;
  2410 + max-height:600px;
  2411 + overflow-y: auto;
  2412 +}
  2413 + /deep/ .dialog_css {
  2414 + margin-top: 11vh;
  2415 + margin-left: 25%;
  2416 + padding: 0px;
  2417 +
  2418 + .el-dialog__title {
  2419 + font-size: 14px;
  2420 + color: #000000e6;
  2421 + }
  2422 + }
  2423 +
  2424 + /deep/.el-dialog__body {
  2425 + padding: 0px;
  2426 + }
  2427 +
  2428 + /deep/ .el-dialog__header {
  2429 + background-color: #fff;
  2430 + }
  2431 +
  2432 + /deep/.el-dialog__title {
  2433 + font-size: 14px;
  2434 + color: #000000e6;
  2435 + }
  2436 +
  2437 + .el-row {
  2438 + margin-bottom: 20px;
  2439 +
  2440 + &:last-child {
  2441 + margin-bottom: 0;
  2442 + }
  2443 + }
  2444 +
  2445 + /deep/ .avatar-uploader .el-upload {
  2446 + border: 1px dashed #d9d9d9;
  2447 + border-radius: 6px;
  2448 + cursor: pointer;
  2449 + position: relative;
  2450 + overflow: hidden;
  2451 + }
  2452 +
  2453 + .avatar-uploader .el-upload:hover {
  2454 + border-color: #409EFF;
  2455 + }
  2456 +
  2457 + .avatar-uploader-icon {
  2458 + font-size: 28px;
  2459 + color: #8c939d;
  2460 + width: 108px;
  2461 + height: 108px;
  2462 + line-height: 108px;
  2463 + /*text-align: center;*/
  2464 + }
  2465 +
  2466 + .avatar {
  2467 + width: 108px;
  2468 + height: 108px;
  2469 + display: block;
  2470 + }
  2471 +
  2472 + ::v-deep .el-tabs__item.is-active {
  2473 + color: #3F9B6A;
  2474 + opacity: 1;
  2475 + }
  2476 +
  2477 + /deep/ .el-tabs__nav-wrap::after {
  2478 + background-color: #fff;
  2479 + }
  2480 +
  2481 + ::v-deep .el-tabs__item:hover {
  2482 + color: #3F9B6A;
  2483 + cursor: pointer;
  2484 + opacity: 1;
  2485 + }
  2486 +
  2487 + /deep/ .el-tabs__active-bar {
  2488 + background-color: #389865;
  2489 + }
  2490 +
  2491 + /deep/ .el-table_2_column_13 {
  2492 + font-weight: 100;
  2493 + }
  2494 +::v-deep .el-input__inner{
  2495 + height:32px;
  2496 + line-height:32px;
  2497 +}
  2498 + ::v-deep .el-input__inner:focus {
  2499 + border: #3F9B6A 1px solid;
  2500 + }
  2501 +
  2502 + ::v-deep .el-input__inner:hover {
  2503 + border: #3F9B6A 1px solid;
  2504 + }
  2505 +
  2506 + ::v-deep .el-select .el-input.is-focus .el-input__inner {
  2507 + border-color: #3F9B6A
  2508 + }
  2509 +
  2510 + ::v-deep .el-form-item__label {
  2511 + font-weight: 100;
  2512 + font-size: 14px;
  2513 + color:#000000e6;
  2514 + }
  2515 +
  2516 + /* ::v-deep .el-steps .el-step__head.is-wait {
  2517 + background-color: red; /* 修改为你想要的颜色 */
  2518 +
  2519 + /* 修改未进行步骤的描述文字颜色 */
  2520 + ::v-deep .el-steps .el-step__description.is-wait {
  2521 + color: #999;
  2522 + /* 修改为你想要的颜色 */
  2523 + }
  2524 +
  2525 + /* 修改未进行步骤的图标颜色 */
  2526 + ::v-deep .el-steps .el-step__icon.is-text.is-wait {
  2527 + color: #999;
  2528 + /* 修改为你想要的颜色 */
  2529 + }
  2530 +
  2531 + /* 修改未进行步骤的边框色 */
  2532 + ::v-deep .el-steps .el-step__line.is-wait {
  2533 + border-color: #eee;
  2534 + /* 修改为你想要的颜色 */
  2535 + }
  2536 +
  2537 + ::v-deep .el-steps .is-process .el-step__line {
  2538 + background-color: #3F9B6A;
  2539 + /* 修改线的颜色 */
  2540 + }
  2541 +
  2542 + ::v-deep .el-steps .is-process .el-step__title {
  2543 + color: #fe7b6a;
  2544 + /* 修改进行中步骤的标题颜色 */
  2545 + }
  2546 +
  2547 + ::v-deep .el-steps .is-process .el-step__icon {
  2548 + color: #fff;
  2549 + /* 修改进行中步骤的图标颜色 */
  2550 + background: #3F9B6A;
  2551 + /* 修改进行中步骤图标的边框颜色 */
  2552 + border: 0px;
  2553 + }
  2554 +
  2555 + ::v-deep .el-step__icon-inner {
  2556 + line-height: 0
  2557 + }
  2558 +
  2559 + /* 线条长度 */
  2560 + ::v-deep .el-step.is-vertical .el-step__line {
  2561 + top: 30px;
  2562 + height: 60px;
  2563 + }
  2564 +
  2565 + .fenlan {
  2566 + display: flex;
  2567 + }
  2568 +
  2569 + .souLei {
  2570 + border: 1px solid #d7d7d7;
  2571 + background-color: #fff;
  2572 + width:300px;
  2573 + margin-right:20px;
  2574 +
  2575 + }
  2576 +::v-deep .el-menu{
  2577 + border-right:0px;
  2578 +}
  2579 +::v-deep .el-menu-item{
  2580 + height:36px;
  2581 + line-height: 33px;
  2582 +}
  2583 +
  2584 +::v-deep .el-submenu__title{
  2585 + height:36px;
  2586 + line-height: 33px;
  2587 + font-weight:600;
  2588 + border-radius:4px;
  2589 + margin:4px 0;
  2590 +}
  2591 +::v-deep .el-menu-item-group__title{
  2592 + padding:0px
  2593 +}
  2594 + ::v-deep .fudan{
  2595 + font-weight:600;
  2596 + border-radius:4px;
  2597 + padding-left:29px !important;
  2598 + margin:4px 0;
  2599 + }
  2600 + ::v-deep .chinddan{
  2601 + margin:5px 0;
  2602 + }
  2603 +</style>
  2604 +<style lang="scss" scoped>
  2605 + ::v-deep .el-table tr:hover{
  2606 + background-color: #F0F7F3 !important;
  2607 + }
  2608 + ::v-deep .souTabs {
  2609 + padding:0 15px 0 12px;
  2610 + .el-submenu{
  2611 + padding:0px;
  2612 + }
  2613 + .el-menu-item:focus, .el-menu-item:hover{
  2614 + background-color: #3F9B6A !important;
  2615 + }
  2616 + .el-menu-item:hover{
  2617 + background-color:#3f9b6a1a !important;
  2618 + color:#000 !important;
  2619 + }
  2620 + .el-tabs--left .el-tabs__header.is-left {
  2621 + width: 100%;
  2622 + margin-right: 0px;
  2623 + }
  2624 +
  2625 + .el-tabs--left .el-tabs__item.is-left {
  2626 + text-align: center;
  2627 + }
  2628 +
  2629 + .el-tabs__item.is-active {
  2630 + background-color: #DEEBE2;
  2631 + }
  2632 + }
  2633 +
  2634 + ::v-deep .tableList {
  2635 + width: 100%;
  2636 + }
  2637 + ::v-deep .fenxi_css{
  2638 + margin-top: 9vh !important;
  2639 + margin-left: 10%;
  2640 + .el-dialog__header{
  2641 + padding:0;
  2642 + }
  2643 + .el-tabs--border-card {
  2644 + border: none;
  2645 + -webkit-box-shadow:none;
  2646 + box-shadow:none;
  2647 + .el-tabs__content{
  2648 + border: 1px solid #E4E7ED;
  2649 + padding:0;
  2650 + }
  2651 + .el-tabs__header{
  2652 + background-color: #fff;
  2653 + border-bottom:none;
  2654 + }
  2655 + .el-tabs__content{
  2656 + border: none;
  2657 + }
  2658 + .el-tabs__header .el-tabs__item{
  2659 + border: none;
  2660 + margin-right: 10px;
  2661 + background-color: #F2F2F2;
  2662 + font-size:12px;
  2663 + border-top-left-radius: 8px;
  2664 + border-top-right-radius: 8px;
  2665 + padding:0 15px;
  2666 + }
  2667 + .el-tabs__header .el-tabs__item.is-active{
  2668 + color:#fff;
  2669 + background-color: #3F9B6A;
  2670 + }
  2671 + .el-tabs__header .el-tabs__item:not(.is-disabled):hover{
  2672 + color:#3F9B6A;
  2673 + }
  2674 + }
  2675 +
  2676 + }
  2677 + ::v-deep .xiaoguo_css{
  2678 + margin-top: 30vh !important;
  2679 + margin-left: 25%;
  2680 + .el-dialog__header{
  2681 + padding:0;
  2682 + }
  2683 + .el-tabs--border-card {
  2684 + border: none;
  2685 + -webkit-box-shadow:none;
  2686 + box-shadow:none;
  2687 + .el-tabs__content{
  2688 + border: 1px solid #E4E7ED;
  2689 + padding:0;
  2690 + }
  2691 + .el-tabs__header{
  2692 + background-color: #fff;
  2693 + border-bottom:none;
  2694 + }
  2695 + .el-tabs__content{
  2696 + border: none;
  2697 + }
  2698 + .el-tabs__header .el-tabs__item{
  2699 + border: none;
  2700 + margin-right: 10px;
  2701 + background-color: #F2F2F2;
  2702 + font-size:12px;
  2703 + border-top-left-radius: 8px;
  2704 + border-top-right-radius: 8px;
  2705 + padding:0 15px;
  2706 + }
  2707 + .el-tabs__header .el-tabs__item.is-active{
  2708 + color:#fff;
  2709 + background-color: #3F9B6A;
  2710 + }
  2711 + .el-tabs__header .el-tabs__item:not(.is-disabled):hover{
  2712 + color:#3F9B6A;
  2713 + }
  2714 + }
  2715 + }
  2716 + ::v-deep .demo-input-suffix {
  2717 + display: flex;
  2718 + margin-right: 20px;
  2719 + width: 83%;
  2720 +
  2721 + .el-input__inner{
  2722 + height:32px;
  2723 + }
  2724 + }
  2725 + ::v-deep .el-input__icon{
  2726 + line-height:25px;
  2727 + }
  2728 + ::v-deep .el-input--mini .el-input__icon{
  2729 + line-height:33px;
  2730 + }
  2731 +
  2732 + ::v-deep .buttonHover:hover{
  2733 + color:#3f9b6a !important;
  2734 + border-color: #c5e1d2 !important;
  2735 + background-color: #ecf5f0 !important;
  2736 + outline: none;
  2737 + }
  2738 + ::v-deep .DelBtnHover:hover{
  2739 + color:#fff !important;
  2740 + border-color: rgb(226, 78, 90) !important;
  2741 + background-color: rgb(226, 78, 90) !important;
  2742 + outline: none;
  2743 + }
  2744 +::v-deep .el-menu-item.is-active {
  2745 + background-color: #3F9B6A !important;
  2746 +}
  2747 +::v-deep .jindutiao{
  2748 + display:flex;
  2749 + align-items:center;
  2750 + margin-bottom:15px;
  2751 + .el-progress-bar__outer{
  2752 + border-radius:0px;
  2753 + }
  2754 + .el-progress-bar__inner{
  2755 + border-radius:0px;
  2756 + }
  2757 +}
  2758 +
  2759 +</style>
... ...
yanshouban/src/views/activity/activitySp.vue
... ... @@ -59,7 +59,7 @@
59 59 </el-table-column>
60 60 <el-table-column label="创建时间" prop="createDate" min-width="250" >
61 61 </el-table-column>
62   - <el-table-column prop="createUser" label="上传人员" min-width="80">
  62 + <el-table-column prop="auditReminderTime" label="审核提醒时间" width="200">
63 63  
64 64 </el-table-column>
65 65 <el-table-column label="操作" min-width="200">
... ...
yanshouban/src/views/activity/index.vue
... ... @@ -86,9 +86,9 @@
86 86 </el-table-column>
87 87 <el-table-column label="类型" prop="planType" width="80">
88 88 </el-table-column>
89   - <el-table-column label="发布状态" width="80" >
  89 + <!-- <el-table-column label="发布状态" width="80" >
90 90  
91   - </el-table-column>
  91 + </el-table-column> -->
92 92 <el-table-column label="审批状态" width="150">
93 93 <template slot-scope="scope">
94 94 {{scope.row.state == ''?'待提交':scope.row.state == '1'?'待审批':scope.row.state == '2'?'部门领导审批':scope.row.state == '3'?'公司领导审批':scope.row.state == '4'?'其他审批':scope.row.state == '5'?'审核通过':'已驳回'}}
... ... @@ -96,7 +96,7 @@
96 96 </el-table-column>
97 97 <el-table-column label="创建时间" prop="createDate"width="250" >
98 98 </el-table-column>
99   - <el-table-column prop="createUser" label="上传人员" width="80">
  99 + <el-table-column prop="auditReminderTime" label="审核提醒时间" width="200">
100 100  
101 101 </el-table-column>
102 102 <el-table-column label="操作" width="350">
... ... @@ -104,7 +104,10 @@
104 104 <div @click="actBian(scope.row)" class="tableBtn greens" v-if="scope.row.state == ''">修改</div>
105 105 <!-- <div class="tableBtn greens">发布</div> -->
106 106 <div class="tableBtn greens" @click="handleEditForm(scope.row)">执行情况</div>
107   - <div @click="OAshen(scope.row)" class="tableBtn greens" v-if="scope.row.state == ''">上传到OA</div>
  107 + <div @click="OAshen(scope.row)" class="tableBtn greens" v-if="scope.row.state == ''">提交审核</div>
  108 + <div class="tableBtn greens" v-if="scope.row.state ==''" @click="peizhi(scope.row)">
  109 + 审批流程选择
  110 + </div>
108 111 <div class="tableBtn greens" @click="xiaoguo(scope.row)" v-if="scope.row.state == '5'" >效果评估</div>
109 112 <!-- <div class="tableBtn greens">策略调整</div> -->
110 113 <div class="tableBtn greens" @click="koop(scope.row)">复制</div>
... ... @@ -838,25 +841,7 @@
838 841 </div>
839 842 </div>
840 843 <div style="padding:55px 10px 10px 10px;background-color:#fff; position:relative">
841   - <div style="position: absolute;top: 52px;right: 5px; z-index: 10;">
842   - <el-radio-group v-model="radio1" style="margin-right:10px">
843   - <el-radio-button label="本周"></el-radio-button>
844   - <el-radio-button label="本月"></el-radio-button>
845   - <el-radio-button label="今年 "></el-radio-button>
846   - <el-radio-button label="自定义"></el-radio-button>
847   - </el-radio-group>
848   - <el-date-picker
849   - v-if="radio1=='自定义'"
850   -
851   - style="width:250px"
852   - v-model="radio1_time"
853   - type="datetimerange"
854   - range-separator="至"
855   - start-placeholder="开始日期"
856   - end-placeholder="结束日期">
857   - </el-date-picker>
858   - </div>
859   - <el-tabs type="border-card" @tab-click="xiaoguoTab">
  844 + <el-tabs type="border-card" >
860 845 <el-tab-pane label="整体效果分析">
861 846 <el-table :data="dataList"
862 847 :header-cell-style="{fontSize: '12px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
... ... @@ -893,78 +878,8 @@
893 878 </el-table-column>
894 879 </el-table>
895 880 </el-tab-pane>
896   - <el-tab-pane label="纵向分析">
897   -<el-table :data="dataList"
898   - :header-cell-style="{fontSize: '12px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
899   - style="width: 100%">
900   - <el-table-column label="主题" width="auto" min-width="12%" align="center">
901   - <template slot-scope="scope">
902   - {{scope.$index + 1}}
903   - </template>
904   - </el-table-column>
905   - <el-table-column label="环比比较" width="auto" min-width="15%" align="center">
906   - <template slot-scope="scope">
907   - {{scope.$index + 1}}
908   - </template>
909   - </el-table-column>
910   - <el-table-column label="增长量" width="auto" min-width="15%" align="center">
911   - <template slot-scope="scope">
912   - {{scope.$index + 1}}
913   - </template>
914   - </el-table-column>
915   - <el-table-column label="增长率" prop="name" width="auto" min-width="15%">
916   - <template slot-scope="scope">
917   - {{scope.row.name}}
918   - </template>
919   - </el-table-column>
920   - <el-table-column label="投入总金额" prop="name" width="auto" min-width="15%">
921   - <template slot-scope="scope">
922   - {{scope.row.name}}
923   - </template>
924   - </el-table-column>
925   - <el-table-column label="投入产出比" prop="name" width="auto" min-width="15%">
926   - <template slot-scope="scope">
927   - {{scope.row.name}}
928   - </template>
929   - </el-table-column>
930   - </el-table>
931   - </el-tab-pane>
932   - <el-tab-pane label="横向分析">
933   -<el-table :data="dataList"
934   - :header-cell-style="{fontSize: '12px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
935   - style="width: 100%">
936   - <el-table-column label="主题" width="auto" min-width="12%" align="center">
937   - <template slot-scope="scope">
938   - {{scope.$index + 1}}
939   - </template>
940   - </el-table-column>
941   - <el-table-column label="环比比较" width="auto" min-width="15%" align="center">
942   - <template slot-scope="scope">
943   - {{scope.$index + 1}}
944   - </template>
945   - </el-table-column>
946   - <el-table-column label="增长量" width="auto" min-width="15%" align="center">
947   - <template slot-scope="scope">
948   - {{scope.$index + 1}}
949   - </template>
950   - </el-table-column>
951   - <el-table-column label="增长率" prop="name" width="auto" min-width="15%">
952   - <template slot-scope="scope">
953   - {{scope.row.name}}
954   - </template>
955   - </el-table-column>
956   - <el-table-column label="投入总金额" prop="name" width="auto" min-width="15%">
957   - <template slot-scope="scope">
958   - {{scope.row.name}}
959   - </template>
960   - </el-table-column>
961   - <el-table-column label="投入产出比" prop="name" width="auto" min-width="15%">
962   - <template slot-scope="scope">
963   - {{scope.row.name}}
964   - </template>
965   - </el-table-column>
966   - </el-table>
967   - </el-tab-pane>
  881 +
  882 +
968 883 </el-tabs>
969 884 </div>
970 885  
... ... @@ -1067,6 +982,28 @@
1067 982 </div>
1068 983  
1069 984 </el-dialog>
  985 + <el-dialog :visible.sync="peiShow" custom-class='bian_css' style="padding: 0;" width="45%"
  986 + :close-on-press-escape="false" center :close-on-click-modal="false" class="dialog_css_Xq" :show-close="false">
  987 + <div style="padding:20px;">
  988 + <div style="font-size: 14px;padding-bottom: 20px;color: #000;">审核流程配置</div>
  989 + <el-form label-position="right" ref="jibenFrom" :model="peiForm" label-width="140px"
  990 + style="position: relative">
  991 + <el-form-item label="审核提醒时间" class="grid-content bg-purple device-from" prop="planName">
  992 + <el-date-picker style="width:240px;margin-right:5px" v-model="peiForm.auditReminderTime"
  993 + value-format="yyyy-MM-dd HH:mm:ss" type="datetime" prefix-icon="none" >
  994 + </el-date-picker>
  995 + </el-form-item>
  996 + </el-form>
  997 + <div style="padding-top:20px;display:flex;justify-content: flex-end;">
  998 + <el-button style="background-color: #3F9B6A;color: #fff"
  999 + @click="peiCheck">确定</el-button>
  1000 + <el-button @click="peiShow = false" style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;" class="buttonHover">取消</el-button>
  1001 +
  1002 + </div>
  1003 +
  1004 + </div>
  1005 +
  1006 + </el-dialog>
1070 1007 <addAct :showAdd="addAct" @childClose='childClose' :fenleiName="cascaderList"></addAct>
1071 1008 <actbians :showBian="actbianMsg" @BianchildClose='BianchildClose'></actbians>
1072 1009 </div>
... ... @@ -1279,8 +1216,7 @@
1279 1216 xiaoguoBox:false,
1280 1217 chart: null, //饼图
1281 1218 chart1: null, //漏斗图
1282   - radio1:'',
1283   - radio1_time:'',
  1219 +
1284 1220 dataList:[],
1285 1221 xinlei:false,//分类管理框
1286 1222 fenleiDelId:null,//删除的分类ID
... ... @@ -1303,9 +1239,14 @@
1303 1239 duibiOne:{},
1304 1240 duibiTwo:{},
1305 1241 caoList:[],
1306   - caogaoshow:false
1307   - }
1308   - },
  1242 + caogaoshow:false,
  1243 + peiForm:{
  1244 + auditReminderTime:''
  1245 + },
  1246 + peiShow:false,
  1247 + peiId:'',
  1248 + }
  1249 + },
1309 1250 created() {
1310 1251 this.getAll()
1311 1252  
... ... @@ -1844,9 +1785,6 @@
1844 1785 }
1845 1786  
1846 1787 },
1847   - xiaoguoTab(tab, event){
1848   -
1849   - },
1850 1788 xiaoguo(item) {
1851 1789 effectEvaluation({id:item.id}).then(res=>{
1852 1790 this.fenxiData = res.data
... ... @@ -2193,6 +2131,24 @@
2193 2131 // 保存 PDF 文件
2194 2132 pdf.save('活动方案.pdf');
2195 2133 },
  2134 + peizhi(item){
  2135 + this.peiForm = {
  2136 + auditTime:''
  2137 + }
  2138 + this.peiShow = true
  2139 + this.peiId = item.id
  2140 + },
  2141 + async peiCheck(){
  2142 + if(this.peiForm.auditReminderTime ==''){
  2143 + this.$message({
  2144 + message: '请填写审核提醒时间',
  2145 + })
  2146 + return;
  2147 + }
  2148 + await xiangedit({id:this.peiId,auditReminderTime:this.peiForm.auditReminderTime})
  2149 + this.peiShow = false
  2150 + this.getAll()
  2151 + },
2196 2152 }
2197 2153 }
2198 2154 </script>
... ...
yanshouban/src/views/ads/fangAudit/bianform.vue
... ... @@ -66,6 +66,7 @@
66 66 </div>
67 67 </div>
68 68 <el-form-item label="附件信息" prop="mainPurpose" class="grid-content bg-purple">
  69 + <div style="padding:10px 0;line-height:20px;color:#3F9B6A" v-if="steat == false && ruleForm.attachmentInfo">{{ruleForm.attachmentInfo.name}}<a style="margin-left:20px;color:#3F9B6A" :href="ruleForm.attachmentInfo.url" target="_blank" v-if="ruleForm.attachmentInfo.name">下载</a></div>
69 70 <!-- <el-upload class="upload-demo" ref="upload" :on-preview="handlePreview" :on-remove="handleRemove"
70 71 :action="uploadFileUrl" :on-success="handleUploadSuccess" :file-list="fileData"
71 72 :show-file-list="false">
... ... @@ -73,7 +74,7 @@
73 74 上传附件
74 75 </div>
75 76 </el-upload> -->
76   - <div style="padding:10px 0;line-height:20px;color:#3F9B6A" v-if="showBian">{{ruleForm.attachmentInfo.name || ''}}</div>
  77 +
77 78 </el-form-item>
78 79 <el-form-item label="状态" prop="mainPurpose" class="grid-content bg-purple" v-if="steat">
79 80 <el-radio-group v-model="radio">
... ...
yanshouban/src/views/ads/fangAudit/index.vue
... ... @@ -48,106 +48,106 @@
48 48 "
49 49 :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}"
50 50 >
51   - <el-table-column
52   - label="序号"
53   - min-width="60"
54   - >
55   - <template slot-scope="scope">
56   - {{scope.$index+1}}
57   - </template>
58   - </el-table-column>
59   - <el-table-column
60   - label="招商方案名称"
61   - prop="planName"
62   - min-width="300"
63   - />
64   - <el-table-column
65   - label="规划方案名称"
66   -
67   - min-width="300"
68   - >
69   - <template slot-scope="scope">
70   - {{scope.row.cereInvestmentPlanningManagement.planningName}}
71   - </template>
72   - </el-table-column>
73   - <el-table-column
74   - label="计划实施时间"
75   -
76   - min-width="250"
77   - >
78   - <template slot-scope="scope">
79   - {{scope.row.cereInvestmentPlanningManagement.implementationStartTime}} - {{scope.row.cereInvestmentPlanningManagement.implementationEndTime}}
80   - </template>
81   - </el-table-column>
82   - <el-table-column
83   - label="涵盖资源数"
84   - min-width="120"
85   - >
86   - <template slot-scope="scope">
87   - {{ scope.row.cereResourceStrategy.length }}
88   - </template>
89   - </el-table-column>
90   - <el-table-column
91   - label="资源编号"
92   - prop="founder"
93   - min-width="200">
94   - <template slot-scope="scope">
95   - {{ scope.row.cereResourceStrategy.resourcesId }}
96   - </template>
97   - </el-table-column>
98   - <el-table-column
99   - label="资源类型"
100   - prop="contactInformation"
101   - min-width="150"
102   - >
103   - <template slot-scope="scope">
104   - {{ scope.row.cereResourceStrategy.id }}
105   - </template>
106   - </el-table-column>
107   - <el-table-column
108   - label="租金"
109   -
110   - min-width="150"
111   - >
112   - <template slot-scope="scope">
113   -
114   - </template>
115   - </el-table-column>
116   - <el-table-column
117   - label="免租期"
118   -
119   - min-width="150"
120   - >
121   - <template slot-scope="scope">
122   -
123   - </template>
124   - </el-table-column>
125   - <el-table-column
126   - label="付款方式"
127   -
128   - min-width="150"
129   - >
130   - <template slot-scope="scope">
131   -
132   - </template>
133   - </el-table-column>
134   - <el-table-column
135   - label="当前节点"
136   - min-width="150"
137   - >
138   - <template slot-scope="scope">
139   - {{scope.row.auditStatus =='1'?'待审核':scope.row.auditStatus =='2'?'审核通过':scope.row.auditStatus =='3'?'已驳回':''}}
  51 + <el-table-column
  52 + label="序号"
  53 + min-width="60"
  54 + >
  55 + <template slot-scope="scope">
  56 + {{scope.$index+1}}
  57 + </template>
  58 + </el-table-column>
  59 + <el-table-column
  60 + label="招商方案名称"
  61 + prop="planName"
  62 + min-width="300"
  63 + />
  64 + <el-table-column
  65 + label="规划方案名称"
  66 +
  67 + min-width="300"
  68 + >
  69 + <template slot-scope="scope">
  70 + {{scope.row.cereInvestmentPlanningManagement.planningName}}
  71 + </template>
  72 + </el-table-column>
  73 + <el-table-column
  74 + label="计划实施时间"
  75 +
  76 + min-width="250"
  77 + >
  78 + <template slot-scope="scope">
  79 + {{scope.row.cereInvestmentPlanningManagement.implementationStartTime}} - {{scope.row.cereInvestmentPlanningManagement.implementationEndTime}}
  80 + </template>
  81 + </el-table-column>
  82 + <el-table-column
  83 + label="涵盖资源数"
  84 + min-width="120"
  85 + >
  86 + <template slot-scope="scope">
  87 + {{ scope.row.cereResourceStrategy.length }}
  88 + </template>
  89 + </el-table-column>
  90 + <!-- <el-table-column
  91 + label="资源编号"
  92 + prop="founder"
  93 + min-width="200">
  94 + <template slot-scope="scope">
  95 + {{ scope.row.cereResourceStrategy.resourcesId }}
140 96 </template>
141   - </el-table-column>
142   - <!-- <el-table-column
143   - label="启用状态"
144   - prop="auditStatus"
145   - min-width="150"
146   - >
147   - <template slot-scope="scope">
148   - 未启用
149   - </template>
150   - </el-table-column> -->
  97 + </el-table-column>
  98 + <el-table-column
  99 + label="资源类型"
  100 + prop="contactInformation"
  101 + min-width="150"
  102 + >
  103 + <template slot-scope="scope">
  104 + {{ scope.row.cereResourceStrategy.id }}
  105 + </template>
  106 + </el-table-column>
  107 + <el-table-column
  108 + label="租金"
  109 +
  110 + min-width="150"
  111 + >
  112 + <template slot-scope="scope">
  113 +
  114 + </template>
  115 + </el-table-column>
  116 + <el-table-column
  117 + label="免租期"
  118 +
  119 + min-width="150"
  120 + >
  121 + <template slot-scope="scope">
  122 +
  123 + </template>
  124 + </el-table-column>
  125 + <el-table-column
  126 + label="付款方式"
  127 +
  128 + min-width="150"
  129 + >
  130 + <template slot-scope="scope">
  131 +
  132 + </template>
  133 + </el-table-column> -->
  134 + <el-table-column
  135 + label="当前节点"
  136 + min-width="150"
  137 + >
  138 + <template slot-scope="scope">
  139 + {{scope.row.auditStatus =='1'?'待审核':scope.row.auditStatus =='2'?'审核通过':scope.row.auditStatus =='3'?'已驳回':''}}
  140 + </template>
  141 + </el-table-column>
  142 + <el-table-column
  143 + label="启用状态"
  144 + prop="enableStatus"
  145 + min-width="150"
  146 + >
  147 + <template slot-scope="scope">
  148 + {{scope.row.enableStatus =='0'?'启用':'禁用'}}
  149 + </template>
  150 + </el-table-column>
151 151 <el-table-column label="操作" width="180" fixed="right">
152 152 <template slot-scope="scope">
153 153 <div class="tableBtn greens" @click="handleEditForm(scope.row,false)">
... ... @@ -306,7 +306,7 @@
306 306 </div>
307 307 <el-form-item label="附件信息" prop="mainPurpose" class="grid-content bg-purple">
308 308  
309   - <div style="padding:10px 0;line-height:20px;color:#3F9B6A" v-if="shenhe.attachmentInfo.name">{{shenhe.attachmentInfo.name}}</div>
  309 + <div style="padding:10px 0;line-height:20px;color:#3F9B6A" v-if="shenhe.attachmentInfo.name">{{shenhe.attachmentInfo.name}}<a style="margin-left:20px;color:#3F9B6A" :href="shenhe.attachmentInfo.url" target="_blank" v-if="shenhe.attachmentInfo.name">下载</a></div>
310 310 </el-form-item>
311 311  
312 312  
... ... @@ -557,6 +557,7 @@ export default {
557 557 pageindex: {
558 558 pageNumber: 1,
559 559 pageSize: 10,
  560 + auditStatus:'1'
560 561 },
561 562 chart: null,
562 563 chart1: null,
... ...
yanshouban/src/views/ads/fangli/addform.vue
... ... @@ -456,6 +456,11 @@ multipleSelection:[],
456 456 newAdd:{
457 457 resourcesId:'',//资源ID
458 458 rentalPoliciesId:'',//策略ID
  459 + },
  460 + fanganPage:{
  461 + reviewStatus:'2',
  462 + pageNumber: 1,
  463 + pageSize: 10,
459 464 }
460 465 }
461 466 },
... ... @@ -482,7 +487,8 @@ multipleSelection:[],
482 487 },
483 488 //查询数据
484 489 async getAll() {
485   - const res = await contractGetAll(this.pageindex)
  490 +
  491 + const res = await contractGetAll(this.fanganPage)
486 492 this.guihuaDate = res.data.content
487 493  
488 494 const celue = await ceGetAll(this.pageindex)
... ...
yanshouban/src/views/ads/fangli/bianform.vue
... ... @@ -297,12 +297,13 @@ guihuaDate:[],
297 297 message: '请输入方案名称',
298 298 trigger: 'blur'
299 299 }],
300   - planningScheme:[{
301   - required: true,
302   - message: '请选择规划方案',
303   - trigger: 'change'
304   - }],
305 300 },
  301 + fanganPage:{
  302 + reviewStatus:'2',
  303 + pageNumber: 1,
  304 + pageSize: 10,
  305 +
  306 + }
306 307 }
307 308 },
308 309 watch: {
... ... @@ -347,7 +348,7 @@ guihuaDate:[],
347 348 this.currentTime = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
348 349 },
349 350 async getAll() {
350   - const res = await contractGetAll(this.pageindex)
  351 + const res = await contractGetAll(this.fanganPage)
351 352 this.guihuaDate = res.data.content
352 353 const celue = await ceGetAll(this.pageindex)
353 354 this.celueData = celue.data.content
... ...
yanshouban/src/views/ads/fangli/index.vue
... ... @@ -151,7 +151,15 @@
151 151 <template slot-scope="scope">
152 152  
153 153 </template>
  154 +
154 155 </el-table-column> -->
  156 + <el-table-column
  157 + label="审核提醒时间"
  158 + prop="auditTime"
  159 + min-width="150"
  160 + >
  161 +
  162 + </el-table-column>
155 163 <el-table-column
156 164 label="当前节点"
157 165 min-width="150"
... ...
yanshouban/src/views/advertisement/index.vue
... ... @@ -43,10 +43,10 @@
43 43 </el-button>
44 44 </div>
45 45 </div>
46   - <div style="margin-bottom:20px;">
  46 + <!-- <div style="margin-bottom:20px;">
47 47 <el-button plain @click="addbuss(1)" style="background-color: #3F9B6A;color: #fff;padding:8px 15px;" icon="el-icon-circle-plus-outline">新增
48 48 </el-button>
49   - </div>
  49 + </div> -->
50 50 <!-- 表格 -->
51 51  
52 52 <el-table :data="tableData.slice((currentPage - 1) * pageSize, currentPage * pageSize)"
... ...
yanshouban/src/views/analysis/ranking/index.vue
... ... @@ -120,6 +120,11 @@ export default {
120 120 let res = await QuestionGetAll(this.pageIndex)
121 121 this.tableData = res.data.list
122 122 this.total = res.data.total
  123 + this.tableData.map(res=>{
  124 + res.dataIntegrity = this.$decrypt(res.dataIntegrity)
  125 + res.price = this.$decrypt(res.price)
  126 + res.ticketPrice = this.$decrypt(res.ticketPrice)
  127 + })
123 128 },
124 129 search(){
125 130 if(this.list.length !=0){
... ...
yanshouban/src/views/analysis/refund/index.vue
... ... @@ -165,12 +165,17 @@ export default {
165 165 let res = await getRefundData(this.pageIndex)
166 166 this.tableData = res.data.list
167 167 this.total = res.data.total
  168 + this.tableData.map(res=>{
  169 + res.dataIntegrity = this.$decrypt(res.dataIntegrity)
  170 + res.price = this.$decrypt(res.price)
  171 + res.ticketPrice = this.$decrypt(res.ticketPrice)
  172 + })
168 173 let numOne= 0
169 174 let moyeOne =0
170 175 this.tableData.map(item=>{
171 176 if(item.type == '1'){
172 177 numOne += item.num
173   - moyeOne += item.price
  178 + moyeOne +=Number(item.price)
174 179 }
175 180  
176 181  
... ... @@ -266,7 +271,11 @@ export default {
266 271 const res = await getRefundData(this.pageIndex);
267 272 this.tableData = res.data.list;
268 273 this.total = res.data.total;
269   -
  274 + this.tableData.map(res=>{
  275 + res.dataIntegrity = this.$decrypt(res.dataIntegrity)
  276 + res.price = this.$decrypt(res.price)
  277 + res.ticketPrice = this.$decrypt(res.ticketPrice)
  278 + })
270 279 } catch (error) {
271 280 console.error('Error fetching data:', error);
272 281 }
... ...
yanshouban/src/views/analysis/special/index.vue
... ... @@ -222,6 +222,11 @@ export default {
222 222 let res = await getCertificatePurchase(this.pageIndex)
223 223 this.tableData = res.data.list
224 224 this.total = res.data.total
  225 + this.tableData.map(res=>{
  226 + res.dataIntegrity = this.$decrypt(res.dataIntegrity)
  227 + res.price = this.$decrypt(res.price)
  228 + res.ticketPrice = this.$decrypt(res.ticketPrice)
  229 + })
225 230 let numOne= 0
226 231 let moyeOne =0
227 232 let numTwo = 0
... ... @@ -237,27 +242,27 @@ export default {
237 242 this.tableData.map(item=>{
238 243 if(item.type == '1'){
239 244 numOne += item.num
240   - moyeOne += item.price
  245 + moyeOne += Number(item.price)
241 246 }
242 247 if(item.type == '2'){
243 248 numTwo += item.num
244   - moyeTwo += item.price
  249 + moyeTwo += Number(item.price)
245 250 }
246 251 if(item.type == '3'){
247 252 numthree += item.num
248   - moyethree += item.price
  253 + moyethree += Number(item.price)
249 254 }
250 255 if(item.type == '4'){
251 256 numfour += item.num
252   - moyefour += item.price
  257 + moyefour += Number(item.price)
253 258 }
254 259 if(item.type == '5'){
255 260 numfive += item.num
256   - moyefive += item.price
  261 + moyefive += Number(item.price)
257 262 }
258 263 if(item.type == '6'){
259 264 numsix += item.num
260   - moyesix += item.price
  265 + moyesix += Number(item.price)
261 266 }
262 267 })
263 268 this.numOne = numOne
... ... @@ -361,6 +366,11 @@ export default {
361 366 this.tableData = res.data.list;
362 367 this.total = res.data.total;
363 368  
  369 + this.tableData.map(res=>{
  370 + res.dataIntegrity = this.$decrypt(res.dataIntegrity)
  371 + res.price = this.$decrypt(res.price)
  372 + res.ticketPrice = this.$decrypt(res.ticketPrice)
  373 + })
364 374 } catch (error) {
365 375 console.error('Error fetching data:', error);
366 376 }
... ...
yanshouban/src/views/analysis/statistics/index.vue
... ... @@ -156,6 +156,11 @@ export default {
156 156 let res = await QuestionGetAll(this.pageIndex)
157 157 this.tableData = res.data.list
158 158 this.total = res.data.total
  159 + this.tableData.map(res=>{
  160 + res.dataIntegrity = this.$decrypt(res.dataIntegrity)
  161 + res.price = this.$decrypt(res.price)
  162 + res.ticketPrice = this.$decrypt(res.ticketPrice)
  163 + })
159 164 let numOne =0
160 165 let moyeOne =0
161 166 let numTwo =0
... ... @@ -163,11 +168,11 @@ export default {
163 168 this.tableData.map(item=>{
164 169 if(item.ticketType == '演唱会票'){
165 170 numOne += item.num
166   - moyeOne += item.price
  171 + moyeOne = moyeOne + Number(item.price)
167 172 }
168 173 if(item.ticketType == '电影票'){
169 174 numTwo += item.num
170   - moyeTwo += item.price
  175 + moyeTwo = moyeTwo + Number(item.price)
171 176 }
172 177 })
173 178 this.numOne = numOne
... ... @@ -235,7 +240,7 @@ export default {
235 240 return;
236 241 }
237 242 if (['销售数量(张)', '客单价(元)', '销售金额(元)'].includes(column.label)) {
238   - const values = data.map(item => Number(item[column.property]));
  243 + const values = data.map(item => Number(item[column.property]))
239 244 if (!values.every(value => isNaN(value))) {
240 245 sums[index] = values.reduce((prev, curr) => {
241 246 const value = Number(curr);
... ...
yanshouban/src/views/atmosphere/atmosphereBz.vue
... ... @@ -100,6 +100,18 @@
100 100 </el-select>
101 101 </el-form-item>
102 102 </el-col>
  103 + <el-col :span="12">
  104 + <el-form-item label="历史活动方案" class="grid-content bg-purple device-from" >
  105 + <el-select v-model="lishiList" placeholder="请选择" style="width:100%" @change="lichange" >
  106 + <el-option
  107 + v-for="(item,index) in fenxiData"
  108 + :key="item.id"
  109 + :label="item.operationType"
  110 + :value="index">
  111 + </el-option>
  112 + </el-select>
  113 + </el-form-item>
  114 + </el-col>
103 115 </el-row>
104 116 <el-row :gutter="20">
105 117 <el-col :span="12">
... ... @@ -367,7 +379,8 @@
367 379 Mingdan,
368 380 MingEdit,
369 381 MingDel,
370   - fujiaAdd
  382 + fujiaAdd,
  383 + lishiDeta
371 384 } from '../../api/activityBz'
372 385 import wangEditor from "@/components/editor/index";
373 386 import upimg from "@/components/ImageUpload/index"
... ... @@ -450,9 +463,14 @@ uploadFileUrl: uploadUrl, // 请求地址
450 463 yugu:null,
451 464 fun:null
452 465 },
453   -
  466 +fenxiData:[],
  467 +lishiList:'',
454 468 }
455 469 },
  470 + mounted() {
  471 +
  472 + this.lishi()
  473 + },
456 474 methods: {
457 475 //获取当前时间
458 476 updateCurrentTime() {
... ... @@ -466,6 +484,22 @@ uploadFileUrl: uploadUrl, // 请求地址
466 484  
467 485 this.currentTime = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
468 486 },
  487 + lishi(){
  488 + lishiDeta({eventDetailsType:'2'}).then(res=>{
  489 + this.fenxiData = res.data
  490 + })
  491 + },
  492 + lichange(e){
  493 +
  494 + let msg =this.fenxiData[e]
  495 + let obj = JSON.parse(msg.originalData)
  496 +
  497 + for (let key in obj) {
  498 + if (this.ruleForm.hasOwnProperty(key)) {
  499 + this.ruleForm[key] = obj[key];
  500 + }
  501 + }
  502 + },
469 503 // 切换事件
470 504 beforeTabLeave(activeName, oldActiveName){
471 505  
... ...
yanshouban/src/views/atmosphere/atmosphereGl.vue
... ... @@ -94,7 +94,7 @@
94 94 </el-table-column>
95 95 <el-table-column label="创建时间" prop="createDate"width="250" >
96 96 </el-table-column>
97   - <el-table-column prop="createUser" label="上传人员" width="80">
  97 + <el-table-column prop="auditReminderTime" label="审核提醒时间" width="200">
98 98  
99 99 </el-table-column>
100 100 <el-table-column label="操作" width="350">
... ... @@ -102,7 +102,7 @@
102 102 <div class="tableBtn greens" @click="actBian(scope.row)" v-if="scope.row.state == ''">修改</div>
103 103 <!-- <div class="tableBtn greens">发布</div> -->
104 104 <div class="tableBtn greens" @click="handleEditForm(scope.row)">执行情况</div>
105   - <div @click="OAshen(scope.row)" class="tableBtn greens" v-if="scope.row.state == ''">上传到OA</div>
  105 + <div @click="OAshen(scope.row)" class="tableBtn greens" v-if="scope.row.state == ''">提交审核</div>
106 106 <div class="tableBtn greens" @click="xiaoguo(scope.row)" v-if="scope.row.state == '5'" >效果评估</div>
107 107 <!-- <div class="tableBtn greens">策略调整</div> -->
108 108 <div class="tableBtn greens" @click="koop(scope.row)">复制</div>
... ... @@ -729,25 +729,8 @@
729 729 </div>
730 730 </div>
731 731 <div style="padding:55px 10px 10px 10px;background-color:#fff; position:relative">
732   - <div style="position: absolute;top: 60px;right: 10px; z-index: 10;">
733   - <el-radio-group v-model="radio1" style="margin-right:10px">
734   - <el-radio-button label="本周"></el-radio-button>
735   - <el-radio-button label="本月"></el-radio-button>
736   - <el-radio-button label="今年 "></el-radio-button>
737   - <el-radio-button label="自定义"></el-radio-button>
738   - </el-radio-group>
739   - <el-date-picker
740   - v-if="radio1=='自定义'"
741   -
742   - style="width:250px"
743   - v-model="radio1_time"
744   - type="datetimerange"
745   - range-separator="至"
746   - start-placeholder="开始日期"
747   - end-placeholder="结束日期">
748   - </el-date-picker>
749   - </div>
750   - <el-tabs type="border-card" @tab-click="xiaoguoTab">
  732 +
  733 + <el-tabs type="border-card" >
751 734 <el-tab-pane label="整体效果分析">
752 735 <el-table :data="dataList"
753 736 :header-cell-style="{fontSize: '12px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
... ... @@ -784,78 +767,6 @@
784 767 </el-table-column>
785 768 </el-table>
786 769 </el-tab-pane>
787   - <el-tab-pane label="纵向分析">
788   - <el-table :data="dataList"
789   - :header-cell-style="{fontSize: '12px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
790   - style="width: 100%">
791   - <el-table-column label="主题" width="auto" min-width="12%" align="center">
792   - <template slot-scope="scope">
793   - {{scope.$index + 1}}
794   - </template>
795   - </el-table-column>
796   - <el-table-column label="环比比较" width="auto" min-width="15%" align="center">
797   - <template slot-scope="scope">
798   - {{scope.$index + 1}}
799   - </template>
800   - </el-table-column>
801   - <el-table-column label="增长量" width="auto" min-width="15%" align="center">
802   - <template slot-scope="scope">
803   - {{scope.$index + 1}}
804   - </template>
805   - </el-table-column>
806   - <el-table-column label="增长率" prop="name" width="auto" min-width="15%">
807   - <template slot-scope="scope">
808   - {{scope.row.name}}
809   - </template>
810   - </el-table-column>
811   - <el-table-column label="投入总金额" prop="name" width="auto" min-width="15%">
812   - <template slot-scope="scope">
813   - {{scope.row.name}}
814   - </template>
815   - </el-table-column>
816   - <el-table-column label="投入产出比" prop="name" width="auto" min-width="15%">
817   - <template slot-scope="scope">
818   - {{scope.row.name}}
819   - </template>
820   - </el-table-column>
821   - </el-table>
822   - </el-tab-pane>
823   - <el-tab-pane label="横向分析">
824   - <el-table :data="dataList"
825   - :header-cell-style="{fontSize: '12px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
826   - style="width: 100%">
827   - <el-table-column label="主题" width="auto" min-width="12%" align="center">
828   - <template slot-scope="scope">
829   - {{scope.$index + 1}}
830   - </template>
831   - </el-table-column>
832   - <el-table-column label="环比比较" width="auto" min-width="15%" align="center">
833   - <template slot-scope="scope">
834   - {{scope.$index + 1}}
835   - </template>
836   - </el-table-column>
837   - <el-table-column label="增长量" width="auto" min-width="15%" align="center">
838   - <template slot-scope="scope">
839   - {{scope.$index + 1}}
840   - </template>
841   - </el-table-column>
842   - <el-table-column label="增长率" prop="name" width="auto" min-width="15%">
843   - <template slot-scope="scope">
844   - {{scope.row.name}}
845   - </template>
846   - </el-table-column>
847   - <el-table-column label="投入总金额" prop="name" width="auto" min-width="15%">
848   - <template slot-scope="scope">
849   - {{scope.row.name}}
850   - </template>
851   - </el-table-column>
852   - <el-table-column label="投入产出比" prop="name" width="auto" min-width="15%">
853   - <template slot-scope="scope">
854   - {{scope.row.name}}
855   - </template>
856   - </el-table-column>
857   - </el-table>
858   - </el-tab-pane>
859 770 </el-tabs>
860 771 </div>
861 772  
... ... @@ -1132,6 +1043,28 @@
1132 1043 </div>
1133 1044  
1134 1045 </el-dialog>
  1046 + <el-dialog :visible.sync="peiShow" custom-class='bian_css' style="padding: 0;" width="45%"
  1047 + :close-on-press-escape="false" center :close-on-click-modal="false" class="dialog_css_Xq" :show-close="false">
  1048 + <div style="padding:20px;">
  1049 + <div style="font-size: 14px;padding-bottom: 20px;color: #000;">审核流程配置</div>
  1050 + <el-form label-position="right" ref="jibenFrom" :model="peiForm" label-width="140px"
  1051 + style="position: relative">
  1052 + <el-form-item label="审核提醒时间" class="grid-content bg-purple device-from" prop="planName">
  1053 + <el-date-picker style="width:240px;margin-right:5px" v-model="peiForm.auditReminderTime"
  1054 + value-format="yyyy-MM-dd HH:mm:ss" type="datetime" prefix-icon="none" >
  1055 + </el-date-picker>
  1056 + </el-form-item>
  1057 + </el-form>
  1058 + <div style="padding-top:20px;display:flex;justify-content: flex-end;">
  1059 + <el-button style="background-color: #3F9B6A;color: #fff"
  1060 + @click="peiCheck">确定</el-button>
  1061 + <el-button @click="peiShow = false" style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;" class="buttonHover">取消</el-button>
  1062 +
  1063 + </div>
  1064 +
  1065 + </div>
  1066 +
  1067 + </el-dialog>
1135 1068 <addAct :showAdd="addAct" @childClose='childClose' :fenleiName="cascaderList"></addAct>
1136 1069 <atmbians :showBian="atmbianMsg" @BianchildClose='BianchildClose' ></atmbians>
1137 1070 </div>
... ... @@ -1338,8 +1271,6 @@ components: { addAct,atmbians},
1338 1271 xiaoguoBox:false,
1339 1272 chart: null, //饼图
1340 1273 chart1: null, //漏斗图
1341   - radio1:'',
1342   - radio1_time:'',
1343 1274 dataList:[],
1344 1275 xinlei:false,//分类管理框
1345 1276 fenleiDelId:null,//删除的分类ID
... ... @@ -1367,7 +1298,13 @@ components: { addAct,atmbians},
1367 1298 daoData:[],
1368 1299 fileData:[],
1369 1300 caoList:[],
1370   - caogaoshow:false
  1301 + caogaoshow:false,
  1302 + peiForm:{
  1303 + auditReminderTime:''
  1304 + },
  1305 + peiShow:false,
  1306 + peiId:'',
  1307 +
1371 1308 }
1372 1309 },
1373 1310 created() {
... ... @@ -2220,6 +2157,24 @@ this.fileData=[]
2220 2157 // 保存 PDF 文件
2221 2158 pdf.save('氛围方案.pdf');
2222 2159 },
  2160 + peizhi(item){
  2161 + this.peiForm = {
  2162 + auditTime:''
  2163 + }
  2164 + this.peiShow = true
  2165 + this.peiId = item.id
  2166 + },
  2167 + async peiCheck(){
  2168 + if(this.peiForm.auditReminderTime ==''){
  2169 + this.$message({
  2170 + message: '请填写审核提醒时间',
  2171 + })
  2172 + return;
  2173 + }
  2174 + await xiangedit({id:this.peiId,auditReminderTime:this.peiForm.auditReminderTime})
  2175 + this.peiShow = false
  2176 + this.getAll()
  2177 + },
2223 2178 }
2224 2179 }
2225 2180 </script>
... ...
yanshouban/src/views/atmosphere/atmosphereHis.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 style="color:#000000e6">氛围策划调整</span></div>
  6 + </div>
  7 + <div>
  8 + <!-- 搜索 -->
  9 + <div class="formSearch">
  10 + <div class="demo-input-suffix">
  11 + <div v-if="searPei.name" style="display: flex;">
  12 + <div style="width: 68px;height:36px;line-height:36px;" >方案名称</div>
  13 + <el-input placeholder="请输入" v-model="formSear.planName" style="width:168px;">
  14 + </el-input>
  15 + </div>
  16 + <!-- <div v-if="searPei.lei" style="display: flex;">
  17 + <div style="width: 68px;height:36px;line-height:36px;">方案类型</div>
  18 + <el-input placeholder="请输入" v-model="planName" style="width:168px;">
  19 + </el-input>
  20 + </div> -->
  21 + <div v-if="searPei.staut" style="display: flex;">
  22 + <div style="width: 68px;height:36px;line-height:36px;">审批状态</div>
  23 + <el-select v-model="formSear.state" placeholder="请选择"
  24 + style="width: 100px;margin-right: 5px">
  25 + <el-option label="待审核" value="1" />
  26 + <el-option label="已通过" value="5" />
  27 + <el-option label="已驳回" value="6" />
  28 + </el-select>
  29 + </el-input>
  30 + </div>
  31 +
  32 +
  33 + </div>
  34 + <div >
  35 +
  36 + <el-button @click="onSubmit" style="background-color: #3F9B6A;color: #fff">查询
  37 + </el-button>
  38 + <el-button @click="resetting"
  39 + class="buttonHover"
  40 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;">重置
  41 + </el-button>
  42 + </div>
  43 + </div>
  44 + <div style="margin: 20px 0;">
  45 + <div style="display:flex;">
  46 + <el-button style="background-color: #3F9B6A;color: #fff;" @click="setSearch">搜索关键词设置</el-button>
  47 + <el-button style="background-color: #3F9B6A;color: #fff;" @click="duibi">效果对比</el-button>
  48 + <el-upload class="upload-demo" ref="upload"
  49 + :limit="1"
  50 + accept=".xlsx"
  51 + :action="uploadFileUrl"
  52 + :on-success="daoru"
  53 + :file-list="daoData"
  54 + :auto-upload="true"
  55 + :show-file-list="false">
  56 + <el-button style="background-color: #fff;color: #3F9B6A;border: 1px solid #dcdfe6;margin:0 15px;" class="buttonHover" >导入</el-button>
  57 + </el-upload>
  58 +
  59 + <el-button style="background-color: #3F9B6A;color: #fff;" @click="daochu">审核流程导出</el-button>
  60 + <!-- <el-button style="background-color: #fff;color: #000;border: 1px solid #B1B1B1;"
  61 + icon="el-icon-folder-add" class="buttonHover" @click="xinFenlei">氛围分类管理</el-button> -->
  62 + </div>
  63 +
  64 + </div>
  65 + <!-- 分栏 -->
  66 + <div class="fenlan">
  67 + <!-- 搜索分类 -->
  68 +
  69 + <div class="tableList">
  70 +
  71 + <!-- 表格 -->
  72 + <div>
  73 + <el-table :data="tableData.slice((currentPage - 1) * pageSize, currentPage * pageSize)"
  74 + @selection-change="handleSelectionChange" tooltip-effect="dark" align="left"
  75 + :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}"
  76 + ref="mulTable">
  77 + <el-table-column type="selection" width="80">
  78 + </el-table-column>
  79 + <el-table-column label="方案名称" width="300" prop="planName">
  80 + </el-table-column>
  81 + <el-table-column label="类型" prop="planType" width="80">
  82 + </el-table-column>
  83 + <!-- <el-table-column label="发布状态" width="80" >
  84 +
  85 + </el-table-column> -->
  86 + <el-table-column label="审批状态" width="150">
  87 + <template slot-scope="scope">
  88 + {{scope.row.state == ''?'待提交':scope.row.state == '1'?'待审批':scope.row.state == '2'?'部门领导审批':scope.row.state == '3'?'公司领导审批':scope.row.state == '4'?'其他审批':scope.row.state == '5'?'审核通过':'已驳回'}}
  89 + </template>
  90 + </el-table-column>
  91 + <el-table-column label="创建时间" prop="createDate"width="250" >
  92 + </el-table-column>
  93 + <el-table-column prop="auditReminderTime" label="审核提醒时间" width="200">
  94 +
  95 + </el-table-column>
  96 + <el-table-column label="操作" width="350">
  97 + <template slot-scope="scope">
  98 + <div @click="actBian(scope.row)" class="tableBtn greens" v-if="scope.row.state == ''">修改</div>
  99 + <!-- <div class="tableBtn greens">发布</div> -->
  100 + <div class="tableBtn greens" @click="handleEditForm(scope.row)">执行情况</div>
  101 + <!-- <div class="tableBtn greens" @click="handleEditForm(scope.row)">历史方案查看</div> -->
  102 +
  103 + <!-- <div class="tableBtn greens">策略调整</div> -->
  104 + <!-- <div class="tableBtn greens" @click="koop(scope.row)">复制</div> -->
  105 + </template>
  106 + </el-table-column>
  107 +</el-table>
  108 +<div class="fenye">
  109 + <div>
  110 + <el-button @click="tableAll" class="buttonHover" style="color: #000;border: 1px solid #DBDBDB;background-color: #fff;">选择全部
  111 + </el-button>
  112 + <el-button @click="toggleSelection(tableData)"
  113 + class="buttonHover"
  114 + style="color: #000;border: 1px solid #DBDBDB;background-color: #fff;">反向选择
  115 + </el-button>
  116 + </div>
  117 + <el-pagination class="pagination" :hide-on-single-page="flag" background small :current-page="currentPage"
  118 + :page-size="pageSize" layout="prev,pager,next" :total="total"
  119 + @current-change="handleCurrentChange" />
  120 +</div>
  121 +
  122 +</div>
  123 +</div>
  124 +</div>
  125 +
  126 +
  127 +
  128 +<!-- 详情氛围方案 -->
  129 +<el-dialog title="氛围方案详情" :visible.sync="ggXin" custom-class='xiang_css' style="padding: 0;" width="80%" center
  130 + :close-on-click-modal="false" :close-on-press-escape="false" @close="refreshData">
  131 + <div ref="actXiang">
  132 + <div style="width: 100%;">
  133 + <div style="display: flex;padding:0px 20px 20px 20px; ">
  134 + <div style="width: 150px;height: 80px;" v-if="secondData.coverPoster">
  135 + <img :src="secondData.coverPoster" alt="" style="width: 100%;height: 80px;" />
  136 + </div>
  137 + <div
  138 + style="display: flex;flex-direction: column;justify-content: space-around;padding: 0 10px;font-size: 12px;">
  139 + <span style="margin-bottom: 10px;">{{text}}</span>
  140 + <span>氛围时间:{{tableData1[1].eventTheme}}至{{tableData1[1].planName}}</span>
  141 + <span>氛围地点:{{tableData1[0].planName}}</span>
  142 + </div>
  143 + </div>
  144 + </div>
  145 + <div style="width: 100%;background-color: #fff;">
  146 + <el-tabs v-model="activeName" @tab-click="handleClick" style="padding-left:20px;">
  147 + <el-tab-pane label="方案概况" name="first"></el-tab-pane>
  148 + <el-tab-pane label="执行效果" name="second"></el-tab-pane>
  149 + <el-tab-pane label="历史方案" name="fourd"></el-tab-pane>
  150 + </el-tabs>
  151 + </div>
  152 + <div v-if="activeName=='first'" style="display: flex;">
  153 + <div style="width: 100%;">
  154 + <div style="width: 100%;">
  155 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">基本信息</div>
  156 + <div style="padding: 10px 20px;">
  157 + <el-table :data="tableData1"
  158 + :header-cell-style="{fontSize: '14px', backgroundColor: '#fff',color:'#000',fontWeight: 'normal'}"
  159 + style="width: 100%;margin: auto;">
  160 + <el-table-column class-name="first-column-bg" label="方案编号" prop="name" min-width="15%">
  161 + </el-table-column>
  162 + <el-table-column :label="id" prop="eventTheme" min-width="35%">
  163 +
  164 + </el-table-column>
  165 + <el-table-column class-name="first-column-bg" label="方案名称" prop="text" min-width="15%">
  166 +
  167 + </el-table-column>
  168 + <el-table-column :label="text" prop="planName" min-width="35%">
  169 +
  170 + </el-table-column>
  171 + </el-table>
  172 +
  173 +
  174 + </div>
  175 + </div>
  176 + <div style="width: 100%;">
  177 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">氛围明细信息</div>
  178 + <div style="padding: 10px 20px;">
  179 + <el-table :data="tableData2"
  180 + :header-cell-style="{fontSize: '14px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
  181 + style="width: 100%;margin: auto;">
  182 + <el-table-column label="序号" min-width="5%" align='center'>
  183 + <template slot-scope="scope">
  184 + <span style="">{{ scope.$index +1}}</span>
  185 + </template>
  186 + </el-table-column>
  187 + <el-table-column label="明细项名称" prop="detailLtemName" min-width="28%">
  188 + </el-table-column>
  189 + <el-table-column label="预估数量" prop="estimatedQuantity" min-width="20%">
  190 +
  191 + </el-table-column>
  192 + <el-table-column label="预估费用" prop="estimatedCost" min-width="20%">
  193 +
  194 + </el-table-column>
  195 + <el-table-column label="备注" prop="notes" min-width="20%">
  196 + </el-table-column>
  197 + </el-table>
  198 + </div>
  199 + </div>
  200 + <div style="width: 100%;">
  201 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">氛围成本信息</div>
  202 + <div style="padding:10px 20px;">
  203 + <el-table :data="tableData3"
  204 + :header-cell-style="{fontSize: '14px', backgroundColor: '#fff',color:'#000',fontWeight: 'normal'}"
  205 + style="width: 100%;margin: auto;">
  206 + <el-table-column class-name="first-column-bg" label="内部人力成本预估" prop="name" min-width="15%">
  207 + </el-table-column>
  208 + <el-table-column :label="internalLaborCostEstimation" prop="eventTheme" min-width="35%">
  209 +
  210 + </el-table-column>
  211 + <el-table-column class-name="first-column-bg" label="外部人力成本预估" prop="text" min-width="15%">
  212 +
  213 + </el-table-column>
  214 + <el-table-column :label="externalLaborCostEstimation" prop="planName" min-width="35%">
  215 +
  216 + </el-table-column>
  217 + </el-table>
  218 + </div>
  219 + </div>
  220 + <div style="width: 100%;">
  221 + <div style="font-size: 14px;padding:10px 20px 0px 20px;">预估效果</div>
  222 + <div style="padding:10px 20px;">
  223 + <el-table :data="tableData4"
  224 + :header-cell-style="{fontSize: '14px', backgroundColor: '#fff',color:'#000',fontWeight: 'normal'}"
  225 + style="width: 100%;margin: auto;">
  226 + <el-table-column class-name="first-column-bg" label="预计吸引流量" prop="name" min-width="15%">
  227 + </el-table-column>
  228 + <el-table-column :label="expectedAttractTraffic" prop="eventTheme" min-width="35%">
  229 +
  230 + </el-table-column>
  231 + <el-table-column class-name="first-column-bg" label="预计参与人数" prop="text" min-width="15%">
  232 +
  233 + </el-table-column>
  234 + <el-table-column :label="expectedParticipation" prop="planName" min-width="35%">
  235 +
  236 + </el-table-column>
  237 + </el-table>
  238 + </el-table-column>
  239 + </div>
  240 + </div>
  241 + <div style="width: 100%;">
  242 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">相关附件信息</div>
  243 + <div style="padding:10px 20px;">
  244 + <el-table :data="tableData6"
  245 + :header-cell-style="{fontSize: '14px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
  246 + style="width: 100%;margin: auto;">
  247 + <el-table-column label="序号" min-width="5%" align='center'>
  248 + <template slot-scope="scope">
  249 + <span style="">{{ scope.$index + 1 }}</span>
  250 + </template>
  251 + </el-table-column>
  252 + <el-table-column label="附件名称" prop="attachmentName" min-width="75%">
  253 + </el-table-column>
  254 + <el-table-column label="操作" min-width="20%">
  255 + <template slot-scope="scope">
  256 + <!-- <div class="tableBtn greens" @click="Down(scope.row)">下载</div> -->
  257 + <a class="tableBtn greens" :href="scope.row.attachmentUrl" target="_blank" download>下载</a>
  258 + </template>
  259 + </el-table-column>
  260 +
  261 + </el-table>
  262 + </div>
  263 + </div>
  264 + <div style="width: 100%;">
  265 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">系统信息</div>
  266 + <div style="padding:10px 20px;">
  267 + <el-table :data="tableData5"
  268 + :header-cell-style="{fontSize: '14px', backgroundColor: '#fff',color:'#000',fontWeight: 'normal'}"
  269 + style="width: 100%;margin: auto;">
  270 + <el-table-column class-name="first-column-bg" label="创建人" prop="name" min-width="15%">
  271 + </el-table-column>
  272 + <el-table-column :label="createUser" prop="eventTheme" min-width="35%">
  273 +
  274 + </el-table-column>
  275 + <el-table-column class-name="first-column-bg" label="创建时间" prop="text" min-width="15%">
  276 +
  277 + </el-table-column>
  278 + <el-table-column :label="createDate" prop="planName" min-width="35%">
  279 +
  280 + </el-table-column>
  281 + </el-table>
  282 + </div>
  283 + </div>
  284 + </div>
  285 + </div>
  286 + <div v-if="activeName=='second'">
  287 + <div style="padding: 20px">
  288 + <div style="border: solid 1px #E5E5E5;border-radius: 5px">
  289 + <div style="border-bottom: 1px solid #E5E5E5;padding: 1px">
  290 + <div style="padding: 10px 20px;background-color: #FAFAFA;font-size: 14px;">
  291 + 基本信息
  292 + </div>
  293 + </div>
  294 + <div style="padding: 20px 40px 20px 20px">
  295 + <el-form label-position="top" ref="ruleFormInfo" :model="zhixingList" label-width="120px"
  296 + style="position: relative">
  297 + <el-row :gutter="20">
  298 + <el-col :span="8">
  299 + <el-form-item label="氛围名称" class="grid-content bg-purple device-from" prop="name">
  300 + <el-input v-model="zhixingList.planName" placeholder="请输入" :disabled="!zhixingBian" />
  301 + </el-form-item>
  302 + </el-col>
  303 + <el-col :span="8">
  304 + <el-form-item label="实际举办地点" class="grid-content bg-purple" prop="name">
  305 + <el-input v-model="zhixingList.eventAddrs" placeholder="请输入" :disabled="!zhixingBian" />
  306 + </el-form-item>
  307 + </el-col>
  308 +
  309 + <el-col :span="8">
  310 + <el-form-item label="实际举办时间" class="grid-content bg-purple" prop="event_start_time"
  311 + style="position: relative">
  312 + <el-date-picker style="width: 100%;" v-model="zhixingList.planTime"
  313 + @input="formTime"
  314 + value-format="yyyy-MM-dd HH:mm:ss" :disabled="!zhixingBian" type="datetimerange"
  315 + range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" align="right"
  316 + >
  317 + </el-date-picker>
  318 + </el-form-item>
  319 + </el-col>
  320 + </el-row>
  321 +
  322 + <el-row :gutter="20">
  323 + <el-col :span="8">
  324 + <el-form-item label="氛围主办方" class="grid-content bg-purple" prop="name">
  325 + <el-input v-model="zhixingList.sponsor" placeholder="请输入" :disabled="!zhixingBian" />
  326 + </el-form-item>
  327 + </el-col>
  328 + <el-col :span="8">
  329 + <el-form-item label="氛围实际参与方" class="grid-content bg-purple" prop="name">
  330 + <el-input v-model="zhixingList.participants" placeholder="请输入" :disabled="!zhixingBian" />
  331 + </el-form-item>
  332 + </el-col>
  333 + </el-row>
  334 + </el-form>
  335 + </div>
  336 + </div>
  337 + </div>
  338 + <div style="padding: 0px 20px 20px 20px">
  339 + <div style="border: solid 1px #E5E5E5;border-radius: 5px">
  340 + <div style="border-bottom: 1px solid #E5E5E5;padding: 1px;display: flex">
  341 + <div style="padding: 10px 20px;background-color: #FAFAFA;font-size: 14px;">
  342 + 氛围明细信息
  343 + </div>
  344 + <div style="color: #2d8a58;margin-top: 10px;font-size: 14px;" @click="tianMing">
  345 + 添加明细
  346 + </div>
  347 + </div>
  348 + <!-- 表格-->
  349 + <div style="padding: 20px 20px 20px 20px">
  350 + <el-table :data="tableDa"
  351 + :header-cell-style="{fontSize: '14px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
  352 + style="width: 100%">
  353 + <el-table-column label="序号" width="auto" min-width="5%" prop="date" align="center">
  354 + <template slot-scope="scope">
  355 + {{scope.$index +1}}
  356 + </template>
  357 + </el-table-column>
  358 + <el-table-column label="明细项名称" prop="detailLtemName" width="auto" min-width="22%">
  359 +
  360 + </el-table-column>
  361 + <el-table-column label="预估数量" prop="estimatedQuantity" width="auto" min-width="15%">
  362 +
  363 + </el-table-column>
  364 + <el-table-column label="预估费用" prop="estimatedCost" width="auto" min-width="15%">
  365 + </el-table-column>
  366 + <el-table-column prop="notes" label="备注" width="auto" min-width="15%">
  367 + </el-table-column>
  368 + <el-table-column label="操作" width="auto" min-width="18%" v-if="zhixingBian">
  369 + <template slot-scope="scope">
  370 + <!-- <div class="tableBtn greens">详情</div> -->
  371 + <div class="tableBtn greens" @click="MingDelete(scope.$index,scope.row)">删除</div>
  372 + </template>
  373 + </el-table-column>
  374 + </el-table>
  375 +
  376 + </div>
  377 + </div>
  378 + </div>
  379 + <div style="padding: 20px">
  380 + <div style="border: solid 1px #E5E5E5;border-radius: 5px;padding-bottom: 20px;">
  381 + <div style="border-bottom: 1px solid #E5E5E5;padding: 1px">
  382 + <div style="padding: 10px 20px;background-color: #FAFAFA;font-size: 14px;">
  383 + 实际花费成本
  384 + </div>
  385 + </div>
  386 + <div style="padding: 20px 40px 0px 20px">
  387 + <el-form label-position="top" ref="ruleFormInfo" :model="zhixingList" label-width="120px"
  388 + style="position: relative">
  389 + <el-row :gutter="20">
  390 + <el-col :span="8">
  391 + <el-form-item label="内部人力成本预估" class="grid-content bg-purple device-from" prop="name">
  392 + <el-input v-model="zhixingList.internalLaborCostEstimation" placeholder="请输入"
  393 + :disabled="!zhixingBian" />
  394 + </el-form-item>
  395 + </el-col>
  396 + <el-col :span="8">
  397 + <el-form-item label="外部人力成本预估" class="grid-content bg-purple" prop="name">
  398 + <el-input v-model="zhixingList.externalLaborCostEstimation" placeholder="请输入"
  399 + :disabled="!zhixingBian" />
  400 + </el-form-item>
  401 + </el-col>
  402 +
  403 + <el-col :span="8">
  404 + <el-form-item label="商品成本预估" class="grid-content bg-purple" prop="name">
  405 + <el-input v-model="zhixingList.costEstimationGoods" placeholder="请输入" :disabled="!zhixingBian" />
  406 + </el-form-item>
  407 + </el-col>
  408 + </el-row>
  409 +
  410 + <el-row :gutter="20">
  411 + <el-col :span="8">
  412 + <el-form-item label="设备成本" class="grid-content bg-purple" prop="name">
  413 + <el-input v-model="zhixingList.setCostEstimate" placeholder="请输入" :disabled="!zhixingBian" />
  414 + </el-form-item>
  415 + </el-col>
  416 + <el-col :span="8">
  417 + <el-form-item label="宣传费用" class="grid-content bg-purple" prop="name">
  418 + <el-input v-model="zhixingList.estimatedPromotionalExpenses" placeholder="请输入"
  419 + :disabled="!zhixingBian" />
  420 + </el-form-item>
  421 + </el-col>
  422 + <el-col :span="8">
  423 + <el-form-item label="其他成本" class="grid-content bg-purple" prop="name">
  424 + <el-input v-model="zhixingList.otherNecessaryEstimates" placeholder="请输入"
  425 + :disabled="!zhixingBian" />
  426 + </el-form-item>
  427 + </el-col>
  428 + </el-row>
  429 +
  430 + <el-row :gutter="20">
  431 + <el-col :span="8">
  432 + <el-form-item label="总成本" prop="name" class="grid-content bg-purple">
  433 + <el-input v-model="zhixingList.totalCostEstimation" placeholder="请输入" :disabled="!zhixingBian" />
  434 + </el-form-item>
  435 + </el-col>
  436 + <el-col :span="16">
  437 + <el-form-item label="备注" prop="name" class="grid-content bg-purple">
  438 + <el-input v-model="zhixingList.notes" placeholder="请输入" :disabled="!zhixingBian" />
  439 + </el-form-item>
  440 + </el-col>
  441 + </el-row>
  442 + </el-form>
  443 + </div>
  444 + </div>
  445 + </div>
  446 +
  447 + <div style="padding: 20px">
  448 + <div style="border: solid 1px #E5E5E5;border-radius: 5px;padding-bottom: 20px;">
  449 + <div style="border-bottom: 1px solid #E5E5E5;padding: 1px">
  450 + <div style="padding: 10px 20px;background-color: #FAFAFA;font-size: 14px;">
  451 + 氛围执行效果
  452 + </div>
  453 + </div>
  454 + <div style="padding: 20px 40px 0px 20px">
  455 + <el-form label-position="top" ref="ruleFormInfo" :model="zhixingList" label-width="120px"
  456 + style="position: relative">
  457 + <el-row :gutter="20">
  458 + <el-col :span="8">
  459 + <el-form-item label="吸引流量" class="grid-content bg-purple device-from" prop="name">
  460 + <el-input v-model="zhixingList.expectedAttractTraffic" placeholder="请输入" :disabled="!zhixingBian" />
  461 + </el-form-item>
  462 + </el-col>
  463 + <el-col :span="8">
  464 + <el-form-item label="参与人数" class="grid-content bg-purple" prop="name">
  465 + <el-input v-model="zhixingList.expectedParticipation" placeholder="请输入" :disabled="!zhixingBian" />
  466 + </el-form-item>
  467 + </el-col>
  468 +
  469 + <el-col :span="8">
  470 + <el-form-item label="直接收益" class="grid-content bg-purple" prop="name">
  471 + <el-input v-model="zhixingList.expectedDirectBenefits" placeholder="请输入" :disabled="!zhixingBian" />
  472 + </el-form-item>
  473 + </el-col>
  474 + </el-row>
  475 + <el-row :gutter="20">
  476 + <el-col :span="8">
  477 + <el-form-item label="间接收益" class="grid-content bg-purple" prop="name">
  478 + <el-input v-model="zhixingList.expectedIndirectBenefits" placeholder="请输入"
  479 + :disabled="!zhixingBian" />
  480 + </el-form-item>
  481 + </el-col>
  482 +
  483 + </el-row>
  484 + <el-row :gutter="20">
  485 + <el-col :span="24">
  486 + <el-form-item label="反馈内容" class="grid-content bg-purple" prop="name">
  487 + <el-upload class="upload-demo" ref="upload" :on-remove="handleRemove"
  488 + :action="uploadFileUrl" :on-success="handleUploadSuccess" :file-list="fileData"
  489 + :show-file-list="true" v-if="zhixingBian">
  490 + <el-button style="background-color: #fff;color: #3F9B6A;border: 1px solid #dcdfe6;" class="buttonHover" v-if="fileData.length==0">+点击上传</el-button>
  491 + </el-upload>
  492 + <div v-else>{{zhixingList.feedbackContent}}</div>
  493 + </el-form-item>
  494 + </el-col>
  495 +
  496 + </el-row>
  497 + </el-form>
  498 + </div>
  499 + </div>
  500 + </div>
  501 +
  502 + </div>
  503 + <div v-if="activeName=='fourd'">
  504 + <div>
  505 + <el-select v-model="lishiList" placeholder="请选择" style="margin:0 20px 20px 20px;" @change="lichange">
  506 + <el-option
  507 + v-for="(item,index) in liData"
  508 + :key="item.id"
  509 + :label="item.operationType"
  510 + :value="index">
  511 + </el-option>
  512 + </el-select>
  513 + <el-button @click="tiaozheng" style="background-color: #3F9B6A;color: #fff" v-if="lishiList!=null" >调整对比
  514 + </el-button>
  515 + </div>
  516 + <div style="width: 100%;" v-if="lishiList!=null" ref="lishiRef">
  517 + <div style="width: 100%;">
  518 + <div style="padding: 10px 20px;">
  519 + <el-descriptions class="margin-top" title="基本信息" :column="2" border :labelStyle="labelStyle" >
  520 + <el-descriptions-item>
  521 + <template slot="label">
  522 + 方案编号
  523 + </template>
  524 + {{lixiang.id}}
  525 + </el-descriptions-item>
  526 + <el-descriptions-item>
  527 + <template slot="label">
  528 + 方案名称
  529 + </template>
  530 +
  531 + <span :style="duibiList.planName == lixiang.planName?'color: red':''" >{{lixiang.planName}}</span>
  532 + </el-descriptions-item>
  533 + <el-descriptions-item>
  534 + <template slot="label">
  535 + 类型
  536 + </template>
  537 +<span :style="duibiList.planType == lixiang.planType?'color: red':''" >{{lixiang.planType}}</span>
  538 + </el-descriptions-item>
  539 + <el-descriptions-item>
  540 + <template slot="label">
  541 + 氛围地点
  542 + </template>
  543 +
  544 + <span :style="duibiList.eventAddrs == lixiang.eventAddrs?'color: red':''" >{{lixiang.eventAddrs}}</span>
  545 + </el-descriptions-item>
  546 + <el-descriptions-item>
  547 + <template slot="label">
  548 + 氛围开始时间
  549 + </template>
  550 +
  551 + <span :style="duibiList.eventStartTime == lixiang.eventStartTime?'color: red':''" >{{lixiang.eventStartTime}}</span>
  552 + </el-descriptions-item>
  553 + <el-descriptions-item>
  554 + <template slot="label">
  555 + 氛围结束时间
  556 + </template>
  557 +
  558 +<span :style="duibiList.eventEndTime == lixiang.eventEndTime?'color: red':''" >{{lixiang.eventEndTime}}</span>
  559 + </el-descriptions-item>
  560 + <el-descriptions-item>
  561 + <template slot="label">
  562 + 氛围主题
  563 + </template>
  564 + <span :style="duibiList.eventTheme == lixiang.eventTheme?'color: red':''" >{{lixiang.eventTheme}}</span>
  565 + </el-descriptions-item>
  566 + <el-descriptions-item>
  567 + <template slot="label">
  568 + 氛围主办方
  569 + </template>
  570 +<span :style="duibiList.sponsor == lixiang.sponsor?'color: red':''" >{{lixiang.sponsor}}</span>
  571 +
  572 + </el-descriptions-item>
  573 + <el-descriptions-item>
  574 + <template slot="label">
  575 + 氛围参与方
  576 + </template>
  577 +
  578 +<span :style="duibiList.participants == lixiang.participants?'color: red':''" >{{lixiang.participants}}</span>
  579 + </el-descriptions-item>
  580 + <el-descriptions-item>
  581 + <template slot="label">
  582 + 氛围主要目的
  583 + </template>
  584 +
  585 +<span :style="duibiList.mainPurpose == lixiang.mainPurpose?'color: red':''" >{{lixiang.mainPurpose}}</span>
  586 + </el-descriptions-item>
  587 + <el-descriptions-item>
  588 + <template slot="label">
  589 + 范围设置
  590 + </template>
  591 +
  592 +<span :style="duibiList.rangeSetting == lixiang.rangeSetting?'color: red':''" >{{lixiang.rangeSetting}}</span>
  593 + </el-descriptions-item>
  594 + <el-descriptions-item>
  595 + <template slot="label">
  596 + 状态
  597 + </template>
  598 +
  599 +{{getStatus(lixiang.state)}}
  600 +
  601 + </el-descriptions-item>
  602 + </el-descriptions>
  603 +
  604 + </div>
  605 + </div>
  606 + <div style="width: 100%;">
  607 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">氛围明细信息</div>
  608 + <div style="padding: 10px 20px;">
  609 + <el-table :data="tableData2"
  610 + :header-cell-style="{fontSize: '14px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
  611 + style="width: 100%;margin: auto;">
  612 + <el-table-column label="序号" min-width="5%" align='center'>
  613 + <template slot-scope="scope">
  614 + <span style="">{{ scope.$index +1}}</span>
  615 + </template>
  616 + </el-table-column>
  617 + <el-table-column label="明细项名称" prop="detailLtemName" min-width="28%">
  618 + </el-table-column>
  619 + <el-table-column label="预估数量" prop="estimatedQuantity" min-width="20%">
  620 +
  621 + </el-table-column>
  622 + <el-table-column label="预估费用" prop="estimatedCost" min-width="20%">
  623 +
  624 + </el-table-column>
  625 + <el-table-column label="备注" prop="notes" min-width="20%">
  626 + </el-table-column>
  627 + </el-table>
  628 + </div>
  629 + </div>
  630 + <div style="width: 100%;">
  631 + <div style="padding:10px 20px;">
  632 + <el-descriptions class="margin-top" title="氛围成本信息" :column="2" border :labelStyle="labelStyle" >
  633 + <el-descriptions-item>
  634 + <template slot="label">
  635 + 内部人力成本预估
  636 + </template>
  637 +
  638 +<span :style="duibiList.internalLaborCostEstimation == lixiang.internalLaborCostEstimation?'color: red':''" >{{lixiang.internalLaborCostEstimation}}</span>
  639 + </el-descriptions-item>
  640 + <el-descriptions-item>
  641 + <template slot="label">
  642 + 外部人力成本预估
  643 + </template>
  644 +
  645 + <span :style="duibiList.externalLaborCostEstimation == lixiang.externalLaborCostEstimation?'color: red':''" >{{lixiang.externalLaborCostEstimation}}</span>
  646 + </el-descriptions-item>
  647 + <el-descriptions-item>
  648 + <template slot="label">
  649 + 商品成本预估
  650 + </template>
  651 +
  652 +<span :style="duibiList.costEstimationGoods == lixiang.costEstimationGoods?'color: red':''" >{{lixiang.costEstimationGoods}}</span>
  653 + </el-descriptions-item>
  654 + <el-descriptions-item>
  655 + <template slot="label">
  656 + 设备成本预估
  657 + </template>
  658 +
  659 +<span :style="duibiList.setCostEstimate == lixiang.setCostEstimate?'color: red':''" >{{lixiang.setCostEstimate}}</span>
  660 + </el-descriptions-item>
  661 + <el-descriptions-item>
  662 + <template slot="label">
  663 + 宣传费用预估
  664 + </template>
  665 +
  666 + <span :style="duibiList.estimatedPromotionalExpenses == lixiang.estimatedPromotionalExpenses?'color: red':''" >{{lixiang.estimatedPromotionalExpenses}}</span>
  667 + </el-descriptions-item>
  668 + <el-descriptions-item>
  669 + <template slot="label">
  670 + 其他必要成本预估
  671 + </template>
  672 +
  673 +<span :style="duibiList.otherNecessaryEstimates == lixiang.otherNecessaryEstimates?'color: red':''" >{{lixiang.otherNecessaryEstimates}}</span>
  674 + </el-descriptions-item>
  675 + <el-descriptions-item>
  676 + <template slot="label">
  677 + 总成本预估
  678 + </template>
  679 +
  680 +<span :style="duibiList.totalCostEstimation == lixiang.totalCostEstimation?'color: red':''" >{{lixiang.totalCostEstimation}}</span>
  681 + </el-descriptions-item>
  682 + <el-descriptions-item>
  683 + <template slot="label">
  684 + 备注
  685 + </template>
  686 +
  687 +<span :style="duibiList.notes == lixiang.notes?'color: red':''" >{{lixiang.notes}}</span>
  688 + </el-descriptions-item>
  689 + </el-descriptions>
  690 + </div>
  691 + </div>
  692 + <div style="width: 100%;">
  693 +
  694 + <div style="padding:10px 20px;">
  695 + <el-descriptions class="margin-top" title="预估效果" :column="2" border :labelStyle="labelStyle" >
  696 + <el-descriptions-item>
  697 + <template slot="label">
  698 + 预计吸引流量
  699 + </template>
  700 +
  701 +<span :style="duibiList.expectedAttractTraffic == lixiang.expectedAttractTraffic?'color: red':''" >{{lixiang.expectedAttractTraffic}}</span>
  702 + </el-descriptions-item>
  703 + <el-descriptions-item>
  704 + <template slot="label">
  705 + 预计参与人数
  706 + </template>
  707 +
  708 +<span :style="duibiList.expectedParticipation == lixiang.expectedParticipation?'color: red':''" >{{lixiang.expectedParticipation}}</span>
  709 + </el-descriptions-item>
  710 + <el-descriptions-item>
  711 + <template slot="label">
  712 + 预计直接收益
  713 + </template>
  714 +
  715 +<span :style="duibiList.expectedDirectBenefits == lixiang.expectedDirectBenefits?'color: red':''" >{{lixiang.expectedDirectBenefits}}</span>
  716 + </el-descriptions-item>
  717 + <el-descriptions-item>
  718 + <template slot="label">
  719 + 预计间接收益
  720 + </template>
  721 +
  722 +<span :style="duibiList.expectedIndirectBenefits == lixiang.expectedIndirectBenefits?'color: red':''" >{{lixiang.expectedIndirectBenefits}}</span>
  723 + </el-descriptions-item>
  724 +
  725 + </el-descriptions>
  726 +
  727 + </div>
  728 + </div>
  729 + <div style="width: 100%;">
  730 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">相关附件信息</div>
  731 + <div style="padding:10px 20px;">
  732 + <el-table :data="tableData6"
  733 + :header-cell-style="{fontSize: '14px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
  734 + style="width: 100%;margin: auto;">
  735 + <el-table-column label="序号" min-width="5%" align='center'>
  736 + <template slot-scope="scope">
  737 + <span style="">{{ scope.$index + 1 }}</span>
  738 + </template>
  739 + </el-table-column>
  740 + <el-table-column label="附件名称" prop="attachmentName" min-width="75%">
  741 + </el-table-column>
  742 + <el-table-column label="操作" min-width="20%">
  743 + <template slot-scope="scope">
  744 + <!-- <div class="tableBtn greens" @click="Down(scope.row)">下载</div> -->
  745 + <a class="tableBtn greens" :href="scope.row.attachmentUrl" target="_blank" download>下载</a>
  746 + </template>
  747 + </el-table-column>
  748 +
  749 + </el-table>
  750 + </div>
  751 + </div>
  752 + <div style="width: 100%;">
  753 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">系统信息</div>
  754 + <div style="padding:10px 20px;">
  755 + <el-table :data="tableData5"
  756 + :header-cell-style="{fontSize: '14px', backgroundColor: '#fff',color:'#000',fontWeight: 'normal'}"
  757 + style="width: 100%;margin: auto;">
  758 + <el-table-column class-name="first-column-bg" label="创建人" prop="name" min-width="15%">
  759 + </el-table-column>
  760 + <el-table-column :label="createUser" prop="eventTheme" min-width="35%">
  761 +
  762 + </el-table-column>
  763 + <el-table-column class-name="first-column-bg" label="创建时间" prop="text" min-width="15%">
  764 +
  765 + </el-table-column>
  766 + <el-table-column :label="createDate" prop="planName" min-width="35%">
  767 +
  768 + </el-table-column>
  769 + </el-table>
  770 + </div>
  771 + </div>
  772 + </div>
  773 + </div>
  774 + </div>
  775 + <div style="display: flex;justify-content: flex-end;padding:10px" v-if="activeName=='fourd'">
  776 + <el-button @click="lishidownloadPdf" style="background-color: #3F9B6A;color: #fff" >导出
  777 + </el-button></div>
  778 + <div style="display: flex;justify-content: flex-end;padding:10px" v-if="activeName=='first'">
  779 + <el-button @click="downloadPdf" style="background-color: #3F9B6A;color: #fff" >导出
  780 + </el-button>
  781 + <el-button @click="jiucuo" style="background-color: #3F9B6A;color: #fff" >氛围策划调整纠错
  782 + </el-button>
  783 + </div>
  784 +</el-dialog>
  785 +</div>
  786 +</div>
  787 +<!-- 调整对比 -->
  788 +<el-dialog title="调整对比" :visible.sync="tiaozhengShow" custom-class='xiang_css' style="padding: 0;" width="80%" center
  789 + :close-on-click-modal="false" :close-on-press-escape="false" @close="reshData">
  790 + <div>
  791 + <div style="width: 100%;">
  792 + <div style="display: flex;padding:0px 20px 20px 20px; ">
  793 + <div style="width: 150px;height: 80px;" v-if="secondData.coverPoster">
  794 + <img :src="secondData.coverPoster" alt="" style="width: 100%;height: 80px;" />
  795 + </div>
  796 + <div
  797 + style="display: flex;flex-direction: column;justify-content: space-around;padding: 0 10px;font-size: 12px;">
  798 + <span style="margin-bottom: 10px;">{{text}}</span>
  799 + <span>氛围时间:{{tableData1[1].eventTheme}}至{{tableData1[1].planName}}</span>
  800 + <span>氛围地点:{{tableData1[0].planName}}</span>
  801 + </div>
  802 + </div>
  803 + </div>
  804 +
  805 + <div style="display: flex;">
  806 + <div style="width: 50%;">
  807 + <div style="width: 100%;">
  808 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">修改后</div>
  809 + <div style="padding: 10px 20px;">
  810 + <el-table :data="tableData1"
  811 + :header-cell-style="{fontSize: '14px', backgroundColor: '#fff',color:'#000',fontWeight: 'normal'}"
  812 + style="width: 100%;margin: auto;">
  813 + <el-table-column class-name="first-column-bg" label="方案编号" prop="name" min-width="15%">
  814 + </el-table-column>
  815 + <el-table-column :label="id" prop="eventTheme" min-width="35%">
  816 +
  817 + </el-table-column>
  818 + <el-table-column class-name="first-column-bg" label="方案名称" prop="text" min-width="15%">
  819 +
  820 + </el-table-column>
  821 + <el-table-column :label="text" prop="planName" min-width="35%">
  822 +
  823 + </el-table-column>
  824 + </el-table>
  825 +
  826 +
  827 + </div>
  828 + </div>
  829 + <div style="width: 100%;">
  830 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">氛围明细信息</div>
  831 + <div style="padding: 10px 20px;">
  832 + <el-table :data="tableData2"
  833 + :header-cell-style="{fontSize: '14px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
  834 + style="width: 100%;margin: auto;">
  835 + <el-table-column label="序号" min-width="5%" align='center'>
  836 + <template slot-scope="scope">
  837 + <span style="">{{ scope.$index +1}}</span>
  838 + </template>
  839 + </el-table-column>
  840 + <el-table-column label="明细项名称" prop="detailLtemName" min-width="28%">
  841 + </el-table-column>
  842 + <el-table-column label="预估数量" prop="estimatedQuantity" min-width="20%">
  843 +
  844 + </el-table-column>
  845 + <el-table-column label="预估费用" prop="estimatedCost" min-width="20%">
  846 +
  847 + </el-table-column>
  848 + <el-table-column label="备注" prop="notes" min-width="20%">
  849 + </el-table-column>
  850 + </el-table>
  851 + </div>
  852 + </div>
  853 + <div style="width: 100%;">
  854 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">氛围成本信息</div>
  855 + <div style="padding:10px 20px;">
  856 + <el-table :data="tableData3"
  857 + :header-cell-style="{fontSize: '14px', backgroundColor: '#fff',color:'#000',fontWeight: 'normal'}"
  858 + style="width: 100%;margin: auto;">
  859 + <el-table-column class-name="first-column-bg" label="内部人力成本预估" prop="name" min-width="15%">
  860 + </el-table-column>
  861 + <el-table-column :label="internalLaborCostEstimation" prop="eventTheme" min-width="35%">
  862 +
  863 + </el-table-column>
  864 + <el-table-column class-name="first-column-bg" label="外部人力成本预估" prop="text" min-width="15%">
  865 +
  866 + </el-table-column>
  867 + <el-table-column :label="externalLaborCostEstimation" prop="planName" min-width="35%">
  868 +
  869 + </el-table-column>
  870 + </el-table>
  871 + </div>
  872 + </div>
  873 + <div style="width: 100%;">
  874 + <div style="font-size: 14px;padding:10px 20px 0px 20px;">预估效果</div>
  875 + <div style="padding:10px 20px;">
  876 + <el-table :data="tableData4"
  877 + :header-cell-style="{fontSize: '14px', backgroundColor: '#fff',color:'#000',fontWeight: 'normal'}"
  878 + style="width: 100%;margin: auto;">
  879 + <el-table-column class-name="first-column-bg" label="预计吸引流量" prop="name" min-width="15%">
  880 + </el-table-column>
  881 + <el-table-column :label="expectedAttractTraffic" prop="eventTheme" min-width="35%">
  882 +
  883 + </el-table-column>
  884 + <el-table-column class-name="first-column-bg" label="预计参与人数" prop="text" min-width="15%">
  885 +
  886 + </el-table-column>
  887 + <el-table-column :label="expectedParticipation" prop="planName" min-width="35%">
  888 +
  889 + </el-table-column>
  890 + </el-table>
  891 + </el-table-column>
  892 + </div>
  893 + </div>
  894 + <div style="width: 100%;">
  895 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">相关附件信息</div>
  896 + <div style="padding:10px 20px;">
  897 + <el-table :data="tableData6"
  898 + :header-cell-style="{fontSize: '14px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
  899 + style="width: 100%;margin: auto;">
  900 + <el-table-column label="序号" min-width="5%" align='center'>
  901 + <template slot-scope="scope">
  902 + <span style="">{{ scope.$index + 1 }}</span>
  903 + </template>
  904 + </el-table-column>
  905 + <el-table-column label="附件名称" prop="attachmentName" min-width="75%">
  906 + </el-table-column>
  907 + <el-table-column label="操作" min-width="20%">
  908 + <template slot-scope="scope">
  909 + <!-- <div class="tableBtn greens" @click="Down(scope.row)">下载</div> -->
  910 + <a class="tableBtn greens" :href="scope.row.attachmentUrl" target="_blank" download>下载</a>
  911 + </template>
  912 + </el-table-column>
  913 +
  914 + </el-table>
  915 + </div>
  916 + </div>
  917 + <div style="width: 100%;">
  918 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">系统信息</div>
  919 + <div style="padding:10px 20px;">
  920 + <el-table :data="tableData5"
  921 + :header-cell-style="{fontSize: '14px', backgroundColor: '#fff',color:'#000',fontWeight: 'normal'}"
  922 + style="width: 100%;margin: auto;">
  923 + <el-table-column class-name="first-column-bg" label="创建人" prop="name" min-width="15%">
  924 + </el-table-column>
  925 + <el-table-column :label="createUser" prop="eventTheme" min-width="35%">
  926 +
  927 + </el-table-column>
  928 + <el-table-column class-name="first-column-bg" label="创建时间" prop="text" min-width="15%">
  929 +
  930 + </el-table-column>
  931 + <el-table-column :label="createDate" prop="planName" min-width="35%">
  932 +
  933 + </el-table-column>
  934 + </el-table>
  935 + </div>
  936 + </div>
  937 + </div>
  938 + <div style="width: 50%;">
  939 + <div style="width: 100%;">
  940 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">修改前</div>
  941 + <div style="padding: 10px 20px;">
  942 + <el-descriptions class="margin-top" :column="2" border :labelStyle="labelStyleOne" >
  943 + <el-descriptions-item>
  944 + <template slot="label">
  945 + 方案编号
  946 + </template>
  947 + {{lixiang.id}}
  948 + </el-descriptions-item>
  949 + <el-descriptions-item>
  950 + <template slot="label">
  951 + 方案名称
  952 + </template>
  953 + {{lixiang.planName}}
  954 + </el-descriptions-item>
  955 + <el-descriptions-item>
  956 + <template slot="label">
  957 + 类型
  958 + </template>
  959 + {{lixiang.planType}}
  960 + </el-descriptions-item>
  961 + <el-descriptions-item>
  962 + <template slot="label">
  963 + 氛围地点
  964 + </template>
  965 + {{lixiang.eventAddrs}}
  966 + </el-descriptions-item>
  967 + <el-descriptions-item>
  968 + <template slot="label">
  969 + 氛围开始时间
  970 + </template>
  971 + {{lixiang.eventStartTime}}
  972 + </el-descriptions-item>
  973 + <el-descriptions-item>
  974 + <template slot="label">
  975 + 氛围结束时间
  976 + </template>
  977 + {{lixiang.eventEndTime}}
  978 + </el-descriptions-item>
  979 + <el-descriptions-item>
  980 + <template slot="label">
  981 + 氛围主题
  982 + </template>
  983 + {{lixiang.eventTheme}}
  984 + </el-descriptions-item>
  985 + <el-descriptions-item>
  986 + <template slot="label">
  987 + 氛围主办方
  988 + </template>
  989 + {{lixiang.sponsor}}
  990 + </el-descriptions-item>
  991 + <el-descriptions-item>
  992 + <template slot="label">
  993 + 氛围参与方
  994 + </template>
  995 + {{lixiang.participants}}
  996 + </el-descriptions-item>
  997 + <el-descriptions-item>
  998 + <template slot="label">
  999 + 氛围主要目的
  1000 + </template>
  1001 + {{lixiang.mainPurpose}}
  1002 + </el-descriptions-item>
  1003 + <el-descriptions-item>
  1004 + <template slot="label">
  1005 + 范围设置
  1006 + </template>
  1007 + {{lixiang.rangeSetting}}
  1008 + </el-descriptions-item>
  1009 + <el-descriptions-item>
  1010 + <template slot="label">
  1011 + 状态
  1012 + </template>
  1013 + {{getStatus(lixiang.state)}}
  1014 +
  1015 + </el-descriptions-item>
  1016 + </el-descriptions>
  1017 +
  1018 + </div>
  1019 + </div>
  1020 + <div style="width: 100%;">
  1021 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">氛围明细信息</div>
  1022 + <div style="padding: 10px 20px;">
  1023 + <el-table :data="tableData2"
  1024 + :header-cell-style="{fontSize: '14px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
  1025 + style="width: 100%;margin: auto;">
  1026 + <el-table-column label="序号" min-width="5%" align='center'>
  1027 + <template slot-scope="scope">
  1028 + <span style="">{{ scope.$index +1}}</span>
  1029 + </template>
  1030 + </el-table-column>
  1031 + <el-table-column label="明细项名称" prop="detailLtemName" min-width="28%">
  1032 + </el-table-column>
  1033 + <el-table-column label="预估数量" prop="estimatedQuantity" min-width="20%">
  1034 +
  1035 + </el-table-column>
  1036 + <el-table-column label="预估费用" prop="estimatedCost" min-width="20%">
  1037 +
  1038 + </el-table-column>
  1039 + <el-table-column label="备注" prop="notes" min-width="20%">
  1040 + </el-table-column>
  1041 + </el-table>
  1042 + </div>
  1043 + </div>
  1044 + <div style="width: 100%;">
  1045 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">氛围成本信息</div>
  1046 + <div style="padding:10px 20px;">
  1047 + <el-descriptions class="margin-top" :column="2" border :labelStyle="labelStyleOne" >
  1048 + <el-descriptions-item>
  1049 + <template slot="label">
  1050 + 内部人力成本预估
  1051 + </template>
  1052 + {{lixiang.internalLaborCostEstimation}}
  1053 + </el-descriptions-item>
  1054 + <el-descriptions-item>
  1055 + <template slot="label">
  1056 + 外部人力成本预估
  1057 + </template>
  1058 + {{lixiang.externalLaborCostEstimation}}
  1059 + </el-descriptions-item>
  1060 + <el-descriptions-item>
  1061 + <template slot="label">
  1062 + 商品成本预估
  1063 + </template>
  1064 + {{lixiang.costEstimationGoods}}
  1065 + </el-descriptions-item>
  1066 + <el-descriptions-item>
  1067 + <template slot="label">
  1068 + 设备成本预估
  1069 + </template>
  1070 + {{lixiang.setCostEstimate}}
  1071 + </el-descriptions-item>
  1072 + <el-descriptions-item>
  1073 + <template slot="label">
  1074 + 宣传费用预估
  1075 + </template>
  1076 + {{lixiang.estimatedPromotionalExpenses}}
  1077 + </el-descriptions-item>
  1078 + <el-descriptions-item>
  1079 + <template slot="label">
  1080 + 其他必要成本预估
  1081 + </template>
  1082 + {{lixiang.otherNecessaryEstimates}}
  1083 + </el-descriptions-item>
  1084 + <el-descriptions-item>
  1085 + <template slot="label">
  1086 + 总成本预估
  1087 + </template>
  1088 + {{lixiang.totalCostEstimation}}
  1089 + </el-descriptions-item>
  1090 + <el-descriptions-item>
  1091 + <template slot="label">
  1092 + 备注
  1093 + </template>
  1094 + {{lixiang.notes}}
  1095 + </el-descriptions-item>
  1096 + </el-descriptions>
  1097 + </div>
  1098 + </div>
  1099 + <div style="width: 100%;">
  1100 +<div style="font-size: 14px;padding: 10px 20px 0px 20px;">预估效果</div>
  1101 + <div style="padding:10px 20px;">
  1102 + <el-descriptions class="margin-top" :column="2" border :labelStyle="labelStyleOne" >
  1103 + <el-descriptions-item>
  1104 + <template slot="label">
  1105 + 预计吸引流量
  1106 + </template>
  1107 + {{lixiang.expectedAttractTraffic}}
  1108 + </el-descriptions-item>
  1109 + <el-descriptions-item>
  1110 + <template slot="label">
  1111 + 预计参与人数
  1112 + </template>
  1113 + {{lixiang.expectedParticipation}}
  1114 + </el-descriptions-item>
  1115 + <el-descriptions-item>
  1116 + <template slot="label">
  1117 + 预计直接收益
  1118 + </template>
  1119 + {{lixiang.expectedDirectBenefits}}
  1120 + </el-descriptions-item>
  1121 + <el-descriptions-item>
  1122 + <template slot="label">
  1123 + 预计间接收益
  1124 + </template>
  1125 + {{lixiang.expectedIndirectBenefits}}
  1126 + </el-descriptions-item>
  1127 +
  1128 + </el-descriptions>
  1129 +
  1130 + </div>
  1131 + </div>
  1132 + <div style="width: 100%;">
  1133 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">相关附件信息</div>
  1134 + <div style="padding:10px 20px;">
  1135 + <el-table :data="tableData6"
  1136 + :header-cell-style="{fontSize: '14px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
  1137 + style="width: 100%;margin: auto;">
  1138 + <el-table-column label="序号" min-width="5%" align='center'>
  1139 + <template slot-scope="scope">
  1140 + <span style="">{{ scope.$index + 1 }}</span>
  1141 + </template>
  1142 + </el-table-column>
  1143 + <el-table-column label="附件名称" prop="attachmentName" min-width="75%">
  1144 + </el-table-column>
  1145 + <el-table-column label="操作" min-width="20%">
  1146 + <template slot-scope="scope">
  1147 + <!-- <div class="tableBtn greens" @click="Down(scope.row)">下载</div> -->
  1148 + <a class="tableBtn greens" :href="scope.row.attachmentUrl" target="_blank" download>下载</a>
  1149 + </template>
  1150 + </el-table-column>
  1151 +
  1152 + </el-table>
  1153 + </div>
  1154 + </div>
  1155 + <div style="width: 100%;">
  1156 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">系统信息</div>
  1157 + <div style="padding:10px 20px;">
  1158 + <el-table :data="tableData5"
  1159 + :header-cell-style="{fontSize: '14px', backgroundColor: '#fff',color:'#000',fontWeight: 'normal'}"
  1160 + style="width: 100%;margin: auto;">
  1161 + <el-table-column class-name="first-column-bg" label="创建人" prop="name" min-width="15%">
  1162 + </el-table-column>
  1163 + <el-table-column :label="createUser" prop="eventTheme" min-width="35%">
  1164 +
  1165 + </el-table-column>
  1166 + <el-table-column class-name="first-column-bg" label="创建时间" prop="text" min-width="15%">
  1167 +
  1168 + </el-table-column>
  1169 + <el-table-column :label="createDate" prop="planName" min-width="35%">
  1170 +
  1171 + </el-table-column>
  1172 + </el-table>
  1173 + </div>
  1174 + </div>
  1175 + </div>
  1176 + </div>
  1177 +
  1178 +
  1179 + </div>
  1180 +</el-dialog>
  1181 +
  1182 +<el-dialog title="新增明细" :visible.sync="addMing" custom-class='dialog_css' style="padding: 0;" width="50%" append-to-body
  1183 + center :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false">
  1184 + <div style="padding: 15px;width:100%">
  1185 + <div style="">
  1186 + <div style="padding: 15px;">
  1187 + <el-form label-position="right" ref="ruleFormInfo" :model="mingFrom" label-width="140px"
  1188 + style="position: relative">
  1189 + <el-form-item label="明细项名称" class="grid-content bg-purple device-from" prop="planName">
  1190 + <el-input v-model="mingFrom.detailLtemName" placeholder="请输入" />
  1191 + </el-form-item>
  1192 + <el-form-item label="预估数量" class="grid-content bg-purple" prop=" planType">
  1193 + <el-input v-model="mingFrom.estimatedQuantity" placeholder="请输入" />
  1194 + </el-form-item>
  1195 +
  1196 + <el-form-item label="预估费用" class="grid-content bg-purple" prop="eventAddrs">
  1197 + <el-input v-model="mingFrom.estimatedCost" placeholder="请输入" />
  1198 + </el-form-item>
  1199 + <el-form-item label="备注" class="grid-content bg-purple device-from" prop="planName">
  1200 + <el-input v-model="mingFrom.notes" placeholder="请输入" />
  1201 + </el-form-item>
  1202 + </el-form>
  1203 + </div>
  1204 + </div>
  1205 +
  1206 + </div>
  1207 + <div style="display: flex;justify-content: flex-end;padding: 10px 20px 10px 0">
  1208 +
  1209 + <el-button plain @click="minSev" style="background-color: #3F9B6A;color: #fff;">保存
  1210 + </el-button>
  1211 + <el-button plain @click="addMing=false" style="background-color: #3F9B6A;color: #fff;">取消
  1212 + </el-button>
  1213 + </div>
  1214 +</el-dialog>
  1215 +<!-- 效果对比 -->
  1216 +<el-dialog :visible.sync="xiaoDui" custom-class='dialog_css' style="padding: 0;" width="60%" center
  1217 + :close-on-click-modal="false" :close-on-press-escape="false">
  1218 + <div style="padding: 0 50px;display:flex;justify-content: space-evenly;">
  1219 + <div style="width:30%">
  1220 + <div style="display: flex;">
  1221 + <div style="margin-right: 10px;padding: 10px 0;">
  1222 + <div>调整前方案</div>
  1223 + <div style="font-size: 22px;color: #3F9B6A;font-weight: 600;margin: 10px 0;">{{xiaoduiObj.biliOne}}</div>
  1224 + <div style="font-size: 16px;color: #3F9B6A;font-weight: 600;">投入产出比</div>
  1225 + </div>
  1226 + <el-progress type="circle" :percentage="xiaoduiObj.bilis" :show-text="false" :width="100">
  1227 + </el-progress>
  1228 + </div>
  1229 + <div style="padding:30px 0">计划任务(完成度)</div>
  1230 + <div class="jindutiao">
  1231 + <div style="margin-right:10px;width:56px">直接收入</div>
  1232 + <!-- <el-progress :text-inside="true" :stroke-width="26" :format="format(xiaoduiObj.shou)" :percentage="xiaoduiObj.shouBi"></el-progress> -->
  1233 + <el-progress
  1234 + style="width: 150px;"
  1235 + :text-inside="true"
  1236 + :stroke-width="20"
  1237 + :percentage="baifenbi(duibiOne.expectedDirectBenefits)"
  1238 + status="success"
  1239 + :format="() => customFormat(duibiOne.expectedDirectBenefits)"
  1240 + ></el-progress>
  1241 + </div>
  1242 + <div class="jindutiao">
  1243 + <div style="margin-right:10px;width:56px">间接收入</div>
  1244 + <!-- <el-progress :text-inside="true" :stroke-width="26" :format="format(xiaoduiObj.shou)" :percentage="xiaoduiObj.shouBi"></el-progress> -->
  1245 + <el-progress
  1246 + style="width: 150px;"
  1247 + :text-inside="true"
  1248 + :stroke-width="20"
  1249 + :percentage="baifenbi(duibiOne.expectedIndirectBenefits)"
  1250 + status="success"
  1251 + :format="() => customFormat(duibiOne.expectedIndirectBenefits)"
  1252 + ></el-progress>
  1253 + </div>
  1254 + <div class="jindutiao">
  1255 + <div style="margin-right:10px;width:56px">人力</div>
  1256 + <!-- <el-progress :text-inside="true" :stroke-width="26" :format="format(xiaoduiObj.shou)" :percentage="xiaoduiObj.shouBi"></el-progress> -->
  1257 + <el-progress
  1258 + style="width: 150px;"
  1259 + :text-inside="true"
  1260 + :stroke-width="20"
  1261 + :percentage="baifenbi(duibiOne.internalLaborCostEstimation)"
  1262 + status="success"
  1263 + :format="() => customFormat(duibiOne.internalLaborCostEstimation)"
  1264 + ></el-progress>
  1265 + </div>
  1266 + <div class="jindutiao">
  1267 + <div style="margin-right:10px;width:56px">设备</div>
  1268 + <!-- <el-progress :text-inside="true" :stroke-width="26" :format="format(xiaoduiObj.shou)" :percentage="xiaoduiObj.shouBi"></el-progress> -->
  1269 + <el-progress
  1270 + style="width: 150px;"
  1271 + :text-inside="true"
  1272 + :stroke-width="20"
  1273 + :percentage="baifenbi(duibiOne.setCostEstimate)"
  1274 + status="success"
  1275 + :format="() => customFormat(duibiOne.setCostEstimate)"
  1276 + ></el-progress>
  1277 + </div>
  1278 + <div class="jindutiao">
  1279 + <div style="margin-right:10px;width:56px">宣传</div>
  1280 + <!-- <el-progress :text-inside="true" :stroke-width="26" :format="format(xiaoduiObj.shou)" :percentage="xiaoduiObj.shouBi"></el-progress> -->
  1281 + <el-progress
  1282 + style="width: 150px;"
  1283 + :text-inside="true"
  1284 + :stroke-width="20"
  1285 + :percentage="baifenbi(duibiOne.estimatedPromotionalExpenses)"
  1286 + status="success"
  1287 + :format="() => customFormat(duibiOne.estimatedPromotionalExpenses)"
  1288 + ></el-progress>
  1289 + </div>
  1290 + <div class="jindutiao">
  1291 + <div style="margin-right:10px;width:56px">其他</div>
  1292 + <!-- <el-progress :text-inside="true" :stroke-width="26" :format="format(xiaoduiObj.shou)" :percentage="xiaoduiObj.shouBi"></el-progress> -->
  1293 + <el-progress
  1294 + style="width: 150px;"
  1295 + :text-inside="true"
  1296 + :stroke-width="20"
  1297 + :percentage="baifenbi(duibiOne.otherNecessaryEstimates)"
  1298 + status="success"
  1299 + :format="() => customFormat(duibiOne.otherNecessaryEstimates)"
  1300 + ></el-progress>
  1301 + </div>
  1302 + </div>
  1303 + <div style="width:30%">
  1304 + <div style="display: flex;">
  1305 + <div style="margin-right: 10px;padding: 10px 0;">
  1306 + <div>调整后方案</div>
  1307 + <div style="font-size: 22px;color: #3F9B6A;font-weight: 600;margin: 10px 0;">{{xiaoduiObj.biliTwo}}</div>
  1308 + <div style="font-size: 16px;color: #3F9B6A;font-weight: 600;">投入产出比</div>
  1309 + </div>
  1310 + <el-progress type="circle" :percentage="xiaoduiObj.biliT" :show-text="false" :width="100">
  1311 + </el-progress>
  1312 + </div>
  1313 + <div style="padding:30px 0">计划任务(完成度)</div>
  1314 + <div class="jindutiao">
  1315 + <div style="margin-right:10px;width:56px">直接收入</div>
  1316 + <!-- <el-progress :text-inside="true" :stroke-width="26" :format="format(xiaoduiObj.shou)" :percentage="xiaoduiObj.shouBi"></el-progress> -->
  1317 + <el-progress
  1318 + style="width: 150px;"
  1319 + :text-inside="true"
  1320 + :stroke-width="20"
  1321 + :percentage="baifenbi(duibiTwo.expectedDirectBenefits==undefined?'':duibiTwo.expectedDirectBenefits)"
  1322 + status="success"
  1323 + :format="() => customFormat(duibiTwo.expectedDirectBenefits==undefined?'':duibiTwo.expectedDirectBenefits)"
  1324 + ></el-progress>
  1325 + </div>
  1326 + <div class="jindutiao">
  1327 + <div style="margin-right:10px;width:56px">间接收入</div>
  1328 + <!-- <el-progress :text-inside="true" :stroke-width="26" :format="format(xiaoduiObj.shou)" :percentage="xiaoduiObj.shouBi"></el-progress> -->
  1329 + <el-progress
  1330 + style="width: 150px;"
  1331 + :text-inside="true"
  1332 + :stroke-width="20"
  1333 + :percentage="baifenbi(duibiTwo.expectedIndirectBenefits==undefined?'':duibiTwo.expectedIndirectBenefits)"
  1334 + status="success"
  1335 + :format="() => customFormat(duibiTwo.expectedIndirectBenefits==undefined?'':duibiTwo.expectedIndirectBenefits)"
  1336 + ></el-progress>
  1337 + </div>
  1338 + <div class="jindutiao">
  1339 + <div style="margin-right:10px;width:56px">人力</div>
  1340 + <!-- <el-progress :text-inside="true" :stroke-width="26" :format="format(xiaoduiObj.shou)" :percentage="xiaoduiObj.shouBi"></el-progress> -->
  1341 + <el-progress
  1342 + style="width: 150px;"
  1343 + :text-inside="true"
  1344 + :stroke-width="20"
  1345 + :percentage="baifenbi(duibiTwo.internalLaborCostEstimation==undefined?'':duibiTwo.internalLaborCostEstimation)"
  1346 + status="success"
  1347 + :format="() => customFormat(duibiTwo.internalLaborCostEstimation==undefined?'':duibiTwo.internalLaborCostEstimation)"
  1348 + ></el-progress>
  1349 + </div>
  1350 + <div class="jindutiao">
  1351 + <div style="margin-right:10px;width:56px">设备</div>
  1352 + <!-- <el-progress :text-inside="true" :stroke-width="26" :format="format(xiaoduiObj.shou)" :percentage="xiaoduiObj.shouBi"></el-progress> -->
  1353 + <el-progress
  1354 + style="width: 150px;"
  1355 + :text-inside="true"
  1356 + :stroke-width="20"
  1357 + :percentage="baifenbi(duibiTwo.setCostEstimate==undefined?'':duibiTwo.setCostEstimate)"
  1358 + status="success"
  1359 + :format="() => customFormat(duibiTwo.setCostEstimate==undefined?'':duibiTwo.setCostEstimate)"
  1360 + ></el-progress>
  1361 + </div>
  1362 + <div class="jindutiao">
  1363 + <div style="margin-right:10px;width:56px">宣传</div>
  1364 + <!-- <el-progress :text-inside="true" :stroke-width="26" :format="format(xiaoduiObj.shou)" :percentage="xiaoduiObj.shouBi"></el-progress> -->
  1365 + <el-progress
  1366 + style="width: 150px;"
  1367 + :text-inside="true"
  1368 + :stroke-width="20"
  1369 + :percentage="baifenbi(duibiTwo.estimatedPromotionalExpenses==undefined?'':duibiTwo.estimatedPromotionalExpenses)"
  1370 + status="success"
  1371 + :format="() => customFormat(duibiTwo.estimatedPromotionalExpenses==undefined?'':duibiTwo.estimatedPromotionalExpenses)"
  1372 + ></el-progress>
  1373 + </div>
  1374 + <div class="jindutiao">
  1375 + <div style="margin-right:10px;width:56px">其他</div>
  1376 + <el-progress
  1377 + style="width: 150px;"
  1378 + :text-inside="true"
  1379 + :stroke-width="20"
  1380 + :percentage="baifenbi(duibiTwo.otherNecessaryEstimates==undefined?'':duibiTwo.otherNecessaryEstimates)"
  1381 + status="success"
  1382 + :format="() => customFormat(duibiTwo.otherNecessaryEstimates==undefined?'':duibiTwo.otherNecessaryEstimates)"
  1383 + ></el-progress>
  1384 + </div>
  1385 + </div>
  1386 + </div>
  1387 +</el-dialog>
  1388 +
  1389 +
  1390 + <!-- 复制 -->
  1391 + <el-dialog :visible.sync="copyShow" custom-class='xiaoguo_css' style="padding: 0;" width="50%"
  1392 + center :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false">
  1393 + <div style="padding:15px;background-color:#F9F9F9;font-size:14px;border:1px solid #ECECEC;margin-bottom:20px;display: flex;justify-content: space-between;">
  1394 + <div>复制页</div>
  1395 + </div>
  1396 + <div style="padding:0 36px;">
  1397 + <el-form label-position="right" :model="copy" label-width="120px"
  1398 + style="position: relative">
  1399 + <el-form-item label="新方案名称" class="grid-content bg-purple device-from" prop="planName">
  1400 + <el-input v-model="copy.planName" placeholder="请输入" />
  1401 + </el-form-item>
  1402 + </el-form>
  1403 + </div>
  1404 +
  1405 + <div style="display: flex;justify-content: flex-end;padding: 10px 20px 10px 0">
  1406 + <el-button class="buttonHover"
  1407 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"
  1408 + @click="copyClose" >返回</el-button>
  1409 + <el-button plain @click="copysev" style="background-color: #3F9B6A;color: #fff;" >保存
  1410 + </el-button>
  1411 + </div>
  1412 + </el-dialog>
  1413 +<el-dialog :visible.sync="searchShow" custom-class='xiaoguo_css' style="padding: 0;" width="50%"
  1414 + center :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false">
  1415 + <div style="padding:15px;background-color:#F9F9F9;font-size:14px;border:1px solid #ECECEC;margin-bottom:20px;display: flex;justify-content: space-between;">
  1416 + <div>搜索关键词配置</div>
  1417 + </div>
  1418 + <div style="padding:0 36px;">
  1419 + <el-checkbox v-model="searPei.name">方案名称</el-checkbox>
  1420 + <!-- <el-checkbox v-model="searPei.lei">方案类型</el-checkbox> -->
  1421 + <el-checkbox v-model="searPei.staut">审核状态</el-checkbox>
  1422 + </div>
  1423 +
  1424 + <div style="display: flex;justify-content: flex-end;padding: 10px 20px 10px 0">
  1425 + <el-button class="buttonHover"
  1426 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"
  1427 + @click="searchShow=false" >返回</el-button>
  1428 + <el-button plain @click="searchShow=false" style="background-color: #3F9B6A;color: #fff;" >保存
  1429 + </el-button>
  1430 + </div>
  1431 + </el-dialog>
  1432 +
  1433 +<el-dialog :visible.sync="jiucuoShow" custom-class='bian_css' style="padding: 0;" width="50%"
  1434 + :close-on-press-escape="false" center :close-on-click-modal="false" class="dialog_css_Xq" :show-close="false">
  1435 + <div style="padding:20px;">
  1436 + <div style="font-size: 14px;padding-bottom: 20px;color: #000;">氛围策划调整纠错</div>
  1437 + <wangEditor v-model="jiuMsg" ref="editor"></wangEditor>
  1438 + <div style="padding-top:20px;display:flex;justify-content: flex-end;">
  1439 + <el-button style="background-color: #3F9B6A;color: #fff"
  1440 + @click="jiuCheck">确定</el-button>
  1441 + <el-button @click="jiucuoShow = false" style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;" class="buttonHover">取消</el-button>
  1442 +
  1443 + </div>
  1444 +
  1445 + </div>
  1446 +
  1447 + </el-dialog>
  1448 +<actbians :showBian="actbianMsg" @BianchildClose='BianchildClose'></actbians>
  1449 +</div>
  1450 +</template>
  1451 +
  1452 +<script>
  1453 + import {
  1454 + deleteById,
  1455 + queryByPage,
  1456 + xiangByPage,
  1457 + fujiaTable,
  1458 + mingTable,
  1459 + danqueryById,
  1460 + xiangedit,
  1461 + actEdit,
  1462 + actAdd,
  1463 + actPage,
  1464 + MingAdd,
  1465 + MingDel,
  1466 + cereGet,
  1467 + cereAdd,
  1468 + cereEdit,
  1469 + cereDel,
  1470 + copy,
  1471 + excelQueryByPage,
  1472 + excelAdd,
  1473 + effectEvaluation,
  1474 + lishiDeta
  1475 + } from '../../api/activityBz'
  1476 + import actbians from "./atmosphereBian"
  1477 + import * as echarts from 'echarts'
  1478 + import Vue from 'vue'
  1479 + import html2canvas from 'html2canvas'
  1480 + import jsPDF from 'jspdf'
  1481 + import wangEditor from "@/components/editor/index";
  1482 + import {
  1483 + uploadUrl
  1484 + } from '@/utils/request'
  1485 + export default {
  1486 + components: {
  1487 + actbians,
  1488 + wangEditor
  1489 + },
  1490 + data() {
  1491 + return {
  1492 + uploadFileUrl: uploadUrl, // 请求地址
  1493 + daoData:[],
  1494 + actbianMsg: {
  1495 + acBian: '', //编辑数据
  1496 + bianshow: false, //编辑页
  1497 + },
  1498 + fileData:[],
  1499 + fenlei: [],
  1500 + secondData: {},
  1501 +
  1502 + formSear:{
  1503 + planName: '',
  1504 + state:null,
  1505 + dataOwnership: '2',
  1506 + pageNumber: 1,
  1507 + pageSize: 10,
  1508 + isDraft:0
  1509 + },
  1510 +
  1511 + planFen: '',
  1512 + eventTheme: '',
  1513 + currentPage: 1,
  1514 + total: 100,
  1515 + flag: false,
  1516 + pageSize: 10,
  1517 + ggXin: false,
  1518 + radio: '1',
  1519 + shan: '',
  1520 + activeName: 'first',
  1521 + rules: {
  1522 + coDe: [{
  1523 + required: true,
  1524 + message: '请输入氛围名称',
  1525 + trigger: 'blur'
  1526 + },
  1527 +
  1528 + ],
  1529 + },
  1530 + formInline: {
  1531 + merchantName: '', // 商家名称
  1532 + storeId: '', // 编码
  1533 + contacts: '', // 联系人
  1534 + businessEntity: '', //经营主体
  1535 + page: 1, // 当前页
  1536 + pageSize: 10 // 每页记录数
  1537 + },
  1538 + tableData: [],
  1539 + id: '',
  1540 + text: '123',
  1541 + tableData1: [{
  1542 + id: 0,
  1543 + name: '类型',
  1544 + planName: '',
  1545 + text: '氛围地点',
  1546 + eventTheme: ''
  1547 + }, {
  1548 + id: 0,
  1549 + name: '氛围开始时间',
  1550 + planName: '',
  1551 + text: '氛围结束时间',
  1552 + eventTheme: ''
  1553 + }, {
  1554 + id: 0,
  1555 + name: '氛围主题',
  1556 + planName: '',
  1557 + text: '氛围主办方',
  1558 + eventTheme: ''
  1559 + }, {
  1560 + id: 0,
  1561 + name: '氛围参与方',
  1562 + planName: '',
  1563 + text: '氛围主要目的',
  1564 + eventTheme: ''
  1565 + }, {
  1566 + id: 0,
  1567 + name: '范围设置',
  1568 + planName: '',
  1569 + text: '状态',
  1570 + eventTheme: ''
  1571 + }],
  1572 + internalLaborCostEstimation: '',
  1573 + externalLaborCostEstimation: '',
  1574 + tableData3: [{
  1575 + id: 0,
  1576 + name: '商品成本预估',
  1577 + planName: '',
  1578 + text: '设备成本预估',
  1579 + eventTheme: ''
  1580 + }, {
  1581 + id: 0,
  1582 + name: '宣传费用预估',
  1583 + planName: '',
  1584 + text: '其他必要成本预估',
  1585 + eventTheme: ''
  1586 + }, {
  1587 + id: 0,
  1588 + name: '总成本预估',
  1589 + planName: '',
  1590 + text: '备注',
  1591 + eventTheme: ''
  1592 + }],
  1593 + expectedAttractTraffic: '',
  1594 + expectedParticipation: '',
  1595 + tableData4: [{
  1596 + id: 0,
  1597 + name: '预计直接收益',
  1598 + planName: '',
  1599 + text: '预计间接收益',
  1600 + eventTheme: '-'
  1601 + }],
  1602 + createUser: '',
  1603 + createDate: '',
  1604 + tableData5: [{
  1605 + id: 0,
  1606 + name: '更新人',
  1607 + planName: '',
  1608 + text: '更新时间',
  1609 + eventTheme: '-'
  1610 + }],
  1611 + tableData2: [], //基本信息明细列表
  1612 + tableData6: [], //基本信息附件列表
  1613 + addMing: false, //执行效果添加明细
  1614 + zhixingBian: false, //判断是否编辑执行效果
  1615 + tableDa: [], //执行效果明细列表
  1616 + zhiXing: true, //判断是否是新增的执行效果
  1617 + mingFrom: {
  1618 + detailLtemName: '',
  1619 + estimatedQuantity: '',
  1620 + estimatedCost: '',
  1621 + notes: ''
  1622 + },
  1623 + planTime:[],
  1624 + zhixingList: {
  1625 + planTime: [],
  1626 + planName: '', //氛围名称
  1627 + eventAddrs: '', //实际举办地点
  1628 + eventStartTime: 0, //实际开始时间
  1629 + eventEndTime: 0, //实际结束时间
  1630 + sponsor: '', //实际主办方
  1631 + participants: '', //实际参与方
  1632 + internalLaborCostEstimation: '', //内部人工成本
  1633 + externalLaborCostEstimation: '', //外部人工成本
  1634 + costEstimationGoods: '', //商品成本
  1635 + setCostEstimate: '', //设备成本
  1636 + estimatedPromotionalExpenses: '', //宣传费用预估
  1637 + otherNecessaryEstimates: '', //其他成本预估
  1638 + totalCostEstimation: '', //总成本预估
  1639 + notes: '', //备注
  1640 + expectedAttractTraffic: '', //吸引流量
  1641 + expectedParticipation: '', //参与人数
  1642 + expectedDirectBenefits: '', //直接收益
  1643 + expectedIndirectBenefits: '', //间接收益
  1644 + createDate: '', //创建时间
  1645 + feedbackContent:''
  1646 + }, //执行效果列表
  1647 + pageindex: {
  1648 + pageNumber: 1,
  1649 + pageSize: 10,
  1650 + dataOwnership: '2',
  1651 + isDraft:0
  1652 + },
  1653 + multipleSelection: [],
  1654 + options: [],
  1655 + xinADD:{
  1656 + classificationName:'',
  1657 + parentId:'',
  1658 + classificationType:'0'
  1659 + },
  1660 + value: '',
  1661 + xiaoDui: false, //效果对比
  1662 + dataList:[],
  1663 +
  1664 + fenleiDelId:null,//删除的分类ID
  1665 + xiaoduiObj:{
  1666 + biliOne:'0%',
  1667 + bilis:0,
  1668 + biliTwo:'0%',
  1669 + biliT:0
  1670 + },//效果对比数据
  1671 + fujiLei:'',
  1672 + defaultProps:{
  1673 + children: 'children',
  1674 + label: 'classificationName'
  1675 + },
  1676 +
  1677 + copy:{
  1678 + planName:''
  1679 + },
  1680 + copyShow:false,
  1681 + duibiOne:{},
  1682 + duibiTwo:{},
  1683 + searchShow:false,
  1684 + searPei:{
  1685 + name:true,
  1686 + lei:false,
  1687 + staut:false,
  1688 + },
  1689 + lishiList:null,
  1690 + labelStyle:{
  1691 + width:'197px',
  1692 + height:'42px',
  1693 + },
  1694 + labelStyleOne:{
  1695 + width:'110px',
  1696 + height:'42px',
  1697 + color:'#000',
  1698 + },
  1699 + lidata:[],
  1700 + lixiang:{},
  1701 + duibiList:{},
  1702 + tiaozhengShow:false,
  1703 + jiucuoShow:false,
  1704 + jiuMsg:'',
  1705 + editId:''
  1706 + }
  1707 + },
  1708 + created() {
  1709 + this.getAll()
  1710 +
  1711 + },
  1712 + computed: {
  1713 +
  1714 + },
  1715 + methods: {
  1716 + getStatus(state) {
  1717 + switch (state) {
  1718 + case '':
  1719 + return '待提交';
  1720 + case '1':
  1721 + return '待审核';
  1722 + case '2':
  1723 + return '业务部审核';
  1724 + case '3':
  1725 + return '品牌审核';
  1726 + case '4':
  1727 + return '审核通过';
  1728 + case '5':
  1729 + return '审核不通过'
  1730 + }
  1731 + },
  1732 + //查询全数据
  1733 + async getAll() {
  1734 + const res = await queryByPage(this.pageindex)
  1735 + this.tableData = res.data.content
  1736 + this.total = res.data.content.length
  1737 +
  1738 + },
  1739 + //删除记录按钮
  1740 + handleDelete(val) {
  1741 + if (this.multipleSelection.length == 1) {
  1742 +
  1743 + const h = this.$createElement;
  1744 + this.$msgbox({
  1745 + title: '消息',
  1746 + message: h('p', null, [
  1747 + h('span', null, '是否删除 '),
  1748 + ]),
  1749 + showCancelButton: true,
  1750 + showClose: false,
  1751 + confirmButtonText: '确定',
  1752 + cancelButtonText: '取消',
  1753 + customClass: 'oe-dialog-btn',
  1754 + beforeClose: (action, instance, done) => {
  1755 + if (action === 'confirm') {
  1756 + deleteById({
  1757 + id: this.multipleSelection[0].id
  1758 + }).then(res => {
  1759 + this.getAll()
  1760 + done();
  1761 + })
  1762 + } else {
  1763 + done();
  1764 + }
  1765 + }
  1766 + })
  1767 + } else {
  1768 + this.$message({
  1769 + message: '请选择一个文件删除',
  1770 + customClass: 'custom-message',
  1771 + offset: 100
  1772 + })
  1773 + }
  1774 + },
  1775 + //查询
  1776 + async onSubmit() {
  1777 + const res = await danqueryById(this.formSear)
  1778 + this.tableData = res.data.content
  1779 + },
  1780 + //重置按钮
  1781 + resetting() {
  1782 + this.formSear ={
  1783 + planName: '',
  1784 + state:null,
  1785 + dataOwnership: '2',
  1786 + pageNumber: 1,
  1787 + pageSize: 10,
  1788 + isDraft:0
  1789 +
  1790 + }
  1791 + this.getAll()
  1792 + },
  1793 + //编辑页
  1794 + BianchildClose(msg) {
  1795 + this.actbianMsg.bianshow = msg
  1796 + this.getAll()
  1797 + },
  1798 + actBian(item) {
  1799 + this.actbianMsg.acBian = item
  1800 + this.actbianMsg.bianshow = true
  1801 + },
  1802 + //详情点击
  1803 + handleEditForm(item) {
  1804 + this.liData = []
  1805 + this.lixiang = {}
  1806 + this.lishiList=null
  1807 + this.fileData = []
  1808 + this.zhixingList = {
  1809 + planTime:[],
  1810 + planName: '', //氛围名称
  1811 + eventAddrs: '', //实际举办地点
  1812 + eventStartTime: 0, //实际开始时间
  1813 + eventEndTime: 0, //实际结束时间
  1814 + sponsor: '', //实际主办方
  1815 + participants: '', //实际参与方
  1816 + internalLaborCostEstimation: '', //内部人工成本
  1817 + externalLaborCostEstimation: '', //外部人工成本
  1818 + costEstimationGoods: '', //商品成本
  1819 + setCostEstimate: '', //设备成本
  1820 + estimatedPromotionalExpenses: '', //宣传费用预估
  1821 + otherNecessaryEstimates: '', //其他成本预估
  1822 + totalCostEstimation: '', //总成本预估
  1823 + notes: '', //备注
  1824 + expectedAttractTraffic: '', //吸引流量
  1825 + expectedParticipation: '', //参与人数
  1826 + expectedDirectBenefits: '', //直接收益
  1827 + expectedIndirectBenefits: '', //间接收益
  1828 + createDate: '', //创建时间
  1829 + feedbackContent:''
  1830 + } //执行效果列表
  1831 + actPage({
  1832 + detailsId: item.id,
  1833 + pageNumber: 1,
  1834 + pageSize: 10,
  1835 + }).then(res => {
  1836 + console.log(res.data.content)
  1837 + if (res.data.content.length == 0) {
  1838 + this.zhiXing = true
  1839 + } else {
  1840 + mingTable({
  1841 + detailsId: res.data.content[0].id,
  1842 + pageNumber: 1,
  1843 + pageSize: 10,
  1844 + }).then(res => {
  1845 + this.tableDa = res.data.content
  1846 + })
  1847 + this.zhiXing = false
  1848 + this.zhixingList = res.data.content[0]
  1849 + if((typeof this.zhixingList.eventStartTime) == 'object' || (typeof this.zhixingList.eventEndTime) == 'object' ){
  1850 + this.zhixingList.planTime = []
  1851 + }else{
  1852 + console.log(typeof this.zhixingList.eventStartTime)
  1853 + this.zhixingList.planTime = [ this.zhixingList.eventStartTime, this.zhixingList.eventEndTime]
  1854 + }
  1855 +
  1856 + }
  1857 + })
  1858 + let that = this
  1859 + this.planTime = [item.eventStartTime, item.eventEndTime]
  1860 + fujiaTable({
  1861 + detailsId: item.id,
  1862 + pageNumber: 1,
  1863 + pageSize: 10,
  1864 + }).then(res => {
  1865 + this.tableData6 = res.data.content
  1866 + })
  1867 + mingTable({
  1868 + detailsId: item.id,
  1869 + pageNumber: 1,
  1870 + pageSize: 10,
  1871 + }).then(res => {
  1872 + this.tableData2 = res.data.content
  1873 + })
  1874 +
  1875 +
  1876 + danqueryById({
  1877 + id: item.id,
  1878 + dataOwnership: '2',
  1879 + pageNumber: 1,
  1880 + pageSize: 10,
  1881 + }).then(res => {
  1882 + this.secondData = res.data.content[0]
  1883 + //基本信息
  1884 + // that.id=res.data.content[0].id
  1885 + that.text = res.data.content[0].planName
  1886 + that.tableData1[0].eventTheme = res.data.content[0].planType
  1887 + that.tableData1[0].planName = res.data.content[0].eventAddrs
  1888 + that.tableData1[1].eventTheme = res.data.content[0].eventStartTime
  1889 + that.tableData1[1].planName = res.data.content[0].eventEndTime
  1890 + that.tableData1[2].eventTheme = res.data.content[0].eventTheme
  1891 + that.tableData1[2].planName = res.data.content[0].sponsor
  1892 + that.tableData1[3].eventTheme = res.data.content[0].participants
  1893 + that.tableData1[3].planName = res.data.content[0].mainPurpose
  1894 + that.tableData1[4].planName = this.getStatus(res.data.content[0].state)
  1895 + that.tableData1[4].eventTheme = res.data.content[0].rangeSetting
  1896 + //氛围成本信息
  1897 + that.internalLaborCostEstimation = res.data.content[0].internalLaborCostEstimation
  1898 + that.externalLaborCostEstimation = res.data.content[0].externalLaborCostEstimation
  1899 + that.tableData3[0].eventTheme = res.data.content[0].costEstimationGoods
  1900 + that.tableData3[0].planName = res.data.content[0].setCostEstimate
  1901 + that.tableData3[1].eventTheme = res.data.content[0].estimatedPromotionalExpenses
  1902 + that.tableData3[1].planName = res.data.content[0].otherNecessaryEstimates
  1903 + that.tableData3[2].eventTheme = res.data.content[0].totalCostEstimation
  1904 + that.tableData3[2].planName = res.data.content[0].notes
  1905 + //预估效果
  1906 + that.expectedAttractTraffic = res.data.content[0].expectedAttractTraffic
  1907 + that.expectedParticipation = res.data.content[0].expectedParticipation
  1908 + that.tableData4[0].eventTheme = res.data.content[0].expectedDirectBenefits
  1909 + that.tableData4[0].planName = res.data.content[0].expectedIndirectBenefits
  1910 + //系统信息
  1911 + that.createUser = res.data.content[0].createUser
  1912 + that.createDate = res.data.content[0].createDate
  1913 +
  1914 + that.tableData5[0].planName = '-'
  1915 + that.tableData5[0].eventTheme = res.data.content[0].updateUser
  1916 +
  1917 + }).catch(err => {
  1918 + console.log(err)
  1919 +
  1920 + })
  1921 + if (!item) {
  1922 + this.formItem = {}
  1923 + } else {
  1924 + this.formItem = item
  1925 + }
  1926 + lishiDeta({eventDetailsId:item.id}).then(res=>{
  1927 + this.liData = res.data
  1928 + })
  1929 + this.ggXin = true
  1930 + },
  1931 + formTime(data){
  1932 + this.zhixingList.planTime = data
  1933 + },
  1934 + removeEmptyValues(obj) {
  1935 + if (typeof obj !== 'object' || obj === null) {
  1936 + return obj;
  1937 + }
  1938 +
  1939 + const newObj = Array.isArray(obj) ? [] : {};
  1940 +
  1941 + for (const key in obj) {
  1942 + if (Object.prototype.hasOwnProperty.call(obj, key)) {
  1943 + const value = obj[key];
  1944 + if (value !== null && value !== undefined && value !== '' && !this.isEmptyObject(value)) {
  1945 + if (Array.isArray(newObj)) {
  1946 + newObj.push(this.removeEmptyValues(value));
  1947 + } else {
  1948 + newObj[key] = this.removeEmptyValues(value);
  1949 + }
  1950 + }
  1951 + }
  1952 + }
  1953 +
  1954 + return newObj;
  1955 + },
  1956 + isEmptyObject(obj) {
  1957 + return Object.keys(obj).length === 0 && obj.constructor === Object;
  1958 + },
  1959 + //获取当前时间
  1960 + updateCurrentTime() {
  1961 + const now = new Date();
  1962 + const year = now.getFullYear();
  1963 + const month = (now.getMonth() + 1).toString().padStart(2, '0');
  1964 + const day = now.getDate().toString().padStart(2, '0');
  1965 + const hours = now.getHours().toString().padStart(2, '0');
  1966 + const minutes = now.getMinutes().toString().padStart(2, '0');
  1967 + const seconds = now.getSeconds().toString().padStart(2, '0');
  1968 +
  1969 + return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
  1970 + },
  1971 +
  1972 + handleCurrentChange(val) {
  1973 + this.currentPage = val
  1974 + },
  1975 + handleSizeChange(val) {
  1976 + this.pageSize = val
  1977 + },
  1978 + closeFn() {
  1979 + this.ggXin = false
  1980 + },
  1981 + handleClick() {
  1982 + console.log()
  1983 + },
  1984 + refreshData() {
  1985 + // console.log('12123')
  1986 + this.tableDa = []
  1987 + this.activeName = 'first'
  1988 + this.zhixingBian = false
  1989 + },
  1990 + reshData() {
  1991 + this.tableDa = []
  1992 + this.tiaozhengShow = false
  1993 + },
  1994 +
  1995 + handleSelectionChange(val) {
  1996 + this.multipleSelection = val;
  1997 + },
  1998 + toggleSelection(rows) {
  1999 + if (rows) {
  2000 + rows.forEach(row => {
  2001 + this.$refs.mulTable.toggleRowSelection(row);
  2002 + });
  2003 + }
  2004 + },
  2005 + tableAll() {
  2006 + this.$refs.mulTable.clearSelection(); // 清除所有选项
  2007 + const allRows = this.$refs.mulTable.data; // 获取所有行数据
  2008 + allRows.forEach(row => {
  2009 + this.$refs.mulTable.toggleRowSelection(row, true); // 全选所有项
  2010 + });
  2011 + },
  2012 + TabClick(tab, event) {
  2013 + console.log(tab, event)
  2014 + if (tab.index == '0') {
  2015 + this.getAll()
  2016 + } else {
  2017 + this.tableData = []
  2018 + }
  2019 + },
  2020 + minSev() {
  2021 + if (this.zhiXing) {
  2022 + this.tableDa.push(this.mingFrom)
  2023 + } else {
  2024 + this.mingFrom.detailsId = this.zhixingList.id
  2025 + MingAdd(this.mingFrom).then(res => {
  2026 + this.mingcha(this.zhixingList.id)
  2027 + })
  2028 + }
  2029 + this.mingFrom = {
  2030 + detailLtemName: '',
  2031 + estimatedQuantity: '',
  2032 + estimatedCost: '',
  2033 + notes: ''
  2034 + }
  2035 + this.addMing = false
  2036 + },
  2037 + // 查询执行明细
  2038 + mingcha(id) {
  2039 + mingTable({
  2040 + detailsId: id,
  2041 + pageNumber: 1,
  2042 + pageSize: 10
  2043 + }).then(res => {
  2044 + this.tableDa = res.data.content
  2045 + })
  2046 + },
  2047 + MingDelete(index, item) {
  2048 + const h = this.$createElement;
  2049 + this.$msgbox({
  2050 + title: '消息',
  2051 + message: h('p', null, [
  2052 + h('span', null, '是否删除 '),
  2053 + ]),
  2054 + showCancelButton: true,
  2055 + showClose: false,
  2056 + confirmButtonText: '确定',
  2057 + cancelButtonText: '取消',
  2058 + customClass: 'oe-dialog-btn',
  2059 + beforeClose: (action, instance, done) => {
  2060 + if (action === 'confirm') {
  2061 + if (this.zhiXing) {
  2062 + this.tableDa.splice(item, 1);
  2063 + } else {
  2064 + MingDel({
  2065 + id: item.id
  2066 + }).then(res => {
  2067 + this.mingcha(this.zhixingList.id)
  2068 + })
  2069 + }
  2070 + done();
  2071 + } else {
  2072 + done();
  2073 + }
  2074 + }
  2075 + })
  2076 + },
  2077 + tianMing() {
  2078 + if (this.zhixingBian) {
  2079 + this.addMing = true
  2080 + }
  2081 + },
  2082 +
  2083 + duibi(){
  2084 + if (this.multipleSelection.length ==1 ) {
  2085 + this.xiaoDui = true
  2086 + this.duibiOne = this.multipleSelection[0]
  2087 + console.log(this.multipleSelection[0])
  2088 + let that = this
  2089 + actPage({
  2090 + detailsId:this.multipleSelection[0].id,
  2091 + pageNumber: 1,
  2092 + pageSize: 10,
  2093 + }).then(res => {
  2094 + this.duibiTwo = res.data.content[0] === undefined ? {} : res.data.content[0];
  2095 + console.log(this.duibiTwo)
  2096 + if( res.data.content[0] === undefined || res.data.content[0].totalCostEstimation =='' ){
  2097 + that.xiaoduiObj.biliTwo = '0%'
  2098 + that.xiaoduiObj.biliT = 0
  2099 + }else{
  2100 + that.xiaoduiObj.biliT = that.duibiTwo.internalLaborCostEstimation / that.duibiTwo.totalCostEstimation*100
  2101 + that.xiaoduiObj.biliTwo =`${Math.round(that.duibiTwo.internalLaborCostEstimation / that.duibiTwo.totalCostEstimation*100)}%`
  2102 + }
  2103 +
  2104 + })
  2105 + if(that.duibiOne.totalCostEstimation ==''){
  2106 + that.xiaoduiObj.biliOne = '0%'
  2107 + that.xiaoduiObj.bilis = 0
  2108 + }else{
  2109 + that.xiaoduiObj.bilis = that.duibiOne.internalLaborCostEstimation / that.duibiOne.totalCostEstimation*100
  2110 + that.xiaoduiObj.biliOne = `${Math.round(that.duibiOne.internalLaborCostEstimation / that.duibiOne.totalCostEstimation*100)}%`
  2111 + }
  2112 +
  2113 + }else{
  2114 + this.$message({
  2115 + message: '请选择一个文件对比',
  2116 + customClass: 'custom-message',
  2117 + offset: 100
  2118 + })
  2119 + }
  2120 +
  2121 + },
  2122 +
  2123 + koop(item){
  2124 + this.copy.id = item.id
  2125 + this.copyShow = true
  2126 + },
  2127 + copyClose(){
  2128 + this.copyShow = false
  2129 + this.copy.planName = ''
  2130 + },
  2131 + copysev(){
  2132 + if(this.copy.planName == ''){
  2133 + this.$message({
  2134 + message: '请填写数据',
  2135 + customClass: 'custom-message',
  2136 + offset: 100
  2137 + })
  2138 + return;
  2139 + }else{
  2140 + copy(this.copy).then(res=>{
  2141 + this.copyShow = false
  2142 + this.getAll()
  2143 + })
  2144 + }
  2145 + },
  2146 +
  2147 +
  2148 + fenleiChange(value){
  2149 + this.xinADD.parentId = value[value.length - 1]
  2150 + },
  2151 +
  2152 +
  2153 + customFormat(percentage) {
  2154 + let zong
  2155 + if(percentage==undefined ||percentage === null || percentage == '' ){
  2156 + percentage = 0
  2157 + zong = 10000
  2158 + }
  2159 + return `${percentage} / ${percentage==''?zong:parseInt(percentage) *10}`;
  2160 + },
  2161 + baifenbi(item){
  2162 +
  2163 + let zong
  2164 + if(item == undefined || item === null || item == '' ){
  2165 + item = 0
  2166 + zong = 10000
  2167 + return Math.round(item / (item*10) * 100);
  2168 + }else{
  2169 + return Math.round(item / zong * 100);
  2170 + }
  2171 +
  2172 + },
  2173 + handleUploadSuccess(response, file, fileList) {
  2174 + const fileMsg = {
  2175 + name:file.name,
  2176 + url: file.response.data.url,
  2177 + }
  2178 + // 将文件地址存储在 uploadedFiles 数组中
  2179 + this.fileData.push(fileMsg);
  2180 + },
  2181 + handleRemove(){
  2182 + this.fileData = []
  2183 + },
  2184 + daoru(response, file, fileList){
  2185 + this.daoData.push(file.raw)
  2186 + const formDate = new FormData()
  2187 + formDate.append('file', this.daoData[0])
  2188 + excelAdd(formDate).then(res => {
  2189 + this.getAll()
  2190 + })
  2191 + },
  2192 +
  2193 +
  2194 + async daochu(){
  2195 + let res = await excelQueryByPage(this.pageindex)
  2196 + if(!res){
  2197 + return
  2198 + }
  2199 + const blob = new Blob([res], { type: 'application/vnd.ms-excel' })
  2200 + const fileName = '审核流程.xls'
  2201 + if ('download' in document.createElement('a')) {
  2202 + // 非IE下载
  2203 + const elink = document.createElement('a')
  2204 + elink.download = fileName
  2205 + elink.style.display = 'none'
  2206 + elink.href = URL.createObjectURL(blob)
  2207 + document.body.appendChild(elink)
  2208 + elink.click()
  2209 + URL.revokeObjectURL(elink.href) // 释放URL 对象
  2210 + document.body.removeChild(elink)
  2211 + } else {
  2212 + // IE10+下载
  2213 + navigator.msSaveBlob(blob, fileName)
  2214 + }
  2215 + this.$message({
  2216 + message: '导出成功',
  2217 + type: 'success'
  2218 + })
  2219 +
  2220 +
  2221 + },
  2222 + // 下载
  2223 + async downloadPdf() {
  2224 + const content = this.$refs.actXiang;
  2225 +
  2226 + // 使用 html2canvas 将 div 渲染为画布
  2227 + const canvas = await html2canvas(content);
  2228 +
  2229 + // 获取画布的图像数据
  2230 + const imgData = canvas.toDataURL('image/png');
  2231 +
  2232 + // 创建一个新的 PDF 文档
  2233 + const pdf = new jsPDF('p', 'mm', 'a4');
  2234 +
  2235 + // 添加图像到 PDF,第二个参数是图像格式,第三个参数是缩放比例
  2236 + const imgWidth = 190; // 图像的宽度(mm)
  2237 + const imgHeight = (canvas.height * imgWidth) / canvas.width; // 保持图像的宽高比
  2238 +
  2239 + pdf.addImage(imgData, 'PNG', 10, 10, imgWidth, imgHeight); // 10, 10 是图像在 PDF 中的位置(mm)
  2240 +
  2241 + // 保存 PDF 文件
  2242 + pdf.save('氛围方案.pdf');
  2243 + },
  2244 + // 下载
  2245 + async lishidownloadPdf() {
  2246 + const content = this.$refs.lishiRef;
  2247 +
  2248 + // 使用 html2canvas 将 div 渲染为画布
  2249 + const canvas = await html2canvas(content);
  2250 +
  2251 + // 获取画布的图像数据
  2252 + const imgData = canvas.toDataURL('image/png');
  2253 +
  2254 + // 创建一个新的 PDF 文档
  2255 + const pdf = new jsPDF('p', 'mm', 'a4');
  2256 +
  2257 + // 添加图像到 PDF,第二个参数是图像格式,第三个参数是缩放比例
  2258 + const imgWidth = 190; // 图像的宽度(mm)
  2259 + const imgHeight = (canvas.height * imgWidth) / canvas.width; // 保持图像的宽高比
  2260 +
  2261 + pdf.addImage(imgData, 'PNG', 10, 10, imgWidth, imgHeight); // 10, 10 是图像在 PDF 中的位置(mm)
  2262 +
  2263 + // 保存 PDF 文件
  2264 + pdf.save('历史方案.pdf');
  2265 + },
  2266 +
  2267 +setSearch(){
  2268 +this.searchShow = true
  2269 +},
  2270 +lichange(e){
  2271 +console.log(this.liData[e])
  2272 +this.lishiList=e
  2273 + let msg =this.liData[e]
  2274 +this.duibiList = JSON.parse(msg.modifyContent)
  2275 +this.lixiang = JSON.parse(msg.originalData)
  2276 +
  2277 +},
  2278 +tiaozheng(){
  2279 + this.tiaozhengShow = true
  2280 +},
  2281 +jiucuo(){
  2282 + this.jiuMsg = ''
  2283 + this.jiucuoShow =true
  2284 +},
  2285 +jiuCheck(){
  2286 + xiangedit({id:this.editId,isErrorCorrection:this.jiuMsg}).then(res=>{
  2287 + this.jiucuoShow = false
  2288 + })
  2289 +},
  2290 + }
  2291 + }
  2292 +</script>
  2293 +
  2294 +<style scoped>
  2295 + .custom-tree-node {
  2296 + flex: 1;
  2297 + display: flex;
  2298 + align-items: center;
  2299 + justify-content: space-between;
  2300 + font-size: 14px;
  2301 + padding-right: 8px;
  2302 + }
  2303 + /deep/ .first-column-bg {
  2304 + background-color: #f4f4f5 !important;
  2305 + }
  2306 +
  2307 + .zhuti {
  2308 + padding: 0 20px 20px 20px;
  2309 + min-height: calc(100vh - 50px - 20px);
  2310 + background-color: #Fff;
  2311 +
  2312 + }
  2313 +::v-deep .el-form-item{
  2314 + margin-bottom:16px;
  2315 +}
  2316 + /deep/ .el-form-item__content {
  2317 + line-height: 0;
  2318 + }
  2319 +
  2320 + .tableBtn {
  2321 + display: inline-block;
  2322 + margin-right: 10px;
  2323 + }
  2324 +
  2325 + .formSearch {
  2326 + display: flex;
  2327 + width: 100%;
  2328 + font-size: 14px;
  2329 + justify-content: space-between;
  2330 + padding-bottom: 10px;
  2331 + align-items: center;
  2332 + }
  2333 +
  2334 + .greens {
  2335 + color: #3F9B6A;
  2336 + }
  2337 +
  2338 + /deep/ .el-table__row {
  2339 + font-size: 14px;
  2340 + color:#000000e6;
  2341 + height:42px;
  2342 + }
  2343 +
  2344 + .fenye {
  2345 + margin-top: 20px;
  2346 + display: flex;
  2347 + justify-content: space-between;
  2348 + position: relative;
  2349 + }
  2350 +
  2351 + /deep/ .el-pagination.is-background .el-pager li:not(.disabled).active {
  2352 + background-color: #3F9B6A;
  2353 + }
  2354 +
  2355 + .el-row {
  2356 + margin-bottom: 20px;
  2357 + }
  2358 +
  2359 + :last-child {
  2360 + margin-bottom: 0;
  2361 + }
  2362 +
  2363 + .el-col {
  2364 + border-radius: 4px;
  2365 + }
  2366 +
  2367 + .bg-purple-dark {
  2368 + background: #99a9bf;
  2369 + }
  2370 +
  2371 + .bg-purple {
  2372 + /* background: #d3dce6; */
  2373 + }
  2374 +
  2375 + .bg-purple-light {
  2376 + background: #e5e9f2;
  2377 + }
  2378 +
  2379 + .grid-content {
  2380 + border-radius: 4px;
  2381 + min-height: 36px;
  2382 + }
  2383 +
  2384 + .row-bg {
  2385 + padding: 10px 0;
  2386 + background-color: #f9fafc;
  2387 + }
  2388 +
  2389 + /deep/ .bg-purple[data-v-0e3fe4ec] {
  2390 + background: #fff;
  2391 + height: 50px;
  2392 + }
  2393 +
  2394 + /deep/ .el-form--label-top .el-form-item__label {
  2395 + padding: 0;
  2396 + }
  2397 +
  2398 +
  2399 + .pagination {
  2400 + text-align: right;
  2401 + line-height: 20px;
  2402 + }
  2403 +
  2404 + /deep/ .el-pagination__total {
  2405 + margin-top: 4px;
  2406 + }
  2407 +
  2408 +::v-deep .xiang_css{
  2409 + margin-top:11vh !important;
  2410 + margin-left: 13%;
  2411 + max-height:600px;
  2412 + overflow-y: auto;
  2413 +}
  2414 + /deep/ .dialog_css {
  2415 + margin-top: 11vh;
  2416 + margin-left: 25%;
  2417 + padding: 0px;
  2418 +
  2419 + .el-dialog__title {
  2420 + font-size: 14px;
  2421 + color: #000000e6;
  2422 + }
  2423 + }
  2424 +
  2425 + /deep/.el-dialog__body {
  2426 + padding: 0px;
  2427 + }
  2428 +
  2429 + /deep/ .el-dialog__header {
  2430 + background-color: #fff;
  2431 + }
  2432 +
  2433 + /deep/.el-dialog__title {
  2434 + font-size: 14px;
  2435 + color: #000000e6;
  2436 + }
  2437 +
  2438 + .el-row {
  2439 + margin-bottom: 20px;
  2440 +
  2441 + &:last-child {
  2442 + margin-bottom: 0;
  2443 + }
  2444 + }
  2445 +
  2446 + /deep/ .avatar-uploader .el-upload {
  2447 + border: 1px dashed #d9d9d9;
  2448 + border-radius: 6px;
  2449 + cursor: pointer;
  2450 + position: relative;
  2451 + overflow: hidden;
  2452 + }
  2453 +
  2454 + .avatar-uploader .el-upload:hover {
  2455 + border-color: #409EFF;
  2456 + }
  2457 +
  2458 + .avatar-uploader-icon {
  2459 + font-size: 28px;
  2460 + color: #8c939d;
  2461 + width: 108px;
  2462 + height: 108px;
  2463 + line-height: 108px;
  2464 + /*text-align: center;*/
  2465 + }
  2466 +
  2467 + .avatar {
  2468 + width: 108px;
  2469 + height: 108px;
  2470 + display: block;
  2471 + }
  2472 +
  2473 + ::v-deep .el-tabs__item.is-active {
  2474 + color: #3F9B6A;
  2475 + opacity: 1;
  2476 + }
  2477 +
  2478 + /deep/ .el-tabs__nav-wrap::after {
  2479 + background-color: #fff;
  2480 + }
  2481 +
  2482 + ::v-deep .el-tabs__item:hover {
  2483 + color: #3F9B6A;
  2484 + cursor: pointer;
  2485 + opacity: 1;
  2486 + }
  2487 +
  2488 + /deep/ .el-tabs__active-bar {
  2489 + background-color: #389865;
  2490 + }
  2491 +
  2492 + /deep/ .el-table_2_column_13 {
  2493 + font-weight: 100;
  2494 + }
  2495 +::v-deep .el-input__inner{
  2496 + height:32px;
  2497 + line-height:32px;
  2498 +}
  2499 + ::v-deep .el-input__inner:focus {
  2500 + border: #3F9B6A 1px solid;
  2501 + }
  2502 +
  2503 + ::v-deep .el-input__inner:hover {
  2504 + border: #3F9B6A 1px solid;
  2505 + }
  2506 +
  2507 + ::v-deep .el-select .el-input.is-focus .el-input__inner {
  2508 + border-color: #3F9B6A
  2509 + }
  2510 +
  2511 + ::v-deep .el-form-item__label {
  2512 + font-weight: 100;
  2513 + font-size: 14px;
  2514 + color:#000000e6;
  2515 + }
  2516 +
  2517 + /* ::v-deep .el-steps .el-step__head.is-wait {
  2518 + background-color: red; /* 修改为你想要的颜色 */
  2519 +
  2520 + /* 修改未进行步骤的描述文字颜色 */
  2521 + ::v-deep .el-steps .el-step__description.is-wait {
  2522 + color: #999;
  2523 + /* 修改为你想要的颜色 */
  2524 + }
  2525 +
  2526 + /* 修改未进行步骤的图标颜色 */
  2527 + ::v-deep .el-steps .el-step__icon.is-text.is-wait {
  2528 + color: #999;
  2529 + /* 修改为你想要的颜色 */
  2530 + }
  2531 +
  2532 + /* 修改未进行步骤的边框色 */
  2533 + ::v-deep .el-steps .el-step__line.is-wait {
  2534 + border-color: #eee;
  2535 + /* 修改为你想要的颜色 */
  2536 + }
  2537 +
  2538 + ::v-deep .el-steps .is-process .el-step__line {
  2539 + background-color: #3F9B6A;
  2540 + /* 修改线的颜色 */
  2541 + }
  2542 +
  2543 + ::v-deep .el-steps .is-process .el-step__title {
  2544 + color: #fe7b6a;
  2545 + /* 修改进行中步骤的标题颜色 */
  2546 + }
  2547 +
  2548 + ::v-deep .el-steps .is-process .el-step__icon {
  2549 + color: #fff;
  2550 + /* 修改进行中步骤的图标颜色 */
  2551 + background: #3F9B6A;
  2552 + /* 修改进行中步骤图标的边框颜色 */
  2553 + border: 0px;
  2554 + }
  2555 +
  2556 + ::v-deep .el-step__icon-inner {
  2557 + line-height: 0
  2558 + }
  2559 +
  2560 + /* 线条长度 */
  2561 + ::v-deep .el-step.is-vertical .el-step__line {
  2562 + top: 30px;
  2563 + height: 60px;
  2564 + }
  2565 +
  2566 + .fenlan {
  2567 + display: flex;
  2568 + }
  2569 +
  2570 + .souLei {
  2571 + border: 1px solid #d7d7d7;
  2572 + background-color: #fff;
  2573 + width:300px;
  2574 + margin-right:20px;
  2575 +
  2576 + }
  2577 +::v-deep .el-menu{
  2578 + border-right:0px;
  2579 +}
  2580 +::v-deep .el-menu-item{
  2581 + height:36px;
  2582 + line-height: 33px;
  2583 +}
  2584 +
  2585 +::v-deep .el-submenu__title{
  2586 + height:36px;
  2587 + line-height: 33px;
  2588 + font-weight:600;
  2589 + border-radius:4px;
  2590 + margin:4px 0;
  2591 +}
  2592 +::v-deep .el-menu-item-group__title{
  2593 + padding:0px
  2594 +}
  2595 + ::v-deep .fudan{
  2596 + font-weight:600;
  2597 + border-radius:4px;
  2598 + padding-left:29px !important;
  2599 + margin:4px 0;
  2600 + }
  2601 + ::v-deep .chinddan{
  2602 + margin:5px 0;
  2603 + }
  2604 +</style>
  2605 +<style lang="scss" scoped>
  2606 + ::v-deep .el-table tr:hover{
  2607 + background-color: #F0F7F3 !important;
  2608 + }
  2609 + ::v-deep .souTabs {
  2610 + padding:0 15px 0 12px;
  2611 + .el-submenu{
  2612 + padding:0px;
  2613 + }
  2614 + .el-menu-item:focus, .el-menu-item:hover{
  2615 + background-color: #3F9B6A !important;
  2616 + }
  2617 + .el-menu-item:hover{
  2618 + background-color:#3f9b6a1a !important;
  2619 + color:#000 !important;
  2620 + }
  2621 + .el-tabs--left .el-tabs__header.is-left {
  2622 + width: 100%;
  2623 + margin-right: 0px;
  2624 + }
  2625 +
  2626 + .el-tabs--left .el-tabs__item.is-left {
  2627 + text-align: center;
  2628 + }
  2629 +
  2630 + .el-tabs__item.is-active {
  2631 + background-color: #DEEBE2;
  2632 + }
  2633 + }
  2634 +
  2635 + ::v-deep .tableList {
  2636 + width: 100%;
  2637 + }
  2638 + ::v-deep .fenxi_css{
  2639 + margin-top: 9vh !important;
  2640 + margin-left: 10%;
  2641 + .el-dialog__header{
  2642 + padding:0;
  2643 + }
  2644 + .el-tabs--border-card {
  2645 + border: none;
  2646 + -webkit-box-shadow:none;
  2647 + box-shadow:none;
  2648 + .el-tabs__content{
  2649 + border: 1px solid #E4E7ED;
  2650 + padding:0;
  2651 + }
  2652 + .el-tabs__header{
  2653 + background-color: #fff;
  2654 + border-bottom:none;
  2655 + }
  2656 + .el-tabs__content{
  2657 + border: none;
  2658 + }
  2659 + .el-tabs__header .el-tabs__item{
  2660 + border: none;
  2661 + margin-right: 10px;
  2662 + background-color: #F2F2F2;
  2663 + font-size:12px;
  2664 + border-top-left-radius: 8px;
  2665 + border-top-right-radius: 8px;
  2666 + padding:0 15px;
  2667 + }
  2668 + .el-tabs__header .el-tabs__item.is-active{
  2669 + color:#fff;
  2670 + background-color: #3F9B6A;
  2671 + }
  2672 + .el-tabs__header .el-tabs__item:not(.is-disabled):hover{
  2673 + color:#3F9B6A;
  2674 + }
  2675 + }
  2676 +
  2677 + }
  2678 + ::v-deep .xiaoguo_css{
  2679 + margin-top: 30vh !important;
  2680 + margin-left: 25%;
  2681 + .el-dialog__header{
  2682 + padding:0;
  2683 + }
  2684 + .el-tabs--border-card {
  2685 + border: none;
  2686 + -webkit-box-shadow:none;
  2687 + box-shadow:none;
  2688 + .el-tabs__content{
  2689 + border: 1px solid #E4E7ED;
  2690 + padding:0;
  2691 + }
  2692 + .el-tabs__header{
  2693 + background-color: #fff;
  2694 + border-bottom:none;
  2695 + }
  2696 + .el-tabs__content{
  2697 + border: none;
  2698 + }
  2699 + .el-tabs__header .el-tabs__item{
  2700 + border: none;
  2701 + margin-right: 10px;
  2702 + background-color: #F2F2F2;
  2703 + font-size:12px;
  2704 + border-top-left-radius: 8px;
  2705 + border-top-right-radius: 8px;
  2706 + padding:0 15px;
  2707 + }
  2708 + .el-tabs__header .el-tabs__item.is-active{
  2709 + color:#fff;
  2710 + background-color: #3F9B6A;
  2711 + }
  2712 + .el-tabs__header .el-tabs__item:not(.is-disabled):hover{
  2713 + color:#3F9B6A;
  2714 + }
  2715 + }
  2716 + }
  2717 + ::v-deep .demo-input-suffix {
  2718 + display: flex;
  2719 + margin-right: 20px;
  2720 + width: 83%;
  2721 +
  2722 + .el-input__inner{
  2723 + height:32px;
  2724 + }
  2725 + }
  2726 + ::v-deep .el-input__icon{
  2727 + line-height:25px;
  2728 + }
  2729 + ::v-deep .el-input--mini .el-input__icon{
  2730 + line-height:33px;
  2731 + }
  2732 +
  2733 + ::v-deep .buttonHover:hover{
  2734 + color:#3f9b6a !important;
  2735 + border-color: #c5e1d2 !important;
  2736 + background-color: #ecf5f0 !important;
  2737 + outline: none;
  2738 + }
  2739 + ::v-deep .DelBtnHover:hover{
  2740 + color:#fff !important;
  2741 + border-color: rgb(226, 78, 90) !important;
  2742 + background-color: rgb(226, 78, 90) !important;
  2743 + outline: none;
  2744 + }
  2745 +::v-deep .el-menu-item.is-active {
  2746 + background-color: #3F9B6A !important;
  2747 +}
  2748 +::v-deep .jindutiao{
  2749 + display:flex;
  2750 + align-items:center;
  2751 + margin-bottom:15px;
  2752 + .el-progress-bar__outer{
  2753 + border-radius:0px;
  2754 + }
  2755 + .el-progress-bar__inner{
  2756 + border-radius:0px;
  2757 + }
  2758 +}
  2759 +
  2760 +</style>
... ...
yanshouban/src/views/atmosphere/atmosphereSp.vue
... ... @@ -61,7 +61,7 @@
61 61 </el-table-column>
62 62 <el-table-column label="创建时间" prop="createDate" min-width="250" >
63 63 </el-table-column>
64   - <el-table-column prop="createUser" label="上传人员" min-width="80">
  64 + <el-table-column prop="auditReminderTime" label="审核提醒时间" width="200">
65 65  
66 66 </el-table-column>
67 67 <el-table-column label="操作" min-width="200">
... ...
yanshouban/src/views/business/autd/index.vue
... ... @@ -360,7 +360,8 @@ export default {
360 360 contractStatus: '', //合同状态
361 361 dataStatus: '1', //数据状态(1.使用中 2.往期合同 3.已终止)
362 362 }, //合同字段
363   - hefuData:[]
  363 + hefuData:[],
  364 + hemiList:['earnestMoney','contractAmount','lessorName','telephone','bankAccount','tenantName','tenantTelephone','tenantBankAccount'],
364 365 }
365 366 },
366 367 mounted () {
... ... @@ -499,7 +500,8 @@ export default {
499 500 if(this.hefuData.length !=0){
500 501 this.heForm.appendicesContract = JSON.stringify(this.hefuData[0])
501 502 }
502   - await contractAdd(this.heForm)
  503 + let heinfo = this.$decryptall(this.heForm,this.hemiList)
  504 + await contractAdd(heinfo)
503 505 this.hetongBox = false
504 506 },
505 507 hefuRemove() {
... ...
yanshouban/src/views/business/businessList/index.vue
... ... @@ -802,7 +802,8 @@ export default {
802 802 },
803 803 business:[],
804 804 plan_Time:[],
805   - miList:['shopPhone','shopPassword','idCardNum','emailAddress','shopAdress','legalRepresentative','chargePersonPhone','emailAddress']
  805 + miList:['shopPhone','shopPassword','idCardNum','emailAddress','shopAdress','legalRepresentative','chargePersonPhone','emailAddress','chargePersonName'],
  806 + dataIntegrity:''
806 807 }
807 808 },
808 809 // 监听属性 类似于data概念
... ... @@ -967,9 +968,8 @@ export default {
967 968 })
968 969 } else {
969 970 let newinfo = this.$decryptall(this.ruleForm,this.miList)
970   - let arr = [newinfo.shopPhone,newinfo.shopPassword,newinfo.idCardNum,newinfo.emailAddress,newinfo.shopAdress,newinfo.legalRepresentative,newinfo.chargePersonPhone]
971   - arr = arr.join(',')
972   - newinfo.dataIntegrity = this.$encrypt(arr)
  971 +
  972 + newinfo.dataIntegrity = this.dataIntegrity
973 973 businessListUpdate(newinfo).then(res => {
974 974  
975 975 if (res.code === '') {
... ... @@ -1009,9 +1009,8 @@ export default {
1009 1009 this.ruleForm.shopPhone = this.$decrypt(this.ruleForm.shopPhone)
1010 1010 this.ruleForm.shopPassword = this.$decrypt(this.ruleForm.shopPassword)
1011 1011 this.ruleForm.shopAdress = this.$decrypt(this.ruleForm.shopAdress)
1012   - this.ruleForm.dataIntegrity = this.$decrypt(this.ruleForm.dataIntegrity)
1013 1012 this.ruleForm.chargePersonPhone = this.$decrypt(this.ruleForm.chargePersonPhone)
1014   -
  1013 + this.ruleForm.chargePersonName = this.$decrypt(this.ruleForm.chargePersonName)
1015 1014 }
1016 1015 },
1017 1016 // 编辑
... ... @@ -1031,10 +1030,14 @@ export default {
1031 1030 this.ruleForm.shopPhone = this.$decrypt(this.ruleForm.shopPhone)
1032 1031 this.ruleForm.shopPassword = this.$decrypt(this.ruleForm.shopPassword)
1033 1032 this.ruleForm.shopAdress = this.$decrypt(this.ruleForm.shopAdress)
1034   - this.ruleForm.dataIntegrity = this.$decrypt(this.ruleForm.dataIntegrity)
1035 1033 this.ruleForm.chargePersonPhone = this.$decrypt(this.ruleForm.chargePersonPhone)
  1034 + this.ruleForm.chargePersonName = this.$decrypt(this.ruleForm.chargePersonName)
1036 1035  
1037   -
  1036 +let c1 =JSON.parse((JSON.stringify(this.ruleForm)))
  1037 + let newinfo = this.$decryptall(c1,this.miList)
  1038 + let arr = [newinfo.shopPhone,newinfo.shopPassword,newinfo.idCardNum,newinfo.emailAddress,newinfo.shopAdress,newinfo.legalRepresentative,newinfo.chargePersonPhone,newinfo.chargePersonName]
  1039 + arr = arr.join(',')
  1040 + this.dataIntegrity = this.$encrypt(arr)
1038 1041 },
1039 1042 // 删除
1040 1043 async del (row) {
... ... @@ -1104,6 +1107,7 @@ export default {
1104 1107 item.shopAdress = this.$decrypt(item.shopAdress)
1105 1108 item.legalRepresentative = this.$decrypt(item.legalRepresentative)
1106 1109 item.chargePersonPhone = this.$decrypt(item.chargePersonPhone)
  1110 + item.chargePersonName = this.$decrypt(item.chargePersonName)
1107 1111 })
1108 1112  
1109 1113 },
... ...
yanshouban/src/views/customer/icManagement/index.vue
... ... @@ -459,7 +459,8 @@
459 459 trigger: 'change'
460 460 }, ],
461 461 },
462   - miList:['unifiedSocialCreditCode','legalRepresentative','address','emailAddress','contactName','contactPhone']
  462 + miList:['unifiedSocialCreditCode','legalRepresentative','address','emailAddress','contactName','contactPhone'],
  463 + dataIntegrity:''
463 464 }
464 465 },
465 466  
... ... @@ -521,9 +522,7 @@
521 522 this.secondData.businessEndDate = this.businessStartDate[1]
522 523 }
523 524 let newinfo = this.$decryptall(this.secondData,this.miList)
524   - let arr = [newinfo.unifiedSocialCreditCode,newinfo.legalRepresentative,newinfo.address,newinfo.emailAddress,newinfo.contactName,newinfo.contactPhone]
525   - arr = arr.join(',')
526   - newinfo.dataIntegrity = this.$encrypt(arr)
  525 + newinfo.dataIntegrity = this.dataIntegrity
527 526 await icManEdit(newinfo);
528 527 this.detbox = false
529 528 this.getAll();
... ... @@ -537,14 +536,23 @@
537 536 bianjilist(item) {
538 537 this.detbox = true;
539 538 this.secondData = item;
  539 + let c1 =JSON.parse((JSON.stringify(this.secondData)))
540 540 this.businessStartDate[0] = item.businessStartDate
541 541 this.businessStartDate[1] = item.businessEndDate
542 542 this.msgid = item.id;
  543 + let newinfo = this.$decryptall(c1,this.miList)
  544 + let arr = [newinfo.contactPhone,newinfo.idCardNumber,newinfo.unifiedSocialCreditCode,newinfo.legalRepresentative,newinfo.address,newinfo.emailAddress]
  545 + arr = arr.join(',')
  546 + this.dataIntegrity = this.$encrypt(arr)
543 547 if (this.edit) {
544 548 this.edit = false;
545 549 }
546 550 },
547 551 tijiao(item,val){
  552 + let c1 =JSON.parse((JSON.stringify(item)))
  553 + let newinfo = this.$decryptall(c1,this.miList)
  554 + let arr = [newinfo.contactPhone,newinfo.idCardNumber,newinfo.unifiedSocialCreditCode,newinfo.legalRepresentative,newinfo.address,newinfo.emailAddress]
  555 + arr = arr.join(',')
548 556 if(val == 2){
549 557 const h = this.$createElement;
550 558 this.$msgbox({
... ... @@ -559,7 +567,7 @@
559 567 customClass:'oe-dialog-btn',
560 568 beforeClose: (action, instance, done) => {
561 569 if (action === 'confirm') {
562   - icManEdit({id: item.id,auditStatus:val}).then(res=>{
  570 + icManEdit({id: item.id,auditStatus:val,dataIntegrity:newinfo.dataIntegrity}).then(res=>{
563 571 this.$message({
564 572 message: '提交成功',
565 573 type: 'success'
... ... @@ -586,7 +594,7 @@
586 594 customClass:'oe-dialog-btn',
587 595 beforeClose: (action, instance, done) => {
588 596 if (action === 'confirm') {
589   - icManEdit({id: item.id,auditStatus:val}).then(res=>{
  597 + icManEdit({id: item.id,auditStatus:val,dataIntegrity:newinfo.dataIntegrity}).then(res=>{
590 598 this.$message({
591 599 message: '撤回成功',
592 600 type: 'success'
... ... @@ -617,7 +625,9 @@
617 625 },
618 626 // 查询
619 627 async onSubmit() {
620   - const res = await icManAll(this.formSel)
  628 + let c1 =JSON.parse((JSON.stringify(this.formSel)))
  629 + c1.contactName = this.$encrypt(c1.contactName)
  630 + const res = await icManAll(c1)
621 631 this.tableData = res.data.content
622 632 this.total = res.data.content.length
623 633 this.tableData.map(res=>{
... ... @@ -756,6 +766,10 @@ let newinfo = this.$decryptall(this.ruleForm,this.miList)
756 766 icManDel({
757 767 id: item.id
758 768 }).then(res => {
  769 + this.$message({
  770 + message: '删除成功',
  771 + type: 'success'
  772 + })
759 773 this.getAll()
760 774 done();
761 775 })
... ...
yanshouban/src/views/customer/icReview/index.vue
... ... @@ -840,7 +840,9 @@ export default {
840 840 },
841 841 // 查询
842 842 async onSubmit() {
843   - const res = await icManAll(this.formSel)
  843 + let c1 =JSON.parse((JSON.stringify(this.formSel)))
  844 + c1.contactName = this.$encrypt(c1.contactName)
  845 + const res = await icManAll(c1)
844 846 this.tableData = res.data.content
845 847 this.total = res.data.content.length
846 848 this.tableData.map(res=>{
... ...
yanshouban/src/views/customer/rsaManagement/index.vue
... ... @@ -763,7 +763,8 @@
763 763 pageNumber:1,
764 764 pageSize:10,
765 765 },
766   - miList:['contactPhone','idCardNumber','unifiedSocialCreditCode','legalRepresentative','address','emailAddress']
  766 + miList:['contactPhone','idCardNumber','unifiedSocialCreditCode','legalRepresentative','address','emailAddress'],
  767 + dataIntegrity:''
767 768 }
768 769 },
769 770  
... ... @@ -832,9 +833,7 @@
832 833 this.secondData.rentalPeriodEndTime = this.rentalPeriodTime[1]
833 834 }
834 835 let newinfo = this.$decryptall(this.secondData,this.miList)
835   - let arr = [newinfo.contactPhone,newinfo.idCardNumber,newinfo.unifiedSocialCreditCode,newinfo.legalRepresentative,newinfo.address,newinfo.emailAddress]
836   - arr = arr.join(',')
837   - newinfo.dataIntegrity = this.$encrypt(arr)
  836 + newinfo.dataIntegrity = this.dataIntegrity
838 837 const res = await rsaManEdit(newinfo)
839 838 this.detbox = false;
840 839 this.getAll();
... ... @@ -848,24 +847,37 @@ let newinfo = this.$decryptall(this.secondData,this.miList)
848 847 // 编辑
849 848 bianjilist(item) {
850 849 this.secondData = item
  850 + let c1 =JSON.parse((JSON.stringify(this.secondData)))
851 851 this.$set(this.idCardValidStart, 0, item.idCardValidStart)
852 852 this.$set(this.idCardValidStart, 1, item.idCardValidEnd)
853 853 this.$set(this.businessStartTime, 0, item.businessStartTime)
854 854 this.$set(this.businessStartTime, 1, item.businessEndTime)
855 855 this.$set(this.rentalPeriodTime, 0, item.rentalPeriodStartTime)
856 856 this.$set(this.rentalPeriodTime, 1, item.rentalPeriodEndTime)
857   - this.msgid = item.id;
  857 + this.msgid = item.id
  858 + let newinfo = this.$decryptall(c1,this.miList)
  859 + let arr = [newinfo.contactPhone,newinfo.idCardNumber,newinfo.unifiedSocialCreditCode,newinfo.legalRepresentative,newinfo.address,newinfo.emailAddress]
  860 + arr = arr.join(',')
  861 + this.dataIntegrity = this.$encrypt(arr)
858 862 this.detbox = true
859 863 if (this.edit) {
860 864 this.edit = false;
861 865 }
862 866 },
863 867 async chehui(item){
864   - await rsaManEdit({id:item.id,auditStatus:'1'})
  868 + let c1 =JSON.parse((JSON.stringify(item)))
  869 + let newinfo = this.$decryptall(c1,this.miList)
  870 + let arr = [newinfo.contactPhone,newinfo.idCardNumber,newinfo.unifiedSocialCreditCode,newinfo.legalRepresentative,newinfo.address,newinfo.emailAddress]
  871 + arr = arr.join(',')
  872 + await rsaManEdit({id:item.id,auditStatus:'1',dataIntegrity:newinfo.dataIntegrity})
865 873 this.getAll()
866 874 },
867 875 async getshen(item){
868   - await rsaManEdit({id:item.id,auditStatus:'2'})
  876 + let c1 =JSON.parse((JSON.stringify(item)))
  877 + let newinfo = this.$decryptall(c1,this.miList)
  878 + let arr = [newinfo.contactPhone,newinfo.idCardNumber,newinfo.unifiedSocialCreditCode,newinfo.legalRepresentative,newinfo.address,newinfo.emailAddress]
  879 + arr = arr.join(',')
  880 + await rsaManEdit({id:item.id,auditStatus:'2',dataIntegrity:newinfo.dataIntegrity})
869 881 this.getAll()
870 882 },
871 883  
... ...
yanshouban/src/views/customer/rsaReview/index.vue
... ... @@ -893,7 +893,9 @@ export default {
893 893 auditStatus:''
894 894 },
895 895 shenheData:[],
896   - rentalPeriodTime:[]
  896 + rentalPeriodTime:[],
  897 + dataIntegrity:'',
  898 + miList:['contactPhone','idCardNumber','unifiedSocialCreditCode','legalRepresentative','address','emailAddress'],
897 899 };
898 900 },
899 901  
... ... @@ -975,12 +977,17 @@ export default {
975 977 this.idCardValidStart =[]
976 978 this.businessStartTime =[]
977 979 this.secondData = item
  980 + let c1 =JSON.parse((JSON.stringify(item)))
978 981 this.$set(this.idCardValidStart, 0, item.idCardValidStart)
979 982 this.$set(this.idCardValidStart, 1, item.idCardValidEnd)
980 983 this.$set(this.businessStartTime, 0, item.businessStartTime)
981 984 this.$set(this.businessStartTime, 1, item.businessEndTime)
982 985 this.$set(this.rentalPeriodTime, 0, item.rentalPeriodStartTime)
983 986 this.$set(this.rentalPeriodTime, 1, item.rentalPeriodEndTime)
  987 + let newinfo = this.$decryptall(c1,this.miList)
  988 + let arr = [newinfo.contactPhone,newinfo.idCardNumber,newinfo.unifiedSocialCreditCode,newinfo.legalRepresentative,newinfo.address,newinfo.emailAddress]
  989 + arr = arr.join(',')
  990 + this.dataIntegrity = this.$encrypt(arr)
984 991 this.actSpye = true
985 992 },
986 993  
... ... @@ -1034,9 +1041,9 @@ export default {
1034 1041 },
1035 1042 async OAshen(){
1036 1043 if(this.liuYe == '1'){
1037   - await rsaManEdit({id:this.secondData.id,auditStatus:'3'})
  1044 + await rsaManEdit({id:this.secondData.id,auditStatus:'3',dataIntegrity:this.dataIntegrity})
1038 1045 }else{
1039   - await rsaManEdit({id:this.secondData.id,auditStatus:'4'})
  1046 + await rsaManEdit({id:this.secondData.id,auditStatus:'4',dataIntegrity:this.dataIntegrity})
1040 1047 }
1041 1048 this.Liunie = false
1042 1049 this.actSpye = false
... ...
yanshouban/src/views/customer/yixiang/index.vue
... ... @@ -42,39 +42,80 @@
42 42 @click="addbuss">新增</el-button>
43 43 </div>
44 44 <!-- 表格 -->
45   - <el-table :data="
46   - tableData.slice(
47   - (currentPage - 1) * pageSize,
48   - currentPage * pageSize
49   - )
50   - " :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}">
51   - <el-table-column label="序号" min-width="80">
52   - <template slot-scope="scope">
53   - {{scope.$index+1}}
54   - </template>
55   - </el-table-column>
56   - <el-table-column label="意向客户名称" prop="intentCustomerName" min-width="150" />
57   - <el-table-column label="意向资源名称" prop="intentionalStoreName" min-width="150" />
58   - <el-table-column label="编号" prop="id" min-width="150" />
59   - <el-table-column label="意向资源类型" prop="intentionalBusinessType" min-width="150" />
60   - <el-table-column label="开始日期" prop="businessStartTime" min-width="200" />
61   - <el-table-column label="意向租期" prop="leaseTerm" min-width="150" />
62   - <el-table-column label="意向租金单价(元/平方)" prop="rent" min-width="250" />
63   -
64   - <el-table-column label="操作" min-width="350">
65   - <template slot-scope="scope">
66   - <div class="tableBtn greens" @click="handleEditForm(scope.row)">
67   - 查看
68   - </div>
69   - <div class="tableBtn greens" @click="bianjilist(scope.row)" >
70   - 编辑
71   - </div>
72   - <div class="tableBtn greens" @click="pipei(scope.row)" >
73   - 一键匹配
74   - </div>
75   - </template>
76   - </el-table-column>
77   - </el-table>
  45 +
  46 + <div>招商意向信息列表</div>
  47 + <el-table :data="
  48 + tableData.slice(
  49 + (currentPage - 1) * pageSize,
  50 + currentPage * pageSize
  51 + )
  52 + " :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}">
  53 + <el-table-column label="序号" min-width="80">
  54 + <template slot-scope="scope">
  55 + {{scope.$index+1}}
  56 + </template>
  57 + </el-table-column>
  58 + <el-table-column label="意向客户名称" prop="intentCustomerName" min-width="150" />
  59 + <el-table-column label="意向资源名称" prop="intentionalStoreName" min-width="150" />
  60 + <el-table-column label="编号" prop="id" min-width="150" />
  61 + <el-table-column label="意向资源类型" prop="intentionalBusinessType" min-width="150" />
  62 + <el-table-column label="开始日期" prop="businessStartTime" min-width="200" />
  63 + <el-table-column label="意向租期" prop="leaseTerm" min-width="150" />
  64 + <el-table-column label="意向租金单价(元/平方)" prop="rent" min-width="250" />
  65 +
  66 + <el-table-column label="操作" min-width="350">
  67 + <template slot-scope="scope">
  68 + <div class="tableBtn greens" @click="handleEditForm(scope.row)">
  69 + 查看
  70 + </div>
  71 + <div class="tableBtn greens" @click="bianjilist(scope.row)" >
  72 + 编辑
  73 + </div>
  74 + <div class="tableBtn greens" @click="pipei(scope.row)" >
  75 + 一键匹配
  76 + </div>
  77 + </template>
  78 + </el-table-column>
  79 + </el-table>
  80 +
  81 +
  82 +
  83 + <div style="padding: 20px 0;">用户信誉库列表</div>
  84 + <el-table :data="
  85 + tableData.slice(
  86 + (currentPage - 1) * pageSize,
  87 + currentPage * pageSize
  88 + )
  89 + " :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}">
  90 + <el-table-column label="序号" min-width="100">
  91 + <template slot-scope="scope">
  92 + {{scope.$index+1}}
  93 + </template>
  94 + </el-table-column>
  95 + <el-table-column label="意向客户名称" prop="intentCustomerName" min-width="150" />
  96 + <el-table-column label="意向资源名称" prop="intentionalStoreName" min-width="150" />
  97 + <el-table-column label="当前评级" prop="customerLevel" min-width="120">
  98 + </el-table-column>
  99 + <el-table-column label="更新时间" prop="temporaryPavingPlanName" min-width="200" />
  100 + <el-table-column label="操作" min-width="200">
  101 + <template slot-scope="scope">
  102 + <div class="tableBtn greens" @click="handleEditForm(scope.row)">
  103 + 详情
  104 + </div>
  105 + <div class="tableBtn greens" @click="pingji(scope.row)">
  106 + 评级
  107 + </div>
  108 +
  109 +
  110 + </template>
  111 + </el-table-column>
  112 + </el-table>
  113 +
  114 +<div class="fenye">
  115 + <el-pagination class="pagination" :hide-on-single-page="flag" background small :current-page="currentPage"
  116 + layout="prev, pager, next,total" :total="total" @size-change="handleSizeChange"
  117 + @current-change="handleCurrentChange" />
  118 + </div>
78 119 <!-- 详情框 :visible.sync="detbox" -->
79 120 <!-- <div v-show="detbox" class="dialog_css_Xq " style="padding: 0;width:85%"> -->
80 121 <el-dialog :visible.sync="detbox" custom-class="tongyong_css" style="padding: 0" width="55%" center
... ... @@ -613,13 +654,50 @@
613 654 </div>
614 655 </el-dialog> -->
615 656 </el-dialog>
616   - <div class="fenye">
617   - <el-pagination class="pagination" :hide-on-single-page="flag" background small :current-page="currentPage"
618   - layout="prev, pager, next,total" :total="total" @size-change="handleSizeChange"
619   - @current-change="handleCurrentChange" />
620   - </div>
  657 +
621 658 </div>
622 659 </div>
  660 + <el-dialog :visible.sync="peiPingShow" custom-class="tongyong_css" style="padding: 0" width="65%" center
  661 + :close-on-click-modal="false" class="dialog_css_Xq" :show-close="false">
  662 + <div style="
  663 + background-color: #fafafa;
  664 + border: 1px solid #eaeaea;
  665 + height: 42px;
  666 + width: 100%;
  667 + margin-bottom: 20px;
  668 + padding: 0 20px;
  669 + line-height: 42px;
  670 + ">
  671 + 评级
  672 + </div>
  673 +
  674 +
  675 +
  676 + <div style="padding: 0 20px 20px 20px">
  677 + <el-form ref="peiPing" :model="peiPing" label-width="130px">
  678 +
  679 +
  680 + <el-form-item label="评级" prop="isLegalPerson">
  681 + <el-select v-model="peiPing.customerLevel" placeholder="请选择" style="width:100%">
  682 + <el-option label="A" value="A" />
  683 + <el-option label="B" value="B" />
  684 + <el-option label="C" value="C" />
  685 + </el-select>
  686 + </el-form-item>
  687 +
  688 + </el-form>
  689 +
  690 +
  691 + </div>
  692 + <span slot="footer" class="dialog-footer">
  693 + <el-button class="buttonHover" style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"
  694 + @click="peiPingShow=false">取 消</el-button>
  695 + <el-button style="background-color: #3F9B6A;color: #fff" @click="peiPingChenk">确
  696 + 定</el-button>
  697 + </span>
  698 +
  699 +
  700 + </el-dialog>
623 701 </div>
624 702 </template>
625 703  
... ... @@ -735,7 +813,14 @@
735 813     },
736 814 pageNumber:1,
737 815 pageSize:10,
738   - }
  816 + },
  817 + miList:['contactPhone','idCardNumber','unifiedSocialCreditCode','legalRepresentative','address','emailAddress'],
  818 + dataIntegrity:'',
  819 + peiPing:{
  820 + customerLevel:'',
  821 + id:''
  822 + },
  823 + peiPingShow:false,
739 824 }
740 825 },
741 826  
... ... @@ -896,6 +981,7 @@ async getshen(item){
896 981 this.ggXin = true;
897 982 this.getAll();
898 983 },
  984 +
899 985 // 新增确定
900 986 async addCheck() {
901 987 if (this.idCardValidStart.length != 0) {
... ... @@ -1041,6 +1127,22 @@ async getshen(item){
1041 1127 },
1042 1128 this.pipData = []
1043 1129 },
  1130 + pingji(item){
  1131 + this.peiPing.id = item.id
  1132 + this.peiPing.customerLevel = item.customerLevel
  1133 + let c1 =JSON.parse((JSON.stringify(item)))
  1134 + let newinfo = this.$decryptall(c1,this.miList)
  1135 + let arr = [newinfo.contactPhone,newinfo.idCardNumber,newinfo.unifiedSocialCreditCode,newinfo.legalRepresentative,newinfo.address,newinfo.emailAddress]
  1136 + arr = arr.join(',')
  1137 + this.peiPing.dataIntegrity = this.$encrypt(arr)
  1138 + this.peiPingShow = true
  1139 + },
  1140 + async peiPingChenk(){
  1141 + await rsaManEdit(this.peiPing)
  1142 + this.getAll()
  1143 + this.peiPingShow = false
  1144 +
  1145 + },
1044 1146 }
1045 1147 }
1046 1148 </script>
... ...
yanshouban/src/views/detect/addziyuan.vue
... ... @@ -158,6 +158,16 @@
158 158 </el-col>
159 159 </el-row>
160 160 <el-row :gutter="20">
  161 + <el-col :span="12">
  162 + <el-form-item label="商铺业态" prop="commercialForm">
  163 + <el-select v-model="ruleForm.commercialForm" placeholder="请选择" style="margin-top:5px;width: 100%;">
  164 + <el-option label="商超" value="商超"></el-option>
  165 + </el-select>
  166 + </el-form-item>
  167 + </el-col>
  168 +
  169 + </el-row>
  170 + <el-row :gutter="20">
161 171 <el-col :span="24">
162 172 <el-form-item label="地图标点" prop="mapPunctuation">
163 173 <div style="width: 100%;height: 300px;border: 1px solid #3F9B6A;" v-if="showAdd">
... ... @@ -275,6 +285,12 @@
275 285 </el-input>
276 286 </el-form-item>
277 287 </el-col>
  288 + <el-col :span="12">
  289 + <el-form-item label="场地编号" prop="venueSpaceNumber">
  290 + <el-input v-model="ruleForm.venueSpaceNumber" disabled placeholder="将根据类型自动为资源编号"
  291 + style="margin-top:5px;"></el-input>
  292 + </el-form-item>
  293 + </el-col>
278 294 </el-row>
279 295 <el-row :gutter="20">
280 296 <el-col :span="24">
... ... @@ -572,6 +588,7 @@
572 588 belongingRegion: '',
573 589 belongingDepartment: '',
574 590 head: '',
  591 + commercialForm:'',
575 592 detailedLocation: '',
576 593 mapPunctuation: '',
577 594 shopDescription: '',
... ... @@ -755,6 +772,7 @@
755 772 belongingRegion: '',
756 773 belongingDepartment: '',
757 774 head: '',
  775 + commercialForm:'',
758 776 detailedLocation: '',
759 777 mapPunctuation: '',
760 778 shopDescription: '',
... ... @@ -874,6 +892,7 @@
874 892 belongingRegion: '',
875 893 belongingDepartment: '',
876 894 head: '',
  895 + commercialForm:'',
877 896 detailedLocation: '',
878 897 mapPunctuation: '',
879 898 shopDescription: '',
... ... @@ -895,6 +914,7 @@
895 914 detailedLocation: '',//详细位置
896 915 mapMarker: '',//地图标点
897 916 description: '',//场地描述
  917 + venueSpaceNumber:'',
898 918 planningDrawing: '',//规划图纸
899 919 displayImage: '',//展示主图
900 920 otherMedia: '', //其他图片视频
... ...
yanshouban/src/views/detect/admap.vue
... ... @@ -63,7 +63,7 @@
63 63 :file-list="daoData"
64 64 :auto-upload="true"
65 65 :show-file-list="false">
66   - <el-button style="background-color: #fff;color: #3F9B6A;border: 1px solid #dcdfe6;" class="buttonHover">导入</el-button>
  66 + <el-button style="background-color: #fff;color: #3F9B6A;border: 1px solid #dcdfe6;margin-left:15px;" class="buttonHover">导入</el-button>
67 67 </el-upload>
68 68 </div>
69 69 <!-- 地图 -->
... ... @@ -142,9 +142,9 @@
142 142 </el-table-column>
143 143 <el-table-column prop="detailedLocation" label="详细地址" min-width="300">
144 144 </el-table-column>
145   - <el-table-column label="商户名称" prop="actualUsableArea" min-width="150">
  145 + <el-table-column label="商户名称" prop="commercialTenantName" min-width="150">
146 146 </el-table-column>
147   - <el-table-column label="商户电话" prop="belongingDepartment" min-width="150">
  147 + <el-table-column label="商户电话" prop="commercialTenantPhone" min-width="150">
148 148 </el-table-column>
149 149 <el-table-column label="实际使用面积" prop="actualUsableArea" min-width="150">
150 150 </el-table-column>
... ... @@ -152,6 +152,8 @@
152 152 </el-table-column>
153 153 <el-table-column label="负责人" prop="head" min-width="120">
154 154 </el-table-column>
  155 + <el-table-column label="商铺业态" prop="commercialForm" min-width="120">
  156 + </el-table-column>
155 157 <el-table-column label="租赁状态" prop="rentalStatus" min-width="120">
156 158 <template slot-scope="scope">
157 159 {{scope.row.rentalStatus == 0?'未租':'已租'}}
... ... @@ -193,7 +195,7 @@
193 195 </el-table-column>
194 196 <el-table-column label="设备尺寸" prop="equipmentSize" min-width="200" v-if="activeName == 'second'">
195 197 </el-table-column>
196   - <el-table-column label="场地编号" prop="venueNumber" min-width="150" v-if="activeName == 'second'">
  198 + <el-table-column label="广告位编号" prop="advertisingSpaceNumber" min-width="150" v-if="activeName == 'second'">
197 199 </el-table-column>
198 200 <el-table-column label="广告尺寸" prop="dimensions" min-width="200" v-if="activeName == 'second'">
199 201 </el-table-column>
... ... @@ -240,6 +242,7 @@
240 242 </el-table-column>
241 243 <el-table-column label="实际使用面积" min-width="6%" prop="actualArea" v-if="activeName == 'third'">
242 244 </el-table-column>
  245 + <el-table-column label="场地编号" prop="venueSpaceNumber" min-width="10%" v-if="activeName == 'third'" />
243 246 <el-table-column label="场地类型" min-width="6%" prop="venueType" v-if="activeName == 'third'">
244 247 </el-table-column>
245 248 <el-table-column label="所属区域" min-width="6%" prop="district" v-if="activeName == 'third'">
... ... @@ -803,7 +806,7 @@
803 806 style="text-align:left;border-right: 1px solid #EBEEF5;height: 42px;line-height: 42px;width: 119px;padding-left:10px;background-color:#FAFAFA">
804 807 <span style="font-size: 14px;color: #000;">商铺业态</span>
805 808 </div>
806   - <div style="height: 42px;line-height: 42px;">{{secondData.spyt}}</div>
  809 + <div style="height: 42px;line-height: 42px;">{{secondData.commercialForm}}</div>
807 810  
808 811 </el-form-item>
809 812 </el-form>
... ... @@ -1112,7 +1115,18 @@
1112 1115 </el-form-item>
1113 1116 </el-col>
1114 1117 </el-row>
  1118 +<el-row :gutter="20">
  1119 + <el-col :span="12">
  1120 + <el-form-item label="商铺业态" prop="commercialForm">
  1121 + <div v-if="edit" class="duiqi">{{editbgid.commercialForm}}</div>
  1122 + <el-select v-model="ruleForm.commercialForm" placeholder="请选择" style="margin-top:5px;width: 100%;" v-else>
  1123 + <el-option label="商超" value="商超"></el-option>
  1124 + </el-select>
  1125 + </el-input>
  1126 + </el-form-item>
  1127 + </el-col>
1115 1128  
  1129 + </el-row>
1116 1130 <el-row :gutter="20">
1117 1131 <el-col :span="24">
1118 1132 <el-form-item label="地图标点" prop="mapPunctuation">
... ... @@ -1238,6 +1252,12 @@
1238 1252 maxlength="100" v-else />
1239 1253 </el-form-item>
1240 1254 </el-col>
  1255 + <el-col :span="12">
  1256 + <el-form-item label="场地编号" prop="venueSpaceNumber">
  1257 + <div v-if="edit" class="duiqi">{{editbgid.venueSpaceNumber}}</div>
  1258 + </el-form-item>
  1259 + </el-col>
  1260 +
1241 1261 </el-row>
1242 1262 <el-row :gutter="20">
1243 1263 <el-col :span="24">
... ... @@ -1489,6 +1509,28 @@
1489 1509 <div class="titles">
1490 1510 历史租赁信息
1491 1511 </div>
  1512 + <div style="margin:20px 0;">
  1513 + <el-table :data="lishiData"
  1514 + :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}" tooltip-effect="dark custom-tooltip-effect">
  1515 + <el-table-column label="承租人" min-width="80" prop="tenantName">
  1516 +
  1517 + </el-table-column>
  1518 + <el-table-column label="租赁期限" prop="leaseStartDate" min-width="200" show-overflow-tooltip>
  1519 + </el-table-column>
  1520 + <el-table-column label="经营类型" prop="houseNumber" min-width="80" show-overflow-tooltip>
  1521 +
  1522 + </el-table-column>
  1523 + <el-table-column label="租金/周期" prop="shopName" min-width="250" show-overflow-tooltip>
  1524 + <template slot-scope="scope">
  1525 + {{scope.row.contractAmount}}/{{scope.row.intendedLeaseTerm}}
  1526 +
  1527 + </template>
  1528 + </el-table-column>
  1529 + <el-table-column label="当前状态" prop="belongingRegion" min-width="150" show-overflow-tooltip>
  1530 + </el-table-column>
  1531 +
  1532 + </el-table>
  1533 + </div>
1492 1534 </div>
1493 1535 </el-tab-pane>
1494 1536  
... ... @@ -1521,13 +1563,15 @@
1521 1563 changadd,
1522 1564 changedit,
1523 1565 changDel,
1524   -
  1566 + excelAdd,
  1567 + zulxin
1525 1568 } from '../../api/information'
1526 1569 import {
1527 1570 getAlls as getAllMap,
1528 1571 addList as addMap,
1529 1572 delList as deleteMap,
1530   - likeGet as likeGetMap
  1573 + likeGet as likeGetMap,
  1574 + editList as ggwedit
1531 1575 } from '../../api/map1'
1532 1576 import MapContainer from "@/components/MapContainer/MapContainer"
1533 1577 import addziyuan from "./addziyuan"
... ... @@ -1776,7 +1820,8 @@
1776 1820 mapData: {},
1777 1821 fileData:[],
1778 1822 uploadFileUrl: uploadUrl, // 请求地址
1779   -daoData:[]
  1823 +daoData:[],
  1824 +lishiData:[]
1780 1825 }
1781 1826  
1782 1827  
... ... @@ -1916,8 +1961,13 @@ daoData:[]
1916 1961 delList({
1917 1962 id: item.id
1918 1963 }).then(res => {
  1964 + this.$message({
  1965 + message: '删除成功',
  1966 + type: 'success'
  1967 + })
1919 1968 this.getAll()
1920 1969 getAlls(this.pageindex).then((datas) => {
  1970 +
1921 1971 this.tableData = datas.data.content
1922 1972 this.parentMessage = datas.data.content
1923 1973 })
... ... @@ -1929,6 +1979,10 @@ daoData:[]
1929 1979 deleteMap({
1930 1980 id: item.id
1931 1981 }).then(res => {
  1982 + this.$message({
  1983 + message: '删除成功',
  1984 + type: 'success'
  1985 + })
1932 1986 getAllMap(this.pageindex).then((datas) => {
1933 1987 this.tableData = datas.data.content
1934 1988 this.parentMessage = datas.data.content
... ... @@ -1942,6 +1996,10 @@ daoData:[]
1942 1996 changDel({
1943 1997 id: item.id
1944 1998 }).then(res => {
  1999 + this.$message({
  2000 + message: '删除成功',
  2001 + type: 'success'
  2002 + })
1945 2003 changAlls(this.pageindex).then((datas) => {
1946 2004 this.tableData = datas.data.content
1947 2005 this.parentMessage = datas.data.content
... ... @@ -2005,10 +2063,14 @@ daoData:[]
2005 2063  
2006 2064 //查看点击
2007 2065 handleEditForm(item) {
  2066 +
2008 2067 if (this.activeName == 'first') {
2009 2068 this.editbgid = item
2010 2069 this.restype = '商铺'
2011   -
  2070 + zulxin({venueNumber:item.venueNumber}).then(res=>{
  2071 + this.lishiData = res.data.content
  2072 + console.log(res)
  2073 + })
2012 2074 this.showBian = true
2013 2075 if (typeof this.editbgid.mapPunctuation == 'string') {
2014 2076 this.parentMessage = JSON.parse(this.editbgid.mapPunctuation)
... ... @@ -2017,7 +2079,19 @@ daoData:[]
2017 2079 } else if (this.activeName == 'second') {
2018 2080 this.editbgid = item
2019 2081 this.restype = '广告位'
2020   -
  2082 + zulxin({venueNumber:item.advertisingSpaceNumber}).then(res=>{
  2083 + this.lishiData = res.data
  2084 + this.lishiData.map(item=>{
  2085 + item.earnestMoney =this.$decrypt(item.earnestMoney)
  2086 + item.contractAmount =this.$decrypt(item.contractAmount)
  2087 + item.lessorName =this.$decrypt(item.lessorName)
  2088 + item.telephone =this.$decrypt(item.telephone)
  2089 + item.bankAccount =this.$decrypt(item.bankAccount)
  2090 + item.tenantName =this.$decrypt(item.tenantName)
  2091 + item.tenantTelephone =this.$decrypt(item.tenantTelephone)
  2092 + item.tenantBankAccount =this.$decrypt(item.tenantBankAccount)
  2093 + })
  2094 + })
2021 2095 this.showBian = true
2022 2096 if(item.advertisingType == '线上广告位'){
2023 2097 this.leixing =true
... ... @@ -2031,15 +2105,26 @@ daoData:[]
2031 2105 } else if (this.activeName == 'third') {
2032 2106 this.editbgid = item
2033 2107 this.restype = '场地'
2034   -
  2108 + zulxin({venueNumber:item.venueSpaceNumber}).then(res=>{
  2109 + this.lishiData = res.data
  2110 + this.lishiData.map(item=>{
  2111 + item.earnestMoney =this.$decrypt(item.earnestMoney)
  2112 + item.contractAmount =this.$decrypt(item.contractAmount)
  2113 + item.lessorName =this.$decrypt(item.lessorName)
  2114 + item.telephone =this.$decrypt(item.telephone)
  2115 + item.bankAccount =this.$decrypt(item.bankAccount)
  2116 + item.tenantName =this.$decrypt(item.tenantName)
  2117 + item.tenantTelephone =this.$decrypt(item.tenantTelephone)
  2118 + item.tenantBankAccount =this.$decrypt(item.tenantBankAccount)
  2119 + })
  2120 + })
2035 2121 this.showBian = true
2036 2122 if (typeof this.editbgid.mapMarker == 'string') {
2037 2123 this.parentMessage = JSON.parse(this.editbgid.mapMarker)
2038 2124 }
2039   - } else if (this.activeName == 'fourth') {
2040   -
2041 2125 }
2042 2126  
  2127 +
2043 2128 },
2044 2129 // 查看取消
2045 2130 colse() {
... ... @@ -2071,6 +2156,11 @@ daoData:[]
2071 2156 }
2072 2157 } else if (this.activeName == 'second') {
2073 2158 this.editbgid = item
  2159 + this.editbgid.equipmentSizeH = ''
  2160 + this.editbgid.equipmentSizeK = ''
  2161 + this.editbgid.equipmentSizeG = ''
  2162 + this.editbgid.dimensionsH= ''
  2163 + this.editbgid.dimensionsK =''
2074 2164 this.restype = '广告位'
2075 2165 this.showBian = true
2076 2166 this.$nextTick(() => {
... ... @@ -2122,7 +2212,7 @@ daoData:[]
2122 2212 if (this.fileData.length != 0) {
2123 2213 this.editbgid.otherImageVideos = this.fileData[0].url
2124 2214 }
2125   - console.log(this.editbgid)
  2215 +
2126 2216 editList(this.editbgid).then(res=>{
2127 2217 this.edit = true
2128 2218 this.showBian = false
... ... @@ -2132,7 +2222,8 @@ daoData:[]
2132 2222 })
2133 2223 }else if(this.restype =='广告位'){
2134 2224 this.editbgid.updateDate = this.updateCurrentTime()
2135   - if(this.advue.type =='实体广告位'){
  2225 +
  2226 + if(this.leixing ==false ){
2136 2227 this.editbgid.equipmentSize = `长:${this.editbgid.equipmentSizeH} 宽:${this.editbgid.equipmentSizeK} 高:${this.editbgid.equipmentSizeG}`
2137 2228 this.editbgid.dimensions =`长:${this.editbgid.dimensionsH} 宽:${this.editbgid.dimensionsK}`
2138 2229 }
... ...
yanshouban/src/views/detect/information.vue
... ... @@ -56,6 +56,7 @@
56 56 icon="el-icon-circle-plus-outline">新增</el-button>
57 57 </div>
58 58 <!-- 表格 -->
  59 +
59 60 <el-table :data="tableData.slice((currentPage - 1) * pageSize, currentPage * pageSize)"
60 61 :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}" tooltip-effect="dark custom-tooltip-effect">
61 62 <el-table-column label="序号" min-width="80">
... ... @@ -83,6 +84,8 @@
83 84 </el-table-column>
84 85 <el-table-column label="负责人" prop="head" min-width="120" show-overflow-tooltip>
85 86 </el-table-column>
  87 + <el-table-column label="商铺业态" prop="commercialForm" min-width="120" show-overflow-tooltip>
  88 + </el-table-column>
86 89 <el-table-column label="租赁状态" prop="rentalStatus" min-width="120" show-overflow-tooltip>
87 90 <template slot-scope="scope">
88 91 {{scope.row.rentalStatus=='0'?'待租':'已租'}}
... ... @@ -235,6 +238,16 @@
235 238 </el-col>
236 239 </el-row>
237 240 <el-row :gutter="20">
  241 + <el-col :span="12">
  242 + <el-form-item label="商铺业态" prop="commercialForm">
  243 + <el-select v-model="ruleForm.commercialForm" placeholder="请选择" style="margin-top:5px;width: 100%;">
  244 + <el-option label="商超" value="商超"></el-option>
  245 + </el-select>
  246 + </el-form-item>
  247 + </el-col>
  248 +
  249 + </el-row>
  250 + <el-row :gutter="20">
238 251 <el-col :span="24">
239 252 <el-form-item label="地图标点" prop="mapPunctuation">
240 253 <div style="width: 100%;height: 300px;">
... ... @@ -431,6 +444,18 @@
431 444 </el-form-item>
432 445 </el-col>
433 446 </el-row>
  447 +<el-row :gutter="20">
  448 + <el-col :span="12">
  449 + <el-form-item label="商铺业态" prop="commercialForm">
  450 + <div v-if="edit" class="duiqi">{{editbgid.commercialForm}}</div>
  451 + <el-select v-model="ruleForm.commercialForm" placeholder="请选择" style="margin-top:5px;width: 100%;" v-else>
  452 + <el-option label="商超" value="商超"></el-option>
  453 + </el-select>
  454 + </el-input>
  455 + </el-form-item>
  456 + </el-col>
  457 +
  458 + </el-row>
434 459  
435 460 <el-row :gutter="20">
436 461 <el-col :span="24">
... ... @@ -492,6 +517,33 @@
492 517 <div class="titles">
493 518 历史租赁信息
494 519 </div>
  520 + <div style="margin:20px 0;">
  521 + <el-table :data="lishiData"
  522 + :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}" tooltip-effect="dark custom-tooltip-effect">
  523 + <el-table-column label="承租人" min-width="80" prop="tenantName">
  524 +
  525 + </el-table-column>
  526 + <el-table-column label="租赁期限" prop="leaseStartDate" min-width="200" show-overflow-tooltip>
  527 + </el-table-column>
  528 + <el-table-column label="经营类型" prop="houseNumber" min-width="80" show-overflow-tooltip>
  529 +
  530 + </el-table-column>
  531 + <el-table-column label="租金/周期" prop="shopName" min-width="250" show-overflow-tooltip>
  532 +<template slot-scope="scope">
  533 + {{scope.row.contractAmount}}/{{scope.row.intendedLeaseTerm}}
  534 +
  535 + </template>
  536 + </el-table-column>
  537 + <el-table-column label="当前状态" prop="belongingRegion" min-width="150" show-overflow-tooltip>
  538 + </el-table-column>
  539 +
  540 + <!-- <el-table-column label="操作" min-width="160" fixed="right">
  541 + <template slot-scope="scope">
  542 + <div @click="handleEditForm(scope.row)" class="tableBtn greens">查看</div>
  543 + </template>
  544 + </el-table-column> -->
  545 + </el-table>
  546 + </div>
495 547 </div>
496 548 </el-tab-pane>
497 549 <!-- <el-tab-pane label="租赁信息" name="third" v-if="edit">
... ... @@ -544,7 +596,8 @@
544 596 delList,
545 597 likeGet,
546 598 lvdaoduan,
547   - gongyuan
  599 + gongyuan,
  600 + zulxin
548 601 } from '../../api/information';
549 602 import {
550 603 getToken,
... ... @@ -598,6 +651,7 @@
598 651 belongingRegion: '',
599 652 belongingDepartment: '',
600 653 head: '',
  654 + commercialForm:'',
601 655 detailedLocation: '',
602 656 mapPunctuation: '',
603 657 shopDescription: '',
... ... @@ -645,11 +699,6 @@
645 699 message: '请输入详细位置',
646 700 trigger: 'blur'
647 701 }, ],
648   - displayMainImage: [{
649   - required: true,
650   - message: '请上传主图',
651   - trigger: 'blur'
652   - }, ],
653 702 belongingGreenwaySection: [{
654 703 required: true,
655 704 message: '请选择所属绿道段',
... ... @@ -664,7 +713,8 @@
664 713 parentMessage: {},
665 714 lvdaoList: [],
666 715 gongyuanList: [],
667   - biangongyuanList: []
  716 + biangongyuanList: [],
  717 + lishiData:[]
668 718 }
669 719 },
670 720 components: {
... ... @@ -735,6 +785,7 @@
735 785 },
736 786 //查看编辑
737 787 bianji() {
  788 +
738 789 if (this.edit) {
739 790 this.edit = false
740 791  
... ... @@ -745,6 +796,7 @@
745 796 this.detbox = false
746 797 this.editbgid = item
747 798 this.parentMessage = JSON.parse(item.mapPunctuation)
  799 + console.log(item)
748 800 const fileMsg = {
749 801 name: '文件',
750 802 url: item.otherImageVideos
... ... @@ -833,6 +885,19 @@
833 885 //查看点击
834 886 handleEditForm(item) {
835 887  
  888 + zulxin({venueNumber:item.venueNumber}).then(res=>{
  889 + this.lishiData = res.data
  890 + this.lishiData.map(item=>{
  891 + item.earnestMoney =this.$decrypt(item.earnestMoney)
  892 + item.contractAmount =this.$decrypt(item.contractAmount)
  893 + item.lessorName =this.$decrypt(item.lessorName)
  894 + item.telephone =this.$decrypt(item.telephone)
  895 + item.bankAccount =this.$decrypt(item.bankAccount)
  896 + item.tenantName =this.$decrypt(item.tenantName)
  897 + item.tenantTelephone =this.$decrypt(item.tenantTelephone)
  898 + item.tenantBankAccount =this.$decrypt(item.tenantBankAccount)
  899 + })
  900 + })
836 901 this.editbgid = item
837 902 this.parentMessage = JSON.parse(item.mapPunctuation)
838 903 this.detbox = false
... ... @@ -866,6 +931,7 @@
866 931 belongingRegion: '',
867 932 belongingDepartment: '',
868 933 head: '',
  934 + commercialForm:'',
869 935 detailedLocation: '',
870 936 mapPunctuation: '',
871 937 shopDescription: '',
... ...
yanshouban/src/views/detect/map.vue
... ... @@ -529,17 +529,43 @@
529 529 </div>
530 530 </div>
531 531 </el-tab-pane>
532   - <el-tab-pane label="招商方案信息" name="second" v-if="edit">
  532 + <!-- <el-tab-pane label="招商方案信息" name="second" v-if="edit">
533 533 <div style="margin-top: 30px;" class="editcss">
534 534 <div class="titles">
535 535 招商方案信息
536 536 </div>
537 537 </div>
538   - </el-tab-pane>
539   - <el-tab-pane label="租赁信息" name="third" v-if="edit">
  538 + </el-tab-pane> -->
  539 + <el-tab-pane label="历史租赁信息" name="third" v-if="edit">
540 540 <div style="margin-top: 30px;" class="editcss">
541 541 <div class="titles">
542   - 租赁信息
  542 + 历史租赁信息
  543 + </div>
  544 + <div style="margin:20px 0;">
  545 + <el-table :data="lishiData"
  546 + :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}" tooltip-effect="dark custom-tooltip-effect">
  547 + <el-table-column label="承租人" min-width="80" prop="tenantName">
  548 +
  549 + </el-table-column>
  550 + <el-table-column label="租赁期限" prop="leaseStartDate" min-width="200" show-overflow-tooltip>
  551 + </el-table-column>
  552 + <el-table-column label="经营类型" prop="houseNumber" min-width="80" show-overflow-tooltip>
  553 +
  554 + </el-table-column>
  555 + <el-table-column label="租金/周期" prop="shopName" min-width="250" show-overflow-tooltip>
  556 + <template slot-scope="scope">
  557 + {{scope.row.contractAmount}}/{{scope.row.intendedLeaseTerm}}
  558 +
  559 + </template>
  560 + </el-table-column>
  561 + <el-table-column label="当前状态" prop="belongingRegion" min-width="150" show-overflow-tooltip>
  562 + </el-table-column>
  563 + <!-- <el-table-column label="操作" min-width="160" fixed="right">
  564 + <template slot-scope="scope">
  565 + <div @click="handleEditForm(scope.row)" class="tableBtn greens">查看</div>
  566 + </template>
  567 + </el-table-column> -->
  568 + </el-table>
543 569 </div>
544 570 </div>
545 571 </el-tab-pane>
... ... @@ -572,7 +598,8 @@
572 598 addList,
573 599 delList,
574 600 likeGet,
575   - editList
  601 + editList,
  602 + zulxin
576 603 } from '../../api/map1'
577 604 import MapMark from "@/components/MapContainer/MapMark";
578 605 import MapXian from "@/components/MapContainer/MapXian";
... ... @@ -715,7 +742,8 @@
715 742 //地图标点的经纬度
716 743 mapData: {},
717 744 parentMessage: {},
718   - xiangTab:'first'
  745 + xiangTab:'first',
  746 + lishiData:[]
719 747  
720 748 }
721 749 },
... ... @@ -806,11 +834,11 @@
806 834 const res = await likeGet(val)
807 835 this.tableData = res.data.content
808 836 if (this.pageindex.advertisingType == '线上广告位') {
809   - this.xsNum = res.data.content.length
  837 + this.xsNum = res.data.numberOfElements
810 838 } else {
811   - this.xxNum = res.data.content.length
  839 + this.xxNum = res.data.numberOfElements
812 840 }
813   - this.total = res.data.content.length
  841 + this.total = res.data.numberOfElements
814 842  
815 843 },
816 844 //获取当前时间
... ... @@ -863,7 +891,19 @@
863 891 dimensionsK: ''
864 892 }
865 893  
866   - console.log(item)
  894 + zulxin({venueNumber:item.advertisingSpaceNumber}).then(res=>{
  895 + this.lishiData = res.data
  896 + this.lishiData.map(item=>{
  897 + item.earnestMoney =this.$decrypt(item.earnestMoney)
  898 + item.contractAmount =this.$decrypt(item.contractAmount)
  899 + item.lessorName =this.$decrypt(item.lessorName)
  900 + item.telephone =this.$decrypt(item.telephone)
  901 + item.bankAccount =this.$decrypt(item.bankAccount)
  902 + item.tenantName =this.$decrypt(item.tenantName)
  903 + item.tenantTelephone =this.$decrypt(item.tenantTelephone)
  904 + item.tenantBankAccount =this.$decrypt(item.tenantBankAccount)
  905 + })
  906 + })
867 907 let dimensions_parts = item.dimensions.split(" ")
868 908 let dimensions = item.equipmentSize.split(" ")
869 909 console.log(dimensions)
... ... @@ -1070,21 +1110,23 @@
1070 1110 },
1071 1111 // 查询按钮
1072 1112 onSubmit() {
1073   -
1074 1113 if (this.pageindex.advertisingType == '线上广告位') {
1075 1114 this.formSel.advertisingType = '线上广告位'
1076 1115 getAlls(this.formSel).then(res => {
  1116 + this.currentPage = 1
1077 1117 this.tableData = res.data.content
1078   - this.total = res.data.content.length
  1118 + this.total = res.data.numberOfElements
1079 1119 })
1080 1120  
1081 1121 } else {
1082 1122 this.formSel.advertisingType = '实体广告位'
1083 1123 getAlls(this.formSel).then(res => {
  1124 + this.currentPage = 1
1084 1125 this.tableData = res.data.content
1085   - this.total = res.data.content.length
  1126 + this.total = res.data.numberOfElements
1086 1127 })
1087 1128 }
  1129 + console.log(this.currentPage)
1088 1130 // if(this.formSel.createDate=='' && this.formSel.createUser == '' && this.formSel.affiliation == ''){
1089 1131 // console.log(1)
1090 1132 // console.log(this.pageindex)
... ...
yanshouban/src/views/detect/ziyuanList.vue
... ... @@ -73,6 +73,11 @@
73 73 <el-input v-model="ruleForm.detailedLocation" style="margin-top:5px;" :disabled="edit" maxlength="100">
74 74 </el-input>
75 75 </el-form-item>
  76 + <el-form-item label="商铺业态" prop="commercialForm">
  77 + <el-select v-model="ruleForm.commercialForm" :disabled="edit" style="margin-top:5px;width: 100%;">
  78 + <el-option label="商超" value="商超"></el-option>
  79 + </el-select>
  80 + </el-form-item>
76 81 <el-form-item label="地图标点" prop="mapPunctuation">
77 82 <div style="width: 100%;height: 100px;border: 1px solid #3F9B6A;" v-if="showBian">
78 83  
... ... @@ -630,6 +635,7 @@
630 635 belongingRegion: '',
631 636 belongingDepartment: '',
632 637 head: '',
  638 + commercialForm:'',
633 639 detailedLocation: '',
634 640 mapPunctuation: '',
635 641 shopDescription: '',
... ...
yanshouban/src/views/ipm/followup/index.vue
... ... @@ -86,6 +86,7 @@
86 86 <template slot-scope="scope">
87 87 <div @click="details(scope.row)" class="tableBtn greens">查看</div>
88 88 <div @click="genad(scope.row)" class="tableBtn greens" v-if="scope.row.status =='1'">跟进录入</div>
  89 + <div @click="biangen(scope.row)" class="tableBtn greens" v-if="scope.row.status =='1'">编辑</div>
89 90 <div @click="zhongzhi(scope.row)" class="tableBtn greens" v-if="scope.row.status =='1'">终止</div>
90 91 <div @click="deltab(scope.row)" class="tableBtn greens" >删除</div>
91 92 </template>
... ... @@ -271,8 +272,8 @@
271 272 <el-button class="buttonHover" style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"
272 273 @click="closeFn(2)">返回</el-button>
273 274 <el-button @click="addTanpan" style="background-color: #3F9B6A;color: #fff" v-if="zhong.status=='2' && zhong.currentStage =='达成共识'">进入谈判</el-button>
274   - <!-- <el-button @click="edit = false" style="background-color: #3F9B6A;color: #fff" v-if="edit && zhong.status=='1'">编辑</el-button> -->
275   - <!-- <el-button @click="addbuss(2)" style="background-color: #3F9B6A;color: #fff" v-if="!edit && zhong.status =='1'">确认</el-button> -->
  275 + <!-- <el-button @click="edit = false" style="background-color: #3F9B6A;color: #fff" v-if="edit && zhong.status=='1'">编辑</el-button>
  276 + <el-button @click="addbuss(2)" style="background-color: #3F9B6A;color: #fff" v-if="!edit && zhong.status =='1'">确认</el-button> -->
276 277  
277 278 </div>
278 279 </div>
... ... @@ -631,7 +632,9 @@
631 632 xiangData:[],
632 633 yixiangList:{},
633 634 idCardTime:[],
634   - busTime:[]
  635 + busTime:[],
  636 + miList:['contactPhone','idCardNumber','unifiedSocialCreditCode','legalRepresentative','address','emailAddress'],
  637 + dataIntegrity:''
635 638 }
636 639 },
637 640 created() {
... ... @@ -659,26 +662,20 @@
659 662 this.tableData = res.data.content
660 663 this.total = res.data.content.length
661 664 this.tableData.map(res=>{
662   - res.contactPhone = this.$decrypt(res.contactPhone)
663   - res.idCardNumber = this.$decrypt(res.idCardNumber)
664   - res.unifiedSocialCreditCode = this.$decrypt(res.unifiedSocialCreditCode)
665   - res.legalRepresentative = this.$decrypt(res.legalRepresentative)
666   - res.address = this.$decrypt(res.address)
667   - res.emailAddress = this.$decrypt(res.emailAddress)
  665 +
  666 + res.cereCustomerInfo.contactPhone = this.$decrypt(res.cereCustomerInfo.contactPhone)
  667 + res.cereCustomerInfo.idCardNumber = this.$decrypt(res.cereCustomerInfo.idCardNumber)
  668 + res.cereCustomerInfo.unifiedSocialCreditCode = this.$decrypt(res.cereCustomerInfo.unifiedSocialCreditCode)
  669 + res.cereCustomerInfo.legalRepresentative = this.$decrypt(res.cereCustomerInfo.legalRepresentative)
  670 + res.cereCustomerInfo.address = this.$decrypt(res.cereCustomerInfo.address)
  671 + res.cereCustomerInfo.emailAddress = this.$decrypt(res.cereCustomerInfo.emailAddress)
668 672 })
669 673 const ziyuan = await getAlls(this.pageindex)
670 674 const ggw = await map1(this.pageindex)
671 675 this.ziyuanData = [...ziyuan.data.content,...ggw.data.content]
672 676 const kehu = await icManAll(this.pageindex);
673 677 this.kehuData = kehu.data.content
674   - this.kehuData.map(res=>{
675   - res.unifiedSocialCreditCode = this.$decrypt(res.unifiedSocialCreditCode)
676   - res.legalRepresentative = this.$decrypt(res.legalRepresentative)
677   - res.address = this.$decrypt(res.address)
678   - res.emailAddress = this.$decrypt(res.emailAddress)
679   - res.contactName = this.$decrypt(res.contactName)
680   - res.contactPhone = this.$decrypt(res.contactPhone)
681   - })
  678 +
682 679 },
683 680  
684 681 // 新增确定按钮
... ... @@ -691,7 +688,7 @@
691 688 this.formInline.status = '2'
692 689 }
693 690 if(this.formInline.customerLevel !=''){
694   - await rsaManEdit({id:this.yixiangList.id,customerLevel:this.formInline.customerLevel})
  691 + await rsaManEdit({id:this.yixiangList.id,customerLevel:this.formInline.customerLevel,dataIntegrity:this.dataIntegrity})
695 692 }
696 693 if(this.plan_Time.length !=0){
697 694 this.formInline.nextFollowUpStartTime = this.plan_Time[0]
... ... @@ -798,11 +795,7 @@
798 795 this.detbox = false
799 796 }
800 797 },
801   - // 详情编辑
802   - bianji() {
803 798  
804   -
805   - },
806 799 //查看合同
807 800 lookHetong(val) {
808 801 this.hetongBox = true
... ... @@ -813,12 +806,12 @@
813 806 this.tableData = res.data.content
814 807 this.total = res.data.content.length
815 808 this.tableData.map(res=>{
816   - res.contactPhone = this.$decrypt(res.contactPhone)
817   - res.idCardNumber = this.$decrypt(res.idCardNumber)
818   - res.unifiedSocialCreditCode = this.$decrypt(res.unifiedSocialCreditCode)
819   - res.legalRepresentative = this.$decrypt(res.legalRepresentative)
820   - res.address = this.$decrypt(res.address)
821   - res.emailAddress = this.$decrypt(res.emailAddress)
  809 + res.cereCustomerInfo.contactPhone = this.$decrypt(res.cereCustomerInfo.contactPhone)
  810 + res.cereCustomerInfo.idCardNumber = this.$decrypt(res.cereCustomerInfo.idCardNumber)
  811 + res.cereCustomerInfo.unifiedSocialCreditCode = this.$decrypt(res.cereCustomerInfo.unifiedSocialCreditCode)
  812 + res.cereCustomerInfo.legalRepresentative = this.$decrypt(res.cereCustomerInfo.legalRepresentative)
  813 + res.cereCustomerInfo.address = this.$decrypt(res.cereCustomerInfo.address)
  814 + res.cereCustomerInfo.emailAddress = this.$decrypt(res.cereCustomerInfo.emailAddress)
822 815 })
823 816 },
824 817 //重置按钮
... ... @@ -918,6 +911,10 @@
918 911 if (action === 'confirm') {
919 912  
920 913 genDel({id:item.id}).then(res=>{
  914 + this.$message({
  915 + message: '删除成功',
  916 + type: 'success'
  917 + })
921 918 this.getAll()
922 919 done();
923 920 })
... ... @@ -928,10 +925,32 @@
928 925 })
929 926 },
930 927 genad(item){
  928 + console.log(this.formInline)
  929 +let c1 =JSON.parse((JSON.stringify(item)))
  930 + let newinfo = this.$decryptall(c1,this.miList)
  931 + let arr = [newinfo.cereCustomerInfo.contactPhone,newinfo.cereCustomerInfo.idCardNumber,newinfo.cereCustomerInfo.unifiedSocialCreditCode,newinfo.cereCustomerInfo.legalRepresentative,newinfo.cereCustomerInfo.address,newinfo.cereCustomerInfo.emailAddress]
  932 + arr = arr.join(',')
  933 + this.dataIntegrity = this.$encrypt(arr)
931 934 this.formInline.id = item.id
932 935 this.yixiangList = item.cereCustomerInfo
933   - // console.log(this.formInline)
  936 +
  937 + this.ggXin = true
  938 + },
  939 + biangen(item){
  940 + let c1 =JSON.parse((JSON.stringify(item)))
  941 + let newinfo = this.$decryptall(c1,this.miList)
  942 + let arr = [newinfo.cereCustomerInfo.contactPhone,newinfo.cereCustomerInfo.idCardNumber,newinfo.cereCustomerInfo.unifiedSocialCreditCode,newinfo.cereCustomerInfo.legalRepresentative,newinfo.cereCustomerInfo.address,newinfo.cereCustomerInfo.emailAddress]
  943 + arr = arr.join(',')
  944 + this.dataIntegrity = this.$encrypt(arr)
  945 + this.formInline.id = item.id
  946 + this.yixiangList = item.cereCustomerInfo
  947 +
934 948 this.ggXin = true
  949 + this.formInline = item
  950 + this.addziyuanData = JSON.parse(item.intendedResource)
  951 + this.plan_Time[0] = item.nextFollowUpStartTime
  952 + this.plan_Time[1] = item.nextFollowUpEndTime
  953 + this.formInline.customerLevel = item.cereCustomerInfo.customerLevel
935 954 },
936 955 closemsg(index){
937 956 this.addziyuanData.splice(index, 1);
... ...
yanshouban/src/views/ipm/inr/index.vue
... ... @@ -501,6 +501,15 @@
501 501 const res = await tanGetAll(this.pageindex)
502 502 this.tableData = res.data.content
503 503 this.total = res.data.content.length
  504 + this.tableData.map(res=>{
  505 +
  506 + res.cereFollowDetails.cereCustomerInfo.contactPhone = this.$decrypt(res.cereFollowDetails.cereCustomerInfo.contactPhone)
  507 + res.cereFollowDetails.cereCustomerInfo.idCardNumber = this.$decrypt(res.cereFollowDetails.cereCustomerInfo.idCardNumber)
  508 + res.cereFollowDetails.cereCustomerInfo.unifiedSocialCreditCode = this.$decrypt(res.cereFollowDetails.cereCustomerInfo.unifiedSocialCreditCode)
  509 + res.cereFollowDetails.cereCustomerInfo.legalRepresentative = this.$decrypt(res.cereFollowDetails.cereCustomerInfo.legalRepresentative)
  510 + res.cereFollowDetails.cereCustomerInfo.address = this.$decrypt(res.cereFollowDetails.cereCustomerInfo.address)
  511 + res.cereFollowDetails.cereCustomerInfo.emailAddress = this.$decrypt(res.cereFollowDetails.cereCustomerInfo.emailAddress)
  512 + })
504 513 },
505 514  
506 515 // 新增确定按钮
... ... @@ -594,7 +603,15 @@ this.secondData.otherAttachments = item.otherAttachments
594 603 const res = await tanGetAll(this.formSel)
595 604 this.tableData = res.data.content
596 605 this.total = res.data.content.length
597   -
  606 + this.tableData.map(res=>{
  607 +
  608 + res.cereFollowDetails.cereCustomerInfo.contactPhone = this.$decrypt(res.cereFollowDetails.cereCustomerInfo.contactPhone)
  609 + res.cereFollowDetails.cereCustomerInfo.idCardNumber = this.$decrypt(res.cereFollowDetails.cereCustomerInfo.idCardNumber)
  610 + res.cereFollowDetails.cereCustomerInfo.unifiedSocialCreditCode = this.$decrypt(res.cereFollowDetails.cereCustomerInfo.unifiedSocialCreditCode)
  611 + res.cereFollowDetails.cereCustomerInfo.legalRepresentative = this.$decrypt(res.cereFollowDetails.cereCustomerInfo.legalRepresentative)
  612 + res.cereFollowDetails.cereCustomerInfo.address = this.$decrypt(res.cereFollowDetails.cereCustomerInfo.address)
  613 + res.cereFollowDetails.cereCustomerInfo.emailAddress = this.$decrypt(res.cereFollowDetails.cereCustomerInfo.emailAddress)
  614 + })
598 615 },
599 616 //重置按钮
600 617 resetting() {
... ...
yanshouban/src/views/media/mediaMana.vue
... ... @@ -230,24 +230,24 @@
230 230 </div>
231 231 <div style="padding:0 20px;margin-top:20px;">
232 232 <div style="padding:55px 10px 10px 10px;background-color:#fff;position:relative">
233   - <div style="position: absolute;top: 60px;right: 10px; z-index: 10;">
234   - <el-radio-group v-model="radio1" style="margin-right:10px">
235   - <el-radio-button label="本周"></el-radio-button>
236   - <el-radio-button label="本月"></el-radio-button>
237   - <el-radio-button label="今年 "></el-radio-button>
238   - <el-radio-button label="自定义"></el-radio-button>
239   - </el-radio-group>
240   - <el-date-picker
241   - v-if="radio1=='自定义'"
242   -
243   - style="width:250px"
244   - v-model="radio1_time"
245   - type="datetimerange"
246   - range-separator="至"
247   - start-placeholder="开始日期"
248   - end-placeholder="结束日期">
249   - </el-date-picker>
250   - </div>
  233 + <!-- <div style="position: absolute;top: 60px;right: 10px; z-index: 10;">
  234 + <el-radio-group v-model="radio1" style="margin-right:10px">
  235 + <el-radio-button label="本周"></el-radio-button>
  236 + <el-radio-button label="本月"></el-radio-button>
  237 + <el-radio-button label="今年 "></el-radio-button>
  238 + <el-radio-button label="自定义"></el-radio-button>
  239 + </el-radio-group>
  240 + <el-date-picker
  241 + v-if="radio1=='自定义'"
  242 +
  243 + style="width:250px"
  244 + v-model="radio1_time"
  245 + type="datetimerange"
  246 + range-separator="至"
  247 + start-placeholder="开始日期"
  248 + end-placeholder="结束日期">
  249 + </el-date-picker>
  250 + </div> -->
251 251 <el-tabs type="border-card" @tab-click="xiaoguoTab">
252 252 <el-tab-pane label="整体效果分析">
253 253 <el-table :data="dataList"
... ... @@ -285,12 +285,12 @@
285 285 </el-table-column>
286 286 </el-table>
287 287 </el-tab-pane>
288   - <el-tab-pane label="纵向分析">
  288 + <!-- <el-tab-pane label="纵向分析">
289 289  
290 290 </el-tab-pane>
291 291 <el-tab-pane label="横向分析">
292 292  
293   - </el-tab-pane>
  293 + </el-tab-pane> -->
294 294 </el-tabs>
295 295 </div>
296 296  
... ... @@ -338,7 +338,7 @@
338 338 <div style="width:30%">
339 339 <div style="display: flex;">
340 340 <div style="margin-right: 10px;padding: 10px 0;">
341   - <div>调整前方案</div>
  341 + <div>方案1</div>
342 342 <div style="font-size: 22px;color: #3F9B6A;font-weight: 600;margin: 10px 0;">{{xiaoduiObj.bili}}</div>
343 343 <div style="font-size: 16px;color: #3F9B6A;font-weight: 600;">总流量</div>
344 344 </div>
... ... @@ -422,7 +422,7 @@
422 422 <div style="width:30%">
423 423 <div style="display: flex;">
424 424 <div style="margin-right: 10px;padding: 10px 0;">
425   - <div>调整后方案</div>
  425 + <div>方案2</div>
426 426 <div style="font-size: 22px;color: #3F9B6A;font-weight: 600;margin: 10px 0;">{{xiaoduiObj.bili}}</div>
427 427 <div style="font-size: 16px;color: #3F9B6A;font-weight: 600;">总流量</div>
428 428 </div>
... ...
yanshouban/src/views/media/mediaMannaAdd.vue
... ... @@ -44,19 +44,19 @@
44 44 <div style="padding:15px">
45 45 <div style="display:flex;">
46 46 <div style="display:flex;margin-right:30px;">
47   - <div>微信</div>
  47 + <div>海报图片</div>
48 48 <div style="margin:0 10px;"><upimg v-model="ruleForm.coverImage" :limit="1" :fileSize="1" :isShowTip="false"></upimg></div>
49 49 <div style="color:#E5E5E5">
50 50 请选择海报
51 51 </div>
52 52 </div>
53   - <div style="display:flex">
  53 + <!-- <div style="display:flex">
54 54 <div>微信朋友圈</div>
55 55 <div style="margin:0 10px;"><upimg v-model="ruleForm.wxpyPoster" :limit="1" :fileSize="1" :isShowTip="false"></upimg></div>
56 56 <div style="color:#E5E5E5">
57 57 请选择海报
58 58 </div>
59   - </div>
  59 + </div> -->
60 60 </div>
61 61 </div>
62 62 </div>
... ... @@ -69,10 +69,10 @@
69 69 </el-button>
70 70 <!-- <el-button plain @click="close" size="mini" style="background-color: #3F9B6A;color: #fff;">发布信息填写
71 71 </el-button> -->
72   - <el-button plain @click="close" size="mini" style="background-color: #3F9B6A;color: #fff;">媒体上传
  72 + <!-- <el-button plain @click="close" size="mini" style="background-color: #3F9B6A;color: #fff;">媒体上传
73 73 </el-button>
74 74 <el-button plain @click="close" size="mini" style="background-color: #fff;color: #000;border:1px solid #A0A0A0" class="buttonHover">一键发布
75   - </el-button>
  75 + </el-button> -->
76 76 <el-button plain @click="close" size="mini" style="background-color: #fff;color: #000;border:1px solid #A0A0A0" class="buttonHover">返回
77 77 </el-button>
78 78 </div>
... ...
yanshouban/src/views/order/pending/index.vue
... ... @@ -198,16 +198,17 @@ export default {
198 198 const res = await orderGetAll(formInline)
199 199 this.tableData = res.data.list
200 200 this.total = res.data.total
201   - this.tableLoading = false
202 201 this.tableData.map(res=>{
203 202 res.customerName = this.$decrypt(res.customerName)
204 203 res.receiveName = this.$decrypt(res.receiveName)
205 204 res.receivePhone = this.$decrypt(res.receivePhone)
  205 + res.customerPhone = this.$decrypt(res.customerPhone)
206 206 res.receiveAdress = this.$decrypt(res.receiveAdress)
207 207 res.price = this.$decrypt(res.price)
208   - res.customerPhone = this.$decrypt(res.customerPhone)
209 208 res.address = this.$decrypt(res.address)
210 209 })
  210 + this.tableLoading = false
  211 +
211 212 },
212 213 // 导出订单
213 214 async orderDataExport() {
... ...
yanshouban/src/views/order/pending/pendDetails.vue
... ... @@ -247,6 +247,12 @@ export default {
247 247 async getProductList() {
248 248 const res = await orderGetById({ orderId: this.detailRow.orderId })
249 249 this.order = res.data
  250 + this.order.address = this.$decrypt(this.order.address)
  251 + this.order.price = this.$decrypt(this.order.price)
  252 + this.order.customerName = this.$decrypt(this.order.customerName)
  253 + this.order.receiveAdress = this.$decrypt(this.order.receiveAdress)
  254 + this.order.receiveName = this.$decrypt(this.order.receiveName)
  255 + this.order.receivePhone = this.$decrypt(this.order.receivePhone)
250 256 },
251 257 close() {
252 258 this.$emit('cancel')
... ...
yanshouban/src/views/promotion/account.vue
... ... @@ -27,6 +27,17 @@
27 27 style="background-color: #3F9B6A;color: #fff;">新增</el-button>
28 28 <el-button style="background-color: #fff;color: #000;border: 1px solid #B1B1B1;"
29 29 icon="el-icon-folder-add" class="buttonHover" @click="xinFenlei">渠道分类管理</el-button>
  30 + <el-button @click="toufang('投放周期管理')"
  31 + style="background-color: #3F9B6A;color: #fff;">投放周期管理</el-button>
  32 + <el-button @click="toufang('投放费用管理')"
  33 + style="background-color: #3F9B6A;color: #fff;">投放费用管理</el-button>
  34 + <el-button @click="toufang('投放效果评价管理')"
  35 + style="background-color: #3F9B6A;color: #fff;">投放效果评价管理</el-button>
  36 + <el-button @click="xiaoguo"
  37 + style="background-color: #3F9B6A;color: #fff;">渠道发布内容汇总统计</el-button>
  38 + <el-button @click=""
  39 + style="background-color: #3F9B6A;color: #fff;">发布历史效果评估</el-button>
  40 +
30 41 </div>
31 42 <div class="fenlan">
32 43 <div class="souLei">
... ... @@ -84,7 +95,10 @@
84 95 <el-table-column label="操作" min-width="250">
85 96 <template slot-scope="scope">
86 97 <div @click="addbuss(2,scope.row)" class="tableBtn greens">查看</div>
  98 +
87 99 <div @click="addbuss(3,scope.row)" class="tableBtn greens">编辑</div>
  100 + <div @click="" class="tableBtn greens">内容统计数据设置</div>
  101 + <div @click="" class="tableBtn greens">投放统计数据设置</div>
88 102 <div @click="handleDelete(scope.row)" class="tableBtn greens">删除</div>
89 103 </template>
90 104 </el-table-column>
... ... @@ -171,7 +185,7 @@
171 185 </div>
172 186 </div> -->
173 187 </el-dialog>
174   - <el-dialog :visible.sync="xinlei" custom-class='xiaoguo_css' style="padding: 0;" width="50%"
  188 + <el-dialog :visible.sync="xinlei" custom-class='fenlei' style="padding: 0;" width="50%"
175 189 center :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false">
176 190 <div style="padding:15px;background-color:#F9F9F9;font-size:14px;border:1px solid #ECECEC;margin-bottom:20px;display: flex;justify-content: space-between;">
177 191 <div>新增</div>
... ... @@ -204,6 +218,187 @@
204 218 </el-button>
205 219 </div>
206 220 </el-dialog>
  221 + <el-dialog :visible.sync="xiaoguoBox" custom-class='xiaoguo_css' style="padding: 0;" width="75%"
  222 + center :close-on-click-modal="false" :close-on-press-escape="false">
  223 + <div style="padding:15px;background-color:#F9F9F9;font-size:14px;border:1px solid #ECECEC;margin-bottom:20px">
  224 + 活动效果分析
  225 + </div>
  226 + <div style="padding:0 20px;">
  227 + <div style="font-size:12px;margin-bottom:10px;">统计分析</div>
  228 + <div style="display:flex;padding:10px 0;" v-for="(item,index) in xiaoguoList">
  229 + <div style="margin-right:40px;width:17%">
  230 + <div style="color:#BBBBBB;font-size:10px;">{{item.channelCategory}}</div>
  231 + <div style="color:#BBBBBB;font-size:10px;margin-bottom:10px">{{item.contentCategory}}</div>
  232 + <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">{{item.contentCategoryNum}}</span></div>
  233 + <div style="height:5px;background-color:#FEC03D;"></div>
  234 + </div>
  235 +
  236 + </div>
  237 +
  238 + </div>
  239 + <div style="padding:0 20px;">
  240 + <div style="font-size:12px;margin-bottom:10px;">数据分析</div>
  241 + <div style="display:flex;padding:10px 0;" v-for="(item,index) in xiaoguoList">
  242 + <div style="margin-right:40px;width:17%">
  243 + <div style="color:#BBBBBB;font-size:10px;margin-bottom:10px">{{item.contentCategory}}</div>
  244 + <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">{{item.contentCategoryNum}}</span></div>
  245 + <div style="height:5px;background-color:#FEC03D;"></div>
  246 + </div>
  247 +
  248 + </div>
  249 +
  250 + </div>
  251 + <div style="padding:0 20px;margin-top:20px;">
  252 + <div style="border:1px solid #EFEFEF;padding:20px 15px">
  253 + <div style="display:flex">
  254 + <div style="width:30%;margin-right:40px">
  255 + <div>排名</div>
  256 + <div style="margin-top:20px;">
  257 + <div style="display:flex;justify-content: space-between;margin-bottom:10px;">
  258 + <div style="font-size:12px;color:#BBBBBB">主题1</div>
  259 + <div>300/100家</div>
  260 + </div>
  261 + <el-progress :text-inside="true" :stroke-width="15" :percentage="70"></el-progress>
  262 + <div style="display:flex;justify-content: space-between;margin:10px 0;">
  263 + <div style="font-size:12px;color:#BBBBBB">主题2</div>
  264 + <div>300/100家</div>
  265 + </div>
  266 + <el-progress :text-inside="true" :stroke-width="15" :percentage="100" status="success"></el-progress>
  267 + <div style="display:flex;justify-content: space-between;margin:10px 0;">
  268 + <div style="font-size:12px;color:#BBBBBB">主题3</div>
  269 + <div>300/100家</div>
  270 + </div>
  271 + <el-progress :text-inside="true" :stroke-width="15" :percentage="80" status="warning"></el-progress>
  272 + <div style="display:flex;justify-content: space-between;margin:10px 0;">
  273 + <div style="font-size:12px;color:#BBBBBB">主题4</div>
  274 + <div>300/100家</div>
  275 + </div>
  276 + <el-progress :text-inside="true" :stroke-width="15" :percentage="50" status="exception"></el-progress>
  277 + </div>
  278 + </div>
  279 + <div style="width:30%;margin-right:40px">
  280 + <div>人群占比</div>
  281 + <div style="height:250px;width:100%;" ref="shopL">
  282 + </div>
  283 + </div>
  284 + <div style="width:30%;margin-right:40px">
  285 + <div>交易漏斗</div>
  286 + <div style="height:250px;width:100%;" ref="jiaoL">
  287 + </div>
  288 + </div>
  289 + </div>
  290 + </div>
  291 + <div style="padding:55px 10px 10px 10px;background-color:#fff; position:relative">
  292 +
  293 + <el-tabs type="border-card" >
  294 + <el-tab-pane label="整体效果分析">
  295 + <el-table :data="dataList"
  296 + :header-cell-style="{fontSize: '12px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
  297 + style="width: 100%">
  298 + <el-table-column label="主题" width="auto" min-width="12%" align="center">
  299 + <template slot-scope="scope">
  300 + {{scope.$index + 1}}
  301 + </template>
  302 + </el-table-column>
  303 + <el-table-column label="环比比较" width="auto" min-width="15%" align="center">
  304 + <template slot-scope="scope">
  305 + {{scope.$index + 1}}
  306 + </template>
  307 + </el-table-column>
  308 + <el-table-column label="增长量" width="auto" min-width="15%" align="center">
  309 + <template slot-scope="scope">
  310 + {{scope.$index + 1}}
  311 + </template>
  312 + </el-table-column>
  313 + <el-table-column label="增长率" prop="name" width="auto" min-width="15%">
  314 + <template slot-scope="scope">
  315 + {{scope.row.name}}
  316 + </template>
  317 + </el-table-column>
  318 + <el-table-column label="投入总金额" prop="name" width="auto" min-width="15%">
  319 + <template slot-scope="scope">
  320 + {{scope.row.name}}
  321 + </template>
  322 + </el-table-column>
  323 + <el-table-column label="投入产出比" prop="name" width="auto" min-width="15%">
  324 + <template slot-scope="scope">
  325 + {{scope.row.name}}
  326 + </template>
  327 + </el-table-column>
  328 + </el-table>
  329 + </el-tab-pane>
  330 +
  331 +
  332 + </el-tabs>
  333 + </div>
  334 +
  335 + </div>
  336 + </el-dialog>
  337 + <el-dialog :visible.sync="touShow" custom-class='xiaoguo_css' style="padding: 0;" width="75%"
  338 + center :close-on-click-modal="false" :close-on-press-escape="false">
  339 + <div style="padding:15px;background-color:#F9F9F9;font-size:14px;border:1px solid #ECECEC;margin-bottom:20px">
  340 + {{title}}
  341 + </div>
  342 +
  343 + <div style="padding:0 20px;margin-top:20px;">
  344 +
  345 + <el-table :data="tableData"
  346 + :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}"
  347 + align="left">
  348 + <el-table-column label="序号" min-width="10%" prop="id" >
  349 + <template slot-scope="scope">
  350 + {{scope.$index +1 }}
  351 + </template>
  352 + </el-table-column>
  353 + <el-table-column label="渠道名称" prop="channelName" min-width="30%">
  354 + </el-table-column>
  355 + <el-table-column label="投放周期" prop="releaseCycle" min-width="30%" v-if="title=='投放周期管理'">
  356 + </el-table-column>
  357 + <el-table-column label="投放费用" prop="deliveryCost" min-width="30%" v-if="title=='投放费用管理'">
  358 + </el-table-column>
  359 + <el-table-column label="投放效果评价" prop="deliveryEffect" min-width="30%" v-if="title=='投放效果评价管理'">
  360 + </el-table-column>
  361 +
  362 + <el-table-column label="操作" min-width="30%">
  363 + <template slot-scope="scope">
  364 + <div @click="addbuss(2,scope.row)" class="tableBtn greens">查看</div>
  365 + <div @click="peicao('releaseCycle',scope.row)" class="tableBtn greens" v-if="title=='投放周期管理'">投放周期设置</div>
  366 + <div @click="peicao('deliveryCost',scope.row)" class="tableBtn greens" v-if="title=='投放费用管理'">投放费用设置</div>
  367 + <div @click="peicao('deliveryEffect',scope.row)" class="tableBtn greens" v-if="title=='投放效果评价管理'">评价</div>
  368 + </template>
  369 + </el-table-column>
  370 + </el-table>
  371 +
  372 + </div>
  373 + </el-dialog>
  374 + <el-dialog :visible.sync="peiShow" custom-class='bian_css' style="padding: 0;" width="45%"
  375 + :close-on-press-escape="false" center :close-on-click-modal="false" class="dialog_css_Xq" :show-close="false">
  376 + <div style="padding:20px;">
  377 + <div style="font-size: 14px;padding-bottom: 20px;color: #000;">{{title}}</div>
  378 + <el-form label-position="right" ref="jibenFrom" :model="peiForm" label-width="140px"
  379 + style="position: relative">
  380 + <el-form-item label="投放周期" class="grid-content bg-purple device-from" prop="auditReminderTime" v-if="title=='投放周期管理'">
  381 + <el-date-picker style="width:240px;margin-right:5px" v-model="peiForm.auditReminderTime"
  382 + value-format="yyyy-MM-dd HH:mm:ss" type="datetime" prefix-icon="none" >
  383 + </el-date-picker>
  384 + </el-form-item>
  385 + <el-form-item label="投放费用" class="grid-content bg-purple device-from" prop="auditReminderTime" v-if="title=='投放费用管理'">
  386 + <el-input v-model="peiForm.auditReminderTime" placeholder="请输入" />
  387 + </el-form-item>
  388 + <el-form-item label="评级" class="grid-content bg-purple device-from" prop="auditReminderTime" v-if="title=='投放效果评价管理'">
  389 + <el-input v-model="peiForm.auditReminderTime" placeholder="请输入" />
  390 + </el-form-item>
  391 + </el-form>
  392 + <div style="padding-top:20px;display:flex;justify-content: flex-end;">
  393 + <el-button style="background-color: #3F9B6A;color: #fff"
  394 + @click="peiCheck">确定</el-button>
  395 + <el-button @click="peiShow = false" style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;" class="buttonHover">取消</el-button>
  396 +
  397 + </div>
  398 +
  399 + </div>
  400 +
  401 + </el-dialog>
207 402 </div>
208 403  
209 404 </template>
... ... @@ -215,7 +410,8 @@
215 410 quGetOne,
216 411 quAdd,
217 412 quEdit,
218   - quDel
  413 + quDel,
  414 + statisticalAnalysis
219 415 } from '@/api/account.js'
220 416 import {
221 417 cereGet,
... ... @@ -224,6 +420,7 @@
224 420 cereDel
225 421 } from '../../api/activityBz'
226 422 import upimg from "@/components/ImageUpload/index"
  423 + import * as echarts from 'echarts'
227 424 export default {
228 425 components: { upimg},
229 426 data() {
... ... @@ -291,7 +488,21 @@
291 488 children: 'children',
292 489 label: 'classificationName'
293 490 },
294   - xianFenlei:[]
  491 + xianFenlei:[],
  492 + xiaoguoBox:false,
  493 + chart: null, //饼图
  494 + chart1: null, //漏斗图
  495 + dataList:[],
  496 + xiaoguoList:[],
  497 + touShow:false,
  498 + title:'',
  499 +
  500 + peiShow:false,
  501 + peiForm:{
  502 + auditReminderTime:''
  503 + },
  504 + ziduan:''
  505 +
295 506 }
296 507 },
297 508 computed: {},
... ... @@ -549,6 +760,151 @@
549 760 }
550 761 this.getAll()
551 762 },
  763 + async xiaoguo() {
  764 + // let res = await statisticalAnalysis()
  765 + // this.xiaoguoList = res.data
  766 + this.xiaoguoBox = true
  767 + this.$nextTick(() => {
  768 + this.shopLiu(this.$refs.shopL);
  769 + this.jiaoLiu(this.$refs.jiaoL);
  770 + this.resizeChart = () => {
  771 + try {
  772 + this.chart.resize();
  773 + this.chart1.resize();
  774 + } catch (error) {
  775 + console.log(error);
  776 + }
  777 + };
  778 + window.addEventListener('resize', this.resizeChart, false); // false代表事件句柄在冒泡阶段执行
  779 + })
  780 + },
  781 + shopLiu(Dom){
  782 + this.chart = echarts.init(Dom)
  783 + let option = {
  784 + tooltip: {
  785 + trigger: 'item'
  786 + },
  787 +
  788 + legend: {
  789 + textStyle:{
  790 + fontSize: 14
  791 + },
  792 + icon:'circle',
  793 + top: '40%',
  794 + left: '65%'
  795 + },
  796 + color:['#50B5FF','#FFC542','#8167F5','#FF7474','#58A3F7'],
  797 + series: [
  798 + {
  799 + type: 'pie',
  800 + radius: ['40%', '70%'],
  801 + center:['35%','60%'],
  802 + avoidLabelOverlap: false,
  803 + padAngle: 5,
  804 + itemStyle: {
  805 + borderRadius: 10
  806 + },
  807 + label: {
  808 + show: false,
  809 + position: 'center',
  810 + formatter: '{c}'
  811 + },
  812 + emphasis: {
  813 + label: {
  814 + show: true,
  815 + fontSize: 16,
  816 + }
  817 + },
  818 + labelLine: {
  819 + show: false
  820 + },
  821 + data: [
  822 + { value: 1048, name: '0-20' },
  823 + { value: 735, name: '20-30' },
  824 + { value: 580, name: '30-40' },
  825 + { value: 484, name: '40-50' },
  826 + { value: 300, name: '50-60' }
  827 + ]
  828 + }
  829 + ]
  830 + }
  831 + this.chart.setOption(option)
  832 + },
  833 + jiaoLiu(Dom){
  834 + this.chart1 = echarts.init(Dom)
  835 + let option = {
  836 + tooltip: {
  837 + trigger: 'item',
  838 + formatter: '{b} : {c}%'
  839 + },
  840 + series: [
  841 + {
  842 + type: 'funnel',
  843 + left: '10%',
  844 + top: 60,
  845 + bottom: 30,
  846 + width: '70%',
  847 + min: 0,
  848 + max: 100,
  849 + minSize: '45%',
  850 + maxSize: '100%',
  851 + sort: 'descending',
  852 + gap: 2,
  853 + label: {
  854 + show: true,
  855 + position: 'inside'
  856 + },
  857 + labelLine: {
  858 + length: 10,
  859 + lineStyle: {
  860 + width: 1,
  861 + type: 'solid'
  862 + }
  863 + },
  864 + itemStyle: {
  865 + borderColor: '#fff',
  866 + borderWidth: 1
  867 + },
  868 + emphasis: {
  869 + label: {
  870 + fontSize: 20
  871 + }
  872 + },
  873 + color:['#50B5FF','#5AD8A6','#5D7092','#F6BD16'],
  874 + data: [
  875 + { value: 60, name: '访问人数' },
  876 + { value: 40, name: '提交订单' },
  877 + { value: 20, name: '支付成功' },
  878 + { value: 80, name: '到店消费' },
  879 + ]
  880 + }
  881 + ]
  882 + }
  883 + this.chart1.setOption(option)
  884 + },
  885 + toufang(title){
  886 +
  887 + this.title = title
  888 + this.touShow = true
  889 + },
  890 + peicao(ziduan,item){
  891 +
  892 + this.peiId= item.id
  893 + this.ziduan = ziduan
  894 + this.peiForm.auditReminderTime = ''
  895 + this.peiShow = true
  896 + },
  897 + async peiCheck(){
  898 + if(this.ziduan == 'releaseCycle'){
  899 + await quEdit({id:this.peiId,releaseCycle:this.peiForm.auditReminderTime})
  900 + }else if(this.ziduan == 'deliveryCost'){
  901 + await quEdit({id:this.peiId,deliveryCost:this.peiForm.auditReminderTime})
  902 + }else{
  903 + await quEdit({id:this.peiId,deliveryEffect:this.peiForm.auditReminderTime})
  904 + }
  905 +
  906 + },
  907 +
552 908 }
553 909 }
554 910 </script>
... ... @@ -766,8 +1122,16 @@
766 1122 font-weight:100
767 1123 }
768 1124 ::v-deep .xiaoguo_css{
  1125 + margin-top:10vh !important;
  1126 + margin-left:10% !important;
769 1127 .el-dialog__body{
770 1128 padding:0px !important;
771 1129 }
772 1130 }
  1131 + ::v-deep .fenlei{
  1132 + .el-dialog__body{
  1133 + padding:0px !important;
  1134 + }
  1135 + }
  1136 +
773 1137 </style>
... ...
yanshouban/src/views/revenue/details/index.vue
... ... @@ -130,7 +130,11 @@ export default {
130 130 let res = await getSalesParticular(this.pageIndex)
131 131 this.tableData = res.data.list
132 132 this.total = res.data.total
133   -
  133 + this.tableData.map(res=>{
  134 + res.dataIntegrity = this.$decrypt(res.dataIntegrity)
  135 + res.price = this.$decrypt(res.price)
  136 + res.ticketPrice = this.$decrypt(res.ticketPrice)
  137 + })
134 138  
135 139 },
136 140 search(){
... ...
yanshouban/src/views/revenue/totalsales/index.vue
... ... @@ -47,6 +47,9 @@
47 47 </el-form-item>
48 48 </el-form>
49 49 </div>
  50 + <div>
  51 + <el-button style="background-color: #3F9B6A;color: #fff" @click="daochu">导出</el-button>
  52 + </div>
50 53 </div>
51 54 <!-- 表格 -->
52 55 <div class="content_table" style="padding: 15px 10px 10px 20px;background-color:#F2F3F5">
... ... @@ -152,7 +155,7 @@
152 155  
153 156 <script>
154 157 import * as echarts from 'echarts';
155   -import {getTotalSales} from '@/api/piaowu'
  158 +import {getTotalSales,excelToTotalSales} from '@/api/piaowu'
156 159 export default {
157 160 data() {
158 161 return {
... ... @@ -229,6 +232,12 @@ numOne:0,
229 232 let res = await getTotalSales(this.pageIndex)
230 233 this.tableData = res.data.list
231 234 this.total = res.data.total
  235 + this.tableData.map(res=>{
  236 +
  237 + res.price = this.$decrypt(res.price)
  238 + res.ticketPrice = this.$decrypt(res.ticketPrice)
  239 + console.log(res.price)
  240 + })
232 241 // this.echar(res.data.list)
233 242 let numOne =0
234 243 let moyeOne =0
... ... @@ -239,18 +248,20 @@ numOne:0,
239 248 let moyethree =0
240 249  
241 250 this.tableData.map(item=>{
242   - moyeOne += item.price
  251 + moyeOne += Number(item.price)
243 252 if(item.ticketChannel == '美团'){
244 253 numOne += item.num
245   - meimoye+=item.price
  254 + meimoye = meimoye + Number(item.price)
246 255 }
247 256 if(item.ticketChannel == '大麦'){
248 257 numTwo += item.num
249   - moyeTwo += item.price
  258 +
  259 + moyeTwo = moyeTwo + Number(item.price)
250 260 }
251 261 if(item.ticketChannel == '携程'){
252 262 numthree += item.num
253   - moyethree += item.price
  263 +
  264 + moyethree = moyethree + Number(item.price)
254 265 }
255 266 })
256 267 this.numOne = numOne
... ... @@ -260,9 +271,9 @@ numOne:0,
260 271 this.meimoye = meimoye
261 272 this.numthree = numthree
262 273 this.moyethree = moyethree
263   -this.echar2(res.data.list)
264   -this.echar3(res.data.list)
265   -this.echar(res.data.list)
  274 +this.echar2(this.tableData)
  275 +this.echar3( this.tableData)
  276 +this.echar( this.tableData)
266 277 },
267 278 search(){
268 279 if(this.pageIndex.list.length !=0){
... ... @@ -335,10 +346,10 @@ this.echar(res.data.list)
335 346  
336 347 // 如果存在,则累加值
337 348 if (existingItemIndex !== -1) {
338   - accumulator[existingItemIndex].value += item.price;
  349 + accumulator[existingItemIndex].value += Number(item.price);
339 350 } else {
340 351 // 如果不存在,则添加新项
341   - accumulator.push({ name: item.ticketChannel, value: item.price });
  352 + accumulator.push({ name: item.ticketChannel, value:Number(item.price)});
342 353 }
343 354  
344 355 return accumulator;
... ... @@ -372,10 +383,10 @@ this.echar(res.data.list)
372 383  
373 384 // 如果存在,则累加值
374 385 if (existingItemIndex !== -1) {
375   - accumulator[existingItemIndex].value += item.price;
  386 + accumulator[existingItemIndex].value +=Number(item.price);
376 387 } else {
377 388 // 如果不存在,则添加新项
378   - accumulator.push({ name: item.ticketType, value: item.price });
  389 + accumulator.push({ name: item.ticketType, value: Number(item.price) });
379 390 }
380 391  
381 392 return accumulator;
... ... @@ -426,15 +437,43 @@ this.echar(res.data.list)
426 437 });
427 438  
428 439 return sums;
429   - }
430   - },
  440 + },
  441 +
431 442 handleCurrentChange(val) {
432 443 this.currentPage = val
433 444 },
434 445 handleSizeChange(val) {
435 446 this.pageSize = val
436 447 },
  448 + async daochu(){
  449 + let res = await excelToTotalSales(this.pageIndex)
  450 + if(!res){
  451 + return
  452 + }
  453 + const blob = new Blob([res], { type: 'application/vnd.ms-excel' })
  454 + const fileName = '总销售额明细表.xls'
  455 + if ('download' in document.createElement('a')) {
  456 + // 非IE下载
  457 + const elink = document.createElement('a')
  458 + elink.download = fileName
  459 + elink.style.display = 'none'
  460 + elink.href = URL.createObjectURL(blob)
  461 + document.body.appendChild(elink)
  462 + elink.click()
  463 + URL.revokeObjectURL(elink.href) // 释放URL 对象
  464 + document.body.removeChild(elink)
  465 + } else {
  466 + // IE10+下载
  467 + navigator.msSaveBlob(blob, fileName)
  468 + }
  469 + this.$message({
  470 + message: '导出成功',
  471 + type: 'success'
  472 + })
  473 +
437 474  
  475 + },
  476 + }
438 477 }
439 478 </script>
440 479  
... ...
yanshouban/src/views/scheme/addressguan.vue
... ... @@ -9,7 +9,7 @@
9 9 <div class="formSearch">
10 10 <div class="demo-input-suffix">
11 11 <div style="width:68px;height:36px;line-height:32px;">位置</div>
12   - <el-input placeholder="请输入" v-model="formSel.policyName" style="width:168px;margin-right: 15px">
  12 + <el-input placeholder="请输入" v-model="formSel.locationName" style="width:168px;margin-right: 15px">
13 13 </el-input>
14 14 </div>
15 15 <div>
... ... @@ -34,9 +34,9 @@
34 34 {{scope.$index +1}}
35 35 </template>
36 36 </el-table-column>
37   - <el-table-column label="位置名称" prop="policyName" min-width="200" >
  37 + <el-table-column label="位置名称" prop="locationName" min-width="200" >
38 38 </el-table-column>
39   - <el-table-column label="创建时间" prop="applicableResources" min-width="100" >
  39 + <el-table-column label="创建时间" prop="createDate" min-width="100" >
40 40 </el-table-column>
41 41 <el-table-column label="操作" min-width="200" >
42 42 <template slot-scope="scope">
... ... @@ -55,8 +55,8 @@
55 55 :close-on-click-modal="false" >
56 56 <div style="padding:20px;" class="xinFrom">
57 57 <el-form :model="form" ref="ruleForm" label-width="80px">
58   - <el-form-item label="商铺位置" prop="policyName">
59   - <el-input v-model="form.policyName" placeholder="请输入" style="width: 87%;margin-right: 15px" maxlength="50"></el-input>
  58 + <el-form-item label="商铺位置" prop="locationName">
  59 + <el-input v-model="form.locationName" placeholder="请输入" style="width: 87%;margin-right: 15px" maxlength="50"></el-input>
60 60 </el-form-item>
61 61  
62 62 </el-form>
... ... @@ -69,6 +69,8 @@
69 69 </div>
70 70 </div>
71 71 </el-dialog>
  72 + <el-button @click="quxiao()" style="background-color: #fff;color: #000;border: 1px solid #B1B1B1;"
  73 + class="buttonHover">取 消</el-button>
72 74 </div>
73 75 </template>
74 76  
... ... @@ -78,6 +80,10 @@
78 80 ceAdd,
79 81 ceEdit,
80 82 ceDel,
  83 + addAddress,
  84 + deleteAddress,
  85 + editAddress,
  86 + getAllAddress,
81 87 } from '../../api/sam.js'
82 88 import wangEditor from "@/components/editor/index"
83 89 import upimg from "@/components/ImageUpload/index"
... ... @@ -95,7 +101,9 @@
95 101 data() {
96 102 return {
97 103 formSel:{
98   - policyName:''
  104 + locationName:'',
  105 + pageNumber: 1,
  106 + pageSize: 10,
99 107 },
100 108 tableData:[],
101 109 currentPage: 1,
... ... @@ -104,10 +112,14 @@
104 112 pageSize: 10,
105 113 xinShow:false,
106 114 form:{
107   - policyName:'',
108   - },
109   - index:0
  115 + locationName:'',
110 116  
  117 + },
  118 + index:0,
  119 + formPage:{
  120 + pageNumber: 1,
  121 + pageSize: 10,
  122 + },
111 123 }
112 124 },
113 125  
... ... @@ -120,38 +132,101 @@ this.getAll()
120 132 },
121 133  
122 134 methods: {
123   - getAll(){
124   -
  135 + async getAll(){
  136 + let res = await getAllAddress(this.formPage)
  137 + this.tableData = res.data.content
  138 + this.total = res.data.numberOfElements
125 139 },
126 140 handleCurrentChange(){
127 141  
128 142 },
129   - onSubmit(){
130   -
  143 + async onSubmit(){
  144 + let res = await getAllAddress(this.formSel)
  145 + this.tableData = res.data.content
  146 + this.total = res.data.numberOfElements
131 147 },
132 148 resetting(){
133   -
  149 + this.formSel={
  150 + locationName:'',
  151 + pageNumber: 1,
  152 + pageSize: 10,
  153 + }
  154 + this.getAll()
134 155 },
135 156 closeFn(){
136 157  
137 158 this.xinShow = false
138 159 this.getAll()
139 160 },
140   - addCheck(){
141   - this.xinShow = false
142   -this.getAll()
  161 + addCheck(index){
  162 + if(index ==0){
  163 + addAddress(this.form).then(res=>{
  164 + this.$message({
  165 + message: '新增成功',
  166 + type: 'success'
  167 + })
  168 + this.getAll()
  169 + this.xinShow = false
  170 + })
  171 + }else{
  172 + editAddress(this.form).then(res=>{
  173 + this.$message({
  174 + message: '修改成功',
  175 + type: 'success'
  176 + })
  177 + this.getAll()
  178 + this.xinShow = false
  179 + })
  180 + }
  181 +
  182 +
  183 +
143 184 },
144 185 addbuss(){
145 186 this.index = 0
146 187 this.xinShow = true
147 188 },
148   - handleEditForm(){
  189 + handleEditForm(item){
149 190 this.index =1
  191 + this.form = item
150 192 this.xinShow = true
151 193 },
152   - handleDelete(){
  194 + handleDelete(item){
  195 +
  196 + const h = this.$createElement;
  197 + this.$msgbox({
  198 + title: '消息',
  199 + message: h('p', null, [
  200 + h('span', null, '是否删除 '),
  201 + ]),
  202 + showCancelButton: true,
  203 + showClose: false,
  204 + confirmButtonText: '确定',
  205 + cancelButtonText: '取消',
  206 + customClass: 'oe-dialog-btn',
  207 + beforeClose: (action, instance, done) => {
  208 + if (action === 'confirm') {
  209 + deleteAddress({
  210 + id: item.id
  211 + }).then(res => {
  212 + this.$message({
  213 + message: '删除成功',
  214 + type: 'success'
  215 + })
  216 + this.getAll()
  217 + done();
  218 + })
  219 + } else {
  220 + done();
  221 + }
  222 + }
  223 + })
  224 +
153 225  
154 226 },
  227 + quxiao(){
  228 + this.$emit('addClose', false);
  229 + },
155 230 }
156 231 }
157 232 </script>
... ...
yanshouban/src/views/scheme/planningBz.vue
... ... @@ -36,6 +36,8 @@
36 36 <div style="margin:20px 0;display:flex;">
37 37 <el-button icon="el-icon-circle-plus-outline" @click="addbuss(1)"
38 38 style="background-color: #3F9B6A;color: #fff;padding:8px 15px;">新增</el-button>
  39 + <el-button @click="addbuss(1)"
  40 + style="background-color: #3F9B6A;color: #fff;padding:8px 15px;">招商规划方案参数化配置</el-button>
39 41 <el-upload class="upload-demo" ref="upload"
40 42 :limit="1"
41 43 accept=".xlsx"
... ... @@ -77,9 +79,9 @@
77 79 <el-table-column label="操作" min-width="250" >
78 80 <template slot-scope="scope">
79 81 <div @click="handleEditForm(scope.row,1)" class="tableBtn greens">查看</div>
80   - <div @click="handleEditForm(scope.row,2)" class="tableBtn greens" >编辑</div>
  82 + <div @click="handleEditForm(scope.row,2)" class="tableBtn greens" v-if="scope.row.reviewStatus == 1">编辑</div>
81 83 <!-- <div class="tableBtn greens">撤回</div> -->
82   - <div @click="handleDelete(scope.row)" class="tableBtn greens" >删除</div>
  84 + <div @click="handleDelete(scope.row)" class="tableBtn greens" v-if="scope.row.reviewStatus == 1">删除</div>
83 85 </template>
84 86 </el-table-column>
85 87 </el-table>
... ... @@ -605,6 +607,7 @@ this.total = res.data.content.length
605 607 },
606 608 closexaing(val){
607 609 this.xiang = false
  610 + this.getAll()
608 611 },
609 612 handleClick() {
610 613  
... ... @@ -628,7 +631,8 @@ this.total = res.data.content.length
628 631 this.getAll()
629 632 },
630 633 yulanFu(item){
631   - console.log(item)
  634 + window.location.href =item.url ;
  635 +
632 636 },
633 637 getCurrentDateRange() {
634 638 const today = new Date();
... ...
yanshouban/src/views/scheme/planningPar.vue
... ... @@ -142,7 +142,7 @@
142 142 </el-row>
143 143 <el-row :gutter="20">
144 144 <el-form-item label="附件信息">
145   - <div style="color: #3F9B6A;" v-if="secondData.annex">
  145 + <div style="color: #3F9B6A;" v-if="secondData.annex" @click="yulanFu(secondData.annex)">
146 146 {{secondData.annex.name}}
147 147 </div>
148 148 <!-- <el-upload class="upload-demo" ref="upload" :action="upload" :on-preview="handlePreview"
... ... @@ -638,6 +638,7 @@
638 638 pageindex: {
639 639 pageNumber: 1,
640 640 pageSize: 10,
  641 + reviewStatus:'1'
641 642 },
642 643 fileList: [],
643 644 ggXinShow:true,
... ... @@ -754,6 +755,10 @@ this.total = res.data.content.length
754 755  
755 756 this.xiang = true
756 757 },
  758 + yulanFu(item){
  759 + window.location.href =item.url ;
  760 +
  761 + },
757 762 }
758 763 }
759 764 </script>
... ...
yanshouban/src/views/scheme/sam.vue
... ... @@ -365,6 +365,7 @@ this.getAll()
365 365 closexaing(val){
366 366  
367 367 this.xiang = false
  368 + this.getAll()
368 369 },
369 370 handleClick() {
370 371  
... ...
yanshouban/src/views/scheme/samXin.vue
... ... @@ -50,7 +50,7 @@
50 50 </el-col>
51 51 <el-col :span="12">
52 52 <el-form-item label="租金价格" prop="rentalPrice">
53   - <el-input v-model.number="form.rentalPrice" placeholder="请输入" style="width: 72%;margin-right: 15px;" maxlength="30">
  53 + <el-input v-model="form.rentalPrice" placeholder="请输入" style="width: 72%;margin-right: 15px;" maxlength="30">
54 54 <template slot="suffix"><span
55 55 style="position: absolute;top: 19px;right: 1px;width: 50px;">元/m<sup>2</sup></span></template>
56 56 <!-- <i slot="suffix" class="el-input__icon el-icon-date"></i> -->
... ... @@ -223,7 +223,7 @@
223 223 </el-col>
224 224 <el-col :span="12">
225 225 <el-form-item label="租金价格" prop="rentalPrice">
226   - <el-input v-model.number="formInline.rentalPrice" placeholder="请输入" style="width: 72%;margin-right: 15px" maxlength="30">
  226 + <el-input v-model="formInline.rentalPrice" placeholder="请输入" style="width: 72%;margin-right: 15px" maxlength="30">
227 227 <template slot="suffix"><span
228 228 style="position: absolute;top: 19px;right: 1px;width: 50px;">元/m<sup>2</sup></span></template>
229 229 </el-input>
... ... @@ -391,10 +391,6 @@
391 391 message: '请输入租金价格'
392 392 },
393 393 {
394   - type: 'number',
395   - message: '必须为数字值'
396   - },
397   - {
398 394 validator: (rule, value, callback) => {
399 395 if (value <= 0) {
400 396 callback(new Error('租金价格必须大于0'));
... ...
yanshouban/src/views/serve/kefuServe/index.vue
... ... @@ -7,16 +7,8 @@
7 7 </div>
8 8 <!-- 搜索 -->
9 9 <!-- <div class="formSearch">
10   - <el-form :inline="true" :model="formSel">
11   - <el-form-item label="标题">
12   - <el-input v-model="formSel.title" placeholder="请输入" style="width:168px;" />
13   - </el-form-item>
14   - </el-form>
15 10 <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;">重置
  11 + <el-button @click="setPei" style="background-color: #3F9B6A;color: #fff">报修流程配置
20 12 </el-button>
21 13 </div>
22 14 </div> -->
... ... @@ -44,16 +36,23 @@
44 36 <el-table-column label="设备名称" prop="deviceName" width="auto" min-width="12%" />
45 37 <el-table-column label="备注" prop="memo" width="auto" min-width="12%" />
46 38  
47   - <el-table-column label="申请时间" prop="applicationTime" width="auto" min-width="12%" />
48 39  
  40 + <el-table-column label="申请时间" prop="applicationTime" width="auto" min-width="12%" />
  41 + <el-table-column label="报修到期时间" prop="repairEndTime" width="auto" min-width="12%" />
  42 + <el-table-column label="报修人" prop="repairman" width="auto" min-width="12%" />
  43 +<el-table-column label="状态" prop="repairStatus" width="auto" min-width="12%" >
  44 + <template slot-scope="scope">
  45 + {{scope.row.repairStatus==0?'暂未派单':scope.row.repairStatus==1?'已派单':scope.row.repairStatus==2?'已完成':scope.row.repairStatus==3?'已过期':''}}
  46 + </template>
  47 + </el-table-column>
49 48 <el-table-column label="操作" width="auto" min-width="17%">
50 49 <template slot-scope="scope">
51 50 <div class="tableBtn greens" @click="handleEditForm(scope.row)">
52 51 查看
53 52 </div>
54   - <!-- <div class="tableBtn greens">
55   - 再次发布
56   - </div> -->
  53 +<div class="tableBtn greens" @click="setPei(scope.row)">
  54 + 报修流程配置
  55 + </div>
57 56 <div class="tableBtn greens" @click="delGuan(scope.row,1)">
58 57 删除
59 58 </div>
... ... @@ -86,6 +85,7 @@
86 85 <el-table-column label="问题描述" prop="problemDescription" width="auto" min-width="12%" />
87 86 <el-table-column label="备注" prop="remark" width="auto" min-width="12%" />
88 87 <el-table-column label="申请时间" prop="applicationTime" width="auto" min-width="12%" />
  88 +
89 89 <el-table-column label="操作" width="auto" min-width="17%">
90 90 <template slot-scope="scope">
91 91 <div class="tableBtn greens" @click="handleEditForm(scope.row)">
... ... @@ -158,6 +158,31 @@
158 158  
159 159 </div>
160 160 </div>
  161 + <el-dialog :visible.sync="setPeiShow" custom-class='bian_css' style="padding: 0;" width="45%"
  162 + :close-on-press-escape="false" center :close-on-click-modal="false" class="dialog_css_Xq" :show-close="false">
  163 + <div style="padding:20px;">
  164 + <div style="font-size: 14px;padding-bottom: 20px;color: #000;">报修流程配置</div>
  165 + <el-form label-position="right" ref="jibenFrom" :model="peiForm" label-width="140px"
  166 + style="position: relative">
  167 + <el-form-item label="报修到期时间" class="grid-content bg-purple device-from" prop="repairEndTime">
  168 + <el-date-picker style="width:240px;margin-right:5px" v-model="peiForm.repairEndTime"
  169 + value-format="yyyy-MM-dd HH:mm:ss" type="datetime" prefix-icon="none" >
  170 + </el-date-picker>
  171 + </el-form-item>
  172 + <el-form-item label="报修人" class="grid-content bg-purple device-from" prop="repairman">
  173 + <el-input v-model="peiForm.repairman" placeholder="请输入" style="margin-top:5px;" maxlength="20"/>
  174 + </el-form-item>
  175 + </el-form>
  176 + <div style="padding-top:20px;display:flex;justify-content: flex-end;">
  177 + <el-button style="background-color: #3F9B6A;color: #fff"
  178 + @click="peiCheck">确定</el-button>
  179 + <el-button @click="setPeiShow = false" style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;" class="buttonHover">取消</el-button>
  180 +
  181 + </div>
  182 +
  183 + </div>
  184 +
  185 + </el-dialog>
161 186 </div>
162 187 </template>
163 188  
... ... @@ -172,6 +197,7 @@
172 197 ReportDel,
173 198 ComplaintGetAll,
174 199 ComplaintDel,
  200 + Reportedit
175 201 } from '../../../api/kefuServeBao.js'
176 202  
177 203 export default {
... ... @@ -210,6 +236,15 @@
210 236 pageSize: 10,
211 237 },
212 238 fabutype:'1',
  239 + setPeiShow:false,
  240 + peiForm:{
  241 + repairEndTime:'',
  242 + repairman:'',
  243 + peiId:'',
  244 + id:''
  245 + }
  246 +
  247 +
213 248 }
214 249 },
215 250  
... ... @@ -359,7 +394,26 @@
359 394 },
360 395 radioClick(tiem){
361 396 this.ruleForm.time =''
362   - }
  397 + },
  398 + setPei(item){
  399 + this.peiForm = {
  400 + repairEndTime:'',
  401 + repairman:'',
  402 + id:'',
  403 + }
  404 +
  405 + this.peiForm.id= item.id
  406 + this.setPeiShow = true
  407 + },
  408 + async peiCheck(){
  409 + if (this.peiForm.repairEndTime) {
  410 + this.peiForm.repairEndTime = new Date(this.peiForm.repairEndTime);
  411 + }
  412 + await Reportedit(this.peiForm)
  413 + this.setPeiShow = false
  414 + this.getAll()
  415 +
  416 + },
363 417 }
364 418 };
365 419 </script>
... ...
yanshouban/src/views/serve/procedure.vue
... ... @@ -42,7 +42,12 @@
42 42 width="auto"
43 43 min-width="12%"
44 44 />
45   -
  45 + <el-table-column
  46 + label="信息类型"
  47 + prop="informationType"
  48 + width="auto"
  49 + min-width="12%"
  50 + />
46 51 <el-table-column
47 52 label="创建时间"
48 53 prop="releaseTime"
... ... @@ -178,9 +183,9 @@
178 183 font-size: 14px;
179 184 "
180 185 >
181   - {{secondData.announcementTitle}}
  186 + {{secondData.informationType}}
182 187 </div>
183   - <el-select v-model="secondData.contentCategory" placeholder="请选择" v-else>
  188 + <el-select v-model="secondData.informationType" placeholder="请选择" v-else>
184 189 <el-option label="通知" value="通知" />
185 190 <el-option label="热点租赁信息" value="热点租赁信息" />
186 191 <el-option label="广告信息" value="广告信息" />
... ... @@ -292,8 +297,8 @@
292 297 size="mini"
293 298 />
294 299 </el-form-item>
295   - <el-form-item label="信息类型" prop="contentCategory">
296   - <el-select v-model="formSel.contentCategory" placeholder="请选择" style="width: 168px;">
  300 + <el-form-item label="信息类型" prop="informationType">
  301 + <el-select v-model="ruleForm.informationType" placeholder="请选择" style="width: 168px;">
297 302 <el-option label="通知" value="通知" />
298 303 <el-option label="热点租赁信息" value="热点租赁信息" />
299 304 <el-option label="广告信息" value="广告信息" />
... ... @@ -372,6 +377,7 @@ export default {
372 377 },
373 378 ruleForm: {
374 379 announcementTitle:'',//公告标题
  380 + informationType:'',
375 381 announcementContent:'',//公告内容
376 382 releaseTime:''//时间
377 383 },
... ...
yanshouban/src/views/shopRental/manage/index.vue
... ... @@ -46,8 +46,9 @@
46 46 :action="uploadFileUrl"
47 47 :on-success="daoru"
48 48 :file-list="fileData"
49   - :auto-upload="true"
50   - :show-file-list="false">
  49 + :auto-upload="true"
  50 + :show-file-list="false"
  51 + multiple >
51 52 <el-button style="background-color: #fff;color: #3F9B6A;border: 1px solid #dcdfe6;" class="buttonHover">导入</el-button>
52 53 </el-upload>
53 54 </div>
... ... @@ -359,21 +360,30 @@
359 360 合同签订日期
360 361 </template>
361 362 <div v-if="index ==2">{{heForm.contractSigningDate}}</div>
362   - <el-input v-model="heForm.contractSigningDate" style="width:100%;" v-else placeholder="请输入"/>
  363 + <!-- <el-input v-model="heForm.contractSigningDate" style="width:100%;" v-else placeholder="请输入"/> -->
  364 + <el-date-picker v-model="heForm.contractSigningDate"
  365 + value-format="yyyy-MM-dd HH:mm:ss" type="datetime" v-else placeholder="请选择" prefix-icon="none">
  366 + </el-date-picker>
363 367 </el-descriptions-item>
364 368 <el-descriptions-item>
365 369 <template slot="label">
366 370 合同终止日期
367 371 </template>
368 372 <div v-if="index ==2">{{heForm.contractTerminationDate}}</div>
369   - <el-input v-model="heForm.contractTerminationDate" style="width:100%;" v-else placeholder="请输入"/>
  373 + <!-- <el-input v-model="heForm.contractTerminationDate" style="width:100%;" v-else placeholder="请输入"/> -->
  374 + <el-date-picker v-model="heForm.contractTerminationDate"
  375 + value-format="yyyy-MM-dd HH:mm:ss" type="datetime" v-else placeholder="请选择" prefix-icon="none">
  376 + </el-date-picker>
370 377 </el-descriptions-item>
371 378 <el-descriptions-item>
372 379 <template slot="label">
373 380 起租日期
374 381 </template>
375 382 <div v-if="index ==2">{{heForm.leaseStartDate}}</div>
376   - <el-input v-model="heForm.leaseStartDate" style="width:100%;" v-else placeholder="请输入"/>
  383 + <!-- <el-input v-model="heForm.leaseStartDate" style="width:100%;" v-else placeholder="请输入"/> -->
  384 + <el-date-picker v-model="heForm.leaseStartDate"
  385 + value-format="yyyy-MM-dd HH:mm:ss" type="datetime" v-else placeholder="请选择" prefix-icon="none">
  386 + </el-date-picker>
377 387 </el-descriptions-item>
378 388 <el-descriptions-item>
379 389 <template slot="label">
... ... @@ -1369,7 +1379,8 @@ bianList:{
1369 1379 biangengPan:false,
1370 1380  
1371 1381 miList:['telephone','commander','leaseAddress','administrativeRegion','operator','tenant' ],
1372   -hemiList:['earnestMoney','contractAmount','lessorName','telephone','bankAccount','tenantName','tenantTelephone','tenantBankAccount']
  1382 +hemiList:['earnestMoney','contractAmount','lessorName','telephone','bankAccount','tenantName','tenantTelephone','tenantBankAccount'],
  1383 + daoIndex:0
1373 1384 }
1374 1385 },
1375 1386 created() {
... ... @@ -1766,13 +1777,32 @@ this.ggXin = true
1766 1777 this.biangengTab.splice(index, 1);
1767 1778 },
1768 1779 daoru(response, file, fileList){
1769   - this.fileData.push(file.raw)
1770   - const formDate = new FormData()
1771   - formDate.append('file', this.fileData[0])
1772   - excelAdd(formDate).then(res => {
1773   - this.getAll()
1774   - })
  1780 + if(this.daoIndex == 0){
  1781 + for(let i=0;i<fileList.length;i++){
  1782 + this.fileData.push(fileList[i].raw)
  1783 + }
  1784 + let uniqueFileData = [...new Set(this.fileData)]; // 使用 Set 去重
  1785 +
  1786 + // 删除值为 undefined 的元素
  1787 + uniqueFileData = uniqueFileData.filter(item => item !== undefined);
  1788 +
  1789 + // 更新 this.fileData
  1790 + this.fileData = uniqueFileData;
  1791 + this.fileData.map(item=>{
  1792 + let formDate = new FormData()
  1793 + formDate.append('file', item)
  1794 + excelAdd(formDate).then(res => {
  1795 + this.getAll()
  1796 +
  1797 + })
  1798 + })
  1799 +
  1800 + this.daoIndex = 1
  1801 + }
  1802 +
  1803 +
1775 1804 },
  1805 +
1776 1806 }
1777 1807 }
1778 1808 </script>
... ...
yanshouban/src/views/shopRental/warning/index.vue
... ... @@ -818,6 +818,22 @@
818 818 const res = await cereLeasingByPage(this.pageindex)
819 819 this.tableData = res.data.content
820 820 this.total = res.data.content.length
  821 + this.tableData.map(item=>{
  822 + res.telephone = this.$decrypt(res.telephone)
  823 + res.commander = this.$decrypt(res.commander)
  824 + res.leaseAddress = this.$decrypt(res.leaseAddress)
  825 + res.administrativeRegion = this.$decrypt(res.administrativeRegion)
  826 + res.operator = this.$decrypt(res.operator)
  827 + res.tenant = this.$decrypt(res.tenant)
  828 + res.cereContractInformation.earnestMoney =this.$decrypt(res.cereContractInformation.earnestMoney)
  829 + res.cereContractInformation.contractAmount =this.$decrypt(res.cereContractInformation.contractAmount)
  830 + res.cereContractInformation.lessorName =this.$decrypt(res.cereContractInformation.lessorName)
  831 + res.cereContractInformation.telephone =this.$decrypt(res.cereContractInformation.telephone)
  832 + res.cereContractInformation.bankAccount =this.$decrypt(res.cereContractInformation.bankAccount)
  833 + res.cereContractInformation.tenantName =this.$decrypt(res.cereContractInformation.tenantName)
  834 + res.cereContractInformation.tenantTelephone =this.$decrypt(res.cereContractInformation.tenantTelephone)
  835 + res.cereContractInformation.tenantBankAccount =this.$decrypt(res.cereContractInformation.tenantBankAccount)
  836 + })
821 837 },
822 838 // 新增确定按钮
823 839 async addCheck(val) {
... ...