Commit cc74825014670f2f4a81910ecf686eace25b5c5c

Authored by 杨鑫
1 parent 347e3afc

'2'

admin-web-master/src/api/activityBz.js
... ... @@ -205,3 +205,43 @@ export function copy(data) {
205 205 data
206 206 })
207 207 }
  208 +
  209 +
  210 +// 审核流程导出
  211 +export function excelQueryByPage(data) {
  212 + return request({
  213 + url: '/cereEventDetails/excelQueryByPage',
  214 + method: 'post',
  215 + data,
  216 + responseType: 'blob'
  217 + })
  218 +}
  219 +
  220 +// 导入
  221 +export function excelAdd(data) {
  222 + return request({
  223 + url: '/cereEventDetails/excelAdd',
  224 + method: 'post',
  225 + data,
  226 + headers: {
  227 + 'Content-type': 'multipart/form-data'
  228 + }
  229 + })
  230 +}
  231 +
  232 +// 效果评估
  233 +export function effectEvaluation(data) {
  234 + return request({
  235 + url: `/cereEventDetails/effectEvaluation/${data.id}`,
  236 + method: 'get',
  237 + data
  238 + })
  239 +}
  240 +//历史方案查询
  241 +export function lishiDeta(data) {
  242 + return request({
  243 + url: '/cereEventDetailsLog/getAll',
  244 + method: 'post',
  245 + data
  246 + })
  247 +}
... ...
admin-web-master/src/views/active/couponlist/couponAdd.vue
... ... @@ -241,16 +241,6 @@ export default {
241 241 message: '请输入活动介绍',
242 242 trigger: 'blur'
243 243 }],
244   - date2:[{
245   - required: true,
246   - message: '请选择报名时间',
247   - trigger: 'change'
248   - }],
249   - date1:[{
250   - required: true,
251   - message: '请选择活动时间',
252   - trigger: 'change'
253   - }],
254 244 },
255 245 }
256 246 },
... ...
admin-web-master/src/views/activity/activityBian.vue
... ... @@ -69,6 +69,16 @@
69 69 </el-form-item>
70 70 </el-col>
71 71 </el-row>
  72 + <el-row :gutter="20">
  73 + <el-col :span="12">
  74 + <el-form-item label="范围设置" class="grid-content bg-purple" prop="sponsor">
  75 + <el-select v-model="secondData.rangeSetting" placeholder="请选择" style="width: 100%">
  76 + <el-option label="活动绿道段内" value="活动绿道段内"></el-option>
  77 + <el-option label="活动场地内" value="活动场地内"></el-option>
  78 + </el-select>
  79 + </el-form-item>
  80 + </el-col>
  81 + </el-row>
72 82 <div style="padding: 10px">
73 83 <el-row :gutter="20">
74 84 <el-col :span="12">
... ... @@ -269,7 +279,7 @@
269 279 <div style="padding: 20px;display:flex;justify-content: flex-end">
270 280 <el-button plain @click="close" class="buttonHover" style="background-color: #fff;color: #000;border: 1px solid #dcdfe6;">返回
271 281 </el-button>
272   - <el-button plain @click="bianji" style="background-color: #3F9B6A;color: #fff">确定
  282 + <el-button plain @click="bianji" style="background-color: #3F9B6A;color: #fff">保存
273 283 </el-button>
274 284 </div>
275 285  
... ... @@ -588,7 +598,10 @@ this.fucha(this.secondData.id)
588 598 .greens {
589 599 color: #3F9B6A;
590 600 }
591   -
  601 + .tableBtn {
  602 + display: inline-block;
  603 + margin-right: 10px;
  604 + }
592 605 .el-button--primary{
593 606 background: #3F9B6A;
594 607 border-color: #3F9B6A;
... ...
admin-web-master/src/views/activity/activityBz.vue
... ... @@ -88,6 +88,28 @@
88 88 </el-form-item>
89 89 </el-col>
90 90 </el-row>
  91 + <el-row :gutter="20">
  92 + <el-col :span="12">
  93 + <el-form-item label="范围设置" class="grid-content bg-purple" prop="sponsor">
  94 + <el-select v-model="ruleForm.rangeSetting" placeholder="请选择" style="width: 100%">
  95 + <el-option label="活动绿道段内" value="活动绿道段内"></el-option>
  96 + <el-option label="活动场地内" value="活动场地内"></el-option>
  97 + </el-select>
  98 + </el-form-item>
  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>
  112 + </el-row>
91 113 <el-row :gutter="20">
92 114 <el-col :span="12">
93 115 <el-form-item label="活动主要目的" prop="mainPurpose" class="grid-content bg-purple">
... ... @@ -297,7 +319,9 @@
297 319 <div style="display: flex;justify-content: flex-end;padding: 10px 20px 10px 0">
298 320 <el-button @click="close" style="background-color: #3F9B6A;color: #fff;">取消
299 321 </el-button>
300   - <el-button @click="onSubmit" style="background-color: #3F9B6A;color: #fff;">确定
  322 + <el-button @click="onSubmit(1)" style="background-color: #3F9B6A;color: #fff;">暂存
  323 + </el-button>
  324 + <el-button @click="onSubmit(0)" style="background-color: #3F9B6A;color: #fff;">确定
301 325 </el-button>
302 326 </div>
303 327 </div>
... ... @@ -347,7 +371,8 @@
347 371 MingEdit,
348 372 MingDel,
349 373 fujiaAdd,
350   - imgUp
  374 + imgUp,
  375 + lishiDeta
351 376 } from '../../api/activityBz'
352 377 // import { Editor, Toolbar } from '@wangeditor/editor-for-vue'
353 378 import wangEditor from "@/components/editor/index";
... ... @@ -375,6 +400,7 @@
375 400 wangEditor,
376 401 upimg
377 402 },
  403 +
378 404 data() {
379 405 return {
380 406 uploadFileUrl: uploadUrl, // 请求地址
... ... @@ -393,6 +419,7 @@
393 419 eventTheme: '', //活动主题
394 420 sponsor: '', //活动主办方
395 421 participants: '', //活动参与方
  422 + rangeSetting:'',
396 423 mainPurpose: '', //活动主要目的
397 424 coverPoster: '', //封面海报
398 425 internalLaborCostEstimation: '', //内部人工成本预估
... ... @@ -468,6 +495,8 @@
468 495 yugu: null,
469 496 fun: null
470 497 },
  498 +fenxiData:[],
  499 +lishiList:'',
471 500  
472 501 }
473 502 },
... ... @@ -477,6 +506,7 @@
477 506 },
478 507 mounted() {
479 508 this.editTrue = true
  509 + this.lishi()
480 510 },
481 511 methods: {
482 512 //获取当前时间
... ... @@ -491,6 +521,22 @@
491 521  
492 522 this.currentTime = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
493 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 + },
494 540 zancun() {},
495 541 //上传
496 542 submitUpload() {
... ... @@ -558,7 +604,7 @@
558 604  
559 605 },
560 606 //保存
561   - onSubmit() {
  607 + onSubmit(val) {
562 608 // pdf.save('output.pdf')
563 609 let that = this
564 610 let FlieName = this.ruleForm.planName
... ... @@ -614,6 +660,7 @@
614 660 // }
615 661 this.$refs.jibenFrom.validate((valid) => {
616 662 if (valid) {
  663 + this.ruleForm.isDraft = val
617 664 add(this.ruleForm).then(res => {
618 665 this.$message({
619 666 message: '保存成功',
... ... @@ -735,6 +782,7 @@
735 782 eventTheme: '', //活动主题
736 783 sponsor: '', //活动主办方
737 784 participants: '', //活动参与方
  785 + rangeSetting:'',
738 786 mainPurpose: '', //活动主要目的
739 787 coverPoster: '', //封面海报
740 788 internalLaborCostEstimation: '', //内部人工成本预估
... ... @@ -839,7 +887,10 @@
839 887 color: #3F9B6A;
840 888 }
841 889  
842   -
  890 + .tableBtn {
  891 + display: inline-block;
  892 + margin-right: 10px;
  893 + }
843 894 </style>
844 895 <style lang="scss" scoped>
845 896 ::v-deep .XDD_css {
... ...
admin-web-master/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,1,false)">调整方案查看</div>
  102 + <div class="tableBtn greens" @click="handleEditForm(scope.row,2,false)">执行情况</div>
  103 + <div class="tableBtn greens" @click="handleEditForm(scope.row,2,true)">策划方案编辑</div>
  104 + <div class="tableBtn greens" @click="handleEditForm(scope.row,3,false)">历史方案查看</div>
  105 + <div @click="actDelete(scope.row)" class="tableBtn greens">删除</div>
  106 + <!-- <div class="tableBtn greens" @click="handleEditForm(scope.row)">历史方案查看</div> -->
  107 +
  108 + <!-- <div class="tableBtn greens">策略调整</div> -->
  109 + <!-- <div class="tableBtn greens" @click="koop(scope.row)">复制</div> -->
  110 + </template>
  111 + </el-table-column>
  112 +</el-table>
  113 +<div class="fenye">
  114 + <div>
  115 + <el-button @click="tableAll" class="buttonHover" style="color: #000;border: 1px solid #DBDBDB;background-color: #fff;">选择全部
  116 + </el-button>
  117 + <el-button @click="toggleSelection(tableData)"
  118 + class="buttonHover"
  119 + style="color: #000;border: 1px solid #DBDBDB;background-color: #fff;">反向选择
  120 + </el-button>
  121 + </div>
  122 + <el-pagination class="pagination" :hide-on-single-page="flag" background small :current-page="currentPage"
  123 + :page-size="pageSize" layout="prev,pager,next" :total="total"
  124 + @current-change="handleCurrentChange" />
  125 +</div>
  126 +
  127 +</div>
  128 +</div>
  129 +</div>
  130 +
  131 +
  132 +
  133 +<!-- 详情活动方案 -->
  134 +<el-dialog title="活动方案详情" :visible.sync="ggXin" custom-class='xiang_css' style="padding: 0;" width="80%" center
  135 + :close-on-click-modal="false" :close-on-press-escape="false" @close="refreshData">
  136 + <div ref="actXiang">
  137 + <div style="width: 100%;">
  138 + <div style="display: flex;padding:0px 20px 20px 20px; ">
  139 + <div style="width: 150px;height: 80px;" v-if="secondData.coverPoster">
  140 + <img :src="secondData.coverPoster" alt="" style="width: 100%;height: 80px;" />
  141 + </div>
  142 + <div
  143 + style="display: flex;flex-direction: column;justify-content: space-around;padding: 0 10px;font-size: 12px;">
  144 + <span style="margin-bottom: 10px;">{{text}}</span>
  145 + <span>活动时间:{{tableData1[1].eventTheme}}至{{tableData1[1].planName}}</span>
  146 + <span>活动地点:{{tableData1[0].planName}}</span>
  147 + </div>
  148 + </div>
  149 + </div>
  150 + <div style="width: 100%;background-color: #fff;">
  151 + <el-tabs v-model="activeName" @tab-click="handleClick" style="padding-left:20px;">
  152 + <el-tab-pane label="方案概况" name="first"></el-tab-pane>
  153 + <el-tab-pane label="执行效果" name="second"></el-tab-pane>
  154 + <el-tab-pane label="历史活动方案" name="fourd"></el-tab-pane>
  155 + <el-tab-pane label="执行情况" name="five"></el-tab-pane>
  156 + </el-tabs>
  157 + </div>
  158 + <div v-if="activeName=='first'" style="display: flex;">
  159 + <div style="width: 100%;">
  160 + <div style="width: 100%;">
  161 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">基本信息</div>
  162 + <div style="padding: 10px 20px;">
  163 + <el-table :data="tableData1"
  164 + :header-cell-style="{fontSize: '14px', backgroundColor: '#fff',color:'#000',fontWeight: 'normal'}"
  165 + style="width: 100%;margin: auto;">
  166 + <el-table-column class-name="first-column-bg" label="方案编号" prop="name" min-width="15%">
  167 + </el-table-column>
  168 + <el-table-column :label="id" prop="eventTheme" min-width="35%">
  169 +
  170 + </el-table-column>
  171 + <el-table-column class-name="first-column-bg" label="方案名称" prop="text" min-width="15%">
  172 +
  173 + </el-table-column>
  174 + <el-table-column :label="text" prop="planName" min-width="35%">
  175 +
  176 + </el-table-column>
  177 + </el-table>
  178 +
  179 +
  180 + </div>
  181 + </div>
  182 + <div style="width: 100%;">
  183 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">活动明细信息</div>
  184 + <div style="padding: 10px 20px;">
  185 + <el-table :data="tableData2"
  186 + :header-cell-style="{fontSize: '14px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
  187 + style="width: 100%;margin: auto;">
  188 + <el-table-column label="序号" min-width="5%" align='center'>
  189 + <template slot-scope="scope">
  190 + <span style="">{{ scope.$index +1}}</span>
  191 + </template>
  192 + </el-table-column>
  193 + <el-table-column label="明细项名称" prop="detailLtemName" min-width="28%">
  194 + </el-table-column>
  195 + <el-table-column label="预估数量" prop="estimatedQuantity" min-width="20%">
  196 +
  197 + </el-table-column>
  198 + <el-table-column label="预估费用" prop="estimatedCost" min-width="20%">
  199 +
  200 + </el-table-column>
  201 + <el-table-column label="备注" prop="notes" min-width="20%">
  202 + </el-table-column>
  203 + </el-table>
  204 + </div>
  205 + </div>
  206 + <div style="width: 100%;">
  207 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">活动成本信息</div>
  208 + <div style="padding:10px 20px;">
  209 + <el-table :data="tableData3"
  210 + :header-cell-style="{fontSize: '14px', backgroundColor: '#fff',color:'#000',fontWeight: 'normal'}"
  211 + style="width: 100%;margin: auto;">
  212 + <el-table-column class-name="first-column-bg" label="内部人力成本预估" prop="name" min-width="15%">
  213 + </el-table-column>
  214 + <el-table-column :label="internalLaborCostEstimation" prop="eventTheme" min-width="35%">
  215 +
  216 + </el-table-column>
  217 + <el-table-column class-name="first-column-bg" label="外部人力成本预估" prop="text" min-width="15%">
  218 +
  219 + </el-table-column>
  220 + <el-table-column :label="externalLaborCostEstimation" prop="planName" min-width="35%">
  221 +
  222 + </el-table-column>
  223 + </el-table>
  224 + </div>
  225 + </div>
  226 + <div style="width: 100%;">
  227 + <div style="font-size: 14px;padding:10px 20px 0px 20px;">预估效果</div>
  228 + <div style="padding:10px 20px;">
  229 + <el-table :data="tableData4"
  230 + :header-cell-style="{fontSize: '14px', backgroundColor: '#fff',color:'#000',fontWeight: 'normal'}"
  231 + style="width: 100%;margin: auto;">
  232 + <el-table-column class-name="first-column-bg" label="预计吸引流量" prop="name" min-width="15%">
  233 + </el-table-column>
  234 + <el-table-column :label="expectedAttractTraffic" prop="eventTheme" min-width="35%">
  235 +
  236 + </el-table-column>
  237 + <el-table-column class-name="first-column-bg" label="预计参与人数" prop="text" min-width="15%">
  238 +
  239 + </el-table-column>
  240 + <el-table-column :label="expectedParticipation" prop="planName" min-width="35%">
  241 +
  242 + </el-table-column>
  243 + </el-table>
  244 + </el-table-column>
  245 + </div>
  246 + </div>
  247 + <div style="width: 100%;">
  248 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">相关附件信息</div>
  249 + <div style="padding:10px 20px;">
  250 + <el-table :data="tableData6"
  251 + :header-cell-style="{fontSize: '14px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
  252 + style="width: 100%;margin: auto;">
  253 + <el-table-column label="序号" min-width="5%" align='center'>
  254 + <template slot-scope="scope">
  255 + <span style="">{{ scope.$index + 1 }}</span>
  256 + </template>
  257 + </el-table-column>
  258 + <el-table-column label="附件名称" prop="attachmentName" min-width="75%">
  259 + </el-table-column>
  260 + <el-table-column label="操作" min-width="20%">
  261 + <template slot-scope="scope">
  262 + <!-- <div class="tableBtn greens" @click="Down(scope.row)">下载</div> -->
  263 + <a class="tableBtn greens" :href="scope.row.attachmentUrl" target="_blank" download>下载</a>
  264 + </template>
  265 + </el-table-column>
  266 +
  267 + </el-table>
  268 + </div>
  269 + </div>
  270 + <div style="width: 100%;">
  271 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">系统信息</div>
  272 + <div style="padding:10px 20px;">
  273 + <el-table :data="tableData5"
  274 + :header-cell-style="{fontSize: '14px', backgroundColor: '#fff',color:'#000',fontWeight: 'normal'}"
  275 + style="width: 100%;margin: auto;">
  276 + <el-table-column class-name="first-column-bg" label="创建人" prop="name" min-width="15%">
  277 + </el-table-column>
  278 + <el-table-column :label="createUser" prop="eventTheme" min-width="35%">
  279 +
  280 + </el-table-column>
  281 + <el-table-column class-name="first-column-bg" label="创建时间" prop="text" min-width="15%">
  282 +
  283 + </el-table-column>
  284 + <el-table-column :label="createDate" prop="planName" min-width="35%">
  285 +
  286 + </el-table-column>
  287 + </el-table>
  288 + </div>
  289 + </div>
  290 + </div>
  291 + </div>
  292 + <div v-if="activeName=='second'">
  293 + <div style="padding: 20px">
  294 + <div style="border: solid 1px #E5E5E5;border-radius: 5px">
  295 + <div style="border-bottom: 1px solid #E5E5E5;padding: 1px">
  296 + <div style="padding: 10px 20px;background-color: #FAFAFA;font-size: 14px;">
  297 + 基本信息
  298 + </div>
  299 + </div>
  300 + <div style="padding: 20px 40px 20px 20px">
  301 + <el-form label-position="top" ref="ruleFormInfo" :model="zhixingList" label-width="120px"
  302 + style="position: relative">
  303 + <el-row :gutter="20">
  304 + <el-col :span="8">
  305 + <el-form-item label="活动名称" class="grid-content bg-purple device-from" prop="name">
  306 + <el-input v-model="zhixingList.planName" placeholder="请输入" :disabled="!zhixingBian" />
  307 + </el-form-item>
  308 + </el-col>
  309 + <el-col :span="8">
  310 + <el-form-item label="实际举办地点" class="grid-content bg-purple" prop="name">
  311 + <el-input v-model="zhixingList.eventAddrs" placeholder="请输入" :disabled="!zhixingBian" />
  312 + </el-form-item>
  313 + </el-col>
  314 +
  315 + <el-col :span="8">
  316 + <el-form-item label="实际举办时间" class="grid-content bg-purple" prop="event_start_time"
  317 + style="position: relative">
  318 + <el-date-picker style="width: 100%;" v-model="zhixingList.planTime"
  319 + @input="formTime"
  320 + value-format="yyyy-MM-dd HH:mm:ss" :disabled="!zhixingBian" type="datetimerange"
  321 + range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" align="right"
  322 + >
  323 + </el-date-picker>
  324 + </el-form-item>
  325 + </el-col>
  326 + </el-row>
  327 +
  328 + <el-row :gutter="20">
  329 + <el-col :span="8">
  330 + <el-form-item label="活动主办方" class="grid-content bg-purple" prop="name">
  331 + <el-input v-model="zhixingList.sponsor" placeholder="请输入" :disabled="!zhixingBian" />
  332 + </el-form-item>
  333 + </el-col>
  334 + <el-col :span="8">
  335 + <el-form-item label="活动实际参与方" class="grid-content bg-purple" prop="name">
  336 + <el-input v-model="zhixingList.participants" placeholder="请输入" :disabled="!zhixingBian" />
  337 + </el-form-item>
  338 + </el-col>
  339 + </el-row>
  340 + </el-form>
  341 + </div>
  342 + </div>
  343 + </div>
  344 + <div style="padding: 0px 20px 20px 20px">
  345 + <div style="border: solid 1px #E5E5E5;border-radius: 5px">
  346 + <div style="border-bottom: 1px solid #E5E5E5;padding: 1px;display: flex">
  347 + <div style="padding: 10px 20px;background-color: #FAFAFA;font-size: 14px;">
  348 + 活动明细信息
  349 + </div>
  350 + <div style="color: #2d8a58;margin-top: 10px;font-size: 14px;" @click="tianMing">
  351 + 添加明细
  352 + </div>
  353 + </div>
  354 + <!-- 表格-->
  355 + <div style="padding: 20px 20px 20px 20px">
  356 + <el-table :data="tableDa"
  357 + :header-cell-style="{fontSize: '14px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
  358 + style="width: 100%">
  359 + <el-table-column label="序号" width="auto" min-width="5%" prop="date" align="center">
  360 + <template slot-scope="scope">
  361 + {{scope.$index +1}}
  362 + </template>
  363 + </el-table-column>
  364 + <el-table-column label="明细项名称" prop="detailLtemName" width="auto" min-width="22%">
  365 +
  366 + </el-table-column>
  367 + <el-table-column label="预估数量" prop="estimatedQuantity" width="auto" min-width="15%">
  368 +
  369 + </el-table-column>
  370 + <el-table-column label="预估费用" prop="estimatedCost" width="auto" min-width="15%">
  371 + </el-table-column>
  372 + <el-table-column prop="notes" label="备注" width="auto" min-width="15%">
  373 + </el-table-column>
  374 + <el-table-column label="操作" width="auto" min-width="18%" v-if="zhixingBian">
  375 + <template slot-scope="scope">
  376 + <!-- <div class="tableBtn greens">详情</div> -->
  377 + <div class="tableBtn greens" @click="MingDelete(scope.$index,scope.row)">删除</div>
  378 + </template>
  379 + </el-table-column>
  380 + </el-table>
  381 +
  382 + </div>
  383 + </div>
  384 + </div>
  385 + <div style="padding: 20px">
  386 + <div style="border: solid 1px #E5E5E5;border-radius: 5px;padding-bottom: 20px;">
  387 + <div style="border-bottom: 1px solid #E5E5E5;padding: 1px">
  388 + <div style="padding: 10px 20px;background-color: #FAFAFA;font-size: 14px;">
  389 + 实际花费成本
  390 + </div>
  391 + </div>
  392 + <div style="padding: 20px 40px 0px 20px">
  393 + <el-form label-position="top" ref="ruleFormInfo" :model="zhixingList" label-width="120px"
  394 + style="position: relative">
  395 + <el-row :gutter="20">
  396 + <el-col :span="8">
  397 + <el-form-item label="内部人力成本预估" class="grid-content bg-purple device-from" prop="name">
  398 + <el-input v-model="zhixingList.internalLaborCostEstimation" placeholder="请输入"
  399 + :disabled="!zhixingBian" />
  400 + </el-form-item>
  401 + </el-col>
  402 + <el-col :span="8">
  403 + <el-form-item label="外部人力成本预估" class="grid-content bg-purple" prop="name">
  404 + <el-input v-model="zhixingList.externalLaborCostEstimation" placeholder="请输入"
  405 + :disabled="!zhixingBian" />
  406 + </el-form-item>
  407 + </el-col>
  408 +
  409 + <el-col :span="8">
  410 + <el-form-item label="商品成本预估" class="grid-content bg-purple" prop="name">
  411 + <el-input v-model="zhixingList.costEstimationGoods" placeholder="请输入" :disabled="!zhixingBian" />
  412 + </el-form-item>
  413 + </el-col>
  414 + </el-row>
  415 +
  416 + <el-row :gutter="20">
  417 + <el-col :span="8">
  418 + <el-form-item label="设备成本" class="grid-content bg-purple" prop="name">
  419 + <el-input v-model="zhixingList.setCostEstimate" placeholder="请输入" :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.estimatedPromotionalExpenses" placeholder="请输入"
  425 + :disabled="!zhixingBian" />
  426 + </el-form-item>
  427 + </el-col>
  428 + <el-col :span="8">
  429 + <el-form-item label="其他成本" class="grid-content bg-purple" prop="name">
  430 + <el-input v-model="zhixingList.otherNecessaryEstimates" placeholder="请输入"
  431 + :disabled="!zhixingBian" />
  432 + </el-form-item>
  433 + </el-col>
  434 + </el-row>
  435 +
  436 + <el-row :gutter="20">
  437 + <el-col :span="8">
  438 + <el-form-item label="总成本" prop="name" class="grid-content bg-purple">
  439 + <el-input v-model="zhixingList.totalCostEstimation" placeholder="请输入" :disabled="!zhixingBian" />
  440 + </el-form-item>
  441 + </el-col>
  442 + <el-col :span="16">
  443 + <el-form-item label="备注" prop="name" class="grid-content bg-purple">
  444 + <el-input v-model="zhixingList.notes" placeholder="请输入" :disabled="!zhixingBian" />
  445 + </el-form-item>
  446 + </el-col>
  447 + </el-row>
  448 + </el-form>
  449 + </div>
  450 + </div>
  451 + </div>
  452 +
  453 + <div style="padding: 20px">
  454 + <div style="border: solid 1px #E5E5E5;border-radius: 5px;padding-bottom: 20px;">
  455 + <div style="border-bottom: 1px solid #E5E5E5;padding: 1px">
  456 + <div style="padding: 10px 20px;background-color: #FAFAFA;font-size: 14px;">
  457 + 活动执行效果
  458 + </div>
  459 + </div>
  460 + <div style="padding: 20px 40px 0px 20px">
  461 + <el-form label-position="top" ref="ruleFormInfo" :model="zhixingList" label-width="120px"
  462 + style="position: relative">
  463 + <el-row :gutter="20">
  464 + <el-col :span="8">
  465 + <el-form-item label="吸引流量" class="grid-content bg-purple device-from" prop="name">
  466 + <el-input v-model="zhixingList.expectedAttractTraffic" placeholder="请输入" :disabled="!zhixingBian" />
  467 + </el-form-item>
  468 + </el-col>
  469 + <el-col :span="8">
  470 + <el-form-item label="参与人数" class="grid-content bg-purple" prop="name">
  471 + <el-input v-model="zhixingList.expectedParticipation" placeholder="请输入" :disabled="!zhixingBian" />
  472 + </el-form-item>
  473 + </el-col>
  474 +
  475 + <el-col :span="8">
  476 + <el-form-item label="直接收益" class="grid-content bg-purple" prop="name">
  477 + <el-input v-model="zhixingList.expectedDirectBenefits" placeholder="请输入" :disabled="!zhixingBian" />
  478 + </el-form-item>
  479 + </el-col>
  480 + </el-row>
  481 + <el-row :gutter="20">
  482 + <el-col :span="8">
  483 + <el-form-item label="间接收益" class="grid-content bg-purple" prop="name">
  484 + <el-input v-model="zhixingList.expectedIndirectBenefits" placeholder="请输入"
  485 + :disabled="!zhixingBian" />
  486 + </el-form-item>
  487 + </el-col>
  488 +
  489 + </el-row>
  490 + <el-row :gutter="20">
  491 + <el-col :span="24">
  492 + <el-form-item label="反馈内容" class="grid-content bg-purple" prop="name">
  493 + <el-upload class="upload-demo" ref="upload" :on-remove="handleRemove"
  494 + :action="uploadFileUrl" :on-success="handleUploadSuccess" :file-list="fileData"
  495 + :show-file-list="true" v-if="zhixingBian">
  496 + <el-button style="background-color: #fff;color: #3F9B6A;border: 1px solid #dcdfe6;" class="buttonHover" v-if="fileData.length==0">+点击上传</el-button>
  497 + </el-upload>
  498 + <div v-else>{{zhixingList.feedbackContent}}</div>
  499 + </el-form-item>
  500 + </el-col>
  501 +
  502 + </el-row>
  503 + </el-form>
  504 + </div>
  505 + </div>
  506 + </div>
  507 +
  508 + </div>
  509 + <div v-if="activeName=='fourd'">
  510 + <div style="display:flex;">
  511 + <div style="margin-right:10px;">历史活动策划方案搜索</div>
  512 + <el-select v-model="lishiList" placeholder="请选择" style="margin:0 20px 20px 20px;" @change="lichange">
  513 + <el-option
  514 + v-for="(item,index) in liData"
  515 + :key="item.id"
  516 + :label="item.operationType"
  517 + :value="index">
  518 + </el-option>
  519 + </el-select>
  520 + <el-button @click="tiaozheng" style="background-color: #3F9B6A;color: #fff" v-if="lishiList!=null" >调整对比
  521 + </el-button>
  522 + </div>
  523 + <div style="width: 100%;" v-if="lishiList!=null" ref="lishiRef">
  524 + <div style="width: 100%;">
  525 + <div style="padding: 10px 20px;">
  526 + <el-descriptions class="margin-top" title="基本信息" :column="2" border :labelStyle="labelStyle" >
  527 + <el-descriptions-item>
  528 + <template slot="label">
  529 + 方案编号
  530 + </template>
  531 + {{lixiang.id}}
  532 + </el-descriptions-item>
  533 + <el-descriptions-item>
  534 + <template slot="label">
  535 + 方案名称
  536 + </template>
  537 +
  538 + <span :style="duibiList.planName == lixiang.planName?'color: red':''" >{{lixiang.planName}}</span>
  539 + </el-descriptions-item>
  540 + <el-descriptions-item>
  541 + <template slot="label">
  542 + 类型
  543 + </template>
  544 +<span :style="duibiList.planType == lixiang.planType?'color: red':''" >{{lixiang.planType}}</span>
  545 + </el-descriptions-item>
  546 + <el-descriptions-item>
  547 + <template slot="label">
  548 + 活动地点
  549 + </template>
  550 +
  551 + <span :style="duibiList.eventAddrs == lixiang.eventAddrs?'color: red':''" >{{lixiang.eventAddrs}}</span>
  552 + </el-descriptions-item>
  553 + <el-descriptions-item>
  554 + <template slot="label">
  555 + 活动开始时间
  556 + </template>
  557 +
  558 + <span :style="duibiList.eventStartTime == lixiang.eventStartTime?'color: red':''" >{{lixiang.eventStartTime}}</span>
  559 + </el-descriptions-item>
  560 + <el-descriptions-item>
  561 + <template slot="label">
  562 + 活动结束时间
  563 + </template>
  564 +
  565 +<span :style="duibiList.eventEndTime == lixiang.eventEndTime?'color: red':''" >{{lixiang.eventEndTime}}</span>
  566 + </el-descriptions-item>
  567 + <el-descriptions-item>
  568 + <template slot="label">
  569 + 活动主题
  570 + </template>
  571 + <span :style="duibiList.eventTheme == lixiang.eventTheme?'color: red':''" >{{lixiang.eventTheme}}</span>
  572 + </el-descriptions-item>
  573 + <el-descriptions-item>
  574 + <template slot="label">
  575 + 活动主办方
  576 + </template>
  577 +<span :style="duibiList.sponsor == lixiang.sponsor?'color: red':''" >{{lixiang.sponsor}}</span>
  578 +
  579 + </el-descriptions-item>
  580 + <el-descriptions-item>
  581 + <template slot="label">
  582 + 活动参与方
  583 + </template>
  584 +
  585 +<span :style="duibiList.participants == lixiang.participants?'color: red':''" >{{lixiang.participants}}</span>
  586 + </el-descriptions-item>
  587 + <el-descriptions-item>
  588 + <template slot="label">
  589 + 活动主要目的
  590 + </template>
  591 +
  592 +<span :style="duibiList.mainPurpose == lixiang.mainPurpose?'color: red':''" >{{lixiang.mainPurpose}}</span>
  593 + </el-descriptions-item>
  594 + <el-descriptions-item>
  595 + <template slot="label">
  596 + 范围设置
  597 + </template>
  598 +
  599 +<span :style="duibiList.rangeSetting == lixiang.rangeSetting?'color: red':''" >{{lixiang.rangeSetting}}</span>
  600 + </el-descriptions-item>
  601 + <el-descriptions-item>
  602 + <template slot="label">
  603 + 状态
  604 + </template>
  605 +
  606 +{{getStatus(lixiang.state)}}
  607 +
  608 + </el-descriptions-item>
  609 + </el-descriptions>
  610 +
  611 + </div>
  612 + </div>
  613 + <div style="width: 100%;">
  614 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">活动明细信息</div>
  615 + <div style="padding: 10px 20px;">
  616 + <el-table :data="tableData2"
  617 + :header-cell-style="{fontSize: '14px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
  618 + style="width: 100%;margin: auto;">
  619 + <el-table-column label="序号" min-width="5%" align='center'>
  620 + <template slot-scope="scope">
  621 + <span style="">{{ scope.$index +1}}</span>
  622 + </template>
  623 + </el-table-column>
  624 + <el-table-column label="明细项名称" prop="detailLtemName" min-width="28%">
  625 + </el-table-column>
  626 + <el-table-column label="预估数量" prop="estimatedQuantity" min-width="20%">
  627 +
  628 + </el-table-column>
  629 + <el-table-column label="预估费用" prop="estimatedCost" min-width="20%">
  630 +
  631 + </el-table-column>
  632 + <el-table-column label="备注" prop="notes" min-width="20%">
  633 + </el-table-column>
  634 + </el-table>
  635 + </div>
  636 + </div>
  637 + <div style="width: 100%;">
  638 + <div style="padding:10px 20px;">
  639 + <el-descriptions class="margin-top" title="活动成本信息" :column="2" border :labelStyle="labelStyle" >
  640 + <el-descriptions-item>
  641 + <template slot="label">
  642 + 内部人力成本预估
  643 + </template>
  644 +
  645 +<span :style="duibiList.internalLaborCostEstimation == lixiang.internalLaborCostEstimation?'color: red':''" >{{lixiang.internalLaborCostEstimation}}</span>
  646 + </el-descriptions-item>
  647 + <el-descriptions-item>
  648 + <template slot="label">
  649 + 外部人力成本预估
  650 + </template>
  651 +
  652 + <span :style="duibiList.externalLaborCostEstimation == lixiang.externalLaborCostEstimation?'color: red':''" >{{lixiang.externalLaborCostEstimation}}</span>
  653 + </el-descriptions-item>
  654 + <el-descriptions-item>
  655 + <template slot="label">
  656 + 商品成本预估
  657 + </template>
  658 +
  659 +<span :style="duibiList.costEstimationGoods == lixiang.costEstimationGoods?'color: red':''" >{{lixiang.costEstimationGoods}}</span>
  660 + </el-descriptions-item>
  661 + <el-descriptions-item>
  662 + <template slot="label">
  663 + 设备成本预估
  664 + </template>
  665 +
  666 +<span :style="duibiList.setCostEstimate == lixiang.setCostEstimate?'color: red':''" >{{lixiang.setCostEstimate}}</span>
  667 + </el-descriptions-item>
  668 + <el-descriptions-item>
  669 + <template slot="label">
  670 + 宣传费用预估
  671 + </template>
  672 +
  673 + <span :style="duibiList.estimatedPromotionalExpenses == lixiang.estimatedPromotionalExpenses?'color: red':''" >{{lixiang.estimatedPromotionalExpenses}}</span>
  674 + </el-descriptions-item>
  675 + <el-descriptions-item>
  676 + <template slot="label">
  677 + 其他必要成本预估
  678 + </template>
  679 +
  680 +<span :style="duibiList.otherNecessaryEstimates == lixiang.otherNecessaryEstimates?'color: red':''" >{{lixiang.otherNecessaryEstimates}}</span>
  681 + </el-descriptions-item>
  682 + <el-descriptions-item>
  683 + <template slot="label">
  684 + 总成本预估
  685 + </template>
  686 +
  687 +<span :style="duibiList.totalCostEstimation == lixiang.totalCostEstimation?'color: red':''" >{{lixiang.totalCostEstimation}}</span>
  688 + </el-descriptions-item>
  689 + <el-descriptions-item>
  690 + <template slot="label">
  691 + 备注
  692 + </template>
  693 +
  694 +<span :style="duibiList.notes == lixiang.notes?'color: red':''" >{{lixiang.notes}}</span>
  695 + </el-descriptions-item>
  696 + </el-descriptions>
  697 + </div>
  698 + </div>
  699 + <div style="width: 100%;">
  700 +
  701 + <div style="padding:10px 20px;">
  702 + <el-descriptions class="margin-top" title="预估效果" :column="2" border :labelStyle="labelStyle" >
  703 + <el-descriptions-item>
  704 + <template slot="label">
  705 + 预计吸引流量
  706 + </template>
  707 +
  708 +<span :style="duibiList.expectedAttractTraffic == lixiang.expectedAttractTraffic?'color: red':''" >{{lixiang.expectedAttractTraffic}}</span>
  709 + </el-descriptions-item>
  710 + <el-descriptions-item>
  711 + <template slot="label">
  712 + 预计参与人数
  713 + </template>
  714 +
  715 +<span :style="duibiList.expectedParticipation == lixiang.expectedParticipation?'color: red':''" >{{lixiang.expectedParticipation}}</span>
  716 + </el-descriptions-item>
  717 + <el-descriptions-item>
  718 + <template slot="label">
  719 + 预计直接收益
  720 + </template>
  721 +
  722 +<span :style="duibiList.expectedDirectBenefits == lixiang.expectedDirectBenefits?'color: red':''" >{{lixiang.expectedDirectBenefits}}</span>
  723 + </el-descriptions-item>
  724 + <el-descriptions-item>
  725 + <template slot="label">
  726 + 预计间接收益
  727 + </template>
  728 +
  729 +<span :style="duibiList.expectedIndirectBenefits == lixiang.expectedIndirectBenefits?'color: red':''" >{{lixiang.expectedIndirectBenefits}}</span>
  730 + </el-descriptions-item>
  731 +
  732 + </el-descriptions>
  733 +
  734 + </div>
  735 + </div>
  736 + <div style="width: 100%;">
  737 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">相关附件信息</div>
  738 + <div style="padding:10px 20px;">
  739 + <el-table :data="tableData6"
  740 + :header-cell-style="{fontSize: '14px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
  741 + style="width: 100%;margin: auto;">
  742 + <el-table-column label="序号" min-width="5%" align='center'>
  743 + <template slot-scope="scope">
  744 + <span style="">{{ scope.$index + 1 }}</span>
  745 + </template>
  746 + </el-table-column>
  747 + <el-table-column label="附件名称" prop="attachmentName" min-width="75%">
  748 + </el-table-column>
  749 + <el-table-column label="操作" min-width="20%">
  750 + <template slot-scope="scope">
  751 + <!-- <div class="tableBtn greens" @click="Down(scope.row)">下载</div> -->
  752 + <a class="tableBtn greens" :href="scope.row.attachmentUrl" target="_blank" download>下载</a>
  753 + </template>
  754 + </el-table-column>
  755 +
  756 + </el-table>
  757 + </div>
  758 + </div>
  759 + <div style="width: 100%;">
  760 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">系统信息</div>
  761 + <div style="padding:10px 20px;">
  762 + <el-table :data="tableData5"
  763 + :header-cell-style="{fontSize: '14px', backgroundColor: '#fff',color:'#000',fontWeight: 'normal'}"
  764 + style="width: 100%;margin: auto;">
  765 + <el-table-column class-name="first-column-bg" label="创建人" prop="name" min-width="15%">
  766 + </el-table-column>
  767 + <el-table-column :label="createUser" prop="eventTheme" min-width="35%">
  768 +
  769 + </el-table-column>
  770 + <el-table-column class-name="first-column-bg" label="创建时间" prop="text" min-width="15%">
  771 +
  772 + </el-table-column>
  773 + <el-table-column :label="createDate" prop="planName" min-width="35%">
  774 +
  775 + </el-table-column>
  776 + </el-table>
  777 + </div>
  778 + </div>
  779 + </div>
  780 + </div>
  781 +
  782 + <div v-if="activeName=='five'">
  783 + <div style="width: 100%;padding:20px;">
  784 + <wangEditor v-model="zhixingqingk" ref="editor"></wangEditor>
  785 +
  786 + </div>
  787 + </div>
  788 + </div>
  789 +
  790 +
  791 + <div style="display: flex;justify-content: flex-end;padding:10px">
  792 + <el-button @click="ggXin = false" style="background-color: #3F9B6A;color: #fff" >取消
  793 + </el-button>
  794 + <el-button @click="lishidownloadPdf" style="background-color: #3F9B6A;color: #fff" v-if="activeName=='fourd'">导出
  795 + </el-button>
  796 + <el-button @click="downloadPdf" style="background-color: #3F9B6A;color: #fff" v-if="activeName=='first'">活动策划调整方案导出
  797 + </el-button>
  798 +
  799 + <el-button @click="jiucuo" style="background-color: #3F9B6A;color: #fff" v-if="activeName=='first'" >活动策划调整纠错
  800 + </el-button>
  801 +<el-button @click="bianji" style="background-color: #3F9B6A;color: #fff" v-if="zhixingBian && activeName=='second'">保存
  802 + </el-button>
  803 + <el-button @click="fivebian" style="background-color: #3F9B6A;color: #fff" v-if="activeName=='five'">保存
  804 + </el-button>
  805 + </div>
  806 +
  807 +</el-dialog>
  808 +</div>
  809 +</div>
  810 +<!-- 调整对比 -->
  811 +<el-dialog title="调整对比" :visible.sync="tiaozhengShow" custom-class='xiang_css' style="padding: 0;" width="80%" center
  812 + :close-on-click-modal="false" :close-on-press-escape="false" @close="reshData">
  813 + <div>
  814 + <div style="width: 100%;">
  815 + <div style="display: flex;padding:0px 20px 20px 20px; ">
  816 + <div style="width: 150px;height: 80px;" v-if="secondData.coverPoster">
  817 + <img :src="secondData.coverPoster" alt="" style="width: 100%;height: 80px;" />
  818 + </div>
  819 + <div
  820 + style="display: flex;flex-direction: column;justify-content: space-around;padding: 0 10px;font-size: 12px;">
  821 + <span style="margin-bottom: 10px;">{{text}}</span>
  822 + <span>活动时间:{{tableData1[1].eventTheme}}至{{tableData1[1].planName}}</span>
  823 + <span>活动地点:{{tableData1[0].planName}}</span>
  824 + </div>
  825 + </div>
  826 + </div>
  827 +
  828 + <div style="display: flex;">
  829 + <div style="width: 50%;">
  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="tableData1"
  834 + :header-cell-style="{fontSize: '14px', backgroundColor: '#fff',color:'#000',fontWeight: 'normal'}"
  835 + style="width: 100%;margin: auto;">
  836 + <el-table-column class-name="first-column-bg" label="方案编号" prop="name" min-width="15%">
  837 + </el-table-column>
  838 + <el-table-column :label="id" prop="eventTheme" min-width="35%">
  839 +
  840 + </el-table-column>
  841 + <el-table-column class-name="first-column-bg" label="方案名称" prop="text" min-width="15%">
  842 +
  843 + </el-table-column>
  844 + <el-table-column :label="text" prop="planName" min-width="35%">
  845 +
  846 + </el-table-column>
  847 + </el-table>
  848 +
  849 +
  850 + </div>
  851 + </div>
  852 + <div style="width: 100%;">
  853 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">活动明细信息</div>
  854 + <div style="padding: 10px 20px;">
  855 + <el-table :data="tableData2"
  856 + :header-cell-style="{fontSize: '14px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
  857 + style="width: 100%;margin: auto;">
  858 + <el-table-column label="序号" min-width="5%" align='center'>
  859 + <template slot-scope="scope">
  860 + <span style="">{{ scope.$index +1}}</span>
  861 + </template>
  862 + </el-table-column>
  863 + <el-table-column label="明细项名称" prop="detailLtemName" min-width="28%">
  864 + </el-table-column>
  865 + <el-table-column label="预估数量" prop="estimatedQuantity" min-width="20%">
  866 +
  867 + </el-table-column>
  868 + <el-table-column label="预估费用" prop="estimatedCost" min-width="20%">
  869 +
  870 + </el-table-column>
  871 + <el-table-column label="备注" prop="notes" min-width="20%">
  872 + </el-table-column>
  873 + </el-table>
  874 + </div>
  875 + </div>
  876 + <div style="width: 100%;">
  877 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">活动成本信息</div>
  878 + <div style="padding:10px 20px;">
  879 + <el-table :data="tableData3"
  880 + :header-cell-style="{fontSize: '14px', backgroundColor: '#fff',color:'#000',fontWeight: 'normal'}"
  881 + style="width: 100%;margin: auto;">
  882 + <el-table-column class-name="first-column-bg" label="内部人力成本预估" prop="name" min-width="15%">
  883 + </el-table-column>
  884 + <el-table-column :label="internalLaborCostEstimation" prop="eventTheme" min-width="35%">
  885 +
  886 + </el-table-column>
  887 + <el-table-column class-name="first-column-bg" label="外部人力成本预估" prop="text" min-width="15%">
  888 +
  889 + </el-table-column>
  890 + <el-table-column :label="externalLaborCostEstimation" prop="planName" min-width="35%">
  891 +
  892 + </el-table-column>
  893 + </el-table>
  894 + </div>
  895 + </div>
  896 + <div style="width: 100%;">
  897 + <div style="font-size: 14px;padding:10px 20px 0px 20px;">预估效果</div>
  898 + <div style="padding:10px 20px;">
  899 + <el-table :data="tableData4"
  900 + :header-cell-style="{fontSize: '14px', backgroundColor: '#fff',color:'#000',fontWeight: 'normal'}"
  901 + style="width: 100%;margin: auto;">
  902 + <el-table-column class-name="first-column-bg" label="预计吸引流量" prop="name" min-width="15%">
  903 + </el-table-column>
  904 + <el-table-column :label="expectedAttractTraffic" prop="eventTheme" min-width="35%">
  905 +
  906 + </el-table-column>
  907 + <el-table-column class-name="first-column-bg" label="预计参与人数" prop="text" min-width="15%">
  908 +
  909 + </el-table-column>
  910 + <el-table-column :label="expectedParticipation" prop="planName" min-width="35%">
  911 +
  912 + </el-table-column>
  913 + </el-table>
  914 + </el-table-column>
  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="tableData6"
  921 + :header-cell-style="{fontSize: '14px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
  922 + style="width: 100%;margin: auto;">
  923 + <el-table-column label="序号" min-width="5%" align='center'>
  924 + <template slot-scope="scope">
  925 + <span style="">{{ scope.$index + 1 }}</span>
  926 + </template>
  927 + </el-table-column>
  928 + <el-table-column label="附件名称" prop="attachmentName" min-width="75%">
  929 + </el-table-column>
  930 + <el-table-column label="操作" min-width="20%">
  931 + <template slot-scope="scope">
  932 + <!-- <div class="tableBtn greens" @click="Down(scope.row)">下载</div> -->
  933 + <a class="tableBtn greens" :href="scope.row.attachmentUrl" target="_blank" download>下载</a>
  934 + </template>
  935 + </el-table-column>
  936 +
  937 + </el-table>
  938 + </div>
  939 + </div>
  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-table :data="tableData5"
  944 + :header-cell-style="{fontSize: '14px', backgroundColor: '#fff',color:'#000',fontWeight: 'normal'}"
  945 + style="width: 100%;margin: auto;">
  946 + <el-table-column class-name="first-column-bg" label="创建人" prop="name" min-width="15%">
  947 + </el-table-column>
  948 + <el-table-column :label="createUser" prop="eventTheme" min-width="35%">
  949 +
  950 + </el-table-column>
  951 + <el-table-column class-name="first-column-bg" label="创建时间" prop="text" min-width="15%">
  952 +
  953 + </el-table-column>
  954 + <el-table-column :label="createDate" prop="planName" min-width="35%">
  955 +
  956 + </el-table-column>
  957 + </el-table>
  958 + </div>
  959 + </div>
  960 + </div>
  961 + <div style="width: 50%;">
  962 + <div style="width: 100%;">
  963 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">修改前</div>
  964 + <div style="padding: 10px 20px;">
  965 + <el-descriptions class="margin-top" :column="2" border :labelStyle="labelStyleOne" >
  966 + <el-descriptions-item>
  967 + <template slot="label">
  968 + 方案编号
  969 + </template>
  970 + {{lixiang.id}}
  971 + </el-descriptions-item>
  972 + <el-descriptions-item>
  973 + <template slot="label">
  974 + 方案名称
  975 + </template>
  976 + {{lixiang.planName}}
  977 + </el-descriptions-item>
  978 + <el-descriptions-item>
  979 + <template slot="label">
  980 + 类型
  981 + </template>
  982 + {{lixiang.planType}}
  983 + </el-descriptions-item>
  984 + <el-descriptions-item>
  985 + <template slot="label">
  986 + 活动地点
  987 + </template>
  988 + {{lixiang.eventAddrs}}
  989 + </el-descriptions-item>
  990 + <el-descriptions-item>
  991 + <template slot="label">
  992 + 活动开始时间
  993 + </template>
  994 + {{lixiang.eventStartTime}}
  995 + </el-descriptions-item>
  996 + <el-descriptions-item>
  997 + <template slot="label">
  998 + 活动结束时间
  999 + </template>
  1000 + {{lixiang.eventEndTime}}
  1001 + </el-descriptions-item>
  1002 + <el-descriptions-item>
  1003 + <template slot="label">
  1004 + 活动主题
  1005 + </template>
  1006 + {{lixiang.eventTheme}}
  1007 + </el-descriptions-item>
  1008 + <el-descriptions-item>
  1009 + <template slot="label">
  1010 + 活动主办方
  1011 + </template>
  1012 + {{lixiang.sponsor}}
  1013 + </el-descriptions-item>
  1014 + <el-descriptions-item>
  1015 + <template slot="label">
  1016 + 活动参与方
  1017 + </template>
  1018 + {{lixiang.participants}}
  1019 + </el-descriptions-item>
  1020 + <el-descriptions-item>
  1021 + <template slot="label">
  1022 + 活动主要目的
  1023 + </template>
  1024 + {{lixiang.mainPurpose}}
  1025 + </el-descriptions-item>
  1026 + <el-descriptions-item>
  1027 + <template slot="label">
  1028 + 范围设置
  1029 + </template>
  1030 + {{lixiang.rangeSetting}}
  1031 + </el-descriptions-item>
  1032 + <el-descriptions-item>
  1033 + <template slot="label">
  1034 + 状态
  1035 + </template>
  1036 + {{getStatus(lixiang.state)}}
  1037 +
  1038 + </el-descriptions-item>
  1039 + </el-descriptions>
  1040 +
  1041 + </div>
  1042 + </div>
  1043 + <div style="width: 100%;">
  1044 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">活动明细信息</div>
  1045 + <div style="padding: 10px 20px;">
  1046 + <el-table :data="tableData2"
  1047 + :header-cell-style="{fontSize: '14px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
  1048 + style="width: 100%;margin: auto;">
  1049 + <el-table-column label="序号" min-width="5%" align='center'>
  1050 + <template slot-scope="scope">
  1051 + <span style="">{{ scope.$index +1}}</span>
  1052 + </template>
  1053 + </el-table-column>
  1054 + <el-table-column label="明细项名称" prop="detailLtemName" min-width="28%">
  1055 + </el-table-column>
  1056 + <el-table-column label="预估数量" prop="estimatedQuantity" min-width="20%">
  1057 +
  1058 + </el-table-column>
  1059 + <el-table-column label="预估费用" prop="estimatedCost" min-width="20%">
  1060 +
  1061 + </el-table-column>
  1062 + <el-table-column label="备注" prop="notes" min-width="20%">
  1063 + </el-table-column>
  1064 + </el-table>
  1065 + </div>
  1066 + </div>
  1067 + <div style="width: 100%;">
  1068 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">活动成本信息</div>
  1069 + <div style="padding:10px 20px;">
  1070 + <el-descriptions class="margin-top" :column="2" border :labelStyle="labelStyleOne" >
  1071 + <el-descriptions-item>
  1072 + <template slot="label">
  1073 + 内部人力成本预估
  1074 + </template>
  1075 + {{lixiang.internalLaborCostEstimation}}
  1076 + </el-descriptions-item>
  1077 + <el-descriptions-item>
  1078 + <template slot="label">
  1079 + 外部人力成本预估
  1080 + </template>
  1081 + {{lixiang.externalLaborCostEstimation}}
  1082 + </el-descriptions-item>
  1083 + <el-descriptions-item>
  1084 + <template slot="label">
  1085 + 商品成本预估
  1086 + </template>
  1087 + {{lixiang.costEstimationGoods}}
  1088 + </el-descriptions-item>
  1089 + <el-descriptions-item>
  1090 + <template slot="label">
  1091 + 设备成本预估
  1092 + </template>
  1093 + {{lixiang.setCostEstimate}}
  1094 + </el-descriptions-item>
  1095 + <el-descriptions-item>
  1096 + <template slot="label">
  1097 + 宣传费用预估
  1098 + </template>
  1099 + {{lixiang.estimatedPromotionalExpenses}}
  1100 + </el-descriptions-item>
  1101 + <el-descriptions-item>
  1102 + <template slot="label">
  1103 + 其他必要成本预估
  1104 + </template>
  1105 + {{lixiang.otherNecessaryEstimates}}
  1106 + </el-descriptions-item>
  1107 + <el-descriptions-item>
  1108 + <template slot="label">
  1109 + 总成本预估
  1110 + </template>
  1111 + {{lixiang.totalCostEstimation}}
  1112 + </el-descriptions-item>
  1113 + <el-descriptions-item>
  1114 + <template slot="label">
  1115 + 备注
  1116 + </template>
  1117 + {{lixiang.notes}}
  1118 + </el-descriptions-item>
  1119 + </el-descriptions>
  1120 + </div>
  1121 + </div>
  1122 + <div style="width: 100%;">
  1123 +<div style="font-size: 14px;padding: 10px 20px 0px 20px;">预估效果</div>
  1124 + <div style="padding:10px 20px;">
  1125 + <el-descriptions class="margin-top" :column="2" border :labelStyle="labelStyleOne" >
  1126 + <el-descriptions-item>
  1127 + <template slot="label">
  1128 + 预计吸引流量
  1129 + </template>
  1130 + {{lixiang.expectedAttractTraffic}}
  1131 + </el-descriptions-item>
  1132 + <el-descriptions-item>
  1133 + <template slot="label">
  1134 + 预计参与人数
  1135 + </template>
  1136 + {{lixiang.expectedParticipation}}
  1137 + </el-descriptions-item>
  1138 + <el-descriptions-item>
  1139 + <template slot="label">
  1140 + 预计直接收益
  1141 + </template>
  1142 + {{lixiang.expectedDirectBenefits}}
  1143 + </el-descriptions-item>
  1144 + <el-descriptions-item>
  1145 + <template slot="label">
  1146 + 预计间接收益
  1147 + </template>
  1148 + {{lixiang.expectedIndirectBenefits}}
  1149 + </el-descriptions-item>
  1150 +
  1151 + </el-descriptions>
  1152 +
  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="tableData6"
  1159 + :header-cell-style="{fontSize: '14px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
  1160 + style="width: 100%;margin: auto;">
  1161 + <el-table-column label="序号" min-width="5%" align='center'>
  1162 + <template slot-scope="scope">
  1163 + <span style="">{{ scope.$index + 1 }}</span>
  1164 + </template>
  1165 + </el-table-column>
  1166 + <el-table-column label="附件名称" prop="attachmentName" min-width="75%">
  1167 + </el-table-column>
  1168 + <el-table-column label="操作" min-width="20%">
  1169 + <template slot-scope="scope">
  1170 + <!-- <div class="tableBtn greens" @click="Down(scope.row)">下载</div> -->
  1171 + <a class="tableBtn greens" :href="scope.row.attachmentUrl" target="_blank" download>下载</a>
  1172 + </template>
  1173 + </el-table-column>
  1174 +
  1175 + </el-table>
  1176 + </div>
  1177 + </div>
  1178 + <div style="width: 100%;">
  1179 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">系统信息</div>
  1180 + <div style="padding:10px 20px;">
  1181 + <el-table :data="tableData5"
  1182 + :header-cell-style="{fontSize: '14px', backgroundColor: '#fff',color:'#000',fontWeight: 'normal'}"
  1183 + style="width: 100%;margin: auto;">
  1184 + <el-table-column class-name="first-column-bg" label="创建人" prop="name" min-width="15%">
  1185 + </el-table-column>
  1186 + <el-table-column :label="createUser" prop="eventTheme" min-width="35%">
  1187 +
  1188 + </el-table-column>
  1189 + <el-table-column class-name="first-column-bg" label="创建时间" prop="text" min-width="15%">
  1190 +
  1191 + </el-table-column>
  1192 + <el-table-column :label="createDate" prop="planName" min-width="35%">
  1193 +
  1194 + </el-table-column>
  1195 + </el-table>
  1196 + </div>
  1197 + </div>
  1198 + </div>
  1199 + </div>
  1200 +
  1201 +
  1202 + </div>
  1203 +</el-dialog>
  1204 +
  1205 +<el-dialog title="新增明细" :visible.sync="addMing" custom-class='dialog_css' style="padding: 0;" width="50%" append-to-body
  1206 + center :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false">
  1207 + <div style="padding: 15px;width:100%">
  1208 + <div style="">
  1209 + <div style="padding: 15px;">
  1210 + <el-form label-position="right" ref="ruleFormInfo" :model="mingFrom" label-width="140px"
  1211 + style="position: relative">
  1212 + <el-form-item label="明细项名称" class="grid-content bg-purple device-from" prop="planName">
  1213 + <el-input v-model="mingFrom.detailLtemName" placeholder="请输入" />
  1214 + </el-form-item>
  1215 + <el-form-item label="预估数量" class="grid-content bg-purple" prop=" planType">
  1216 + <el-input v-model="mingFrom.estimatedQuantity" placeholder="请输入" />
  1217 + </el-form-item>
  1218 +
  1219 + <el-form-item label="预估费用" class="grid-content bg-purple" prop="eventAddrs">
  1220 + <el-input v-model="mingFrom.estimatedCost" placeholder="请输入" />
  1221 + </el-form-item>
  1222 + <el-form-item label="备注" class="grid-content bg-purple device-from" prop="planName">
  1223 + <el-input v-model="mingFrom.notes" placeholder="请输入" />
  1224 + </el-form-item>
  1225 + </el-form>
  1226 + </div>
  1227 + </div>
  1228 +
  1229 + </div>
  1230 + <div style="display: flex;justify-content: flex-end;padding: 10px 20px 10px 0">
  1231 +
  1232 + <el-button plain @click="minSev" style="background-color: #3F9B6A;color: #fff;">保存
  1233 + </el-button>
  1234 + <el-button plain @click="addMing=false" style="background-color: #3F9B6A;color: #fff;">取消
  1235 + </el-button>
  1236 + </div>
  1237 +</el-dialog>
  1238 +<!-- 效果对比 -->
  1239 +<el-dialog :visible.sync="xiaoDui" custom-class='dialog_css' style="padding: 0;" width="60%" center
  1240 + :close-on-click-modal="false" :close-on-press-escape="false">
  1241 + <div style="padding: 0 50px;display:flex;justify-content: space-evenly;">
  1242 + <div style="width:30%">
  1243 + <div style="display: flex;">
  1244 + <div style="margin-right: 10px;padding: 10px 0;">
  1245 + <div>调整前方案</div>
  1246 + <div style="font-size: 22px;color: #3F9B6A;font-weight: 600;margin: 10px 0;">{{xiaoduiObj.biliOne}}</div>
  1247 + <div style="font-size: 16px;color: #3F9B6A;font-weight: 600;">投入产出比</div>
  1248 + </div>
  1249 + <el-progress type="circle" :percentage="xiaoduiObj.bilis" :show-text="false" :width="100">
  1250 + </el-progress>
  1251 + </div>
  1252 + <div style="padding:30px 0">计划任务(完成度)</div>
  1253 + <div class="jindutiao">
  1254 + <div style="margin-right:10px;width:56px">直接收入</div>
  1255 + <!-- <el-progress :text-inside="true" :stroke-width="26" :format="format(xiaoduiObj.shou)" :percentage="xiaoduiObj.shouBi"></el-progress> -->
  1256 + <el-progress
  1257 + style="width: 150px;"
  1258 + :text-inside="true"
  1259 + :stroke-width="20"
  1260 + :percentage="baifenbi(duibiOne.expectedDirectBenefits)"
  1261 + status="success"
  1262 + :format="() => customFormat(duibiOne.expectedDirectBenefits)"
  1263 + ></el-progress>
  1264 + </div>
  1265 + <div class="jindutiao">
  1266 + <div style="margin-right:10px;width:56px">间接收入</div>
  1267 + <!-- <el-progress :text-inside="true" :stroke-width="26" :format="format(xiaoduiObj.shou)" :percentage="xiaoduiObj.shouBi"></el-progress> -->
  1268 + <el-progress
  1269 + style="width: 150px;"
  1270 + :text-inside="true"
  1271 + :stroke-width="20"
  1272 + :percentage="baifenbi(duibiOne.expectedIndirectBenefits)"
  1273 + status="success"
  1274 + :format="() => customFormat(duibiOne.expectedIndirectBenefits)"
  1275 + ></el-progress>
  1276 + </div>
  1277 + <div class="jindutiao">
  1278 + <div style="margin-right:10px;width:56px">人力</div>
  1279 + <!-- <el-progress :text-inside="true" :stroke-width="26" :format="format(xiaoduiObj.shou)" :percentage="xiaoduiObj.shouBi"></el-progress> -->
  1280 + <el-progress
  1281 + style="width: 150px;"
  1282 + :text-inside="true"
  1283 + :stroke-width="20"
  1284 + :percentage="baifenbi(duibiOne.internalLaborCostEstimation)"
  1285 + status="success"
  1286 + :format="() => customFormat(duibiOne.internalLaborCostEstimation)"
  1287 + ></el-progress>
  1288 + </div>
  1289 + <div class="jindutiao">
  1290 + <div style="margin-right:10px;width:56px">设备</div>
  1291 + <!-- <el-progress :text-inside="true" :stroke-width="26" :format="format(xiaoduiObj.shou)" :percentage="xiaoduiObj.shouBi"></el-progress> -->
  1292 + <el-progress
  1293 + style="width: 150px;"
  1294 + :text-inside="true"
  1295 + :stroke-width="20"
  1296 + :percentage="baifenbi(duibiOne.setCostEstimate)"
  1297 + status="success"
  1298 + :format="() => customFormat(duibiOne.setCostEstimate)"
  1299 + ></el-progress>
  1300 + </div>
  1301 + <div class="jindutiao">
  1302 + <div style="margin-right:10px;width:56px">宣传</div>
  1303 + <!-- <el-progress :text-inside="true" :stroke-width="26" :format="format(xiaoduiObj.shou)" :percentage="xiaoduiObj.shouBi"></el-progress> -->
  1304 + <el-progress
  1305 + style="width: 150px;"
  1306 + :text-inside="true"
  1307 + :stroke-width="20"
  1308 + :percentage="baifenbi(duibiOne.estimatedPromotionalExpenses)"
  1309 + status="success"
  1310 + :format="() => customFormat(duibiOne.estimatedPromotionalExpenses)"
  1311 + ></el-progress>
  1312 + </div>
  1313 + <div class="jindutiao">
  1314 + <div style="margin-right:10px;width:56px">其他</div>
  1315 + <!-- <el-progress :text-inside="true" :stroke-width="26" :format="format(xiaoduiObj.shou)" :percentage="xiaoduiObj.shouBi"></el-progress> -->
  1316 + <el-progress
  1317 + style="width: 150px;"
  1318 + :text-inside="true"
  1319 + :stroke-width="20"
  1320 + :percentage="baifenbi(duibiOne.otherNecessaryEstimates)"
  1321 + status="success"
  1322 + :format="() => customFormat(duibiOne.otherNecessaryEstimates)"
  1323 + ></el-progress>
  1324 + </div>
  1325 + </div>
  1326 + <div style="width:30%">
  1327 + <div style="display: flex;">
  1328 + <div style="margin-right: 10px;padding: 10px 0;">
  1329 + <div>调整后方案</div>
  1330 + <div style="font-size: 22px;color: #3F9B6A;font-weight: 600;margin: 10px 0;">{{xiaoduiObj.biliTwo}}</div>
  1331 + <div style="font-size: 16px;color: #3F9B6A;font-weight: 600;">投入产出比</div>
  1332 + </div>
  1333 + <el-progress type="circle" :percentage="xiaoduiObj.biliT" :show-text="false" :width="100">
  1334 + </el-progress>
  1335 + </div>
  1336 + <div style="padding:30px 0">计划任务(完成度)</div>
  1337 + <div class="jindutiao">
  1338 + <div style="margin-right:10px;width:56px">直接收入</div>
  1339 + <!-- <el-progress :text-inside="true" :stroke-width="26" :format="format(xiaoduiObj.shou)" :percentage="xiaoduiObj.shouBi"></el-progress> -->
  1340 + <el-progress
  1341 + style="width: 150px;"
  1342 + :text-inside="true"
  1343 + :stroke-width="20"
  1344 + :percentage="baifenbi(duibiTwo.expectedDirectBenefits==undefined?'':duibiTwo.expectedDirectBenefits)"
  1345 + status="success"
  1346 + :format="() => customFormat(duibiTwo.expectedDirectBenefits==undefined?'':duibiTwo.expectedDirectBenefits)"
  1347 + ></el-progress>
  1348 + </div>
  1349 + <div class="jindutiao">
  1350 + <div style="margin-right:10px;width:56px">间接收入</div>
  1351 + <!-- <el-progress :text-inside="true" :stroke-width="26" :format="format(xiaoduiObj.shou)" :percentage="xiaoduiObj.shouBi"></el-progress> -->
  1352 + <el-progress
  1353 + style="width: 150px;"
  1354 + :text-inside="true"
  1355 + :stroke-width="20"
  1356 + :percentage="baifenbi(duibiTwo.expectedIndirectBenefits==undefined?'':duibiTwo.expectedIndirectBenefits)"
  1357 + status="success"
  1358 + :format="() => customFormat(duibiTwo.expectedIndirectBenefits==undefined?'':duibiTwo.expectedIndirectBenefits)"
  1359 + ></el-progress>
  1360 + </div>
  1361 + <div class="jindutiao">
  1362 + <div style="margin-right:10px;width:56px">人力</div>
  1363 + <!-- <el-progress :text-inside="true" :stroke-width="26" :format="format(xiaoduiObj.shou)" :percentage="xiaoduiObj.shouBi"></el-progress> -->
  1364 + <el-progress
  1365 + style="width: 150px;"
  1366 + :text-inside="true"
  1367 + :stroke-width="20"
  1368 + :percentage="baifenbi(duibiTwo.internalLaborCostEstimation==undefined?'':duibiTwo.internalLaborCostEstimation)"
  1369 + status="success"
  1370 + :format="() => customFormat(duibiTwo.internalLaborCostEstimation==undefined?'':duibiTwo.internalLaborCostEstimation)"
  1371 + ></el-progress>
  1372 + </div>
  1373 + <div class="jindutiao">
  1374 + <div style="margin-right:10px;width:56px">设备</div>
  1375 + <!-- <el-progress :text-inside="true" :stroke-width="26" :format="format(xiaoduiObj.shou)" :percentage="xiaoduiObj.shouBi"></el-progress> -->
  1376 + <el-progress
  1377 + style="width: 150px;"
  1378 + :text-inside="true"
  1379 + :stroke-width="20"
  1380 + :percentage="baifenbi(duibiTwo.setCostEstimate==undefined?'':duibiTwo.setCostEstimate)"
  1381 + status="success"
  1382 + :format="() => customFormat(duibiTwo.setCostEstimate==undefined?'':duibiTwo.setCostEstimate)"
  1383 + ></el-progress>
  1384 + </div>
  1385 + <div class="jindutiao">
  1386 + <div style="margin-right:10px;width:56px">宣传</div>
  1387 + <!-- <el-progress :text-inside="true" :stroke-width="26" :format="format(xiaoduiObj.shou)" :percentage="xiaoduiObj.shouBi"></el-progress> -->
  1388 + <el-progress
  1389 + style="width: 150px;"
  1390 + :text-inside="true"
  1391 + :stroke-width="20"
  1392 + :percentage="baifenbi(duibiTwo.estimatedPromotionalExpenses==undefined?'':duibiTwo.estimatedPromotionalExpenses)"
  1393 + status="success"
  1394 + :format="() => customFormat(duibiTwo.estimatedPromotionalExpenses==undefined?'':duibiTwo.estimatedPromotionalExpenses)"
  1395 + ></el-progress>
  1396 + </div>
  1397 + <div class="jindutiao">
  1398 + <div style="margin-right:10px;width:56px">其他</div>
  1399 + <el-progress
  1400 + style="width: 150px;"
  1401 + :text-inside="true"
  1402 + :stroke-width="20"
  1403 + :percentage="baifenbi(duibiTwo.otherNecessaryEstimates==undefined?'':duibiTwo.otherNecessaryEstimates)"
  1404 + status="success"
  1405 + :format="() => customFormat(duibiTwo.otherNecessaryEstimates==undefined?'':duibiTwo.otherNecessaryEstimates)"
  1406 + ></el-progress>
  1407 + </div>
  1408 + </div>
  1409 + </div>
  1410 +</el-dialog>
  1411 +
  1412 +
  1413 + <!-- 复制 -->
  1414 + <el-dialog :visible.sync="copyShow" 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-form label-position="right" :model="copy" label-width="120px"
  1421 + style="position: relative">
  1422 + <el-form-item label="新方案名称" class="grid-content bg-purple device-from" prop="planName">
  1423 + <el-input v-model="copy.planName" placeholder="请输入" />
  1424 + </el-form-item>
  1425 + </el-form>
  1426 + </div>
  1427 +
  1428 + <div style="display: flex;justify-content: flex-end;padding: 10px 20px 10px 0">
  1429 + <el-button class="buttonHover"
  1430 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"
  1431 + @click="copyClose" >返回</el-button>
  1432 + <el-button plain @click="copysev" style="background-color: #3F9B6A;color: #fff;" >保存
  1433 + </el-button>
  1434 + </div>
  1435 + </el-dialog>
  1436 +<el-dialog :visible.sync="searchShow" custom-class='xiaoguo_css' style="padding: 0;" width="50%"
  1437 + center :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false">
  1438 + <div style="padding:15px;background-color:#F9F9F9;font-size:14px;border:1px solid #ECECEC;margin-bottom:20px;display: flex;justify-content: space-between;">
  1439 + <div>搜索关键词配置</div>
  1440 + </div>
  1441 + <div style="padding:0 36px;">
  1442 + <el-checkbox v-model="searPei.name">方案名称</el-checkbox>
  1443 + <!-- <el-checkbox v-model="searPei.lei">方案类型</el-checkbox> -->
  1444 + <el-checkbox v-model="searPei.staut">审核状态</el-checkbox>
  1445 + </div>
  1446 +
  1447 + <div style="display: flex;justify-content: flex-end;padding: 10px 20px 10px 0">
  1448 + <el-button class="buttonHover"
  1449 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"
  1450 + @click="searchQuit" >取消</el-button>
  1451 + <el-button plain @click="searchShow=false" style="background-color: #3F9B6A;color: #fff;" >保存
  1452 + </el-button>
  1453 + </div>
  1454 + </el-dialog>
  1455 +<el-dialog :visible.sync="jiucuoShow" custom-class='bian_css' style="padding: 0;" width="50%"
  1456 + :close-on-press-escape="false" center :close-on-click-modal="false" class="dialog_css_Xq" :show-close="false">
  1457 + <div style="padding:20px;">
  1458 + <div style="font-size: 14px;padding-bottom: 20px;color: #000;">活动策划调整纠错</div>
  1459 + <wangEditor v-model="jiuMsg" ref="editor"></wangEditor>
  1460 + <div style="padding-top:20px;display:flex;justify-content: flex-end;">
  1461 + <el-button style="background-color: #3F9B6A;color: #fff"
  1462 + @click="jiuCheck">确定</el-button>
  1463 + <el-button @click="jiucuoShow = false" style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;" class="buttonHover">取消</el-button>
  1464 +
  1465 + </div>
  1466 +
  1467 + </div>
  1468 +
  1469 + </el-dialog>
  1470 +
  1471 +<actbians :showBian="actbianMsg" @BianchildClose='BianchildClose'></actbians>
  1472 +</div>
  1473 +</template>
  1474 +
  1475 +<script>
  1476 + import {
  1477 + deleteById,
  1478 + queryByPage,
  1479 + xiangByPage,
  1480 + fujiaTable,
  1481 + mingTable,
  1482 + danqueryById,
  1483 + xiangedit,
  1484 + actEdit,
  1485 + actAdd,
  1486 + actPage,
  1487 + MingAdd,
  1488 + MingDel,
  1489 + cereGet,
  1490 + cereAdd,
  1491 + cereEdit,
  1492 + cereDel,
  1493 + copy,
  1494 + excelQueryByPage,
  1495 + excelAdd,
  1496 + effectEvaluation,
  1497 + lishiDeta
  1498 + } from '../../api/activityBz'
  1499 + import actbians from "./activityBian"
  1500 + import * as echarts from 'echarts'
  1501 + import Vue from 'vue'
  1502 + import html2canvas from 'html2canvas'
  1503 + import jsPDF from 'jspdf'
  1504 + import wangEditor from "@/components/editor/index";
  1505 + import {
  1506 + uploadUrl
  1507 + } from '@/utils/request'
  1508 + export default {
  1509 + components: {
  1510 + actbians,
  1511 + wangEditor
  1512 + },
  1513 + data() {
  1514 + return {
  1515 + uploadFileUrl: uploadUrl, // 请求地址
  1516 + daoData:[],
  1517 + actbianMsg: {
  1518 + acBian: '', //编辑数据
  1519 + bianshow: false, //编辑页
  1520 + },
  1521 + fileData:[],
  1522 + fenlei: [],
  1523 + secondData: {},
  1524 +
  1525 + formSear:{
  1526 + planName: '',
  1527 + state:null,
  1528 + dataOwnership: '1',
  1529 + pageNumber: 1,
  1530 + pageSize: 10,
  1531 + isDraft:0
  1532 + },
  1533 +
  1534 + planFen: '',
  1535 + eventTheme: '',
  1536 + currentPage: 1,
  1537 + total: 100,
  1538 + flag: false,
  1539 + pageSize: 10,
  1540 + ggXin: false,
  1541 + radio: '1',
  1542 + shan: '',
  1543 + activeName: 'first',
  1544 + rules: {
  1545 + coDe: [{
  1546 + required: true,
  1547 + message: '请输入活动名称',
  1548 + trigger: 'blur'
  1549 + },
  1550 +
  1551 + ],
  1552 + },
  1553 + formInline: {
  1554 + merchantName: '', // 商家名称
  1555 + storeId: '', // 编码
  1556 + contacts: '', // 联系人
  1557 + businessEntity: '', //经营主体
  1558 + page: 1, // 当前页
  1559 + pageSize: 10 // 每页记录数
  1560 + },
  1561 + tableData: [],
  1562 + id: '',
  1563 + text: '123',
  1564 + tableData1: [{
  1565 + id: 0,
  1566 + name: '类型',
  1567 + planName: '',
  1568 + text: '活动地点',
  1569 + eventTheme: ''
  1570 + }, {
  1571 + id: 0,
  1572 + name: '活动开始时间',
  1573 + planName: '',
  1574 + text: '活动结束时间',
  1575 + eventTheme: ''
  1576 + }, {
  1577 + id: 0,
  1578 + name: '活动主题',
  1579 + planName: '',
  1580 + text: '活动主办方',
  1581 + eventTheme: ''
  1582 + }, {
  1583 + id: 0,
  1584 + name: '活动参与方',
  1585 + planName: '',
  1586 + text: '活动主要目的',
  1587 + eventTheme: ''
  1588 + }, {
  1589 + id: 0,
  1590 + name: '范围设置',
  1591 + planName: '',
  1592 + text: '状态',
  1593 + eventTheme: ''
  1594 + }],
  1595 + internalLaborCostEstimation: '',
  1596 + externalLaborCostEstimation: '',
  1597 + tableData3: [{
  1598 + id: 0,
  1599 + name: '商品成本预估',
  1600 + planName: '',
  1601 + text: '设备成本预估',
  1602 + eventTheme: ''
  1603 + }, {
  1604 + id: 0,
  1605 + name: '宣传费用预估',
  1606 + planName: '',
  1607 + text: '其他必要成本预估',
  1608 + eventTheme: ''
  1609 + }, {
  1610 + id: 0,
  1611 + name: '总成本预估',
  1612 + planName: '',
  1613 + text: '备注',
  1614 + eventTheme: ''
  1615 + }],
  1616 + expectedAttractTraffic: '',
  1617 + expectedParticipation: '',
  1618 + tableData4: [{
  1619 + id: 0,
  1620 + name: '预计直接收益',
  1621 + planName: '',
  1622 + text: '预计间接收益',
  1623 + eventTheme: '-'
  1624 + }],
  1625 + createUser: '',
  1626 + createDate: '',
  1627 + tableData5: [{
  1628 + id: 0,
  1629 + name: '更新人',
  1630 + planName: '',
  1631 + text: '更新时间',
  1632 + eventTheme: '-'
  1633 + }],
  1634 + tableData2: [], //基本信息明细列表
  1635 + tableData6: [], //基本信息附件列表
  1636 + addMing: false, //执行效果添加明细
  1637 + zhixingBian: false, //判断是否编辑执行效果
  1638 + tableDa: [], //执行效果明细列表
  1639 + zhiXing: true, //判断是否是新增的执行效果
  1640 + mingFrom: {
  1641 + detailLtemName: '',
  1642 + estimatedQuantity: '',
  1643 + estimatedCost: '',
  1644 + notes: ''
  1645 + },
  1646 + planTime:[],
  1647 + zhixingList: {
  1648 + planTime: [],
  1649 + planName: '', //活动名称
  1650 + eventAddrs: '', //实际举办地点
  1651 + eventStartTime: 0, //实际开始时间
  1652 + eventEndTime: 0, //实际结束时间
  1653 + sponsor: '', //实际主办方
  1654 + participants: '', //实际参与方
  1655 + internalLaborCostEstimation: '', //内部人工成本
  1656 + externalLaborCostEstimation: '', //外部人工成本
  1657 + costEstimationGoods: '', //商品成本
  1658 + setCostEstimate: '', //设备成本
  1659 + estimatedPromotionalExpenses: '', //宣传费用预估
  1660 + otherNecessaryEstimates: '', //其他成本预估
  1661 + totalCostEstimation: '', //总成本预估
  1662 + notes: '', //备注
  1663 + expectedAttractTraffic: '', //吸引流量
  1664 + expectedParticipation: '', //参与人数
  1665 + expectedDirectBenefits: '', //直接收益
  1666 + expectedIndirectBenefits: '', //间接收益
  1667 + createDate: '', //创建时间
  1668 + feedbackContent:''
  1669 + }, //执行效果列表
  1670 + pageindex: {
  1671 + pageNumber: 1,
  1672 + pageSize: 10,
  1673 + dataOwnership: '1',
  1674 + isDraft:0
  1675 + },
  1676 + multipleSelection: [],
  1677 + options: [],
  1678 + xinADD:{
  1679 + classificationName:'',
  1680 + parentId:'',
  1681 + classificationType:'0'
  1682 + },
  1683 + value: '',
  1684 + xiaoDui: false, //效果对比
  1685 + dataList:[],
  1686 +
  1687 + fenleiDelId:null,//删除的分类ID
  1688 + xiaoduiObj:{
  1689 + biliOne:'0%',
  1690 + bilis:0,
  1691 + biliTwo:'0%',
  1692 + biliT:0
  1693 + },//效果对比数据
  1694 + fujiLei:'',
  1695 + defaultProps:{
  1696 + children: 'children',
  1697 + label: 'classificationName'
  1698 + },
  1699 +
  1700 + copy:{
  1701 + planName:''
  1702 + },
  1703 + copyShow:false,
  1704 + duibiOne:{},
  1705 + duibiTwo:{},
  1706 + searchShow:false,
  1707 + searPei:{
  1708 + name:true,
  1709 + lei:false,
  1710 + staut:false,
  1711 + },
  1712 + lishiList:null,
  1713 + labelStyle:{
  1714 + width:'197px',
  1715 + height:'42px',
  1716 + },
  1717 + labelStyleOne:{
  1718 + width:'110px',
  1719 + height:'42px',
  1720 + color:'#000',
  1721 + },
  1722 + lidata:[],
  1723 + lixiang:{},
  1724 + duibiList:{},
  1725 + tiaozhengShow:false,
  1726 + jiucuoShow:false,
  1727 + jiuMsg:'',
  1728 + editId:'',
  1729 + zhixingqingk:''
  1730 + }
  1731 + },
  1732 + created() {
  1733 + this.getAll()
  1734 +
  1735 + },
  1736 + computed: {
  1737 +
  1738 + },
  1739 + methods: {
  1740 + getStatus(state) {
  1741 + switch (state) {
  1742 + case '':
  1743 + return '待提交';
  1744 + case '1':
  1745 + return '待审核';
  1746 + case '2':
  1747 + return '业务部审核';
  1748 + case '3':
  1749 + return '品牌审核';
  1750 + case '4':
  1751 + return '审核通过';
  1752 + case '5':
  1753 + return '审核不通过'
  1754 + }
  1755 + },
  1756 + //查询全数据
  1757 + async getAll() {
  1758 + const res = await queryByPage(this.pageindex)
  1759 + this.tableData = res.data.content
  1760 + this.total = res.data.content.length
  1761 +
  1762 + },
  1763 + //删除记录按钮
  1764 + handleDelete(val) {
  1765 + if (this.multipleSelection.length == 1) {
  1766 +
  1767 + const h = this.$createElement;
  1768 + this.$msgbox({
  1769 + title: '消息',
  1770 + message: h('p', null, [
  1771 + h('span', null, '是否删除 '),
  1772 + ]),
  1773 + showCancelButton: true,
  1774 + showClose: false,
  1775 + confirmButtonText: '确定',
  1776 + cancelButtonText: '取消',
  1777 + customClass: 'oe-dialog-btn',
  1778 + beforeClose: (action, instance, done) => {
  1779 + if (action === 'confirm') {
  1780 + deleteById({
  1781 + id: this.multipleSelection[0].id
  1782 + }).then(res => {
  1783 + this.getAll()
  1784 + done();
  1785 + })
  1786 + } else {
  1787 + done();
  1788 + }
  1789 + }
  1790 + })
  1791 + } else {
  1792 + this.$message({
  1793 + message: '请选择一个文件删除',
  1794 + customClass: 'custom-message',
  1795 + offset: 100
  1796 + })
  1797 + }
  1798 + },
  1799 + actDelete(item){
  1800 + const h = this.$createElement;
  1801 + this.$msgbox({
  1802 + title: '消息',
  1803 + message: h('p', null, [
  1804 + h('span', null, '是否删除 '),
  1805 + ]),
  1806 + showCancelButton: true,
  1807 + showClose: false,
  1808 + confirmButtonText: '确定',
  1809 + cancelButtonText: '取消',
  1810 + customClass: 'oe-dialog-btn',
  1811 + beforeClose: (action, instance, done) => {
  1812 + if (action === 'confirm') {
  1813 + deleteById({
  1814 + id: item.id
  1815 + }).then(res => {
  1816 + this.getAll()
  1817 + done();
  1818 + })
  1819 + } else {
  1820 + done();
  1821 + }
  1822 + }
  1823 + })
  1824 +
  1825 + },
  1826 + //查询
  1827 + async onSubmit() {
  1828 + const res = await danqueryById(this.formSear)
  1829 + this.tableData = res.data.content
  1830 + },
  1831 + //重置按钮
  1832 + resetting() {
  1833 + this.formSear ={
  1834 + planName: '',
  1835 + state:null,
  1836 + dataOwnership: '1',
  1837 + pageNumber: 1,
  1838 + pageSize: 10,
  1839 + isDraft:0
  1840 + }
  1841 + this.getAll()
  1842 + },
  1843 + //编辑页
  1844 + BianchildClose(msg) {
  1845 + this.actbianMsg.bianshow = msg
  1846 + this.getAll()
  1847 + },
  1848 + actBian(item) {
  1849 + this.actbianMsg.acBian = item
  1850 + this.actbianMsg.bianshow = true
  1851 + },
  1852 + //详情点击
  1853 + handleEditForm(item,val,flag) {
  1854 + if(val == 1){
  1855 + this.zhixingBian = flag
  1856 + this.activeName = 'first'
  1857 + }else if(val == 2 || flag){
  1858 + this.zhixingBian = flag
  1859 + this.activeName = 'five'
  1860 + }else if(val == 3){
  1861 + this.zhixingBian = flag
  1862 + this.activeName = 'fourd'
  1863 + }
  1864 + this.editId =item.id
  1865 + this.liData = []
  1866 + this.lixiang = {}
  1867 + this.lishiList=null
  1868 + this.fileData = []
  1869 + this.zhixingList = {
  1870 + planTime:[],
  1871 + planName: '', //活动名称
  1872 + eventAddrs: '', //实际举办地点
  1873 + eventStartTime: 0, //实际开始时间
  1874 + eventEndTime: 0, //实际结束时间
  1875 + sponsor: '', //实际主办方
  1876 + participants: '', //实际参与方
  1877 + internalLaborCostEstimation: '', //内部人工成本
  1878 + externalLaborCostEstimation: '', //外部人工成本
  1879 + costEstimationGoods: '', //商品成本
  1880 + setCostEstimate: '', //设备成本
  1881 + estimatedPromotionalExpenses: '', //宣传费用预估
  1882 + otherNecessaryEstimates: '', //其他成本预估
  1883 + totalCostEstimation: '', //总成本预估
  1884 + notes: '', //备注
  1885 + expectedAttractTraffic: '', //吸引流量
  1886 + expectedParticipation: '', //参与人数
  1887 + expectedDirectBenefits: '', //直接收益
  1888 + expectedIndirectBenefits: '', //间接收益
  1889 + createDate: '', //创建时间
  1890 + feedbackContent:''
  1891 + } //执行效果列表
  1892 + actPage({
  1893 + detailsId: item.id,
  1894 + pageNumber: 1,
  1895 + pageSize: 10,
  1896 + }).then(res => {
  1897 + console.log(res.data.content)
  1898 + if (res.data.content.length == 0) {
  1899 + this.zhiXing = true
  1900 + } else {
  1901 + mingTable({
  1902 + detailsId: res.data.content[0].id,
  1903 + pageNumber: 1,
  1904 + pageSize: 10,
  1905 + }).then(res => {
  1906 + this.tableDa = res.data.content
  1907 + })
  1908 + this.zhiXing = false
  1909 + this.zhixingList = res.data.content[0]
  1910 + if((typeof this.zhixingList.eventStartTime) == 'object' || (typeof this.zhixingList.eventEndTime) == 'object' ){
  1911 + this.zhixingList.planTime = []
  1912 + }else{
  1913 + console.log(typeof this.zhixingList.eventStartTime)
  1914 + this.zhixingList.planTime = [ this.zhixingList.eventStartTime, this.zhixingList.eventEndTime]
  1915 + }
  1916 +
  1917 + }
  1918 + })
  1919 + let that = this
  1920 + this.planTime = [item.eventStartTime, item.eventEndTime]
  1921 + fujiaTable({
  1922 + detailsId: item.id,
  1923 + pageNumber: 1,
  1924 + pageSize: 10,
  1925 + }).then(res => {
  1926 + this.tableData6 = res.data.content
  1927 + })
  1928 + mingTable({
  1929 + detailsId: item.id,
  1930 + pageNumber: 1,
  1931 + pageSize: 10,
  1932 + }).then(res => {
  1933 + this.tableData2 = res.data.content
  1934 + })
  1935 +
  1936 +
  1937 + danqueryById({
  1938 + id: item.id,
  1939 + dataOwnership: '1',
  1940 + pageNumber: 1,
  1941 + pageSize: 10,
  1942 + }).then(res => {
  1943 + this.secondData = res.data.content[0]
  1944 + //基本信息
  1945 + // that.id=res.data.content[0].id
  1946 + that.text = res.data.content[0].planName
  1947 + that.tableData1[0].eventTheme = res.data.content[0].planType
  1948 + that.tableData1[0].planName = res.data.content[0].eventAddrs
  1949 + that.tableData1[1].eventTheme = res.data.content[0].eventStartTime
  1950 + that.tableData1[1].planName = res.data.content[0].eventEndTime
  1951 + that.tableData1[2].eventTheme = res.data.content[0].eventTheme
  1952 + that.tableData1[2].planName = res.data.content[0].sponsor
  1953 + that.tableData1[3].eventTheme = res.data.content[0].participants
  1954 + that.tableData1[3].planName = res.data.content[0].mainPurpose
  1955 + that.tableData1[4].planName = this.getStatus(res.data.content[0].state)
  1956 + that.tableData1[4].eventTheme = res.data.content[0].rangeSetting
  1957 + //活动成本信息
  1958 + that.internalLaborCostEstimation = res.data.content[0].internalLaborCostEstimation
  1959 + that.externalLaborCostEstimation = res.data.content[0].externalLaborCostEstimation
  1960 + that.tableData3[0].eventTheme = res.data.content[0].costEstimationGoods
  1961 + that.tableData3[0].planName = res.data.content[0].setCostEstimate
  1962 + that.tableData3[1].eventTheme = res.data.content[0].estimatedPromotionalExpenses
  1963 + that.tableData3[1].planName = res.data.content[0].otherNecessaryEstimates
  1964 + that.tableData3[2].eventTheme = res.data.content[0].totalCostEstimation
  1965 + that.tableData3[2].planName = res.data.content[0].notes
  1966 + //预估效果
  1967 + that.expectedAttractTraffic = res.data.content[0].expectedAttractTraffic
  1968 + that.expectedParticipation = res.data.content[0].expectedParticipation
  1969 + that.tableData4[0].eventTheme = res.data.content[0].expectedDirectBenefits
  1970 + that.tableData4[0].planName = res.data.content[0].expectedIndirectBenefits
  1971 + //系统信息
  1972 + that.createUser = res.data.content[0].createUser
  1973 + that.createDate = res.data.content[0].createDate
  1974 +
  1975 + that.tableData5[0].planName = '-'
  1976 + that.tableData5[0].eventTheme = res.data.content[0].updateUser
  1977 +
  1978 + }).catch(err => {
  1979 + console.log(err)
  1980 +
  1981 + })
  1982 + if (!item) {
  1983 + this.formItem = {}
  1984 + } else {
  1985 + this.formItem = item
  1986 + }
  1987 + lishiDeta({eventDetailsId:item.id}).then(res=>{
  1988 + this.liData = res.data
  1989 + })
  1990 + this.ggXin = true
  1991 + },
  1992 + formTime(data){
  1993 + this.zhixingList.planTime = data
  1994 + },
  1995 + removeEmptyValues(obj) {
  1996 + if (typeof obj !== 'object' || obj === null) {
  1997 + return obj;
  1998 + }
  1999 +
  2000 + const newObj = Array.isArray(obj) ? [] : {};
  2001 +
  2002 + for (const key in obj) {
  2003 + if (Object.prototype.hasOwnProperty.call(obj, key)) {
  2004 + const value = obj[key];
  2005 + if (value !== null && value !== undefined && value !== '' && !this.isEmptyObject(value)) {
  2006 + if (Array.isArray(newObj)) {
  2007 + newObj.push(this.removeEmptyValues(value));
  2008 + } else {
  2009 + newObj[key] = this.removeEmptyValues(value);
  2010 + }
  2011 + }
  2012 + }
  2013 + }
  2014 +
  2015 + return newObj;
  2016 + },
  2017 + isEmptyObject(obj) {
  2018 + return Object.keys(obj).length === 0 && obj.constructor === Object;
  2019 + },
  2020 + //获取当前时间
  2021 + updateCurrentTime() {
  2022 + const now = new Date();
  2023 + const year = now.getFullYear();
  2024 + const month = (now.getMonth() + 1).toString().padStart(2, '0');
  2025 + const day = now.getDate().toString().padStart(2, '0');
  2026 + const hours = now.getHours().toString().padStart(2, '0');
  2027 + const minutes = now.getMinutes().toString().padStart(2, '0');
  2028 + const seconds = now.getSeconds().toString().padStart(2, '0');
  2029 +
  2030 + return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
  2031 + },
  2032 +
  2033 + handleCurrentChange(val) {
  2034 + this.currentPage = val
  2035 + },
  2036 + handleSizeChange(val) {
  2037 + this.pageSize = val
  2038 + },
  2039 + closeFn() {
  2040 + this.ggXin = false
  2041 + },
  2042 + handleClick() {
  2043 + console.log()
  2044 + },
  2045 + refreshData() {
  2046 + // console.log('12123')
  2047 + this.tableDa = []
  2048 + this.activeName = 'first'
  2049 + this.zhixingBian = false
  2050 + },
  2051 + reshData() {
  2052 + this.tableDa = []
  2053 + this.tiaozhengShow = false
  2054 + },
  2055 +
  2056 + handleSelectionChange(val) {
  2057 + this.multipleSelection = val;
  2058 + },
  2059 + toggleSelection(rows) {
  2060 + if (rows) {
  2061 + rows.forEach(row => {
  2062 + this.$refs.mulTable.toggleRowSelection(row);
  2063 + });
  2064 + }
  2065 + },
  2066 + tableAll() {
  2067 + this.$refs.mulTable.clearSelection(); // 清除所有选项
  2068 + const allRows = this.$refs.mulTable.data; // 获取所有行数据
  2069 + allRows.forEach(row => {
  2070 + this.$refs.mulTable.toggleRowSelection(row, true); // 全选所有项
  2071 + });
  2072 + },
  2073 + TabClick(tab, event) {
  2074 + console.log(tab, event)
  2075 + if (tab.index == '0') {
  2076 + this.getAll()
  2077 + } else {
  2078 + this.tableData = []
  2079 + }
  2080 + },
  2081 + minSev() {
  2082 + if (this.zhiXing) {
  2083 + this.tableDa.push(this.mingFrom)
  2084 + } else {
  2085 + this.mingFrom.detailsId = this.zhixingList.id
  2086 + MingAdd(this.mingFrom).then(res => {
  2087 + this.mingcha(this.zhixingList.id)
  2088 + })
  2089 + }
  2090 + this.mingFrom = {
  2091 + detailLtemName: '',
  2092 + estimatedQuantity: '',
  2093 + estimatedCost: '',
  2094 + notes: ''
  2095 + }
  2096 + this.addMing = false
  2097 + },
  2098 + // 查询执行明细
  2099 + mingcha(id) {
  2100 + mingTable({
  2101 + detailsId: id,
  2102 + pageNumber: 1,
  2103 + pageSize: 10
  2104 + }).then(res => {
  2105 + this.tableDa = res.data.content
  2106 + })
  2107 + },
  2108 + MingDelete(index, item) {
  2109 + const h = this.$createElement;
  2110 + this.$msgbox({
  2111 + title: '消息',
  2112 + message: h('p', null, [
  2113 + h('span', null, '是否删除 '),
  2114 + ]),
  2115 + showCancelButton: true,
  2116 + showClose: false,
  2117 + confirmButtonText: '确定',
  2118 + cancelButtonText: '取消',
  2119 + customClass: 'oe-dialog-btn',
  2120 + beforeClose: (action, instance, done) => {
  2121 + if (action === 'confirm') {
  2122 + if (this.zhiXing) {
  2123 + this.tableDa.splice(item, 1);
  2124 + } else {
  2125 + MingDel({
  2126 + id: item.id
  2127 + }).then(res => {
  2128 + this.mingcha(this.zhixingList.id)
  2129 + })
  2130 + }
  2131 + done();
  2132 + } else {
  2133 + done();
  2134 + }
  2135 + }
  2136 + })
  2137 + },
  2138 + tianMing() {
  2139 + if (this.zhixingBian) {
  2140 + this.addMing = true
  2141 + }
  2142 + },
  2143 +
  2144 + duibi(){
  2145 + if (this.multipleSelection.length ==1 ) {
  2146 + this.xiaoDui = true
  2147 + this.duibiOne = this.multipleSelection[0]
  2148 + console.log(this.multipleSelection[0])
  2149 + let that = this
  2150 + actPage({
  2151 + detailsId:this.multipleSelection[0].id,
  2152 + pageNumber: 1,
  2153 + pageSize: 10,
  2154 + }).then(res => {
  2155 + this.duibiTwo = res.data.content[0] === undefined ? {} : res.data.content[0];
  2156 + console.log(this.duibiTwo)
  2157 + if( res.data.content[0] === undefined || res.data.content[0].totalCostEstimation =='' ){
  2158 + that.xiaoduiObj.biliTwo = '0%'
  2159 + that.xiaoduiObj.biliT = 0
  2160 + }else{
  2161 + that.xiaoduiObj.biliT = that.duibiTwo.internalLaborCostEstimation / that.duibiTwo.totalCostEstimation*100
  2162 + that.xiaoduiObj.biliTwo =`${Math.round(that.duibiTwo.internalLaborCostEstimation / that.duibiTwo.totalCostEstimation*100)}%`
  2163 + }
  2164 +
  2165 + })
  2166 + if(that.duibiOne.totalCostEstimation ==''){
  2167 + that.xiaoduiObj.biliOne = '0%'
  2168 + that.xiaoduiObj.bilis = 0
  2169 + }else{
  2170 + that.xiaoduiObj.bilis = that.duibiOne.internalLaborCostEstimation / that.duibiOne.totalCostEstimation*100
  2171 + that.xiaoduiObj.biliOne = `${Math.round(that.duibiOne.internalLaborCostEstimation / that.duibiOne.totalCostEstimation*100)}%`
  2172 + }
  2173 +
  2174 + }else{
  2175 + this.$message({
  2176 + message: '请选择一个文件对比',
  2177 + customClass: 'custom-message',
  2178 + offset: 100
  2179 + })
  2180 + }
  2181 +
  2182 + },
  2183 +
  2184 + koop(item){
  2185 + this.copy.id = item.id
  2186 + this.copyShow = true
  2187 + },
  2188 + copyClose(){
  2189 + this.copyShow = false
  2190 + this.copy.planName = ''
  2191 + },
  2192 + copysev(){
  2193 + if(this.copy.planName == ''){
  2194 + this.$message({
  2195 + message: '请填写数据',
  2196 + customClass: 'custom-message',
  2197 + offset: 100
  2198 + })
  2199 + return;
  2200 + }else{
  2201 + copy(this.copy).then(res=>{
  2202 + this.copyShow = false
  2203 + this.getAll()
  2204 + })
  2205 + }
  2206 + },
  2207 +
  2208 +
  2209 + fenleiChange(value){
  2210 + this.xinADD.parentId = value[value.length - 1]
  2211 + },
  2212 +
  2213 +
  2214 + customFormat(percentage) {
  2215 + let zong
  2216 + if(percentage==undefined ||percentage === null || percentage == '' ){
  2217 + percentage = 0
  2218 + zong = 10000
  2219 + }
  2220 + return `${percentage} / ${percentage==''?zong:parseInt(percentage) *10}`;
  2221 + },
  2222 + baifenbi(item){
  2223 +
  2224 + let zong
  2225 + if(item == undefined || item === null || item == '' ){
  2226 + item = 0
  2227 + zong = 10000
  2228 + return Math.round(item / (item*10) * 100);
  2229 + }else{
  2230 + return Math.round(item / zong * 100);
  2231 + }
  2232 +
  2233 + },
  2234 + handleUploadSuccess(response, file, fileList) {
  2235 + const fileMsg = {
  2236 + name:file.name,
  2237 + url: file.response.data.url,
  2238 + }
  2239 + // 将文件地址存储在 uploadedFiles 数组中
  2240 + this.fileData.push(fileMsg);
  2241 + },
  2242 + handleRemove(){
  2243 + this.fileData = []
  2244 + },
  2245 + daoru(response, file, fileList){
  2246 + this.daoData.push(file.raw)
  2247 + const formDate = new FormData()
  2248 + formDate.append('file', this.daoData[0])
  2249 + excelAdd(formDate).then(res => {
  2250 + this.getAll()
  2251 + })
  2252 + },
  2253 +
  2254 +
  2255 + async daochu(){
  2256 + let res = await excelQueryByPage(this.pageindex)
  2257 + if(!res){
  2258 + return
  2259 + }
  2260 + const blob = new Blob([res], { type: 'application/vnd.ms-excel' })
  2261 + const fileName = '审核流程.xls'
  2262 + if ('download' in document.createElement('a')) {
  2263 + // 非IE下载
  2264 + const elink = document.createElement('a')
  2265 + elink.download = fileName
  2266 + elink.style.display = 'none'
  2267 + elink.href = URL.createObjectURL(blob)
  2268 + document.body.appendChild(elink)
  2269 + elink.click()
  2270 + URL.revokeObjectURL(elink.href) // 释放URL 对象
  2271 + document.body.removeChild(elink)
  2272 + } else {
  2273 + // IE10+下载
  2274 + navigator.msSaveBlob(blob, fileName)
  2275 + }
  2276 + this.$message({
  2277 + message: '导出成功',
  2278 + type: 'success'
  2279 + })
  2280 +
  2281 +
  2282 + },
  2283 + // 下载
  2284 + async downloadPdf() {
  2285 + const content = this.$refs.actXiang;
  2286 +
  2287 + // 使用 html2canvas 将 div 渲染为画布
  2288 + const canvas = await html2canvas(content);
  2289 +
  2290 + // 获取画布的图像数据
  2291 + const imgData = canvas.toDataURL('image/png');
  2292 +
  2293 + // 创建一个新的 PDF 文档
  2294 + const pdf = new jsPDF('p', 'mm', 'a4');
  2295 +
  2296 + // 添加图像到 PDF,第二个参数是图像格式,第三个参数是缩放比例
  2297 + const imgWidth = 190; // 图像的宽度(mm)
  2298 + const imgHeight = (canvas.height * imgWidth) / canvas.width; // 保持图像的宽高比
  2299 +
  2300 + pdf.addImage(imgData, 'PNG', 10, 10, imgWidth, imgHeight); // 10, 10 是图像在 PDF 中的位置(mm)
  2301 +
  2302 + // 保存 PDF 文件
  2303 + pdf.save('活动方案.pdf');
  2304 + },
  2305 + // 下载
  2306 + async lishidownloadPdf() {
  2307 + const content = this.$refs.lishiRef;
  2308 +
  2309 + // 使用 html2canvas 将 div 渲染为画布
  2310 + const canvas = await html2canvas(content);
  2311 +
  2312 + // 获取画布的图像数据
  2313 + const imgData = canvas.toDataURL('image/png');
  2314 +
  2315 + // 创建一个新的 PDF 文档
  2316 + const pdf = new jsPDF('p', 'mm', 'a4');
  2317 +
  2318 + // 添加图像到 PDF,第二个参数是图像格式,第三个参数是缩放比例
  2319 + const imgWidth = 190; // 图像的宽度(mm)
  2320 + const imgHeight = (canvas.height * imgWidth) / canvas.width; // 保持图像的宽高比
  2321 +
  2322 + pdf.addImage(imgData, 'PNG', 10, 10, imgWidth, imgHeight); // 10, 10 是图像在 PDF 中的位置(mm)
  2323 +
  2324 + // 保存 PDF 文件
  2325 + pdf.save('历史方案.pdf');
  2326 + },
  2327 +setSearch(){
  2328 +this.searchShow = true
  2329 +},
  2330 +lichange(e){
  2331 +this.lishiList=e
  2332 + let msg =this.liData[e]
  2333 +this.duibiList = JSON.parse(msg.modifyContent)
  2334 +this.lixiang = JSON.parse(msg.originalData)
  2335 +
  2336 +},
  2337 +tiaozheng(){
  2338 + this.tiaozhengShow = true
  2339 +},
  2340 +jiucuo(){
  2341 + this.jiuMsg = ''
  2342 + this.jiucuoShow =true
  2343 +},
  2344 +jiuCheck(){
  2345 + xiangedit({id:this.editId,isErrorCorrection:this.jiuMsg}).then(res=>{
  2346 + this.jiucuoShow = false
  2347 + })
  2348 +},
  2349 +//执行效果保存
  2350 + async bianji() {
  2351 + if(this.fileData.length !=0){
  2352 + this.zhixingList.feedbackContent = this.fileData[0].url
  2353 + }
  2354 + if (this.zhiXing) {
  2355 + this.zhixingList.eventStartTime = this.zhixingList.planTime[0]
  2356 + this.zhixingList.eventEndTime = this.zhixingList.planTime[1]
  2357 + this.zhixingList.detailsId = this.secondData.id
  2358 + this.zhixingList.createDate = this.updateCurrentTime()
  2359 + actAdd(this.zhixingList).then(res => {
  2360 + for (let i = 0; i < this.tableDa.length; i++) {
  2361 + this.tableDa[i].detailsId = res.data.id
  2362 + MingAdd(this.tableDa[i]).then(res => {
  2363 + this.$message({
  2364 + message: '保存成功',
  2365 + type: 'success'
  2366 + })
  2367 + })
  2368 + }
  2369 + })
  2370 +
  2371 + } else {
  2372 + let that = this
  2373 + Vue.delete(that.zhixingList,'createDate')
  2374 + this.zhixingList.eventStartTime = this.zhixingList.planTime[0]
  2375 + this.zhixingList.eventEndTime = this.zhixingList.planTime[1]
  2376 + Vue.delete(that.zhixingList,'planTime')
  2377 + this.zhixingList.updateDate = ''
  2378 + await actEdit(this.zhixingList)
  2379 + this.$message({
  2380 + message: '保存成功',
  2381 + type: 'success'
  2382 + })
  2383 + }
  2384 +
  2385 + this.ggXin = false
  2386 + this.getAll()
  2387 + },
  2388 + searchQuit(){
  2389 + this.searPei={
  2390 + name:true,
  2391 + lei:false,
  2392 + staut:false,
  2393 + }
  2394 + this.searchShow=false
  2395 + },
  2396 +
  2397 + }
  2398 + }
  2399 +</script>
  2400 +
  2401 +<style scoped>
  2402 + .custom-tree-node {
  2403 + flex: 1;
  2404 + display: flex;
  2405 + align-items: center;
  2406 + justify-content: space-between;
  2407 + font-size: 14px;
  2408 + padding-right: 8px;
  2409 + }
  2410 + /deep/ .first-column-bg {
  2411 + background-color: #f4f4f5 !important;
  2412 + }
  2413 +
  2414 + .zhuti {
  2415 + padding: 0 20px 20px 20px;
  2416 + min-height: calc(100vh - 50px - 20px);
  2417 + background-color: #Fff;
  2418 +
  2419 + }
  2420 +::v-deep .el-form-item{
  2421 + margin-bottom:16px;
  2422 +}
  2423 + /deep/ .el-form-item__content {
  2424 + line-height: 0;
  2425 + }
  2426 +
  2427 + .tableBtn {
  2428 + display: inline-block;
  2429 + margin-right: 10px;
  2430 + }
  2431 +
  2432 + .formSearch {
  2433 + display: flex;
  2434 + width: 100%;
  2435 + font-size: 14px;
  2436 + justify-content: space-between;
  2437 + padding-bottom: 10px;
  2438 + align-items: center;
  2439 + }
  2440 +
  2441 + .greens {
  2442 + color: #3F9B6A;
  2443 + }
  2444 +
  2445 + /deep/ .el-table__row {
  2446 + font-size: 14px;
  2447 + color:#000000e6;
  2448 + height:42px;
  2449 + }
  2450 +
  2451 + .fenye {
  2452 + margin-top: 20px;
  2453 + display: flex;
  2454 + justify-content: space-between;
  2455 + position: relative;
  2456 + }
  2457 +
  2458 + /deep/ .el-pagination.is-background .el-pager li:not(.disabled).active {
  2459 + background-color: #3F9B6A;
  2460 + }
  2461 +
  2462 + .el-row {
  2463 + margin-bottom: 20px;
  2464 + }
  2465 +
  2466 + :last-child {
  2467 + margin-bottom: 0;
  2468 + }
  2469 +
  2470 + .el-col {
  2471 + border-radius: 4px;
  2472 + }
  2473 +
  2474 + .bg-purple-dark {
  2475 + background: #99a9bf;
  2476 + }
  2477 +
  2478 + .bg-purple {
  2479 + /* background: #d3dce6; */
  2480 + }
  2481 +
  2482 + .bg-purple-light {
  2483 + background: #e5e9f2;
  2484 + }
  2485 +
  2486 + .grid-content {
  2487 + border-radius: 4px;
  2488 + min-height: 36px;
  2489 + }
  2490 +
  2491 + .row-bg {
  2492 + padding: 10px 0;
  2493 + background-color: #f9fafc;
  2494 + }
  2495 +
  2496 + /deep/ .bg-purple[data-v-0e3fe4ec] {
  2497 + background: #fff;
  2498 + height: 50px;
  2499 + }
  2500 +
  2501 + /deep/ .el-form--label-top .el-form-item__label {
  2502 + padding: 0;
  2503 + }
  2504 +
  2505 +
  2506 + .pagination {
  2507 + text-align: right;
  2508 + line-height: 20px;
  2509 + }
  2510 +
  2511 + /deep/ .el-pagination__total {
  2512 + margin-top: 4px;
  2513 + }
  2514 +
  2515 +::v-deep .xiang_css{
  2516 + margin-top:11vh !important;
  2517 + margin-left: 13%;
  2518 + max-height:600px;
  2519 + overflow-y: auto;
  2520 +}
  2521 + /deep/ .dialog_css {
  2522 + margin-top: 11vh;
  2523 + margin-left: 25%;
  2524 + padding: 0px;
  2525 +
  2526 + .el-dialog__title {
  2527 + font-size: 14px;
  2528 + color: #000000e6;
  2529 + }
  2530 + }
  2531 +
  2532 + /deep/.el-dialog__body {
  2533 + padding: 0px;
  2534 + }
  2535 +
  2536 + /deep/ .el-dialog__header {
  2537 + background-color: #fff;
  2538 + }
  2539 +
  2540 + /deep/.el-dialog__title {
  2541 + font-size: 14px;
  2542 + color: #000000e6;
  2543 + }
  2544 +
  2545 + .el-row {
  2546 + margin-bottom: 20px;
  2547 +
  2548 + &:last-child {
  2549 + margin-bottom: 0;
  2550 + }
  2551 + }
  2552 +
  2553 + /deep/ .avatar-uploader .el-upload {
  2554 + border: 1px dashed #d9d9d9;
  2555 + border-radius: 6px;
  2556 + cursor: pointer;
  2557 + position: relative;
  2558 + overflow: hidden;
  2559 + }
  2560 +
  2561 + .avatar-uploader .el-upload:hover {
  2562 + border-color: #409EFF;
  2563 + }
  2564 +
  2565 + .avatar-uploader-icon {
  2566 + font-size: 28px;
  2567 + color: #8c939d;
  2568 + width: 108px;
  2569 + height: 108px;
  2570 + line-height: 108px;
  2571 + /*text-align: center;*/
  2572 + }
  2573 +
  2574 + .avatar {
  2575 + width: 108px;
  2576 + height: 108px;
  2577 + display: block;
  2578 + }
  2579 +
  2580 + ::v-deep .el-tabs__item.is-active {
  2581 + color: #3F9B6A;
  2582 + opacity: 1;
  2583 + }
  2584 +
  2585 + /deep/ .el-tabs__nav-wrap::after {
  2586 + background-color: #fff;
  2587 + }
  2588 +
  2589 + ::v-deep .el-tabs__item:hover {
  2590 + color: #3F9B6A;
  2591 + cursor: pointer;
  2592 + opacity: 1;
  2593 + }
  2594 +
  2595 + /deep/ .el-tabs__active-bar {
  2596 + background-color: #389865;
  2597 + }
  2598 +
  2599 + /deep/ .el-table_2_column_13 {
  2600 + font-weight: 100;
  2601 + }
  2602 +::v-deep .el-input__inner{
  2603 + height:32px;
  2604 + line-height:32px;
  2605 +}
  2606 + ::v-deep .el-input__inner:focus {
  2607 + border: #3F9B6A 1px solid;
  2608 + }
  2609 +
  2610 + ::v-deep .el-input__inner:hover {
  2611 + border: #3F9B6A 1px solid;
  2612 + }
  2613 +
  2614 + ::v-deep .el-select .el-input.is-focus .el-input__inner {
  2615 + border-color: #3F9B6A
  2616 + }
  2617 +
  2618 + ::v-deep .el-form-item__label {
  2619 + font-weight: 100;
  2620 + font-size: 14px;
  2621 + color:#000000e6;
  2622 + }
  2623 +
  2624 + /* ::v-deep .el-steps .el-step__head.is-wait {
  2625 + background-color: red; /* 修改为你想要的颜色 */
  2626 +
  2627 + /* 修改未进行步骤的描述文字颜色 */
  2628 + ::v-deep .el-steps .el-step__description.is-wait {
  2629 + color: #999;
  2630 + /* 修改为你想要的颜色 */
  2631 + }
  2632 +
  2633 + /* 修改未进行步骤的图标颜色 */
  2634 + ::v-deep .el-steps .el-step__icon.is-text.is-wait {
  2635 + color: #999;
  2636 + /* 修改为你想要的颜色 */
  2637 + }
  2638 +
  2639 + /* 修改未进行步骤的边框色 */
  2640 + ::v-deep .el-steps .el-step__line.is-wait {
  2641 + border-color: #eee;
  2642 + /* 修改为你想要的颜色 */
  2643 + }
  2644 +
  2645 + ::v-deep .el-steps .is-process .el-step__line {
  2646 + background-color: #3F9B6A;
  2647 + /* 修改线的颜色 */
  2648 + }
  2649 +
  2650 + ::v-deep .el-steps .is-process .el-step__title {
  2651 + color: #fe7b6a;
  2652 + /* 修改进行中步骤的标题颜色 */
  2653 + }
  2654 +
  2655 + ::v-deep .el-steps .is-process .el-step__icon {
  2656 + color: #fff;
  2657 + /* 修改进行中步骤的图标颜色 */
  2658 + background: #3F9B6A;
  2659 + /* 修改进行中步骤图标的边框颜色 */
  2660 + border: 0px;
  2661 + }
  2662 +
  2663 + ::v-deep .el-step__icon-inner {
  2664 + line-height: 0
  2665 + }
  2666 +
  2667 + /* 线条长度 */
  2668 + ::v-deep .el-step.is-vertical .el-step__line {
  2669 + top: 30px;
  2670 + height: 60px;
  2671 + }
  2672 +
  2673 + .fenlan {
  2674 + display: flex;
  2675 + }
  2676 +
  2677 + .souLei {
  2678 + border: 1px solid #d7d7d7;
  2679 + background-color: #fff;
  2680 + width:300px;
  2681 + margin-right:20px;
  2682 +
  2683 + }
  2684 +::v-deep .el-menu{
  2685 + border-right:0px;
  2686 +}
  2687 +::v-deep .el-menu-item{
  2688 + height:36px;
  2689 + line-height: 33px;
  2690 +}
  2691 +
  2692 +::v-deep .el-submenu__title{
  2693 + height:36px;
  2694 + line-height: 33px;
  2695 + font-weight:600;
  2696 + border-radius:4px;
  2697 + margin:4px 0;
  2698 +}
  2699 +::v-deep .el-menu-item-group__title{
  2700 + padding:0px
  2701 +}
  2702 + ::v-deep .fudan{
  2703 + font-weight:600;
  2704 + border-radius:4px;
  2705 + padding-left:29px !important;
  2706 + margin:4px 0;
  2707 + }
  2708 + ::v-deep .chinddan{
  2709 + margin:5px 0;
  2710 + }
  2711 +</style>
  2712 +<style lang="scss" scoped>
  2713 + ::v-deep .el-table tr:hover{
  2714 + background-color: #F0F7F3 !important;
  2715 + }
  2716 + ::v-deep .souTabs {
  2717 + padding:0 15px 0 12px;
  2718 + .el-submenu{
  2719 + padding:0px;
  2720 + }
  2721 + .el-menu-item:focus, .el-menu-item:hover{
  2722 + background-color: #3F9B6A !important;
  2723 + }
  2724 + .el-menu-item:hover{
  2725 + background-color:#3f9b6a1a !important;
  2726 + color:#000 !important;
  2727 + }
  2728 + .el-tabs--left .el-tabs__header.is-left {
  2729 + width: 100%;
  2730 + margin-right: 0px;
  2731 + }
  2732 +
  2733 + .el-tabs--left .el-tabs__item.is-left {
  2734 + text-align: center;
  2735 + }
  2736 +
  2737 + .el-tabs__item.is-active {
  2738 + background-color: #DEEBE2;
  2739 + }
  2740 + }
  2741 +
  2742 + ::v-deep .tableList {
  2743 + width: 100%;
  2744 + }
  2745 + ::v-deep .fenxi_css{
  2746 + margin-top: 9vh !important;
  2747 + margin-left: 10%;
  2748 + .el-dialog__header{
  2749 + padding:0;
  2750 + }
  2751 + .el-tabs--border-card {
  2752 + border: none;
  2753 + -webkit-box-shadow:none;
  2754 + box-shadow:none;
  2755 + .el-tabs__content{
  2756 + border: 1px solid #E4E7ED;
  2757 + padding:0;
  2758 + }
  2759 + .el-tabs__header{
  2760 + background-color: #fff;
  2761 + border-bottom:none;
  2762 + }
  2763 + .el-tabs__content{
  2764 + border: none;
  2765 + }
  2766 + .el-tabs__header .el-tabs__item{
  2767 + border: none;
  2768 + margin-right: 10px;
  2769 + background-color: #F2F2F2;
  2770 + font-size:12px;
  2771 + border-top-left-radius: 8px;
  2772 + border-top-right-radius: 8px;
  2773 + padding:0 15px;
  2774 + }
  2775 + .el-tabs__header .el-tabs__item.is-active{
  2776 + color:#fff;
  2777 + background-color: #3F9B6A;
  2778 + }
  2779 + .el-tabs__header .el-tabs__item:not(.is-disabled):hover{
  2780 + color:#3F9B6A;
  2781 + }
  2782 + }
  2783 +
  2784 + }
  2785 + ::v-deep .xiaoguo_css{
  2786 + margin-top: 30vh !important;
  2787 + margin-left: 25%;
  2788 + .el-dialog__header{
  2789 + padding:0;
  2790 + }
  2791 + .el-tabs--border-card {
  2792 + border: none;
  2793 + -webkit-box-shadow:none;
  2794 + box-shadow:none;
  2795 + .el-tabs__content{
  2796 + border: 1px solid #E4E7ED;
  2797 + padding:0;
  2798 + }
  2799 + .el-tabs__header{
  2800 + background-color: #fff;
  2801 + border-bottom:none;
  2802 + }
  2803 + .el-tabs__content{
  2804 + border: none;
  2805 + }
  2806 + .el-tabs__header .el-tabs__item{
  2807 + border: none;
  2808 + margin-right: 10px;
  2809 + background-color: #F2F2F2;
  2810 + font-size:12px;
  2811 + border-top-left-radius: 8px;
  2812 + border-top-right-radius: 8px;
  2813 + padding:0 15px;
  2814 + }
  2815 + .el-tabs__header .el-tabs__item.is-active{
  2816 + color:#fff;
  2817 + background-color: #3F9B6A;
  2818 + }
  2819 + .el-tabs__header .el-tabs__item:not(.is-disabled):hover{
  2820 + color:#3F9B6A;
  2821 + }
  2822 + }
  2823 + }
  2824 + ::v-deep .demo-input-suffix {
  2825 + display: flex;
  2826 + margin-right: 20px;
  2827 + width: 83%;
  2828 +
  2829 + .el-input__inner{
  2830 + height:32px;
  2831 + }
  2832 + }
  2833 + ::v-deep .el-input__icon{
  2834 + line-height:25px;
  2835 + }
  2836 + ::v-deep .el-input--mini .el-input__icon{
  2837 + line-height:33px;
  2838 + }
  2839 +
  2840 + ::v-deep .buttonHover:hover{
  2841 + color:#3f9b6a !important;
  2842 + border-color: #c5e1d2 !important;
  2843 + background-color: #ecf5f0 !important;
  2844 + outline: none;
  2845 + }
  2846 + ::v-deep .DelBtnHover:hover{
  2847 + color:#fff !important;
  2848 + border-color: rgb(226, 78, 90) !important;
  2849 + background-color: rgb(226, 78, 90) !important;
  2850 + outline: none;
  2851 + }
  2852 +::v-deep .el-menu-item.is-active {
  2853 + background-color: #3F9B6A !important;
  2854 +}
  2855 +::v-deep .jindutiao{
  2856 + display:flex;
  2857 + align-items:center;
  2858 + margin-bottom:15px;
  2859 + .el-progress-bar__outer{
  2860 + border-radius:0px;
  2861 + }
  2862 + .el-progress-bar__inner{
  2863 + border-radius:0px;
  2864 + }
  2865 +}
  2866 +
  2867 +</style>
... ...
admin-web-master/src/views/activity/activitySp.vue
... ... @@ -57,14 +57,15 @@
57 57 {{scope.row.state == ''?'待提交':scope.row.state == '1'?'待审批':scope.row.state == '2'?'部门领导审批':scope.row.state == '3'?'公司领导审批':scope.row.state == '4'?'其他审批':scope.row.state == '5'?'审核通过':'已驳回'}}
58 58 </template>
59 59 </el-table-column>
60   - <el-table-column label="修改时间" prop="createDate" min-width="250" >
  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   - </el-table-column>
  64 + </el-table-column> -->
65 65 <el-table-column label="操作" min-width="200">
66 66 <template slot-scope="scope">
67   - <div @click="actSp(scope.row)" class="tableBtn greens" v-if="scope.row.state != ''">OA流程审批</div>
  67 + <div class="tableBtn greens" @click="handleEditForm(scope.row,1)">查看</div>
  68 + <div @click="actSp(scope.row)" class="tableBtn greens" v-if="scope.row.state == '1'">审核</div>
68 69 </template>
69 70 </el-table-column>
70 71 </el-table>
... ... @@ -505,6 +506,380 @@
505 506 </div>
506 507 </el-dialog>
507 508 </div>
  509 + <el-dialog title="活动方案详情" :visible.sync="ggXin" custom-class='xiang_css' style="padding: 0;" width="80%" center
  510 + :close-on-click-modal="false" :close-on-press-escape="false" @close="refreshData">
  511 + <div ref="actXiang">
  512 + <div style="width: 100%;">
  513 + <div style="display: flex;padding:0px 20px 20px 20px; ">
  514 + <div style="width: 150px;height: 80px;" v-if="secondData.coverPoster">
  515 + <img :src="secondData.coverPoster" alt="" style="width: 100%;height: 80px;" />
  516 + </div>
  517 + <div
  518 + style="display: flex;flex-direction: column;justify-content: space-around;padding: 0 10px;font-size: 12px;">
  519 + <span style="margin-bottom: 10px;">{{text}}</span>
  520 + <span>活动时间:{{tableData1[1].eventTheme}}至{{tableData1[1].planName}}</span>
  521 + <span>活动地点:{{tableData1[0].planName}}</span>
  522 + </div>
  523 + </div>
  524 + </div>
  525 + <div style="width: 100%;background-color: #fff;">
  526 + <el-tabs v-model="activeName" @tab-click="handleClick" style="padding-left:20px;">
  527 + <el-tab-pane label="方案概况" name="first"></el-tab-pane>
  528 + <el-tab-pane label="执行效果" name="second"></el-tab-pane>
  529 + </el-tabs>
  530 + </div>
  531 + <div v-if="activeName=='first'" style="display: flex;">
  532 + <div style="width: 100%;">
  533 + <div style="width: 100%;">
  534 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">基本信息</div>
  535 + <div style="padding: 10px 20px;">
  536 + <el-table :data="tableData1"
  537 + :header-cell-style="{fontSize: '14px', backgroundColor: '#fff',color:'#000',fontWeight: 'normal'}"
  538 + style="width: 100%;margin: auto;">
  539 + <el-table-column class-name="first-column-bg" label="方案编号" prop="name" min-width="15%">
  540 + </el-table-column>
  541 + <el-table-column :label="id" prop="eventTheme" min-width="35%">
  542 +
  543 + </el-table-column>
  544 + <el-table-column class-name="first-column-bg" label="方案名称" prop="text" min-width="15%">
  545 +
  546 + </el-table-column>
  547 + <el-table-column :label="text" prop="planName" min-width="35%">
  548 +
  549 + </el-table-column>
  550 + </el-table>
  551 +
  552 +
  553 + </div>
  554 + </div>
  555 + <div style="width: 100%;">
  556 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">活动明细信息</div>
  557 + <div style="padding: 10px 20px;">
  558 + <el-table :data="tableData2"
  559 + :header-cell-style="{fontSize: '14px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
  560 + style="width: 100%;margin: auto;">
  561 + <el-table-column label="序号" min-width="5%" align='center'>
  562 + <template slot-scope="scope">
  563 + <span style="">{{ scope.$index +1}}</span>
  564 + </template>
  565 + </el-table-column>
  566 + <el-table-column label="明细项名称" prop="detailLtemName" min-width="28%">
  567 + </el-table-column>
  568 + <el-table-column label="预估数量" prop="estimatedQuantity" min-width="20%">
  569 +
  570 + </el-table-column>
  571 + <el-table-column label="预估费用" prop="estimatedCost" min-width="20%">
  572 +
  573 + </el-table-column>
  574 + <el-table-column label="备注" prop="notes" min-width="20%">
  575 + </el-table-column>
  576 + </el-table>
  577 + </div>
  578 + </div>
  579 + <div style="width: 100%;">
  580 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">活动成本信息</div>
  581 + <div style="padding:10px 20px;">
  582 + <el-table :data="tableData3"
  583 + :header-cell-style="{fontSize: '14px', backgroundColor: '#fff',color:'#000',fontWeight: 'normal'}"
  584 + style="width: 100%;margin: auto;">
  585 + <el-table-column class-name="first-column-bg" label="内部人力成本预估" prop="name" min-width="15%">
  586 + </el-table-column>
  587 + <el-table-column :label="internalLaborCostEstimation" prop="eventTheme" min-width="35%">
  588 +
  589 + </el-table-column>
  590 + <el-table-column class-name="first-column-bg" label="外部人力成本预估" prop="text" min-width="15%">
  591 +
  592 + </el-table-column>
  593 + <el-table-column :label="externalLaborCostEstimation" prop="planName" min-width="35%">
  594 +
  595 + </el-table-column>
  596 + </el-table>
  597 + </div>
  598 + </div>
  599 + <div style="width: 100%;">
  600 + <div style="font-size: 14px;padding:10px 20px 0px 20px;">预估效果</div>
  601 + <div style="padding:10px 20px;">
  602 + <el-table :data="tableData4"
  603 + :header-cell-style="{fontSize: '14px', backgroundColor: '#fff',color:'#000',fontWeight: 'normal'}"
  604 + style="width: 100%;margin: auto;">
  605 + <el-table-column class-name="first-column-bg" label="预计吸引流量" prop="name" min-width="15%">
  606 + </el-table-column>
  607 + <el-table-column :label="expectedAttractTraffic" prop="eventTheme" min-width="35%">
  608 +
  609 + </el-table-column>
  610 + <el-table-column class-name="first-column-bg" label="预计参与人数" prop="text" min-width="15%">
  611 +
  612 + </el-table-column>
  613 + <el-table-column :label="expectedParticipation" prop="planName" min-width="35%">
  614 +
  615 + </el-table-column>
  616 + </el-table>
  617 + </el-table-column>
  618 + </div>
  619 + </div>
  620 + <div style="width: 100%;">
  621 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">相关附件信息</div>
  622 + <div style="padding:10px 20px;">
  623 + <el-table :data="tableData6"
  624 + :header-cell-style="{fontSize: '14px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
  625 + style="width: 100%;margin: auto;">
  626 + <el-table-column label="序号" min-width="5%" align='center'>
  627 + <template slot-scope="scope">
  628 + <span style="">{{ scope.$index + 1 }}</span>
  629 + </template>
  630 + </el-table-column>
  631 + <el-table-column label="附件名称" prop="attachmentName" min-width="75%">
  632 + </el-table-column>
  633 + <el-table-column label="操作" min-width="20%">
  634 + <template slot-scope="scope">
  635 + <!-- <div class="tableBtn greens" @click="Down(scope.row)">下载</div> -->
  636 + <a class="tableBtn greens" :href="scope.row.attachmentUrl" target="_blank" download>下载</a>
  637 + </template>
  638 + </el-table-column>
  639 +
  640 + </el-table>
  641 + </div>
  642 + </div>
  643 + <div style="width: 100%;">
  644 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">系统信息</div>
  645 + <div style="padding:10px 20px;">
  646 + <el-table :data="tableData5"
  647 + :header-cell-style="{fontSize: '14px', backgroundColor: '#fff',color:'#000',fontWeight: 'normal'}"
  648 + style="width: 100%;margin: auto;">
  649 + <el-table-column class-name="first-column-bg" label="创建人" prop="name" min-width="15%">
  650 + </el-table-column>
  651 + <el-table-column :label="createUser" prop="eventTheme" min-width="35%">
  652 +
  653 + </el-table-column>
  654 + <el-table-column class-name="first-column-bg" label="创建时间" prop="text" min-width="15%">
  655 +
  656 + </el-table-column>
  657 + <el-table-column :label="createDate" prop="planName" min-width="35%">
  658 +
  659 + </el-table-column>
  660 + </el-table>
  661 + </div>
  662 + </div>
  663 + </div>
  664 + </div>
  665 + <div v-if="activeName=='second'">
  666 + <div style="padding: 20px">
  667 + <div style="border: solid 1px #E5E5E5;border-radius: 5px">
  668 + <div style="border-bottom: 1px solid #E5E5E5;padding: 1px">
  669 + <div style="padding: 10px 20px;background-color: #FAFAFA;font-size: 14px;">
  670 + 基本信息
  671 + </div>
  672 + </div>
  673 + <div style="padding: 20px 40px 20px 20px">
  674 + <el-form label-position="top" ref="ruleFormInfo" :model="zhixingList" label-width="120px"
  675 + style="position: relative">
  676 + <el-row :gutter="20">
  677 + <el-col :span="8">
  678 + <el-form-item label="活动名称" class="grid-content bg-purple device-from" prop="name">
  679 + <el-input v-model="zhixingList.planName" placeholder="请输入" :disabled="!zhixingBian" />
  680 + </el-form-item>
  681 + </el-col>
  682 + <el-col :span="8">
  683 + <el-form-item label="实际举办地点" class="grid-content bg-purple" prop="name">
  684 + <el-input v-model="zhixingList.eventAddrs" placeholder="请输入" :disabled="!zhixingBian" />
  685 + </el-form-item>
  686 + </el-col>
  687 +
  688 + <el-col :span="8">
  689 + <el-form-item label="实际举办时间" class="grid-content bg-purple" prop="event_start_time"
  690 + style="position: relative">
  691 + <el-date-picker style="width: 100%;" v-model="zhixingList.planTime"
  692 + @input="formTime"
  693 + value-format="yyyy-MM-dd HH:mm:ss" :disabled="!zhixingBian" type="datetimerange"
  694 + range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" align="right"
  695 + >
  696 + </el-date-picker>
  697 + </el-form-item>
  698 + </el-col>
  699 + </el-row>
  700 +
  701 + <el-row :gutter="20">
  702 + <el-col :span="8">
  703 + <el-form-item label="活动主办方" class="grid-content bg-purple" prop="name">
  704 + <el-input v-model="zhixingList.sponsor" placeholder="请输入" :disabled="!zhixingBian" />
  705 + </el-form-item>
  706 + </el-col>
  707 + <el-col :span="8">
  708 + <el-form-item label="活动实际参与方" class="grid-content bg-purple" prop="name">
  709 + <el-input v-model="zhixingList.participants" placeholder="请输入" :disabled="!zhixingBian" />
  710 + </el-form-item>
  711 + </el-col>
  712 + </el-row>
  713 + </el-form>
  714 + </div>
  715 + </div>
  716 + </div>
  717 + <div style="padding: 0px 20px 20px 20px">
  718 + <div style="border: solid 1px #E5E5E5;border-radius: 5px">
  719 + <div style="border-bottom: 1px solid #E5E5E5;padding: 1px;display: flex">
  720 + <div style="padding: 10px 20px;background-color: #FAFAFA;font-size: 14px;">
  721 + 活动明细信息
  722 + </div>
  723 +
  724 + </div>
  725 + <!-- 表格-->
  726 + <div style="padding: 20px 20px 20px 20px">
  727 + <el-table :data="tableDa"
  728 + :header-cell-style="{fontSize: '14px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
  729 + style="width: 100%">
  730 + <el-table-column label="序号" width="auto" min-width="5%" prop="date" align="center">
  731 + <template slot-scope="scope">
  732 + {{scope.$index +1}}
  733 + </template>
  734 + </el-table-column>
  735 + <el-table-column label="明细项名称" prop="detailLtemName" width="auto" min-width="22%">
  736 +
  737 + </el-table-column>
  738 + <el-table-column label="预估数量" prop="estimatedQuantity" width="auto" min-width="15%">
  739 +
  740 + </el-table-column>
  741 + <el-table-column label="预估费用" prop="estimatedCost" width="auto" min-width="15%">
  742 + </el-table-column>
  743 + <el-table-column prop="notes" label="备注" width="auto" min-width="15%">
  744 + </el-table-column>
  745 + <el-table-column label="操作" width="auto" min-width="18%" v-if="zhixingBian">
  746 + <template slot-scope="scope">
  747 + <!-- <div class="tableBtn greens">详情</div> -->
  748 + <div class="tableBtn greens" @click="MingDelete(scope.$index,scope.row)">删除</div>
  749 + </template>
  750 + </el-table-column>
  751 + </el-table>
  752 +
  753 + </div>
  754 + </div>
  755 + </div>
  756 + <div style="padding: 20px">
  757 + <div style="border: solid 1px #E5E5E5;border-radius: 5px;padding-bottom: 20px;">
  758 + <div style="border-bottom: 1px solid #E5E5E5;padding: 1px">
  759 + <div style="padding: 10px 20px;background-color: #FAFAFA;font-size: 14px;">
  760 + 实际花费成本
  761 + </div>
  762 + </div>
  763 + <div style="padding: 20px 40px 0px 20px">
  764 + <el-form label-position="top" ref="ruleFormInfo" :model="zhixingList" label-width="120px"
  765 + style="position: relative">
  766 + <el-row :gutter="20">
  767 + <el-col :span="8">
  768 + <el-form-item label="内部人力成本预估" class="grid-content bg-purple device-from" prop="name">
  769 + <el-input v-model="zhixingList.internalLaborCostEstimation" placeholder="请输入"
  770 + :disabled="!zhixingBian" />
  771 + </el-form-item>
  772 + </el-col>
  773 + <el-col :span="8">
  774 + <el-form-item label="外部人力成本预估" class="grid-content bg-purple" prop="name">
  775 + <el-input v-model="zhixingList.externalLaborCostEstimation" placeholder="请输入"
  776 + :disabled="!zhixingBian" />
  777 + </el-form-item>
  778 + </el-col>
  779 +
  780 + <el-col :span="8">
  781 + <el-form-item label="商品成本预估" class="grid-content bg-purple" prop="name">
  782 + <el-input v-model="zhixingList.costEstimationGoods" placeholder="请输入" :disabled="!zhixingBian" />
  783 + </el-form-item>
  784 + </el-col>
  785 + </el-row>
  786 +
  787 + <el-row :gutter="20">
  788 + <el-col :span="8">
  789 + <el-form-item label="设备成本" class="grid-content bg-purple" prop="name">
  790 + <el-input v-model="zhixingList.setCostEstimate" placeholder="请输入" :disabled="!zhixingBian" />
  791 + </el-form-item>
  792 + </el-col>
  793 + <el-col :span="8">
  794 + <el-form-item label="宣传费用" class="grid-content bg-purple" prop="name">
  795 + <el-input v-model="zhixingList.estimatedPromotionalExpenses" placeholder="请输入"
  796 + :disabled="!zhixingBian" />
  797 + </el-form-item>
  798 + </el-col>
  799 + <el-col :span="8">
  800 + <el-form-item label="其他成本" class="grid-content bg-purple" prop="name">
  801 + <el-input v-model="zhixingList.otherNecessaryEstimates" placeholder="请输入"
  802 + :disabled="!zhixingBian" />
  803 + </el-form-item>
  804 + </el-col>
  805 + </el-row>
  806 +
  807 + <el-row :gutter="20">
  808 + <el-col :span="8">
  809 + <el-form-item label="总成本" prop="name" class="grid-content bg-purple">
  810 + <el-input v-model="zhixingList.totalCostEstimation" placeholder="请输入" :disabled="!zhixingBian" />
  811 + </el-form-item>
  812 + </el-col>
  813 + <el-col :span="16">
  814 + <el-form-item label="备注" prop="name" class="grid-content bg-purple">
  815 + <el-input v-model="zhixingList.notes" placeholder="请输入" :disabled="!zhixingBian" />
  816 + </el-form-item>
  817 + </el-col>
  818 + </el-row>
  819 + </el-form>
  820 + </div>
  821 + </div>
  822 + </div>
  823 +
  824 + <div style="padding: 20px">
  825 + <div style="border: solid 1px #E5E5E5;border-radius: 5px;padding-bottom: 20px;">
  826 + <div style="border-bottom: 1px solid #E5E5E5;padding: 1px">
  827 + <div style="padding: 10px 20px;background-color: #FAFAFA;font-size: 14px;">
  828 + 活动执行效果
  829 + </div>
  830 + </div>
  831 + <div style="padding: 20px 40px 0px 20px">
  832 + <el-form label-position="top" ref="ruleFormInfo" :model="zhixingList" label-width="120px"
  833 + style="position: relative">
  834 + <el-row :gutter="20">
  835 + <el-col :span="8">
  836 + <el-form-item label="吸引流量" class="grid-content bg-purple device-from" prop="name">
  837 + <el-input v-model="zhixingList.expectedAttractTraffic" placeholder="请输入" :disabled="!zhixingBian" />
  838 + </el-form-item>
  839 + </el-col>
  840 + <el-col :span="8">
  841 + <el-form-item label="参与人数" class="grid-content bg-purple" prop="name">
  842 + <el-input v-model="zhixingList.expectedParticipation" placeholder="请输入" :disabled="!zhixingBian" />
  843 + </el-form-item>
  844 + </el-col>
  845 +
  846 + <el-col :span="8">
  847 + <el-form-item label="直接收益" class="grid-content bg-purple" prop="name">
  848 + <el-input v-model="zhixingList.expectedDirectBenefits" placeholder="请输入" :disabled="!zhixingBian" />
  849 + </el-form-item>
  850 + </el-col>
  851 + </el-row>
  852 + <el-row :gutter="20">
  853 + <el-col :span="8">
  854 + <el-form-item label="间接收益" class="grid-content bg-purple" prop="name">
  855 + <el-input v-model="zhixingList.expectedIndirectBenefits" placeholder="请输入"
  856 + :disabled="!zhixingBian" />
  857 + </el-form-item>
  858 + </el-col>
  859 +
  860 + </el-row>
  861 + <el-row :gutter="20">
  862 + <el-col :span="24">
  863 + <el-form-item label="反馈内容" class="grid-content bg-purple" prop="name">
  864 + <el-upload class="upload-demo" ref="upload" :on-remove="handleRemove"
  865 + :action="uploadFileUrl" :on-success="handleUploadSuccess" :file-list="fileData"
  866 + :show-file-list="true" v-if="zhixingBian">
  867 + <el-button style="background-color: #fff;color: #3F9B6A;border: 1px solid #dcdfe6;" class="buttonHover" v-if="fileData.length==0">+点击上传</el-button>
  868 + </el-upload>
  869 + <div v-else>{{zhixingList.feedbackContent}}</div>
  870 + </el-form-item>
  871 + </el-col>
  872 +
  873 + </el-row>
  874 + </el-form>
  875 + </div>
  876 + </div>
  877 + </div>
  878 +
  879 + </div>
  880 +
  881 + </div>
  882 + </el-dialog>
508 883 </div>
509 884 </div>
510 885 </template>
... ... @@ -591,9 +966,11 @@
591 966 text: '活动主要目的',
592 967 eventTheme: ''
593 968 }, {
594   - id: '5',
595   - name: '状态',
596   - eventTheme: '待审核'
  969 + id: 0,
  970 + name: '范围设置',
  971 + planName: '',
  972 + text: '状态',
  973 + eventTheme: ''
597 974 }],
598 975 internalLaborCostEstimation: '',
599 976 externalLaborCostEstimation: '',
... ... @@ -664,6 +1041,8 @@
664 1041 pageNumber: 1,
665 1042 pageSize: 10,
666 1043 dataOwnership: '1',
  1044 + isDraft:0,
  1045 + state:'待提交'
667 1046 },
668 1047 multipleSelection: [],
669 1048 options: [{
... ... @@ -676,7 +1055,9 @@
676 1055 defaultProps:{
677 1056 children: 'children',
678 1057 label: 'classificationName'
679   - }
  1058 + },
  1059 + zhixingBian: false, //判断是否编辑执行效果
  1060 + tableDa: [], //执行效果明细列表
680 1061 }
681 1062 },
682 1063 created() {
... ... @@ -752,6 +1133,8 @@
752 1133 dataOwnership: '1',
753 1134 pageNumber: 1,
754 1135 pageSize: 10,
  1136 + isDraft:0,
  1137 + state:'待提交'
755 1138 })
756 1139 this.tableData = res.data.content
757 1140 } else if (this.planName == '' && this.eventTheme != '') {
... ... @@ -760,6 +1143,8 @@
760 1143 dataOwnership: '1',
761 1144 pageNumber: 1,
762 1145 pageSize: 10,
  1146 + isDraft:0,
  1147 + state:'待提交'
763 1148 })
764 1149 this.tableData = res.data.content
765 1150 } else {
... ... @@ -769,6 +1154,8 @@
769 1154 dataOwnership: '1',
770 1155 pageNumber: 1,
771 1156 pageSize: 10,
  1157 + isDraft:0,
  1158 + state:'待提交'
772 1159 })
773 1160 this.tableData = res.data.content
774 1161 }
... ... @@ -876,6 +1263,7 @@
876 1263 }
877 1264 this.Liunie = false
878 1265 this.MsgSp =false
  1266 + this.actSpye = false
879 1267 },
880 1268 TabClick(tab, event){
881 1269 console.log(tab, event)
... ... @@ -895,7 +1283,139 @@
895 1283 }
896 1284 this.getAll()
897 1285  
898   - }
  1286 + },
  1287 + //详情点击
  1288 + handleEditForm(item,val,flag) {
  1289 + if(val ==2){
  1290 + this.activeName = 'five'
  1291 + }
  1292 + this.fileData = []
  1293 + this.zhixingList = {
  1294 + planTime:[],
  1295 + planName: '', //活动名称
  1296 + eventAddrs: '', //实际举办地点
  1297 + eventStartTime: 0, //实际开始时间
  1298 + eventEndTime: 0, //实际结束时间
  1299 + sponsor: '', //实际主办方
  1300 + participants: '', //实际参与方
  1301 + internalLaborCostEstimation: '', //内部人工成本
  1302 + externalLaborCostEstimation: '', //外部人工成本
  1303 + costEstimationGoods: '', //商品成本
  1304 + setCostEstimate: '', //设备成本
  1305 + estimatedPromotionalExpenses: '', //宣传费用预估
  1306 + otherNecessaryEstimates: '', //其他成本预估
  1307 + totalCostEstimation: '', //总成本预估
  1308 + notes: '', //备注
  1309 + expectedAttractTraffic: '', //吸引流量
  1310 + expectedParticipation: '', //参与人数
  1311 + expectedDirectBenefits: '', //直接收益
  1312 + expectedIndirectBenefits: '', //间接收益
  1313 + createDate: '', //创建时间
  1314 + feedbackContent:''
  1315 + } //执行效果列表
  1316 + actPage({
  1317 + detailsId: item.id,
  1318 + pageNumber: 1,
  1319 + pageSize: 10,
  1320 + }).then(res => {
  1321 + console.log(res.data.content)
  1322 + if (res.data.content.length == 0) {
  1323 + this.zhiXing = true
  1324 + } else {
  1325 + mingTable({
  1326 + detailsId: res.data.content[0].id,
  1327 + pageNumber: 1,
  1328 + pageSize: 10,
  1329 + }).then(res => {
  1330 + this.tableDa = res.data.content
  1331 + })
  1332 + this.zhiXing = false
  1333 + this.zhixingList = res.data.content[0]
  1334 + if((typeof this.zhixingList.eventStartTime) == 'object' || (typeof this.zhixingList.eventEndTime) == 'object' ){
  1335 + this.zhixingList.planTime = []
  1336 + }else{
  1337 + console.log(typeof this.zhixingList.eventStartTime)
  1338 + this.zhixingList.planTime = [ this.zhixingList.eventStartTime, this.zhixingList.eventEndTime]
  1339 + }
  1340 +
  1341 + }
  1342 + })
  1343 + let that = this
  1344 + this.planTime = [item.eventStartTime, item.eventEndTime]
  1345 + fujiaTable({
  1346 + detailsId: item.id,
  1347 + pageNumber: 1,
  1348 + pageSize: 10,
  1349 + }).then(res => {
  1350 + this.tableData6 = res.data.content
  1351 + })
  1352 + mingTable({
  1353 + detailsId: item.id,
  1354 + pageNumber: 1,
  1355 + pageSize: 10,
  1356 + }).then(res => {
  1357 + this.tableData2 = res.data.content
  1358 + })
  1359 +
  1360 +
  1361 + danqueryById({
  1362 + id: item.id,
  1363 + dataOwnership: '1',
  1364 + pageNumber: 1,
  1365 + pageSize: 10,
  1366 + }).then(res => {
  1367 + this.secondData = res.data.content[0]
  1368 + //基本信息
  1369 + // that.id=res.data.content[0].id
  1370 + that.text = res.data.content[0].planName
  1371 + that.tableData1[0].eventTheme = res.data.content[0].planType
  1372 + that.tableData1[0].planName = res.data.content[0].eventAddrs
  1373 + that.tableData1[1].eventTheme = res.data.content[0].eventStartTime
  1374 + that.tableData1[1].planName = res.data.content[0].eventEndTime
  1375 + that.tableData1[2].eventTheme = res.data.content[0].eventTheme
  1376 + that.tableData1[2].planName = res.data.content[0].sponsor
  1377 + that.tableData1[3].eventTheme = res.data.content[0].participants
  1378 + that.tableData1[3].planName = res.data.content[0].mainPurpose
  1379 + that.tableData1[4].planName = this.getStatus(res.data.content[0].state)
  1380 + that.tableData1[4].eventTheme = res.data.content[0].rangeSetting
  1381 + //活动成本信息
  1382 + that.internalLaborCostEstimation = res.data.content[0].internalLaborCostEstimation
  1383 + that.externalLaborCostEstimation = res.data.content[0].externalLaborCostEstimation
  1384 + that.tableData3[0].eventTheme = res.data.content[0].costEstimationGoods
  1385 + that.tableData3[0].planName = res.data.content[0].setCostEstimate
  1386 + that.tableData3[1].eventTheme = res.data.content[0].estimatedPromotionalExpenses
  1387 + that.tableData3[1].planName = res.data.content[0].otherNecessaryEstimates
  1388 + that.tableData3[2].eventTheme = res.data.content[0].totalCostEstimation
  1389 + that.tableData3[2].planName = res.data.content[0].notes
  1390 + //预估效果
  1391 + that.expectedAttractTraffic = res.data.content[0].expectedAttractTraffic
  1392 + that.expectedParticipation = res.data.content[0].expectedParticipation
  1393 + that.tableData4[0].eventTheme = res.data.content[0].expectedDirectBenefits
  1394 + that.tableData4[0].planName = res.data.content[0].expectedIndirectBenefits
  1395 + //系统信息
  1396 + that.createUser = res.data.content[0].createUser
  1397 + that.createDate = res.data.content[0].createDate
  1398 +
  1399 + that.tableData5[0].planName = '-'
  1400 + that.tableData5[0].eventTheme = res.data.content[0].updateUser
  1401 +
  1402 + }).catch(err => {
  1403 + console.log(err)
  1404 +
  1405 + })
  1406 + if (!item) {
  1407 + this.formItem = {}
  1408 + } else {
  1409 + this.formItem = item
  1410 + }
  1411 + this.ggXin = true
  1412 + },
  1413 + refreshData() {
  1414 + // console.log('12123')
  1415 + this.tableDa = []
  1416 + this.activeName = 'first'
  1417 + this.zhixingBian = false
  1418 + },
899 1419 }
900 1420 }
901 1421 </script>
... ... @@ -916,7 +1436,10 @@
916 1436 line-height: 0;
917 1437 }
918 1438  
919   -
  1439 + .tableBtn {
  1440 + display: inline-block;
  1441 + margin-right: 10px;
  1442 + }
920 1443  
921 1444 .formSearch {
922 1445 display: flex;
... ...
admin-web-master/src/views/activity/index.vue
... ... @@ -22,12 +22,24 @@
22 22 </div>
23 23 </div>
24 24 <div style="margin: 20px 0;">
25   - <div>
  25 + <div style="display:flex;">
26 26 <el-button icon="el-icon-circle-plus-outline" @click="create"
27 27 style="background-color: #3F9B6A;color: #fff;padding:8px 15px;">新增</el-button>
28 28 <el-button style="background-color: #E24E5A;color: #fff;" icon="el-icon-delete"
29 29 @click="handleDelete" class="DelBtnHover">删除</el-button>
30   - <el-button style="background-color: #3F9B6A;color: #fff;" @click="duibi">效果对比</el-button>
  30 + <!-- <el-button style="background-color: #3F9B6A;color: #fff;" @click="duibi">效果对比</el-button>
  31 + <el-upload class="upload-demo" ref="upload"
  32 + :limit="1"
  33 + accept=".xlsx"
  34 + :action="uploadFileUrl"
  35 + :on-success="daoru"
  36 + :file-list="daoData"
  37 + :auto-upload="true"
  38 + :show-file-list="false">
  39 + <el-button style="background-color: #fff;color: #3F9B6A;border: 1px solid #dcdfe6;margin:0 15px;" class="buttonHover" >导入</el-button>
  40 + </el-upload> -->
  41 + <el-button style="background-color: #3F9B6A;color: #fff;" @click="caogao">草稿箱</el-button>
  42 + <!-- <el-button style="background-color: #3F9B6A;color: #fff;" @click="daochu">审核流程导出</el-button> -->
31 43 <!-- <el-button style="background-color: #fff;color: #000;border: 1px solid #B1B1B1;"
32 44 icon="el-icon-folder-add" class="buttonHover" @click="xinFenlei">活动分类管理</el-button> -->
33 45 </div>
... ... @@ -74,26 +86,28 @@
74 86 </el-table-column>
75 87 <el-table-column label="类型" prop="planType" width="80">
76 88 </el-table-column>
77   - <el-table-column label="发布状态" width="80" >
78 89  
79   - </el-table-column>
80 90 <el-table-column label="审批状态" width="150">
81 91 <template slot-scope="scope">
82 92 {{scope.row.state == ''?'待提交':scope.row.state == '1'?'待审批':scope.row.state == '2'?'部门领导审批':scope.row.state == '3'?'公司领导审批':scope.row.state == '4'?'其他审批':scope.row.state == '5'?'审核通过':'已驳回'}}
83 93 </template>
84 94 </el-table-column>
85   - <el-table-column label="修改时间" prop="createDate"width="250" >
  95 + <el-table-column label="创建时间" prop="createDate"width="250" >
86 96 </el-table-column>
87   - <el-table-column prop="createUser" label="上传人员" width="80">
  97 + <!-- <el-table-column prop="auditReminderTime" label="审核提醒时间" width="200">
88 98  
89   - </el-table-column>
90   - <el-table-column label="操作" width="350">
  99 + </el-table-column> -->
  100 + <el-table-column label="操作" width="350" fixed="right">
91 101 <template slot-scope="scope">
92 102 <div @click="actBian(scope.row)" class="tableBtn greens" v-if="scope.row.state == ''">修改</div>
93 103 <!-- <div class="tableBtn greens">发布</div> -->
94   - <div class="tableBtn greens" @click="handleEditForm(scope.row)">执行情况</div>
95   - <div @click="OAshen(scope.row)" class="tableBtn greens" v-if="scope.row.state == ''">上传到OA</div>
96   - <div class="tableBtn greens" @click="xiaoguo(scope.row)">效果评估</div>
  104 + <div class="tableBtn greens" @click="handleEditForm(scope.row,1)">查看</div>
  105 + <!-- <div class="tableBtn greens" @click="handleEditForm(scope.row,2)">执行情况</div> -->
  106 + <div @click="OAshen(scope.row)" class="tableBtn greens" v-if="scope.row.state == ''">提交审核</div>
  107 + <!-- <div class="tableBtn greens" v-if="scope.row.state ==''" @click="peizhi(scope.row)">
  108 + 审批流程选择
  109 + </div> -->
  110 + <div class="tableBtn greens" @click="xiaoguo(scope.row)" v-if="scope.row.state == '5'" >效果评估</div>
97 111 <!-- <div class="tableBtn greens">策略调整</div> -->
98 112 <div class="tableBtn greens" @click="koop(scope.row)">复制</div>
99 113 </template>
... ... @@ -122,7 +136,7 @@
122 136 <!-- 详情活动方案 -->
123 137 <el-dialog title="活动方案详情" :visible.sync="ggXin" custom-class='xiang_css' style="padding: 0;" width="80%" center
124 138 :close-on-click-modal="false" :close-on-press-escape="false" @close="refreshData">
125   - <div>
  139 + <div ref="actXiang">
126 140 <div style="width: 100%;">
127 141 <div style="display: flex;padding:0px 20px 20px 20px; ">
128 142 <div style="width: 150px;height: 80px;" v-if="secondData.coverPoster">
... ... @@ -140,6 +154,7 @@
140 154 <el-tabs v-model="activeName" @tab-click="handleClick" style="padding-left:20px;">
141 155 <el-tab-pane label="方案概况" name="first"></el-tab-pane>
142 156 <el-tab-pane label="执行效果" name="second"></el-tab-pane>
  157 + <!-- <el-tab-pane label="执行情况" name="five"></el-tab-pane> -->
143 158 </el-tabs>
144 159 </div>
145 160 <div v-if="activeName=='first'" style="display: flex;">
... ... @@ -275,77 +290,6 @@
275 290 </div>
276 291 </div>
277 292 </div>
278   - <!-- <div style="width: 28%;">
279   - <div style="padding: 10px;height: 500px;">
280   - <div style="font-size: 14px;font-weight: 600;padding: 10px;">流程轨迹</div>
281   - <el-steps style="height: 400px;padding: 10px;" direction="vertical" finish-status="process "
282   - :active="0">
283   - <el-step>
284   - <template slot="title">
285   - <div style="font-size: 14px;font-weight: 600;padding-bottom: 10px;">审核节点</div>
286   - </template>
287   - <template slot="description">
288   - <div class="custom-step-description">
289   - <div>
290   - 当前处理人:王伟明
291   - </div>
292   - </div>
293   - </template>
294   - </el-step>
295   - <el-step style="position: relative;">
296   - <template slot="title">
297   - <div style="font-size: 14px;font-weight: 600;padding-bottom: 10px;">品牌部门审批</div>
298   - </template>
299   - <template slot="description">
300   - <div class="custom-step-description">
301   - <div>
302   - 操作:通过
303   - <span style="position: absolute;top: 0px;right: 0px;">2023-11-02 11:26:48</span>
304   - </div>
305   - <div>
306   - 操作人:王伟明
307   - </div>
308   - </div>
309   - </template>
310   - </el-step>
311   - <el-step style="position: relative;">
312   - <template slot="title">
313   - <div style="font-size: 14px;font-weight: 600;padding-bottom: 10px;">业务部门经理审核</div>
314   - </template>
315   - <template slot="description">
316   - <div class="custom-step-description">
317   - <div>
318   - 操作:通过
319   - <span style="position: absolute;top: 0px;right: 0px;">2023-11-02 11:26:48</span>
320   - </div>
321   - <div>
322   - 操作人:王伟明
323   - </div>
324   - </div>
325   - </template>
326   - </el-step>
327   - <el-step style="position: relative;">
328   - <template slot="title">
329   - <div style="font-size: 14px;font-weight: 600;padding-bottom: 10px;">开始</div>
330   - </template>
331   - <template slot="description">
332   - <div class="custom-step-description">
333   - <div>
334   - 操作:通过
335   - <span style="position: absolute;top: 0px;right: 0px;">2023-11-02 11:26:48</span>
336   - </div>
337   - <div>
338   - 操作人:王伟明
339   - </div>
340   - <div>
341   - 补充说明:发起流程事项审批
342   - </div>
343   - </div>
344   - </template>
345   - </el-step>
346   - </el-steps>
347   - </div>
348   - </div> -->
349 293 </div>
350 294 <div v-if="activeName=='second'">
351 295 <div style="padding: 20px">
... ... @@ -545,6 +489,19 @@
545 489 </el-col>
546 490  
547 491 </el-row>
  492 + <el-row :gutter="20">
  493 + <el-col :span="24">
  494 + <el-form-item label="反馈内容" class="grid-content bg-purple" prop="name">
  495 + <el-upload class="upload-demo" ref="upload" :on-remove="handleRemove"
  496 + :action="uploadFileUrl" :on-success="handleUploadSuccess" :file-list="fileData"
  497 + :show-file-list="true" v-if="zhixingBian">
  498 + <el-button style="background-color: #fff;color: #3F9B6A;border: 1px solid #dcdfe6;" class="buttonHover" v-if="fileData.length==0">+点击上传</el-button>
  499 + </el-upload>
  500 + <div v-else>{{zhixingList.feedbackContent}}</div>
  501 + </el-form-item>
  502 + </el-col>
  503 +
  504 + </el-row>
548 505 </el-form>
549 506 </div>
550 507 </div>
... ... @@ -556,7 +513,19 @@
556 513 </el-button>
557 514 </div>
558 515 </div>
  516 + <div v-if="activeName=='five'">
  517 + <div style="width: 100%;padding:20px;">
  518 + <wangEditor v-model="zhixingqingk" ref="editor"></wangEditor>
  519 + </div>
  520 +
  521 + </div>
559 522 </div>
  523 + <div style="display: flex;justify-content: flex-end;padding:10px" >
  524 + <el-button @click="downloadPdf" style="background-color: #3F9B6A;color: #fff" v-if="activeName=='first'" >下载
  525 + </el-button>
  526 + <el-button @click="fivebian" style="background-color: #3F9B6A;color: #fff" v-if="activeName=='five'">保存
  527 + </el-button>
  528 + </div>
560 529 </el-dialog>
561 530 </div>
562 531 </div>
... ... @@ -777,37 +746,37 @@
777 746 <div style="display:flex;padding:10px 0;">
778 747 <div style="margin-right:40px;width:17%">
779 748 <div style="color:#BBBBBB;font-size:10px;">吸引游客流量</div>
780   - <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">4289</span>人</div>
781   - <div style="color:#BBBBBB;font-size:10px;margin-bottom:10px">+45%</div>
  749 + <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">{{fenxiData.expectedAttractTraffic}}</span>人</div>
  750 + <div style="color:#BBBBBB;font-size:10px;margin-bottom:10px">{{fenxiData.expectedAttractTrafficAnalyse}}%</div>
782 751 <div style="height:5px;background-color:#FEC03D;"></div>
783 752 </div>
784 753 <div style="margin-right:40px;width:17%">
785 754 <div style="color:#BBBBBB;font-size:10px;">参与人数</div>
786   - <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">4289</span>人</div>
787   - <div style="color:#BBBBBB;font-size:10px;margin-bottom:10px">+45%</div>
  755 + <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">{{fenxiData.expectedParticipation}}</span>人</div>
  756 + <div style="color:#BBBBBB;font-size:10px;margin-bottom:10px">{{fenxiData.expectedParticipationAnalyse}}%</div>
788 757 <div style="height:5px;background-color:#58A3F7;"></div>
789 758 </div>
790 759 <div style="margin-right:40px;width:17%">
791 760 <div style="color:#BBBBBB;font-size:10px;">直接收益</div>
792   - <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">4289</span>人</div>
793   - <div style="color:#BBBBBB;font-size:10px;margin-bottom:10px">+45%</div>
  761 + <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">{{fenxiData.expectedDirectBenefits}}</span></div>
  762 + <div style="color:#BBBBBB;font-size:10px;margin-bottom:10px">{{fenxiData.expectedDirectBenefitsAnalysis}}%</div>
794 763 <div style="height:5px;background-color:#4BCED0;"></div>
795 764 </div>
796 765 <div style="margin-right:40px;width:17%">
797 766 <div style="color:#BBBBBB;font-size:10px;">间接收益</div>
798   - <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">4289</span>人</div>
799   - <div style="color:#BBBBBB;font-size:10px;margin-bottom:10px">+45%</div>
  767 + <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">{{fenxiData.expectedIndirectBenefits}}</span></div>
  768 + <div style="color:#BBBBBB;font-size:10px;margin-bottom:10px">{{fenxiData.expectedIndirectBenefitsAnalysis}}%</div>
800 769 <div style="height:5px;background-color:#3F9B6A;"></div>
801 770 </div>
802 771 <div style="margin-right:40px;width:17%">
803 772 <div style="color:#BBBBBB;font-size:10px;">投入生产比</div>
804   - <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">4289</span>人</div>
805   - <div style="color:#BBBBBB;font-size:10px;margin-bottom:10px">+45%</div>
  773 + <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">{{fenxiData.incomeAnalysis}}%</span></div>
  774 + <div style="color:#BBBBBB;font-size:10px;margin-bottom:10px">{{fenxiData.incomeAnalysis}}%</div>
806 775 <div style="height:5px;background-color:#8167F5;"></div>
807 776 </div>
808 777 </div>
809   - <div style="font-size:12px;margin:10px 0;">效果分析</div>
810   - <div style="display:flex;padding:10px 0;">
  778 + <!-- <div style="font-size:12px;margin:10px 0;">效果分析</div> -->
  779 + <!-- <div style="display:flex;padding:10px 0;">
811 780 <div style="margin-right:40px;width:17%">
812 781 <div style="color:#BBBBBB;font-size:10px;">吸引游客流量</div>
813 782 <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">4289</span>人</div>
... ... @@ -834,11 +803,11 @@
834 803 </div>
835 804 <div style="margin-right:40px;width:17%">
836 805 <div style="color:#BBBBBB;font-size:10px;">投入生产比</div>
837   - <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;">4289</span>人</div>
838   - <div style="color:#BBBBBB;font-size:10px;margin-bottom:10px">+45%</div>
  806 + <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;">{{fenxiData.incomeAnalysis}}</span>人</div>
  807 + <div style="color:#BBBBBB;font-size:10px;margin-bottom:10px">{{fenxiData.incomeAnalysis}}%</div>
839 808 <div style="height:5px;background-color:#8167F5;"></div>
840 809 </div>
841   - </div>
  810 + </div> -->
842 811 </div>
843 812 <div style="padding:0 20px;margin-top:20px;">
844 813 <div style="border:1px solid #EFEFEF;padding:20px 15px">
... ... @@ -880,26 +849,8 @@
880 849 </div>
881 850 </div>
882 851 </div>
883   - <div style="padding:55px 10px 10px 10px;background-color:#fff; position:relative">
884   - <div style="position: absolute;top: 52px;right: 5px; z-index: 10;">
885   - <el-radio-group v-model="radio1" style="margin-right:10px">
886   - <el-radio-button label="本周"></el-radio-button>
887   - <el-radio-button label="本月"></el-radio-button>
888   - <el-radio-button label="今年 "></el-radio-button>
889   - <el-radio-button label="自定义"></el-radio-button>
890   - </el-radio-group>
891   - <el-date-picker
892   - v-if="radio1=='自定义'"
893   -
894   - style="width:250px"
895   - v-model="radio1_time"
896   - type="datetimerange"
897   - range-separator="至"
898   - start-placeholder="开始日期"
899   - end-placeholder="结束日期">
900   - </el-date-picker>
901   - </div>
902   - <el-tabs type="border-card" @tab-click="xiaoguoTab">
  852 + <!-- <div style="padding:55px 10px 10px 10px;background-color:#fff; position:relative">
  853 + <el-tabs type="border-card" >
903 854 <el-tab-pane label="整体效果分析">
904 855 <el-table :data="dataList"
905 856 :header-cell-style="{fontSize: '12px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
... ... @@ -936,80 +887,10 @@
936 887 </el-table-column>
937 888 </el-table>
938 889 </el-tab-pane>
939   - <el-tab-pane label="纵向分析">
940   -<el-table :data="dataList"
941   - :header-cell-style="{fontSize: '12px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
942   - style="width: 100%">
943   - <el-table-column label="主题" width="auto" min-width="12%" align="center">
944   - <template slot-scope="scope">
945   - {{scope.$index + 1}}
946   - </template>
947   - </el-table-column>
948   - <el-table-column label="环比比较" width="auto" min-width="15%" align="center">
949   - <template slot-scope="scope">
950   - {{scope.$index + 1}}
951   - </template>
952   - </el-table-column>
953   - <el-table-column label="增长量" width="auto" min-width="15%" align="center">
954   - <template slot-scope="scope">
955   - {{scope.$index + 1}}
956   - </template>
957   - </el-table-column>
958   - <el-table-column label="增长率" prop="name" width="auto" min-width="15%">
959   - <template slot-scope="scope">
960   - {{scope.row.name}}
961   - </template>
962   - </el-table-column>
963   - <el-table-column label="投入总金额" prop="name" width="auto" min-width="15%">
964   - <template slot-scope="scope">
965   - {{scope.row.name}}
966   - </template>
967   - </el-table-column>
968   - <el-table-column label="投入产出比" prop="name" width="auto" min-width="15%">
969   - <template slot-scope="scope">
970   - {{scope.row.name}}
971   - </template>
972   - </el-table-column>
973   - </el-table>
974   - </el-tab-pane>
975   - <el-tab-pane label="横向分析">
976   -<el-table :data="dataList"
977   - :header-cell-style="{fontSize: '12px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
978   - style="width: 100%">
979   - <el-table-column label="主题" width="auto" min-width="12%" align="center">
980   - <template slot-scope="scope">
981   - {{scope.$index + 1}}
982   - </template>
983   - </el-table-column>
984   - <el-table-column label="环比比较" width="auto" min-width="15%" align="center">
985   - <template slot-scope="scope">
986   - {{scope.$index + 1}}
987   - </template>
988   - </el-table-column>
989   - <el-table-column label="增长量" width="auto" min-width="15%" align="center">
990   - <template slot-scope="scope">
991   - {{scope.$index + 1}}
992   - </template>
993   - </el-table-column>
994   - <el-table-column label="增长率" prop="name" width="auto" min-width="15%">
995   - <template slot-scope="scope">
996   - {{scope.row.name}}
997   - </template>
998   - </el-table-column>
999   - <el-table-column label="投入总金额" prop="name" width="auto" min-width="15%">
1000   - <template slot-scope="scope">
1001   - {{scope.row.name}}
1002   - </template>
1003   - </el-table-column>
1004   - <el-table-column label="投入产出比" prop="name" width="auto" min-width="15%">
1005   - <template slot-scope="scope">
1006   - {{scope.row.name}}
1007   - </template>
1008   - </el-table-column>
1009   - </el-table>
1010   - </el-tab-pane>
  890 +
  891 +
1011 892 </el-tabs>
1012   - </div>
  893 + </div> -->
1013 894  
1014 895 </div>
1015 896 </el-dialog>
... ... @@ -1069,6 +950,69 @@
1069 950 </el-button>
1070 951 </div>
1071 952 </el-dialog>
  953 + <el-dialog title="草稿箱" :visible.sync="caogaoshow" custom-class="dialog_css_Xq"
  954 + style="padding: 0;" width="70%" center :close-on-click-modal="false" :show-close="false">
  955 + <div style="padding:20px;">
  956 + <div style="margin-bottom: 20px;">
  957 + <el-table :data="caoList"
  958 + :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}"
  959 + align="left">
  960 + <el-table-column label="方案名称" width="300" prop="planName">
  961 + </el-table-column>
  962 + <el-table-column label="类型" prop="planType" width="80">
  963 + </el-table-column>
  964 + <el-table-column label="发布状态" width="80" >
  965 +
  966 + </el-table-column>
  967 + <el-table-column label="审批状态" width="150">
  968 + <template slot-scope="scope">
  969 + {{scope.row.state == ''?'待提交':scope.row.state == '1'?'待审批':scope.row.state == '2'?'部门领导审批':scope.row.state == '3'?'公司领导审批':scope.row.state == '4'?'其他审批':scope.row.state == '5'?'审核通过':'已驳回'}}
  970 + </template>
  971 + </el-table-column>
  972 + <el-table-column label="修改时间" prop="createDate"width="250" >
  973 + </el-table-column>
  974 + <el-table-column prop="createUser" label="上传人员" width="80">
  975 +
  976 + </el-table-column>
  977 + <el-table-column label="操作" width="350">
  978 + <template slot-scope="scope">
  979 + <div @click="shiyong(scope.row)" class="tableBtn greens">使用</div>
  980 + <!-- <div @click="actBian(scope.row)" class="tableBtn greens" v-if="scope.row.state == ''">修改</div> -->
  981 + <div @click="handleDelete(scope.row)" class="tableBtn greens">删除</div>
  982 + </template>
  983 + </el-table-column>
  984 + </el-table>
  985 + </div>
  986 + <div style="display: flex;justify-content: flex-end;">
  987 + <el-button @click="caogaoshow=false"
  988 + class="buttonHover"
  989 + style="background-color: #fff;color: #000;border: 1px solid #dcdfe6;">返回</el-button>
  990 + </div>
  991 + </div>
  992 +
  993 + </el-dialog>
  994 + <el-dialog :visible.sync="peiShow" custom-class='bian_css' style="padding: 0;" width="45%"
  995 + :close-on-press-escape="false" center :close-on-click-modal="false" class="dialog_css_Xq" :show-close="false">
  996 + <div style="padding:20px;">
  997 + <div style="font-size: 14px;padding-bottom: 20px;color: #000;">审核流程配置</div>
  998 + <el-form label-position="right" ref="jibenFrom" :model="peiForm" label-width="140px"
  999 + style="position: relative">
  1000 + <el-form-item label="审核提醒时间" class="grid-content bg-purple device-from" prop="planName">
  1001 + <el-date-picker style="width:240px;margin-right:5px" v-model="peiForm.auditReminderTime"
  1002 + value-format="yyyy-MM-dd HH:mm:ss" type="datetime" prefix-icon="none" >
  1003 + </el-date-picker>
  1004 + </el-form-item>
  1005 + </el-form>
  1006 + <div style="padding-top:20px;display:flex;justify-content: flex-end;">
  1007 + <el-button style="background-color: #3F9B6A;color: #fff"
  1008 + @click="peiCheck">确定</el-button>
  1009 + <el-button @click="peiShow = false" style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;" class="buttonHover">取消</el-button>
  1010 +
  1011 + </div>
  1012 +
  1013 + </div>
  1014 +
  1015 + </el-dialog>
1072 1016 <addAct :showAdd="addAct" @childClose='childClose' :fenleiName="cascaderList"></addAct>
1073 1017 <actbians :showBian="actbianMsg" @BianchildClose='BianchildClose'></actbians>
1074 1018 </div>
... ... @@ -1092,19 +1036,33 @@
1092 1036 cereAdd,
1093 1037 cereEdit,
1094 1038 cereDel,
1095   - copy
  1039 + copy,
  1040 + excelQueryByPage,
  1041 + excelAdd,
  1042 + effectEvaluation
1096 1043 } from '../../api/activityBz'
1097 1044 import addAct from "./activityBz"
1098 1045 import actbians from "./activityBian"
1099 1046 import * as echarts from 'echarts'
1100 1047 import Vue from 'vue'
  1048 + import html2canvas from 'html2canvas'
  1049 + import jsPDF from 'jspdf'
  1050 + import wangEditor from "@/components/editor/index"
  1051 + import {
  1052 + uploadUrl
  1053 + } from '@/utils/request'
1101 1054 export default {
1102 1055 components: {
1103 1056 addAct,
1104   - actbians
  1057 + actbians,
  1058 + wangEditor
1105 1059 },
1106 1060 data() {
1107 1061 return {
  1062 + uploadFileUrl: uploadUrl, // 请求地址
  1063 + daoData:[],
  1064 + fenxiData:{},
  1065 + fileData:[],
1108 1066 addAct: false, //新增页
1109 1067 actbianMsg: {
1110 1068 acBian: '', //编辑数据
... ... @@ -1117,7 +1075,7 @@
1117 1075 planFen: '',
1118 1076 eventTheme: '',
1119 1077 currentPage: 1,
1120   - total: 100,
  1078 + total: 0,
1121 1079 flag: false,
1122 1080 pageSize: 10,
1123 1081 ggXin: false,
... ... @@ -1169,9 +1127,11 @@
1169 1127 text: '活动主要目的',
1170 1128 eventTheme: ''
1171 1129 }, {
1172   - id: '5',
1173   - name: '状态',
1174   - eventTheme: '待审核'
  1130 + id: 0,
  1131 + name: '范围设置',
  1132 + planName: '',
  1133 + text: '状态',
  1134 + eventTheme: ''
1175 1135 }],
1176 1136 internalLaborCostEstimation: '',
1177 1137 externalLaborCostEstimation: '',
... ... @@ -1246,11 +1206,13 @@
1246 1206 expectedDirectBenefits: '', //直接收益
1247 1207 expectedIndirectBenefits: '', //间接收益
1248 1208 createDate: '', //创建时间
  1209 + feedbackContent:''
1249 1210 }, //执行效果列表
1250 1211 pageindex: {
1251 1212 pageNumber: 1,
1252 1213 pageSize: 10,
1253   - dataOwnership: '1'
  1214 + dataOwnership: '1',
  1215 + isDraft:0,
1254 1216 },
1255 1217 multipleSelection: [],
1256 1218 options: [],
... ... @@ -1265,8 +1227,7 @@
1265 1227 xiaoguoBox:false,
1266 1228 chart: null, //饼图
1267 1229 chart1: null, //漏斗图
1268   - radio1:'',
1269   - radio1_time:'',
  1230 +
1270 1231 dataList:[],
1271 1232 xinlei:false,//分类管理框
1272 1233 fenleiDelId:null,//删除的分类ID
... ... @@ -1287,9 +1248,17 @@
1287 1248 },
1288 1249 copyShow:false,
1289 1250 duibiOne:{},
1290   - duibiTwo:{}
1291   - }
1292   - },
  1251 + duibiTwo:{},
  1252 + caoList:[],
  1253 + caogaoshow:false,
  1254 + peiForm:{
  1255 + auditReminderTime:''
  1256 + },
  1257 + peiShow:false,
  1258 + peiId:'',
  1259 + zhixingqingk:''
  1260 + }
  1261 + },
1293 1262 created() {
1294 1263 this.getAll()
1295 1264  
... ... @@ -1351,7 +1320,8 @@
1351 1320 pageNumber: 1,
1352 1321 pageSize: 10,
1353 1322 dataOwnership: '1',
1354   - classificationCode:data.id
  1323 + classificationCode:data.id,
  1324 + isDraft:0
1355 1325 }
1356 1326 const res = await queryByPage(pageindex)
1357 1327 this.tableData = res.data.content
... ... @@ -1361,7 +1331,8 @@
1361 1331 this.pageindex={
1362 1332 pageNumber: 1,
1363 1333 pageSize: 10,
1364   - dataOwnership: '1'
  1334 + dataOwnership: '1',
  1335 + isDraft:0
1365 1336 }
1366 1337 const res = await queryByPage(this.pageindex)
1367 1338 this.tableData = res.data.content
... ... @@ -1387,6 +1358,10 @@
1387 1358 deleteById({
1388 1359 id: this.multipleSelection[0].id
1389 1360 }).then(res => {
  1361 + this.$message({
  1362 + message: '删除成功',
  1363 + type: 'success'
  1364 + })
1390 1365 this.getAll()
1391 1366 done();
1392 1367 })
... ... @@ -1411,6 +1386,8 @@
1411 1386 dataOwnership: '1',
1412 1387 pageNumber: 1,
1413 1388 pageSize: 10,
  1389 + auditTime:0,
  1390 + isDraft:0
1414 1391 })
1415 1392 this.tableData = res.data.content
1416 1393 } else if (this.planName == '' && this.eventTheme != '') {
... ... @@ -1419,6 +1396,8 @@
1419 1396 dataOwnership: '1',
1420 1397 pageNumber: 1,
1421 1398 pageSize: 10,
  1399 + auditTime:0,
  1400 + isDraft:0
1422 1401 })
1423 1402 this.tableData = res.data.content
1424 1403 } else {
... ... @@ -1428,13 +1407,19 @@
1428 1407 dataOwnership: '1',
1429 1408 pageNumber: 1,
1430 1409 pageSize: 10,
  1410 + auditTime:0,
  1411 + isDraft:0
1431 1412 })
1432 1413 this.tableData = res.data.content
1433 1414 }
1434 1415  
1435 1416 },
1436 1417 //详情点击
1437   - handleEditForm(item) {
  1418 + handleEditForm(item,val,flag) {
  1419 + if(val ==2){
  1420 + this.activeName = 'five'
  1421 + }
  1422 + this.fileData = []
1438 1423 this.zhixingList = {
1439 1424 planTime:[],
1440 1425 planName: '', //活动名称
... ... @@ -1456,6 +1441,7 @@
1456 1441 expectedDirectBenefits: '', //直接收益
1457 1442 expectedIndirectBenefits: '', //间接收益
1458 1443 createDate: '', //创建时间
  1444 + feedbackContent:''
1459 1445 } //执行效果列表
1460 1446 actPage({
1461 1447 detailsId: item.id,
... ... @@ -1520,8 +1506,8 @@
1520 1506 that.tableData1[2].planName = res.data.content[0].sponsor
1521 1507 that.tableData1[3].eventTheme = res.data.content[0].participants
1522 1508 that.tableData1[3].planName = res.data.content[0].mainPurpose
1523   -
1524   - that.tableData1[4].eventTheme = this.getStatus(res.data.content[0].state)
  1509 + that.tableData1[4].planName = this.getStatus(res.data.content[0].state)
  1510 + that.tableData1[4].eventTheme = res.data.content[0].rangeSetting
1525 1511 //活动成本信息
1526 1512 that.internalLaborCostEstimation = res.data.content[0].internalLaborCostEstimation
1527 1513 that.externalLaborCostEstimation = res.data.content[0].externalLaborCostEstimation
... ... @@ -1596,6 +1582,9 @@
1596 1582 },
1597 1583 //执行效果保存
1598 1584 async bianji() {
  1585 + if(this.fileData.length !=0){
  1586 + this.zhixingList.feedbackContent = this.fileData[0].url
  1587 + }
1599 1588 if (this.zhiXing) {
1600 1589 this.zhixingList.eventStartTime = this.zhixingList.planTime[0]
1601 1590 this.zhixingList.eventEndTime = this.zhixingList.planTime[1]
... ... @@ -1756,7 +1745,7 @@
1756 1745 this.$msgbox({
1757 1746 title: '消息',
1758 1747 message: h('p', null, [
1759   - h('span', null, '是否上传到OA '),
  1748 + h('span', null, '是否提交审核 '),
1760 1749 ]),
1761 1750 showCancelButton: true,
1762 1751 showClose: false,
... ... @@ -1818,10 +1807,10 @@
1818 1807 }
1819 1808  
1820 1809 },
1821   - xiaoguoTab(tab, event){
1822   -
1823   - },
1824 1810 xiaoguo(item) {
  1811 + effectEvaluation({id:item.id}).then(res=>{
  1812 + this.fenxiData = res.data
  1813 + })
1825 1814 this.xiaoguoBox = true
1826 1815 this.$nextTick(() => {
1827 1816 this.shopLiu(this.$refs.shopL);
... ... @@ -2049,7 +2038,143 @@
2049 2038 }
2050 2039  
2051 2040 },
  2041 + handleUploadSuccess(response, file, fileList) {
  2042 + const fileMsg = {
  2043 + name:file.name,
  2044 + url: file.response.data.url,
  2045 + }
  2046 + // 将文件地址存储在 uploadedFiles 数组中
  2047 + this.fileData.push(fileMsg);
  2048 + },
  2049 + handleRemove(){
  2050 + this.fileData = []
  2051 + },
  2052 + daoru(response, file, fileList){
  2053 + this.daoData= []
  2054 + this.daoData.push(file.raw)
  2055 + const formDate = new FormData()
  2056 + formDate.append('file', this.daoData[0])
  2057 + excelAdd(formDate).then(res => {
  2058 + this.getAll()
  2059 + })
  2060 + },
  2061 + caogao(){
  2062 +
2052 2063  
  2064 + let pageindex = {
  2065 + pageNumber: 1,
  2066 + pageSize: 10,
  2067 + dataOwnership: '1',
  2068 + isDraft:1
  2069 + }
  2070 + queryByPage(pageindex).then(res=>{
  2071 + this.caoList = res.data.content
  2072 + })
  2073 + this.caogaoshow =true
  2074 +
  2075 + },
  2076 + shiyong(item){
  2077 +
  2078 + const h = this.$createElement;
  2079 + this.$msgbox({
  2080 + title: '消息',
  2081 + message: h('p', null, [
  2082 + h('span', null, '是否使用 '),
  2083 + ]),
  2084 + showCancelButton: true,
  2085 + showClose: false,
  2086 + confirmButtonText: '确定',
  2087 + cancelButtonText: '取消',
  2088 + customClass: 'oe-dialog-btn',
  2089 + beforeClose: (action, instance, done) => {
  2090 + if (action === 'confirm') {
  2091 + xiangedit({
  2092 + id:item.id,
  2093 + isDraft:0
  2094 + }).then(res => {
  2095 + this.getAll()
  2096 + this.caogao()
  2097 + done();
  2098 + })
  2099 + } else {
  2100 + done();
  2101 + }
  2102 + }
  2103 + })
  2104 +
  2105 +
  2106 + },
  2107 + async daochu(){
  2108 + let res = await excelQueryByPage(this.pageindex)
  2109 + if(!res){
  2110 + return
  2111 + }
  2112 + const blob = new Blob([res], { type: 'application/vnd.ms-excel' })
  2113 + const fileName = '审核流程.xls'
  2114 + if ('download' in document.createElement('a')) {
  2115 + // 非IE下载
  2116 + const elink = document.createElement('a')
  2117 + elink.download = fileName
  2118 + elink.style.display = 'none'
  2119 + elink.href = URL.createObjectURL(blob)
  2120 + document.body.appendChild(elink)
  2121 + elink.click()
  2122 + URL.revokeObjectURL(elink.href) // 释放URL 对象
  2123 + document.body.removeChild(elink)
  2124 + } else {
  2125 + // IE10+下载
  2126 + navigator.msSaveBlob(blob, fileName)
  2127 + }
  2128 + this.$message({
  2129 + message: '导出成功',
  2130 + type: 'success'
  2131 + })
  2132 +
  2133 +
  2134 + },
  2135 + // 下载
  2136 + async downloadPdf() {
  2137 + const content = this.$refs.actXiang;
  2138 +
  2139 + // 使用 html2canvas 将 div 渲染为画布
  2140 + const canvas = await html2canvas(content);
  2141 +
  2142 + // 获取画布的图像数据
  2143 + const imgData = canvas.toDataURL('image/png');
  2144 +
  2145 + // 创建一个新的 PDF 文档
  2146 + const pdf = new jsPDF('p', 'mm', 'a4');
  2147 +
  2148 + // 添加图像到 PDF,第二个参数是图像格式,第三个参数是缩放比例
  2149 + const imgWidth = 190; // 图像的宽度(mm)
  2150 + const imgHeight = (canvas.height * imgWidth) / canvas.width; // 保持图像的宽高比
  2151 +
  2152 + pdf.addImage(imgData, 'PNG', 10, 10, imgWidth, imgHeight); // 10, 10 是图像在 PDF 中的位置(mm)
  2153 +
  2154 + // 保存 PDF 文件
  2155 + pdf.save('活动方案.pdf');
  2156 + },
  2157 + peizhi(item){
  2158 + this.peiForm = {
  2159 + auditTime:''
  2160 + }
  2161 + this.peiShow = true
  2162 + this.peiId = item.id
  2163 + },
  2164 + async peiCheck(){
  2165 + if(this.peiForm.auditReminderTime ==''){
  2166 + this.$message({
  2167 + message: '请填写审核提醒时间',
  2168 + })
  2169 + return;
  2170 + }
  2171 + await xiangedit({id:this.peiId,auditReminderTime:this.peiForm.auditReminderTime})
  2172 + this.peiShow = false
  2173 + this.getAll()
  2174 + },
  2175 + fivebian(){
  2176 +
  2177 + },
2053 2178 }
2054 2179 }
2055 2180 </script>
... ... @@ -2080,7 +2205,10 @@
2080 2205 line-height: 0;
2081 2206 }
2082 2207  
2083   -
  2208 + .tableBtn {
  2209 + display: inline-block;
  2210 + margin-right: 10px;
  2211 + }
2084 2212  
2085 2213 .formSearch {
2086 2214 display: flex;
... ...
admin-web-master/src/views/atmosphere/atmosphereBian.vue
... ... @@ -66,6 +66,17 @@
66 66 </el-form-item>
67 67 </el-col>
68 68 </el-row>
  69 + <el-row :gutter="20">
  70 + <el-col :span="8">
  71 + <el-form-item label="范围设置" class="grid-content bg-purple" prop="sponsor">
  72 + <el-select v-model="secondData.rangeSetting" placeholder="请选择" style="width: 100%">
  73 + <el-option label="活动绿道段内" value="活动绿道段内"></el-option>
  74 + <el-option label="活动场地内" value="活动场地内"></el-option>
  75 + </el-select>
  76 + </el-form-item>
  77 + </el-col>
  78 +
  79 + </el-row>
69 80 <div style="padding: 10px">
70 81 <el-row :gutter="20">
71 82 <el-form-item label="活动封面海报" prop="cover_poster" class="grid-content bg-purple">
... ... @@ -261,7 +272,7 @@
261 272 <div style="padding: 20px;display:flex;justify-content: flex-end">
262 273 <el-button plain @click="close" size="mini" style="background-color: #fff;color: #000;border: 1px solid #dcdfe6;" class="buttonHover">返回
263 274 </el-button>
264   - <el-button plain @click="bianji" size="mini" style="background-color: #3F9B6A;color: #fff">确定
  275 + <el-button plain @click="bianji" size="mini" style="background-color: #3F9B6A;color: #fff">保存
265 276 </el-button>
266 277 </div>
267 278 </div>
... ... @@ -547,7 +558,10 @@
547 558 .greens {
548 559 color: #3f9b6a;
549 560 }
550   -
  561 + .tableBtn {
  562 + display: inline-block;
  563 + margin-right: 10px;
  564 + }
551 565 ::v-deep .buttonHover:hover{
552 566 color:#3f9b6a !important;
553 567 border-color: #c5e1d2 !important;
... ...
admin-web-master/src/views/atmosphere/atmosphereBz.vue
... ... @@ -91,7 +91,28 @@
91 91 </el-form-item>
92 92 </el-col>
93 93 </el-row>
94   -
  94 +<el-row :gutter="20">
  95 + <el-col :span="12">
  96 + <el-form-item label="范围设置" class="grid-content bg-purple" prop="sponsor">
  97 + <el-select v-model="ruleForm.rangeSetting" placeholder="请选择" style="width: 100%">
  98 + <el-option label="活动绿道段内" value="活动绿道段内"></el-option>
  99 + <el-option label="活动场地内" value="活动场地内"></el-option>
  100 + </el-select>
  101 + </el-form-item>
  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>
  115 + </el-row>
95 116 <el-row :gutter="20">
96 117 <el-col :span="12">
97 118 <el-form-item label="活动封面海报" prop="cover_poster" class="grid-content bg-purple">
... ... @@ -297,12 +318,14 @@
297 318 </el-tab-pane>
298 319 </el-tabs>
299 320 <div style="display: flex;justify-content: flex-end;padding: 10px 20px 10px 0">
300   - <el-button plain @click="onSubmit" size="mini" style="background-color: #3F9B6A;color: #fff;">保存
301   - </el-button>
302   - <!-- <el-button plain @click="zancun" size="mini" style="background-color: #3F9B6A;color: #fff;">暂存
303   - </el-button> -->
304   - <el-button plain @click="close" size="mini" style="background-color: #3F9B6A;color: #fff;">取消
  321 + <el-button plain @click="close" size="mini" style="background-color: #3F9B6A;color: #fff;">取消
  322 + </el-button>
  323 + <el-button @click="onSubmit(1)" style="background-color: #3F9B6A;color: #fff;">暂存
  324 + </el-button>
  325 + <el-button plain @click="onSubmit(0)" size="mini" style="background-color: #3F9B6A;color: #fff;">保存
305 326 </el-button>
  327 +
  328 +
306 329 </div>
307 330 </div>
308 331  
... ... @@ -356,7 +379,8 @@
356 379 Mingdan,
357 380 MingEdit,
358 381 MingDel,
359   - fujiaAdd
  382 + fujiaAdd,
  383 + lishiDeta
360 384 } from '../../api/activityBz'
361 385 import wangEditor from "@/components/editor/index";
362 386 import upimg from "@/components/ImageUpload/index"
... ... @@ -393,6 +417,7 @@ uploadFileUrl: uploadUrl, // 请求地址
393 417 eventTheme:'',//活动主题
394 418 sponsor:'',//活动主办方
395 419 participants:'',//活动参与方
  420 + rangeSetting:'',
396 421 mainPurpose:'',//活动主要目的
397 422 coverPoster:'',//封面海报
398 423 internalLaborCostEstimation:'',//内部人工成本预估
... ... @@ -438,9 +463,14 @@ uploadFileUrl: uploadUrl, // 请求地址
438 463 yugu:null,
439 464 fun:null
440 465 },
441   -
  466 +fenxiData:[],
  467 +lishiList:'',
442 468 }
443 469 },
  470 + mounted() {
  471 +
  472 + this.lishi()
  473 + },
444 474 methods: {
445 475 //获取当前时间
446 476 updateCurrentTime() {
... ... @@ -454,6 +484,22 @@ uploadFileUrl: uploadUrl, // 请求地址
454 484  
455 485 this.currentTime = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
456 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 + },
457 503 // 切换事件
458 504 beforeTabLeave(activeName, oldActiveName){
459 505  
... ... @@ -504,7 +550,7 @@ uploadFileUrl: uploadUrl, // 请求地址
504 550 // }
505 551 },
506 552 //保存
507   - onSubmit(){
  553 + onSubmit(val){
508 554 this.updateCurrentTime();
509 555 let that = this
510 556 let FlieName = this.ruleForm.planName
... ... @@ -559,6 +605,7 @@ uploadFileUrl: uploadUrl, // 请求地址
559 605 // }
560 606 this.$refs.jibenFrom.validate((valid) => {
561 607 if (valid) {
  608 + this.ruleForm.isDraft = val
562 609 add(this.ruleForm).then(res=>{
563 610 this.$message({
564 611 message: '保存成功',
... ... @@ -681,6 +728,7 @@ this.tuxiangData = {
681 728 eventTheme: '', //活动主题
682 729 sponsor: '', //活动主办方
683 730 participants: '', //活动参与方
  731 + rangeSetting:'',
684 732 mainPurpose: '', //活动主要目的
685 733 coverPoster: '', //封面海报
686 734 internalLaborCostEstimation: '', //内部人工成本预估
... ...
admin-web-master/src/views/atmosphere/atmosphereGl.vue
... ... @@ -22,11 +22,23 @@
22 22 </div>
23 23 </div>
24 24 <div style="margin:20px 0;">
25   - <div>
  25 + <div style="display:flex;">
26 26 <el-button icon="el-icon-circle-plus-outline" @click="create"
27 27 style="background-color: #3F9B6A;color: #fff;">新增</el-button>
28 28 <el-button style="background-color: #E24E5A;color: #fff;" icon="el-icon-delete" @click="handleDelete" class="DelBtnHover">删除</el-button>
29   - <el-button style="background-color: #3F9B6A;color: #fff;" @click="duibi">效果对比</el-button>
  29 + <!-- <el-button style="background-color: #3F9B6A;color: #fff;" @click="duibi">效果对比</el-button>
  30 + <el-upload class="upload-demo" ref="upload"
  31 + :limit="1"
  32 + accept=".xlsx"
  33 + :action="uploadFileUrl"
  34 + :on-success="daoru"
  35 + :file-list="daoData"
  36 + :auto-upload="true"
  37 + :show-file-list="false">
  38 + <el-button style="background-color: #fff;color: #3F9B6A;border: 1px solid #dcdfe6;margin:0 15px;" class="buttonHover">导入</el-button>
  39 + </el-upload> -->
  40 + <el-button style="background-color: #3F9B6A;color: #fff;" @click="caogao">草稿箱</el-button>
  41 + <!-- <el-button style="background-color: #3F9B6A;color: #fff;" @click="daochu">审核流程导出</el-button> -->
30 42 <!-- <el-button style="background-color: #fff;color: #000;border: 1px solid #B1B1B1;"
31 43 icon="el-icon-folder-add" class="buttonHover" @click="xinFenlei">氛围分类管理</el-button> -->
32 44 </div>
... ... @@ -80,18 +92,22 @@
80 92 {{scope.row.state == ''?'待提交':scope.row.state == '1'?'待审批':scope.row.state == '2'?'部门领导审批':scope.row.state == '3'?'公司领导审批':scope.row.state == '4'?'其他审批':scope.row.state == '5'?'审核通过':'已驳回'}}
81 93 </template>
82 94 </el-table-column>
83   - <el-table-column label="修改时间" prop="createDate"width="250" >
  95 + <el-table-column label="创建时间" prop="createDate"width="250" >
84 96 </el-table-column>
85   - <el-table-column prop="createUser" label="上传人员" width="80">
  97 + <!-- <el-table-column prop="auditReminderTime" label="审核提醒时间" width="200">
86 98  
87   - </el-table-column>
88   - <el-table-column label="操作" width="350">
  99 + </el-table-column> -->
  100 + <el-table-column label="操作" width="350" fixed="right">
89 101 <template slot-scope="scope">
90 102 <div class="tableBtn greens" @click="actBian(scope.row)" v-if="scope.row.state == ''">修改</div>
91 103 <!-- <div class="tableBtn greens">发布</div> -->
92   - <div class="tableBtn greens" @click="handleEditForm(scope.row)">执行情况</div>
93   - <div @click="OAshen(scope.row)" class="tableBtn greens" v-if="scope.row.state == ''">上传到OA</div>
94   - <div class="tableBtn greens" @click="xiaoguo(scope.row)">效果评估</div>
  104 + <div class="tableBtn greens" @click="handleEditForm(scope.row,1)">查看</div>
  105 + <!-- <div class="tableBtn greens" @click="handleEditForm(scope.row,2)">执行情况</div> -->
  106 + <div @click="OAshen(scope.row)" class="tableBtn greens" v-if="scope.row.state == ''">提交审核</div>
  107 + <!-- <div class="tableBtn greens" v-if="scope.row.state ==''" @click="peizhi(scope.row)">
  108 + 审批流程选择
  109 + </div> -->
  110 + <div class="tableBtn greens" @click="xiaoguo(scope.row)" v-if="scope.row.state == '5'" >效果评估</div>
95 111 <!-- <div class="tableBtn greens">策略调整</div> -->
96 112 <div class="tableBtn greens" @click="koop(scope.row)">复制</div>
97 113 </template>
... ... @@ -121,7 +137,7 @@
121 137 <!-- 详情活动方案 -->
122 138 <el-dialog title="氛围方案详情" :visible.sync="ggXin" custom-class='xiang_css' style="padding: 0;" width="80%"
123 139 center :close-on-click-modal="false" :close-on-press-escape="false" @close="refreshData">
124   - <div>
  140 + <div ref="actXiang">
125 141 <div style="width: 100%;">
126 142 <div style="display: flex;padding:0px 20px 20px 20px; ">
127 143 <div style="width: 150px;height: 80px;" v-if="secondData.coverPoster">
... ... @@ -139,6 +155,7 @@
139 155 <el-tabs v-model="activeName" @tab-click="handleClick" style="padding-left:20px;">
140 156 <el-tab-pane label="方案概况" name="first"></el-tab-pane>
141 157 <el-tab-pane label="执行效果" name="second"></el-tab-pane>
  158 + <el-tab-pane label="执行情况" name="five"></el-tab-pane>
142 159 </el-tabs>
143 160 </div>
144 161 <div v-if="activeName=='first'" style="display: flex;">
... ... @@ -538,18 +555,42 @@
538 555 </el-col>
539 556  
540 557 </el-row>
  558 + <el-row :gutter="20">
  559 + <el-col :span="24">
  560 + <el-form-item label="反馈内容" class="grid-content bg-purple" prop="name">
  561 + <el-upload class="upload-demo" ref="upload" :on-remove="handleRemove"
  562 + :action="uploadFileUrl" :on-success="handleUploadSuccess" :file-list="fileData"
  563 + :show-file-list="true" v-if="zhixingBian">
  564 + <el-button style="background-color: #fff;color: #3F9B6A;border: 1px solid #dcdfe6;" class="buttonHover" v-if="fileData.length==0">+点击上传</el-button>
  565 + </el-upload>
  566 + <div v-else>{{zhixingList.feedbackContent}}</div>
  567 + </el-form-item>
  568 + </el-col>
  569 +
  570 + </el-row>
541 571 </el-form>
542 572 </div>
543 573 </div>
  574 + <div v-if="activeName=='five'">
  575 + <div style="width: 100%;padding:20px;">
  576 + <wangEditor v-model="zhixingqingk" ref="editor"></wangEditor>
  577 + </div>
  578 +
  579 + </div>
544 580 </div>
545 581 <div style="padding: 0px 20px;display:flex;justify-content: flex-end;">
546 582 <el-button plain @click="zhixingBian = true" style="background-color: #3F9B6A;color: #fff;" v-if="zhixingBian==false">编辑</el-button>
547 583 <el-button plain @click="bianji" style="background-color: #3F9B6A;color: #fff" v-if="zhixingBian">保存
548 584 </el-button>
549 585 </div>
550   -
551 586 </div>
552 587 </div>
  588 + <div style="display: flex;justify-content: flex-end;padding:10px" >
  589 + <el-button @click="downloadPdf" style="background-color: #3F9B6A;color: #fff" v-if="activeName=='first'">下载
  590 + </el-button>
  591 + <el-button @click="fivebian" style="background-color: #3F9B6A;color: #fff" v-if="activeName=='five'">保存
  592 + </el-button>
  593 + </div>
553 594 </el-dialog>
554 595 </div>
555 596 </div>
... ... @@ -598,37 +639,37 @@
598 639 <div style="display:flex;padding:10px 0;">
599 640 <div style="margin-right:40px;width:17%">
600 641 <div style="color:#BBBBBB;font-size:10px;">吸引游客流量</div>
601   - <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">4289</span>人</div>
602   - <div style="color:#BBBBBB;font-size:10px;margin-bottom:10px">+45%</div>
  642 + <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">{{fenxiData.expectedAttractTraffic}}</span>人</div>
  643 + <div style="color:#BBBBBB;font-size:10px;margin-bottom:10px">{{fenxiData.expectedAttractTrafficAnalyse}}%</div>
603 644 <div style="height:5px;background-color:#FEC03D;"></div>
604 645 </div>
605 646 <div style="margin-right:40px;width:17%">
606 647 <div style="color:#BBBBBB;font-size:10px;">参与人数</div>
607   - <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">4289</span>人</div>
608   - <div style="color:#BBBBBB;font-size:10px;margin-bottom:10px">+45%</div>
  648 + <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">{{fenxiData.expectedParticipation}}</span>人</div>
  649 + <div style="color:#BBBBBB;font-size:10px;margin-bottom:10px">{{fenxiData.expectedParticipationAnalyse}}%</div>
609 650 <div style="height:5px;background-color:#58A3F7;"></div>
610 651 </div>
611 652 <div style="margin-right:40px;width:17%">
612 653 <div style="color:#BBBBBB;font-size:10px;">直接收益</div>
613   - <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">4289</span>人</div>
614   - <div style="color:#BBBBBB;font-size:10px;margin-bottom:10px">+45%</div>
  654 + <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">{{fenxiData.expectedDirectBenefits}}</span></div>
  655 + <div style="color:#BBBBBB;font-size:10px;margin-bottom:10px">{{fenxiData.expectedDirectBenefitsAnalysis}}%</div>
615 656 <div style="height:5px;background-color:#4BCED0;"></div>
616 657 </div>
617 658 <div style="margin-right:40px;width:17%">
618 659 <div style="color:#BBBBBB;font-size:10px;">间接收益</div>
619   - <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">4289</span>人</div>
620   - <div style="color:#BBBBBB;font-size:10px;margin-bottom:10px">+45%</div>
  660 + <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">{{fenxiData.expectedIndirectBenefits}}</span></div>
  661 + <div style="color:#BBBBBB;font-size:10px;margin-bottom:10px">{{fenxiData.expectedIndirectBenefitsAnalysis}}%</div>
621 662 <div style="height:5px;background-color:#3F9B6A;"></div>
622 663 </div>
623 664 <div style="margin-right:40px;width:17%">
624 665 <div style="color:#BBBBBB;font-size:10px;">投入生产比</div>
625   - <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">4289</span>人</div>
626   - <div style="color:#BBBBBB;font-size:10px;margin-bottom:10px">+45%</div>
  666 + <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">{{fenxiData.incomeAnalysis}}%</span></div>
  667 + <div style="color:#BBBBBB;font-size:10px;margin-bottom:10px">{{fenxiData.incomeAnalysis}}%</div>
627 668 <div style="height:5px;background-color:#8167F5;"></div>
628 669 </div>
629 670 </div>
630   - <div style="font-size:12px;margin:10px 0;">效果分析</div>
631   - <div style="display:flex;padding:10px 0;">
  671 + <!-- <div style="font-size:12px;margin:10px 0;">效果分析</div> -->
  672 + <!-- <div style="display:flex;padding:10px 0;">
632 673 <div style="margin-right:40px;width:17%">
633 674 <div style="color:#BBBBBB;font-size:10px;">吸引游客流量</div>
634 675 <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">4289</span>人</div>
... ... @@ -659,7 +700,7 @@
659 700 <div style="color:#BBBBBB;font-size:10px;margin-bottom:10px">+45%</div>
660 701 <div style="height:5px;background-color:#8167F5;"></div>
661 702 </div>
662   - </div>
  703 + </div> -->
663 704 </div>
664 705 <div style="padding:0 20px;margin-top:20px;">
665 706 <div style="border:1px solid #EFEFEF;padding:20px 15px">
... ... @@ -702,25 +743,8 @@
702 743 </div>
703 744 </div>
704 745 <div style="padding:55px 10px 10px 10px;background-color:#fff; position:relative">
705   - <div style="position: absolute;top: 60px;right: 10px; z-index: 10;">
706   - <el-radio-group v-model="radio1" style="margin-right:10px">
707   - <el-radio-button label="本周"></el-radio-button>
708   - <el-radio-button label="本月"></el-radio-button>
709   - <el-radio-button label="今年 "></el-radio-button>
710   - <el-radio-button label="自定义"></el-radio-button>
711   - </el-radio-group>
712   - <el-date-picker
713   - v-if="radio1=='自定义'"
714   -
715   - style="width:250px"
716   - v-model="radio1_time"
717   - type="datetimerange"
718   - range-separator="至"
719   - start-placeholder="开始日期"
720   - end-placeholder="结束日期">
721   - </el-date-picker>
722   - </div>
723   - <el-tabs type="border-card" @tab-click="xiaoguoTab">
  746 +
  747 + <el-tabs type="border-card" >
724 748 <el-tab-pane label="整体效果分析">
725 749 <el-table :data="dataList"
726 750 :header-cell-style="{fontSize: '12px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
... ... @@ -757,78 +781,6 @@
757 781 </el-table-column>
758 782 </el-table>
759 783 </el-tab-pane>
760   - <el-tab-pane label="纵向分析">
761   - <el-table :data="dataList"
762   - :header-cell-style="{fontSize: '12px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
763   - style="width: 100%">
764   - <el-table-column label="主题" width="auto" min-width="12%" align="center">
765   - <template slot-scope="scope">
766   - {{scope.$index + 1}}
767   - </template>
768   - </el-table-column>
769   - <el-table-column label="环比比较" width="auto" min-width="15%" align="center">
770   - <template slot-scope="scope">
771   - {{scope.$index + 1}}
772   - </template>
773   - </el-table-column>
774   - <el-table-column label="增长量" width="auto" min-width="15%" align="center">
775   - <template slot-scope="scope">
776   - {{scope.$index + 1}}
777   - </template>
778   - </el-table-column>
779   - <el-table-column label="增长率" prop="name" width="auto" min-width="15%">
780   - <template slot-scope="scope">
781   - {{scope.row.name}}
782   - </template>
783   - </el-table-column>
784   - <el-table-column label="投入总金额" prop="name" width="auto" min-width="15%">
785   - <template slot-scope="scope">
786   - {{scope.row.name}}
787   - </template>
788   - </el-table-column>
789   - <el-table-column label="投入产出比" prop="name" width="auto" min-width="15%">
790   - <template slot-scope="scope">
791   - {{scope.row.name}}
792   - </template>
793   - </el-table-column>
794   - </el-table>
795   - </el-tab-pane>
796   - <el-tab-pane label="横向分析">
797   - <el-table :data="dataList"
798   - :header-cell-style="{fontSize: '12px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
799   - style="width: 100%">
800   - <el-table-column label="主题" width="auto" min-width="12%" align="center">
801   - <template slot-scope="scope">
802   - {{scope.$index + 1}}
803   - </template>
804   - </el-table-column>
805   - <el-table-column label="环比比较" width="auto" min-width="15%" align="center">
806   - <template slot-scope="scope">
807   - {{scope.$index + 1}}
808   - </template>
809   - </el-table-column>
810   - <el-table-column label="增长量" width="auto" min-width="15%" align="center">
811   - <template slot-scope="scope">
812   - {{scope.$index + 1}}
813   - </template>
814   - </el-table-column>
815   - <el-table-column label="增长率" prop="name" width="auto" min-width="15%">
816   - <template slot-scope="scope">
817   - {{scope.row.name}}
818   - </template>
819   - </el-table-column>
820   - <el-table-column label="投入总金额" prop="name" width="auto" min-width="15%">
821   - <template slot-scope="scope">
822   - {{scope.row.name}}
823   - </template>
824   - </el-table-column>
825   - <el-table-column label="投入产出比" prop="name" width="auto" min-width="15%">
826   - <template slot-scope="scope">
827   - {{scope.row.name}}
828   - </template>
829   - </el-table-column>
830   - </el-table>
831   - </el-tab-pane>
832 784 </el-tabs>
833 785 </div>
834 786  
... ... @@ -1064,6 +1016,69 @@
1064 1016 </el-button>
1065 1017 </div>
1066 1018 </el-dialog>
  1019 + <el-dialog title="草稿箱" :visible.sync="caogaoshow" custom-class="dialog_css_Xq"
  1020 + style="padding: 0;" width="70%" center :close-on-click-modal="false" :show-close="false">
  1021 + <div style="padding:20px;">
  1022 + <div style="margin-bottom: 20px;">
  1023 + <el-table :data="caoList"
  1024 + :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}"
  1025 + align="left">
  1026 + <el-table-column label="方案名称" width="300" prop="planName">
  1027 + </el-table-column>
  1028 + <el-table-column label="类型" prop="planType" width="80">
  1029 + </el-table-column>
  1030 + <el-table-column label="发布状态" width="80" >
  1031 +
  1032 + </el-table-column>
  1033 + <el-table-column label="审批状态" width="150">
  1034 + <template slot-scope="scope">
  1035 + {{scope.row.state == ''?'待提交':scope.row.state == '1'?'待审批':scope.row.state == '2'?'部门领导审批':scope.row.state == '3'?'公司领导审批':scope.row.state == '4'?'其他审批':scope.row.state == '5'?'审核通过':'已驳回'}}
  1036 + </template>
  1037 + </el-table-column>
  1038 + <el-table-column label="修改时间" prop="createDate"width="250" >
  1039 + </el-table-column>
  1040 + <el-table-column prop="createUser" label="上传人员" width="80">
  1041 +
  1042 + </el-table-column>
  1043 + <el-table-column label="操作" width="350">
  1044 + <template slot-scope="scope">
  1045 + <div @click="shiyong(scope.row)" class="tableBtn greens">使用</div>
  1046 + <!-- <div @click="actBian(scope.row)" class="tableBtn greens" v-if="scope.row.state == ''">修改</div> -->
  1047 + <div @click="handleDelete(scope.row)" class="tableBtn greens">删除</div>
  1048 + </template>
  1049 + </el-table-column>
  1050 + </el-table>
  1051 + </div>
  1052 + <div style="display: flex;justify-content: flex-end;">
  1053 + <el-button @click="caogaoshow=false"
  1054 + class="buttonHover"
  1055 + style="background-color: #fff;color: #000;border: 1px solid #dcdfe6;">返回</el-button>
  1056 + </div>
  1057 + </div>
  1058 +
  1059 + </el-dialog>
  1060 + <el-dialog :visible.sync="peiShow" custom-class='bian_css' style="padding: 0;" width="45%"
  1061 + :close-on-press-escape="false" center :close-on-click-modal="false" class="dialog_css_Xq" :show-close="false">
  1062 + <div style="padding:20px;">
  1063 + <div style="font-size: 14px;padding-bottom: 20px;color: #000;">审核流程配置</div>
  1064 + <el-form label-position="right" ref="jibenFrom" :model="peiForm" label-width="140px"
  1065 + style="position: relative">
  1066 + <el-form-item label="审核提醒时间" class="grid-content bg-purple device-from" prop="planName">
  1067 + <el-date-picker style="width:240px;margin-right:5px" v-model="peiForm.auditReminderTime"
  1068 + value-format="yyyy-MM-dd HH:mm:ss" type="datetime" prefix-icon="none" >
  1069 + </el-date-picker>
  1070 + </el-form-item>
  1071 + </el-form>
  1072 + <div style="padding-top:20px;display:flex;justify-content: flex-end;">
  1073 + <el-button style="background-color: #3F9B6A;color: #fff"
  1074 + @click="peiCheck">确定</el-button>
  1075 + <el-button @click="peiShow = false" style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;" class="buttonHover">取消</el-button>
  1076 +
  1077 + </div>
  1078 +
  1079 + </div>
  1080 +
  1081 + </el-dialog>
1067 1082 <addAct :showAdd="addAct" @childClose='childClose' :fenleiName="cascaderList"></addAct>
1068 1083 <atmbians :showBian="atmbianMsg" @BianchildClose='BianchildClose' ></atmbians>
1069 1084 </div>
... ... @@ -1087,15 +1102,24 @@
1087 1102 cereGet,
1088 1103 cereAdd,
1089 1104 cereEdit,
1090   - cereDel
  1105 + cereDel,
  1106 + excelQueryByPage,
  1107 + excelAdd,
  1108 + effectEvaluation
1091 1109 } from '../../api/activityBz'
1092 1110 import addAct from "./atmosphereBz"
1093 1111 import atmbians from "./atmosphereBian"
1094 1112 import * as echarts from 'echarts'
1095 1113 import Vue from 'vue'
  1114 + import html2canvas from 'html2canvas'
  1115 + import jsPDF from 'jspdf'
  1116 + import wangEditor from "@/components/editor/index"
  1117 + import {
  1118 + uploadUrl
  1119 + } from '@/utils/request'
1096 1120 export default {
1097 1121 name: 'atmosphereGl',
1098   -components: { addAct,atmbians},
  1122 +components: { addAct,atmbians,wangEditor},
1099 1123 data() {
1100 1124 return {
1101 1125 addAct:false,//新增页
... ... @@ -1103,11 +1127,12 @@ components: { addAct,atmbians},
1103 1127 acBian:'',//编辑数据
1104 1128 bianshow:false,//编辑页
1105 1129 },
  1130 + fenxiData:{},
1106 1131 planName:'',
1107 1132 planFen:'',
1108 1133 eventTheme:'',
1109 1134 currentPage: 1,
1110   - total: 100,
  1135 + total: 0,
1111 1136 flag: false,
1112 1137 pageSize: 10,
1113 1138 ggXin: false,
... ... @@ -1161,9 +1186,11 @@ components: { addAct,atmbians},
1161 1186 text: '活动主要目的',
1162 1187 eventTheme: ''
1163 1188 },{
1164   - id: '5',
1165   - name: '状态',
1166   - eventTheme: '待审核'
  1189 + id:0,
  1190 + name: '范围设置',
  1191 + planName: '',
  1192 + text: '状态',
  1193 + eventTheme: ''
1167 1194 }],
1168 1195 internalLaborCostEstimation:'',
1169 1196 externalLaborCostEstimation:'',
... ... @@ -1243,7 +1270,8 @@ components: { addAct,atmbians},
1243 1270 pageindex: {
1244 1271 pageNumber: 1,
1245 1272 pageSize: 10,
1246   - dataOwnership:'2'
  1273 + dataOwnership:'2',
  1274 + isDraft:0
1247 1275 },
1248 1276 multipleSelection:[],//选择的数据
1249 1277 options: [],
... ... @@ -1258,8 +1286,6 @@ components: { addAct,atmbians},
1258 1286 xiaoguoBox:false,
1259 1287 chart: null, //饼图
1260 1288 chart1: null, //漏斗图
1261   - radio1:'',
1262   - radio1_time:'',
1263 1289 dataList:[],
1264 1290 xinlei:false,//分类管理框
1265 1291 fenleiDelId:null,//删除的分类ID
... ... @@ -1282,7 +1308,19 @@ components: { addAct,atmbians},
1282 1308 },
1283 1309 copyShow:false,
1284 1310 duibiOne:{},
1285   - duibiTwo:{}
  1311 + duibiTwo:{},
  1312 + uploadFileUrl: uploadUrl, // 请求地址
  1313 + daoData:[],
  1314 + fileData:[],
  1315 + caoList:[],
  1316 + caogaoshow:false,
  1317 + peiForm:{
  1318 + auditReminderTime:''
  1319 + },
  1320 + peiShow:false,
  1321 + peiId:'',
  1322 + zhixingqingk:''
  1323 +
1286 1324 }
1287 1325 },
1288 1326 created() {
... ... @@ -1312,7 +1350,7 @@ components: { addAct,atmbians},
1312 1350 //查询全数据
1313 1351 async getAll() {
1314 1352 const res = await queryByPage((this.pageindex))
1315   - console.log(res.data)
  1353 +
1316 1354 this.tableData = res.data.content
1317 1355 this.total = res.data.content.length
1318 1356 let page = {
... ... @@ -1342,12 +1380,13 @@ components: { addAct,atmbians},
1342 1380 }));
1343 1381 },
1344 1382 async handleNodeClick(data){
1345   - console.log('Node clicked:', data);
  1383 +
1346 1384 let pageindex= {
1347 1385 pageNumber: 1,
1348 1386 pageSize: 10,
1349 1387 dataOwnership: '2',
1350   - classificationCode:data.id
  1388 + classificationCode:data.id,
  1389 + isDraft:0
1351 1390 }
1352 1391 const res = await queryByPage(pageindex)
1353 1392 this.tableData = res.data.content
... ... @@ -1357,7 +1396,8 @@ components: { addAct,atmbians},
1357 1396 this.pageindex={
1358 1397 pageNumber: 1,
1359 1398 pageSize: 10,
1360   - dataOwnership: '2'
  1399 + dataOwnership: '2',
  1400 + isDraft:0
1361 1401 }
1362 1402 const res = await queryByPage(this.pageindex)
1363 1403 this.tableData = res.data.content
... ... @@ -1404,13 +1444,13 @@ components: { addAct,atmbians},
1404 1444 //查询
1405 1445 async onSubmit(){
1406 1446 if(this.planName != '' && this.eventTheme == ''){
1407   - const res = await danqueryById({planName:this.planName,dataOwnership:'2', pageNumber: 1,pageSize: 10,})
  1447 + const res = await danqueryById({planName:this.planName,dataOwnership:'2', pageNumber: 1,pageSize: 10, auditTime:0,isDraft:0})
1408 1448 this.tableData = res.data.content
1409 1449 }else if(this.planName == '' && this.eventTheme != ''){
1410   - const res = await danqueryById({eventTheme:this.eventTheme,dataOwnership:'2',pageNumber: 1,pageSize: 10,})
  1450 + const res = await danqueryById({eventTheme:this.eventTheme,dataOwnership:'2',pageNumber: 1,pageSize: 10, auditTime:0,isDraft:0})
1411 1451 this.tableData = res.data.content
1412 1452 }else{
1413   - const res = await danqueryById({planName:this.planName,eventTheme:this.eventTheme,dataOwnership:'2',pageNumber: 1,pageSize: 10, })
  1453 + const res = await danqueryById({planName:this.planName,eventTheme:this.eventTheme,dataOwnership:'2',pageNumber: 1,pageSize: 10, auditTime:0 ,isDraft:0})
1414 1454 this.tableData = res.data.content
1415 1455 }
1416 1456  
... ... @@ -1432,7 +1472,9 @@ components: { addAct,atmbians},
1432 1472 },
1433 1473 //执行效果保存
1434 1474 async bianji() {
1435   - console.log(this.zhiXing)
  1475 + if(this.fileData.length !=0){
  1476 + this.zhixingList.feedbackContent = this.fileData[0].url
  1477 + }
1436 1478 if(this.zhiXing){
1437 1479 this.zhixingList.eventStartTime = this.zhixingList.planTime[0]
1438 1480 this.zhixingList.eventEndTime=this.zhixingList.planTime[1]
... ... @@ -1453,7 +1495,11 @@ components: { addAct,atmbians},
1453 1495 this.getAll()
1454 1496 },
1455 1497 //详情点击
1456   - handleEditForm(item) {
  1498 + handleEditForm(item,val) {
  1499 + if(val ==2){
  1500 + this.activeName = 'five'
  1501 + }
  1502 + this.fileData = []
1457 1503 this.zhixingList={
1458 1504 planTime: [],
1459 1505 planName: '', //活动名称
... ... @@ -1535,8 +1581,8 @@ components: { addAct,atmbians},
1535 1581 that.tableData1[2].planName = res.data.content[0].sponsor
1536 1582 that.tableData1[3].eventTheme = res.data.content[0].participants
1537 1583 that.tableData1[3].planName = res.data.content[0].mainPurpose
1538   - // that.tableData1[4].eventTheme = res.data.content[0].state
1539   - that.tableData1[4].eventTheme = this.getStatus(res.data.content[0].state)
  1584 + that.tableData1[4].planName = this.getStatus(res.data.content[0].state)
  1585 + that.tableData1[4].eventTheme = res.data.content[0].rangeSetting
1540 1586 //活动成本信息
1541 1587 that.internalLaborCostEstimation=res.data.content[0].internalLaborCostEstimation
1542 1588 that.externalLaborCostEstimation=res.data.content[0].externalLaborCostEstimation
... ... @@ -1720,7 +1766,7 @@ that.expectedAttractTraffic=res.data.content[0].expectedAttractTraffic
1720 1766 this.$msgbox({
1721 1767 title: '消息',
1722 1768 message: h('p', null, [
1723   - h('span', null, '是否上传到OA '),
  1769 + h('span', null, '是否提交审核 '),
1724 1770 ]),
1725 1771 showCancelButton: true,
1726 1772 showClose:false,
... ... @@ -1746,6 +1792,9 @@ that.expectedAttractTraffic=res.data.content[0].expectedAttractTraffic
1746 1792 }
1747 1793 },
1748 1794 xiaoguo(item) {
  1795 + effectEvaluation({id:item.id}).then(res=>{
  1796 + this.fenxiData = res.data
  1797 + })
1749 1798 this.xiaoguoBox = true
1750 1799 this.$nextTick(() => {
1751 1800 this.shopLiu(this.$refs.shopL);
... ... @@ -2013,6 +2062,138 @@ that.expectedAttractTraffic=res.data.content[0].expectedAttractTraffic
2013 2062 }
2014 2063  
2015 2064 },
  2065 + handleUploadSuccess(response, file, fileList) {
  2066 + const fileMsg = {
  2067 + name:file.name,
  2068 + url: file.response.data.url,
  2069 + }
  2070 + // 将文件地址存储在 uploadedFiles 数组中
  2071 + this.fileData.push(fileMsg);
  2072 + },
  2073 + handleRemove(){
  2074 +this.fileData=[]
  2075 + },
  2076 + daoru(response, file, fileList){
  2077 + this.daoData.push(file.raw)
  2078 + const formDate = new FormData()
  2079 + formDate.append('file', this.daoData[0])
  2080 + excelAdd(formDate).then(res => {
  2081 + this.getAll()
  2082 + })
  2083 + },
  2084 + caogao(){
  2085 + let pageindex = {
  2086 + pageNumber: 1,
  2087 + pageSize: 10,
  2088 + dataOwnership: '2',
  2089 + isDraft:1
  2090 + }
  2091 + queryByPage(pageindex).then(res=>{
  2092 + this.caoList = res.data.content
  2093 + })
  2094 + this.caogaoshow =true
  2095 +
  2096 + },
  2097 + shiyong(item){
  2098 +
  2099 + const h = this.$createElement;
  2100 + this.$msgbox({
  2101 + title: '消息',
  2102 + message: h('p', null, [
  2103 + h('span', null, '是否使用 '),
  2104 + ]),
  2105 + showCancelButton: true,
  2106 + showClose: false,
  2107 + confirmButtonText: '确定',
  2108 + cancelButtonText: '取消',
  2109 + customClass: 'oe-dialog-btn',
  2110 + beforeClose: (action, instance, done) => {
  2111 + if (action === 'confirm') {
  2112 + xiangedit({
  2113 + id: item.id,
  2114 + draftStatus:1,
  2115 + isDraft:0
  2116 + }).then(res => {
  2117 + this.getAll()
  2118 + this.caogao()
  2119 + done();
  2120 + })
  2121 + } else {
  2122 + done();
  2123 + }
  2124 + }
  2125 + })
  2126 +
  2127 +
  2128 + },
  2129 + async daochu(){
  2130 + let res = await excelQueryByPage(this.pageindex)
  2131 + if(!res){
  2132 + return
  2133 + }
  2134 + const blob = new Blob([res], { type: 'application/vnd.ms-excel' })
  2135 + const fileName = '审核流程.xls'
  2136 + if ('download' in document.createElement('a')) {
  2137 + // 非IE下载
  2138 + const elink = document.createElement('a')
  2139 + elink.download = fileName
  2140 + elink.style.display = 'none'
  2141 + elink.href = URL.createObjectURL(blob)
  2142 + document.body.appendChild(elink)
  2143 + elink.click()
  2144 + URL.revokeObjectURL(elink.href) // 释放URL 对象
  2145 + document.body.removeChild(elink)
  2146 + } else {
  2147 + // IE10+下载
  2148 + navigator.msSaveBlob(blob, fileName)
  2149 + }
  2150 + this.$message({
  2151 + message: '导出成功',
  2152 + type: 'success'
  2153 + })
  2154 +
  2155 +
  2156 + },
  2157 + // 下载
  2158 + async downloadPdf() {
  2159 + const content = this.$refs.actXiang;
  2160 +
  2161 + // 使用 html2canvas 将 div 渲染为画布
  2162 + const canvas = await html2canvas(content);
  2163 +
  2164 + // 获取画布的图像数据
  2165 + const imgData = canvas.toDataURL('image/png');
  2166 +
  2167 + // 创建一个新的 PDF 文档
  2168 + const pdf = new jsPDF('p', 'mm', 'a4');
  2169 +
  2170 + // 添加图像到 PDF,第二个参数是图像格式,第三个参数是缩放比例
  2171 + const imgWidth = 190; // 图像的宽度(mm)
  2172 + const imgHeight = (canvas.height * imgWidth) / canvas.width; // 保持图像的宽高比
  2173 +
  2174 + pdf.addImage(imgData, 'PNG', 10, 10, imgWidth, imgHeight); // 10, 10 是图像在 PDF 中的位置(mm)
  2175 +
  2176 + // 保存 PDF 文件
  2177 + pdf.save('氛围方案.pdf');
  2178 + },
  2179 + peizhi(item){
  2180 + this.peiForm = {
  2181 + auditTime:''
  2182 + }
  2183 + this.peiShow = true
  2184 + this.peiId = item.id
  2185 + },
  2186 + async peiCheck(){
  2187 + if(this.peiForm.auditReminderTime ==''){
  2188 + this.$message({
  2189 + message: '请填写审核提醒时间',
  2190 + })
  2191 + return;
  2192 + }
  2193 + await xiangedit({id:this.peiId,auditReminderTime:this.peiForm.auditReminderTime})
  2194 + this.peiShow = false
  2195 + this.getAll()
  2196 + },
2016 2197 }
2017 2198 }
2018 2199 </script>
... ... @@ -2041,7 +2222,10 @@ that.expectedAttractTraffic=res.data.content[0].expectedAttractTraffic
2041 2222 line-height: 0;
2042 2223 }
2043 2224  
2044   -
  2225 +.tableBtn {
  2226 + display: inline-block;
  2227 + margin-right: 10px;
  2228 +}
2045 2229 .formSearch {
2046 2230 display: flex;
2047 2231 width: 100%;
... ...
admin-web-master/src/views/atmosphere/atmosphereGl副本.vue
... ... @@ -993,7 +993,10 @@ export default {
993 993 line-height: 0;
994 994 }
995 995  
996   -
  996 + .tableBtn {
  997 + display: inline-block;
  998 + margin-right: 10px;
  999 + }
997 1000  
998 1001  
999 1002  
... ...
admin-web-master/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,1,false)">调整方案查看</div>
  101 + <div class="tableBtn greens" @click="handleEditForm(scope.row,2,false)">执行情况</div>
  102 + <div class="tableBtn greens" @click="handleEditForm(scope.row,2,true)">策划方案编辑</div>
  103 + <div class="tableBtn greens" @click="handleEditForm(scope.row,3,false)">历史方案查看</div>
  104 + <div class="tableBtn greens" @click="actDelete(scope.row)">删除</div>
  105 +
  106 + <!-- <div class="tableBtn greens" @click="handleEditForm(scope.row)">历史方案查看</div> -->
  107 +
  108 + <!-- <div class="tableBtn greens">策略调整</div> -->
  109 + <!-- <div class="tableBtn greens" @click="koop(scope.row)">复制</div> -->
  110 + </template>
  111 + </el-table-column>
  112 +</el-table>
  113 +<div class="fenye">
  114 + <div>
  115 + <el-button @click="tableAll" class="buttonHover" style="color: #000;border: 1px solid #DBDBDB;background-color: #fff;">选择全部
  116 + </el-button>
  117 + <el-button @click="toggleSelection(tableData)"
  118 + class="buttonHover"
  119 + style="color: #000;border: 1px solid #DBDBDB;background-color: #fff;">反向选择
  120 + </el-button>
  121 + </div>
  122 + <el-pagination class="pagination" :hide-on-single-page="flag" background small :current-page="currentPage"
  123 + :page-size="pageSize" layout="prev,pager,next" :total="total"
  124 + @current-change="handleCurrentChange" />
  125 +</div>
  126 +
  127 +</div>
  128 +</div>
  129 +</div>
  130 +
  131 +
  132 +
  133 +<!-- 详情氛围方案 -->
  134 +<el-dialog title="氛围方案详情" :visible.sync="ggXin" custom-class='xiang_css' style="padding: 0;" width="80%" center
  135 + :close-on-click-modal="false" :close-on-press-escape="false" @close="refreshData">
  136 + <div ref="actXiang">
  137 + <div style="width: 100%;">
  138 + <div style="display: flex;padding:0px 20px 20px 20px; ">
  139 + <div style="width: 150px;height: 80px;" v-if="secondData.coverPoster">
  140 + <img :src="secondData.coverPoster" alt="" style="width: 100%;height: 80px;" />
  141 + </div>
  142 + <div
  143 + style="display: flex;flex-direction: column;justify-content: space-around;padding: 0 10px;font-size: 12px;">
  144 + <span style="margin-bottom: 10px;">{{text}}</span>
  145 + <span>氛围时间:{{tableData1[1].eventTheme}}至{{tableData1[1].planName}}</span>
  146 + <span>氛围地点:{{tableData1[0].planName}}</span>
  147 + </div>
  148 + </div>
  149 + </div>
  150 + <div style="width: 100%;background-color: #fff;">
  151 + <el-tabs v-model="activeName" @tab-click="handleClick" style="padding-left:20px;">
  152 + <el-tab-pane label="方案概况" name="first"></el-tab-pane>
  153 + <el-tab-pane label="执行效果" name="second"></el-tab-pane>
  154 + <el-tab-pane label="历史氛围方案" name="fourd"></el-tab-pane>
  155 + <el-tab-pane label="执行情况" name="five"></el-tab-pane>
  156 + </el-tabs>
  157 + </div>
  158 + <div v-if="activeName=='first'" style="display: flex;">
  159 + <div style="width: 100%;">
  160 + <div style="width: 100%;">
  161 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">基本信息</div>
  162 + <div style="padding: 10px 20px;">
  163 + <el-table :data="tableData1"
  164 + :header-cell-style="{fontSize: '14px', backgroundColor: '#fff',color:'#000',fontWeight: 'normal'}"
  165 + style="width: 100%;margin: auto;">
  166 + <el-table-column class-name="first-column-bg" label="方案编号" prop="name" min-width="15%">
  167 + </el-table-column>
  168 + <el-table-column :label="id" prop="eventTheme" min-width="35%">
  169 +
  170 + </el-table-column>
  171 + <el-table-column class-name="first-column-bg" label="方案名称" prop="text" min-width="15%">
  172 +
  173 + </el-table-column>
  174 + <el-table-column :label="text" prop="planName" min-width="35%">
  175 +
  176 + </el-table-column>
  177 + </el-table>
  178 +
  179 +
  180 + </div>
  181 + </div>
  182 + <div style="width: 100%;">
  183 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">氛围明细信息</div>
  184 + <div style="padding: 10px 20px;">
  185 + <el-table :data="tableData2"
  186 + :header-cell-style="{fontSize: '14px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
  187 + style="width: 100%;margin: auto;">
  188 + <el-table-column label="序号" min-width="5%" align='center'>
  189 + <template slot-scope="scope">
  190 + <span style="">{{ scope.$index +1}}</span>
  191 + </template>
  192 + </el-table-column>
  193 + <el-table-column label="明细项名称" prop="detailLtemName" min-width="28%">
  194 + </el-table-column>
  195 + <el-table-column label="预估数量" prop="estimatedQuantity" min-width="20%">
  196 +
  197 + </el-table-column>
  198 + <el-table-column label="预估费用" prop="estimatedCost" min-width="20%">
  199 +
  200 + </el-table-column>
  201 + <el-table-column label="备注" prop="notes" min-width="20%">
  202 + </el-table-column>
  203 + </el-table>
  204 + </div>
  205 + </div>
  206 + <div style="width: 100%;">
  207 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">氛围成本信息</div>
  208 + <div style="padding:10px 20px;">
  209 + <el-table :data="tableData3"
  210 + :header-cell-style="{fontSize: '14px', backgroundColor: '#fff',color:'#000',fontWeight: 'normal'}"
  211 + style="width: 100%;margin: auto;">
  212 + <el-table-column class-name="first-column-bg" label="内部人力成本预估" prop="name" min-width="15%">
  213 + </el-table-column>
  214 + <el-table-column :label="internalLaborCostEstimation" prop="eventTheme" min-width="35%">
  215 +
  216 + </el-table-column>
  217 + <el-table-column class-name="first-column-bg" label="外部人力成本预估" prop="text" min-width="15%">
  218 +
  219 + </el-table-column>
  220 + <el-table-column :label="externalLaborCostEstimation" prop="planName" min-width="35%">
  221 +
  222 + </el-table-column>
  223 + </el-table>
  224 + </div>
  225 + </div>
  226 + <div style="width: 100%;">
  227 + <div style="font-size: 14px;padding:10px 20px 0px 20px;">预估效果</div>
  228 + <div style="padding:10px 20px;">
  229 + <el-table :data="tableData4"
  230 + :header-cell-style="{fontSize: '14px', backgroundColor: '#fff',color:'#000',fontWeight: 'normal'}"
  231 + style="width: 100%;margin: auto;">
  232 + <el-table-column class-name="first-column-bg" label="预计吸引流量" prop="name" min-width="15%">
  233 + </el-table-column>
  234 + <el-table-column :label="expectedAttractTraffic" prop="eventTheme" min-width="35%">
  235 +
  236 + </el-table-column>
  237 + <el-table-column class-name="first-column-bg" label="预计参与人数" prop="text" min-width="15%">
  238 +
  239 + </el-table-column>
  240 + <el-table-column :label="expectedParticipation" prop="planName" min-width="35%">
  241 +
  242 + </el-table-column>
  243 + </el-table>
  244 + </el-table-column>
  245 + </div>
  246 + </div>
  247 + <div style="width: 100%;">
  248 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">相关附件信息</div>
  249 + <div style="padding:10px 20px;">
  250 + <el-table :data="tableData6"
  251 + :header-cell-style="{fontSize: '14px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
  252 + style="width: 100%;margin: auto;">
  253 + <el-table-column label="序号" min-width="5%" align='center'>
  254 + <template slot-scope="scope">
  255 + <span style="">{{ scope.$index + 1 }}</span>
  256 + </template>
  257 + </el-table-column>
  258 + <el-table-column label="附件名称" prop="attachmentName" min-width="75%">
  259 + </el-table-column>
  260 + <el-table-column label="操作" min-width="20%">
  261 + <template slot-scope="scope">
  262 + <!-- <div class="tableBtn greens" @click="Down(scope.row)">下载</div> -->
  263 + <a class="tableBtn greens" :href="scope.row.attachmentUrl" target="_blank" download>下载</a>
  264 + </template>
  265 + </el-table-column>
  266 +
  267 + </el-table>
  268 + </div>
  269 + </div>
  270 + <div style="width: 100%;">
  271 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">系统信息</div>
  272 + <div style="padding:10px 20px;">
  273 + <el-table :data="tableData5"
  274 + :header-cell-style="{fontSize: '14px', backgroundColor: '#fff',color:'#000',fontWeight: 'normal'}"
  275 + style="width: 100%;margin: auto;">
  276 + <el-table-column class-name="first-column-bg" label="创建人" prop="name" min-width="15%">
  277 + </el-table-column>
  278 + <el-table-column :label="createUser" prop="eventTheme" min-width="35%">
  279 +
  280 + </el-table-column>
  281 + <el-table-column class-name="first-column-bg" label="创建时间" prop="text" min-width="15%">
  282 +
  283 + </el-table-column>
  284 + <el-table-column :label="createDate" prop="planName" min-width="35%">
  285 +
  286 + </el-table-column>
  287 + </el-table>
  288 + </div>
  289 + </div>
  290 + </div>
  291 + </div>
  292 + <div v-if="activeName=='second'">
  293 + <div style="padding: 20px">
  294 + <div style="border: solid 1px #E5E5E5;border-radius: 5px">
  295 + <div style="border-bottom: 1px solid #E5E5E5;padding: 1px">
  296 + <div style="padding: 10px 20px;background-color: #FAFAFA;font-size: 14px;">
  297 + 基本信息
  298 + </div>
  299 + </div>
  300 + <div style="padding: 20px 40px 20px 20px">
  301 + <el-form label-position="top" ref="ruleFormInfo" :model="zhixingList" label-width="120px"
  302 + style="position: relative">
  303 + <el-row :gutter="20">
  304 + <el-col :span="8">
  305 + <el-form-item label="氛围名称" class="grid-content bg-purple device-from" prop="name">
  306 + <el-input v-model="zhixingList.planName" placeholder="请输入" :disabled="!zhixingBian" />
  307 + </el-form-item>
  308 + </el-col>
  309 + <el-col :span="8">
  310 + <el-form-item label="实际举办地点" class="grid-content bg-purple" prop="name">
  311 + <el-input v-model="zhixingList.eventAddrs" placeholder="请输入" :disabled="!zhixingBian" />
  312 + </el-form-item>
  313 + </el-col>
  314 +
  315 + <el-col :span="8">
  316 + <el-form-item label="实际举办时间" class="grid-content bg-purple" prop="event_start_time"
  317 + style="position: relative">
  318 + <el-date-picker style="width: 100%;" v-model="zhixingList.planTime"
  319 + @input="formTime"
  320 + value-format="yyyy-MM-dd HH:mm:ss" :disabled="!zhixingBian" type="datetimerange"
  321 + range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" align="right"
  322 + >
  323 + </el-date-picker>
  324 + </el-form-item>
  325 + </el-col>
  326 + </el-row>
  327 +
  328 + <el-row :gutter="20">
  329 + <el-col :span="8">
  330 + <el-form-item label="氛围主办方" class="grid-content bg-purple" prop="name">
  331 + <el-input v-model="zhixingList.sponsor" placeholder="请输入" :disabled="!zhixingBian" />
  332 + </el-form-item>
  333 + </el-col>
  334 + <el-col :span="8">
  335 + <el-form-item label="氛围实际参与方" class="grid-content bg-purple" prop="name">
  336 + <el-input v-model="zhixingList.participants" placeholder="请输入" :disabled="!zhixingBian" />
  337 + </el-form-item>
  338 + </el-col>
  339 + </el-row>
  340 + </el-form>
  341 + </div>
  342 + </div>
  343 + </div>
  344 + <div style="padding: 0px 20px 20px 20px">
  345 + <div style="border: solid 1px #E5E5E5;border-radius: 5px">
  346 + <div style="border-bottom: 1px solid #E5E5E5;padding: 1px;display: flex">
  347 + <div style="padding: 10px 20px;background-color: #FAFAFA;font-size: 14px;">
  348 + 氛围明细信息
  349 + </div>
  350 + <div style="color: #2d8a58;margin-top: 10px;font-size: 14px;" @click="tianMing">
  351 + 添加明细
  352 + </div>
  353 + </div>
  354 + <!-- 表格-->
  355 + <div style="padding: 20px 20px 20px 20px">
  356 + <el-table :data="tableDa"
  357 + :header-cell-style="{fontSize: '14px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
  358 + style="width: 100%">
  359 + <el-table-column label="序号" width="auto" min-width="5%" prop="date" align="center">
  360 + <template slot-scope="scope">
  361 + {{scope.$index +1}}
  362 + </template>
  363 + </el-table-column>
  364 + <el-table-column label="明细项名称" prop="detailLtemName" width="auto" min-width="22%">
  365 +
  366 + </el-table-column>
  367 + <el-table-column label="预估数量" prop="estimatedQuantity" width="auto" min-width="15%">
  368 +
  369 + </el-table-column>
  370 + <el-table-column label="预估费用" prop="estimatedCost" width="auto" min-width="15%">
  371 + </el-table-column>
  372 + <el-table-column prop="notes" label="备注" width="auto" min-width="15%">
  373 + </el-table-column>
  374 + <el-table-column label="操作" width="auto" min-width="18%" v-if="zhixingBian">
  375 + <template slot-scope="scope">
  376 + <!-- <div class="tableBtn greens">详情</div> -->
  377 + <div class="tableBtn greens" @click="MingDelete(scope.$index,scope.row)">删除</div>
  378 + </template>
  379 + </el-table-column>
  380 + </el-table>
  381 +
  382 + </div>
  383 + </div>
  384 + </div>
  385 + <div style="padding: 20px">
  386 + <div style="border: solid 1px #E5E5E5;border-radius: 5px;padding-bottom: 20px;">
  387 + <div style="border-bottom: 1px solid #E5E5E5;padding: 1px">
  388 + <div style="padding: 10px 20px;background-color: #FAFAFA;font-size: 14px;">
  389 + 实际花费成本
  390 + </div>
  391 + </div>
  392 + <div style="padding: 20px 40px 0px 20px">
  393 + <el-form label-position="top" ref="ruleFormInfo" :model="zhixingList" label-width="120px"
  394 + style="position: relative">
  395 + <el-row :gutter="20">
  396 + <el-col :span="8">
  397 + <el-form-item label="内部人力成本预估" class="grid-content bg-purple device-from" prop="name">
  398 + <el-input v-model="zhixingList.internalLaborCostEstimation" placeholder="请输入"
  399 + :disabled="!zhixingBian" />
  400 + </el-form-item>
  401 + </el-col>
  402 + <el-col :span="8">
  403 + <el-form-item label="外部人力成本预估" class="grid-content bg-purple" prop="name">
  404 + <el-input v-model="zhixingList.externalLaborCostEstimation" placeholder="请输入"
  405 + :disabled="!zhixingBian" />
  406 + </el-form-item>
  407 + </el-col>
  408 +
  409 + <el-col :span="8">
  410 + <el-form-item label="商品成本预估" class="grid-content bg-purple" prop="name">
  411 + <el-input v-model="zhixingList.costEstimationGoods" placeholder="请输入" :disabled="!zhixingBian" />
  412 + </el-form-item>
  413 + </el-col>
  414 + </el-row>
  415 +
  416 + <el-row :gutter="20">
  417 + <el-col :span="8">
  418 + <el-form-item label="设备成本" class="grid-content bg-purple" prop="name">
  419 + <el-input v-model="zhixingList.setCostEstimate" placeholder="请输入" :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.estimatedPromotionalExpenses" placeholder="请输入"
  425 + :disabled="!zhixingBian" />
  426 + </el-form-item>
  427 + </el-col>
  428 + <el-col :span="8">
  429 + <el-form-item label="其他成本" class="grid-content bg-purple" prop="name">
  430 + <el-input v-model="zhixingList.otherNecessaryEstimates" placeholder="请输入"
  431 + :disabled="!zhixingBian" />
  432 + </el-form-item>
  433 + </el-col>
  434 + </el-row>
  435 +
  436 + <el-row :gutter="20">
  437 + <el-col :span="8">
  438 + <el-form-item label="总成本" prop="name" class="grid-content bg-purple">
  439 + <el-input v-model="zhixingList.totalCostEstimation" placeholder="请输入" :disabled="!zhixingBian" />
  440 + </el-form-item>
  441 + </el-col>
  442 + <el-col :span="16">
  443 + <el-form-item label="备注" prop="name" class="grid-content bg-purple">
  444 + <el-input v-model="zhixingList.notes" placeholder="请输入" :disabled="!zhixingBian" />
  445 + </el-form-item>
  446 + </el-col>
  447 + </el-row>
  448 + </el-form>
  449 + </div>
  450 + </div>
  451 + </div>
  452 +
  453 + <div style="padding: 20px">
  454 + <div style="border: solid 1px #E5E5E5;border-radius: 5px;padding-bottom: 20px;">
  455 + <div style="border-bottom: 1px solid #E5E5E5;padding: 1px">
  456 + <div style="padding: 10px 20px;background-color: #FAFAFA;font-size: 14px;">
  457 + 氛围执行效果
  458 + </div>
  459 + </div>
  460 + <div style="padding: 20px 40px 0px 20px">
  461 + <el-form label-position="top" ref="ruleFormInfo" :model="zhixingList" label-width="120px"
  462 + style="position: relative">
  463 + <el-row :gutter="20">
  464 + <el-col :span="8">
  465 + <el-form-item label="吸引流量" class="grid-content bg-purple device-from" prop="name">
  466 + <el-input v-model="zhixingList.expectedAttractTraffic" placeholder="请输入" :disabled="!zhixingBian" />
  467 + </el-form-item>
  468 + </el-col>
  469 + <el-col :span="8">
  470 + <el-form-item label="参与人数" class="grid-content bg-purple" prop="name">
  471 + <el-input v-model="zhixingList.expectedParticipation" placeholder="请输入" :disabled="!zhixingBian" />
  472 + </el-form-item>
  473 + </el-col>
  474 +
  475 + <el-col :span="8">
  476 + <el-form-item label="直接收益" class="grid-content bg-purple" prop="name">
  477 + <el-input v-model="zhixingList.expectedDirectBenefits" placeholder="请输入" :disabled="!zhixingBian" />
  478 + </el-form-item>
  479 + </el-col>
  480 + </el-row>
  481 + <el-row :gutter="20">
  482 + <el-col :span="8">
  483 + <el-form-item label="间接收益" class="grid-content bg-purple" prop="name">
  484 + <el-input v-model="zhixingList.expectedIndirectBenefits" placeholder="请输入"
  485 + :disabled="!zhixingBian" />
  486 + </el-form-item>
  487 + </el-col>
  488 +
  489 + </el-row>
  490 + <el-row :gutter="20">
  491 + <el-col :span="24">
  492 + <el-form-item label="反馈内容" class="grid-content bg-purple" prop="name">
  493 + <el-upload class="upload-demo" ref="upload" :on-remove="handleRemove"
  494 + :action="uploadFileUrl" :on-success="handleUploadSuccess" :file-list="fileData"
  495 + :show-file-list="true" v-if="zhixingBian">
  496 + <el-button style="background-color: #fff;color: #3F9B6A;border: 1px solid #dcdfe6;" class="buttonHover" v-if="fileData.length==0">+点击上传</el-button>
  497 + </el-upload>
  498 + <div v-else>{{zhixingList.feedbackContent}}</div>
  499 + </el-form-item>
  500 + </el-col>
  501 +
  502 + </el-row>
  503 + </el-form>
  504 + </div>
  505 + </div>
  506 + </div>
  507 +
  508 + </div>
  509 + <div v-if="activeName=='fourd'">
  510 + <div style="display:flex;">
  511 + <div style="margin-right:10px;">历史氛围策划方案搜索</div>
  512 + <el-select v-model="lishiList" placeholder="请选择" style="margin:0 20px 20px 20px;" @change="lichange">
  513 + <el-option
  514 + v-for="(item,index) in liData"
  515 + :key="item.id"
  516 + :label="item.operationType"
  517 + :value="index">
  518 + </el-option>
  519 + </el-select>
  520 + <el-button @click="tiaozheng" style="background-color: #3F9B6A;color: #fff" v-if="lishiList!=null" >调整对比
  521 + </el-button>
  522 + </div>
  523 + <div style="width: 100%;" v-if="lishiList!=null" ref="lishiRef">
  524 + <div style="width: 100%;">
  525 + <div style="padding: 10px 20px;">
  526 + <el-descriptions class="margin-top" title="基本信息" :column="2" border :labelStyle="labelStyle" >
  527 + <el-descriptions-item>
  528 + <template slot="label">
  529 + 方案编号
  530 + </template>
  531 + {{lixiang.id}}
  532 + </el-descriptions-item>
  533 + <el-descriptions-item>
  534 + <template slot="label">
  535 + 方案名称
  536 + </template>
  537 +
  538 + <span :style="duibiList.planName == lixiang.planName?'color: red':''" >{{lixiang.planName}}</span>
  539 + </el-descriptions-item>
  540 + <el-descriptions-item>
  541 + <template slot="label">
  542 + 类型
  543 + </template>
  544 +<span :style="duibiList.planType == lixiang.planType?'color: red':''" >{{lixiang.planType}}</span>
  545 + </el-descriptions-item>
  546 + <el-descriptions-item>
  547 + <template slot="label">
  548 + 氛围地点
  549 + </template>
  550 +
  551 + <span :style="duibiList.eventAddrs == lixiang.eventAddrs?'color: red':''" >{{lixiang.eventAddrs}}</span>
  552 + </el-descriptions-item>
  553 + <el-descriptions-item>
  554 + <template slot="label">
  555 + 氛围开始时间
  556 + </template>
  557 +
  558 + <span :style="duibiList.eventStartTime == lixiang.eventStartTime?'color: red':''" >{{lixiang.eventStartTime}}</span>
  559 + </el-descriptions-item>
  560 + <el-descriptions-item>
  561 + <template slot="label">
  562 + 氛围结束时间
  563 + </template>
  564 +
  565 +<span :style="duibiList.eventEndTime == lixiang.eventEndTime?'color: red':''" >{{lixiang.eventEndTime}}</span>
  566 + </el-descriptions-item>
  567 + <el-descriptions-item>
  568 + <template slot="label">
  569 + 氛围主题
  570 + </template>
  571 + <span :style="duibiList.eventTheme == lixiang.eventTheme?'color: red':''" >{{lixiang.eventTheme}}</span>
  572 + </el-descriptions-item>
  573 + <el-descriptions-item>
  574 + <template slot="label">
  575 + 氛围主办方
  576 + </template>
  577 +<span :style="duibiList.sponsor == lixiang.sponsor?'color: red':''" >{{lixiang.sponsor}}</span>
  578 +
  579 + </el-descriptions-item>
  580 + <el-descriptions-item>
  581 + <template slot="label">
  582 + 氛围参与方
  583 + </template>
  584 +
  585 +<span :style="duibiList.participants == lixiang.participants?'color: red':''" >{{lixiang.participants}}</span>
  586 + </el-descriptions-item>
  587 + <el-descriptions-item>
  588 + <template slot="label">
  589 + 氛围主要目的
  590 + </template>
  591 +
  592 +<span :style="duibiList.mainPurpose == lixiang.mainPurpose?'color: red':''" >{{lixiang.mainPurpose}}</span>
  593 + </el-descriptions-item>
  594 + <el-descriptions-item>
  595 + <template slot="label">
  596 + 范围设置
  597 + </template>
  598 +
  599 +<span :style="duibiList.rangeSetting == lixiang.rangeSetting?'color: red':''" >{{lixiang.rangeSetting}}</span>
  600 + </el-descriptions-item>
  601 + <el-descriptions-item>
  602 + <template slot="label">
  603 + 状态
  604 + </template>
  605 +
  606 +{{getStatus(lixiang.state)}}
  607 +
  608 + </el-descriptions-item>
  609 + </el-descriptions>
  610 +
  611 + </div>
  612 + </div>
  613 + <div style="width: 100%;">
  614 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">氛围明细信息</div>
  615 + <div style="padding: 10px 20px;">
  616 + <el-table :data="tableData2"
  617 + :header-cell-style="{fontSize: '14px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
  618 + style="width: 100%;margin: auto;">
  619 + <el-table-column label="序号" min-width="5%" align='center'>
  620 + <template slot-scope="scope">
  621 + <span style="">{{ scope.$index +1}}</span>
  622 + </template>
  623 + </el-table-column>
  624 + <el-table-column label="明细项名称" prop="detailLtemName" min-width="28%">
  625 + </el-table-column>
  626 + <el-table-column label="预估数量" prop="estimatedQuantity" min-width="20%">
  627 +
  628 + </el-table-column>
  629 + <el-table-column label="预估费用" prop="estimatedCost" min-width="20%">
  630 +
  631 + </el-table-column>
  632 + <el-table-column label="备注" prop="notes" min-width="20%">
  633 + </el-table-column>
  634 + </el-table>
  635 + </div>
  636 + </div>
  637 + <div style="width: 100%;">
  638 + <div style="padding:10px 20px;">
  639 + <el-descriptions class="margin-top" title="氛围成本信息" :column="2" border :labelStyle="labelStyle" >
  640 + <el-descriptions-item>
  641 + <template slot="label">
  642 + 内部人力成本预估
  643 + </template>
  644 +
  645 +<span :style="duibiList.internalLaborCostEstimation == lixiang.internalLaborCostEstimation?'color: red':''" >{{lixiang.internalLaborCostEstimation}}</span>
  646 + </el-descriptions-item>
  647 + <el-descriptions-item>
  648 + <template slot="label">
  649 + 外部人力成本预估
  650 + </template>
  651 +
  652 + <span :style="duibiList.externalLaborCostEstimation == lixiang.externalLaborCostEstimation?'color: red':''" >{{lixiang.externalLaborCostEstimation}}</span>
  653 + </el-descriptions-item>
  654 + <el-descriptions-item>
  655 + <template slot="label">
  656 + 商品成本预估
  657 + </template>
  658 +
  659 +<span :style="duibiList.costEstimationGoods == lixiang.costEstimationGoods?'color: red':''" >{{lixiang.costEstimationGoods}}</span>
  660 + </el-descriptions-item>
  661 + <el-descriptions-item>
  662 + <template slot="label">
  663 + 设备成本预估
  664 + </template>
  665 +
  666 +<span :style="duibiList.setCostEstimate == lixiang.setCostEstimate?'color: red':''" >{{lixiang.setCostEstimate}}</span>
  667 + </el-descriptions-item>
  668 + <el-descriptions-item>
  669 + <template slot="label">
  670 + 宣传费用预估
  671 + </template>
  672 +
  673 + <span :style="duibiList.estimatedPromotionalExpenses == lixiang.estimatedPromotionalExpenses?'color: red':''" >{{lixiang.estimatedPromotionalExpenses}}</span>
  674 + </el-descriptions-item>
  675 + <el-descriptions-item>
  676 + <template slot="label">
  677 + 其他必要成本预估
  678 + </template>
  679 +
  680 +<span :style="duibiList.otherNecessaryEstimates == lixiang.otherNecessaryEstimates?'color: red':''" >{{lixiang.otherNecessaryEstimates}}</span>
  681 + </el-descriptions-item>
  682 + <el-descriptions-item>
  683 + <template slot="label">
  684 + 总成本预估
  685 + </template>
  686 +
  687 +<span :style="duibiList.totalCostEstimation == lixiang.totalCostEstimation?'color: red':''" >{{lixiang.totalCostEstimation}}</span>
  688 + </el-descriptions-item>
  689 + <el-descriptions-item>
  690 + <template slot="label">
  691 + 备注
  692 + </template>
  693 +
  694 +<span :style="duibiList.notes == lixiang.notes?'color: red':''" >{{lixiang.notes}}</span>
  695 + </el-descriptions-item>
  696 + </el-descriptions>
  697 + </div>
  698 + </div>
  699 + <div style="width: 100%;">
  700 +
  701 + <div style="padding:10px 20px;">
  702 + <el-descriptions class="margin-top" title="预估效果" :column="2" border :labelStyle="labelStyle" >
  703 + <el-descriptions-item>
  704 + <template slot="label">
  705 + 预计吸引流量
  706 + </template>
  707 +
  708 +<span :style="duibiList.expectedAttractTraffic == lixiang.expectedAttractTraffic?'color: red':''" >{{lixiang.expectedAttractTraffic}}</span>
  709 + </el-descriptions-item>
  710 + <el-descriptions-item>
  711 + <template slot="label">
  712 + 预计参与人数
  713 + </template>
  714 +
  715 +<span :style="duibiList.expectedParticipation == lixiang.expectedParticipation?'color: red':''" >{{lixiang.expectedParticipation}}</span>
  716 + </el-descriptions-item>
  717 + <el-descriptions-item>
  718 + <template slot="label">
  719 + 预计直接收益
  720 + </template>
  721 +
  722 +<span :style="duibiList.expectedDirectBenefits == lixiang.expectedDirectBenefits?'color: red':''" >{{lixiang.expectedDirectBenefits}}</span>
  723 + </el-descriptions-item>
  724 + <el-descriptions-item>
  725 + <template slot="label">
  726 + 预计间接收益
  727 + </template>
  728 +
  729 +<span :style="duibiList.expectedIndirectBenefits == lixiang.expectedIndirectBenefits?'color: red':''" >{{lixiang.expectedIndirectBenefits}}</span>
  730 + </el-descriptions-item>
  731 +
  732 + </el-descriptions>
  733 +
  734 + </div>
  735 + </div>
  736 + <div style="width: 100%;">
  737 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">相关附件信息</div>
  738 + <div style="padding:10px 20px;">
  739 + <el-table :data="tableData6"
  740 + :header-cell-style="{fontSize: '14px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
  741 + style="width: 100%;margin: auto;">
  742 + <el-table-column label="序号" min-width="5%" align='center'>
  743 + <template slot-scope="scope">
  744 + <span style="">{{ scope.$index + 1 }}</span>
  745 + </template>
  746 + </el-table-column>
  747 + <el-table-column label="附件名称" prop="attachmentName" min-width="75%">
  748 + </el-table-column>
  749 + <el-table-column label="操作" min-width="20%">
  750 + <template slot-scope="scope">
  751 + <!-- <div class="tableBtn greens" @click="Down(scope.row)">下载</div> -->
  752 + <a class="tableBtn greens" :href="scope.row.attachmentUrl" target="_blank" download>下载</a>
  753 + </template>
  754 + </el-table-column>
  755 +
  756 + </el-table>
  757 + </div>
  758 + </div>
  759 + <div style="width: 100%;">
  760 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">系统信息</div>
  761 + <div style="padding:10px 20px;">
  762 + <el-table :data="tableData5"
  763 + :header-cell-style="{fontSize: '14px', backgroundColor: '#fff',color:'#000',fontWeight: 'normal'}"
  764 + style="width: 100%;margin: auto;">
  765 + <el-table-column class-name="first-column-bg" label="创建人" prop="name" min-width="15%">
  766 + </el-table-column>
  767 + <el-table-column :label="createUser" prop="eventTheme" min-width="35%">
  768 +
  769 + </el-table-column>
  770 + <el-table-column class-name="first-column-bg" label="创建时间" prop="text" min-width="15%">
  771 +
  772 + </el-table-column>
  773 + <el-table-column :label="createDate" prop="planName" min-width="35%">
  774 +
  775 + </el-table-column>
  776 + </el-table>
  777 + </div>
  778 + </div>
  779 + </div>
  780 + </div>
  781 + <div v-if="activeName=='five'">
  782 + <div style="width: 100%;padding:20px;">
  783 + <wangEditor v-model="zhixingqingk" ref="editor"></wangEditor>
  784 +
  785 + </div>
  786 + </div>
  787 + </div>
  788 + <div style="display: flex;justify-content: flex-end;padding:10px" >
  789 + <el-button @click="ggXin = false" style="background-color: #3F9B6A;color: #fff" >取消
  790 + </el-button>
  791 + <el-button @click="lishidownloadPdf" style="background-color: #3F9B6A;color: #fff" v-if="activeName=='fourd'" >导出
  792 + </el-button>
  793 + <el-button @click="downloadPdf" style="background-color: #3F9B6A;color: #fff" v-if="activeName=='first'" >活动策划调整方案导出
  794 + </el-button>
  795 + <el-button @click="jiucuo" style="background-color: #3F9B6A;color: #fff" v-if="activeName=='first'">氛围策划调整纠错
  796 + </el-button>
  797 + <el-button @click="bianji" style="background-color: #3F9B6A;color: #fff" v-if="zhixingBian && activeName=='second'">保存
  798 + </el-button>
  799 + <el-button @click="fivebian" style="background-color: #3F9B6A;color: #fff" v-if="activeName=='five'">保存
  800 + </el-button>
  801 + </div>
  802 +
  803 +</el-dialog>
  804 +</div>
  805 +</div>
  806 +<!-- 调整对比 -->
  807 +<el-dialog title="调整对比" :visible.sync="tiaozhengShow" custom-class='xiang_css' style="padding: 0;" width="80%" center
  808 + :close-on-click-modal="false" :close-on-press-escape="false" @close="reshData">
  809 + <div>
  810 + <div style="width: 100%;">
  811 + <div style="display: flex;padding:0px 20px 20px 20px; ">
  812 + <div style="width: 150px;height: 80px;" v-if="secondData.coverPoster">
  813 + <img :src="secondData.coverPoster" alt="" style="width: 100%;height: 80px;" />
  814 + </div>
  815 + <div
  816 + style="display: flex;flex-direction: column;justify-content: space-around;padding: 0 10px;font-size: 12px;">
  817 + <span style="margin-bottom: 10px;">{{text}}</span>
  818 + <span>氛围时间:{{tableData1[1].eventTheme}}至{{tableData1[1].planName}}</span>
  819 + <span>氛围地点:{{tableData1[0].planName}}</span>
  820 + </div>
  821 + </div>
  822 + </div>
  823 +
  824 + <div style="display: flex;">
  825 + <div style="width: 50%;">
  826 + <div style="width: 100%;">
  827 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">修改后</div>
  828 + <div style="padding: 10px 20px;">
  829 + <el-table :data="tableData1"
  830 + :header-cell-style="{fontSize: '14px', backgroundColor: '#fff',color:'#000',fontWeight: 'normal'}"
  831 + style="width: 100%;margin: auto;">
  832 + <el-table-column class-name="first-column-bg" label="方案编号" prop="name" min-width="15%">
  833 + </el-table-column>
  834 + <el-table-column :label="id" prop="eventTheme" min-width="35%">
  835 +
  836 + </el-table-column>
  837 + <el-table-column class-name="first-column-bg" label="方案名称" prop="text" min-width="15%">
  838 +
  839 + </el-table-column>
  840 + <el-table-column :label="text" prop="planName" min-width="35%">
  841 +
  842 + </el-table-column>
  843 + </el-table>
  844 +
  845 +
  846 + </div>
  847 + </div>
  848 + <div style="width: 100%;">
  849 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">氛围明细信息</div>
  850 + <div style="padding: 10px 20px;">
  851 + <el-table :data="tableData2"
  852 + :header-cell-style="{fontSize: '14px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
  853 + style="width: 100%;margin: auto;">
  854 + <el-table-column label="序号" min-width="5%" align='center'>
  855 + <template slot-scope="scope">
  856 + <span style="">{{ scope.$index +1}}</span>
  857 + </template>
  858 + </el-table-column>
  859 + <el-table-column label="明细项名称" prop="detailLtemName" min-width="28%">
  860 + </el-table-column>
  861 + <el-table-column label="预估数量" prop="estimatedQuantity" min-width="20%">
  862 +
  863 + </el-table-column>
  864 + <el-table-column label="预估费用" prop="estimatedCost" min-width="20%">
  865 +
  866 + </el-table-column>
  867 + <el-table-column label="备注" prop="notes" min-width="20%">
  868 + </el-table-column>
  869 + </el-table>
  870 + </div>
  871 + </div>
  872 + <div style="width: 100%;">
  873 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">氛围成本信息</div>
  874 + <div style="padding:10px 20px;">
  875 + <el-table :data="tableData3"
  876 + :header-cell-style="{fontSize: '14px', backgroundColor: '#fff',color:'#000',fontWeight: 'normal'}"
  877 + style="width: 100%;margin: auto;">
  878 + <el-table-column class-name="first-column-bg" label="内部人力成本预估" prop="name" min-width="15%">
  879 + </el-table-column>
  880 + <el-table-column :label="internalLaborCostEstimation" prop="eventTheme" min-width="35%">
  881 +
  882 + </el-table-column>
  883 + <el-table-column class-name="first-column-bg" label="外部人力成本预估" prop="text" min-width="15%">
  884 +
  885 + </el-table-column>
  886 + <el-table-column :label="externalLaborCostEstimation" prop="planName" min-width="35%">
  887 +
  888 + </el-table-column>
  889 + </el-table>
  890 + </div>
  891 + </div>
  892 + <div style="width: 100%;">
  893 + <div style="font-size: 14px;padding:10px 20px 0px 20px;">预估效果</div>
  894 + <div style="padding:10px 20px;">
  895 + <el-table :data="tableData4"
  896 + :header-cell-style="{fontSize: '14px', backgroundColor: '#fff',color:'#000',fontWeight: 'normal'}"
  897 + style="width: 100%;margin: auto;">
  898 + <el-table-column class-name="first-column-bg" label="预计吸引流量" prop="name" min-width="15%">
  899 + </el-table-column>
  900 + <el-table-column :label="expectedAttractTraffic" prop="eventTheme" min-width="35%">
  901 +
  902 + </el-table-column>
  903 + <el-table-column class-name="first-column-bg" label="预计参与人数" prop="text" min-width="15%">
  904 +
  905 + </el-table-column>
  906 + <el-table-column :label="expectedParticipation" prop="planName" min-width="35%">
  907 +
  908 + </el-table-column>
  909 + </el-table>
  910 + </el-table-column>
  911 + </div>
  912 + </div>
  913 + <div style="width: 100%;">
  914 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">相关附件信息</div>
  915 + <div style="padding:10px 20px;">
  916 + <el-table :data="tableData6"
  917 + :header-cell-style="{fontSize: '14px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
  918 + style="width: 100%;margin: auto;">
  919 + <el-table-column label="序号" min-width="5%" align='center'>
  920 + <template slot-scope="scope">
  921 + <span style="">{{ scope.$index + 1 }}</span>
  922 + </template>
  923 + </el-table-column>
  924 + <el-table-column label="附件名称" prop="attachmentName" min-width="75%">
  925 + </el-table-column>
  926 + <el-table-column label="操作" min-width="20%">
  927 + <template slot-scope="scope">
  928 + <!-- <div class="tableBtn greens" @click="Down(scope.row)">下载</div> -->
  929 + <a class="tableBtn greens" :href="scope.row.attachmentUrl" target="_blank" download>下载</a>
  930 + </template>
  931 + </el-table-column>
  932 +
  933 + </el-table>
  934 + </div>
  935 + </div>
  936 + <div style="width: 100%;">
  937 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">系统信息</div>
  938 + <div style="padding:10px 20px;">
  939 + <el-table :data="tableData5"
  940 + :header-cell-style="{fontSize: '14px', backgroundColor: '#fff',color:'#000',fontWeight: 'normal'}"
  941 + style="width: 100%;margin: auto;">
  942 + <el-table-column class-name="first-column-bg" label="创建人" prop="name" min-width="15%">
  943 + </el-table-column>
  944 + <el-table-column :label="createUser" prop="eventTheme" min-width="35%">
  945 +
  946 + </el-table-column>
  947 + <el-table-column class-name="first-column-bg" label="创建时间" prop="text" min-width="15%">
  948 +
  949 + </el-table-column>
  950 + <el-table-column :label="createDate" prop="planName" min-width="35%">
  951 +
  952 + </el-table-column>
  953 + </el-table>
  954 + </div>
  955 + </div>
  956 + </div>
  957 + <div style="width: 50%;">
  958 + <div style="width: 100%;">
  959 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">修改前</div>
  960 + <div style="padding: 10px 20px;">
  961 + <el-descriptions class="margin-top" :column="2" border :labelStyle="labelStyleOne" >
  962 + <el-descriptions-item>
  963 + <template slot="label">
  964 + 方案编号
  965 + </template>
  966 + {{lixiang.id}}
  967 + </el-descriptions-item>
  968 + <el-descriptions-item>
  969 + <template slot="label">
  970 + 方案名称
  971 + </template>
  972 + {{lixiang.planName}}
  973 + </el-descriptions-item>
  974 + <el-descriptions-item>
  975 + <template slot="label">
  976 + 类型
  977 + </template>
  978 + {{lixiang.planType}}
  979 + </el-descriptions-item>
  980 + <el-descriptions-item>
  981 + <template slot="label">
  982 + 氛围地点
  983 + </template>
  984 + {{lixiang.eventAddrs}}
  985 + </el-descriptions-item>
  986 + <el-descriptions-item>
  987 + <template slot="label">
  988 + 氛围开始时间
  989 + </template>
  990 + {{lixiang.eventStartTime}}
  991 + </el-descriptions-item>
  992 + <el-descriptions-item>
  993 + <template slot="label">
  994 + 氛围结束时间
  995 + </template>
  996 + {{lixiang.eventEndTime}}
  997 + </el-descriptions-item>
  998 + <el-descriptions-item>
  999 + <template slot="label">
  1000 + 氛围主题
  1001 + </template>
  1002 + {{lixiang.eventTheme}}
  1003 + </el-descriptions-item>
  1004 + <el-descriptions-item>
  1005 + <template slot="label">
  1006 + 氛围主办方
  1007 + </template>
  1008 + {{lixiang.sponsor}}
  1009 + </el-descriptions-item>
  1010 + <el-descriptions-item>
  1011 + <template slot="label">
  1012 + 氛围参与方
  1013 + </template>
  1014 + {{lixiang.participants}}
  1015 + </el-descriptions-item>
  1016 + <el-descriptions-item>
  1017 + <template slot="label">
  1018 + 氛围主要目的
  1019 + </template>
  1020 + {{lixiang.mainPurpose}}
  1021 + </el-descriptions-item>
  1022 + <el-descriptions-item>
  1023 + <template slot="label">
  1024 + 范围设置
  1025 + </template>
  1026 + {{lixiang.rangeSetting}}
  1027 + </el-descriptions-item>
  1028 + <el-descriptions-item>
  1029 + <template slot="label">
  1030 + 状态
  1031 + </template>
  1032 + {{getStatus(lixiang.state)}}
  1033 +
  1034 + </el-descriptions-item>
  1035 + </el-descriptions>
  1036 +
  1037 + </div>
  1038 + </div>
  1039 + <div style="width: 100%;">
  1040 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">氛围明细信息</div>
  1041 + <div style="padding: 10px 20px;">
  1042 + <el-table :data="tableData2"
  1043 + :header-cell-style="{fontSize: '14px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
  1044 + style="width: 100%;margin: auto;">
  1045 + <el-table-column label="序号" min-width="5%" align='center'>
  1046 + <template slot-scope="scope">
  1047 + <span style="">{{ scope.$index +1}}</span>
  1048 + </template>
  1049 + </el-table-column>
  1050 + <el-table-column label="明细项名称" prop="detailLtemName" min-width="28%">
  1051 + </el-table-column>
  1052 + <el-table-column label="预估数量" prop="estimatedQuantity" min-width="20%">
  1053 +
  1054 + </el-table-column>
  1055 + <el-table-column label="预估费用" prop="estimatedCost" min-width="20%">
  1056 +
  1057 + </el-table-column>
  1058 + <el-table-column label="备注" prop="notes" min-width="20%">
  1059 + </el-table-column>
  1060 + </el-table>
  1061 + </div>
  1062 + </div>
  1063 + <div style="width: 100%;">
  1064 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">氛围成本信息</div>
  1065 + <div style="padding:10px 20px;">
  1066 + <el-descriptions class="margin-top" :column="2" border :labelStyle="labelStyleOne" >
  1067 + <el-descriptions-item>
  1068 + <template slot="label">
  1069 + 内部人力成本预估
  1070 + </template>
  1071 + {{lixiang.internalLaborCostEstimation}}
  1072 + </el-descriptions-item>
  1073 + <el-descriptions-item>
  1074 + <template slot="label">
  1075 + 外部人力成本预估
  1076 + </template>
  1077 + {{lixiang.externalLaborCostEstimation}}
  1078 + </el-descriptions-item>
  1079 + <el-descriptions-item>
  1080 + <template slot="label">
  1081 + 商品成本预估
  1082 + </template>
  1083 + {{lixiang.costEstimationGoods}}
  1084 + </el-descriptions-item>
  1085 + <el-descriptions-item>
  1086 + <template slot="label">
  1087 + 设备成本预估
  1088 + </template>
  1089 + {{lixiang.setCostEstimate}}
  1090 + </el-descriptions-item>
  1091 + <el-descriptions-item>
  1092 + <template slot="label">
  1093 + 宣传费用预估
  1094 + </template>
  1095 + {{lixiang.estimatedPromotionalExpenses}}
  1096 + </el-descriptions-item>
  1097 + <el-descriptions-item>
  1098 + <template slot="label">
  1099 + 其他必要成本预估
  1100 + </template>
  1101 + {{lixiang.otherNecessaryEstimates}}
  1102 + </el-descriptions-item>
  1103 + <el-descriptions-item>
  1104 + <template slot="label">
  1105 + 总成本预估
  1106 + </template>
  1107 + {{lixiang.totalCostEstimation}}
  1108 + </el-descriptions-item>
  1109 + <el-descriptions-item>
  1110 + <template slot="label">
  1111 + 备注
  1112 + </template>
  1113 + {{lixiang.notes}}
  1114 + </el-descriptions-item>
  1115 + </el-descriptions>
  1116 + </div>
  1117 + </div>
  1118 + <div style="width: 100%;">
  1119 +<div style="font-size: 14px;padding: 10px 20px 0px 20px;">预估效果</div>
  1120 + <div style="padding:10px 20px;">
  1121 + <el-descriptions class="margin-top" :column="2" border :labelStyle="labelStyleOne" >
  1122 + <el-descriptions-item>
  1123 + <template slot="label">
  1124 + 预计吸引流量
  1125 + </template>
  1126 + {{lixiang.expectedAttractTraffic}}
  1127 + </el-descriptions-item>
  1128 + <el-descriptions-item>
  1129 + <template slot="label">
  1130 + 预计参与人数
  1131 + </template>
  1132 + {{lixiang.expectedParticipation}}
  1133 + </el-descriptions-item>
  1134 + <el-descriptions-item>
  1135 + <template slot="label">
  1136 + 预计直接收益
  1137 + </template>
  1138 + {{lixiang.expectedDirectBenefits}}
  1139 + </el-descriptions-item>
  1140 + <el-descriptions-item>
  1141 + <template slot="label">
  1142 + 预计间接收益
  1143 + </template>
  1144 + {{lixiang.expectedIndirectBenefits}}
  1145 + </el-descriptions-item>
  1146 +
  1147 + </el-descriptions>
  1148 +
  1149 + </div>
  1150 + </div>
  1151 + <div style="width: 100%;">
  1152 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">相关附件信息</div>
  1153 + <div style="padding:10px 20px;">
  1154 + <el-table :data="tableData6"
  1155 + :header-cell-style="{fontSize: '14px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
  1156 + style="width: 100%;margin: auto;">
  1157 + <el-table-column label="序号" min-width="5%" align='center'>
  1158 + <template slot-scope="scope">
  1159 + <span style="">{{ scope.$index + 1 }}</span>
  1160 + </template>
  1161 + </el-table-column>
  1162 + <el-table-column label="附件名称" prop="attachmentName" min-width="75%">
  1163 + </el-table-column>
  1164 + <el-table-column label="操作" min-width="20%">
  1165 + <template slot-scope="scope">
  1166 + <!-- <div class="tableBtn greens" @click="Down(scope.row)">下载</div> -->
  1167 + <a class="tableBtn greens" :href="scope.row.attachmentUrl" target="_blank" download>下载</a>
  1168 + </template>
  1169 + </el-table-column>
  1170 +
  1171 + </el-table>
  1172 + </div>
  1173 + </div>
  1174 + <div style="width: 100%;">
  1175 + <div style="font-size: 14px;padding: 10px 20px 0px 20px;">系统信息</div>
  1176 + <div style="padding:10px 20px;">
  1177 + <el-table :data="tableData5"
  1178 + :header-cell-style="{fontSize: '14px', backgroundColor: '#fff',color:'#000',fontWeight: 'normal'}"
  1179 + style="width: 100%;margin: auto;">
  1180 + <el-table-column class-name="first-column-bg" label="创建人" prop="name" min-width="15%">
  1181 + </el-table-column>
  1182 + <el-table-column :label="createUser" prop="eventTheme" min-width="35%">
  1183 +
  1184 + </el-table-column>
  1185 + <el-table-column class-name="first-column-bg" label="创建时间" prop="text" min-width="15%">
  1186 +
  1187 + </el-table-column>
  1188 + <el-table-column :label="createDate" prop="planName" min-width="35%">
  1189 +
  1190 + </el-table-column>
  1191 + </el-table>
  1192 + </div>
  1193 + </div>
  1194 + </div>
  1195 + </div>
  1196 +
  1197 +
  1198 + </div>
  1199 +</el-dialog>
  1200 +
  1201 +<el-dialog title="新增明细" :visible.sync="addMing" custom-class='dialog_css' style="padding: 0;" width="50%" append-to-body
  1202 + center :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false">
  1203 + <div style="padding: 15px;width:100%">
  1204 + <div style="">
  1205 + <div style="padding: 15px;">
  1206 + <el-form label-position="right" ref="ruleFormInfo" :model="mingFrom" label-width="140px"
  1207 + style="position: relative">
  1208 + <el-form-item label="明细项名称" class="grid-content bg-purple device-from" prop="planName">
  1209 + <el-input v-model="mingFrom.detailLtemName" placeholder="请输入" />
  1210 + </el-form-item>
  1211 + <el-form-item label="预估数量" class="grid-content bg-purple" prop=" planType">
  1212 + <el-input v-model="mingFrom.estimatedQuantity" placeholder="请输入" />
  1213 + </el-form-item>
  1214 +
  1215 + <el-form-item label="预估费用" class="grid-content bg-purple" prop="eventAddrs">
  1216 + <el-input v-model="mingFrom.estimatedCost" placeholder="请输入" />
  1217 + </el-form-item>
  1218 + <el-form-item label="备注" class="grid-content bg-purple device-from" prop="planName">
  1219 + <el-input v-model="mingFrom.notes" placeholder="请输入" />
  1220 + </el-form-item>
  1221 + </el-form>
  1222 + </div>
  1223 + </div>
  1224 +
  1225 + </div>
  1226 + <div style="display: flex;justify-content: flex-end;padding: 10px 20px 10px 0">
  1227 +
  1228 + <el-button plain @click="minSev" style="background-color: #3F9B6A;color: #fff;">保存
  1229 + </el-button>
  1230 + <el-button plain @click="addMing=false" style="background-color: #3F9B6A;color: #fff;">取消
  1231 + </el-button>
  1232 + </div>
  1233 +</el-dialog>
  1234 +<!-- 效果对比 -->
  1235 +<el-dialog :visible.sync="xiaoDui" custom-class='dialog_css' style="padding: 0;" width="60%" center
  1236 + :close-on-click-modal="false" :close-on-press-escape="false">
  1237 + <div style="padding: 0 50px;display:flex;justify-content: space-evenly;">
  1238 + <div style="width:30%">
  1239 + <div style="display: flex;">
  1240 + <div style="margin-right: 10px;padding: 10px 0;">
  1241 + <div>调整前方案</div>
  1242 + <div style="font-size: 22px;color: #3F9B6A;font-weight: 600;margin: 10px 0;">{{xiaoduiObj.biliOne}}</div>
  1243 + <div style="font-size: 16px;color: #3F9B6A;font-weight: 600;">投入产出比</div>
  1244 + </div>
  1245 + <el-progress type="circle" :percentage="xiaoduiObj.bilis" :show-text="false" :width="100">
  1246 + </el-progress>
  1247 + </div>
  1248 + <div style="padding:30px 0">计划任务(完成度)</div>
  1249 + <div class="jindutiao">
  1250 + <div style="margin-right:10px;width:56px">直接收入</div>
  1251 + <!-- <el-progress :text-inside="true" :stroke-width="26" :format="format(xiaoduiObj.shou)" :percentage="xiaoduiObj.shouBi"></el-progress> -->
  1252 + <el-progress
  1253 + style="width: 150px;"
  1254 + :text-inside="true"
  1255 + :stroke-width="20"
  1256 + :percentage="baifenbi(duibiOne.expectedDirectBenefits)"
  1257 + status="success"
  1258 + :format="() => customFormat(duibiOne.expectedDirectBenefits)"
  1259 + ></el-progress>
  1260 + </div>
  1261 + <div class="jindutiao">
  1262 + <div style="margin-right:10px;width:56px">间接收入</div>
  1263 + <!-- <el-progress :text-inside="true" :stroke-width="26" :format="format(xiaoduiObj.shou)" :percentage="xiaoduiObj.shouBi"></el-progress> -->
  1264 + <el-progress
  1265 + style="width: 150px;"
  1266 + :text-inside="true"
  1267 + :stroke-width="20"
  1268 + :percentage="baifenbi(duibiOne.expectedIndirectBenefits)"
  1269 + status="success"
  1270 + :format="() => customFormat(duibiOne.expectedIndirectBenefits)"
  1271 + ></el-progress>
  1272 + </div>
  1273 + <div class="jindutiao">
  1274 + <div style="margin-right:10px;width:56px">人力</div>
  1275 + <!-- <el-progress :text-inside="true" :stroke-width="26" :format="format(xiaoduiObj.shou)" :percentage="xiaoduiObj.shouBi"></el-progress> -->
  1276 + <el-progress
  1277 + style="width: 150px;"
  1278 + :text-inside="true"
  1279 + :stroke-width="20"
  1280 + :percentage="baifenbi(duibiOne.internalLaborCostEstimation)"
  1281 + status="success"
  1282 + :format="() => customFormat(duibiOne.internalLaborCostEstimation)"
  1283 + ></el-progress>
  1284 + </div>
  1285 + <div class="jindutiao">
  1286 + <div style="margin-right:10px;width:56px">设备</div>
  1287 + <!-- <el-progress :text-inside="true" :stroke-width="26" :format="format(xiaoduiObj.shou)" :percentage="xiaoduiObj.shouBi"></el-progress> -->
  1288 + <el-progress
  1289 + style="width: 150px;"
  1290 + :text-inside="true"
  1291 + :stroke-width="20"
  1292 + :percentage="baifenbi(duibiOne.setCostEstimate)"
  1293 + status="success"
  1294 + :format="() => customFormat(duibiOne.setCostEstimate)"
  1295 + ></el-progress>
  1296 + </div>
  1297 + <div class="jindutiao">
  1298 + <div style="margin-right:10px;width:56px">宣传</div>
  1299 + <!-- <el-progress :text-inside="true" :stroke-width="26" :format="format(xiaoduiObj.shou)" :percentage="xiaoduiObj.shouBi"></el-progress> -->
  1300 + <el-progress
  1301 + style="width: 150px;"
  1302 + :text-inside="true"
  1303 + :stroke-width="20"
  1304 + :percentage="baifenbi(duibiOne.estimatedPromotionalExpenses)"
  1305 + status="success"
  1306 + :format="() => customFormat(duibiOne.estimatedPromotionalExpenses)"
  1307 + ></el-progress>
  1308 + </div>
  1309 + <div class="jindutiao">
  1310 + <div style="margin-right:10px;width:56px">其他</div>
  1311 + <!-- <el-progress :text-inside="true" :stroke-width="26" :format="format(xiaoduiObj.shou)" :percentage="xiaoduiObj.shouBi"></el-progress> -->
  1312 + <el-progress
  1313 + style="width: 150px;"
  1314 + :text-inside="true"
  1315 + :stroke-width="20"
  1316 + :percentage="baifenbi(duibiOne.otherNecessaryEstimates)"
  1317 + status="success"
  1318 + :format="() => customFormat(duibiOne.otherNecessaryEstimates)"
  1319 + ></el-progress>
  1320 + </div>
  1321 + </div>
  1322 + <div style="width:30%">
  1323 + <div style="display: flex;">
  1324 + <div style="margin-right: 10px;padding: 10px 0;">
  1325 + <div>调整后方案</div>
  1326 + <div style="font-size: 22px;color: #3F9B6A;font-weight: 600;margin: 10px 0;">{{xiaoduiObj.biliTwo}}</div>
  1327 + <div style="font-size: 16px;color: #3F9B6A;font-weight: 600;">投入产出比</div>
  1328 + </div>
  1329 + <el-progress type="circle" :percentage="xiaoduiObj.biliT" :show-text="false" :width="100">
  1330 + </el-progress>
  1331 + </div>
  1332 + <div style="padding:30px 0">计划任务(完成度)</div>
  1333 + <div class="jindutiao">
  1334 + <div style="margin-right:10px;width:56px">直接收入</div>
  1335 + <!-- <el-progress :text-inside="true" :stroke-width="26" :format="format(xiaoduiObj.shou)" :percentage="xiaoduiObj.shouBi"></el-progress> -->
  1336 + <el-progress
  1337 + style="width: 150px;"
  1338 + :text-inside="true"
  1339 + :stroke-width="20"
  1340 + :percentage="baifenbi(duibiTwo.expectedDirectBenefits==undefined?'':duibiTwo.expectedDirectBenefits)"
  1341 + status="success"
  1342 + :format="() => customFormat(duibiTwo.expectedDirectBenefits==undefined?'':duibiTwo.expectedDirectBenefits)"
  1343 + ></el-progress>
  1344 + </div>
  1345 + <div class="jindutiao">
  1346 + <div style="margin-right:10px;width:56px">间接收入</div>
  1347 + <!-- <el-progress :text-inside="true" :stroke-width="26" :format="format(xiaoduiObj.shou)" :percentage="xiaoduiObj.shouBi"></el-progress> -->
  1348 + <el-progress
  1349 + style="width: 150px;"
  1350 + :text-inside="true"
  1351 + :stroke-width="20"
  1352 + :percentage="baifenbi(duibiTwo.expectedIndirectBenefits==undefined?'':duibiTwo.expectedIndirectBenefits)"
  1353 + status="success"
  1354 + :format="() => customFormat(duibiTwo.expectedIndirectBenefits==undefined?'':duibiTwo.expectedIndirectBenefits)"
  1355 + ></el-progress>
  1356 + </div>
  1357 + <div class="jindutiao">
  1358 + <div style="margin-right:10px;width:56px">人力</div>
  1359 + <!-- <el-progress :text-inside="true" :stroke-width="26" :format="format(xiaoduiObj.shou)" :percentage="xiaoduiObj.shouBi"></el-progress> -->
  1360 + <el-progress
  1361 + style="width: 150px;"
  1362 + :text-inside="true"
  1363 + :stroke-width="20"
  1364 + :percentage="baifenbi(duibiTwo.internalLaborCostEstimation==undefined?'':duibiTwo.internalLaborCostEstimation)"
  1365 + status="success"
  1366 + :format="() => customFormat(duibiTwo.internalLaborCostEstimation==undefined?'':duibiTwo.internalLaborCostEstimation)"
  1367 + ></el-progress>
  1368 + </div>
  1369 + <div class="jindutiao">
  1370 + <div style="margin-right:10px;width:56px">设备</div>
  1371 + <!-- <el-progress :text-inside="true" :stroke-width="26" :format="format(xiaoduiObj.shou)" :percentage="xiaoduiObj.shouBi"></el-progress> -->
  1372 + <el-progress
  1373 + style="width: 150px;"
  1374 + :text-inside="true"
  1375 + :stroke-width="20"
  1376 + :percentage="baifenbi(duibiTwo.setCostEstimate==undefined?'':duibiTwo.setCostEstimate)"
  1377 + status="success"
  1378 + :format="() => customFormat(duibiTwo.setCostEstimate==undefined?'':duibiTwo.setCostEstimate)"
  1379 + ></el-progress>
  1380 + </div>
  1381 + <div class="jindutiao">
  1382 + <div style="margin-right:10px;width:56px">宣传</div>
  1383 + <!-- <el-progress :text-inside="true" :stroke-width="26" :format="format(xiaoduiObj.shou)" :percentage="xiaoduiObj.shouBi"></el-progress> -->
  1384 + <el-progress
  1385 + style="width: 150px;"
  1386 + :text-inside="true"
  1387 + :stroke-width="20"
  1388 + :percentage="baifenbi(duibiTwo.estimatedPromotionalExpenses==undefined?'':duibiTwo.estimatedPromotionalExpenses)"
  1389 + status="success"
  1390 + :format="() => customFormat(duibiTwo.estimatedPromotionalExpenses==undefined?'':duibiTwo.estimatedPromotionalExpenses)"
  1391 + ></el-progress>
  1392 + </div>
  1393 + <div class="jindutiao">
  1394 + <div style="margin-right:10px;width:56px">其他</div>
  1395 + <el-progress
  1396 + style="width: 150px;"
  1397 + :text-inside="true"
  1398 + :stroke-width="20"
  1399 + :percentage="baifenbi(duibiTwo.otherNecessaryEstimates==undefined?'':duibiTwo.otherNecessaryEstimates)"
  1400 + status="success"
  1401 + :format="() => customFormat(duibiTwo.otherNecessaryEstimates==undefined?'':duibiTwo.otherNecessaryEstimates)"
  1402 + ></el-progress>
  1403 + </div>
  1404 + </div>
  1405 + </div>
  1406 +</el-dialog>
  1407 +
  1408 +
  1409 + <!-- 复制 -->
  1410 + <el-dialog :visible.sync="copyShow" custom-class='xiaoguo_css' style="padding: 0;" width="50%"
  1411 + center :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false">
  1412 + <div style="padding:15px;background-color:#F9F9F9;font-size:14px;border:1px solid #ECECEC;margin-bottom:20px;display: flex;justify-content: space-between;">
  1413 + <div>复制页</div>
  1414 + </div>
  1415 + <div style="padding:0 36px;">
  1416 + <el-form label-position="right" :model="copy" label-width="120px"
  1417 + style="position: relative">
  1418 + <el-form-item label="新方案名称" class="grid-content bg-purple device-from" prop="planName">
  1419 + <el-input v-model="copy.planName" placeholder="请输入" />
  1420 + </el-form-item>
  1421 + </el-form>
  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="copyClose" >返回</el-button>
  1428 + <el-button plain @click="copysev" style="background-color: #3F9B6A;color: #fff;" >保存
  1429 + </el-button>
  1430 + </div>
  1431 + </el-dialog>
  1432 +<el-dialog :visible.sync="searchShow" custom-class='xiaoguo_css' style="padding: 0;" width="50%"
  1433 + center :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false">
  1434 + <div style="padding:15px;background-color:#F9F9F9;font-size:14px;border:1px solid #ECECEC;margin-bottom:20px;display: flex;justify-content: space-between;">
  1435 + <div>搜索关键词配置</div>
  1436 + </div>
  1437 + <div style="padding:0 36px;">
  1438 + <el-checkbox v-model="searPei.name">方案名称</el-checkbox>
  1439 + <!-- <el-checkbox v-model="searPei.lei">方案类型</el-checkbox> -->
  1440 + <el-checkbox v-model="searPei.staut">审核状态</el-checkbox>
  1441 + </div>
  1442 +
  1443 + <div style="display: flex;justify-content: flex-end;padding: 10px 20px 10px 0">
  1444 + <el-button class="buttonHover"
  1445 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"
  1446 + @click="searchQuit" >返回</el-button>
  1447 + <el-button plain @click="searchShow=false" style="background-color: #3F9B6A;color: #fff;" >保存
  1448 + </el-button>
  1449 + </div>
  1450 + </el-dialog>
  1451 +
  1452 +<el-dialog :visible.sync="jiucuoShow" custom-class='bian_css' style="padding: 0;" width="50%"
  1453 + :close-on-press-escape="false" center :close-on-click-modal="false" class="dialog_css_Xq" :show-close="false">
  1454 + <div style="padding:20px;">
  1455 + <div style="font-size: 14px;padding-bottom: 20px;color: #000;">氛围策划调整纠错</div>
  1456 + <wangEditor v-model="jiuMsg" ref="editor"></wangEditor>
  1457 + <div style="padding-top:20px;display:flex;justify-content: flex-end;">
  1458 + <el-button style="background-color: #3F9B6A;color: #fff"
  1459 + @click="jiuCheck">确定</el-button>
  1460 + <el-button @click="jiucuoShow = false" style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;" class="buttonHover">取消</el-button>
  1461 +
  1462 + </div>
  1463 +
  1464 + </div>
  1465 +
  1466 + </el-dialog>
  1467 +<actbians :showBian="actbianMsg" @BianchildClose='BianchildClose'></actbians>
  1468 +</div>
  1469 +</template>
  1470 +
  1471 +<script>
  1472 + import {
  1473 + deleteById,
  1474 + queryByPage,
  1475 + xiangByPage,
  1476 + fujiaTable,
  1477 + mingTable,
  1478 + danqueryById,
  1479 + xiangedit,
  1480 + actEdit,
  1481 + actAdd,
  1482 + actPage,
  1483 + MingAdd,
  1484 + MingDel,
  1485 + cereGet,
  1486 + cereAdd,
  1487 + cereEdit,
  1488 + cereDel,
  1489 + copy,
  1490 + excelQueryByPage,
  1491 + excelAdd,
  1492 + effectEvaluation,
  1493 + lishiDeta
  1494 + } from '../../api/activityBz'
  1495 + import actbians from "./atmosphereBian"
  1496 + import * as echarts from 'echarts'
  1497 + import Vue from 'vue'
  1498 + import html2canvas from 'html2canvas'
  1499 + import jsPDF from 'jspdf'
  1500 + import wangEditor from "@/components/editor/index";
  1501 + import {
  1502 + uploadUrl
  1503 + } from '@/utils/request'
  1504 + export default {
  1505 + components: {
  1506 + actbians,
  1507 + wangEditor
  1508 + },
  1509 + data() {
  1510 + return {
  1511 + uploadFileUrl: uploadUrl, // 请求地址
  1512 + daoData:[],
  1513 + actbianMsg: {
  1514 + acBian: '', //编辑数据
  1515 + bianshow: false, //编辑页
  1516 + },
  1517 + fileData:[],
  1518 + fenlei: [],
  1519 + secondData: {},
  1520 +
  1521 + formSear:{
  1522 + planName: '',
  1523 + state:null,
  1524 + dataOwnership: '2',
  1525 + pageNumber: 1,
  1526 + pageSize: 10,
  1527 + isDraft:0
  1528 + },
  1529 +
  1530 + planFen: '',
  1531 + eventTheme: '',
  1532 + currentPage: 1,
  1533 + total: 100,
  1534 + flag: false,
  1535 + pageSize: 10,
  1536 + ggXin: false,
  1537 + radio: '1',
  1538 + shan: '',
  1539 + activeName: 'first',
  1540 + rules: {
  1541 + coDe: [{
  1542 + required: true,
  1543 + message: '请输入氛围名称',
  1544 + trigger: 'blur'
  1545 + },
  1546 +
  1547 + ],
  1548 + },
  1549 + formInline: {
  1550 + merchantName: '', // 商家名称
  1551 + storeId: '', // 编码
  1552 + contacts: '', // 联系人
  1553 + businessEntity: '', //经营主体
  1554 + page: 1, // 当前页
  1555 + pageSize: 10 // 每页记录数
  1556 + },
  1557 + tableData: [],
  1558 + id: '',
  1559 + text: '123',
  1560 + tableData1: [{
  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 + id: 0,
  1574 + name: '氛围主题',
  1575 + planName: '',
  1576 + text: '氛围主办方',
  1577 + eventTheme: ''
  1578 + }, {
  1579 + id: 0,
  1580 + name: '氛围参与方',
  1581 + planName: '',
  1582 + text: '氛围主要目的',
  1583 + eventTheme: ''
  1584 + }, {
  1585 + id: 0,
  1586 + name: '范围设置',
  1587 + planName: '',
  1588 + text: '状态',
  1589 + eventTheme: ''
  1590 + }],
  1591 + internalLaborCostEstimation: '',
  1592 + externalLaborCostEstimation: '',
  1593 + tableData3: [{
  1594 + id: 0,
  1595 + name: '商品成本预估',
  1596 + planName: '',
  1597 + text: '设备成本预估',
  1598 + eventTheme: ''
  1599 + }, {
  1600 + id: 0,
  1601 + name: '宣传费用预估',
  1602 + planName: '',
  1603 + text: '其他必要成本预估',
  1604 + eventTheme: ''
  1605 + }, {
  1606 + id: 0,
  1607 + name: '总成本预估',
  1608 + planName: '',
  1609 + text: '备注',
  1610 + eventTheme: ''
  1611 + }],
  1612 + expectedAttractTraffic: '',
  1613 + expectedParticipation: '',
  1614 + tableData4: [{
  1615 + id: 0,
  1616 + name: '预计直接收益',
  1617 + planName: '',
  1618 + text: '预计间接收益',
  1619 + eventTheme: '-'
  1620 + }],
  1621 + createUser: '',
  1622 + createDate: '',
  1623 + tableData5: [{
  1624 + id: 0,
  1625 + name: '更新人',
  1626 + planName: '',
  1627 + text: '更新时间',
  1628 + eventTheme: '-'
  1629 + }],
  1630 + tableData2: [], //基本信息明细列表
  1631 + tableData6: [], //基本信息附件列表
  1632 + addMing: false, //执行效果添加明细
  1633 + zhixingBian: false, //判断是否编辑执行效果
  1634 + tableDa: [], //执行效果明细列表
  1635 + zhiXing: true, //判断是否是新增的执行效果
  1636 + mingFrom: {
  1637 + detailLtemName: '',
  1638 + estimatedQuantity: '',
  1639 + estimatedCost: '',
  1640 + notes: ''
  1641 + },
  1642 + planTime:[],
  1643 + zhixingList: {
  1644 + planTime: [],
  1645 + planName: '', //氛围名称
  1646 + eventAddrs: '', //实际举办地点
  1647 + eventStartTime: 0, //实际开始时间
  1648 + eventEndTime: 0, //实际结束时间
  1649 + sponsor: '', //实际主办方
  1650 + participants: '', //实际参与方
  1651 + internalLaborCostEstimation: '', //内部人工成本
  1652 + externalLaborCostEstimation: '', //外部人工成本
  1653 + costEstimationGoods: '', //商品成本
  1654 + setCostEstimate: '', //设备成本
  1655 + estimatedPromotionalExpenses: '', //宣传费用预估
  1656 + otherNecessaryEstimates: '', //其他成本预估
  1657 + totalCostEstimation: '', //总成本预估
  1658 + notes: '', //备注
  1659 + expectedAttractTraffic: '', //吸引流量
  1660 + expectedParticipation: '', //参与人数
  1661 + expectedDirectBenefits: '', //直接收益
  1662 + expectedIndirectBenefits: '', //间接收益
  1663 + createDate: '', //创建时间
  1664 + feedbackContent:''
  1665 + }, //执行效果列表
  1666 + pageindex: {
  1667 + pageNumber: 1,
  1668 + pageSize: 10,
  1669 + dataOwnership: '2',
  1670 + isDraft:0
  1671 + },
  1672 + multipleSelection: [],
  1673 + options: [],
  1674 + xinADD:{
  1675 + classificationName:'',
  1676 + parentId:'',
  1677 + classificationType:'0'
  1678 + },
  1679 + value: '',
  1680 + xiaoDui: false, //效果对比
  1681 + dataList:[],
  1682 +
  1683 + fenleiDelId:null,//删除的分类ID
  1684 + xiaoduiObj:{
  1685 + biliOne:'0%',
  1686 + bilis:0,
  1687 + biliTwo:'0%',
  1688 + biliT:0
  1689 + },//效果对比数据
  1690 + fujiLei:'',
  1691 + defaultProps:{
  1692 + children: 'children',
  1693 + label: 'classificationName'
  1694 + },
  1695 +
  1696 + copy:{
  1697 + planName:''
  1698 + },
  1699 + copyShow:false,
  1700 + duibiOne:{},
  1701 + duibiTwo:{},
  1702 + searchShow:false,
  1703 + searPei:{
  1704 + name:true,
  1705 + lei:false,
  1706 + staut:false,
  1707 + },
  1708 + lishiList:null,
  1709 + labelStyle:{
  1710 + width:'197px',
  1711 + height:'42px',
  1712 + },
  1713 + labelStyleOne:{
  1714 + width:'110px',
  1715 + height:'42px',
  1716 + color:'#000',
  1717 + },
  1718 + lidata:[],
  1719 + lixiang:{},
  1720 + duibiList:{},
  1721 + tiaozhengShow:false,
  1722 + jiucuoShow:false,
  1723 + jiuMsg:'',
  1724 + editId:'',
  1725 + zhixingqingk:''
  1726 + }
  1727 + },
  1728 + created() {
  1729 + this.getAll()
  1730 +
  1731 + },
  1732 + computed: {
  1733 +
  1734 + },
  1735 + methods: {
  1736 + getStatus(state) {
  1737 + switch (state) {
  1738 + case '':
  1739 + return '待提交';
  1740 + case '1':
  1741 + return '待审核';
  1742 + case '2':
  1743 + return '业务部审核';
  1744 + case '3':
  1745 + return '品牌审核';
  1746 + case '4':
  1747 + return '审核通过';
  1748 + case '5':
  1749 + return '审核不通过'
  1750 + }
  1751 + },
  1752 + //查询全数据
  1753 + async getAll() {
  1754 + const res = await queryByPage(this.pageindex)
  1755 + this.tableData = res.data.content
  1756 + this.total = res.data.content.length
  1757 +
  1758 + },
  1759 + //删除记录按钮
  1760 + handleDelete(val) {
  1761 + if (this.multipleSelection.length == 1) {
  1762 +
  1763 + const h = this.$createElement;
  1764 + this.$msgbox({
  1765 + title: '消息',
  1766 + message: h('p', null, [
  1767 + h('span', null, '是否删除 '),
  1768 + ]),
  1769 + showCancelButton: true,
  1770 + showClose: false,
  1771 + confirmButtonText: '确定',
  1772 + cancelButtonText: '取消',
  1773 + customClass: 'oe-dialog-btn',
  1774 + beforeClose: (action, instance, done) => {
  1775 + if (action === 'confirm') {
  1776 + deleteById({
  1777 + id: this.multipleSelection[0].id
  1778 + }).then(res => {
  1779 + this.getAll()
  1780 + done();
  1781 + })
  1782 + } else {
  1783 + done();
  1784 + }
  1785 + }
  1786 + })
  1787 + } else {
  1788 + this.$message({
  1789 + message: '请选择一个文件删除',
  1790 + customClass: 'custom-message',
  1791 + offset: 100
  1792 + })
  1793 + }
  1794 + },
  1795 + actDelete(item){
  1796 + const h = this.$createElement;
  1797 + this.$msgbox({
  1798 + title: '消息',
  1799 + message: h('p', null, [
  1800 + h('span', null, '是否删除 '),
  1801 + ]),
  1802 + showCancelButton: true,
  1803 + showClose: false,
  1804 + confirmButtonText: '确定',
  1805 + cancelButtonText: '取消',
  1806 + customClass: 'oe-dialog-btn',
  1807 + beforeClose: (action, instance, done) => {
  1808 + if (action === 'confirm') {
  1809 + deleteById({
  1810 + id: item.id
  1811 + }).then(res => {
  1812 + this.getAll()
  1813 + done();
  1814 + })
  1815 + } else {
  1816 + done();
  1817 + }
  1818 + }
  1819 + })
  1820 +
  1821 + },
  1822 + //查询
  1823 + async onSubmit() {
  1824 + const res = await danqueryById(this.formSear)
  1825 + this.tableData = res.data.content
  1826 + },
  1827 + //重置按钮
  1828 + resetting() {
  1829 + this.formSear ={
  1830 + planName: '',
  1831 + state:null,
  1832 + dataOwnership: '2',
  1833 + pageNumber: 1,
  1834 + pageSize: 10,
  1835 + isDraft:0
  1836 +
  1837 + }
  1838 + this.getAll()
  1839 + },
  1840 + //编辑页
  1841 + BianchildClose(msg) {
  1842 + this.actbianMsg.bianshow = msg
  1843 + this.getAll()
  1844 + },
  1845 + actBian(item) {
  1846 + this.actbianMsg.acBian = item
  1847 + this.actbianMsg.bianshow = true
  1848 + },
  1849 + //详情点击
  1850 + handleEditForm(item,val) {
  1851 + this.zhixingBian = flag
  1852 + if(val == 1){
  1853 + this.activeName = 'first'
  1854 + }else if(val == 2 || flag){
  1855 +
  1856 + this.activeName = 'second'
  1857 + }else if(val == 3){
  1858 +
  1859 + this.activeName = 'fourd'
  1860 + }
  1861 + this.liData = []
  1862 + this.lixiang = {}
  1863 + this.lishiList=null
  1864 + this.fileData = []
  1865 + this.zhixingList = {
  1866 + planTime:[],
  1867 + planName: '', //氛围名称
  1868 + eventAddrs: '', //实际举办地点
  1869 + eventStartTime: 0, //实际开始时间
  1870 + eventEndTime: 0, //实际结束时间
  1871 + sponsor: '', //实际主办方
  1872 + participants: '', //实际参与方
  1873 + internalLaborCostEstimation: '', //内部人工成本
  1874 + externalLaborCostEstimation: '', //外部人工成本
  1875 + costEstimationGoods: '', //商品成本
  1876 + setCostEstimate: '', //设备成本
  1877 + estimatedPromotionalExpenses: '', //宣传费用预估
  1878 + otherNecessaryEstimates: '', //其他成本预估
  1879 + totalCostEstimation: '', //总成本预估
  1880 + notes: '', //备注
  1881 + expectedAttractTraffic: '', //吸引流量
  1882 + expectedParticipation: '', //参与人数
  1883 + expectedDirectBenefits: '', //直接收益
  1884 + expectedIndirectBenefits: '', //间接收益
  1885 + createDate: '', //创建时间
  1886 + feedbackContent:''
  1887 + } //执行效果列表
  1888 + actPage({
  1889 + detailsId: item.id,
  1890 + pageNumber: 1,
  1891 + pageSize: 10,
  1892 + }).then(res => {
  1893 + console.log(res.data.content)
  1894 + if (res.data.content.length == 0) {
  1895 + this.zhiXing = true
  1896 + } else {
  1897 + mingTable({
  1898 + detailsId: res.data.content[0].id,
  1899 + pageNumber: 1,
  1900 + pageSize: 10,
  1901 + }).then(res => {
  1902 + this.tableDa = res.data.content
  1903 + })
  1904 + this.zhiXing = false
  1905 + this.zhixingList = res.data.content[0]
  1906 + if((typeof this.zhixingList.eventStartTime) == 'object' || (typeof this.zhixingList.eventEndTime) == 'object' ){
  1907 + this.zhixingList.planTime = []
  1908 + }else{
  1909 + console.log(typeof this.zhixingList.eventStartTime)
  1910 + this.zhixingList.planTime = [ this.zhixingList.eventStartTime, this.zhixingList.eventEndTime]
  1911 + }
  1912 +
  1913 + }
  1914 + })
  1915 + let that = this
  1916 + this.planTime = [item.eventStartTime, item.eventEndTime]
  1917 + fujiaTable({
  1918 + detailsId: item.id,
  1919 + pageNumber: 1,
  1920 + pageSize: 10,
  1921 + }).then(res => {
  1922 + this.tableData6 = res.data.content
  1923 + })
  1924 + mingTable({
  1925 + detailsId: item.id,
  1926 + pageNumber: 1,
  1927 + pageSize: 10,
  1928 + }).then(res => {
  1929 + this.tableData2 = res.data.content
  1930 + })
  1931 +
  1932 +
  1933 + danqueryById({
  1934 + id: item.id,
  1935 + dataOwnership: '2',
  1936 + pageNumber: 1,
  1937 + pageSize: 10,
  1938 + }).then(res => {
  1939 + this.secondData = res.data.content[0]
  1940 + //基本信息
  1941 + // that.id=res.data.content[0].id
  1942 + that.text = res.data.content[0].planName
  1943 + that.tableData1[0].eventTheme = res.data.content[0].planType
  1944 + that.tableData1[0].planName = res.data.content[0].eventAddrs
  1945 + that.tableData1[1].eventTheme = res.data.content[0].eventStartTime
  1946 + that.tableData1[1].planName = res.data.content[0].eventEndTime
  1947 + that.tableData1[2].eventTheme = res.data.content[0].eventTheme
  1948 + that.tableData1[2].planName = res.data.content[0].sponsor
  1949 + that.tableData1[3].eventTheme = res.data.content[0].participants
  1950 + that.tableData1[3].planName = res.data.content[0].mainPurpose
  1951 + that.tableData1[4].planName = this.getStatus(res.data.content[0].state)
  1952 + that.tableData1[4].eventTheme = res.data.content[0].rangeSetting
  1953 + //氛围成本信息
  1954 + that.internalLaborCostEstimation = res.data.content[0].internalLaborCostEstimation
  1955 + that.externalLaborCostEstimation = res.data.content[0].externalLaborCostEstimation
  1956 + that.tableData3[0].eventTheme = res.data.content[0].costEstimationGoods
  1957 + that.tableData3[0].planName = res.data.content[0].setCostEstimate
  1958 + that.tableData3[1].eventTheme = res.data.content[0].estimatedPromotionalExpenses
  1959 + that.tableData3[1].planName = res.data.content[0].otherNecessaryEstimates
  1960 + that.tableData3[2].eventTheme = res.data.content[0].totalCostEstimation
  1961 + that.tableData3[2].planName = res.data.content[0].notes
  1962 + //预估效果
  1963 + that.expectedAttractTraffic = res.data.content[0].expectedAttractTraffic
  1964 + that.expectedParticipation = res.data.content[0].expectedParticipation
  1965 + that.tableData4[0].eventTheme = res.data.content[0].expectedDirectBenefits
  1966 + that.tableData4[0].planName = res.data.content[0].expectedIndirectBenefits
  1967 + //系统信息
  1968 + that.createUser = res.data.content[0].createUser
  1969 + that.createDate = res.data.content[0].createDate
  1970 +
  1971 + that.tableData5[0].planName = '-'
  1972 + that.tableData5[0].eventTheme = res.data.content[0].updateUser
  1973 +
  1974 + }).catch(err => {
  1975 + console.log(err)
  1976 +
  1977 + })
  1978 + if (!item) {
  1979 + this.formItem = {}
  1980 + } else {
  1981 + this.formItem = item
  1982 + }
  1983 + lishiDeta({eventDetailsId:item.id}).then(res=>{
  1984 + this.liData = res.data
  1985 + })
  1986 + this.ggXin = true
  1987 + },
  1988 + formTime(data){
  1989 + this.zhixingList.planTime = data
  1990 + },
  1991 + removeEmptyValues(obj) {
  1992 + if (typeof obj !== 'object' || obj === null) {
  1993 + return obj;
  1994 + }
  1995 +
  1996 + const newObj = Array.isArray(obj) ? [] : {};
  1997 +
  1998 + for (const key in obj) {
  1999 + if (Object.prototype.hasOwnProperty.call(obj, key)) {
  2000 + const value = obj[key];
  2001 + if (value !== null && value !== undefined && value !== '' && !this.isEmptyObject(value)) {
  2002 + if (Array.isArray(newObj)) {
  2003 + newObj.push(this.removeEmptyValues(value));
  2004 + } else {
  2005 + newObj[key] = this.removeEmptyValues(value);
  2006 + }
  2007 + }
  2008 + }
  2009 + }
  2010 +
  2011 + return newObj;
  2012 + },
  2013 + isEmptyObject(obj) {
  2014 + return Object.keys(obj).length === 0 && obj.constructor === Object;
  2015 + },
  2016 + //获取当前时间
  2017 + updateCurrentTime() {
  2018 + const now = new Date();
  2019 + const year = now.getFullYear();
  2020 + const month = (now.getMonth() + 1).toString().padStart(2, '0');
  2021 + const day = now.getDate().toString().padStart(2, '0');
  2022 + const hours = now.getHours().toString().padStart(2, '0');
  2023 + const minutes = now.getMinutes().toString().padStart(2, '0');
  2024 + const seconds = now.getSeconds().toString().padStart(2, '0');
  2025 +
  2026 + return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
  2027 + },
  2028 +
  2029 + handleCurrentChange(val) {
  2030 + this.currentPage = val
  2031 + },
  2032 + handleSizeChange(val) {
  2033 + this.pageSize = val
  2034 + },
  2035 + closeFn() {
  2036 + this.ggXin = false
  2037 + },
  2038 + handleClick() {
  2039 + console.log()
  2040 + },
  2041 + refreshData() {
  2042 + // console.log('12123')
  2043 + this.tableDa = []
  2044 + this.activeName = 'first'
  2045 + this.zhixingBian = false
  2046 + },
  2047 + reshData() {
  2048 + this.tableDa = []
  2049 + this.tiaozhengShow = false
  2050 + },
  2051 +
  2052 + handleSelectionChange(val) {
  2053 + this.multipleSelection = val;
  2054 + },
  2055 + toggleSelection(rows) {
  2056 + if (rows) {
  2057 + rows.forEach(row => {
  2058 + this.$refs.mulTable.toggleRowSelection(row);
  2059 + });
  2060 + }
  2061 + },
  2062 + tableAll() {
  2063 + this.$refs.mulTable.clearSelection(); // 清除所有选项
  2064 + const allRows = this.$refs.mulTable.data; // 获取所有行数据
  2065 + allRows.forEach(row => {
  2066 + this.$refs.mulTable.toggleRowSelection(row, true); // 全选所有项
  2067 + });
  2068 + },
  2069 + TabClick(tab, event) {
  2070 + console.log(tab, event)
  2071 + if (tab.index == '0') {
  2072 + this.getAll()
  2073 + } else {
  2074 + this.tableData = []
  2075 + }
  2076 + },
  2077 + minSev() {
  2078 + if (this.zhiXing) {
  2079 + this.tableDa.push(this.mingFrom)
  2080 + } else {
  2081 + this.mingFrom.detailsId = this.zhixingList.id
  2082 + MingAdd(this.mingFrom).then(res => {
  2083 + this.mingcha(this.zhixingList.id)
  2084 + })
  2085 + }
  2086 + this.mingFrom = {
  2087 + detailLtemName: '',
  2088 + estimatedQuantity: '',
  2089 + estimatedCost: '',
  2090 + notes: ''
  2091 + }
  2092 + this.addMing = false
  2093 + },
  2094 + // 查询执行明细
  2095 + mingcha(id) {
  2096 + mingTable({
  2097 + detailsId: id,
  2098 + pageNumber: 1,
  2099 + pageSize: 10
  2100 + }).then(res => {
  2101 + this.tableDa = res.data.content
  2102 + })
  2103 + },
  2104 + MingDelete(index, item) {
  2105 + const h = this.$createElement;
  2106 + this.$msgbox({
  2107 + title: '消息',
  2108 + message: h('p', null, [
  2109 + h('span', null, '是否删除 '),
  2110 + ]),
  2111 + showCancelButton: true,
  2112 + showClose: false,
  2113 + confirmButtonText: '确定',
  2114 + cancelButtonText: '取消',
  2115 + customClass: 'oe-dialog-btn',
  2116 + beforeClose: (action, instance, done) => {
  2117 + if (action === 'confirm') {
  2118 + if (this.zhiXing) {
  2119 + this.tableDa.splice(item, 1);
  2120 + } else {
  2121 + MingDel({
  2122 + id: item.id
  2123 + }).then(res => {
  2124 + this.mingcha(this.zhixingList.id)
  2125 + })
  2126 + }
  2127 + done();
  2128 + } else {
  2129 + done();
  2130 + }
  2131 + }
  2132 + })
  2133 + },
  2134 + tianMing() {
  2135 + if (this.zhixingBian) {
  2136 + this.addMing = true
  2137 + }
  2138 + },
  2139 +
  2140 + duibi(){
  2141 + if (this.multipleSelection.length ==1 ) {
  2142 + this.xiaoDui = true
  2143 + this.duibiOne = this.multipleSelection[0]
  2144 + console.log(this.multipleSelection[0])
  2145 + let that = this
  2146 + actPage({
  2147 + detailsId:this.multipleSelection[0].id,
  2148 + pageNumber: 1,
  2149 + pageSize: 10,
  2150 + }).then(res => {
  2151 + this.duibiTwo = res.data.content[0] === undefined ? {} : res.data.content[0];
  2152 + console.log(this.duibiTwo)
  2153 + if( res.data.content[0] === undefined || res.data.content[0].totalCostEstimation =='' ){
  2154 + that.xiaoduiObj.biliTwo = '0%'
  2155 + that.xiaoduiObj.biliT = 0
  2156 + }else{
  2157 + that.xiaoduiObj.biliT = that.duibiTwo.internalLaborCostEstimation / that.duibiTwo.totalCostEstimation*100
  2158 + that.xiaoduiObj.biliTwo =`${Math.round(that.duibiTwo.internalLaborCostEstimation / that.duibiTwo.totalCostEstimation*100)}%`
  2159 + }
  2160 +
  2161 + })
  2162 + if(that.duibiOne.totalCostEstimation ==''){
  2163 + that.xiaoduiObj.biliOne = '0%'
  2164 + that.xiaoduiObj.bilis = 0
  2165 + }else{
  2166 + that.xiaoduiObj.bilis = that.duibiOne.internalLaborCostEstimation / that.duibiOne.totalCostEstimation*100
  2167 + that.xiaoduiObj.biliOne = `${Math.round(that.duibiOne.internalLaborCostEstimation / that.duibiOne.totalCostEstimation*100)}%`
  2168 + }
  2169 +
  2170 + }else{
  2171 + this.$message({
  2172 + message: '请选择一个文件对比',
  2173 + customClass: 'custom-message',
  2174 + offset: 100
  2175 + })
  2176 + }
  2177 +
  2178 + },
  2179 +
  2180 + koop(item){
  2181 + this.copy.id = item.id
  2182 + this.copyShow = true
  2183 + },
  2184 + copyClose(){
  2185 + this.copyShow = false
  2186 + this.copy.planName = ''
  2187 + },
  2188 + copysev(){
  2189 + if(this.copy.planName == ''){
  2190 + this.$message({
  2191 + message: '请填写数据',
  2192 + customClass: 'custom-message',
  2193 + offset: 100
  2194 + })
  2195 + return;
  2196 + }else{
  2197 + copy(this.copy).then(res=>{
  2198 + this.copyShow = false
  2199 + this.getAll()
  2200 + })
  2201 + }
  2202 + },
  2203 +
  2204 +
  2205 + fenleiChange(value){
  2206 + this.xinADD.parentId = value[value.length - 1]
  2207 + },
  2208 +
  2209 +
  2210 + customFormat(percentage) {
  2211 + let zong
  2212 + if(percentage==undefined ||percentage === null || percentage == '' ){
  2213 + percentage = 0
  2214 + zong = 10000
  2215 + }
  2216 + return `${percentage} / ${percentage==''?zong:parseInt(percentage) *10}`;
  2217 + },
  2218 + baifenbi(item){
  2219 +
  2220 + let zong
  2221 + if(item == undefined || item === null || item == '' ){
  2222 + item = 0
  2223 + zong = 10000
  2224 + return Math.round(item / (item*10) * 100);
  2225 + }else{
  2226 + return Math.round(item / zong * 100);
  2227 + }
  2228 +
  2229 + },
  2230 + handleUploadSuccess(response, file, fileList) {
  2231 + const fileMsg = {
  2232 + name:file.name,
  2233 + url: file.response.data.url,
  2234 + }
  2235 + // 将文件地址存储在 uploadedFiles 数组中
  2236 + this.fileData.push(fileMsg);
  2237 + },
  2238 + handleRemove(){
  2239 + this.fileData = []
  2240 + },
  2241 + daoru(response, file, fileList){
  2242 + this.daoData.push(file.raw)
  2243 + const formDate = new FormData()
  2244 + formDate.append('file', this.daoData[0])
  2245 + excelAdd(formDate).then(res => {
  2246 + this.getAll()
  2247 + })
  2248 + },
  2249 +
  2250 +
  2251 + async daochu(){
  2252 + let res = await excelQueryByPage(this.pageindex)
  2253 + if(!res){
  2254 + return
  2255 + }
  2256 + const blob = new Blob([res], { type: 'application/vnd.ms-excel' })
  2257 + const fileName = '审核流程.xls'
  2258 + if ('download' in document.createElement('a')) {
  2259 + // 非IE下载
  2260 + const elink = document.createElement('a')
  2261 + elink.download = fileName
  2262 + elink.style.display = 'none'
  2263 + elink.href = URL.createObjectURL(blob)
  2264 + document.body.appendChild(elink)
  2265 + elink.click()
  2266 + URL.revokeObjectURL(elink.href) // 释放URL 对象
  2267 + document.body.removeChild(elink)
  2268 + } else {
  2269 + // IE10+下载
  2270 + navigator.msSaveBlob(blob, fileName)
  2271 + }
  2272 + this.$message({
  2273 + message: '导出成功',
  2274 + type: 'success'
  2275 + })
  2276 +
  2277 +
  2278 + },
  2279 + // 下载
  2280 + async downloadPdf() {
  2281 + const content = this.$refs.actXiang;
  2282 +
  2283 + // 使用 html2canvas 将 div 渲染为画布
  2284 + const canvas = await html2canvas(content);
  2285 +
  2286 + // 获取画布的图像数据
  2287 + const imgData = canvas.toDataURL('image/png');
  2288 +
  2289 + // 创建一个新的 PDF 文档
  2290 + const pdf = new jsPDF('p', 'mm', 'a4');
  2291 +
  2292 + // 添加图像到 PDF,第二个参数是图像格式,第三个参数是缩放比例
  2293 + const imgWidth = 190; // 图像的宽度(mm)
  2294 + const imgHeight = (canvas.height * imgWidth) / canvas.width; // 保持图像的宽高比
  2295 +
  2296 + pdf.addImage(imgData, 'PNG', 10, 10, imgWidth, imgHeight); // 10, 10 是图像在 PDF 中的位置(mm)
  2297 +
  2298 + // 保存 PDF 文件
  2299 + pdf.save('氛围方案.pdf');
  2300 + },
  2301 + // 下载
  2302 + async lishidownloadPdf() {
  2303 + const content = this.$refs.lishiRef;
  2304 +
  2305 + // 使用 html2canvas 将 div 渲染为画布
  2306 + const canvas = await html2canvas(content);
  2307 +
  2308 + // 获取画布的图像数据
  2309 + const imgData = canvas.toDataURL('image/png');
  2310 +
  2311 + // 创建一个新的 PDF 文档
  2312 + const pdf = new jsPDF('p', 'mm', 'a4');
  2313 +
  2314 + // 添加图像到 PDF,第二个参数是图像格式,第三个参数是缩放比例
  2315 + const imgWidth = 190; // 图像的宽度(mm)
  2316 + const imgHeight = (canvas.height * imgWidth) / canvas.width; // 保持图像的宽高比
  2317 +
  2318 + pdf.addImage(imgData, 'PNG', 10, 10, imgWidth, imgHeight); // 10, 10 是图像在 PDF 中的位置(mm)
  2319 +
  2320 + // 保存 PDF 文件
  2321 + pdf.save('历史方案.pdf');
  2322 + },
  2323 +
  2324 +setSearch(){
  2325 +this.searchShow = true
  2326 +},
  2327 +lichange(e){
  2328 +console.log(this.liData[e])
  2329 +this.lishiList=e
  2330 + let msg =this.liData[e]
  2331 +this.duibiList = JSON.parse(msg.modifyContent)
  2332 +this.lixiang = JSON.parse(msg.originalData)
  2333 +
  2334 +},
  2335 +tiaozheng(){
  2336 + this.tiaozhengShow = true
  2337 +},
  2338 +jiucuo(){
  2339 + this.jiuMsg = ''
  2340 + this.jiucuoShow =true
  2341 +},
  2342 +jiuCheck(){
  2343 + xiangedit({id:this.editId,isErrorCorrection:this.jiuMsg}).then(res=>{
  2344 + this.jiucuoShow = false
  2345 + })
  2346 +},
  2347 +//执行效果保存
  2348 + async bianji() {
  2349 + if(this.fileData.length !=0){
  2350 + this.zhixingList.feedbackContent = this.fileData[0].url
  2351 + }
  2352 + if (this.zhiXing) {
  2353 + this.zhixingList.eventStartTime = this.zhixingList.planTime[0]
  2354 + this.zhixingList.eventEndTime = this.zhixingList.planTime[1]
  2355 + this.zhixingList.detailsId = this.secondData.id
  2356 + this.zhixingList.createDate = this.updateCurrentTime()
  2357 + actAdd(this.zhixingList).then(res => {
  2358 + for (let i = 0; i < this.tableDa.length; i++) {
  2359 + this.tableDa[i].detailsId = res.data.id
  2360 + MingAdd(this.tableDa[i]).then(res => {
  2361 + this.$message({
  2362 + message: '保存成功',
  2363 + type: 'success'
  2364 + })
  2365 + })
  2366 + }
  2367 + })
  2368 +
  2369 + } else {
  2370 + let that = this
  2371 + Vue.delete(that.zhixingList,'createDate')
  2372 + this.zhixingList.eventStartTime = this.zhixingList.planTime[0]
  2373 + this.zhixingList.eventEndTime = this.zhixingList.planTime[1]
  2374 + Vue.delete(that.zhixingList,'planTime')
  2375 + this.zhixingList.updateDate = ''
  2376 + await actEdit(this.zhixingList)
  2377 + this.$message({
  2378 + message: '保存成功',
  2379 + type: 'success'
  2380 + })
  2381 + }
  2382 +
  2383 + this.ggXin = false
  2384 + this.getAll()
  2385 + },
  2386 + searchQuit(){
  2387 + this.searPei={
  2388 + name:true,
  2389 + lei:false,
  2390 + staut:false,
  2391 + }
  2392 + this.searchShow=false
  2393 + }
  2394 + }
  2395 + }
  2396 +</script>
  2397 +
  2398 +<style scoped>
  2399 + .custom-tree-node {
  2400 + flex: 1;
  2401 + display: flex;
  2402 + align-items: center;
  2403 + justify-content: space-between;
  2404 + font-size: 14px;
  2405 + padding-right: 8px;
  2406 + }
  2407 + /deep/ .first-column-bg {
  2408 + background-color: #f4f4f5 !important;
  2409 + }
  2410 +
  2411 + .zhuti {
  2412 + padding: 0 20px 20px 20px;
  2413 + min-height: calc(100vh - 50px - 20px);
  2414 + background-color: #Fff;
  2415 +
  2416 + }
  2417 +::v-deep .el-form-item{
  2418 + margin-bottom:16px;
  2419 +}
  2420 + /deep/ .el-form-item__content {
  2421 + line-height: 0;
  2422 + }
  2423 +
  2424 + .tableBtn {
  2425 + display: inline-block;
  2426 + margin-right: 10px;
  2427 + }
  2428 +
  2429 + .formSearch {
  2430 + display: flex;
  2431 + width: 100%;
  2432 + font-size: 14px;
  2433 + justify-content: space-between;
  2434 + padding-bottom: 10px;
  2435 + align-items: center;
  2436 + }
  2437 +
  2438 + .greens {
  2439 + color: #3F9B6A;
  2440 + }
  2441 +
  2442 + /deep/ .el-table__row {
  2443 + font-size: 14px;
  2444 + color:#000000e6;
  2445 + height:42px;
  2446 + }
  2447 +
  2448 + .fenye {
  2449 + margin-top: 20px;
  2450 + display: flex;
  2451 + justify-content: space-between;
  2452 + position: relative;
  2453 + }
  2454 +
  2455 + /deep/ .el-pagination.is-background .el-pager li:not(.disabled).active {
  2456 + background-color: #3F9B6A;
  2457 + }
  2458 +
  2459 + .el-row {
  2460 + margin-bottom: 20px;
  2461 + }
  2462 +
  2463 + :last-child {
  2464 + margin-bottom: 0;
  2465 + }
  2466 +
  2467 + .el-col {
  2468 + border-radius: 4px;
  2469 + }
  2470 +
  2471 + .bg-purple-dark {
  2472 + background: #99a9bf;
  2473 + }
  2474 +
  2475 + .bg-purple {
  2476 + /* background: #d3dce6; */
  2477 + }
  2478 +
  2479 + .bg-purple-light {
  2480 + background: #e5e9f2;
  2481 + }
  2482 +
  2483 + .grid-content {
  2484 + border-radius: 4px;
  2485 + min-height: 36px;
  2486 + }
  2487 +
  2488 + .row-bg {
  2489 + padding: 10px 0;
  2490 + background-color: #f9fafc;
  2491 + }
  2492 +
  2493 + /deep/ .bg-purple[data-v-0e3fe4ec] {
  2494 + background: #fff;
  2495 + height: 50px;
  2496 + }
  2497 +
  2498 + /deep/ .el-form--label-top .el-form-item__label {
  2499 + padding: 0;
  2500 + }
  2501 +
  2502 +
  2503 + .pagination {
  2504 + text-align: right;
  2505 + line-height: 20px;
  2506 + }
  2507 +
  2508 + /deep/ .el-pagination__total {
  2509 + margin-top: 4px;
  2510 + }
  2511 +
  2512 +::v-deep .xiang_css{
  2513 + margin-top:11vh !important;
  2514 + margin-left: 13%;
  2515 + max-height:600px;
  2516 + overflow-y: auto;
  2517 +}
  2518 + /deep/ .dialog_css {
  2519 + margin-top: 11vh;
  2520 + margin-left: 25%;
  2521 + padding: 0px;
  2522 +
  2523 + .el-dialog__title {
  2524 + font-size: 14px;
  2525 + color: #000000e6;
  2526 + }
  2527 + }
  2528 +
  2529 + /deep/.el-dialog__body {
  2530 + padding: 0px;
  2531 + }
  2532 +
  2533 + /deep/ .el-dialog__header {
  2534 + background-color: #fff;
  2535 + }
  2536 +
  2537 + /deep/.el-dialog__title {
  2538 + font-size: 14px;
  2539 + color: #000000e6;
  2540 + }
  2541 +
  2542 + .el-row {
  2543 + margin-bottom: 20px;
  2544 +
  2545 + &:last-child {
  2546 + margin-bottom: 0;
  2547 + }
  2548 + }
  2549 +
  2550 + /deep/ .avatar-uploader .el-upload {
  2551 + border: 1px dashed #d9d9d9;
  2552 + border-radius: 6px;
  2553 + cursor: pointer;
  2554 + position: relative;
  2555 + overflow: hidden;
  2556 + }
  2557 +
  2558 + .avatar-uploader .el-upload:hover {
  2559 + border-color: #409EFF;
  2560 + }
  2561 +
  2562 + .avatar-uploader-icon {
  2563 + font-size: 28px;
  2564 + color: #8c939d;
  2565 + width: 108px;
  2566 + height: 108px;
  2567 + line-height: 108px;
  2568 + /*text-align: center;*/
  2569 + }
  2570 +
  2571 + .avatar {
  2572 + width: 108px;
  2573 + height: 108px;
  2574 + display: block;
  2575 + }
  2576 +
  2577 + ::v-deep .el-tabs__item.is-active {
  2578 + color: #3F9B6A;
  2579 + opacity: 1;
  2580 + }
  2581 +
  2582 + /deep/ .el-tabs__nav-wrap::after {
  2583 + background-color: #fff;
  2584 + }
  2585 +
  2586 + ::v-deep .el-tabs__item:hover {
  2587 + color: #3F9B6A;
  2588 + cursor: pointer;
  2589 + opacity: 1;
  2590 + }
  2591 +
  2592 + /deep/ .el-tabs__active-bar {
  2593 + background-color: #389865;
  2594 + }
  2595 +
  2596 + /deep/ .el-table_2_column_13 {
  2597 + font-weight: 100;
  2598 + }
  2599 +::v-deep .el-input__inner{
  2600 + height:32px;
  2601 + line-height:32px;
  2602 +}
  2603 + ::v-deep .el-input__inner:focus {
  2604 + border: #3F9B6A 1px solid;
  2605 + }
  2606 +
  2607 + ::v-deep .el-input__inner:hover {
  2608 + border: #3F9B6A 1px solid;
  2609 + }
  2610 +
  2611 + ::v-deep .el-select .el-input.is-focus .el-input__inner {
  2612 + border-color: #3F9B6A
  2613 + }
  2614 +
  2615 + ::v-deep .el-form-item__label {
  2616 + font-weight: 100;
  2617 + font-size: 14px;
  2618 + color:#000000e6;
  2619 + }
  2620 +
  2621 + /* ::v-deep .el-steps .el-step__head.is-wait {
  2622 + background-color: red; /* 修改为你想要的颜色 */
  2623 +
  2624 + /* 修改未进行步骤的描述文字颜色 */
  2625 + ::v-deep .el-steps .el-step__description.is-wait {
  2626 + color: #999;
  2627 + /* 修改为你想要的颜色 */
  2628 + }
  2629 +
  2630 + /* 修改未进行步骤的图标颜色 */
  2631 + ::v-deep .el-steps .el-step__icon.is-text.is-wait {
  2632 + color: #999;
  2633 + /* 修改为你想要的颜色 */
  2634 + }
  2635 +
  2636 + /* 修改未进行步骤的边框色 */
  2637 + ::v-deep .el-steps .el-step__line.is-wait {
  2638 + border-color: #eee;
  2639 + /* 修改为你想要的颜色 */
  2640 + }
  2641 +
  2642 + ::v-deep .el-steps .is-process .el-step__line {
  2643 + background-color: #3F9B6A;
  2644 + /* 修改线的颜色 */
  2645 + }
  2646 +
  2647 + ::v-deep .el-steps .is-process .el-step__title {
  2648 + color: #fe7b6a;
  2649 + /* 修改进行中步骤的标题颜色 */
  2650 + }
  2651 +
  2652 + ::v-deep .el-steps .is-process .el-step__icon {
  2653 + color: #fff;
  2654 + /* 修改进行中步骤的图标颜色 */
  2655 + background: #3F9B6A;
  2656 + /* 修改进行中步骤图标的边框颜色 */
  2657 + border: 0px;
  2658 + }
  2659 +
  2660 + ::v-deep .el-step__icon-inner {
  2661 + line-height: 0
  2662 + }
  2663 +
  2664 + /* 线条长度 */
  2665 + ::v-deep .el-step.is-vertical .el-step__line {
  2666 + top: 30px;
  2667 + height: 60px;
  2668 + }
  2669 +
  2670 + .fenlan {
  2671 + display: flex;
  2672 + }
  2673 +
  2674 + .souLei {
  2675 + border: 1px solid #d7d7d7;
  2676 + background-color: #fff;
  2677 + width:300px;
  2678 + margin-right:20px;
  2679 +
  2680 + }
  2681 +::v-deep .el-menu{
  2682 + border-right:0px;
  2683 +}
  2684 +::v-deep .el-menu-item{
  2685 + height:36px;
  2686 + line-height: 33px;
  2687 +}
  2688 +
  2689 +::v-deep .el-submenu__title{
  2690 + height:36px;
  2691 + line-height: 33px;
  2692 + font-weight:600;
  2693 + border-radius:4px;
  2694 + margin:4px 0;
  2695 +}
  2696 +::v-deep .el-menu-item-group__title{
  2697 + padding:0px
  2698 +}
  2699 + ::v-deep .fudan{
  2700 + font-weight:600;
  2701 + border-radius:4px;
  2702 + padding-left:29px !important;
  2703 + margin:4px 0;
  2704 + }
  2705 + ::v-deep .chinddan{
  2706 + margin:5px 0;
  2707 + }
  2708 +</style>
  2709 +<style lang="scss" scoped>
  2710 + ::v-deep .el-table tr:hover{
  2711 + background-color: #F0F7F3 !important;
  2712 + }
  2713 + ::v-deep .souTabs {
  2714 + padding:0 15px 0 12px;
  2715 + .el-submenu{
  2716 + padding:0px;
  2717 + }
  2718 + .el-menu-item:focus, .el-menu-item:hover{
  2719 + background-color: #3F9B6A !important;
  2720 + }
  2721 + .el-menu-item:hover{
  2722 + background-color:#3f9b6a1a !important;
  2723 + color:#000 !important;
  2724 + }
  2725 + .el-tabs--left .el-tabs__header.is-left {
  2726 + width: 100%;
  2727 + margin-right: 0px;
  2728 + }
  2729 +
  2730 + .el-tabs--left .el-tabs__item.is-left {
  2731 + text-align: center;
  2732 + }
  2733 +
  2734 + .el-tabs__item.is-active {
  2735 + background-color: #DEEBE2;
  2736 + }
  2737 + }
  2738 +
  2739 + ::v-deep .tableList {
  2740 + width: 100%;
  2741 + }
  2742 + ::v-deep .fenxi_css{
  2743 + margin-top: 9vh !important;
  2744 + margin-left: 10%;
  2745 + .el-dialog__header{
  2746 + padding:0;
  2747 + }
  2748 + .el-tabs--border-card {
  2749 + border: none;
  2750 + -webkit-box-shadow:none;
  2751 + box-shadow:none;
  2752 + .el-tabs__content{
  2753 + border: 1px solid #E4E7ED;
  2754 + padding:0;
  2755 + }
  2756 + .el-tabs__header{
  2757 + background-color: #fff;
  2758 + border-bottom:none;
  2759 + }
  2760 + .el-tabs__content{
  2761 + border: none;
  2762 + }
  2763 + .el-tabs__header .el-tabs__item{
  2764 + border: none;
  2765 + margin-right: 10px;
  2766 + background-color: #F2F2F2;
  2767 + font-size:12px;
  2768 + border-top-left-radius: 8px;
  2769 + border-top-right-radius: 8px;
  2770 + padding:0 15px;
  2771 + }
  2772 + .el-tabs__header .el-tabs__item.is-active{
  2773 + color:#fff;
  2774 + background-color: #3F9B6A;
  2775 + }
  2776 + .el-tabs__header .el-tabs__item:not(.is-disabled):hover{
  2777 + color:#3F9B6A;
  2778 + }
  2779 + }
  2780 +
  2781 + }
  2782 + ::v-deep .xiaoguo_css{
  2783 + margin-top: 30vh !important;
  2784 + margin-left: 25%;
  2785 + .el-dialog__header{
  2786 + padding:0;
  2787 + }
  2788 + .el-tabs--border-card {
  2789 + border: none;
  2790 + -webkit-box-shadow:none;
  2791 + box-shadow:none;
  2792 + .el-tabs__content{
  2793 + border: 1px solid #E4E7ED;
  2794 + padding:0;
  2795 + }
  2796 + .el-tabs__header{
  2797 + background-color: #fff;
  2798 + border-bottom:none;
  2799 + }
  2800 + .el-tabs__content{
  2801 + border: none;
  2802 + }
  2803 + .el-tabs__header .el-tabs__item{
  2804 + border: none;
  2805 + margin-right: 10px;
  2806 + background-color: #F2F2F2;
  2807 + font-size:12px;
  2808 + border-top-left-radius: 8px;
  2809 + border-top-right-radius: 8px;
  2810 + padding:0 15px;
  2811 + }
  2812 + .el-tabs__header .el-tabs__item.is-active{
  2813 + color:#fff;
  2814 + background-color: #3F9B6A;
  2815 + }
  2816 + .el-tabs__header .el-tabs__item:not(.is-disabled):hover{
  2817 + color:#3F9B6A;
  2818 + }
  2819 + }
  2820 + }
  2821 + ::v-deep .demo-input-suffix {
  2822 + display: flex;
  2823 + margin-right: 20px;
  2824 + width: 83%;
  2825 +
  2826 + .el-input__inner{
  2827 + height:32px;
  2828 + }
  2829 + }
  2830 + ::v-deep .el-input__icon{
  2831 + line-height:25px;
  2832 + }
  2833 + ::v-deep .el-input--mini .el-input__icon{
  2834 + line-height:33px;
  2835 + }
  2836 +
  2837 + ::v-deep .buttonHover:hover{
  2838 + color:#3f9b6a !important;
  2839 + border-color: #c5e1d2 !important;
  2840 + background-color: #ecf5f0 !important;
  2841 + outline: none;
  2842 + }
  2843 + ::v-deep .DelBtnHover:hover{
  2844 + color:#fff !important;
  2845 + border-color: rgb(226, 78, 90) !important;
  2846 + background-color: rgb(226, 78, 90) !important;
  2847 + outline: none;
  2848 + }
  2849 +::v-deep .el-menu-item.is-active {
  2850 + background-color: #3F9B6A !important;
  2851 +}
  2852 +::v-deep .jindutiao{
  2853 + display:flex;
  2854 + align-items:center;
  2855 + margin-bottom:15px;
  2856 + .el-progress-bar__outer{
  2857 + border-radius:0px;
  2858 + }
  2859 + .el-progress-bar__inner{
  2860 + border-radius:0px;
  2861 + }
  2862 +}
  2863 +
  2864 +</style>
... ...
admin-web-master/src/views/atmosphere/atmosphereSp.vue
... ... @@ -59,14 +59,15 @@
59 59 {{scope.row.state == ''?'待提交':scope.row.state == '1'?'待审批':scope.row.state == '2'?'部门领导审批':scope.row.state == '3'?'公司领导审批':scope.row.state == '4'?'其他审批':scope.row.state == '5'?'审核通过':'已驳回'}}
60 60 </template>
61 61 </el-table-column>
62   - <el-table-column label="修改时间" prop="createDate" min-width="250" >
  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   - </el-table-column>
  66 + </el-table-column> -->
67 67 <el-table-column label="操作" min-width="200">
68 68 <template slot-scope="scope">
69   - <div @click="actSp(scope.row)" class="tableBtn greens" v-if="scope.row.state != ''">OA流程审批</div>
  69 + <div class="tableBtn greens" @click="handleEditForm(scope.row,1)">查看</div>
  70 + <div @click="actSp(scope.row)" class="tableBtn greens" v-if="scope.row.state == '1'">审核</div>
70 71 </template>
71 72 </el-table-column>
72 73 </el-table>
... ... @@ -196,7 +197,7 @@
196 197 </div>
197 198 </div>
198 199 <div style="padding:55px 10px 10px 10px;background-color:#fff;position:relative">
199   - <div style="position: absolute;top: 60px;right: 10px; z-index: 10;">
  200 + <!-- <div style="position: absolute;top: 60px;right: 10px; z-index: 10;">
200 201 <el-radio-group v-model="radio1" size="mini" style="margin-right:10px">
201 202 <el-radio-button label="本周"></el-radio-button>
202 203 <el-radio-button label="本月"></el-radio-button>
... ... @@ -213,7 +214,7 @@
213 214 start-placeholder="开始日期"
214 215 end-placeholder="结束日期">
215 216 </el-date-picker>
216   - </div>
  217 + </div> -->
217 218 <el-tabs type="border-card" @tab-click="TabClick">
218 219 <el-tab-pane label="整体效果分析">
219 220 <el-table :data="dataList"
... ... @@ -400,7 +401,7 @@
400 401 style="position: relative">
401 402 <el-date-picker style="width: 100%;" v-model="secondData.planTime" value-format="yyyy-MM-dd HH:mm:ss"
402 403 type="datetimerange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" disabled
403   - align="right" @change="dateFormat">
  404 + align="right">
404 405 </el-date-picker>
405 406 </el-form-item>
406 407 </el-col>
... ... @@ -756,6 +757,376 @@
756 757 </el-dialog>
757 758 </div>
758 759 </div>
  760 + <el-dialog title="氛围方案详情" :visible.sync="ggXin" custom-class='xiang_css' style="padding: 0;" width="80%"
  761 + center :close-on-click-modal="false" :close-on-press-escape="false" @close="refreshData">
  762 + <div ref="actXiang">
  763 + <div style="width: 100%;">
  764 + <div style="display: flex;padding:0px 20px 20px 20px; ">
  765 + <div style="width: 150px;height: 80px;" v-if="secondData.coverPoster">
  766 + <img :src="secondData.coverPoster" alt="" style="width: 100%;height: 80px;"/>
  767 + </div>
  768 + <div
  769 + style="display: flex;flex-direction: column;justify-content: space-around;padding: 0 10px;font-size: 12px;">
  770 + <span style="margin-bottom: 10px;">{{text}}</span>
  771 + <span>活动时间:{{tableData1[1].eventTheme}}至{{tableData1[1].planName}}</span>
  772 + <span>活动地点:{{tableData1[0].planName}}</span>
  773 + </div>
  774 + </div>
  775 + </div>
  776 + <div style="width: 100%;background-color: #fff;">
  777 + <el-tabs v-model="activeName" @tab-click="handleClick" style="padding-left:20px;">
  778 + <el-tab-pane label="方案概况" name="first"></el-tab-pane>
  779 + <el-tab-pane label="执行效果" name="second"></el-tab-pane>
  780 + </el-tabs>
  781 + </div>
  782 + <div v-if="activeName=='first'" style="display: flex;">
  783 + <div style="width: 100%;">
  784 + <div style="width: 100%;">
  785 + <div style="font-size: 12px;padding: 10px 20px 0px 20px;">基本信息</div>
  786 + <div style="padding: 10px 20px;">
  787 + <el-table :data="tableData1"
  788 + :header-cell-style="{fontSize: '12px', backgroundColor: '#fff',color:'#000',fontWeight: 'normal'}"
  789 + style="width: 100%;margin: auto;">
  790 + <el-table-column class-name="first-column-bg" label="方案编号" prop="name" min-width="15%">
  791 + </el-table-column>
  792 + <el-table-column :label="id" prop="eventTheme" min-width="35%">
  793 +
  794 + </el-table-column>
  795 + <el-table-column class-name="first-column-bg" label="方案名称" prop="text" min-width="15%">
  796 +
  797 + </el-table-column>
  798 + <el-table-column :label="text" prop="planName" min-width="35%">
  799 +
  800 + </el-table-column>
  801 + </el-table>
  802 +
  803 +
  804 + </div>
  805 + </div>
  806 + <div style="width: 100%;">
  807 + <div style="font-size: 12px;padding: 10px 20px 0px 20px;">活动明细信息</div>
  808 + <div style="padding: 10px 20px;">
  809 + <el-table :data="tableData2"
  810 + :header-cell-style="{fontSize: '12px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
  811 + style="width: 100%;margin: auto;">
  812 + <el-table-column label="序号" min-width="5%" align='center'>
  813 + <template slot-scope="scope">
  814 + <span style="">{{ scope.$index +1}}</span>
  815 + </template>
  816 + </el-table-column>
  817 + <el-table-column label="明细项名称" prop="detailLtemName" min-width="28%">
  818 + </el-table-column>
  819 + <el-table-column label="预估数量" prop="estimatedQuantity" min-width="20%">
  820 +
  821 + </el-table-column>
  822 + <el-table-column label="预估费用" prop="estimatedCost" min-width="20%">
  823 +
  824 + </el-table-column>
  825 + <el-table-column label="备注" prop="notes" min-width="20%">
  826 + </el-table-column>
  827 + </el-table>
  828 + </div>
  829 + </div>
  830 + <div style="width: 100%;">
  831 + <div style="font-size: 12px;padding: 10px 20px 0px 20px;">活动成本信息</div>
  832 + <div style="padding:10px 20px;">
  833 + <el-table :data="tableData3"
  834 + :header-cell-style="{fontSize: '12px', backgroundColor: '#fff',color:'#000',fontWeight: 'normal'}"
  835 + style="width: 100%;margin: auto;">
  836 + <el-table-column class-name="first-column-bg" label="内部人力成本预估" prop="name" min-width="15%">
  837 + </el-table-column>
  838 + <el-table-column :label="internalLaborCostEstimation" prop="eventTheme" min-width="35%">
  839 +
  840 + </el-table-column>
  841 + <el-table-column class-name="first-column-bg" label="外部人力成本预估" prop="text" min-width="15%">
  842 +
  843 + </el-table-column>
  844 + <el-table-column :label="externalLaborCostEstimation" prop="planName" min-width="35%">
  845 +
  846 + </el-table-column>
  847 + </el-table>
  848 + </div>
  849 + </div>
  850 + <div style="width: 100%;">
  851 + <div style="font-size: 12px;padding:10px 20px 0px 20px;">预估效果</div>
  852 + <div style="padding:10px 20px;">
  853 + <el-table :data="tableData4"
  854 + :header-cell-style="{fontSize: '12px', backgroundColor: '#fff',color:'#000',fontWeight: 'normal'}"
  855 + style="width: 100%;margin: auto;">
  856 + <el-table-column class-name="first-column-bg" label="预计吸引流量" prop="name" min-width="15%">
  857 + </el-table-column>
  858 + <el-table-column :label="expectedAttractTraffic" prop="eventTheme" min-width="35%">
  859 +
  860 + </el-table-column>
  861 + <el-table-column class-name="first-column-bg" label="预计参与人数" prop="text" min-width="15%">
  862 +
  863 + </el-table-column>
  864 + <el-table-column :label="expectedParticipation" prop="planName" min-width="35%">
  865 +
  866 + </el-table-column>
  867 + </el-table>
  868 + </el-table-column>
  869 + </div>
  870 + </div>
  871 + <div style="width: 100%;">
  872 + <div style="font-size: 12px;padding: 10px 20px 0px 20px;">相关附件信息</div>
  873 + <div style="padding:10px 20px;">
  874 + <el-table :data="tableData6"
  875 + :header-cell-style="{fontSize: '12px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
  876 + style="width: 100%;margin: auto;">
  877 + <el-table-column label="序号" min-width="5%" align='center'>
  878 + <template slot-scope="scope">
  879 + <span style="">{{ scope.$index + 1 }}</span>
  880 + </template>
  881 + </el-table-column>
  882 + <el-table-column label="附件名称" prop="attachmentName" min-width="75%">
  883 +
  884 + </el-table-column>
  885 + <el-table-column label="操作" prop="text" min-width="20%">
  886 + <template slot-scope="scope">
  887 + <a class="tableBtn greens" :href="scope.row.attachmentUrl" target="_blank" download>下载</a>
  888 + </template>
  889 + </el-table-column>
  890 +
  891 + </el-table>
  892 + </div>
  893 + </div>
  894 + <div style="width: 100%;">
  895 + <div style="font-size: 12px;padding: 10px 20px 0px 20px;">系统信息</div>
  896 + <div style="padding:10px 20px;">
  897 + <el-table :data="tableData5"
  898 + :header-cell-style="{fontSize: '12px', backgroundColor: '#fff',color:'#000',fontWeight: 'normal'}"
  899 + style="width: 100%;margin: auto;">
  900 + <el-table-column class-name="first-column-bg" label="创建人" prop="name" min-width="15%">
  901 + </el-table-column>
  902 + <el-table-column :label="createUser" prop="eventTheme" min-width="35%">
  903 +
  904 + </el-table-column>
  905 + <el-table-column class-name="first-column-bg" label="创建时间" prop="text" min-width="15%">
  906 +
  907 + </el-table-column>
  908 + <el-table-column :label="createDate" prop="planName" min-width="35%">
  909 +
  910 + </el-table-column>
  911 + </el-table>
  912 + </div>
  913 + </div>
  914 + </div>
  915 +
  916 + </div>
  917 + <div v-if="activeName=='second'">
  918 +
  919 + <div style="padding: 20px">
  920 + <div style="border: solid 1px #E5E5E5;border-radius: 5px">
  921 + <div style="border-bottom: 1px solid #E5E5E5;padding: 1px">
  922 + <div style="padding: 10px 20px;background-color: #FAFAFA;font-size: 12px;">
  923 + 基本信息
  924 + </div>
  925 + </div>
  926 + <div style="padding: 20px 40px 20px 20px">
  927 + <el-form label-position="top" ref="ruleFormInfo" :model="zhixingList" label-width="120px"
  928 + style="position: relative">
  929 + <el-row :gutter="20">
  930 + <el-col :span="8">
  931 + <el-form-item label="活动名称" class="grid-content bg-purple device-from" prop="name">
  932 + <el-input v-model="zhixingList.planName" placeholder="请输入" :disabled="!zhixingBian"/>
  933 + </el-form-item>
  934 + </el-col>
  935 + <el-col :span="8">
  936 + <el-form-item label="实际举办地点" class="grid-content bg-purple" prop="name">
  937 + <el-input v-model="zhixingList.eventAddrs" placeholder="请输入" :disabled="!zhixingBian"/>
  938 + </el-form-item>
  939 + </el-col>
  940 +
  941 + <el-col :span="8">
  942 + <el-form-item label="实际举办时间" class="grid-content bg-purple" prop="event_start_time"
  943 + style="position: relative">
  944 + <el-date-picker style="width: 100%;" v-model="zhixingList.planTime" value-format="yyyy-MM-dd HH:mm:ss"
  945 + :disabled="!zhixingBian" @input="formTime"
  946 + type="datetimerange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"
  947 + align="right">
  948 + </el-date-picker>
  949 + </el-form-item>
  950 + </el-col>
  951 + </el-row>
  952 +
  953 + <el-row :gutter="20">
  954 + <el-col :span="8">
  955 + <el-form-item label="活动主办方" class="grid-content bg-purple" prop="name">
  956 + <el-input v-model="zhixingList.sponsor" placeholder="请输入" :disabled="!zhixingBian"/>
  957 + </el-form-item>
  958 + </el-col>
  959 + <el-col :span="8">
  960 + <el-form-item label="活动实际参与方" class="grid-content bg-purple" prop="name">
  961 + <el-input v-model="zhixingList.participants" placeholder="请输入" :disabled="!zhixingBian"/>
  962 + </el-form-item>
  963 + </el-col>
  964 + </el-row>
  965 + </el-form>
  966 + </div>
  967 + </div>
  968 + </div>
  969 + <div style="padding: 0px 20px 20px 20px">
  970 + <div style="border: solid 1px #E5E5E5;border-radius: 5px">
  971 + <div style="border-bottom: 1px solid #E5E5E5;padding: 1px;display: flex">
  972 + <div style="padding: 10px 20px;background-color: #FAFAFA;font-size: 12px;">
  973 + 活动明细信息
  974 + </div>
  975 +
  976 + </div>
  977 + <!-- 表格-->
  978 + <div style="padding: 20px 20px 20px 20px">
  979 + <el-table :data="tableDa"
  980 + :header-cell-style="{fontSize: '12px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
  981 + style="width: 100%">
  982 + <el-table-column label="序号" width="auto" min-width="5%" align="center">
  983 + <template slot-scope="scope">
  984 + {{scope.$index +1}}
  985 + </template>
  986 + </el-table-column>
  987 + <el-table-column label="明细项名称" prop="detailLtemName" width="auto" min-width="22%">
  988 +
  989 + </el-table-column>
  990 + <el-table-column label="预估数量" prop="estimatedQuantity" width="auto" min-width="15%">
  991 +
  992 + </el-table-column>
  993 + <el-table-column label="预估费用" prop="estimatedCost" width="auto" min-width="15%">
  994 + </el-table-column>
  995 + <el-table-column prop="notes" label="备注" width="auto" min-width="15%">
  996 + </el-table-column>
  997 + <el-table-column label="操作" width="auto" min-width="18%" v-if="zhixingBian">
  998 + <template slot-scope="scope">
  999 + <div class="tableBtn greens" @click="MingDelete(scope.$index,scope.row)">删除</div>
  1000 + </template>
  1001 + </el-table-column>
  1002 + </el-table>
  1003 +
  1004 + </div>
  1005 + </div>
  1006 + </div>
  1007 + <div style="padding: 20px">
  1008 + <div style="border: solid 1px #E5E5E5;border-radius: 5px;padding-bottom: 20px;">
  1009 + <div style="border-bottom: 1px solid #E5E5E5;padding: 1px">
  1010 + <div style="padding: 10px 20px;background-color: #FAFAFA;font-size: 12px;">
  1011 + 实际花费成本
  1012 + </div>
  1013 + </div>
  1014 + <div style="padding: 20px 40px 0px 20px">
  1015 + <el-form label-position="top" ref="ruleFormInfo" :model="zhixingList" label-width="120px"
  1016 + style="position: relative">
  1017 + <el-row :gutter="20">
  1018 + <el-col :span="8">
  1019 + <el-form-item label="内部人力成本预估" class="grid-content bg-purple device-from" prop="name">
  1020 + <el-input v-model="zhixingList.internalLaborCostEstimation" placeholder="请输入" :disabled="!zhixingBian"/>
  1021 + </el-form-item>
  1022 + </el-col>
  1023 + <el-col :span="8">
  1024 + <el-form-item label="外部人力成本预估" class="grid-content bg-purple" prop="name">
  1025 + <el-input v-model="zhixingList.externalLaborCostEstimation" placeholder="请输入" :disabled="!zhixingBian"/>
  1026 + </el-form-item>
  1027 + </el-col>
  1028 +
  1029 + <el-col :span="8">
  1030 + <el-form-item label="商品成本预估" class="grid-content bg-purple" prop="name">
  1031 + <el-input v-model="zhixingList.costEstimationGoods" placeholder="请输入" :disabled="!zhixingBian"/>
  1032 + </el-form-item>
  1033 + </el-col>
  1034 + </el-row>
  1035 +
  1036 + <el-row :gutter="20">
  1037 + <el-col :span="8">
  1038 + <el-form-item label="设备成本" class="grid-content bg-purple" prop="name">
  1039 + <el-input v-model="zhixingList.setCostEstimate" placeholder="请输入" :disabled="!zhixingBian"/>
  1040 + </el-form-item>
  1041 + </el-col>
  1042 + <el-col :span="8">
  1043 + <el-form-item label="宣传费用" class="grid-content bg-purple" prop="name">
  1044 + <el-input v-model="zhixingList.estimatedPromotionalExpenses" placeholder="请输入" :disabled="!zhixingBian"/>
  1045 + </el-form-item>
  1046 + </el-col>
  1047 + <el-col :span="8">
  1048 + <el-form-item label="其他成本" class="grid-content bg-purple" prop="name">
  1049 + <el-input v-model="zhixingList.otherNecessaryEstimates" placeholder="请输入" :disabled="!zhixingBian"/>
  1050 + </el-form-item>
  1051 + </el-col>
  1052 + </el-row>
  1053 +
  1054 + <el-row :gutter="20">
  1055 + <el-col :span="8">
  1056 + <el-form-item label="总成本" prop="name" class="grid-content bg-purple">
  1057 + <el-input v-model="zhixingList.totalCostEstimation" placeholder="请输入" :disabled="!zhixingBian"/>
  1058 + </el-form-item>
  1059 + </el-col>
  1060 + <el-col :span="16">
  1061 + <el-form-item label="备注" prop="name" class="grid-content bg-purple">
  1062 + <el-input v-model="zhixingList.notes" placeholder="请输入" :disabled="!zhixingBian"/>
  1063 + </el-form-item>
  1064 + </el-col>
  1065 + </el-row>
  1066 + </el-form>
  1067 + </div>
  1068 + </div>
  1069 + </div>
  1070 +
  1071 + <div style="padding: 20px">
  1072 + <div style="border: solid 1px #E5E5E5;border-radius: 5px;padding-bottom: 20px;">
  1073 + <div style="border-bottom: 1px solid #E5E5E5;padding: 1px">
  1074 + <div style="padding: 10px 20px;background-color: #FAFAFA;font-size: 12px;">
  1075 + 活动执行效果
  1076 + </div>
  1077 + </div>
  1078 + <div style="padding: 20px 40px 0px 20px">
  1079 + <el-form label-position="top" ref="ruleFormInfo" :model="zhixingList" label-width="120px"
  1080 + style="position: relative">
  1081 + <el-row :gutter="20">
  1082 + <el-col :span="8">
  1083 + <el-form-item label="吸引流量" class="grid-content bg-purple device-from" prop="name">
  1084 + <el-input v-model="zhixingList.expectedAttractTraffic" placeholder="请输入" :disabled="!zhixingBian"/>
  1085 + </el-form-item>
  1086 + </el-col>
  1087 + <el-col :span="8">
  1088 + <el-form-item label="参与人数" class="grid-content bg-purple" prop="name">
  1089 + <el-input v-model="zhixingList.expectedParticipation" placeholder="请输入" :disabled="!zhixingBian"/>
  1090 + </el-form-item>
  1091 + </el-col>
  1092 +
  1093 + <el-col :span="8">
  1094 + <el-form-item label="直接收益" class="grid-content bg-purple" prop="name">
  1095 + <el-input v-model="zhixingList.expectedDirectBenefits" placeholder="请输入" :disabled="!zhixingBian"/>
  1096 + </el-form-item>
  1097 + </el-col>
  1098 + </el-row>
  1099 + <el-row :gutter="20">
  1100 + <el-col :span="8">
  1101 + <el-form-item label="间接收益" class="grid-content bg-purple" prop="name">
  1102 + <el-input v-model="zhixingList.expectedIndirectBenefits" placeholder="请输入" :disabled="!zhixingBian"/>
  1103 + </el-form-item>
  1104 + </el-col>
  1105 +
  1106 + </el-row>
  1107 + <el-row :gutter="20">
  1108 + <el-col :span="24">
  1109 + <el-form-item label="反馈内容" class="grid-content bg-purple" prop="name">
  1110 + <el-upload class="upload-demo" ref="upload" :on-remove="handleRemove"
  1111 + :action="uploadFileUrl" :on-success="handleUploadSuccess" :file-list="fileData"
  1112 + :show-file-list="true" v-if="zhixingBian">
  1113 + <el-button style="background-color: #fff;color: #3F9B6A;border: 1px solid #dcdfe6;" class="buttonHover" v-if="fileData.length==0">+点击上传</el-button>
  1114 + </el-upload>
  1115 + <div v-else>{{zhixingList.feedbackContent}}</div>
  1116 + </el-form-item>
  1117 + </el-col>
  1118 +
  1119 + </el-row>
  1120 + </el-form>
  1121 + </div>
  1122 + </div>
  1123 +
  1124 + </div>
  1125 +
  1126 + </div>
  1127 + </div>
  1128 +
  1129 + </el-dialog>
759 1130 </div>
760 1131 </template>
761 1132  
... ... @@ -817,34 +1188,36 @@
817 1188 id: '',
818 1189 text: 123,
819 1190 tableData1: [{
820   - id: 0,
821   - name: '类型',
822   - planName: '',
823   - text: '活动地点',
824   - eventTheme: ''
825   - }, {
826   - id: 0,
827   - name: '活动开始时间',
828   - planName: '',
829   - text: '活动结束时间',
830   - eventTheme: ''
831   - }, {
832   - id: 0,
833   - name: '活动主题',
834   - planName: '',
835   - text: '活动主办方',
836   - eventTheme: ''
837   - }, {
838   - id: 0,
839   - name: '活动参与方',
840   - planName: '',
841   - text: '活动主要目的',
842   - eventTheme: ''
843   - }, {
844   - id: '5',
845   - name: '状态',
846   - eventTheme: '待审核'
847   - }],
  1191 + id:0,
  1192 + name: '类型',
  1193 + planName: '',
  1194 + text: '活动地点',
  1195 + eventTheme: ''
  1196 + },{
  1197 + id:0,
  1198 + name: '活动开始时间',
  1199 + planName: '',
  1200 + text: '活动结束时间',
  1201 + eventTheme: ''
  1202 + },{
  1203 + id:0,
  1204 + name: '活动主题',
  1205 + planName: '',
  1206 + text: '活动主办方',
  1207 + eventTheme: ''
  1208 + },{
  1209 + id:0,
  1210 + name: '活动参与方',
  1211 + planName: '',
  1212 + text: '活动主要目的',
  1213 + eventTheme: ''
  1214 + },{
  1215 + id:0,
  1216 + name: '范围设置',
  1217 + planName: '',
  1218 + text: '状态',
  1219 + eventTheme: ''
  1220 + }],
848 1221 internalLaborCostEstimation: '',
849 1222 externalLaborCostEstimation: '',
850 1223 tableData3: [{
... ... @@ -912,7 +1285,9 @@
912 1285 pageindex: {
913 1286 pageNumber: 1,
914 1287 pageSize: 10,
915   - dataOwnership: '2'
  1288 + dataOwnership: '2',
  1289 + isDraft:0,
  1290 + state:'待提交'
916 1291 },
917 1292 multipleSelection: [],
918 1293 options: [{
... ... @@ -926,6 +1301,9 @@
926 1301 children: 'children',
927 1302 label: 'classificationName'
928 1303 },
  1304 + dataList:[],
  1305 + zhixingBian:false,//判断是否编辑执行效果
  1306 +
929 1307 }
930 1308 },
931 1309 created() {
... ... @@ -990,6 +1368,8 @@
990 1368 dataOwnership: '2',
991 1369 pageNumber: 1,
992 1370 pageSize: 10,
  1371 + isDraft:0,
  1372 + state:'待提交'
993 1373 })
994 1374 this.tableData = res.data.content
995 1375 } else if (this.planName == '' && this.eventTheme != '') {
... ... @@ -998,6 +1378,8 @@
998 1378 dataOwnership: '2',
999 1379 pageNumber: 1,
1000 1380 pageSize: 10,
  1381 + isDraft:0,
  1382 + state:'待提交'
1001 1383 })
1002 1384 this.tableData = res.data.content
1003 1385 } else {
... ... @@ -1007,6 +1389,8 @@
1007 1389 dataOwnership: '2',
1008 1390 pageNumber: 1,
1009 1391 pageSize: 10,
  1392 + isDraft:0,
  1393 + state:'待提交'
1010 1394 })
1011 1395 this.tableData = res.data.content
1012 1396 }
... ... @@ -1094,6 +1478,7 @@
1094 1478 })
1095 1479 }
1096 1480 this.Liunie = false
  1481 + this.actSpye = false
1097 1482 },
1098 1483 TabClick(tab, event){
1099 1484 console.log(tab, event)
... ... @@ -1106,7 +1491,133 @@
1106 1491 }
1107 1492 this.getAll()
1108 1493  
1109   - }
  1494 + },
  1495 + //详情点击
  1496 + handleEditForm(item,val) {
  1497 + this.zhixingList={
  1498 + planTime: [],
  1499 + planName: '', //活动名称
  1500 + eventAddrs: '', //实际举办地点
  1501 + eventStartTime: 0, //实际开始时间
  1502 + eventEndTime: 0, //实际结束时间
  1503 + sponsor: '', //实际主办方
  1504 + participants: '', //实际参与方
  1505 + internalLaborCostEstimation: '', //内部人工成本
  1506 + externalLaborCostEstimation: '', //外部人工成本
  1507 + costEstimationGoods: '', //商品成本
  1508 + setCostEstimate: '', //设备成本
  1509 + estimatedPromotionalExpenses: '', //宣传费用预估
  1510 + otherNecessaryEstimates: '', //其他成本预估
  1511 + totalCostEstimation: '', //总成本预估
  1512 + notes: '', //备注
  1513 + expectedAttractTraffic: '', //吸引流量
  1514 + expectedParticipation: '', //参与人数
  1515 + expectedDirectBenefits: '', //直接收益
  1516 + expectedIndirectBenefits: '', //间接收益
  1517 + createDate:'',//创建时间
  1518 + }//执行效果列表
  1519 + actPage({
  1520 + detailsId:item.id,
  1521 + pageNumber: 1,
  1522 + pageSize: 10,
  1523 + }).then(res=>{
  1524 + console.log(res.data.content)
  1525 + if(res.data.content.length == 0){
  1526 + this.zhiXing = true
  1527 +
  1528 + }else{
  1529 + mingTable({
  1530 + detailsId:res.data.content[0].id,
  1531 + pageNumber: 1,
  1532 + pageSize: 10,
  1533 + }).then(res=>{
  1534 + this.tableDa = res.data.content
  1535 + })
  1536 + this.zhiXing = false
  1537 + this.zhixingList = res.data.content[0]
  1538 + if((typeof this.zhixingList.eventStartTime) == 'object' || (typeof this.zhixingList.eventEndTime) == 'object' ){
  1539 + this.zhixingList.planTime = []
  1540 + }else{
  1541 + console.log(typeof this.zhixingList.eventStartTime)
  1542 + this.zhixingList.planTime = [ this.zhixingList.eventStartTime, this.zhixingList.eventEndTime]
  1543 + }
  1544 + }
  1545 + })
  1546 + this.idX = item.id
  1547 + this.planTime=[item.eventStartTime,item.eventEndTime]
  1548 + let that = this
  1549 +
  1550 + fujiaTable({
  1551 + detailsId:item.id,
  1552 + pageNumber: 1,
  1553 + pageSize: 10,
  1554 + }).then(res=>{
  1555 + this.tableData6 = res.data.content
  1556 + })
  1557 + mingTable({
  1558 + detailsId:item.id,
  1559 + pageNumber: 1,
  1560 + pageSize: 10,
  1561 + }).then(res=>{
  1562 + this.tableData2 = res.data.content
  1563 + })
  1564 +
  1565 + danqueryById({id:item.id,dataOwnership:'2', pageNumber: 1,pageSize: 10,}).then(res=>{
  1566 + this.secondData = res.data.content[0]
  1567 + //基本信息
  1568 + // that.id=res.data.content[0].id
  1569 + that.text=res.data.content[0].planName
  1570 + that.tableData1[0].eventTheme =res.data.content[0].planType
  1571 + that.tableData1[0].planName = res.data.content[0].eventAddrs
  1572 + that.tableData1[1].eventTheme = res.data.content[0].eventStartTime
  1573 + that.tableData1[1].planName = res.data.content[0].eventEndTime
  1574 + that.tableData1[2].eventTheme =res.data.content[0].eventTheme
  1575 + that.tableData1[2].planName = res.data.content[0].sponsor
  1576 + that.tableData1[3].eventTheme = res.data.content[0].participants
  1577 + that.tableData1[3].planName = res.data.content[0].mainPurpose
  1578 + that.tableData1[4].planName = this.getStatus(res.data.content[0].state)
  1579 + that.tableData1[4].eventTheme = res.data.content[0].rangeSetting
  1580 + //活动成本信息
  1581 + that.internalLaborCostEstimation=res.data.content[0].internalLaborCostEstimation
  1582 + that.externalLaborCostEstimation=res.data.content[0].externalLaborCostEstimation
  1583 + that.tableData3[0].eventTheme = res.data.content[0].costEstimationGoods
  1584 + that.tableData3[0].planName = res.data.content[0].setCostEstimate
  1585 + that.tableData3[1].eventTheme = res.data.content[0].estimatedPromotionalExpenses
  1586 + that.tableData3[1].planName = res.data.content[0].otherNecessaryEstimates
  1587 + that.tableData3[2].eventTheme = res.data.content[0].totalCostEstimation
  1588 + that.tableData3[2].planName = res.data.content[0].notes
  1589 + //预估效果
  1590 + that.expectedAttractTraffic=res.data.content[0].expectedAttractTraffic
  1591 + that.expectedParticipation=res.data.content[0].expectedParticipation
  1592 + that.tableData4[0].eventTheme = res.data.content[0].expectedDirectBenefits
  1593 + that.tableData4[0].planName = res.data.content[0].expectedIndirectBenefits
  1594 + //系统信息
  1595 + that.createUser = res.data.content[0].createUser
  1596 + that.createDate = res.data.content[0].createDate
  1597 + that.tableData5[0].planName = '-'
  1598 + that.tableData5[0].eventTheme = res.data.content[0].updateUser
  1599 +
  1600 +
  1601 + }).catch(err=>{
  1602 + console.log(err)
  1603 +
  1604 + })
  1605 + if (!item) {
  1606 + this.formItem = {}
  1607 + } else {
  1608 + this.formItem = item
  1609 + }
  1610 + this.ggXin = true
  1611 + },
  1612 + refreshData(){
  1613 + // console.log('12123')
  1614 + this.tableDa = []
  1615 + this.activeName = 'first'
  1616 + this.zhixingBian = false
  1617 + },
  1618 + formTime(data){
  1619 + this.zhixingList.planTime = data
  1620 + },
1110 1621 }
1111 1622 }
1112 1623 </script>
... ... @@ -1127,7 +1638,10 @@
1127 1638 line-height: 0;
1128 1639 }
1129 1640  
1130   -
  1641 + .tableBtn {
  1642 + display: inline-block;
  1643 + margin-right: 10px;
  1644 + }
1131 1645  
1132 1646 .formSearch {
1133 1647 display: flex;
... ...
admin-web-master/src/views/member/tips/index.vue
1 1 <template>
  2 + <div style="background-color:#f7f7f7;padding:10px 10px;">
2 3 <div class="tipStyle">
  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>
3 7 <!-- 搜索 -->
4 8 <div class="topSearch">
5 9 <div class="formSearch">
... ... @@ -14,22 +18,23 @@
14 18 </el-select>
15 19 </el-form-item>
16 20 <el-form-item>
17   - <el-button type="primary" plain @click="search">查询</el-button>
18   - <el-button plain @click="clear">重置</el-button>
  21 + <el-button style="background-color: #3F9B6A;color: #fff" @click="search">查询</el-button>
  22 + <el-button class="buttonHover"
  23 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;" @click="clear">重置</el-button>
19 24 </el-form-item>
20 25 </el-form>
21 26 </div>
22   - <div class="rightBTn">
23   - <el-button type="primary" @click="addTips">新建标签</el-button>
24   - <el-button @click="exportTips">导出标签</el-button>
25   - </div>
  27 +
  28 + </div>
  29 + <div style="margin-bottom: 20px;">
  30 + <el-button style="background-color: #3F9B6A;color: #fff" @click="addTips">新建标签</el-button>
  31 + <el-button style="background-color: #3F9B6A;color: #fff" @click="exportTips">导出标签</el-button>
26 32 </div>
27 33 <!-- 表格 -->
28 34 <div class="tableBox">
29 35 <el-table
30 36 :data="tableData"
31   - border
32   - :header-cell-style="{ background: '#EEF3FF', color: '#333333' }"
  37 + :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}"
33 38 tooltip-effect="dark"
34 39 style="width: 100%"
35 40 @selection-change="handleSelectionChange"
... ... @@ -53,10 +58,9 @@
53 58 </el-table-column>
54 59 <el-table-column label="操作">
55 60 <template slot-scope="scope">
56   - <div class="btnList">
57   - <el-button type="text" @click="edit(scope.row)">编辑</el-button>
58   - <el-button type="text" @click="deleteTips(scope.row)">删除</el-button>
59   - </div>
  61 + <div @click="edit(scope.row)" class="tableBtn greens">编辑</div>
  62 + <div @click="deleteTips(scope.row)" class="tableBtn greens">删除</div>
  63 +
60 64 </template>
61 65 </el-table-column>
62 66 </el-table>
... ... @@ -100,6 +104,7 @@
100 104 </el-dialog>
101 105 <tips-form ref="tipsForm" @reset="reset" />
102 106 </div>
  107 + </div>
103 108 </template>
104 109  
105 110 <script>
... ... @@ -240,17 +245,10 @@ export default {
240 245 <style scoped lang='scss'>
241 246 @import url("../../../styles/elDialog.scss");
242 247 .tipStyle {
243   - padding: 20px;
244   - .topSearch {
245   - display: flex;
246   - justify-content: space-between;
247   - align-items: center;
248   - .formSearch,
249   - .rightBTn {
250   - margin-left: 20px;
251   - }
  248 + padding: 0 20px 20px 20px;
  249 + min-height: calc(100vh - 50px - 20px);
  250 + background-color: #Fff;
252 251 }
253   -}
254 252 .diaddStyle {
255 253 h1 {
256 254 text-align: center;
... ... @@ -276,4 +274,18 @@ export default {
276 274 background-color: #fff;
277 275 border-top: 0;
278 276 }
  277 + .tableBtn {
  278 + display: inline-block;
  279 + margin-right: 10px;
  280 + }
  281 +
  282 + .greens {
  283 + color: #3F9B6A ;
  284 + }
  285 + ::v-deep .buttonHover:hover{
  286 + color:#3f9b6a !important;
  287 + border-color: #c5e1d2 !important;
  288 + background-color: #ecf5f0 !important;
  289 + outline: none;
  290 + }
279 291 </style>
... ...
admin-web-master/src/views/member/tips/tipsForm.vue
... ... @@ -120,8 +120,9 @@
120 120 </div>
121 121 <div class="footer">
122 122 <div class="btn_list">
123   - <el-button @click="back">取消</el-button>
124   - <el-button type="primary" @click="save">保存</el-button>
  123 + <el-button class="buttonHover"
  124 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;" @click="back">取消</el-button>
  125 + <el-button style="background-color: #3F9B6A;color: #fff" @click="save">保存</el-button>
125 126 </div>
126 127 </div>
127 128 </div>
... ... @@ -319,4 +320,10 @@ export default {
319 320 padding: 0 8px;
320 321 }
321 322 }
  323 + ::v-deep .buttonHover:hover{
  324 + color:#3f9b6a !important;
  325 + border-color: #c5e1d2 !important;
  326 + background-color: #ecf5f0 !important;
  327 + outline: none;
  328 + }
322 329 </style>
... ...
admin-web-master/src/views/revenue/details/index.vue
... ... @@ -10,22 +10,27 @@
10 10  
11 11 <!-- 顶部搜索 -->
12 12 <div class="toolbar">
13   - <el-form ref="formParams" :inline="true" :model="formParams">
  13 + <el-form ref="formParams" :inline="true" :model="pageIndex">
14 14 <el-form-item label="渠道">
15 15 <el-select placeholder="全部"
16   - style="width: 168px;margin-right: 15px">
17   - <el-option label="1" value="1" />
  16 + v-model="pageIndex.ticketChannel"
  17 + style="width: 120px;margin-right: 15px">
  18 + <el-option label="大麦" value="大麦" />
  19 + <el-option label="猫眼" value="猫眼" />
  20 + <el-option label="携程" value="携程" />
  21 + <el-option label="美团" value="美团" />
18 22 </el-select>
19 23 </el-form-item>
20 24 <el-form-item label="票种">
21   - <el-select placeholder="全部"
22   - style="width: 168px;margin-right: 15px">
23   - <el-option label="1" value="1" />
  25 + <el-select placeholder="全部" v-model="pageIndex.ticketType"
  26 + style="width: 120px;margin-right: 15px">
  27 + <el-option label="电影票" value="电影票" />
  28 + <el-option label="演唱会票" value="演唱会票" />
24 29 </el-select>
25 30 </el-form-item>
26 31 <el-form-item label="日期">
27 32 <el-date-picker
28   - v-model="formParams.dates"
  33 + v-model="pageIndex.list"
29 34 type="daterange"
30 35  
31 36 range-separator="至"
... ... @@ -36,11 +41,11 @@
36 41 </el-form-item>
37 42  
38 43 <el-form-item label-width="0">
39   - <el-button @click="search('formParams')" style="background-color: #3F9B6A;color: #fff;">查询</el-button>
40   - <el-button @click="clear('formParams')" class="buttonHover"
  44 + <el-button @click="search" style="background-color: #3F9B6A;color: #fff;">查询</el-button>
  45 + <el-button @click="clear" class="buttonHover"
41 46 style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;">重置</el-button>
42 47 </el-form-item>
43   - <!-- <el-button style="background-color: #fff;color: #000;float:right;">导出</el-button> -->
  48 + <el-button style="background-color: #3F9B6A;color: #fff" @click="daochu">导出</el-button>
44 49 </el-form>
45 50 </div>
46 51 </div>
... ... @@ -55,22 +60,19 @@
55 60 :data="tableData.slice((currentPage - 1) * pageSize, currentPage * pageSize)"
56 61 :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}"
57 62 >
58   - <el-table-column prop="id" label="序号" />
59   - <el-table-column label="内容" :show-overflow-tooltip="true">
60   - <template slot-scope="scope">
61   - <span>站内信</span>
62   - </template>
63   - </el-table-column>
64   - <el-table-column prop="id" label="渠道">
65   - <template slot-scope="scope">
66   - <span>站内信</span>
67   - </template>
68   - </el-table-column>
69   - <el-table-column prop="name" label="票种" />
70   - <el-table-column prop="name" label="票名" />
71   - <el-table-column prop="amount1" label="销售数量(张)" />
72   - <el-table-column prop="amount2" label="客单价(元)" />
73   - <el-table-column prop="amount3" label="销售金额(元)" />
  63 + <el-table-column label="序号" >
  64 + <template slot-scope="scope">
  65 + {{scope.$index +1}}
  66 + </template>
  67 + </el-table-column>
  68 + <el-table-column prop="ticketChannel" label="渠道">
  69 +
  70 + </el-table-column>
  71 + <el-table-column prop="ticketType" label="票种" />
  72 + <el-table-column prop="ticketName" label="票名" />
  73 + <el-table-column prop="num" label="销售数量(张)" />
  74 + <el-table-column prop="ticketPrice" label="客单价(元)" />
  75 + <el-table-column prop="price" label="销售金额(元)" />
74 76 <!-- <el-table-column label="操作">
75 77 <template slot-scope="scope">
76 78 <el-button type="text" style="background-color: transparent;color: #3F9B6A;;border: none;">详情</el-button>
... ... @@ -94,7 +96,7 @@
94 96 </template>
95 97  
96 98 <script>
97   -
  99 +import {getSalesParticular,excelToSalesParticular} from '@/api/piaowu'
98 100 export default {
99 101 data() {
100 102 return {
... ... @@ -106,54 +108,17 @@ export default {
106 108 page: 1,
107 109 pageSize: 10
108 110 },
109   - tipsList: [{
110   - id: 1,
111   - name: '系统消息'
112   - },
113   - {
114   - id: 2,
115   - name: '公告'
116   - },
117   - {
118   - id: 3,
119   - name: '站内信'
120   - }],
121   - tableData: [{
122   - id: '1',
123   - name: '2',
124   - amount1: '34',
125   - amount2: '54',
126   - amount3: 10
127   - }, {
128   - id: '2',
129   - name: '7',
130   - amount1: '6',
131   - amount2: '5',
132   - amount3: 12
133   - }, {
134   - id: '2',
135   - name: '2',
136   - amount1: '2',
137   - amount2: '4',
138   - amount3: 9
139   - }, {
140   - id: '435',
141   - name: '王小虎',
142   - amount1: '234',
143   - amount2: '23',
144   - amount3: 17
145   - }, {
146   - id: '345',
147   - name: '34',
148   - amount1: '64',
149   - amount2: '4.1',
150   - amount3: 15
151   - }],
152   - rules: {
153   - noticeType: [
154   - { required: true, message: '请选择消息类型', trigger: 'change' }
155   - ]
156   - },
  111 + tipsList: [],
  112 + tableData: [],
  113 + pageIndex:{
  114 + list: [],
  115 +     page: 1,
  116 +     pageSize: 10,
  117 +     startTime:"",
  118 +     endTime:"",
  119 +     ticketChannel:"",
  120 +     ticketType:""
  121 + },
157 122  
158 123 }
159 124 },
... ... @@ -161,6 +126,32 @@ export default {
161 126 this.getAll()
162 127 },
163 128 methods: {
  129 + async getAll(){
  130 + let res = await getSalesParticular(this.pageIndex)
  131 + this.tableData = res.data.list
  132 + this.total = res.data.total
  133 +
  134 +
  135 + },
  136 + search(){
  137 + if(this.pageIndex.list.length !=0){
  138 + this.pageIndex.startTime = this.pageIndex.list[0]
  139 + this.pageIndex.endTime = this.pageIndex.list[1]
  140 + }
  141 + this.getAll()
  142 + },
  143 + clear(){
  144 + this.pageIndex = {
  145 + list: [],
  146 +     page: 1,
  147 +     pageSize: 10,
  148 +     startTime:"",
  149 +     endTime:"",
  150 +     ticketChannel:"",
  151 +     ticketType:""
  152 + }
  153 + this.getAll()
  154 + },
164 155 getSummaries(param) {
165 156 const { columns, data } = param;
166 157 const sums = [];
... ... @@ -189,7 +180,34 @@ export default {
189 180 });
190 181  
191 182 return sums;
192   - }
  183 +
  184 + },
  185 + async daochu(){
  186 + let res = await excelToSalesParticular(this.pageIndex)
  187 + if(!res){
  188 + return
  189 + }
  190 + const blob = new Blob([res], { type: 'application/vnd.ms-excel' })
  191 + const fileName = '销售额明细表.xls'
  192 + if ('download' in document.createElement('a')) {
  193 + // 非IE下载
  194 + const elink = document.createElement('a')
  195 + elink.download = fileName
  196 + elink.style.display = 'none'
  197 + elink.href = URL.createObjectURL(blob)
  198 + document.body.appendChild(elink)
  199 + elink.click()
  200 + URL.revokeObjectURL(elink.href) // 释放URL 对象
  201 + document.body.removeChild(elink)
  202 + } else {
  203 + // IE10+下载
  204 + navigator.msSaveBlob(blob, fileName)
  205 + }
  206 + this.$message({
  207 + message: '导出成功',
  208 + type: 'success'
  209 + })
  210 +
193 211 },
194 212 handleCurrentChange(val) {
195 213 this.currentPage = val
... ... @@ -197,7 +215,7 @@ export default {
197 215 handleSizeChange(val) {
198 216 this.pageSize = val
199 217 },
200   -
  218 + }
201 219 }
202 220 </script>
203 221  
... ...
admin-web-master/src/views/revenue/totalsales/index.vue
... ... @@ -10,10 +10,27 @@
10 10  
11 11 <!-- 顶部搜索 -->
12 12 <div class="toolbar">
13   - <el-form ref="formParams" :inline="true" :model="formParams">
  13 + <el-form ref="formParams" :inline="true" :model="pageIndex">
  14 + <el-form-item label="渠道">
  15 + <el-select placeholder="全部"
  16 + v-model="pageIndex.ticketChannel"
  17 + style="width: 120px;margin-right: 15px">
  18 + <el-option label="大麦" value="大麦" />
  19 + <el-option label="猫眼" value="猫眼" />
  20 + <el-option label="携程" value="携程" />
  21 + <el-option label="美团" value="美团" />
  22 + </el-select>
  23 + </el-form-item>
  24 + <el-form-item label="票种">
  25 + <el-select placeholder="全部" v-model="pageIndex.ticketType"
  26 + style="width: 120px;margin-right: 15px">
  27 + <el-option label="电影票" value="电影票" />
  28 + <el-option label="演唱会票" value="演唱会票" />
  29 + </el-select>
  30 + </el-form-item>
14 31 <el-form-item label="日期">
15 32 <el-date-picker
16   - v-model="formParams.dates"
  33 + v-model="pageIndex.list"
17 34 type="daterange"
18 35  
19 36 range-separator="至"
... ... @@ -30,6 +47,9 @@
30 47 </el-form-item>
31 48 </el-form>
32 49 </div>
  50 + <div>
  51 + <el-button style="background-color: #3F9B6A;color: #fff" @click="daochu">导出</el-button>
  52 + </div>
33 53 </div>
34 54 <!-- 表格 -->
35 55 <div class="content_table" style="padding: 15px 10px 10px 20px;background-color:#F2F3F5">
... ... @@ -38,21 +58,21 @@
38 58 <div style="display:flex;font-size:14px;justify-content: space-around">
39 59 <div style="width:10%;border-right:1px solid #F2F2F2">
40 60 <div style="margin-bottom: 10px;font-weight: 600;">总销售额(元)</div>
41   - <div style="font-weight: 600;">100,000.00</div>
  61 + <div style="font-weight: 600;">{{moyeOne}}</div>
42 62 </div>
43 63 <div style="width:10%;border-right:1px solid #F2F2F2">
44 64 <div style="margin-bottom: 10px;font-weight: 600;">美团销售总额(元)</div>
45   - <div style="font-weight: 600;">100,000.00</div>
  65 + <div style="font-weight: 600;">{{meimoye}}</div>
46 66 </div>
47 67 <div style="width:10%;border-right:1px solid #F2F2F2">
48 68 <div style="margin-bottom: 10px;font-weight: 600;">大麦销售总额(元)</div>
49   - <div style="font-weight: 600;">100,000.00</div>
  69 + <div style="font-weight: 600;">{{moyeTwo}}</div>
50 70 </div>
51 71 <div style="width:10%;border-right:1px solid #F2F2F2">
52 72 <div style="margin-bottom: 10px;font-weight: 600;">携程销售总额(元)</div>
53   - <div style="font-weight: 600;">100,000.00</div>
  73 + <div style="font-weight: 600;">{{moyethree}}</div>
54 74 </div>
55   - <div style="width:10%;border-right:1px solid #F2F2F2">
  75 + <!-- <div style="width:10%;border-right:1px solid #F2F2F2">
56 76 <div style="margin-bottom: 10px;font-weight: 600;">票种1销售总额(元)</div>
57 77 <div style="font-weight: 600;">100,000.00</div>
58 78 </div>
... ... @@ -63,7 +83,7 @@
63 83 <div style="width:10%">
64 84 <div style="margin-bottom: 10px;font-weight: 600;">票种2销售总额(元)</div>
65 85 <div style="font-weight: 600;">100,000.00</div>
66   - </div>
  86 + </div> -->
67 87 </div>
68 88 </div>
69 89 </div>
... ... @@ -72,10 +92,10 @@
72 92 <div style="background-color: #fff;padding: 10px;margin-right: 10px;width: 32%;">
73 93 <div style="display: flex;border-bottom:1px solid #F2F2F2;justify-content: space-between;padding: 5px; 0 15px 0">
74 94 <div style="line-height: 200%;">总销售额趋势表</div>
75   - <!-- <el-button style="background-color: #fff;color: #000;">导出</el-button> -->
  95 + <!-- <el-button style="background-color: #3F9B6A;color: #fff">导出</el-button> -->
76 96 </div>
77 97 <div style="margin:10px 0 15px 0">
78   - <el-date-picker
  98 + <!-- <el-date-picker
79 99  
80 100 v-model="value1"
81 101 value-format="yyyy-mm-dd"
... ... @@ -83,26 +103,26 @@
83 103 range-separator="至"
84 104 start-placeholder="开始日期"
85 105 end-placeholder="结束日期">
86   - </el-date-picker>
  106 + </el-date-picker> -->
87 107 </div>
88 108 <div style="color:#000">单位:张</div>
89 109 <!-- 折线图-->
90   - <div ref="container" style="width: 400px; height: 400px;"></div>
  110 + <div ref="container1" style="width: 400px; height: 400px;"></div>
91 111  
92 112 </div>
93 113 <div style="background-color: #fff;padding: 10px;margin-right: 10px;width: 32%;">
94 114 <div style="display: flex;border-bottom:1px solid #F2F2F2;justify-content: space-between;padding: 5px; 0 15px 0">
95 115 <div style="line-height: 200%;">渠道销售情况表</div>
96   - <!-- <el-button style="background-color: #fff;color: #000;">导出</el-button> -->
  116 + <!-- <el-button style="background-color: #3F9B6A;color: #fff">导出</el-button> -->
97 117 </div>
98   - <div style="margin:10px 0 15px 0">
  118 + <!-- <div style="margin:10px 0 15px 0">
99 119 <el-radio-group v-model="radio1">
100 120 <el-radio-button label="全部"></el-radio-button>
101 121 <el-radio-button label="美团"></el-radio-button>
102 122 <el-radio-button label="大麦"></el-radio-button>
103 123 <el-radio-button label="携程"></el-radio-button>
104 124 </el-radio-group>
105   - </div>
  125 + </div> -->
106 126 <div style="color:#000">单位:元</div>
107 127 <!-- 柱状图-->
108 128 <div ref="container2" style="width: 400px; height: 400px;"></div>
... ... @@ -111,16 +131,16 @@
111 131 <div style="background-color: #fff;padding: 10px;width: 32%;">
112 132 <div style="display: flex;border-bottom:1px solid #F2F2F2;justify-content: space-between;padding: 5px; 0 15px 0">
113 133 <div style="line-height: 200%;">票种销售额情况表</div>
114   - <!-- <el-button style="background-color: #fff;color: #000;">导出</el-button> -->
  134 + <!-- <el-button style="background-color: #3F9B6A;color: #fff">导出</el-button> -->
115 135 </div>
116   - <div style="margin:10px 0 15px 0">
  136 + <!-- <div style="margin:10px 0 15px 0">
117 137 <el-radio-group v-model="radio2">
118 138 <el-radio-button label="全部"></el-radio-button>
119 139 <el-radio-button label="票种1"></el-radio-button>
120 140 <el-radio-button label="票种2"></el-radio-button>
121 141 <el-radio-button label="票种3"></el-radio-button>
122 142 </el-radio-group>
123   - </div>
  143 + </div> -->
124 144 <div style="color:#000">单位:元</div>
125 145 <!-- 柱状图-->
126 146 <div ref="container3" style="width: 400px; height: 400px;"></div>
... ... @@ -135,13 +155,13 @@
135 155  
136 156 <script>
137 157 import * as echarts from 'echarts';
  158 +import {getTotalSales,excelToTotalSales} from '@/api/piaowu'
138 159 export default {
139 160 data() {
140 161 return {
141 162 value1:'',
142 163 radio1:'',
143 164 radio2:'',
144   - list: [],
145 165 total: 1,
146 166 pageSize: 10,
147 167 currentPage: 1,
... ... @@ -149,77 +169,46 @@ export default {
149 169 page: 1,
150 170 pageSize: 10
151 171 },
152   - tipsList: [{
153   - id: 1,
154   - name: '系统消息'
155   - },
156   - {
157   - id: 2,
158   - name: '公告'
159   - },
160   - {
161   - id: 3,
162   - name: '站内信'
163   - }],
164   - tableData: [{
165   - id: '1',
166   - name: '王小虎',
167   - amount1: '234',
168   - amount2: '3.2',
169   - amount3: 10
170   - }, {
171   - id: '4',
172   - name: '5',
173   - amount1: '165',
174   - amount2: '4.43',
175   - amount3: 12
176   - }, {
177   - id: '12987124',
178   - name: '6',
179   - amount1: '6',
180   - amount2: '1.9',
181   - amount3: 9
182   - }, {
183   - id: '234',
184   - name: '534',
185   - amount1: '621',
186   - amount2: '2.2',
187   - amount3: 17
188   - }, {
189   - id: '34',
190   - name: '623',
191   - amount1: '539',
192   - amount2: '4.1',
193   - amount3: 15
194   - }],
  172 + tipsList: [],
  173 + tableData: [],
195 174 chart1:null,
196 175 chart2:null,
197 176 chart3:null,
198   - rules: {
199   - noticeType: [
200   - { required: true, message: '请选择消息类型', trigger: 'change' }
201   - ]
202   - },
203   -
  177 + pageIndex:{
  178 + list: [],
  179 +     page: 1,
  180 +     pageSize: 10,
  181 +     startTime:"",
  182 +     endTime:"",
  183 +     ticketChannel:"",
  184 +     ticketType:""
  185 + },
  186 +numOne:0,
  187 + moyeOne:0,
  188 + numTwo:0,
  189 + moyeTwo:0,
  190 + meimoye:0,
  191 + numthree:0,
  192 + moyethree:0,
204 193 }
205 194 },
206 195 mounted() {
207   - // this.getAll()
208   - this.echar(this.$refs.container)
209   -
210   - this.echar2(this.$refs.container2)
211   -
212   - this.echar3(this.$refs.container3)
213   - this.resizeChart = () => {
214   - try {
215   - this.chart.resize()
216   - this.chart2.resize()
217   - this.chart3.resize()
218   - } catch (error) {
219   - console.log(error);
220   - }
221   - };
222   - window.addEventListener('resize', this.resizeChart, false); // false代表事件句柄在冒泡阶段执行
  196 + this.getAll()
  197 + // this.echar(this.$refs.container)
  198 + // console.log(this.$refs.container2)
  199 + // this.echar2(this.$refs.container2)
  200 +
  201 + // this.echar3(this.$refs.container3)
  202 + // this.resizeChart = () => {
  203 + // try {
  204 + // this.chart.resize()
  205 + // this.chart2.resize()
  206 + // this.chart3.resize()
  207 + // } catch (error) {
  208 + // console.log(error);
  209 + // }
  210 + // };
  211 + // window.addEventListener('resize', this.resizeChart, false); // false代表事件句柄在冒泡阶段执行
223 212  
224 213 // this.$nextTick(() => {
225 214 // this.echar(this.$refs.container)
... ... @@ -239,177 +228,184 @@ export default {
239 228 },
240 229  
241 230 methods: {
242   - echar(diameter) {
243   - this.chart1 = echarts.init(diameter);
  231 + async getAll(){
  232 + let res = await getTotalSales(this.pageIndex)
  233 + this.tableData = res.data.list
  234 + this.total = res.data.total
  235 +
  236 + // this.echar(res.data.list)
  237 + let numOne =0
  238 + let moyeOne =0
  239 + let meimoye = 0
  240 + let numTwo =0
  241 + let moyeTwo =0
  242 + let numthree=0
  243 + let moyethree =0
  244 +
  245 + this.tableData.map(item=>{
  246 + moyeOne += Number(item.price)
  247 + if(item.ticketChannel == '美团'){
  248 + numOne += item.num
  249 + meimoye = meimoye + Number(item.price)
  250 + }
  251 + if(item.ticketChannel == '大麦'){
  252 + numTwo += item.num
  253 +
  254 + moyeTwo = moyeTwo + Number(item.price)
  255 + }
  256 + if(item.ticketChannel == '携程'){
  257 + numthree += item.num
  258 +
  259 + moyethree = moyethree + Number(item.price)
  260 + }
  261 + })
  262 + this.numOne = numOne
  263 + this.moyeOne = moyeOne
  264 + this.numTwo = numTwo
  265 + this.moyeTwo = moyeTwo
  266 + this.meimoye = meimoye
  267 + this.numthree = numthree
  268 +this.moyethree = moyethree
  269 +this.echar2(this.tableData)
  270 +this.echar3( this.tableData)
  271 +this.echar( this.tableData)
  272 + },
  273 + search(){
  274 + if(this.pageIndex.list.length !=0){
  275 + this.pageIndex.startTime = this.pageIndex.list[0]
  276 + this.pageIndex.endTime = this.pageIndex.list[1]
  277 + }
  278 + this.getAll()
  279 + },
  280 + clear(){
  281 + this.pageIndex = {
  282 + list: [],
  283 +     page: 1,
  284 +     pageSize: 10,
  285 +     startTime:"",
  286 +     endTime:"",
  287 +     ticketChannel:"",
  288 +     ticketType:""
  289 + }
  290 + this.getAll()
  291 + },
  292 + echar(datas) {
  293 + let Dom = this.$refs.container1
  294 + let myChart = echarts.init(Dom)
  295 + // let processedData = datas.map(item => ({
  296 + // name: item.ticketChannel,
  297 + // value: item.num
  298 + // }))
  299 + let processedData = datas.reduce((accumulator, item) => {
  300 + // 查找当前名称是否已经存在于累加器中
  301 + let existingItemIndex = accumulator.findIndex(i => i.name === item.time);
  302 +
  303 + // 如果存在,则累加值
  304 + if (existingItemIndex !== -1) {
  305 + accumulator[existingItemIndex].value += item.num;
  306 + } else {
  307 + // 如果不存在,则添加新项
  308 + accumulator.push({ name: item.time, value: item.num });
  309 + }
  310 +
  311 + return accumulator;
  312 + }, []); // 初始值为空数组
  313 + console.log(processedData)
  314 + // this.chart1 = echarts.init(diameter);
244 315 // 指定图表的配置项和数据
245   - const option = {
  316 + let option = {
246 317 xAxis: {
247 318 type: 'category',
248   - data: ['周一', '周二', '周三', '周四', '周五', '周六', '周天']
249   - },
  319 + data:processedData.map(item => item.name),
  320 + },
250 321 yAxis: {
251 322 type: 'value'
252 323 },
253 324 series: [
254 325 {
255   - data: [150, 230, 224, 218, 135, 147, 260],
256   - type: 'line'
  326 + data:processedData.map(item => item.value),
  327 + type: 'line',
257 328 }
258 329 ]
259   - }
  330 + }
260 331  
261 332 // 使用刚指定的配置项和数据显示图表。
262   - this.chart1.setOption(option)
  333 + option && myChart.setOption(option);
263 334 },
264   - echar2(diameter) {
265   - this.chart2= echarts.init(diameter);
  335 + echar2(datas) {
  336 + let Dom = this.$refs.container2
  337 + let myChart = echarts.init(Dom)
  338 + let processedData = datas.reduce((accumulator, item) => {
  339 + // 查找当前名称是否已经存在于累加器中
  340 + let existingItemIndex = accumulator.findIndex(i => i.name === item.ticketChannel);
  341 +
  342 + // 如果存在,则累加值
  343 + if (existingItemIndex !== -1) {
  344 + accumulator[existingItemIndex].value += Number(item.price);
  345 + } else {
  346 + // 如果不存在,则添加新项
  347 + accumulator.push({ name: item.ticketChannel, value:Number(item.price)});
  348 + }
  349 +
  350 + return accumulator;
  351 + }, []); // 初始值为空数组
  352 + // this.chart2= echarts.init(diameter);
266 353 let option = {
267 354 xAxis: {
268 355 type: 'category',
269   - data: ['周一', '周二', '周三', '周四', '周五', '周六', '周天']
  356 + data:processedData.map(item => item.name),
270 357 },
271 358 yAxis: {
272 359 type: 'value'
273 360 },
274 361 series: [
275 362 {
276   - data: [
277   - 120,
278   - {
279   - value: 200,
280   -
281   - itemStyle: {
282   - color: '#000'
283   - }
284   - },
285   - {
286   - value: 150,
287   - itemStyle: {
288   - color: '#a90000'
289   - }
290   - },
291   - 80,
292   - 70,
293   - 110,
294   - 130
295   - ],
  363 + data:processedData.map(item => item.value),
296 364 type: 'bar'
297   - }
298   - ]
299   - };
300   -// const labelOption = {
301   -// show: true,
302   -// position:'top',
303   -// distance: 15,
304   -// align: 'center',
305   -// verticalAlign: 'top',
306   -// rotate:top,
307   -// fontSize: 16,
308   -
309   -// }
310   -// // 指定图表的配置项和数据
311   -// let option = {
312   -// toolbox: {
313   -// show: true,
314   -// orient: 'vertical',
315   -// left: 'right',
316   -// top: 'center',
317   -// },
318   -// xAxis: [
319   -// {
320   -// type: 'category',
321   -// axisTick: { show: false },
322   -// data: ['2012', '2013', '2014', '2015', '2016']
323   -// }
324   -// ],
325   -// yAxis: [
326   -// {
327   -// type: 'value'
328   -// }
329   -// ],
330   -// series: [
331   -// {
332   -// name: 'Forest',
333   -// type: 'bar',
334   -// barGap: 0,
335   -// label: labelOption,
336   -// emphasis: {
337   -// focus: 'series'
338   -// },
339   -// data: [320, 332, 301, 334, 390]
340   -// },
341   -// {
342   -// name: 'Steppe',
343   -// type: 'bar',
344   -// label: labelOption,
345   -// emphasis: {
346   -// focus: 'series'
347   -// },
348   -// data: [220, 182, 191, 234, 290]
349   -// },
350   -// {
351   -// name: 'Desert',
352   -// type: 'bar',
353   -// label: labelOption,
354   -// emphasis: {
355   -// focus: 'series'
356   -// },
357   -// data: [150, 232, 201, 154, 190]
358   -// },
359   -// {
360   -// name: 'Wetland',
361   -// type: 'bar',
362   -// label: labelOption,
363   -// emphasis: {
364   -// focus: 'series'
365   -// },
366   -// data: [98, 77, 101, 99, 40]
367   -// }
368   -// ]
369   -// }
  365 + },
370 366  
371   - // 使用刚指定的配置项和数据显示图表。
372   - this.chart2.setOption(option)
  367 + ],
  368 +
  369 + };
  370 + option && myChart.setOption(option);
373 371 },
374   - echar3(diameter) {
375   - this.chart3 = echarts.init(diameter);
  372 + echar3(datas) {
  373 + let Dom = this.$refs.container3
  374 + let myChart = echarts.init(Dom)
  375 + let processedData = datas.reduce((accumulator, item) => {
  376 + // 查找当前名称是否已经存在于累加器中
  377 + let existingItemIndex = accumulator.findIndex(i => i.name === item.ticketType);
  378 +
  379 + // 如果存在,则累加值
  380 + if (existingItemIndex !== -1) {
  381 + accumulator[existingItemIndex].value +=Number(item.price);
  382 + } else {
  383 + // 如果不存在,则添加新项
  384 + accumulator.push({ name: item.ticketType, value: Number(item.price) });
  385 + }
  386 +
  387 + return accumulator;
  388 + }, []); // 初始值为空数组
  389 +
  390 + // this.chart3 = echarts.init(diameter);
376 391 // 指定图表的配置项和数据
377 392 let option = {
378 393 xAxis: {
379 394 type: 'category',
380   - data: ['周一', '周二', '周三', '周四', '周五', '周六', '周天']
  395 + data:processedData.map(item => item.name),
381 396 },
382 397 yAxis: {
383 398 type: 'value'
384 399 },
385 400 series: [
386 401 {
387   - data: [
388   - 120,
389   - {
390   - value: 200,
391   -
392   - itemStyle: {
393   - color: '#858564'
394   - }
395   - },
396   - {
397   - value: 150,
398   - itemStyle: {
399   - color: '#65665'
400   - }
401   - },
402   - 80,
403   - 70,
404   - 110,
405   - 130
406   - ],
  402 + data:processedData.map(item => item.value),
407 403 type: 'bar'
408 404 }
409 405 ]
410 406 };
411 407 // 使用刚指定的配置项和数据显示图表。
412   - this.chart3.setOption(option)
  408 + option && myChart.setOption(option)
413 409 },
414 410 getSummaries(param) {
415 411 const { columns, data } = param;
... ... @@ -436,15 +432,43 @@ export default {
436 432 });
437 433  
438 434 return sums;
439   - }
440   - },
  435 + },
  436 +
441 437 handleCurrentChange(val) {
442 438 this.currentPage = val
443 439 },
444 440 handleSizeChange(val) {
445 441 this.pageSize = val
446 442 },
  443 + async daochu(){
  444 + let res = await excelToTotalSales(this.pageIndex)
  445 + if(!res){
  446 + return
  447 + }
  448 + const blob = new Blob([res], { type: 'application/vnd.ms-excel' })
  449 + const fileName = '总销售额明细表.xls'
  450 + if ('download' in document.createElement('a')) {
  451 + // 非IE下载
  452 + const elink = document.createElement('a')
  453 + elink.download = fileName
  454 + elink.style.display = 'none'
  455 + elink.href = URL.createObjectURL(blob)
  456 + document.body.appendChild(elink)
  457 + elink.click()
  458 + URL.revokeObjectURL(elink.href) // 释放URL 对象
  459 + document.body.removeChild(elink)
  460 + } else {
  461 + // IE10+下载
  462 + navigator.msSaveBlob(blob, fileName)
  463 + }
  464 + this.$message({
  465 + message: '导出成功',
  466 + type: 'success'
  467 + })
  468 +
447 469  
  470 + },
  471 + }
448 472 }
449 473 </script>
450 474  
... ...
admin-web-master/src/views/stockControl/inventory/addCommodity.vue
... ... @@ -3,7 +3,7 @@
3 3 <div>
4 4 <el-card class="box-card">
5 5 <span class="addTitle">商品详情</span>
6   - <el-button type="success" class="btnList" @click="back">关闭</el-button>
  6 + <el-button style="background-color: #3F9B6A;color: #fff" class="btnList" @click="back">关闭</el-button>
7 7 <el-button v-if="productItem.shelveState === 2" type="primary" class="btnList" @click="examineShow(productData)">审核</el-button>
8 8 </el-card>
9 9 <el-card class="box-card">
... ... @@ -46,7 +46,7 @@
46 46 <el-table
47 47 :data="productItem.skuList"
48 48 style="width: 100%"
49   - :header-cell-style="{ background: '#EEF3FF', color: '#333333' }"
  49 + :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}"
50 50 >
51 51 <el-table-column
52 52 v-for="(skuAttr, index) in skuAttrName"
... ...
admin-web-master/src/views/stockControl/inventory/index.vue
1 1 <!-- -->
2 2 <template>
3   - <div>
  3 + <div style="background-color:#f7f7f7;padding:10px 10px;">
4 4 <div class="pending">
  5 + <div style="height:58px;line-height:58px;">
  6 + <div style="color:#0006"> <span>库存管理</span> <span style="padding:0 5px;">></span> <span style="color:#000000e6">商品库存</span></div>
  7 + </div>
5 8 <!-- 搜索 -->
6 9 <div class="formSearch">
7 10 <el-form :inline="true" :model="formInline" class="demo-form-inline">
... ... @@ -37,9 +40,10 @@
37 40 />
38 41 </el-form-item>
39 42 <el-form-item>
40   - <el-button type="primary" plain @click="search">查询</el-button>
41   - <el-button plain @click="clear">重置</el-button>
42   - <el-button type="success" plain @click="productDataExport">导出商品</el-button>
  43 + <el-button style="background-color: #3F9B6A;color: #fff" @click="search">查询</el-button>
  44 + <el-button class="buttonHover"
  45 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;" @click="clear">重置</el-button>
  46 + <el-button style="background-color: #3F9B6A;color: #fff" @click="productDataExport">导出商品</el-button>
43 47 <!-- <span
44 48 v-for="(item, index) in btnList"
45 49 :key="index"
... ... @@ -58,8 +62,7 @@
58 62 ref="multipleTable"
59 63 v-loading="loading"
60 64 :data="tableData"
61   - border
62   - :header-cell-style="{ background: '#EEF3FF', color: '#333333' }"
  65 + :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}"
63 66 tooltip-effect="dark"
64 67 style="width: 100%"
65 68 >
... ... @@ -116,7 +119,13 @@
116 119 </el-table-column>
117 120 <el-table-column label="操作" width="200">
118 121 <template slot-scope="scope">
119   - <div class="btnList">
  122 + <div v-if="scope.row.shelveState == 1" @click="OutForced(scope.row)" class="tableBtn greens">强制下架</div>
  123 + <div v-if="scope.row.shelveState == 1" @click="setFictitious(scope.row)" class="tableBtn greens">虚拟销量</div>
  124 + <div v-if="scope.row.shelveState == 2" @click="examineShow(scope.row)" class="tableBtn greens">审核</div>
  125 + <div @click="Godetails(scope.row)" class="tableBtn greens">查看详情</div>
  126 +
  127 +
  128 + <!-- <div class="btnList">
120 129 <el-button
121 130 v-if="scope.row.shelveState == 1"
122 131 slot="reference"
... ... @@ -138,7 +147,7 @@
138 147 type="text"
139 148 @click="Godetails(scope.row)"
140 149 >查看详情</el-button>
141   - </div>
  150 + </div> -->
142 151 </template>
143 152 </el-table-column>
144 153 </el-table>
... ... @@ -177,8 +186,9 @@
177 186 </el-form-item>
178 187 </el-form>
179 188 <span slot="footer" class="dialog-footer">
180   - <el-button @click="examineVisible = false">取 消</el-button>
181   - <el-button type="primary" @click="submintUs">确 定</el-button>
  189 + <el-button class="buttonHover"
  190 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;" @click="examineVisible = false">取 消</el-button>
  191 + <el-button style="background-color: #3F9B6A;color: #fff" @click="submintUs">确 定</el-button>
182 192 </span>
183 193 </el-dialog>
184 194 <!-- 设置虚拟销量 -->
... ... @@ -199,8 +209,9 @@
199 209 </el-form-item>
200 210 </el-form>
201 211 <span slot="footer" class="dialog-footer">
202   - <el-button @click="FictitiousVisible = false">取 消</el-button>
203   - <el-button type="primary" @click="FicSubmintUs">确 定</el-button>
  212 + <el-button class="buttonHover"
  213 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;" @click="FictitiousVisible = false">取 消</el-button>
  214 + <el-button style="background-color: #3F9B6A;color: #fff" @click="FicSubmintUs">确 定</el-button>
204 215 </span>
205 216 </el-dialog>
206 217 <add-commodity ref="addCommodity" :examine-show="examineShow" @reset="reset" />
... ... @@ -402,8 +413,10 @@ export default {
402 413 //@import url(); 引入公共css类
403 414 @import url("../../../styles/elDialog.scss");
404 415 .pending {
405   - padding: 30px;
406   -}
  416 + padding: 0 20px 20px 20px;
  417 + min-height: calc(100vh - 50px - 20px);
  418 + background-color: #Fff;
  419 + }
407 420 .fenye {
408 421 margin-top: 20px;
409 422 }
... ... @@ -445,4 +458,24 @@ export default {
445 458 }
446 459 }
447 460 }
  461 +.batch_btn {
  462 + padding: 5px 10px;
  463 + border: 1px solid #dfe6ec;
  464 + background-color: #fff;
  465 + border-top: 0;
  466 +}
  467 + .tableBtn {
  468 + display: inline-block;
  469 + margin-right: 10px;
  470 + }
  471 +
  472 + .greens {
  473 + color: #3F9B6A ;
  474 + }
  475 + ::v-deep .buttonHover:hover{
  476 + color:#3f9b6a !important;
  477 + border-color: #c5e1d2 !important;
  478 + background-color: #ecf5f0 !important;
  479 + outline: none;
  480 + }
448 481 </style>
... ...
admin-web-master/src/views/stockControl/stocksForewarn/index.vue
1 1 <!-- -->
2 2 <template>
3   - <div class="pending">
  3 + <div style="background-color:#f7f7f7;padding:10px 10px;">
4 4 <div class="tab_show">
5   - <div class="" style="font-weight: 600;font-size: 12px;margin-bottom: 15px;display: flex;justify-content: space-between;">
6   - <div style="">库存预警</div>
7   - <el-button plain @click="setthreshold" size="mini" style="background-color: #3F9B6A;color: #fff;">库存阈值设置</el-button>
  5 + <div style="height:58px;line-height:58px;">
  6 + <div style="color:#0006"> <span>库存管理</span> <span style="padding:0 5px;">></span> <span style="color:#000000e6">库存预警</span></div>
8 7 </div>
  8 + <div style="margin-bottom:20px;"><el-button plain @click="setthreshold" size="mini" style="background-color: #3F9B6A;color: #fff;">库存阈值设置</el-button></div>
9 9 <!-- 搜索 -->
10 10 <div class="filter-container">
11 11 <div style="display:flex;justify-content: space-between;background-color: #f5f5f5;padding:10px">
... ... @@ -237,11 +237,10 @@ this.dialogVisible = false
237 237 padding-left: 15px;
238 238 }
239 239 .tab_show{
240   - padding-top: 10px;
241   - padding-left: 10px;
242   - padding-right: 10px;
243   - background-color: #fff;
244   -}
  240 + padding: 0 20px 20px 20px;
  241 + min-height: calc(100vh - 50px - 20px);
  242 + background-color: #Fff;
  243 + }
245 244 .filter-container {
246 245 font-size:12px;
247 246 border:1px solid #EBEEF5;
... ...