Commit 12472e3687e21e6103656e828eb088cdc018eea0

Authored by 李宇
2 parents 93c8bac5 cc312afb

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

Showing 54 changed files with 3353 additions and 553 deletions
admin-web-master/src/api/inr.js
@@ -28,3 +28,12 @@ export function tanDel(data) { @@ -28,3 +28,12 @@ export function tanDel(data) {
28 data 28 data
29 }) 29 })
30 } 30 }
  31 +// 谈判列表导出
  32 +export function excelQueryByPage(data) {
  33 + return request({
  34 + url: '/cereNegotiationDetails/excelQueryByPage',
  35 + method: 'post',
  36 + data,
  37 + responseType:blob
  38 + })
  39 +}
admin-web-master/src/views/ipm/inr/index.vue
@@ -626,24 +626,10 @@ const res = await tanGetAll(this.formSel) @@ -626,24 +626,10 @@ const res = await tanGetAll(this.formSel)
626 await tanDel({id:item.id}) 626 await tanDel({id:item.id})
627 this.getAll() 627 this.getAll()
628 }, 628 },
629 - gitOut(){  
630 - let add =[]  
631 - this.tableData.map(item=>{  
632 -  
633 - let obj ={  
634 - intentCustomerName:'',  
635 - customerLevel:'',  
636 - contactPhone:'',  
637 - nextFollowUpStartTime:''  
638 - }  
639 - obj.intentCustomerName = item.cereFollowDetails.cereCustomerInfo.intentCustomerName  
640 - obj.contactPhone = item.cereFollowDetails.cereCustomerInfo.contactPhone  
641 - obj.customerLevel = item.cereFollowDetails.cereCustomerInfo.customerLevel  
642 - obj.nextFollowUpStartTime = item.nextNegotiationStartTime  
643 - add.push(obj)  
644 -  
645 - })  
646 - }, 629 + // async gitOut(){
  630 + // await excelQueryByPage(this.pageindex)
  631 +
  632 + // },
647 } 633 }
648 } 634 }
649 </script> 635 </script>
wenjuan/.env.development
@@ -3,12 +3,12 @@ ENV = &#39;development&#39; @@ -3,12 +3,12 @@ ENV = &#39;development&#39;
3 3
4 # base api 4 # base api
5 VUE_APP_BASE_API = '/dev-api' 5 VUE_APP_BASE_API = '/dev-api'
6 -# VUE_APP_DOMAIN_PREFIX_1='http://192.168.2.133:9003'  
7 -# VUE_APP_DOMAIN_PREFIX_2='http://192.168.2.133:9007' 6 + VUE_APP_DOMAIN_PREFIX_1='http://192.168.2.7:9003'
  7 + VUE_APP_DOMAIN_PREFIX_2='http://192.168.2.7:9007'
8 # VUE_APP_DOMAIN_PREFIX_1='https://h5.028wlkj.com/cdwlMall/meserver/admin-server/' 8 # VUE_APP_DOMAIN_PREFIX_1='https://h5.028wlkj.com/cdwlMall/meserver/admin-server/'
9 # VUE_APP_DOMAIN_PREFIX_2='https://h5.028wlkj.com/cdwlMall/meserver/api' 9 # VUE_APP_DOMAIN_PREFIX_2='https://h5.028wlkj.com/cdwlMall/meserver/api'
10 - VUE_APP_DOMAIN_PREFIX_1='https://jy.scjysm.asia:18086/meserver/admin-server/'  
11 - VUE_APP_DOMAIN_PREFIX_2='https://jy.scjysm.asia:18086/meserver/api' 10 +# VUE_APP_DOMAIN_PREFIX_1='http://jy.scjysm.asia:18086/meserver/admin-server/'
  11 +# VUE_APP_DOMAIN_PREFIX_2='https://jy.scjysm.asia:18086/meserver/api'
12 # 开发环境 12 # 开发环境
13 # 演示环境 13 # 演示环境
14 # VUE_APP_DOMAIN_PREFIX = '/api' 14 # VUE_APP_DOMAIN_PREFIX = '/api'
yanshouban/src/api/activityBz.js
@@ -205,3 +205,35 @@ export function copy(data) { @@ -205,3 +205,35 @@ export function copy(data) {
205 data 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 +}
yanshouban/src/api/business.js
@@ -145,3 +145,16 @@ export function wordDelete(data) { @@ -145,3 +145,16 @@ export function wordDelete(data) {
145 data 145 data
146 }) 146 })
147 } 147 }
  148 +
  149 +
  150 +// 导入商家
  151 +export function excelAdd(data) {
  152 + return request({
  153 + url: '/cereBasicInformationShop/excelAdd',
  154 + method: 'post',
  155 + data,
  156 + headers: {
  157 + 'Content-type': 'multipart/form-data'
  158 + }
  159 + })
  160 +}
yanshouban/src/api/fangli.js
@@ -34,3 +34,15 @@ export function fangDel(data) { @@ -34,3 +34,15 @@ export function fangDel(data) {
34 data 34 data
35 }) 35 })
36 } 36 }
  37 +
  38 +// 导入管理模板
  39 +export const excelAdd = (data = {}) => {
  40 + return request({
  41 + url: '/cereBusinessPlan/excelAdd',
  42 + method: 'post',
  43 + data,
  44 + headers: {
  45 + 'Content-type': 'multipart/form-data'
  46 + }
  47 + })
  48 +}
yanshouban/src/api/inr.js
@@ -28,3 +28,12 @@ export function tanDel(data) { @@ -28,3 +28,12 @@ export function tanDel(data) {
28 data 28 data
29 }) 29 })
30 } 30 }
  31 +// 谈判列表导出
  32 +export function excelQueryByPage(data) {
  33 + return request({
  34 + url: '/cereNegotiationDetails/excelQueryByPage',
  35 + method: 'post',
  36 + data,
  37 + responseType: 'blob'
  38 + })
  39 +}
yanshouban/src/api/manage.js
@@ -85,3 +85,36 @@ export function daoqi(data) { @@ -85,3 +85,36 @@ export function daoqi(data) {
85 data 85 data
86 }) 86 })
87 } 87 }
  88 +// 退租决算打印
  89 +
  90 +export function pdfManagementOfFinalAccountsForRentals(data) {
  91 + return request({
  92 + url: '/cereLeasingInformation/pdfManagementOfFinalAccountsForRentals',
  93 + method: 'post',
  94 + data,
  95 + responseType: 'blob'
  96 + })
  97 +}
  98 +// 续租管理打印
  99 +
  100 +export function pdfLeaseRenewalManagement(data) {
  101 + return request({
  102 + url: '/cereLeasingInformation/pdfLeaseRenewalManagement',
  103 + method: 'post',
  104 + data,
  105 + responseType: 'blob'
  106 + })
  107 +}
  108 +
  109 +// 合同导入
  110 +
  111 +export function excelAdd(data) {
  112 + return request({
  113 + url: '/cereContractInformation/excelAdd',
  114 + method: 'post',
  115 + data,
  116 + headers: {
  117 + 'Content-type': 'multipart/form-data'
  118 + }
  119 + })
  120 +}
yanshouban/src/api/planningBz.js
@@ -44,3 +44,15 @@ export function queryById(data) { @@ -44,3 +44,15 @@ export function queryById(data) {
44 }) 44 })
45 } 45 }
46 46
  47 +// 导入规划模板
  48 +export const excelAdd = (data = {}) => {
  49 + return request({
  50 + url: '/cereInvestmentPlanningManagement/excelAdd',
  51 + method: 'post',
  52 + data,
  53 + headers: {
  54 + 'Content-type': 'multipart/form-data'
  55 + }
  56 + })
  57 +}
  58 +
yanshouban/src/api/rentalMan.js
@@ -51,3 +51,13 @@ export function excelLeaseRenewalManagement(data) { @@ -51,3 +51,13 @@ export function excelLeaseRenewalManagement(data) {
51 responseType: 'blob' 51 responseType: 'blob'
52 }) 52 })
53 } 53 }
  54 +
  55 +// PDF打印
  56 +export function pdfRentOutQueryByPage(data) {
  57 + return request({
  58 + url: '/cereLeasingInformation/pdfRentOutQueryByPage',
  59 + method: 'post',
  60 + data,
  61 + responseType: 'blob'
  62 + })
  63 +}
yanshouban/src/utils/jiami.js
1 // 文本加密 1 // 文本加密
2 import { sm4 } from 'sm-crypto'; 2 import { sm4 } from 'sm-crypto';
3 -const DEFAULT_KEY ="cda4442f102f6396cca76902e37ad7cb";  
4 -const DEFAULT_IV = "8bd8a83221742166c7532b7275a7fe9c"; 3 +const DEFAULT_KEY ="cda4442f102f6396eea76902e37ad7cb";
  4 +const DEFAULT_IV = "8bd8a83221742111c7532b7275a7fe9c";
5 export const encrypt = (str) => { 5 export const encrypt = (str) => {
6     if(!str) { 6     if(!str) {
7         return '' 7         return ''
@@ -11,7 +11,7 @@ export const encrypt = (str) =&gt; { @@ -11,7 +11,7 @@ export const encrypt = (str) =&gt; {
11         mode: 'cbc', 11         mode: 'cbc',
12         padding: 'pkcs#7' 12         padding: 'pkcs#7'
13         }) 13         })
14 -    return 'ENC(' + encryptStr + ')' 14 +    return encryptStr
15 } 15 }
16 16
17 // 文本解密 17 // 文本解密
@@ -19,12 +19,12 @@ export const decrypt = (str) =&gt; { @@ -19,12 +19,12 @@ export const decrypt = (str) =&gt; {
19     if(!str) { 19     if(!str) {
20         return '' 20         return ''
21     } 21     }
22 -    if(str.indexOf('ENC(') === -1) {  
23 -        return str  
24 -    }  
25 -    const str_ = str.replace('ENC(', '').replace(')', '') 22 +//     if(str.indexOf('ENC(') === -1) {
  23 +//         return str
  24 +//     }
  25 +//     const str_ = str.replace('ENC(', '').replace(')', '')
26     try {         26     try {        
27 -        const decryptStr = sm4.decrypt(str_, DEFAULT_KEY, { 27 +        const decryptStr = sm4.decrypt(str, DEFAULT_KEY, {
28             iv: DEFAULT_IV, 28             iv: DEFAULT_IV,
29             mode: 'cbc', 29             mode: 'cbc',
30             padding: 'pkcs#7' 30             padding: 'pkcs#7'
yanshouban/src/utils/request.js
@@ -11,9 +11,9 @@ import { @@ -11,9 +11,9 @@ import {
11 } from '@/utils/auth' 11 } from '@/utils/auth'
12 const host = window.location.host; 12 const host = window.location.host;
13 let PREFIX; 13 let PREFIX;
14 -if (host == '172.16.61.48' || host == '172.16.61.49 :5173' || host =='172.16.61.123:9003') { 14 +if (host == '172.16.61.48' || host == '172.16.61.49:5173' || host =='172.16.61.123:9003') {
15 // PREFIX = 'https://jdc.scjysm.asia:1443/meserver/admin-server'; 15 // PREFIX = 'https://jdc.scjysm.asia:1443/meserver/admin-server';
16 - PREFIX = 'https://jy.scjysm.asia:18086/meserver/admin-server'; 16 + PREFIX = 'https://jy.scjysm.asia:18086/admin-server';
17 // PREFIX = 'http://172.16.61.126:8080/meserver/admin-server'; 17 // PREFIX = 'http://172.16.61.126:8080/meserver/admin-server';
18 // PREFIX = 'http://172.16.61.48/meserver/admin-server'; 18 // PREFIX = 'http://172.16.61.48/meserver/admin-server';
19 }else if( host == 'localhost:9528' || host == '8.130.38.56:8027' || host == 'localhost:9529'){ 19 }else if( host == 'localhost:9528' || host == '8.130.38.56:8027' || host == 'localhost:9529'){
@@ -21,14 +21,14 @@ if (host == &#39;172.16.61.48&#39; || host == &#39;172.16.61.49 :5173&#39; || host ==&#39;172.16.61. @@ -21,14 +21,14 @@ if (host == &#39;172.16.61.48&#39; || host == &#39;172.16.61.49 :5173&#39; || host ==&#39;172.16.61.
21 // PREFIX = 'http://172.16.61.48/meserver/admin-server'; 21 // PREFIX = 'http://172.16.61.48/meserver/admin-server';
22 // PREFIX = 'http://192.168.2.213:9003'; 22 // PREFIX = 'http://192.168.2.213:9003';
23 // PREFIX = 'http://8.130.38.56:8019/admin-server'; 23 // PREFIX = 'http://8.130.38.56:8019/admin-server';
24 - PREFIX = 'http://192.168.8.106:9003'; 24 + PREFIX = 'http://192.168.2.7:9003';
25 // PREFIX = 'https://wjdc.scjysm.asia:1443/meserver/admin-server'; 25 // PREFIX = 'https://wjdc.scjysm.asia:1443/meserver/admin-server';
26 // PREFIX = 'https://jy.scjysm.asia:18086/admin-server'; 26 // PREFIX = 'https://jy.scjysm.asia:18086/admin-server';
27 // PREFIX = 'http://172.16.61.126:8080/meserver/admin-server'; 27 // PREFIX = 'http://172.16.61.126:8080/meserver/admin-server';
28 // PREFIX = 'https://wjdc.scjysm.asia:1443/meserver/admin-server' 28 // PREFIX = 'https://wjdc.scjysm.asia:1443/meserver/admin-server'
29 29
30 }else{ 30 }else{
31 - PREFIX = '/admin-server'; 31 + PREFIX = 'https://jy.scjysm.asia:18086/admin-server';
32 } 32 }
33 33
34 34
yanshouban/src/views/active/couponlist/component/shopList.vue
@@ -116,7 +116,6 @@ export default { @@ -116,7 +116,6 @@ export default {
116 search () { 116 search () {
117 117
118 }, 118 },
119 - // businessListGetAll  
120 // 初始化查询所有数据 119 // 初始化查询所有数据
121 async getAll(formInline) { 120 async getAll(formInline) {
122 const res = await businessListGetAll(formInline) 121 const res = await businessListGetAll(formInline)
@@ -124,7 +123,7 @@ export default { @@ -124,7 +123,7 @@ export default {
124 this.tableData = res.data.list 123 this.tableData = res.data.list
125 this.tableData.map(res=>{ 124 this.tableData.map(res=>{
126 res.shopPhone = this.$decrypt(res.shopPhone) 125 res.shopPhone = this.$decrypt(res.shopPhone)
127 - res.shopPassword = this.$decrypt(res.shopPassword) 126 + // res.shopPassword = this.$decrypt(res.shopPassword)
128 res.idCardNum = this.$decrypt(res.idCardNum) 127 res.idCardNum = this.$decrypt(res.idCardNum)
129 res.emailAddress = this.$decrypt(res.emailAddress) 128 res.emailAddress = this.$decrypt(res.emailAddress)
130 res.shopAdress = this.$decrypt(res.shopAdress) 129 res.shopAdress = this.$decrypt(res.shopAdress)
yanshouban/src/views/activity/activityBian.vue
@@ -69,6 +69,16 @@ @@ -69,6 +69,16 @@
69 </el-form-item> 69 </el-form-item>
70 </el-col> 70 </el-col>
71 </el-row> 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 <div style="padding: 10px"> 82 <div style="padding: 10px">
73 <el-row :gutter="20"> 83 <el-row :gutter="20">
74 <el-col :span="12"> 84 <el-col :span="12">
yanshouban/src/views/activity/activityBz.vue
@@ -88,6 +88,16 @@ @@ -88,6 +88,16 @@
88 </el-form-item> 88 </el-form-item>
89 </el-col> 89 </el-col>
90 </el-row> 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-row>
91 <el-row :gutter="20"> 101 <el-row :gutter="20">
92 <el-col :span="12"> 102 <el-col :span="12">
93 <el-form-item label="活动主要目的" prop="mainPurpose" class="grid-content bg-purple"> 103 <el-form-item label="活动主要目的" prop="mainPurpose" class="grid-content bg-purple">
@@ -297,7 +307,9 @@ @@ -297,7 +307,9 @@
297 <div style="display: flex;justify-content: flex-end;padding: 10px 20px 10px 0"> 307 <div style="display: flex;justify-content: flex-end;padding: 10px 20px 10px 0">
298 <el-button @click="close" style="background-color: #3F9B6A;color: #fff;">取消 308 <el-button @click="close" style="background-color: #3F9B6A;color: #fff;">取消
299 </el-button> 309 </el-button>
300 - <el-button @click="onSubmit" style="background-color: #3F9B6A;color: #fff;">确定 310 + <el-button @click="onSubmit(1)" style="background-color: #3F9B6A;color: #fff;">暂存
  311 + </el-button>
  312 + <el-button @click="onSubmit(0)" style="background-color: #3F9B6A;color: #fff;">确定
301 </el-button> 313 </el-button>
302 </div> 314 </div>
303 </div> 315 </div>
@@ -393,6 +405,7 @@ @@ -393,6 +405,7 @@
393 eventTheme: '', //活动主题 405 eventTheme: '', //活动主题
394 sponsor: '', //活动主办方 406 sponsor: '', //活动主办方
395 participants: '', //活动参与方 407 participants: '', //活动参与方
  408 + rangeSetting:'',
396 mainPurpose: '', //活动主要目的 409 mainPurpose: '', //活动主要目的
397 coverPoster: '', //封面海报 410 coverPoster: '', //封面海报
398 internalLaborCostEstimation: '', //内部人工成本预估 411 internalLaborCostEstimation: '', //内部人工成本预估
@@ -558,7 +571,7 @@ @@ -558,7 +571,7 @@
558 571
559 }, 572 },
560 //保存 573 //保存
561 - onSubmit() { 574 + onSubmit(val) {
562 // pdf.save('output.pdf') 575 // pdf.save('output.pdf')
563 let that = this 576 let that = this
564 let FlieName = this.ruleForm.planName 577 let FlieName = this.ruleForm.planName
@@ -614,6 +627,7 @@ @@ -614,6 +627,7 @@
614 // } 627 // }
615 this.$refs.jibenFrom.validate((valid) => { 628 this.$refs.jibenFrom.validate((valid) => {
616 if (valid) { 629 if (valid) {
  630 + this.ruleForm.isDraft = val
617 add(this.ruleForm).then(res => { 631 add(this.ruleForm).then(res => {
618 this.$message({ 632 this.$message({
619 message: '保存成功', 633 message: '保存成功',
@@ -735,6 +749,7 @@ @@ -735,6 +749,7 @@
735 eventTheme: '', //活动主题 749 eventTheme: '', //活动主题
736 sponsor: '', //活动主办方 750 sponsor: '', //活动主办方
737 participants: '', //活动参与方 751 participants: '', //活动参与方
  752 + rangeSetting:'',
738 mainPurpose: '', //活动主要目的 753 mainPurpose: '', //活动主要目的
739 coverPoster: '', //封面海报 754 coverPoster: '', //封面海报
740 internalLaborCostEstimation: '', //内部人工成本预估 755 internalLaborCostEstimation: '', //内部人工成本预估
yanshouban/src/views/activity/activitySp.vue
@@ -57,7 +57,7 @@ @@ -57,7 +57,7 @@
57 {{scope.row.state == ''?'待提交':scope.row.state == '1'?'待审批':scope.row.state == '2'?'部门领导审批':scope.row.state == '3'?'公司领导审批':scope.row.state == '4'?'其他审批':scope.row.state == '5'?'审核通过':'已驳回'}} 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 </template> 58 </template>
59 </el-table-column> 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 </el-table-column> 61 </el-table-column>
62 <el-table-column prop="createUser" label="上传人员" min-width="80"> 62 <el-table-column prop="createUser" label="上传人员" min-width="80">
63 63
@@ -664,6 +664,7 @@ @@ -664,6 +664,7 @@
664 pageNumber: 1, 664 pageNumber: 1,
665 pageSize: 10, 665 pageSize: 10,
666 dataOwnership: '1', 666 dataOwnership: '1',
  667 + isDraft:0
667 }, 668 },
668 multipleSelection: [], 669 multipleSelection: [],
669 options: [{ 670 options: [{
yanshouban/src/views/activity/index.vue
@@ -22,14 +22,24 @@ @@ -22,14 +22,24 @@
22 </div> 22 </div>
23 </div> 23 </div>
24 <div style="margin: 20px 0;"> 24 <div style="margin: 20px 0;">
25 - <div> 25 + <div style="display:flex;">
26 <el-button icon="el-icon-circle-plus-outline" @click="create" 26 <el-button icon="el-icon-circle-plus-outline" @click="create"
27 style="background-color: #3F9B6A;color: #fff;padding:8px 15px;">新增</el-button> 27 style="background-color: #3F9B6A;color: #fff;padding:8px 15px;">新增</el-button>
28 <el-button style="background-color: #E24E5A;color: #fff;" icon="el-icon-delete" 28 <el-button style="background-color: #E24E5A;color: #fff;" icon="el-icon-delete"
29 @click="handleDelete" class="DelBtnHover">删除</el-button> 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-button style="background-color: #3F9B6A;color: #fff;" @click="daoru">导入</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>
32 <el-button style="background-color: #3F9B6A;color: #fff;" @click="caogao">草稿箱</el-button> 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>
33 <!-- <el-button style="background-color: #fff;color: #000;border: 1px solid #B1B1B1;" 43 <!-- <el-button style="background-color: #fff;color: #000;border: 1px solid #B1B1B1;"
34 icon="el-icon-folder-add" class="buttonHover" @click="xinFenlei">活动分类管理</el-button> --> 44 icon="el-icon-folder-add" class="buttonHover" @click="xinFenlei">活动分类管理</el-button> -->
35 </div> 45 </div>
@@ -54,7 +64,7 @@ @@ -54,7 +64,7 @@
54 <div class="custom-tree-node" slot-scope="{ node, data }"> 64 <div class="custom-tree-node" slot-scope="{ node, data }">
55 <span>{{ node.label }}</span> 65 <span>{{ node.label }}</span>
56 <span style="font-size: 15px !important;"> 66 <span style="font-size: 15px !important;">
57 - <!-- <i class="el-icon-circle-plus" @click="xinFenlei(node,data)" style="padding-right: 5px;"></i> --> 67 + <i class="el-icon-circle-plus" @click="xinFenlei(node,data)" style="padding-right: 5px;"></i>
58 <i class="el-icon-delete-solid" @click="() => fenDelete(node, data)"></i> 68 <i class="el-icon-delete-solid" @click="() => fenDelete(node, data)"></i>
59 </span> 69 </span>
60 </div> 70 </div>
@@ -84,7 +94,7 @@ @@ -84,7 +94,7 @@
84 {{scope.row.state == ''?'待提交':scope.row.state == '1'?'待审批':scope.row.state == '2'?'部门领导审批':scope.row.state == '3'?'公司领导审批':scope.row.state == '4'?'其他审批':scope.row.state == '5'?'审核通过':'已驳回'}} 94 {{scope.row.state == ''?'待提交':scope.row.state == '1'?'待审批':scope.row.state == '2'?'部门领导审批':scope.row.state == '3'?'公司领导审批':scope.row.state == '4'?'其他审批':scope.row.state == '5'?'审核通过':'已驳回'}}
85 </template> 95 </template>
86 </el-table-column> 96 </el-table-column>
87 - <el-table-column label="修改时间" prop="createDate"width="250" > 97 + <el-table-column label="创建时间" prop="createDate"width="250" >
88 </el-table-column> 98 </el-table-column>
89 <el-table-column prop="createUser" label="上传人员" width="80"> 99 <el-table-column prop="createUser" label="上传人员" width="80">
90 100
@@ -95,7 +105,7 @@ @@ -95,7 +105,7 @@
95 <!-- <div class="tableBtn greens">发布</div> --> 105 <!-- <div class="tableBtn greens">发布</div> -->
96 <div class="tableBtn greens" @click="handleEditForm(scope.row)">执行情况</div> 106 <div class="tableBtn greens" @click="handleEditForm(scope.row)">执行情况</div>
97 <div @click="OAshen(scope.row)" class="tableBtn greens" v-if="scope.row.state == ''">上传到OA</div> 107 <div @click="OAshen(scope.row)" class="tableBtn greens" v-if="scope.row.state == ''">上传到OA</div>
98 - <div class="tableBtn greens" @click="xiaoguo(scope.row)">效果评估</div> 108 + <div class="tableBtn greens" @click="xiaoguo(scope.row)" v-if="scope.row.state == '5'" >效果评估</div>
99 <!-- <div class="tableBtn greens">策略调整</div> --> 109 <!-- <div class="tableBtn greens">策略调整</div> -->
100 <div class="tableBtn greens" @click="koop(scope.row)">复制</div> 110 <div class="tableBtn greens" @click="koop(scope.row)">复制</div>
101 </template> 111 </template>
@@ -124,7 +134,7 @@ @@ -124,7 +134,7 @@
124 <!-- 详情活动方案 --> 134 <!-- 详情活动方案 -->
125 <el-dialog title="活动方案详情" :visible.sync="ggXin" custom-class='xiang_css' style="padding: 0;" width="80%" center 135 <el-dialog title="活动方案详情" :visible.sync="ggXin" custom-class='xiang_css' style="padding: 0;" width="80%" center
126 :close-on-click-modal="false" :close-on-press-escape="false" @close="refreshData"> 136 :close-on-click-modal="false" :close-on-press-escape="false" @close="refreshData">
127 - <div> 137 + <div ref="actXiang">
128 <div style="width: 100%;"> 138 <div style="width: 100%;">
129 <div style="display: flex;padding:0px 20px 20px 20px; "> 139 <div style="display: flex;padding:0px 20px 20px 20px; ">
130 <div style="width: 150px;height: 80px;" v-if="secondData.coverPoster"> 140 <div style="width: 150px;height: 80px;" v-if="secondData.coverPoster">
@@ -277,77 +287,6 @@ @@ -277,77 +287,6 @@
277 </div> 287 </div>
278 </div> 288 </div>
279 </div> 289 </div>
280 - <!-- <div style="width: 28%;">  
281 - <div style="padding: 10px;height: 500px;">  
282 - <div style="font-size: 14px;font-weight: 600;padding: 10px;">流程轨迹</div>  
283 - <el-steps style="height: 400px;padding: 10px;" direction="vertical" finish-status="process "  
284 - :active="0">  
285 - <el-step>  
286 - <template slot="title">  
287 - <div style="font-size: 14px;font-weight: 600;padding-bottom: 10px;">审核节点</div>  
288 - </template>  
289 - <template slot="description">  
290 - <div class="custom-step-description">  
291 - <div>  
292 - 当前处理人:王伟明  
293 - </div>  
294 - </div>  
295 - </template>  
296 - </el-step>  
297 - <el-step style="position: relative;">  
298 - <template slot="title">  
299 - <div style="font-size: 14px;font-weight: 600;padding-bottom: 10px;">品牌部门审批</div>  
300 - </template>  
301 - <template slot="description">  
302 - <div class="custom-step-description">  
303 - <div>  
304 - 操作:通过  
305 - <span style="position: absolute;top: 0px;right: 0px;">2023-11-02 11:26:48</span>  
306 - </div>  
307 - <div>  
308 - 操作人:王伟明  
309 - </div>  
310 - </div>  
311 - </template>  
312 - </el-step>  
313 - <el-step style="position: relative;">  
314 - <template slot="title">  
315 - <div style="font-size: 14px;font-weight: 600;padding-bottom: 10px;">业务部门经理审核</div>  
316 - </template>  
317 - <template slot="description">  
318 - <div class="custom-step-description">  
319 - <div>  
320 - 操作:通过  
321 - <span style="position: absolute;top: 0px;right: 0px;">2023-11-02 11:26:48</span>  
322 - </div>  
323 - <div>  
324 - 操作人:王伟明  
325 - </div>  
326 - </div>  
327 - </template>  
328 - </el-step>  
329 - <el-step style="position: relative;">  
330 - <template slot="title">  
331 - <div style="font-size: 14px;font-weight: 600;padding-bottom: 10px;">开始</div>  
332 - </template>  
333 - <template slot="description">  
334 - <div class="custom-step-description">  
335 - <div>  
336 - 操作:通过  
337 - <span style="position: absolute;top: 0px;right: 0px;">2023-11-02 11:26:48</span>  
338 - </div>  
339 - <div>  
340 - 操作人:王伟明  
341 - </div>  
342 - <div>  
343 - 补充说明:发起流程事项审批  
344 - </div>  
345 - </div>  
346 - </template>  
347 - </el-step>  
348 - </el-steps>  
349 - </div>  
350 - </div> -->  
351 </div> 290 </div>
352 <div v-if="activeName=='second'"> 291 <div v-if="activeName=='second'">
353 <div style="padding: 20px"> 292 <div style="padding: 20px">
@@ -548,15 +487,14 @@ @@ -548,15 +487,14 @@
548 487
549 </el-row> 488 </el-row>
550 <el-row :gutter="20"> 489 <el-row :gutter="20">
551 - <el-col :span="8"> 490 + <el-col :span="24">
552 <el-form-item label="反馈内容" class="grid-content bg-purple" prop="name"> 491 <el-form-item label="反馈内容" class="grid-content bg-purple" prop="name">
553 <el-upload class="upload-demo" ref="upload" :on-remove="handleRemove" 492 <el-upload class="upload-demo" ref="upload" :on-remove="handleRemove"
554 :action="uploadFileUrl" :on-success="handleUploadSuccess" :file-list="fileData" 493 :action="uploadFileUrl" :on-success="handleUploadSuccess" :file-list="fileData"
555 - :show-file-list="false" v-if="zhixingBian">  
556 - <div style="color: #2d8a58;margin-left: 10px;" slot="trigger">  
557 - 上传附件  
558 - </div> 494 + :show-file-list="true" v-if="zhixingBian">
  495 + <el-button style="background-color: #fff;color: #3F9B6A;border: 1px solid #dcdfe6;" class="buttonHover" v-if="fileData.length==0">+点击上传</el-button>
559 </el-upload> 496 </el-upload>
  497 + <div v-else>{{zhixingList.feedbackContent}}</div>
560 </el-form-item> 498 </el-form-item>
561 </el-col> 499 </el-col>
562 500
@@ -573,6 +511,9 @@ @@ -573,6 +511,9 @@
573 </div> 511 </div>
574 </div> 512 </div>
575 </div> 513 </div>
  514 + <div style="display: flex;justify-content: flex-end;padding:10px" v-if="activeName=='first'">
  515 + <el-button @click="downloadPdf" style="background-color: #3F9B6A;color: #fff" >下载
  516 + </el-button></div>
576 </el-dialog> 517 </el-dialog>
577 </div> 518 </div>
578 </div> 519 </div>
@@ -793,37 +734,37 @@ @@ -793,37 +734,37 @@
793 <div style="display:flex;padding:10px 0;"> 734 <div style="display:flex;padding:10px 0;">
794 <div style="margin-right:40px;width:17%"> 735 <div style="margin-right:40px;width:17%">
795 <div style="color:#BBBBBB;font-size:10px;">吸引游客流量</div> 736 <div style="color:#BBBBBB;font-size:10px;">吸引游客流量</div>
796 - <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">4289</span>人</div>  
797 - <div style="color:#BBBBBB;font-size:10px;margin-bottom:10px">+45%</div> 737 + <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">{{fenxiData.expectedAttractTraffic}}</span>人</div>
  738 + <div style="color:#BBBBBB;font-size:10px;margin-bottom:10px">{{fenxiData.expectedAttractTrafficAnalyse}}%</div>
798 <div style="height:5px;background-color:#FEC03D;"></div> 739 <div style="height:5px;background-color:#FEC03D;"></div>
799 </div> 740 </div>
800 <div style="margin-right:40px;width:17%"> 741 <div style="margin-right:40px;width:17%">
801 <div style="color:#BBBBBB;font-size:10px;">参与人数</div> 742 <div style="color:#BBBBBB;font-size:10px;">参与人数</div>
802 - <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">4289</span>人</div>  
803 - <div style="color:#BBBBBB;font-size:10px;margin-bottom:10px">+45%</div> 743 + <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">{{fenxiData.expectedParticipation}}</span>人</div>
  744 + <div style="color:#BBBBBB;font-size:10px;margin-bottom:10px">{{fenxiData.expectedParticipationAnalyse}}%</div>
804 <div style="height:5px;background-color:#58A3F7;"></div> 745 <div style="height:5px;background-color:#58A3F7;"></div>
805 </div> 746 </div>
806 <div style="margin-right:40px;width:17%"> 747 <div style="margin-right:40px;width:17%">
807 <div style="color:#BBBBBB;font-size:10px;">直接收益</div> 748 <div style="color:#BBBBBB;font-size:10px;">直接收益</div>
808 - <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">4289</span>人</div>  
809 - <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.expectedDirectBenefits}}</span></div>
  750 + <div style="color:#BBBBBB;font-size:10px;margin-bottom:10px">{{fenxiData.expectedDirectBenefitsAnalysis}}%</div>
810 <div style="height:5px;background-color:#4BCED0;"></div> 751 <div style="height:5px;background-color:#4BCED0;"></div>
811 </div> 752 </div>
812 <div style="margin-right:40px;width:17%"> 753 <div style="margin-right:40px;width:17%">
813 <div style="color:#BBBBBB;font-size:10px;">间接收益</div> 754 <div style="color:#BBBBBB;font-size:10px;">间接收益</div>
814 - <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">4289</span>人</div>  
815 - <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.expectedIndirectBenefits}}</span></div>
  756 + <div style="color:#BBBBBB;font-size:10px;margin-bottom:10px">{{fenxiData.expectedIndirectBenefitsAnalysis}}%</div>
816 <div style="height:5px;background-color:#3F9B6A;"></div> 757 <div style="height:5px;background-color:#3F9B6A;"></div>
817 </div> 758 </div>
818 <div style="margin-right:40px;width:17%"> 759 <div style="margin-right:40px;width:17%">
819 <div style="color:#BBBBBB;font-size:10px;">投入生产比</div> 760 <div style="color:#BBBBBB;font-size:10px;">投入生产比</div>
820 - <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">4289</span>人</div>  
821 - <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.incomeAnalysis}}%</span></div>
  762 + <div style="color:#BBBBBB;font-size:10px;margin-bottom:10px">{{fenxiData.incomeAnalysis}}%</div>
822 <div style="height:5px;background-color:#8167F5;"></div> 763 <div style="height:5px;background-color:#8167F5;"></div>
823 </div> 764 </div>
824 </div> 765 </div>
825 - <div style="font-size:12px;margin:10px 0;">效果分析</div>  
826 - <div style="display:flex;padding:10px 0;"> 766 + <!-- <div style="font-size:12px;margin:10px 0;">效果分析</div> -->
  767 + <!-- <div style="display:flex;padding:10px 0;">
827 <div style="margin-right:40px;width:17%"> 768 <div style="margin-right:40px;width:17%">
828 <div style="color:#BBBBBB;font-size:10px;">吸引游客流量</div> 769 <div style="color:#BBBBBB;font-size:10px;">吸引游客流量</div>
829 <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">4289</span>人</div> 770 <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">4289</span>人</div>
@@ -850,11 +791,11 @@ @@ -850,11 +791,11 @@
850 </div> 791 </div>
851 <div style="margin-right:40px;width:17%"> 792 <div style="margin-right:40px;width:17%">
852 <div style="color:#BBBBBB;font-size:10px;">投入生产比</div> 793 <div style="color:#BBBBBB;font-size:10px;">投入生产比</div>
853 - <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;">4289</span>人</div>  
854 - <div style="color:#BBBBBB;font-size:10px;margin-bottom:10px">+45%</div> 794 + <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;">{{fenxiData.incomeAnalysis}}</span>人</div>
  795 + <div style="color:#BBBBBB;font-size:10px;margin-bottom:10px">{{fenxiData.incomeAnalysis}}%</div>
855 <div style="height:5px;background-color:#8167F5;"></div> 796 <div style="height:5px;background-color:#8167F5;"></div>
856 </div> 797 </div>
857 - </div> 798 + </div> -->
858 </div> 799 </div>
859 <div style="padding:0 20px;margin-top:20px;"> 800 <div style="padding:0 20px;margin-top:20px;">
860 <div style="border:1px solid #EFEFEF;padding:20px 15px"> 801 <div style="border:1px solid #EFEFEF;padding:20px 15px">
@@ -1111,9 +1052,8 @@ @@ -1111,9 +1052,8 @@
1111 </el-table-column> 1052 </el-table-column>
1112 <el-table-column label="操作" width="350"> 1053 <el-table-column label="操作" width="350">
1113 <template slot-scope="scope"> 1054 <template slot-scope="scope">
1114 - <div @click="shiyong(1,scope.row)" class="tableBtn greens">使用</div>  
1115 - <div class="tableBtn greens" @click="handleEditForm(scope.row)">执行情况</div>  
1116 - <div @click="actBian(scope.row)" class="tableBtn greens" v-if="scope.row.state == ''">修改</div> 1055 + <div @click="shiyong(scope.row)" class="tableBtn greens">使用</div>
  1056 + <!-- <div @click="actBian(scope.row)" class="tableBtn greens" v-if="scope.row.state == ''">修改</div> -->
1117 <div @click="handleDelete(scope.row)" class="tableBtn greens">删除</div> 1057 <div @click="handleDelete(scope.row)" class="tableBtn greens">删除</div>
1118 </template> 1058 </template>
1119 </el-table-column> 1059 </el-table-column>
@@ -1150,12 +1090,17 @@ @@ -1150,12 +1090,17 @@
1150 cereAdd, 1090 cereAdd,
1151 cereEdit, 1091 cereEdit,
1152 cereDel, 1092 cereDel,
1153 - copy 1093 + copy,
  1094 + excelQueryByPage,
  1095 + excelAdd,
  1096 + effectEvaluation
1154 } from '../../api/activityBz' 1097 } from '../../api/activityBz'
1155 import addAct from "./activityBz" 1098 import addAct from "./activityBz"
1156 import actbians from "./activityBian" 1099 import actbians from "./activityBian"
1157 import * as echarts from 'echarts' 1100 import * as echarts from 'echarts'
1158 import Vue from 'vue' 1101 import Vue from 'vue'
  1102 + import html2canvas from 'html2canvas'
  1103 + import jsPDF from 'jspdf'
1159 import { 1104 import {
1160 uploadUrl 1105 uploadUrl
1161 } from '@/utils/request' 1106 } from '@/utils/request'
@@ -1167,6 +1112,8 @@ @@ -1167,6 +1112,8 @@
1167 data() { 1112 data() {
1168 return { 1113 return {
1169 uploadFileUrl: uploadUrl, // 请求地址 1114 uploadFileUrl: uploadUrl, // 请求地址
  1115 + daoData:[],
  1116 + fenxiData:{},
1170 fileData:[], 1117 fileData:[],
1171 addAct: false, //新增页 1118 addAct: false, //新增页
1172 actbianMsg: { 1119 actbianMsg: {
@@ -1232,9 +1179,11 @@ @@ -1232,9 +1179,11 @@
1232 text: '活动主要目的', 1179 text: '活动主要目的',
1233 eventTheme: '' 1180 eventTheme: ''
1234 }, { 1181 }, {
1235 - id: '5',  
1236 - name: '状态',  
1237 - eventTheme: '待审核' 1182 + id: 0,
  1183 + name: '范围设置',
  1184 + planName: '',
  1185 + text: '状态',
  1186 + eventTheme: ''
1238 }], 1187 }],
1239 internalLaborCostEstimation: '', 1188 internalLaborCostEstimation: '',
1240 externalLaborCostEstimation: '', 1189 externalLaborCostEstimation: '',
@@ -1309,11 +1258,13 @@ @@ -1309,11 +1258,13 @@
1309 expectedDirectBenefits: '', //直接收益 1258 expectedDirectBenefits: '', //直接收益
1310 expectedIndirectBenefits: '', //间接收益 1259 expectedIndirectBenefits: '', //间接收益
1311 createDate: '', //创建时间 1260 createDate: '', //创建时间
  1261 + feedbackContent:''
1312 }, //执行效果列表 1262 }, //执行效果列表
1313 pageindex: { 1263 pageindex: {
1314 pageNumber: 1, 1264 pageNumber: 1,
1315 pageSize: 10, 1265 pageSize: 10,
1316 - dataOwnership: '1' 1266 + dataOwnership: '1',
  1267 + isDraft:0
1317 }, 1268 },
1318 multipleSelection: [], 1269 multipleSelection: [],
1319 options: [], 1270 options: [],
@@ -1416,7 +1367,8 @@ @@ -1416,7 +1367,8 @@
1416 pageNumber: 1, 1367 pageNumber: 1,
1417 pageSize: 10, 1368 pageSize: 10,
1418 dataOwnership: '1', 1369 dataOwnership: '1',
1419 - classificationCode:data.id 1370 + classificationCode:data.id,
  1371 + isDraft:0
1420 } 1372 }
1421 const res = await queryByPage(pageindex) 1373 const res = await queryByPage(pageindex)
1422 this.tableData = res.data.content 1374 this.tableData = res.data.content
@@ -1426,7 +1378,8 @@ @@ -1426,7 +1378,8 @@
1426 this.pageindex={ 1378 this.pageindex={
1427 pageNumber: 1, 1379 pageNumber: 1,
1428 pageSize: 10, 1380 pageSize: 10,
1429 - dataOwnership: '1' 1381 + dataOwnership: '1',
  1382 + isDraft:0
1430 } 1383 }
1431 const res = await queryByPage(this.pageindex) 1384 const res = await queryByPage(this.pageindex)
1432 this.tableData = res.data.content 1385 this.tableData = res.data.content
@@ -1476,6 +1429,7 @@ @@ -1476,6 +1429,7 @@
1476 dataOwnership: '1', 1429 dataOwnership: '1',
1477 pageNumber: 1, 1430 pageNumber: 1,
1478 pageSize: 10, 1431 pageSize: 10,
  1432 + auditTime:0
1479 }) 1433 })
1480 this.tableData = res.data.content 1434 this.tableData = res.data.content
1481 } else if (this.planName == '' && this.eventTheme != '') { 1435 } else if (this.planName == '' && this.eventTheme != '') {
@@ -1484,6 +1438,7 @@ @@ -1484,6 +1438,7 @@
1484 dataOwnership: '1', 1438 dataOwnership: '1',
1485 pageNumber: 1, 1439 pageNumber: 1,
1486 pageSize: 10, 1440 pageSize: 10,
  1441 + auditTime:0
1487 }) 1442 })
1488 this.tableData = res.data.content 1443 this.tableData = res.data.content
1489 } else { 1444 } else {
@@ -1493,6 +1448,7 @@ @@ -1493,6 +1448,7 @@
1493 dataOwnership: '1', 1448 dataOwnership: '1',
1494 pageNumber: 1, 1449 pageNumber: 1,
1495 pageSize: 10, 1450 pageSize: 10,
  1451 + auditTime:0
1496 }) 1452 })
1497 this.tableData = res.data.content 1453 this.tableData = res.data.content
1498 } 1454 }
@@ -1500,6 +1456,7 @@ @@ -1500,6 +1456,7 @@
1500 }, 1456 },
1501 //详情点击 1457 //详情点击
1502 handleEditForm(item) { 1458 handleEditForm(item) {
  1459 + this.fileData = []
1503 this.zhixingList = { 1460 this.zhixingList = {
1504 planTime:[], 1461 planTime:[],
1505 planName: '', //活动名称 1462 planName: '', //活动名称
@@ -1521,6 +1478,7 @@ @@ -1521,6 +1478,7 @@
1521 expectedDirectBenefits: '', //直接收益 1478 expectedDirectBenefits: '', //直接收益
1522 expectedIndirectBenefits: '', //间接收益 1479 expectedIndirectBenefits: '', //间接收益
1523 createDate: '', //创建时间 1480 createDate: '', //创建时间
  1481 + feedbackContent:''
1524 } //执行效果列表 1482 } //执行效果列表
1525 actPage({ 1483 actPage({
1526 detailsId: item.id, 1484 detailsId: item.id,
@@ -1585,8 +1543,8 @@ @@ -1585,8 +1543,8 @@
1585 that.tableData1[2].planName = res.data.content[0].sponsor 1543 that.tableData1[2].planName = res.data.content[0].sponsor
1586 that.tableData1[3].eventTheme = res.data.content[0].participants 1544 that.tableData1[3].eventTheme = res.data.content[0].participants
1587 that.tableData1[3].planName = res.data.content[0].mainPurpose 1545 that.tableData1[3].planName = res.data.content[0].mainPurpose
1588 -  
1589 - that.tableData1[4].eventTheme = this.getStatus(res.data.content[0].state) 1546 + that.tableData1[4].planName = this.getStatus(res.data.content[0].state)
  1547 + that.tableData1[4].eventTheme = res.data.content[0].rangeSetting
1590 //活动成本信息 1548 //活动成本信息
1591 that.internalLaborCostEstimation = res.data.content[0].internalLaborCostEstimation 1549 that.internalLaborCostEstimation = res.data.content[0].internalLaborCostEstimation
1592 that.externalLaborCostEstimation = res.data.content[0].externalLaborCostEstimation 1550 that.externalLaborCostEstimation = res.data.content[0].externalLaborCostEstimation
@@ -1661,6 +1619,9 @@ @@ -1661,6 +1619,9 @@
1661 }, 1619 },
1662 //执行效果保存 1620 //执行效果保存
1663 async bianji() { 1621 async bianji() {
  1622 + if(this.fileData.length !=0){
  1623 + this.zhixingList.feedbackContent = this.fileData[0].url
  1624 + }
1664 if (this.zhiXing) { 1625 if (this.zhiXing) {
1665 this.zhixingList.eventStartTime = this.zhixingList.planTime[0] 1626 this.zhixingList.eventStartTime = this.zhixingList.planTime[0]
1666 this.zhixingList.eventEndTime = this.zhixingList.planTime[1] 1627 this.zhixingList.eventEndTime = this.zhixingList.planTime[1]
@@ -1887,6 +1848,9 @@ @@ -1887,6 +1848,9 @@
1887 1848
1888 }, 1849 },
1889 xiaoguo(item) { 1850 xiaoguo(item) {
  1851 + effectEvaluation({id:item.id}).then(res=>{
  1852 + this.fenxiData = res.data
  1853 + })
1890 this.xiaoguoBox = true 1854 this.xiaoguoBox = true
1891 this.$nextTick(() => { 1855 this.$nextTick(() => {
1892 this.shopLiu(this.$refs.shopL); 1856 this.shopLiu(this.$refs.shopL);
@@ -2115,22 +2079,32 @@ @@ -2115,22 +2079,32 @@
2115 2079
2116 }, 2080 },
2117 handleUploadSuccess(response, file, fileList) { 2081 handleUploadSuccess(response, file, fileList) {
2118 - console.log(response, file, fileList)  
2119 - // this.fileData.push(file) 2082 + const fileMsg = {
  2083 + name:file.name,
  2084 + url: file.response.data.url,
  2085 + }
  2086 + // 将文件地址存储在 uploadedFiles 数组中
  2087 + this.fileData.push(fileMsg);
2120 }, 2088 },
2121 handleRemove(){ 2089 handleRemove(){
2122 -  
2123 - },  
2124 - daoru(){  
2125 - 2090 + this.fileData = []
2126 }, 2091 },
  2092 + daoru(response, file, fileList){
  2093 + this.daoData.push(file.raw)
  2094 + const formDate = new FormData()
  2095 + formDate.append('file', this.daoData[0])
  2096 + excelAdd(formDate).then(res => {
  2097 + this.getAll()
  2098 + })
  2099 + },
2127 caogao(){ 2100 caogao(){
2128 2101
2129 2102
2130 let pageindex = { 2103 let pageindex = {
2131 pageNumber: 1, 2104 pageNumber: 1,
2132 pageSize: 10, 2105 pageSize: 10,
2133 - dataOwnership: '1' 2106 + dataOwnership: '1',
  2107 + isDraft:1
2134 } 2108 }
2135 queryByPage(pageindex).then(res=>{ 2109 queryByPage(pageindex).then(res=>{
2136 this.caoList = res.data.content 2110 this.caoList = res.data.content
@@ -2138,7 +2112,7 @@ @@ -2138,7 +2112,7 @@
2138 this.caogaoshow =true 2112 this.caogaoshow =true
2139 2113
2140 }, 2114 },
2141 - shiyong(val,item){ 2115 + shiyong(item){
2142 2116
2143 const h = this.$createElement; 2117 const h = this.$createElement;
2144 this.$msgbox({ 2118 this.$msgbox({
@@ -2153,14 +2127,14 @@ @@ -2153,14 +2127,14 @@
2153 customClass: 'oe-dialog-btn', 2127 customClass: 'oe-dialog-btn',
2154 beforeClose: (action, instance, done) => { 2128 beforeClose: (action, instance, done) => {
2155 if (action === 'confirm') { 2129 if (action === 'confirm') {
2156 - // contentEdit({  
2157 - // id: item.id,  
2158 - // draftStatus:1  
2159 - // }).then(res => {  
2160 - // this.getAll()  
2161 - // this.getcaogao()  
2162 - // done();  
2163 - // }) 2130 + xiangedit({
  2131 + id:item.id,
  2132 + isDraft:0
  2133 + }).then(res => {
  2134 + this.getAll()
  2135 + this.caogao()
  2136 + done();
  2137 + })
2164 } else { 2138 } else {
2165 done(); 2139 done();
2166 } 2140 }
@@ -2169,6 +2143,56 @@ @@ -2169,6 +2143,56 @@
2169 2143
2170 2144
2171 }, 2145 },
  2146 + async daochu(){
  2147 + let res = await excelQueryByPage(this.pageindex)
  2148 + if(!res){
  2149 + return
  2150 + }
  2151 + const blob = new Blob([res], { type: 'application/vnd.ms-excel' })
  2152 + const fileName = '审核流程.xls'
  2153 + if ('download' in document.createElement('a')) {
  2154 + // 非IE下载
  2155 + const elink = document.createElement('a')
  2156 + elink.download = fileName
  2157 + elink.style.display = 'none'
  2158 + elink.href = URL.createObjectURL(blob)
  2159 + document.body.appendChild(elink)
  2160 + elink.click()
  2161 + URL.revokeObjectURL(elink.href) // 释放URL 对象
  2162 + document.body.removeChild(elink)
  2163 + } else {
  2164 + // IE10+下载
  2165 + navigator.msSaveBlob(blob, fileName)
  2166 + }
  2167 + this.$message({
  2168 + message: '导出成功',
  2169 + type: 'success'
  2170 + })
  2171 +
  2172 +
  2173 + },
  2174 + // 下载
  2175 + async downloadPdf() {
  2176 + const content = this.$refs.actXiang;
  2177 +
  2178 + // 使用 html2canvas 将 div 渲染为画布
  2179 + const canvas = await html2canvas(content);
  2180 +
  2181 + // 获取画布的图像数据
  2182 + const imgData = canvas.toDataURL('image/png');
  2183 +
  2184 + // 创建一个新的 PDF 文档
  2185 + const pdf = new jsPDF('p', 'mm', 'a4');
  2186 +
  2187 + // 添加图像到 PDF,第二个参数是图像格式,第三个参数是缩放比例
  2188 + const imgWidth = 190; // 图像的宽度(mm)
  2189 + const imgHeight = (canvas.height * imgWidth) / canvas.width; // 保持图像的宽高比
  2190 +
  2191 + pdf.addImage(imgData, 'PNG', 10, 10, imgWidth, imgHeight); // 10, 10 是图像在 PDF 中的位置(mm)
  2192 +
  2193 + // 保存 PDF 文件
  2194 + pdf.save('活动方案.pdf');
  2195 + },
2172 } 2196 }
2173 } 2197 }
2174 </script> 2198 </script>
yanshouban/src/views/ads/fangli/index.vue
@@ -38,17 +38,26 @@ @@ -38,17 +38,26 @@
38 </div> 38 </div>
39 39
40 </div> 40 </div>
41 - <div style="margin-bottom:20px;"> 41 + <div style="margin-bottom: 20px;display:flex;">
42 <el-button 42 <el-button
43 - style="background-color: #3F9B6A;color: #fff;padding:8px 15px;" icon="el-icon-circle-plus-outline" 43 + style="background-color: #3F9B6A;color: #fff;padding:8px 15px;margin-right:15px;" icon="el-icon-circle-plus-outline"
44 @click="addbuss" 44 @click="addbuss"
45 >新增</el-button 45 >新增</el-button
46 > 46 >
47 - <!-- <el-button 47 + <el-upload class="upload-demo" ref="upload"
  48 + :limit="1"
  49 + accept=".xlsx"
  50 + :action="action"
  51 + :on-success="daoru"
  52 + :file-list="fileData"
  53 + :auto-upload="true"
  54 + :show-file-list="false">
  55 + <el-button style="background-color: #fff;color: #3F9B6A;border: 1px solid #dcdfe6;" class="buttonHover">导入</el-button>
  56 + </el-upload>
  57 + <!-- <el-button
48 style="background-color: #3F9B6A;color: #fff;padding:8px 15px;" 58 style="background-color: #3F9B6A;color: #fff;padding:8px 15px;"
49 @click="daoru" 59 @click="daoru"
50 - >导入</el-button  
51 - > --> 60 + >导入</el-button> -->
52 </div> 61 </div>
53 <!-- 表格 --> 62 <!-- 表格 -->
54 <el-table 63 <el-table
@@ -171,10 +180,10 @@ @@ -171,10 +180,10 @@
171 <div class="tableBtn greens" v-if="scope.row.auditStatus =='1'" @click="peizhi(scope.row)"> 180 <div class="tableBtn greens" v-if="scope.row.auditStatus =='1'" @click="peizhi(scope.row)">
172 审核流程配置 181 审核流程配置
173 </div> 182 </div>
174 - <div class="tableBtn greens" v-if="scope.row.enableStatus== 1 &&scope.row.auditStatus =='2'" @click="qiyong(scope.row,0)"> 183 + <div class="tableBtn greens" v-if="scope.row.enableStatus== 1 || scope.row.enableStatus == null &&scope.row.auditStatus =='2'" @click="qiyong(scope.row,0)">
175 启用 184 启用
176 </div> 185 </div>
177 - <div class="tableBtn greens" v-if="scope.row.enableStatus == 0 &&scope.row.auditStatus =='2' " @click="qiyong(scope.row,1)"> 186 + <div class="tableBtn greens" v-if="scope.row.enableStatus == 0 &&scope.row.auditStatus =='2' " @click="qiyong(scope.row,1)">
178 禁用 187 禁用
179 </div> 188 </div>
180 <div class="tableBtn greens" @click="delGuan(scope.row)" > 189 <div class="tableBtn greens" @click="delGuan(scope.row)" >
@@ -199,22 +208,22 @@ @@ -199,22 +208,22 @@
199 </div> 208 </div>
200 </div> 209 </div>
201 </div> 210 </div>
202 - <el-dialog :visible.sync="peiShow" custom-class='bian_css' style="padding: 0;" width="75%" 211 + <el-dialog :visible.sync="peiShow" custom-class='bian_css' style="padding: 0;" width="45%"
203 :close-on-press-escape="false" center :close-on-click-modal="false" class="dialog_css_Xq" :show-close="false"> 212 :close-on-press-escape="false" center :close-on-click-modal="false" class="dialog_css_Xq" :show-close="false">
204 <div style="padding:20px;"> 213 <div style="padding:20px;">
205 - <el-form label-position="right" ref="jibenFrom" :model="peiForm" :rules="peiFormRules" label-width="140px" 214 + <div style="font-size: 14px;padding-bottom: 20px;color: #000;">审核流程配置</div>
  215 + <el-form label-position="right" ref="jibenFrom" :model="peiForm" label-width="140px"
206 style="position: relative"> 216 style="position: relative">
207 <el-form-item label="审核提醒时间" class="grid-content bg-purple device-from" prop="planName"> 217 <el-form-item label="审核提醒时间" class="grid-content bg-purple device-from" prop="planName">
208 - <el-date-picker style="width:160px;margin-right:5px" v-model="peiForm.auditTime"  
209 - value-format="yyyy-M-d" type="daterange" range-separator="-" start-placeholder=""  
210 - end-placeholder="" prefix-icon="none" > 218 + <el-date-picker style="width:240px;margin-right:5px" v-model="peiForm.auditTime"
  219 + value-format="yyyy-MM-dd HH:mm:ss" type="datetime" prefix-icon="none" >
211 </el-date-picker> 220 </el-date-picker>
212 </el-form-item> 221 </el-form-item>
213 </el-form> 222 </el-form>
214 <div style="padding-top:20px;display:flex;justify-content: flex-end;"> 223 <div style="padding-top:20px;display:flex;justify-content: flex-end;">
215 - <el-button class="buttonHover" style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;" 224 + <el-button style="background-color: #3F9B6A;color: #fff"
216 @click="peiCheck">确定</el-button> 225 @click="peiCheck">确定</el-button>
217 - <el-button @click="peiShow = false" style="background-color: #3F9B6A;color: #fff">取消</el-button> 226 + <el-button @click="peiShow = false" style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;" class="buttonHover">取消</el-button>
218 227
219 </div> 228 </div>
220 229
@@ -247,8 +256,8 @@ import { @@ -247,8 +256,8 @@ import {
247 fangAdd, 256 fangAdd,
248 fangEdit, 257 fangEdit,
249 fangDel, 258 fangDel,
  259 + excelAdd
250 }from '../../../api/fangli' 260 }from '../../../api/fangli'
251 -  
252 import upimg from "@/components/ImageUpload/index" 261 import upimg from "@/components/ImageUpload/index"
253 import addxin from "./addform" 262 import addxin from "./addform"
254 import xiang from "./bianform" 263 import xiang from "./bianform"
@@ -256,6 +265,7 @@ export default { @@ -256,6 +265,7 @@ export default {
256 components: {upimg,addxin,xiang}, 265 components: {upimg,addxin,xiang},
257 data() { 266 data() {
258 return { 267 return {
  268 + fileData:[],
259 detbox: false, // 详情 269 detbox: false, // 详情
260 edit: true, // 编辑 270 edit: true, // 编辑
261 formInline: { 271 formInline: {
@@ -550,6 +560,14 @@ export default { @@ -550,6 +560,14 @@ export default {
550 this.peiShow = true 560 this.peiShow = true
551 this.peiId = item.id 561 this.peiId = item.id
552 }, 562 },
  563 + daoru(response, file, fileList){
  564 + this.fileData.push(file.raw)
  565 + const formDate = new FormData()
  566 + formDate.append('file', this.fileData[0])
  567 + excelAdd(formDate).then(res => {
  568 + this.getAll()
  569 + })
  570 + },
553 } 571 }
554 } 572 }
555 </script> 573 </script>
yanshouban/src/views/advertisement/advertisingReview/advertisingReview.vue
@@ -943,7 +943,15 @@ this.pageindex.advertisingSpaceType =&#39;实体广告位&#39; @@ -943,7 +943,15 @@ this.pageindex.advertisingSpaceType =&#39;实体广告位&#39;
943 this.tableData = res.data.content 943 this.tableData = res.data.content
944 this.total = res.data.content.length 944 this.total = res.data.content.length
945 this.xxNum = res.data.content.length 945 this.xxNum = res.data.content.length
946 - 946 + this.tableData.map(res=>{
  947 + res.lesseeName = this.$decrypt(res.lesseeName)
  948 + res.contactPhone = this.$decrypt(res.contactPhone)
  949 + res.idCardNumber = this.$decrypt(res.idCardNumber)
  950 + res.unifiedSocialCreditCode = this.$decrypt(res.unifiedSocialCreditCode)
  951 + res.legalRepresentative = this.$decrypt(res.legalRepresentative)
  952 + res.address = this.$decrypt(res.address)
  953 + res.emailAddress = this.$decrypt(res.emailAddress)
  954 + })
947 const stList = await AdvertiserInfoGetAll(pageindex) 955 const stList = await AdvertiserInfoGetAll(pageindex)
948 this.stNum = stList.data.content.length 956 this.stNum = stList.data.content.length
949 957
@@ -957,7 +965,15 @@ this.pageindex.advertisingSpaceType =&#39;实体广告位&#39; @@ -957,7 +965,15 @@ this.pageindex.advertisingSpaceType =&#39;实体广告位&#39;
957 this.tableData = res.data.content 965 this.tableData = res.data.content
958 this.total = res.data.content.length 966 this.total = res.data.content.length
959 this.stNum = res.data.content.length 967 this.stNum = res.data.content.length
960 - 968 + this.tableData.map(res=>{
  969 + res.lesseeName = this.$decrypt(res.lesseeName)
  970 + res.contactPhone = this.$decrypt(res.contactPhone)
  971 + res.idCardNumber = this.$decrypt(res.idCardNumber)
  972 + res.unifiedSocialCreditCode = this.$decrypt(res.unifiedSocialCreditCode)
  973 + res.legalRepresentative = this.$decrypt(res.legalRepresentative)
  974 + res.address = this.$decrypt(res.address)
  975 + res.emailAddress = this.$decrypt(res.emailAddress)
  976 + })
961 const stList = await AdvertiserInfoGetAll(pageindex) 977 const stList = await AdvertiserInfoGetAll(pageindex)
962 this.xxNum = stList.data.content.length 978 this.xxNum = stList.data.content.length
963 } 979 }
@@ -1008,6 +1024,15 @@ this.pageindex.advertisingSpaceType =&#39;实体广告位&#39; @@ -1008,6 +1024,15 @@ this.pageindex.advertisingSpaceType =&#39;实体广告位&#39;
1008 this.tableData = res.data.content 1024 this.tableData = res.data.content
1009 this.total = res.data.content.length 1025 this.total = res.data.content.length
1010 this.xxNum = res.data.content.length 1026 this.xxNum = res.data.content.length
  1027 + this.tableData.map(res=>{
  1028 + res.lesseeName = this.$decrypt(res.lesseeName)
  1029 + res.contactPhone = this.$decrypt(res.contactPhone)
  1030 + res.idCardNumber = this.$decrypt(res.idCardNumber)
  1031 + res.unifiedSocialCreditCode = this.$decrypt(res.unifiedSocialCreditCode)
  1032 + res.legalRepresentative = this.$decrypt(res.legalRepresentative)
  1033 + res.address = this.$decrypt(res.address)
  1034 + res.emailAddress = this.$decrypt(res.emailAddress)
  1035 + })
1011 let pageindex={ 1036 let pageindex={
1012 pageNumber: 1, 1037 pageNumber: 1,
1013 pageSize: 10, 1038 pageSize: 10,
@@ -1023,6 +1048,15 @@ this.pageindex.advertisingSpaceType =&#39;实体广告位&#39; @@ -1023,6 +1048,15 @@ this.pageindex.advertisingSpaceType =&#39;实体广告位&#39;
1023 this.tableData = res.data.content 1048 this.tableData = res.data.content
1024 this.total = res.data.content.length 1049 this.total = res.data.content.length
1025 this.stNum = res.data.content.length 1050 this.stNum = res.data.content.length
  1051 + this.tableData.map(res=>{
  1052 + res.lesseeName = this.$decrypt(res.lesseeName)
  1053 + res.contactPhone = this.$decrypt(res.contactPhone)
  1054 + res.idCardNumber = this.$decrypt(res.idCardNumber)
  1055 + res.unifiedSocialCreditCode = this.$decrypt(res.unifiedSocialCreditCode)
  1056 + res.legalRepresentative = this.$decrypt(res.legalRepresentative)
  1057 + res.address = this.$decrypt(res.address)
  1058 + res.emailAddress = this.$decrypt(res.emailAddress)
  1059 + })
1026 let pageindex={ 1060 let pageindex={
1027 pageNumber: 1, 1061 pageNumber: 1,
1028 pageSize: 10, 1062 pageSize: 10,
yanshouban/src/views/advertisement/index.vue
@@ -99,6 +99,9 @@ @@ -99,6 +99,9 @@
99 <div @click="xiajia(scope.row)" class="tableBtn greens" v-if="leixing ==1 && scope.row.auditStatus =='4'">下架</div> --> 99 <div @click="xiajia(scope.row)" class="tableBtn greens" v-if="leixing ==1 && scope.row.auditStatus =='4'">下架</div> -->
100 <div @click="toufang(scope.row)" class="tableBtn greens" v-if="leixing == 1 && scope.row.auditStatus =='2'">投放</div> 100 <div @click="toufang(scope.row)" class="tableBtn greens" v-if="leixing == 1 && scope.row.auditStatus =='2'">投放</div>
101 <div @click="xiajia(scope.row)" class="tableBtn greens" v-if="leixing ==1 && scope.row.auditStatus =='4'">下架</div> 101 <div @click="xiajia(scope.row)" class="tableBtn greens" v-if="leixing ==1 && scope.row.auditStatus =='4'">下架</div>
  102 + <div class="tableBtn greens" v-if="scope.row.auditStatus =='1'" @click="peizhi(scope.row)">
  103 + 审核流程配置
  104 + </div>
102 <div @click="gengGai(scope.row)" class="tableBtn greens" v-if="leixing == 1&& scope.row.auditStatus !='5'">更改状态</div> 105 <div @click="gengGai(scope.row)" class="tableBtn greens" v-if="leixing == 1&& scope.row.auditStatus !='5'">更改状态</div>
103 <div @click="handleDelete(scope.row)" class="tableBtn greens" v-if="scope.row.auditStatus =='1'">删除</div> 106 <div @click="handleDelete(scope.row)" class="tableBtn greens" v-if="scope.row.auditStatus =='1'">删除</div>
104 <!-- <div @click="handleDelete(scope.row)" class="tableBtn greens" >删除</div> --> 107 <!-- <div @click="handleDelete(scope.row)" class="tableBtn greens" >删除</div> -->
@@ -753,8 +756,30 @@ @@ -753,8 +756,30 @@
753 </div> 756 </div>
754 </el-dialog> 757 </el-dialog>
755 </div> 758 </div>
  759 +<el-dialog :visible.sync="peiShow" custom-class='bian_css' style="padding: 0;" width="45%"
  760 + :close-on-press-escape="false" center :close-on-click-modal="false" class="dialog_css_Xq" :show-close="false">
  761 + <div style="padding:20px;">
  762 + <div style="font-size: 14px;padding-bottom: 20px;color: #000;">审核流程配置</div>
  763 + <el-form label-position="right" ref="jibenFrom" :model="peiForm" label-width="140px"
  764 + style="position: relative">
  765 + <el-form-item label="审核提醒时间" class="grid-content bg-purple device-from" prop="planName">
  766 + <el-date-picker style="width:240px;margin-right:5px" v-model="peiForm.auditTime"
  767 + value-format="yyyy-MM-dd HH:mm:ss" type="datetime" prefix-icon="none" >
  768 + </el-date-picker>
  769 + </el-form-item>
  770 + </el-form>
  771 + <div style="padding-top:20px;display:flex;justify-content: flex-end;">
  772 + <el-button style="background-color: #3F9B6A;color: #fff"
  773 + @click="peiCheck">确定</el-button>
  774 + <el-button @click="peiShow = false" style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;" class="buttonHover">取消</el-button>
  775 +
  776 + </div>
  777 +
  778 + </div>
756 779
  780 + </el-dialog>
757 </div> 781 </div>
  782 +
758 </div> 783 </div>
759 784
760 </div> 785 </div>
@@ -864,7 +889,12 @@ @@ -864,7 +889,12 @@
864 xsNum:0, 889 xsNum:0,
865 stNum:0, 890 stNum:0,
866 hetongList:{}, 891 hetongList:{},
867 - auditStatusNum:'' 892 + auditStatusNum:'',
  893 + peiForm:{
  894 + auditTime:''
  895 + },
  896 + peiShow:false,
  897 + peiId:''
868 } 898 }
869 }, 899 },
870 created() { 900 created() {
@@ -1163,7 +1193,25 @@ @@ -1163,7 +1193,25 @@
1163 await updateList({id:this.secondData.id,auditStatus:'5'}) 1193 await updateList({id:this.secondData.id,auditStatus:'5'})
1164 this.steatShow = false 1194 this.steatShow = false
1165 this.getAll() 1195 this.getAll()
  1196 + },
  1197 + async peiCheck(){
  1198 + if(this.peiForm.auditTime ==''){
  1199 + this.$message({
  1200 + message: '请填写审核提醒时间',
  1201 + })
  1202 + return;
1166 } 1203 }
  1204 + await fangEdit({id:this.peiId,auditTime:this.peiForm.auditTime})
  1205 + this.peiShow = false
  1206 + this.getAll()
  1207 + },
  1208 + peizhi(item){
  1209 + this.peiForm = {
  1210 + auditTime:''
  1211 + }
  1212 + this.peiShow = true
  1213 + this.peiId = item.id
  1214 + },
1167 } 1215 }
1168 } 1216 }
1169 </script> 1217 </script>
yanshouban/src/views/atmosphere/atmosphereBian.vue
@@ -66,6 +66,17 @@ @@ -66,6 +66,17 @@
66 </el-form-item> 66 </el-form-item>
67 </el-col> 67 </el-col>
68 </el-row> 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 <div style="padding: 10px"> 80 <div style="padding: 10px">
70 <el-row :gutter="20"> 81 <el-row :gutter="20">
71 <el-form-item label="活动封面海报" prop="cover_poster" class="grid-content bg-purple"> 82 <el-form-item label="活动封面海报" prop="cover_poster" class="grid-content bg-purple">
yanshouban/src/views/atmosphere/atmosphereBz.vue
@@ -91,7 +91,16 @@ @@ -91,7 +91,16 @@
91 </el-form-item> 91 </el-form-item>
92 </el-col> 92 </el-col>
93 </el-row> 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-row>
95 <el-row :gutter="20"> 104 <el-row :gutter="20">
96 <el-col :span="12"> 105 <el-col :span="12">
97 <el-form-item label="活动封面海报" prop="cover_poster" class="grid-content bg-purple"> 106 <el-form-item label="活动封面海报" prop="cover_poster" class="grid-content bg-purple">
@@ -297,12 +306,14 @@ @@ -297,12 +306,14 @@
297 </el-tab-pane> 306 </el-tab-pane>
298 </el-tabs> 307 </el-tabs>
299 <div style="display: flex;justify-content: flex-end;padding: 10px 20px 10px 0"> 308 <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;">取消 309 + <el-button plain @click="close" size="mini" style="background-color: #3F9B6A;color: #fff;">取消
  310 + </el-button>
  311 + <el-button @click="onSubmit(1)" style="background-color: #3F9B6A;color: #fff;">暂存
  312 + </el-button>
  313 + <el-button plain @click="onSubmit(0)" size="mini" style="background-color: #3F9B6A;color: #fff;">保存
305 </el-button> 314 </el-button>
  315 +
  316 +
306 </div> 317 </div>
307 </div> 318 </div>
308 319
@@ -393,6 +404,7 @@ uploadFileUrl: uploadUrl, // 请求地址 @@ -393,6 +404,7 @@ uploadFileUrl: uploadUrl, // 请求地址
393 eventTheme:'',//活动主题 404 eventTheme:'',//活动主题
394 sponsor:'',//活动主办方 405 sponsor:'',//活动主办方
395 participants:'',//活动参与方 406 participants:'',//活动参与方
  407 + rangeSetting:'',
396 mainPurpose:'',//活动主要目的 408 mainPurpose:'',//活动主要目的
397 coverPoster:'',//封面海报 409 coverPoster:'',//封面海报
398 internalLaborCostEstimation:'',//内部人工成本预估 410 internalLaborCostEstimation:'',//内部人工成本预估
@@ -504,7 +516,7 @@ uploadFileUrl: uploadUrl, // 请求地址 @@ -504,7 +516,7 @@ uploadFileUrl: uploadUrl, // 请求地址
504 // } 516 // }
505 }, 517 },
506 //保存 518 //保存
507 - onSubmit(){ 519 + onSubmit(val){
508 this.updateCurrentTime(); 520 this.updateCurrentTime();
509 let that = this 521 let that = this
510 let FlieName = this.ruleForm.planName 522 let FlieName = this.ruleForm.planName
@@ -559,6 +571,7 @@ uploadFileUrl: uploadUrl, // 请求地址 @@ -559,6 +571,7 @@ uploadFileUrl: uploadUrl, // 请求地址
559 // } 571 // }
560 this.$refs.jibenFrom.validate((valid) => { 572 this.$refs.jibenFrom.validate((valid) => {
561 if (valid) { 573 if (valid) {
  574 + this.ruleForm.isDraft = val
562 add(this.ruleForm).then(res=>{ 575 add(this.ruleForm).then(res=>{
563 this.$message({ 576 this.$message({
564 message: '保存成功', 577 message: '保存成功',
@@ -681,6 +694,7 @@ this.tuxiangData = { @@ -681,6 +694,7 @@ this.tuxiangData = {
681 eventTheme: '', //活动主题 694 eventTheme: '', //活动主题
682 sponsor: '', //活动主办方 695 sponsor: '', //活动主办方
683 participants: '', //活动参与方 696 participants: '', //活动参与方
  697 + rangeSetting:'',
684 mainPurpose: '', //活动主要目的 698 mainPurpose: '', //活动主要目的
685 coverPoster: '', //封面海报 699 coverPoster: '', //封面海报
686 internalLaborCostEstimation: '', //内部人工成本预估 700 internalLaborCostEstimation: '', //内部人工成本预估
yanshouban/src/views/atmosphere/atmosphereGl.vue
@@ -22,13 +22,23 @@ @@ -22,13 +22,23 @@
22 </div> 22 </div>
23 </div> 23 </div>
24 <div style="margin:20px 0;"> 24 <div style="margin:20px 0;">
25 - <div> 25 + <div style="display:flex;">
26 <el-button icon="el-icon-circle-plus-outline" @click="create" 26 <el-button icon="el-icon-circle-plus-outline" @click="create"
27 style="background-color: #3F9B6A;color: #fff;">新增</el-button> 27 style="background-color: #3F9B6A;color: #fff;">新增</el-button>
28 <el-button style="background-color: #E24E5A;color: #fff;" icon="el-icon-delete" @click="handleDelete" class="DelBtnHover">删除</el-button> 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-button style="background-color: #3F9B6A;color: #fff;" @click="daoru">导入</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>
31 <el-button style="background-color: #3F9B6A;color: #fff;" @click="caogao">草稿箱</el-button> 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>
32 <!-- <el-button style="background-color: #fff;color: #000;border: 1px solid #B1B1B1;" 42 <!-- <el-button style="background-color: #fff;color: #000;border: 1px solid #B1B1B1;"
33 icon="el-icon-folder-add" class="buttonHover" @click="xinFenlei">氛围分类管理</el-button> --> 43 icon="el-icon-folder-add" class="buttonHover" @click="xinFenlei">氛围分类管理</el-button> -->
34 </div> 44 </div>
@@ -82,7 +92,7 @@ @@ -82,7 +92,7 @@
82 {{scope.row.state == ''?'待提交':scope.row.state == '1'?'待审批':scope.row.state == '2'?'部门领导审批':scope.row.state == '3'?'公司领导审批':scope.row.state == '4'?'其他审批':scope.row.state == '5'?'审核通过':'已驳回'}} 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 </template> 93 </template>
84 </el-table-column> 94 </el-table-column>
85 - <el-table-column label="修改时间" prop="createDate"width="250" > 95 + <el-table-column label="创建时间" prop="createDate"width="250" >
86 </el-table-column> 96 </el-table-column>
87 <el-table-column prop="createUser" label="上传人员" width="80"> 97 <el-table-column prop="createUser" label="上传人员" width="80">
88 98
@@ -93,7 +103,7 @@ @@ -93,7 +103,7 @@
93 <!-- <div class="tableBtn greens">发布</div> --> 103 <!-- <div class="tableBtn greens">发布</div> -->
94 <div class="tableBtn greens" @click="handleEditForm(scope.row)">执行情况</div> 104 <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> 105 <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> 106 + <div class="tableBtn greens" @click="xiaoguo(scope.row)" v-if="scope.row.state == '5'" >效果评估</div>
97 <!-- <div class="tableBtn greens">策略调整</div> --> 107 <!-- <div class="tableBtn greens">策略调整</div> -->
98 <div class="tableBtn greens" @click="koop(scope.row)">复制</div> 108 <div class="tableBtn greens" @click="koop(scope.row)">复制</div>
99 </template> 109 </template>
@@ -123,7 +133,7 @@ @@ -123,7 +133,7 @@
123 <!-- 详情活动方案 --> 133 <!-- 详情活动方案 -->
124 <el-dialog title="氛围方案详情" :visible.sync="ggXin" custom-class='xiang_css' style="padding: 0;" width="80%" 134 <el-dialog title="氛围方案详情" :visible.sync="ggXin" custom-class='xiang_css' style="padding: 0;" width="80%"
125 center :close-on-click-modal="false" :close-on-press-escape="false" @close="refreshData"> 135 center :close-on-click-modal="false" :close-on-press-escape="false" @close="refreshData">
126 - <div> 136 + <div ref="actXiang">
127 <div style="width: 100%;"> 137 <div style="width: 100%;">
128 <div style="display: flex;padding:0px 20px 20px 20px; "> 138 <div style="display: flex;padding:0px 20px 20px 20px; ">
129 <div style="width: 150px;height: 80px;" v-if="secondData.coverPoster"> 139 <div style="width: 150px;height: 80px;" v-if="secondData.coverPoster">
@@ -541,15 +551,14 @@ @@ -541,15 +551,14 @@
541 551
542 </el-row> 552 </el-row>
543 <el-row :gutter="20"> 553 <el-row :gutter="20">
544 - <el-col :span="8"> 554 + <el-col :span="24">
545 <el-form-item label="反馈内容" class="grid-content bg-purple" prop="name"> 555 <el-form-item label="反馈内容" class="grid-content bg-purple" prop="name">
546 <el-upload class="upload-demo" ref="upload" :on-remove="handleRemove" 556 <el-upload class="upload-demo" ref="upload" :on-remove="handleRemove"
547 :action="uploadFileUrl" :on-success="handleUploadSuccess" :file-list="fileData" 557 :action="uploadFileUrl" :on-success="handleUploadSuccess" :file-list="fileData"
548 - :show-file-list="false" v-if="zhixingBian">  
549 - <div style="color: #2d8a58;margin-left: 10px;" slot="trigger">  
550 - 上传附件  
551 - </div> 558 + :show-file-list="true" v-if="zhixingBian">
  559 + <el-button style="background-color: #fff;color: #3F9B6A;border: 1px solid #dcdfe6;" class="buttonHover" v-if="fileData.length==0">+点击上传</el-button>
552 </el-upload> 560 </el-upload>
  561 + <div v-else>{{zhixingList.feedbackContent}}</div>
553 </el-form-item> 562 </el-form-item>
554 </el-col> 563 </el-col>
555 564
@@ -563,9 +572,11 @@ @@ -563,9 +572,11 @@
563 <el-button plain @click="bianji" style="background-color: #3F9B6A;color: #fff" v-if="zhixingBian">保存 572 <el-button plain @click="bianji" style="background-color: #3F9B6A;color: #fff" v-if="zhixingBian">保存
564 </el-button> 573 </el-button>
565 </div> 574 </div>
566 -  
567 </div> 575 </div>
568 </div> 576 </div>
  577 + <div style="display: flex;justify-content: flex-end;padding:10px" v-if="activeName=='first'">
  578 + <el-button @click="downloadPdf" style="background-color: #3F9B6A;color: #fff" >下载
  579 + </el-button></div>
569 </el-dialog> 580 </el-dialog>
570 </div> 581 </div>
571 </div> 582 </div>
@@ -614,37 +625,37 @@ @@ -614,37 +625,37 @@
614 <div style="display:flex;padding:10px 0;"> 625 <div style="display:flex;padding:10px 0;">
615 <div style="margin-right:40px;width:17%"> 626 <div style="margin-right:40px;width:17%">
616 <div style="color:#BBBBBB;font-size:10px;">吸引游客流量</div> 627 <div style="color:#BBBBBB;font-size:10px;">吸引游客流量</div>
617 - <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">4289</span>人</div>  
618 - <div style="color:#BBBBBB;font-size:10px;margin-bottom:10px">+45%</div> 628 + <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">{{fenxiData.expectedAttractTraffic}}</span>人</div>
  629 + <div style="color:#BBBBBB;font-size:10px;margin-bottom:10px">{{fenxiData.expectedAttractTrafficAnalyse}}%</div>
619 <div style="height:5px;background-color:#FEC03D;"></div> 630 <div style="height:5px;background-color:#FEC03D;"></div>
620 </div> 631 </div>
621 <div style="margin-right:40px;width:17%"> 632 <div style="margin-right:40px;width:17%">
622 <div style="color:#BBBBBB;font-size:10px;">参与人数</div> 633 <div style="color:#BBBBBB;font-size:10px;">参与人数</div>
623 - <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">4289</span>人</div>  
624 - <div style="color:#BBBBBB;font-size:10px;margin-bottom:10px">+45%</div> 634 + <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">{{fenxiData.expectedParticipation}}</span>人</div>
  635 + <div style="color:#BBBBBB;font-size:10px;margin-bottom:10px">{{fenxiData.expectedParticipationAnalyse}}%</div>
625 <div style="height:5px;background-color:#58A3F7;"></div> 636 <div style="height:5px;background-color:#58A3F7;"></div>
626 </div> 637 </div>
627 <div style="margin-right:40px;width:17%"> 638 <div style="margin-right:40px;width:17%">
628 <div style="color:#BBBBBB;font-size:10px;">直接收益</div> 639 <div style="color:#BBBBBB;font-size:10px;">直接收益</div>
629 - <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">4289</span>人</div>  
630 - <div style="color:#BBBBBB;font-size:10px;margin-bottom:10px">+45%</div> 640 + <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">{{fenxiData.expectedDirectBenefits}}</span></div>
  641 + <div style="color:#BBBBBB;font-size:10px;margin-bottom:10px">{{fenxiData.expectedDirectBenefitsAnalysis}}%</div>
631 <div style="height:5px;background-color:#4BCED0;"></div> 642 <div style="height:5px;background-color:#4BCED0;"></div>
632 </div> 643 </div>
633 <div style="margin-right:40px;width:17%"> 644 <div style="margin-right:40px;width:17%">
634 <div style="color:#BBBBBB;font-size:10px;">间接收益</div> 645 <div style="color:#BBBBBB;font-size:10px;">间接收益</div>
635 - <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">4289</span>人</div>  
636 - <div style="color:#BBBBBB;font-size:10px;margin-bottom:10px">+45%</div> 646 + <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">{{fenxiData.expectedIndirectBenefits}}</span></div>
  647 + <div style="color:#BBBBBB;font-size:10px;margin-bottom:10px">{{fenxiData.expectedIndirectBenefitsAnalysis}}%</div>
637 <div style="height:5px;background-color:#3F9B6A;"></div> 648 <div style="height:5px;background-color:#3F9B6A;"></div>
638 </div> 649 </div>
639 <div style="margin-right:40px;width:17%"> 650 <div style="margin-right:40px;width:17%">
640 <div style="color:#BBBBBB;font-size:10px;">投入生产比</div> 651 <div style="color:#BBBBBB;font-size:10px;">投入生产比</div>
641 - <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">4289</span>人</div>  
642 - <div style="color:#BBBBBB;font-size:10px;margin-bottom:10px">+45%</div> 652 + <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">{{fenxiData.incomeAnalysis}}%</span></div>
  653 + <div style="color:#BBBBBB;font-size:10px;margin-bottom:10px">{{fenxiData.incomeAnalysis}}%</div>
643 <div style="height:5px;background-color:#8167F5;"></div> 654 <div style="height:5px;background-color:#8167F5;"></div>
644 </div> 655 </div>
645 </div> 656 </div>
646 - <div style="font-size:12px;margin:10px 0;">效果分析</div>  
647 - <div style="display:flex;padding:10px 0;"> 657 + <!-- <div style="font-size:12px;margin:10px 0;">效果分析</div> -->
  658 + <!-- <div style="display:flex;padding:10px 0;">
648 <div style="margin-right:40px;width:17%"> 659 <div style="margin-right:40px;width:17%">
649 <div style="color:#BBBBBB;font-size:10px;">吸引游客流量</div> 660 <div style="color:#BBBBBB;font-size:10px;">吸引游客流量</div>
650 <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">4289</span>人</div> 661 <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">4289</span>人</div>
@@ -675,7 +686,7 @@ @@ -675,7 +686,7 @@
675 <div style="color:#BBBBBB;font-size:10px;margin-bottom:10px">+45%</div> 686 <div style="color:#BBBBBB;font-size:10px;margin-bottom:10px">+45%</div>
676 <div style="height:5px;background-color:#8167F5;"></div> 687 <div style="height:5px;background-color:#8167F5;"></div>
677 </div> 688 </div>
678 - </div> 689 + </div> -->
679 </div> 690 </div>
680 <div style="padding:0 20px;margin-top:20px;"> 691 <div style="padding:0 20px;margin-top:20px;">
681 <div style="border:1px solid #EFEFEF;padding:20px 15px"> 692 <div style="border:1px solid #EFEFEF;padding:20px 15px">
@@ -1106,9 +1117,8 @@ @@ -1106,9 +1117,8 @@
1106 </el-table-column> 1117 </el-table-column>
1107 <el-table-column label="操作" width="350"> 1118 <el-table-column label="操作" width="350">
1108 <template slot-scope="scope"> 1119 <template slot-scope="scope">
1109 - <div @click="shiyong(1,scope.row)" class="tableBtn greens">使用</div>  
1110 - <div class="tableBtn greens" @click="handleEditForm(scope.row)">执行情况</div>  
1111 - <div @click="actBian(scope.row)" class="tableBtn greens" v-if="scope.row.state == ''">修改</div> 1120 + <div @click="shiyong(scope.row)" class="tableBtn greens">使用</div>
  1121 + <!-- <div @click="actBian(scope.row)" class="tableBtn greens" v-if="scope.row.state == ''">修改</div> -->
1112 <div @click="handleDelete(scope.row)" class="tableBtn greens">删除</div> 1122 <div @click="handleDelete(scope.row)" class="tableBtn greens">删除</div>
1113 </template> 1123 </template>
1114 </el-table-column> 1124 </el-table-column>
@@ -1145,12 +1155,17 @@ @@ -1145,12 +1155,17 @@
1145 cereGet, 1155 cereGet,
1146 cereAdd, 1156 cereAdd,
1147 cereEdit, 1157 cereEdit,
1148 - cereDel 1158 + cereDel,
  1159 + excelQueryByPage,
  1160 + excelAdd,
  1161 + effectEvaluation
1149 } from '../../api/activityBz' 1162 } from '../../api/activityBz'
1150 import addAct from "./atmosphereBz" 1163 import addAct from "./atmosphereBz"
1151 import atmbians from "./atmosphereBian" 1164 import atmbians from "./atmosphereBian"
1152 import * as echarts from 'echarts' 1165 import * as echarts from 'echarts'
1153 import Vue from 'vue' 1166 import Vue from 'vue'
  1167 + import html2canvas from 'html2canvas'
  1168 + import jsPDF from 'jspdf'
1154 import { 1169 import {
1155 uploadUrl 1170 uploadUrl
1156 } from '@/utils/request' 1171 } from '@/utils/request'
@@ -1164,6 +1179,7 @@ components: { addAct,atmbians}, @@ -1164,6 +1179,7 @@ components: { addAct,atmbians},
1164 acBian:'',//编辑数据 1179 acBian:'',//编辑数据
1165 bianshow:false,//编辑页 1180 bianshow:false,//编辑页
1166 }, 1181 },
  1182 + fenxiData:{},
1167 planName:'', 1183 planName:'',
1168 planFen:'', 1184 planFen:'',
1169 eventTheme:'', 1185 eventTheme:'',
@@ -1222,9 +1238,11 @@ components: { addAct,atmbians}, @@ -1222,9 +1238,11 @@ components: { addAct,atmbians},
1222 text: '活动主要目的', 1238 text: '活动主要目的',
1223 eventTheme: '' 1239 eventTheme: ''
1224 },{ 1240 },{
1225 - id: '5',  
1226 - name: '状态',  
1227 - eventTheme: '待审核' 1241 + id:0,
  1242 + name: '范围设置',
  1243 + planName: '',
  1244 + text: '状态',
  1245 + eventTheme: ''
1228 }], 1246 }],
1229 internalLaborCostEstimation:'', 1247 internalLaborCostEstimation:'',
1230 externalLaborCostEstimation:'', 1248 externalLaborCostEstimation:'',
@@ -1304,7 +1322,8 @@ components: { addAct,atmbians}, @@ -1304,7 +1322,8 @@ components: { addAct,atmbians},
1304 pageindex: { 1322 pageindex: {
1305 pageNumber: 1, 1323 pageNumber: 1,
1306 pageSize: 10, 1324 pageSize: 10,
1307 - dataOwnership:'2' 1325 + dataOwnership:'2',
  1326 + isDraft:0
1308 }, 1327 },
1309 multipleSelection:[],//选择的数据 1328 multipleSelection:[],//选择的数据
1310 options: [], 1329 options: [],
@@ -1345,6 +1364,7 @@ components: { addAct,atmbians}, @@ -1345,6 +1364,7 @@ components: { addAct,atmbians},
1345 duibiOne:{}, 1364 duibiOne:{},
1346 duibiTwo:{}, 1365 duibiTwo:{},
1347 uploadFileUrl: uploadUrl, // 请求地址 1366 uploadFileUrl: uploadUrl, // 请求地址
  1367 + daoData:[],
1348 fileData:[], 1368 fileData:[],
1349 caoList:[], 1369 caoList:[],
1350 caogaoshow:false 1370 caogaoshow:false
@@ -1377,7 +1397,7 @@ components: { addAct,atmbians}, @@ -1377,7 +1397,7 @@ components: { addAct,atmbians},
1377 //查询全数据 1397 //查询全数据
1378 async getAll() { 1398 async getAll() {
1379 const res = await queryByPage((this.pageindex)) 1399 const res = await queryByPage((this.pageindex))
1380 - console.log(res.data) 1400 +
1381 this.tableData = res.data.content 1401 this.tableData = res.data.content
1382 this.total = res.data.content.length 1402 this.total = res.data.content.length
1383 let page = { 1403 let page = {
@@ -1407,12 +1427,13 @@ components: { addAct,atmbians}, @@ -1407,12 +1427,13 @@ components: { addAct,atmbians},
1407 })); 1427 }));
1408 }, 1428 },
1409 async handleNodeClick(data){ 1429 async handleNodeClick(data){
1410 - console.log('Node clicked:', data); 1430 +
1411 let pageindex= { 1431 let pageindex= {
1412 pageNumber: 1, 1432 pageNumber: 1,
1413 pageSize: 10, 1433 pageSize: 10,
1414 dataOwnership: '2', 1434 dataOwnership: '2',
1415 - classificationCode:data.id 1435 + classificationCode:data.id,
  1436 + isDraft:0
1416 } 1437 }
1417 const res = await queryByPage(pageindex) 1438 const res = await queryByPage(pageindex)
1418 this.tableData = res.data.content 1439 this.tableData = res.data.content
@@ -1422,7 +1443,8 @@ components: { addAct,atmbians}, @@ -1422,7 +1443,8 @@ components: { addAct,atmbians},
1422 this.pageindex={ 1443 this.pageindex={
1423 pageNumber: 1, 1444 pageNumber: 1,
1424 pageSize: 10, 1445 pageSize: 10,
1425 - dataOwnership: '2' 1446 + dataOwnership: '2',
  1447 + isDraft:0
1426 } 1448 }
1427 const res = await queryByPage(this.pageindex) 1449 const res = await queryByPage(this.pageindex)
1428 this.tableData = res.data.content 1450 this.tableData = res.data.content
@@ -1469,13 +1491,13 @@ components: { addAct,atmbians}, @@ -1469,13 +1491,13 @@ components: { addAct,atmbians},
1469 //查询 1491 //查询
1470 async onSubmit(){ 1492 async onSubmit(){
1471 if(this.planName != '' && this.eventTheme == ''){ 1493 if(this.planName != '' && this.eventTheme == ''){
1472 - const res = await danqueryById({planName:this.planName,dataOwnership:'2', pageNumber: 1,pageSize: 10,}) 1494 + const res = await danqueryById({planName:this.planName,dataOwnership:'2', pageNumber: 1,pageSize: 10, auditTime:0})
1473 this.tableData = res.data.content 1495 this.tableData = res.data.content
1474 }else if(this.planName == '' && this.eventTheme != ''){ 1496 }else if(this.planName == '' && this.eventTheme != ''){
1475 - const res = await danqueryById({eventTheme:this.eventTheme,dataOwnership:'2',pageNumber: 1,pageSize: 10,}) 1497 + const res = await danqueryById({eventTheme:this.eventTheme,dataOwnership:'2',pageNumber: 1,pageSize: 10, auditTime:0})
1476 this.tableData = res.data.content 1498 this.tableData = res.data.content
1477 }else{ 1499 }else{
1478 - const res = await danqueryById({planName:this.planName,eventTheme:this.eventTheme,dataOwnership:'2',pageNumber: 1,pageSize: 10, }) 1500 + const res = await danqueryById({planName:this.planName,eventTheme:this.eventTheme,dataOwnership:'2',pageNumber: 1,pageSize: 10, auditTime:0 })
1479 this.tableData = res.data.content 1501 this.tableData = res.data.content
1480 } 1502 }
1481 1503
@@ -1497,7 +1519,9 @@ components: { addAct,atmbians}, @@ -1497,7 +1519,9 @@ components: { addAct,atmbians},
1497 }, 1519 },
1498 //执行效果保存 1520 //执行效果保存
1499 async bianji() { 1521 async bianji() {
1500 - console.log(this.zhiXing) 1522 + if(this.fileData.length !=0){
  1523 + this.zhixingList.feedbackContent = this.fileData[0].url
  1524 + }
1501 if(this.zhiXing){ 1525 if(this.zhiXing){
1502 this.zhixingList.eventStartTime = this.zhixingList.planTime[0] 1526 this.zhixingList.eventStartTime = this.zhixingList.planTime[0]
1503 this.zhixingList.eventEndTime=this.zhixingList.planTime[1] 1527 this.zhixingList.eventEndTime=this.zhixingList.planTime[1]
@@ -1519,6 +1543,7 @@ components: { addAct,atmbians}, @@ -1519,6 +1543,7 @@ components: { addAct,atmbians},
1519 }, 1543 },
1520 //详情点击 1544 //详情点击
1521 handleEditForm(item) { 1545 handleEditForm(item) {
  1546 + this.fileData = []
1522 this.zhixingList={ 1547 this.zhixingList={
1523 planTime: [], 1548 planTime: [],
1524 planName: '', //活动名称 1549 planName: '', //活动名称
@@ -1600,8 +1625,8 @@ components: { addAct,atmbians}, @@ -1600,8 +1625,8 @@ components: { addAct,atmbians},
1600 that.tableData1[2].planName = res.data.content[0].sponsor 1625 that.tableData1[2].planName = res.data.content[0].sponsor
1601 that.tableData1[3].eventTheme = res.data.content[0].participants 1626 that.tableData1[3].eventTheme = res.data.content[0].participants
1602 that.tableData1[3].planName = res.data.content[0].mainPurpose 1627 that.tableData1[3].planName = res.data.content[0].mainPurpose
1603 - // that.tableData1[4].eventTheme = res.data.content[0].state  
1604 - that.tableData1[4].eventTheme = this.getStatus(res.data.content[0].state) 1628 + that.tableData1[4].planName = this.getStatus(res.data.content[0].state)
  1629 + that.tableData1[4].eventTheme = res.data.content[0].rangeSetting
1605 //活动成本信息 1630 //活动成本信息
1606 that.internalLaborCostEstimation=res.data.content[0].internalLaborCostEstimation 1631 that.internalLaborCostEstimation=res.data.content[0].internalLaborCostEstimation
1607 that.externalLaborCostEstimation=res.data.content[0].externalLaborCostEstimation 1632 that.externalLaborCostEstimation=res.data.content[0].externalLaborCostEstimation
@@ -1811,6 +1836,9 @@ that.expectedAttractTraffic=res.data.content[0].expectedAttractTraffic @@ -1811,6 +1836,9 @@ that.expectedAttractTraffic=res.data.content[0].expectedAttractTraffic
1811 } 1836 }
1812 }, 1837 },
1813 xiaoguo(item) { 1838 xiaoguo(item) {
  1839 + effectEvaluation({id:item.id}).then(res=>{
  1840 + this.fenxiData = res.data
  1841 + })
1814 this.xiaoguoBox = true 1842 this.xiaoguoBox = true
1815 this.$nextTick(() => { 1843 this.$nextTick(() => {
1816 this.shopLiu(this.$refs.shopL); 1844 this.shopLiu(this.$refs.shopL);
@@ -2079,20 +2107,30 @@ that.expectedAttractTraffic=res.data.content[0].expectedAttractTraffic @@ -2079,20 +2107,30 @@ that.expectedAttractTraffic=res.data.content[0].expectedAttractTraffic
2079 2107
2080 }, 2108 },
2081 handleUploadSuccess(response, file, fileList) { 2109 handleUploadSuccess(response, file, fileList) {
2082 - console.log(response, file, fileList)  
2083 - // this.fileData.push(file) 2110 + const fileMsg = {
  2111 + name:file.name,
  2112 + url: file.response.data.url,
  2113 + }
  2114 + // 将文件地址存储在 uploadedFiles 数组中
  2115 + this.fileData.push(fileMsg);
2084 }, 2116 },
2085 handleRemove(){ 2117 handleRemove(){
2086 - 2118 +this.fileData=[]
  2119 + },
  2120 + daoru(response, file, fileList){
  2121 + this.daoData.push(file.raw)
  2122 + const formDate = new FormData()
  2123 + formDate.append('file', this.daoData[0])
  2124 + excelAdd(formDate).then(res => {
  2125 + this.getAll()
  2126 + })
2087 }, 2127 },
2088 - daoru(){  
2089 -  
2090 - },  
2091 caogao(){ 2128 caogao(){
2092 let pageindex = { 2129 let pageindex = {
2093 pageNumber: 1, 2130 pageNumber: 1,
2094 pageSize: 10, 2131 pageSize: 10,
2095 - dataOwnership: '2' 2132 + dataOwnership: '2',
  2133 + isDraft:1
2096 } 2134 }
2097 queryByPage(pageindex).then(res=>{ 2135 queryByPage(pageindex).then(res=>{
2098 this.caoList = res.data.content 2136 this.caoList = res.data.content
@@ -2100,7 +2138,7 @@ that.expectedAttractTraffic=res.data.content[0].expectedAttractTraffic @@ -2100,7 +2138,7 @@ that.expectedAttractTraffic=res.data.content[0].expectedAttractTraffic
2100 this.caogaoshow =true 2138 this.caogaoshow =true
2101 2139
2102 }, 2140 },
2103 - shiyong(val,item){ 2141 + shiyong(item){
2104 2142
2105 const h = this.$createElement; 2143 const h = this.$createElement;
2106 this.$msgbox({ 2144 this.$msgbox({
@@ -2115,14 +2153,15 @@ that.expectedAttractTraffic=res.data.content[0].expectedAttractTraffic @@ -2115,14 +2153,15 @@ that.expectedAttractTraffic=res.data.content[0].expectedAttractTraffic
2115 customClass: 'oe-dialog-btn', 2153 customClass: 'oe-dialog-btn',
2116 beforeClose: (action, instance, done) => { 2154 beforeClose: (action, instance, done) => {
2117 if (action === 'confirm') { 2155 if (action === 'confirm') {
2118 - // contentEdit({  
2119 - // id: item.id,  
2120 - // draftStatus:1  
2121 - // }).then(res => {  
2122 - // this.getAll()  
2123 - // this.getcaogao()  
2124 - // done();  
2125 - // }) 2156 + xiangedit({
  2157 + id: item.id,
  2158 + draftStatus:1,
  2159 + isDraft:0
  2160 + }).then(res => {
  2161 + this.getAll()
  2162 + this.caogao()
  2163 + done();
  2164 + })
2126 } else { 2165 } else {
2127 done(); 2166 done();
2128 } 2167 }
@@ -2131,6 +2170,56 @@ that.expectedAttractTraffic=res.data.content[0].expectedAttractTraffic @@ -2131,6 +2170,56 @@ that.expectedAttractTraffic=res.data.content[0].expectedAttractTraffic
2131 2170
2132 2171
2133 }, 2172 },
  2173 + async daochu(){
  2174 + let res = await excelQueryByPage(this.pageindex)
  2175 + if(!res){
  2176 + return
  2177 + }
  2178 + const blob = new Blob([res], { type: 'application/vnd.ms-excel' })
  2179 + const fileName = '审核流程.xls'
  2180 + if ('download' in document.createElement('a')) {
  2181 + // 非IE下载
  2182 + const elink = document.createElement('a')
  2183 + elink.download = fileName
  2184 + elink.style.display = 'none'
  2185 + elink.href = URL.createObjectURL(blob)
  2186 + document.body.appendChild(elink)
  2187 + elink.click()
  2188 + URL.revokeObjectURL(elink.href) // 释放URL 对象
  2189 + document.body.removeChild(elink)
  2190 + } else {
  2191 + // IE10+下载
  2192 + navigator.msSaveBlob(blob, fileName)
  2193 + }
  2194 + this.$message({
  2195 + message: '导出成功',
  2196 + type: 'success'
  2197 + })
  2198 +
  2199 +
  2200 + },
  2201 + // 下载
  2202 + async downloadPdf() {
  2203 + const content = this.$refs.actXiang;
  2204 +
  2205 + // 使用 html2canvas 将 div 渲染为画布
  2206 + const canvas = await html2canvas(content);
  2207 +
  2208 + // 获取画布的图像数据
  2209 + const imgData = canvas.toDataURL('image/png');
  2210 +
  2211 + // 创建一个新的 PDF 文档
  2212 + const pdf = new jsPDF('p', 'mm', 'a4');
  2213 +
  2214 + // 添加图像到 PDF,第二个参数是图像格式,第三个参数是缩放比例
  2215 + const imgWidth = 190; // 图像的宽度(mm)
  2216 + const imgHeight = (canvas.height * imgWidth) / canvas.width; // 保持图像的宽高比
  2217 +
  2218 + pdf.addImage(imgData, 'PNG', 10, 10, imgWidth, imgHeight); // 10, 10 是图像在 PDF 中的位置(mm)
  2219 +
  2220 + // 保存 PDF 文件
  2221 + pdf.save('氛围方案.pdf');
  2222 + },
2134 } 2223 }
2135 } 2224 }
2136 </script> 2225 </script>
yanshouban/src/views/atmosphere/atmosphereSp.vue
@@ -59,7 +59,7 @@ @@ -59,7 +59,7 @@
59 {{scope.row.state == ''?'待提交':scope.row.state == '1'?'待审批':scope.row.state == '2'?'部门领导审批':scope.row.state == '3'?'公司领导审批':scope.row.state == '4'?'其他审批':scope.row.state == '5'?'审核通过':'已驳回'}} 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 </template> 60 </template>
61 </el-table-column> 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 </el-table-column> 63 </el-table-column>
64 <el-table-column prop="createUser" label="上传人员" min-width="80"> 64 <el-table-column prop="createUser" label="上传人员" min-width="80">
65 65
@@ -912,7 +912,8 @@ @@ -912,7 +912,8 @@
912 pageindex: { 912 pageindex: {
913 pageNumber: 1, 913 pageNumber: 1,
914 pageSize: 10, 914 pageSize: 10,
915 - dataOwnership: '2' 915 + dataOwnership: '2',
  916 + isDraft:0
916 }, 917 },
917 multipleSelection: [], 918 multipleSelection: [],
918 options: [{ 919 options: [{
yanshouban/src/views/business/autd/index.vue
@@ -450,7 +450,7 @@ export default { @@ -450,7 +450,7 @@ export default {
450 this.total = res.data.total 450 this.total = res.data.total
451 this.tableData.map(res=>{ 451 this.tableData.map(res=>{
452 res.shopPhone = this.$decrypt(res.shopPhone) 452 res.shopPhone = this.$decrypt(res.shopPhone)
453 - res.shopPassword = this.$decrypt(res.shopPassword) 453 + // res.shopPassword = this.$decrypt(res.shopPassword)
454 res.emailAddress = this.$decrypt(res.emailAddress) 454 res.emailAddress = this.$decrypt(res.emailAddress)
455 res.idCardNum = this.$decrypt(res.idCardNum) 455 res.idCardNum = this.$decrypt(res.idCardNum)
456 }) 456 })
yanshouban/src/views/business/businessList/index.vue
@@ -64,14 +64,23 @@ @@ -64,14 +64,23 @@
64 </el-button> 64 </el-button>
65 </div> 65 </div>
66 </div> 66 </div>
67 - <div style="margin-bottom:20px;"> 67 + <div style="margin-bottom: 20px;display:flex;">
68 <el-button 68 <el-button
69 @click="addbuss" 69 @click="addbuss"
70 icon="el-icon-circle-plus-outline" 70 icon="el-icon-circle-plus-outline"
71 - style="background-color: #3F9B6A;color: #fff;" 71 + style="background-color: #3F9B6A;color: #fff;margin-right:15px;"
72 >新增 72 >新增
73 </el-button> 73 </el-button>
74 - 74 + <el-upload class="upload-demo" ref="upload"
  75 + :limit="1"
  76 + accept=".xlsx"
  77 + :action="action"
  78 + :on-success="daoru"
  79 + :file-list="fileData"
  80 + :auto-upload="true"
  81 + :show-file-list="false">
  82 + <el-button style="background-color: #fff;color: #3F9B6A;border: 1px solid #dcdfe6;" class="buttonHover">导入</el-button>
  83 + </el-upload>
75 </div> 84 </div>
76 <!-- 表格 --> 85 <!-- 表格 -->
77 <div class="tableBox"> 86 <div class="tableBox">
@@ -659,7 +668,8 @@ import { @@ -659,7 +668,8 @@ import {
659 businessListGetById, 668 businessListGetById,
660 businessListUpdate, 669 businessListUpdate,
661 businessListStart, 670 businessListStart,
662 - delBusinessById 671 + delBusinessById,
  672 + excelAdd
663 } from '@/api/business' 673 } from '@/api/business'
664 import upimg from "@/components/ImageUpload/index"; 674 import upimg from "@/components/ImageUpload/index";
665 import { 675 import {
@@ -668,11 +678,14 @@ import upimg from &quot;@/components/ImageUpload/index&quot;; @@ -668,11 +678,14 @@ import upimg from &quot;@/components/ImageUpload/index&quot;;
668 import { 678 import {
669 getAlls as map1 679 getAlls as map1
670 } from '@/api/map1' 680 } from '@/api/map1'
  681 + import { uploadUrl,token } from '@/utils/request'
671 export default { 682 export default {
672 components: {upimg}, 683 components: {upimg},
673 data () { 684 data () {
674 // 这里存放数据 685 // 这里存放数据
675 return { 686 return {
  687 + action:uploadUrl,
  688 + fileData:[],
676 // 新建商家弹框 689 // 新建商家弹框
677 dialogVisible: false, 690 dialogVisible: false,
678 activeName: 0, 691 activeName: 0,
@@ -899,8 +912,7 @@ export default { @@ -899,8 +912,7 @@ export default {
899 addCheck (ruleForm) { 912 addCheck (ruleForm) {
900 this.$refs[ruleForm].validate(valid => { 913 this.$refs[ruleForm].validate(valid => {
901 if (valid) { 914 if (valid) {
902 - console.log(this.userState)  
903 - console.log(this.ruleForm) 915 +
904 // if (this.personPhone !== '') { 916 // if (this.personPhone !== '') {
905 // this.ruleForm.chargePersonPhone = this.personPhone 917 // this.ruleForm.chargePersonPhone = this.personPhone
906 // } 918 // }
@@ -932,6 +944,15 @@ export default { @@ -932,6 +944,15 @@ export default {
932 } 944 }
933 945
934 if (!this.userState) { 946 if (!this.userState) {
  947 +
  948 + // this.ruleForm.shopPhone = this.$encrypt(this.ruleForm.shopPhone)
  949 + // this.ruleForm.shopPassword = this.$encrypt(this.ruleForm.shopPassword)
  950 + // this.ruleForm.idCardNum = this.$encrypt(this.ruleForm.idCardNum)
  951 + // this.ruleForm.emailAddress = this.$encrypt(this.ruleForm.emailAddress)
  952 + // this.ruleForm.shopAdress = this.$encrypt(this.ruleForm.shopAdress)
  953 + // this.ruleForm.legalRepresentative = this.$encrypt(this.ruleForm.legalRepresentative)
  954 + // this.ruleForm.chargePersonPhone = this.$encrypt(this.ruleForm.chargePersonPhone)
  955 +
935 businessListSave(this.ruleForm).then(res => { 956 businessListSave(this.ruleForm).then(res => {
936 957
937 if (res.code === '') { 958 if (res.code === '') {
@@ -1052,21 +1073,24 @@ export default { @@ -1052,21 +1073,24 @@ export default {
1052 1073
1053 }) 1074 })
1054 }, 1075 },
1055 - // businessListGetAll 1076 +
1056 // 初始化查询所有数据 1077 // 初始化查询所有数据
1057 - async getAll (formInline) { 1078 + async getAll(formInline) {
1058 const res = await businessListGetAll(formInline) 1079 const res = await businessListGetAll(formInline)
  1080 +
1059 this.total = res.data.total 1081 this.total = res.data.total
1060 this.tableData = res.data.list 1082 this.tableData = res.data.list
1061 - this.tableData.map(res=>{  
1062 - res.shopPhone = this.$decrypt(res.shopPhone)  
1063 - res.shopPassword = this.$decrypt(res.shopPassword)  
1064 - res.idCardNum = this.$decrypt(res.idCardNum)  
1065 - res.emailAddress = this.$decrypt(res.emailAddress)  
1066 - res.shopAdress = this.$decrypt(res.shopAdress)  
1067 - res.legalRepresentative = this.$decrypt(res.legalRepresentative)  
1068 - res.chargePersonPhone = this.$decrypt(res.chargePersonPhone) 1083 +
  1084 + this.tableData.map(item=>{
  1085 + item.shopPhone = this.$decrypt(item.shopPhone)
  1086 + item.shopPassword = this.$decrypt(item.shopPassword)
  1087 + item.idCardNum = this.$decrypt(item.idCardNum)
  1088 + item.emailAddress = this.$decrypt(item.emailAddress)
  1089 + item.shopAdress = this.$decrypt(item.shopAdress)
  1090 + item.legalRepresentative = this.$decrypt(item.legalRepresentative)
  1091 + item.chargePersonPhone = this.$decrypt(item.chargePersonPhone)
1069 }) 1092 })
  1093 +
1070 }, 1094 },
1071 // 编辑号码 1095 // 编辑号码
1072 inputPhone () { 1096 inputPhone () {
@@ -1122,6 +1146,14 @@ export default { @@ -1122,6 +1146,14 @@ export default {
1122 MingDelete(index){ 1146 MingDelete(index){
1123 this.ziyuanData.splice(index, 1); 1147 this.ziyuanData.splice(index, 1);
1124 }, 1148 },
  1149 + daoru(response, file, fileList){
  1150 + this.fileData.push(file.raw)
  1151 + const formDate = new FormData()
  1152 + formDate.append('file', this.fileData[0])
  1153 + excelAdd(formDate).then(res => {
  1154 + this.getAll(this.formInline)
  1155 + })
  1156 + },
1125 } 1157 }
1126 } 1158 }
1127 </script> 1159 </script>
yanshouban/src/views/couponmanagement/coupon.vue
@@ -226,7 +226,7 @@ @@ -226,7 +226,7 @@
226 this.shopList = res1.data.list 226 this.shopList = res1.data.list
227 this.shopList.map(res=>{ 227 this.shopList.map(res=>{
228 res.shopPhone = this.$decrypt(res.shopPhone) 228 res.shopPhone = this.$decrypt(res.shopPhone)
229 - res.shopPassword = this.$decrypt(res.shopPassword) 229 + // res.shopPassword = this.$decrypt(res.shopPassword)
230 res.idCardNum = this.$decrypt(res.idCardNum) 230 res.idCardNum = this.$decrypt(res.idCardNum)
231 res.emailAddress = this.$decrypt(res.emailAddress) 231 res.emailAddress = this.$decrypt(res.emailAddress)
232 res.shopAdress = this.$decrypt(res.shopAdress) 232 res.shopAdress = this.$decrypt(res.shopAdress)
yanshouban/src/views/customer/icManagement/index.vue
@@ -507,6 +507,14 @@ @@ -507,6 +507,14 @@
507 const res = await icManAll(this.pageindex); 507 const res = await icManAll(this.pageindex);
508 this.tableData = res.data.content 508 this.tableData = res.data.content
509 this.total = res.data.content.length 509 this.total = res.data.content.length
  510 + this.tableData.map(res=>{
  511 + res.unifiedSocialCreditCode = this.$decrypt(res.unifiedSocialCreditCode)
  512 + res.legalRepresentative = this.$decrypt(res.legalRepresentative)
  513 + res.address = this.$decrypt(res.address)
  514 + res.emailAddress = this.$decrypt(res.emailAddress)
  515 + res.contactName = this.$decrypt(res.contactName)
  516 + res.contactPhone = this.$decrypt(res.contactPhone)
  517 + })
510 }, 518 },
511 // 编辑确认 519 // 编辑确认
512 async msgeditS() { 520 async msgeditS() {
@@ -610,6 +618,14 @@ @@ -610,6 +618,14 @@
610 const res = await icManAll(this.formSel) 618 const res = await icManAll(this.formSel)
611 this.tableData = res.data.content 619 this.tableData = res.data.content
612 this.total = res.data.content.length 620 this.total = res.data.content.length
  621 + this.tableData.map(res=>{
  622 + res.unifiedSocialCreditCode = this.$decrypt(res.unifiedSocialCreditCode)
  623 + res.legalRepresentative = this.$decrypt(res.legalRepresentative)
  624 + res.address = this.$decrypt(res.address)
  625 + res.emailAddress = this.$decrypt(res.emailAddress)
  626 + res.contactName = this.$decrypt(res.contactName)
  627 + res.contactPhone = this.$decrypt(res.contactPhone)
  628 + })
613 }, 629 },
614 630
615 // 详情点击 631 // 详情点击
yanshouban/src/views/customer/icReview/index.vue
@@ -821,6 +821,14 @@ export default { @@ -821,6 +821,14 @@ export default {
821 const res = await icManAll(this.pageindex) 821 const res = await icManAll(this.pageindex)
822 this.tableData = res.data.content 822 this.tableData = res.data.content
823 this.total = res.data.content.length 823 this.total = res.data.content.length
  824 + this.tableData.map(res=>{
  825 + res.unifiedSocialCreditCode = this.$decrypt(res.unifiedSocialCreditCode)
  826 + res.legalRepresentative = this.$decrypt(res.legalRepresentative)
  827 + res.address = this.$decrypt(res.address)
  828 + res.emailAddress = this.$decrypt(res.emailAddress)
  829 + res.contactName = this.$decrypt(res.contactName)
  830 + res.contactPhone = this.$decrypt(res.contactPhone)
  831 + })
824 }, 832 },
825 833
826 bianjilist(item) { 834 bianjilist(item) {
@@ -835,7 +843,16 @@ export default { @@ -835,7 +843,16 @@ export default {
835 const res = await icManAll(this.formSel) 843 const res = await icManAll(this.formSel)
836 this.tableData = res.data.content 844 this.tableData = res.data.content
837 this.total = res.data.content.length 845 this.total = res.data.content.length
  846 + this.tableData.map(res=>{
  847 + res.unifiedSocialCreditCode = this.$decrypt(res.unifiedSocialCreditCode)
  848 + res.legalRepresentative = this.$decrypt(res.legalRepresentative)
  849 + res.address = this.$decrypt(res.address)
  850 + res.emailAddress = this.$decrypt(res.emailAddress)
  851 + res.contactName = this.$decrypt(res.contactName)
  852 + res.contactPhone = this.$decrypt(res.contactPhone)
  853 + })
838 }, 854 },
  855 +
839 // 详情点击 856 // 详情点击
840 async handleEditForm(item) { 857 async handleEditForm(item) {
841 this.secondData = item; 858 this.secondData = item;
yanshouban/src/views/customer/rUser/index.vue
@@ -335,7 +335,6 @@ @@ -335,7 +335,6 @@
335 } from '@/utils/request' 335 } from '@/utils/request'
336 336
337 import { 337 import {
338 - businessListGetAll,  
339 businessListSave, 338 businessListSave,
340 businessListGetById, 339 businessListGetById,
341 businessListUpdate, 340 businessListUpdate,
yanshouban/src/views/customer/rsaManagement/index.vue
@@ -803,6 +803,14 @@ @@ -803,6 +803,14 @@
803 const res = await rsaManAll(this.pageindex); 803 const res = await rsaManAll(this.pageindex);
804 this.tableData = res.data.content; 804 this.tableData = res.data.content;
805 this.total = res.data.content.length 805 this.total = res.data.content.length
  806 + this.tableData.map(res=>{
  807 + res.contactPhone = this.$decrypt(res.contactPhone)
  808 + res.idCardNumber = this.$decrypt(res.idCardNumber)
  809 + res.unifiedSocialCreditCode = this.$decrypt(res.unifiedSocialCreditCode)
  810 + res.legalRepresentative = this.$decrypt(res.legalRepresentative)
  811 + res.address = this.$decrypt(res.address)
  812 + res.emailAddress = this.$decrypt(res.emailAddress)
  813 + })
806 const ziyuan = await getAlls(this.pageindex) 814 const ziyuan = await getAlls(this.pageindex)
807 const ggw = await map1(this.pageindex) 815 const ggw = await map1(this.pageindex)
808 this.ziyuanData = [...ziyuan.data.content,...ggw.data.content] 816 this.ziyuanData = [...ziyuan.data.content,...ggw.data.content]
@@ -1010,6 +1018,14 @@ async getshen(item){ @@ -1010,6 +1018,14 @@ async getshen(item){
1010 const res = await rsaManAll(this.formSel) 1018 const res = await rsaManAll(this.formSel)
1011 this.tableData = res.data.content 1019 this.tableData = res.data.content
1012 this.total = res.data.content.length 1020 this.total = res.data.content.length
  1021 + this.tableData.map(res=>{
  1022 + res.contactPhone = this.$decrypt(res.contactPhone)
  1023 + res.idCardNumber = this.$decrypt(res.idCardNumber)
  1024 + res.unifiedSocialCreditCode = this.$decrypt(res.unifiedSocialCreditCode)
  1025 + res.legalRepresentative = this.$decrypt(res.legalRepresentative)
  1026 + res.address = this.$decrypt(res.address)
  1027 + res.emailAddress = this.$decrypt(res.emailAddress)
  1028 + })
1013 }, 1029 },
1014 mingClose(){ 1030 mingClose(){
1015 this.multipleSelection =[] 1031 this.multipleSelection =[]
yanshouban/src/views/customer/rsaReview/index.vue
@@ -929,6 +929,14 @@ export default { @@ -929,6 +929,14 @@ export default {
929 const res = await rsaManAll(this.pageindex); 929 const res = await rsaManAll(this.pageindex);
930 this.tableData = res.data.content; 930 this.tableData = res.data.content;
931 this.total = res.data.content.length 931 this.total = res.data.content.length
  932 + this.tableData.map(res=>{
  933 + res.contactPhone = this.$decrypt(res.contactPhone)
  934 + res.idCardNumber = this.$decrypt(res.idCardNumber)
  935 + res.unifiedSocialCreditCode = this.$decrypt(res.unifiedSocialCreditCode)
  936 + res.legalRepresentative = this.$decrypt(res.legalRepresentative)
  937 + res.address = this.$decrypt(res.address)
  938 + res.emailAddress = this.$decrypt(res.emailAddress)
  939 + })
932 }, 940 },
933 // 查询 941 // 查询
934 async onSubmit() { 942 async onSubmit() {
@@ -936,6 +944,14 @@ export default { @@ -936,6 +944,14 @@ export default {
936 const res = await rsaManAll(this.formSel) 944 const res = await rsaManAll(this.formSel)
937 this.tableData = res.data.content 945 this.tableData = res.data.content
938 this.total = res.data.content.length 946 this.total = res.data.content.length
  947 + this.tableData.map(res=>{
  948 + res.contactPhone = this.$decrypt(res.contactPhone)
  949 + res.idCardNumber = this.$decrypt(res.idCardNumber)
  950 + res.unifiedSocialCreditCode = this.$decrypt(res.unifiedSocialCreditCode)
  951 + res.legalRepresentative = this.$decrypt(res.legalRepresentative)
  952 + res.address = this.$decrypt(res.address)
  953 + res.emailAddress = this.$decrypt(res.emailAddress)
  954 + })
939 955
940 }, 956 },
941 957
yanshouban/src/views/customer/yixiang/index.vue 0 → 100644
  1 +<template>
  2 + <div style="background-color:#f7f7f7;padding:10px 10px;">
  3 + <div class="zhuti">
  4 + <div style="height:58px;line-height:58px;">
  5 + <div style="color:#0006"> <span>商户寻租管理</span> <span style="padding:0 5px;">></span> <span
  6 + style="color:#000000e6">招商意向管理</span></div>
  7 + </div>
  8 + <div>
  9 + <!-- 搜索 -->
  10 + <div class="formSearch">
  11 + <el-form :inline="true" :model="formSel">
  12 + <el-form-item label="意向客户名称">
  13 + <el-input v-model="formSel.intentCustomerName" placeholder="请输入" class="moren" style="width:168px" />
  14 + </el-form-item>
  15 + <el-form-item label="意向资源名称">
  16 + <el-input v-model="formSel.intentionalStoreName" placeholder="请输入" class="moren" style="width:168px" />
  17 + </el-form-item>
  18 + <!-- <el-form-item label="编号">
  19 + <el-input v-model="formSel.id" placeholder="请输入" class="moren" style="width:168px" />
  20 + </el-form-item> -->
  21 + <el-form-item label="意向资源类型">
  22 + <el-select v-model="formSel.intentionalBusinessType" placeholder="请选择" style="width:168px">
  23 + <el-option label="商铺" value="商铺" />
  24 + <el-option label="广告位" value="广告位" />
  25 + <el-option label="场地" value="场地" />
  26 + </el-select>
  27 + </el-form-item>
  28 +
  29 +
  30 + </el-form>
  31 + <div style="width: 15%;">
  32 + <el-button style="background-color: #3F9B6A;color: #fff" @click="onSubmit">查询
  33 + </el-button>
  34 + <el-button class="buttonHover" style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"
  35 + @click="resetting">重置
  36 + </el-button>
  37 + </div>
  38 +
  39 + </div>
  40 + <div style="margin-bottom:20px;">
  41 + <el-button style="background-color: #3F9B6A;color: #fff;padding:8px 15px;" icon="el-icon-circle-plus-outline"
  42 + @click="addbuss">新增</el-button>
  43 + </div>
  44 + <!-- 表格 -->
  45 + <el-table :data="
  46 + tableData.slice(
  47 + (currentPage - 1) * pageSize,
  48 + currentPage * pageSize
  49 + )
  50 + " :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}">
  51 + <el-table-column label="序号" min-width="80">
  52 + <template slot-scope="scope">
  53 + {{scope.$index+1}}
  54 + </template>
  55 + </el-table-column>
  56 + <el-table-column label="意向客户名称" prop="intentCustomerName" min-width="150" />
  57 + <el-table-column label="意向资源名称" prop="intentionalStoreName" min-width="150" />
  58 + <el-table-column label="编号" prop="id" min-width="150" />
  59 + <el-table-column label="意向资源类型" prop="intentionalBusinessType" min-width="150" />
  60 + <el-table-column label="开始日期" prop="businessStartTime" min-width="200" />
  61 + <el-table-column label="意向租期" prop="leaseTerm" min-width="150" />
  62 + <el-table-column label="意向租金单价(元/平方)" prop="rent" min-width="250" />
  63 +
  64 + <el-table-column label="操作" min-width="350">
  65 + <template slot-scope="scope">
  66 + <div class="tableBtn greens" @click="handleEditForm(scope.row)">
  67 + 查看
  68 + </div>
  69 + <div class="tableBtn greens" @click="bianjilist(scope.row)" >
  70 + 编辑
  71 + </div>
  72 + <div class="tableBtn greens" @click="pipei(scope.row)" >
  73 + 一键匹配
  74 + </div>
  75 + </template>
  76 + </el-table-column>
  77 + </el-table>
  78 + <!-- 详情框 :visible.sync="detbox" -->
  79 + <!-- <div v-show="detbox" class="dialog_css_Xq " style="padding: 0;width:85%"> -->
  80 + <el-dialog :visible.sync="detbox" custom-class="tongyong_css" style="padding: 0" width="55%" center
  81 + :close-on-click-modal="false" class="dialog_css_Xq" :show-close="false">
  82 + <div style="
  83 + background-color: #fafafa;
  84 + border: 1px solid #eaeaea;
  85 + height: 42px;
  86 + width: 100%;
  87 + padding: 0 20px;
  88 + line-height: 42px;
  89 + ">
  90 + {{edit==true?'详情':'编辑'}}
  91 + </div>
  92 + <div style="padding: 0 20px">
  93 + <div style="
  94 + display: flex;
  95 + justify-content: space-between;
  96 + font-size: 14px;
  97 + margin-bottom: 20px;
  98 + ">
  99 + <el-tabs v-model="card" >
  100 + <el-tab-pane label="意向信息" name="first">
  101 + <el-form ref="form" label-width="150px">
  102 + <el-form-item label="租用时段">
  103 + <el-date-picker style="width: 100%;" v-model="rentalPeriodTime"
  104 + value-format="yyyy-MM-dd" type="datetimerange" range-separator="至"
  105 + start-placeholder="开始日期" end-placeholder="结束日期" align="right" :disabled="edit?true:false">
  106 + </el-date-picker>
  107 + </el-form-item>
  108 + <el-form-item label="租期">
  109 + <el-select v-model="secondData.leaseTerm" :disabled="edit?true:false">
  110 + <el-option label="年" value="年" />
  111 + <el-option label="月" value="月" />
  112 + <el-option label="日" value="日" />
  113 + </el-select>
  114 + </el-form-item>
  115 + <el-form-item label="租金">
  116 + <el-input v-model="secondData.rent" :disabled="edit?true:false"></el-input>
  117 + </el-form-item>
  118 + <el-form-item label="意向经营类型">
  119 + <el-select v-model="secondData.intentionalBusinessType" placeholder="请选择" :disabled="edit?true:false">
  120 + <el-option label="商铺" value="商铺" />
  121 + <el-option label="场地" value="场地" />
  122 + <el-option label="广告位" value="广告位" />
  123 + </el-select>
  124 + </el-form-item>
  125 + <el-form-item label="意向区域(如有)">
  126 + <el-input v-model="secondData.intendedArea" :disabled="edit?true:false"></el-input>
  127 + </el-form-item>
  128 + <el-form-item label="意向商铺位置(如有)">
  129 + <el-input v-model="secondData.intentionalStoreLocation" :disabled="edit?true:false"></el-input>
  130 + </el-form-item>
  131 + <el-form-item label="意向商铺名称(如有)">
  132 + <el-input v-model="secondData.intentionalStoreName" :disabled="edit?true:false"></el-input>
  133 + </el-form-item>
  134 +
  135 + </el-form>
  136 +
  137 + </el-tab-pane>
  138 + <el-tab-pane label="主体信息" name="second">
  139 + <el-form ref="form" label-width="140px">
  140 + <el-form-item label="主体名称">
  141 + <el-input v-model="secondData.subjectName" :disabled="edit?true:false"></el-input>
  142 + </el-form-item>
  143 + <el-form-item label="统一社会信用代码">
  144 + <el-input v-model="secondData.unifiedSocialCreditCode" :disabled="edit?true:false"></el-input>
  145 + </el-form-item>
  146 + <el-form-item label="类型">
  147 + <el-select v-model="secondData.type" placeholder="请选择" :disabled="edit?true:false">
  148 + <el-option label="个人" value="个人" />
  149 + <el-option label="企业" value="企业" />
  150 + </el-select>
  151 + </el-form-item>
  152 + <el-form-item label="法定代表人">
  153 + <el-input v-model="secondData.legalRepresentative" :disabled="edit?true:false"></el-input>
  154 + </el-form-item>
  155 + <el-form-item label="经营范围">
  156 + <el-input type="textarea" v-model="secondData.businessScope" :rows="4"
  157 + :disabled="edit?true:false"></el-input>
  158 + </el-form-item>
  159 + <el-form-item label="注册资本">
  160 + <el-input v-model="secondData.registeredCapital" :disabled="edit?true:false"></el-input>
  161 + </el-form-item>
  162 + <el-form-item label="成立日期">
  163 + <el-input v-model="secondData.establishmentDate" :disabled="edit?true:false"></el-input>
  164 + </el-form-item>
  165 + <el-form-item label="住所">
  166 + <el-input v-model="secondData.address" :disabled="edit?true:false"></el-input>
  167 + </el-form-item>
  168 + <el-form-item label="邮箱地址">
  169 + <el-input v-model="secondData.emailAddress" :disabled="edit?true:false"></el-input>
  170 + </el-form-item>
  171 + <el-form-item label="营业期限">
  172 + <el-date-picker style="width: 100%;" v-model="businessStartTime"
  173 + value-format="yyyy-MM-dd" type="datetimerange" range-separator="至"
  174 + start-placeholder="开始日期" end-placeholder="结束日期" align="right" :disabled="edit?true:false">
  175 + </el-date-picker>
  176 + </el-form-item>
  177 + <el-form-item label="营业执照">
  178 + <upimg v-model="secondData.businessLicense" :limit="1" :fileSize="1" :isShowTip="false"
  179 + v-if="edit==false"></upimg>
  180 + <img :src="secondData.businessLicense" alt="" v-else>
  181 + </el-form-item>
  182 + </el-form>
  183 +
  184 + </el-tab-pane>
  185 +
  186 + <el-tab-pane label="申请人信息" name="there">
  187 + <el-form ref="form" label-width="140px">
  188 + <el-form-item label="申请人">
  189 + <el-input v-model="secondData.intentCustomerName" :disabled="edit?true:false"></el-input>
  190 + </el-form-item>
  191 + <el-form-item label="联系电话">
  192 + <el-input v-model="secondData.contactPhone" :disabled="edit?true:false"></el-input>
  193 + </el-form-item>
  194 + <el-form-item label="证件类型">
  195 + <el-select v-model="ruleForm.idCardType" placeholder="请选择" :disabled="edit?true:false">
  196 + <el-option label="身份证" value="身份证" />
  197 + </el-select>
  198 + </el-form-item>
  199 + <el-form-item label="身份证号码">
  200 + <el-input v-model="secondData.idCardNumber" :disabled="edit?true:false"></el-input>
  201 + </el-form-item>
  202 + <el-form-item label="身份证有效期">
  203 + <el-date-picker style="width: 100%;" v-model="idCardValidStart" value-format="yyyy-MM-dd"
  204 + type="datetimerange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"
  205 + align="right" :disabled="edit?true:false">
  206 + </el-date-picker>
  207 + </el-form-item>
  208 + <el-form-item label="身份证照片(正面)">
  209 + <upimg v-model="secondData.idCardPhotoFront" :limit="1" :fileSize="1" :isShowTip="false"
  210 + v-if="edit==false"></upimg>
  211 + <img :src="secondData.idCardPhotoFront" alt="" v-else style="width:150px;height:150px">
  212 + </el-form-item>
  213 + <el-form-item label="身份证照片(反面)">
  214 + <upimg v-model="secondData.idCardPhotoBack" :limit="1" :fileSize="1" :isShowTip="false"
  215 + v-if="edit==false"></upimg>
  216 + <img :src="secondData.idCardPhotoBack" alt="" v-else style="width:150px;height:150px">
  217 + </el-form-item>
  218 + <el-form-item label="是否为法人">
  219 + <el-select v-model="ruleForm.isLegalPerson" placeholder="请选择" :disabled="edit?true:false">
  220 + <el-option label="否" value="0" />
  221 + <el-option label="是" value="1" />
  222 +
  223 + </el-select>
  224 + </el-form-item>
  225 + <el-form-item label="企业授权书">
  226 + <upimg v-model="secondData.enterpriseAuthorization" :limit="1" :fileSize="1" :isShowTip="false"
  227 + v-if="edit==false"></upimg>
  228 + <img :src="secondData.enterpriseAuthorization" alt="" style="width:150px;height:150px" v-else>
  229 + </el-form-item>
  230 + </el-form>
  231 + <!-- <div style="padding: 0 20px 20px 20px">
  232 + <div style="margin-top: 20px;">
  233 + <div style="width: 100%;border:1px solid #EAEAEA;">
  234 + <div
  235 + style="display: flex;flex-wrap: wrap;justify-content: space-between;padding: 10px 10px;width: 100%;border-top:1px solid #EAEAEA;background-color: #FAFAFA;border-right:1px solid #EAEAEA;border-left:1px solid #EAEAEA;">
  236 + <div style="line-height: 28px;">意向资源</div>
  237 + <div style="" class="leixingSel" v-if="edit == false">
  238 + <div class="tableBtn greens" >添加</div>
  239 +
  240 + </div>
  241 + </div>
  242 + <div style="padding:15px">
  243 + <el-table :data="selshop"
  244 + :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}"
  245 + :border="true" style="width: 100%">
  246 + <el-table-column label="序号" prop="id" min-width="6%" />
  247 + <el-table-column label="资源名称" prop="shopName" min-width="10%" />
  248 + <el-table-column label="资源编号" prop="detailedLocation" min-width="10%" />
  249 + <el-table-column label="资源类型" prop="actualUsableArea" min-width="10%" />
  250 + <el-table-column label="意向租期" prop="belongingRegion" min-width="10%" />
  251 + <el-table-column label="意向租金(元)" prop="belongingDepartment" min-width="10%" />
  252 + <el-table-column label="操作" prop="head" min-width="10%">
  253 + <template slot-scope="scope" v-if="edit == false">
  254 + <div class="tableBtn greens" @click="bianjilist(scope.row)">
  255 + 编辑
  256 + </div>
  257 + <div class="tableBtn greens" @click="delGuan(scope.row)">
  258 + 删除
  259 + </div>
  260 + </template>
  261 + </el-table-column>
  262 + </el-table>
  263 + </div>
  264 + </div>
  265 + </div>
  266 +
  267 + </div>-->
  268 + </el-tab-pane>
  269 + </el-tabs>
  270 + </div>
  271 +
  272 + <div style="
  273 + width: 99%;
  274 + padding: 10px;
  275 + display: flex;
  276 + justify-content: flex-end;
  277 + ">
  278 + <el-button class="buttonHover" style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"
  279 + @click="closeFn(1)">取消</el-button>
  280 + <!-- <el-button
  281 + style="background-color: #3F9B6A;color: #fff"
  282 + @click="bianji"
  283 + v-if="edit"
  284 + >编辑</el-button
  285 + > -->
  286 +
  287 + <el-button style="background-color: #3F9B6A;color: #fff" @click="msgeditS"
  288 + v-if="edit == false">确定</el-button>
  289 + </div>
  290 + </div>
  291 + </el-dialog>
  292 + <!-- 一键匹配 -->
  293 + <el-dialog :visible.sync="pip" custom-class="tongyong_css" style="padding: 0" width="55%" center
  294 + :close-on-click-modal="false" class="dialog_css_Xq" >
  295 + <div style="
  296 + background-color: #fafafa;
  297 + border: 1px solid #eaeaea;
  298 + height: 42px;
  299 + width: 100%;
  300 + padding: 0 20px;
  301 + line-height: 42px;
  302 + ">
  303 + 匹配记录
  304 + </div>
  305 + <div style="padding: 0 20px">
  306 + <div style="
  307 + display: flex;
  308 + justify-content: space-between;
  309 + font-size: 14px;
  310 +
  311 + ">
  312 + <el-form ref="form" :inline="true" :model="pipeiSel" style="padding-top: 10px;">
  313 + <el-form-item label="意向资源类型">
  314 + <el-select v-model="pipeiSel.resources.cereRentalPolicies.businessType" placeholder="请选择" style="width:168px">
  315 + <el-option label="商铺" value="sp" />
  316 + <el-option label="广告位" value="gg" />
  317 + <el-option label="场地" value="cd" />
  318 + </el-select>
  319 +
  320 + </el-form-item>
  321 + <el-form-item label="租期">
  322 + <el-select v-model="pipeiSel.resources.cereRentalPolicies.leaseTerm" style="width:168px" >
  323 + <el-option label="年" value="年" />
  324 + <el-option label="月" value="月" />
  325 + <el-option label="日" value="日" />
  326 + </el-select>
  327 + </el-form-item>
  328 + <el-form-item label="租金范围">
  329 + <el-select v-model="pipeiSel.resources.cereRentalPolicies.rentalPrice" placeholder="请选择" style="width:168px">
  330 + <el-option label="0-10000" value="0-10000" />
  331 + <el-option label="10000-20000" value="10000-20000" />
  332 + <el-option label="20000-50000" value="20000-50000" />
  333 + <el-option label="50000-100000" value="50000-100000" />
  334 + </el-select>
  335 + </el-form-item>
  336 + </el-form>
  337 + <div style="
  338 + padding-top: 15px;
  339 + ">
  340 + <el-button style="background-color: #3F9B6A;color: #fff"
  341 + @click="pipeiBtn" >查询</el-button>
  342 + <el-button class="buttonHover" style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"
  343 + @click="pipeiClose" >重置</el-button>
  344 + </div>
  345 + </div>
  346 + <!-- <div style="margin-bottom:20px;">
  347 + <el-button style="background-color: #3F9B6A;color: #fff"
  348 + >导出</el-button>
  349 + </div> -->
  350 + <el-table :data="
  351 + pipData.slice(
  352 + (currentPage - 1) * pageSize,
  353 + currentPage * pageSize
  354 + )
  355 + " :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}">
  356 + <el-table-column label="序号" min-width="80">
  357 + <template slot-scope="scope">
  358 + {{scope.$index+1}}
  359 + </template>
  360 + </el-table-column>
  361 + <el-table-column label="资源名称" prop="intentCustomerName" min-width="150" />
  362 + <el-table-column label="编号" prop="resourcesId" min-width="150" />
  363 + <el-table-column label="意向资源类型" prop="shopName" min-width="150" />
  364 + <el-table-column label="最近释放日期" prop="businessStartTime" min-width="150" />
  365 + <el-table-column label="最短租期" prop="contactInformation" min-width="150" />
  366 + <el-table-column label="意向租金单价(元/平方)" prop="contactInformation" min-width="250" />
  367 + <el-table-column prop="auditStatus" label="资源状态" min-width="150">
  368 + <template slot-scope="scope">
  369 +
  370 + </template>
  371 + </el-table-column>
  372 +
  373 + </el-table>
  374 + </div>
  375 + </el-dialog>
  376 + <!-- ******************************************************弹框开始****************************************************** -->
  377 + <!-- 新增弹框 -->
  378 + <el-dialog :visible.sync="ggXin" custom-class="tongyong_css" style="padding: 0" width="65%" center
  379 + :close-on-click-modal="false" class="dialog_css_Xq" :show-close="false">
  380 + <div style="
  381 + background-color: #fafafa;
  382 + border: 1px solid #eaeaea;
  383 + height: 42px;
  384 + width: 100%;
  385 + margin-bottom: 20px;
  386 + padding: 0 20px;
  387 + line-height: 42px;
  388 + ">
  389 + 新增
  390 + </div>
  391 + <div class="setup">
  392 + <el-steps :space="200" :active="stepNum">
  393 + <el-step title="意向信息" />
  394 + <el-step title="主体信息" />
  395 + <el-step title="申请人信息" />
  396 + </el-steps>
  397 + </div>
  398 + <div v-if="stepNum == 0" style="padding: 0 20px 20px 20px">
  399 + <el-form ref="ruleForm" :model="ruleForm" label-width="150px">
  400 + <el-form-item label="租用时段" prop="idCardPhotoBack">
  401 + <el-date-picker v-model="rentalPeriodTime" type="daterange" range-separator="至"
  402 + start-placeholder="开始时间" end-placeholder="结束时间" value-format="yyyy-MM-dd" />
  403 + </el-form-item>
  404 + <el-form-item label="租期" prop="leaseTerm">
  405 + <el-select v-model="ruleForm.leaseTerm" placeholder="请选择" >
  406 + <el-option label="年" value="年" />
  407 + <el-option label="月" value="月" />
  408 + <el-option label="日" value="日" />
  409 + </el-select>
  410 + </el-form-item>
  411 +
  412 + <el-form-item label="租金" prop="rent">
  413 + <el-input v-model="ruleForm.rent" placeholder="请输入" />
  414 + </el-form-item>
  415 + <el-form-item label="意向经营类型" prop="intentionalBusinessType">
  416 + <el-select v-model="ruleForm.intentionalBusinessType" placeholder="请选择" style="width: 100%;">
  417 + <el-option label="商铺" value="商铺" />
  418 + <el-option label="场地" value="场地" />
  419 + <el-option label="广告位" value="广告位" />
  420 + </el-select>
  421 + </el-form-item>
  422 +
  423 +<el-form-item label="意向区域(如有)" prop="intendedArea">
  424 + <el-input v-model="ruleForm.intendedArea" placeholder="请输入" />
  425 + </el-form-item>
  426 +<el-form-item label="意向商铺位置(如有)" prop="intentionalStoreLocation">
  427 + <el-input v-model="ruleForm.intentionalStoreLocation" placeholder="请输入" />
  428 + </el-form-item>
  429 + <el-form-item label="意向商铺名称(如有)" prop="intentionalStoreName">
  430 + <el-input v-model="ruleForm.intentionalStoreName" placeholder="请输入" />
  431 + </el-form-item>
  432 + </el-form>
  433 + </div>
  434 + <div v-if="stepNum == 1" style="padding: 0 20px 20px 20px">
  435 +
  436 + <el-form ref="ruleForm" :model="ruleForm" label-width="130px">
  437 + <el-form-item label="主体名称" prop="subjectName">
  438 + <el-input v-model="ruleForm.subjectName" placeholder="请输入" />
  439 + </el-form-item>
  440 + <el-form-item label="统一社会信用代码" prop="unifiedSocialCreditCode">
  441 + <el-input v-model="ruleForm.unifiedSocialCreditCode" placeholder="请输入" />
  442 + </el-form-item>
  443 + <el-form-item label="类型" prop="type">
  444 + <el-select v-model="ruleForm.type" placeholder="请选择" style="width: 100%;">
  445 + <el-option label="个人" value="个人" />
  446 + <el-option label="企业" value="企业" />
  447 + </el-select>
  448 + </el-form-item>
  449 + <el-form-item label="法定代表人" prop="legalRepresentative">
  450 + <el-input v-model="ruleForm.legalRepresentative" placeholder="请输入" />
  451 + </el-form-item>
  452 + <el-form-item label="经营范围" prop="businessScope">
  453 + <el-input type="textarea" v-model="ruleForm.businessScope" :rows="4"></el-input>
  454 + </el-form-item>
  455 + <el-form-item label="注册资本" prop="registeredCapital">
  456 + <el-input v-model="ruleForm.registeredCapital" placeholder="请输入" />
  457 +
  458 + </el-form-item>
  459 + <el-form-item label="成立日期" prop="establishmentDate">
  460 + <el-input v-model="ruleForm.establishmentDate" placeholder="请输入" />
  461 + </el-form-item>
  462 + <el-form-item label="住所" prop="address">
  463 + <el-input v-model="ruleForm.address" placeholder="请输入" />
  464 + </el-form-item>
  465 + <el-form-item label="邮箱地址" prop="emailAddress">
  466 + <el-input v-model="ruleForm.emailAddress" placeholder="请输入" />
  467 + </el-form-item>
  468 + <el-form-item label="营业期限" prop="idCardPhotoBack">
  469 + <el-date-picker v-model="businessStartTime" type="daterange" range-separator="至"
  470 + start-placeholder="开始时间" end-placeholder="结束时间" value-format="yyyy-MM-dd" />
  471 + </el-form-item>
  472 + <el-form-item label="营业执照" prop="businessLicense">
  473 + <upimg v-model="ruleForm.businessLicense" :limit="1" :fileSize="1"></upimg>
  474 + </el-form-item>
  475 +
  476 + </el-form>
  477 + </div>
  478 + <div v-if="stepNum == 2" style="padding: 0 20px 20px 20px">
  479 + <el-form ref="ruleForm" :model="ruleForm" label-width="130px">
  480 + <el-form-item label="申请人" prop="intentCustomerName">
  481 + <el-input v-model="ruleForm.intentCustomerName" placeholder="请输入" />
  482 + </el-form-item>
  483 + <el-form-item label="联系电话" prop="contactPhone">
  484 + <el-input v-model="ruleForm.contactPhone" placeholder="请输入" />
  485 + </el-form-item>
  486 + <el-form-item label="证件类型" prop="idCardType">
  487 + <el-select v-model="ruleForm.idCardType" placeholder="请选择" style="width:100%">
  488 + <el-option label="身份证" value="身份证" />
  489 + </el-select>
  490 + </el-form-item>
  491 + <el-form-item label="身份证号" prop="idCardNumber">
  492 + <el-input v-model="ruleForm.idCardNumber" placeholder="请输入" />
  493 + </el-form-item>
  494 + <el-form-item label="身份证有效期" prop="idCardNumber">
  495 + <el-date-picker v-model="idCardValidStart" type="daterange" range-separator="至" start-placeholder="开始时间"
  496 + end-placeholder="结束时间" value-format="yyyy-MM-dd" />
  497 + </el-form-item>
  498 + <el-form-item label="身份证照片(正面)" prop="idCardPhotoFront">
  499 + <upimg v-model="ruleForm.idCardPhotoFront" :limit="1" :fileSize="1"></upimg>
  500 + </el-form-item>
  501 + <el-form-item label="身份证照片(反面)" prop="idCardPhotoBack">
  502 + <upimg v-model="ruleForm.idCardPhotoBack" :limit="1" :fileSize="1"></upimg>
  503 + </el-form-item>
  504 + <el-form-item label="是否为法人" prop="isLegalPerson">
  505 + <el-select v-model="ruleForm.isLegalPerson" placeholder="请选择" style="width:100%">
  506 + <el-option label="否" value="0" />
  507 + <el-option label="是" value="1" />
  508 + </el-select>
  509 + </el-form-item>
  510 + <el-form-item label="企业授权书" prop="enterpriseAuthorization">
  511 + <upimg v-model="ruleForm.enterpriseAuthorization" :limit="1" :fileSize="1"></upimg>
  512 + </el-form-item>
  513 + </el-form>
  514 + <!-- <div style="margin-top: 20px;">
  515 + <div style="width: 100%;border:1px solid #EAEAEA;">
  516 + <div
  517 + style="display: flex;flex-wrap: wrap;justify-content: space-between;padding: 10px 10px;width: 100%;border-top:1px solid #EAEAEA;background-color: #FAFAFA;border-right:1px solid #EAEAEA;border-left:1px solid #EAEAEA;">
  518 + <div style="line-height: 28px;">意向资源</div>
  519 + <div style="" class="leixingSel">
  520 + <div class="tableBtn greens" @click="addMing=true">添加</div>
  521 + </div>
  522 + </div>
  523 + <div style="padding:15px">
  524 + <el-table :data="selshop"
  525 + :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}"
  526 + :border="true" style="width: 100%">
  527 + <el-table-column label="序号" prop="id" min-width="6%" />
  528 + <el-table-column label="资源名称" prop="shopName" min-width="10%" />
  529 + <el-table-column label="资源编号" prop="detailedLocation" min-width="10%" />
  530 + <el-table-column label="资源类型" prop="actualUsableArea" min-width="10%" />
  531 + <el-table-column label="意向租期" prop="belongingRegion" min-width="10%" />
  532 + <el-table-column label="意向租金(元)" prop="belongingDepartment" min-width="10%" />
  533 + <el-table-column label="操作" prop="head" min-width="10%">
  534 + <template slot-scope="scope">
  535 + <div class="tableBtn greens" @click="bianjilist(scope.row)">
  536 + 编辑
  537 + </div>
  538 + <div class="tableBtn greens" @click="delGuan(scope.row)">
  539 + 删除
  540 + </div>
  541 + </template>
  542 + </el-table-column>
  543 + </el-table>
  544 + </div>
  545 + </div>
  546 + </div>-->
  547 +
  548 + </div>
  549 + <span slot="footer" class="dialog-footer">
  550 + <el-button class="buttonHover" style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"
  551 + @click="closeFn(2)">取 消</el-button>
  552 + <el-button v-if="stepNum != 2" style="background-color: #3F9B6A;color: #fff"
  553 + @click="lextStep(1)">下一步</el-button>
  554 + <el-button v-if="stepNum != 0" style="background-color: #3F9B6A;color: #fff"
  555 + @click="lextStep(0)">上一步</el-button>
  556 + <el-button v-if="stepNum == 2" style="background-color: #3F9B6A;color: #fff" @click="addCheck('ruleForm')">确
  557 + 定</el-button>
  558 + </span>
  559 +
  560 + <!-- <el-dialog :visible.sync="addMing" custom-class='XDD_css' style="padding: 0;" width="50%"
  561 + append-to-body center :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false">
  562 + <div style="padding: 10px 13px;font-size: 14px;border-bottom: 1px solid #E5E5E5;display: flex;justify-content: space-between;">
  563 + <div>添加</div>
  564 + </div>
  565 + <div style="padding: 15px;width:100%">
  566 + <div style="border: 1px solid #E5E5E5;padding: 1px" id="huodong">
  567 + <div style="padding: 10px 13px;font-size: 14px;border-bottom: 1px solid #E5E5E5;display: flex;justify-content: space-between;">
  568 + <div>选择资源</div>
  569 + </div>
  570 + <div style="padding: 15px;">
  571 + <div style="padding: 0px 20px 0px 0px">
  572 + <el-table :data="ziyuanData"
  573 + @selection-change="handleSelectionChange" tooltip-effect="dark"
  574 + :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}"
  575 + >
  576 + <el-table-column
  577 + label="选择"
  578 + type="selection"
  579 + width="55">
  580 + </el-table-column>
  581 + <el-table-column label="序号" min-width="8%" >
  582 + <template slot-scope="scope">
  583 + {{scope.$index + 1}}
  584 + </template>
  585 + </el-table-column>
  586 + <el-table-column label="编号" prop="id" min-width="22%">
  587 +
  588 + </el-table-column>
  589 + <el-table-column label="资源名称" min-width="15%">
  590 + <template slot-scope="scope">
  591 + {{scope.row.shopName ? scope.row.shopName : scope.row.advertisingName}}
  592 + </template>
  593 + </el-table-column>
  594 + <el-table-column label="资源类型" min-width="15%">
  595 + <template slot-scope="scope">
  596 + {{scope.row.advertisingType ?scope.row.advertisingType:'商铺'}}
  597 + </template>
  598 + </el-table-column>
  599 + <el-table-column prop="notes" label="对应策略" min-width="15%">
  600 + </el-table-column>
  601 + </el-table>
  602 + </div>
  603 + </div>
  604 + </div>
  605 + </div>
  606 + <div style="display: flex;justify-content: flex-end;padding: 10px 20px 10px 0">
  607 + <el-button @click="mingClose" class="buttonHover"
  608 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;">取消
  609 + </el-button>
  610 + <el-button @click="minSev" style="background-color: #3F9B6A;color: #fff;">确定
  611 + </el-button>
  612 +
  613 + </div>
  614 + </el-dialog> -->
  615 + </el-dialog>
  616 + <div class="fenye">
  617 + <el-pagination class="pagination" :hide-on-single-page="flag" background small :current-page="currentPage"
  618 + layout="prev, pager, next,total" :total="total" @size-change="handleSizeChange"
  619 + @current-change="handleCurrentChange" />
  620 + </div>
  621 + </div>
  622 + </div>
  623 + </div>
  624 +</template>
  625 +
  626 +<script>
  627 + import {
  628 + uploadUrl,
  629 + token
  630 + } from '@/utils/request'
  631 + import {
  632 + rsaManAll,
  633 + rsaManAdd,
  634 + rsaManEdit,
  635 + rsaManDel,
  636 + ziyuanduiy,
  637 + } from '../../../api/rsaManagement'
  638 + import {
  639 + getAlls
  640 + } from '../../../api/information.js'
  641 + import {
  642 + getAlls as map1
  643 + } from '../../../api/map1'
  644 + import upimg from "@/components/ImageUpload/index"
  645 + export default {
  646 + components: {
  647 + upimg
  648 + },
  649 +
  650 + data() {
  651 + return {
  652 + detbox: false, // 详情
  653 + edit: true, // 编辑
  654 + addMing: false,//资源
  655 + selshop: [], //意向资源列表
  656 + action: uploadUrl, // 上传图片
  657 + myHeaders: {
  658 + 'Authorization-admin': token
  659 + },
  660 + ggXin: false, // 新增
  661 + sel: [], // 选择资源
  662 + stepNum: 0, // 切换
  663 + linShop: [], // 临铺列表
  664 + isAdd: false, //添加铺位弹框
  665 + formSel: {
  666 + intentCustomerName:'',
  667 + region:'',
  668 + id:'',
  669 + auditStatus:'',
  670 + pageNumber: 1,
  671 + pageSize: 10,
  672 + },
  673 + ruleForm: {
  674 + intentCustomerName: '', //意向客户名称
  675 + contactPhone: '', //联系电话
  676 + entityType: '', //主体类型
  677 + customerLevel: '', //客户级别
  678 + isLegalPerson: '', //是否为法人(0:否,1:是)
  679 + enterpriseAuthorization: '', //企业授权书
  680 + idCardNumber: '', //身份证号
  681 + idCardType: '', //证件类型
  682 + idCardValidStart: '', //身份证有效开始时间
  683 + idCardValidEnd: '', //身份证有效结束时间
  684 + idCardPhotoFront: '', //身份证照片(正面)
  685 + idCardPhotoBack: '', //身份证照片(反面)
  686 + subjectName: '', //主体名称
  687 + unifiedSocialCreditCode: '', //统一社会信用代码
  688 + type: '', //类型(可能是企业类型等)
  689 + legalRepresentative: '', //法定代表人
  690 + businessScope: '', //经营范围
  691 + registeredCapital: '', //注册资本
  692 + establishmentDate: '', //成立日期
  693 + address: '', //住所
  694 + emailAddress: '', //邮箱地址
  695 + businessStartTime: '', //营业开始时间(如果为全天,则可为NULL或指定默认时
  696 + businessEndTime: '', //营业结束时间(如果为全天,则可为NULL或指定默认时
  697 + businessLicense: '', //营业执照(存储路径或URL)
  698 + intendedResources: '', //意向资源
  699 + auditStatus:'1',
  700 + rentalPeriodStartTime:'',
  701 + rentalPeriodEndTime:'',
  702 + leaseTerm:'',
  703 + rent:'',
  704 + intentionalBusinessType:'',
  705 + intendedArea:'',
  706 + intentionalStoreLocation:'',
  707 + intentionalStoreName:'',
  708 + },
  709 + idCardValidStart: [],
  710 + businessStartTime: [],
  711 + rentalPeriodTime:[],
  712 + card: 'first', // 切换
  713 + secondData: {},
  714 + currentPage: 1,
  715 + total: 10,
  716 + flag: false,
  717 + pageSize: 10,
  718 + tableData: [],
  719 + msgid: '',
  720 + pageindex: {
  721 + pageNumber: 1,
  722 + pageSize: 10,
  723 + },
  724 + ziyuanData:[],
  725 + multipleSelection:[],
  726 + pip:false,
  727 + pipData:[],
  728 + pipeiSel:{
  729 + resources:{
  730 +         cereRentalPolicies:{
  731 +             businessType:'',
  732 +             leaseTerm:'',
  733 +             rentalPrice:''
  734 +         }
  735 +     },
  736 + pageNumber:1,
  737 + pageSize:10,
  738 + }
  739 + }
  740 + },
  741 +
  742 + created() {
  743 + this.getAll();
  744 + },
  745 + mounted() {},
  746 + // beforeDestroy() {
  747 + // const editor = this.editor
  748 + // if (editor == null) return
  749 + // editor.destroy() // 组件销毁时,及时销毁编辑器
  750 + // },
  751 + methods: {
  752 + // 获取当前时间
  753 + updateCurrentTime() {
  754 + const now = new Date();
  755 + const year = now.getFullYear();
  756 + const month = (now.getMonth() + 1).toString().padStart(2, '0');
  757 + const day = now.getDate().toString().padStart(2, '0');
  758 + const hours = now.getHours().toString().padStart(2, '0');
  759 + const minutes = now.getMinutes().toString().padStart(2, '0');
  760 + const seconds = now.getSeconds().toString().padStart(2, '0');
  761 +
  762 + return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
  763 + },
  764 + handleSelectionChange(val) {
  765 + this.multipleSelection = val;
  766 + },
  767 + lextStep(val) {
  768 + if (val == 0) {
  769 + this.stepNum = this.stepNum - 1;
  770 + } else {
  771 + this.stepNum = this.stepNum + 1;
  772 + }
  773 + },
  774 + // 查询全数据
  775 + async getAll() {
  776 + const res = await rsaManAll(this.pageindex);
  777 + this.tableData = res.data.content;
  778 + this.total = res.data.content.length
  779 + this.tableData.map(res=>{
  780 + res.contactPhone = this.$decrypt(res.contactPhone)
  781 + res.idCardNumber = this.$decrypt(res.idCardNumber)
  782 + res.unifiedSocialCreditCode = this.$decrypt(res.unifiedSocialCreditCode)
  783 + res.legalRepresentative = this.$decrypt(res.legalRepresentative)
  784 + res.address = this.$decrypt(res.address)
  785 + res.emailAddress = this.$decrypt(res.emailAddress)
  786 + })
  787 + const ziyuan = await getAlls(this.pageindex)
  788 + const ggw = await map1(this.pageindex)
  789 + this.ziyuanData = [...ziyuan.data.content,...ggw.data.content]
  790 + },
  791 + // 编辑确认
  792 + async msgeditS() {
  793 + this.secondData.id = this.msgid
  794 + if (this.idCardValidStart.length != 0) {
  795 + this.secondData.idCardValidStart = this.idCardValidStart[0]
  796 + this.secondData.idCardValidEnd = this.idCardValidStart[1]
  797 + }
  798 + if (this.businessStartTime.length != 0) {
  799 + this.secondData.businessStartTime = this.businessStartTime[0]
  800 + this.secondData.businessEndTime = this.businessStartTime[1]
  801 + }
  802 + if (this.rentalPeriodTime.length != 0) {
  803 + this.secondData.rentalPeriodStartTime = this.rentalPeriodTime[0]
  804 + this.secondData.rentalPeriodEndTime = this.rentalPeriodTime[1]
  805 + }
  806 +
  807 + const res = await rsaManEdit(this.secondData)
  808 + this.detbox = false;
  809 + this.getAll();
  810 + },
  811 + bianji() {
  812 + if (this.edit) {
  813 + this.edit = false;
  814 + }
  815 +
  816 + },
  817 + // 编辑
  818 + bianjilist(item) {
  819 + this.secondData = item
  820 + this.$set(this.idCardValidStart, 0, item.idCardValidStart)
  821 + this.$set(this.idCardValidStart, 1, item.idCardValidEnd)
  822 + this.$set(this.businessStartTime, 0, item.businessStartTime)
  823 + this.$set(this.businessStartTime, 1, item.businessEndTime)
  824 + this.$set(this.rentalPeriodTime, 0, item.rentalPeriodStartTime)
  825 + this.$set(this.rentalPeriodTime, 1, item.rentalPeriodEndTime)
  826 + this.msgid = item.id;
  827 + this.detbox = true
  828 + if (this.edit) {
  829 + this.edit = false;
  830 + }
  831 + },
  832 + async chehui(item){
  833 + await rsaManEdit({id:item.id,auditStatus:'1'})
  834 + this.getAll()
  835 + },
  836 +async getshen(item){
  837 + await rsaManEdit({id:item.id,auditStatus:'2'})
  838 + this.getAll()
  839 +},
  840 +
  841 +
  842 + // 详情点击
  843 + handleEditForm(item) {
  844 + console.log(item.rentalPeriodEndTime)
  845 + this.secondData = item
  846 + this.$set(this.idCardValidStart, 0, item.idCardValidStart)
  847 + this.$set(this.idCardValidStart, 1, item.idCardValidEnd)
  848 + this.$set(this.businessStartTime, 0, item.businessStartTime)
  849 + this.$set(this.businessStartTime, 1, item.businessEndTime)
  850 + this.$set(this.rentalPeriodTime, 0, item.rentalPeriodStartTime)
  851 + this.$set(this.rentalPeriodTime, 1, item.rentalPeriodEndTime)
  852 + this.card = 'first'
  853 + this.detbox = true;
  854 + this.msgid = item.id;
  855 + },
  856 + // 新增
  857 + addbuss() {
  858 + this.ruleForm = {
  859 + intentCustomerName: '', //意向客户名称
  860 + contactPhone: '', //联系电话
  861 + entityType: '', //主体类型
  862 + customerLevel: '', //客户级别
  863 + isLegalPerson: '', //是否为法人(0:否,1:是)
  864 + enterpriseAuthorization: '', //企业授权书
  865 + idCardNumber: '', //身份证号
  866 + idCardType: '', //证件类型
  867 + idCardValidStart: '', //身份证有效开始时间
  868 + idCardValidEnd: '', //身份证有效结束时间
  869 + idCardPhotoFront: '', //身份证照片(正面)
  870 + idCardPhotoBack: '', //身份证照片(反面)
  871 + subjectName: '', //主体名称
  872 + unifiedSocialCreditCode: '', //统一社会信用代码
  873 + type: '', //类型(可能是企业类型等)
  874 + legalRepresentative: '', //法定代表人
  875 + businessScope: '', //经营范围
  876 + registeredCapital: '', //注册资本
  877 + establishmentDate: '', //成立日期
  878 + address: '', //住所
  879 + emailAddress: '', //邮箱地址
  880 + businessStartTime: '', //营业开始时间(如果为全天,则可为NULL或指定默认时
  881 + businessEndTime: '', //营业结束时间(如果为全天,则可为NULL或指定默认时
  882 + businessLicense: '', //营业执照(存储路径或URL)
  883 + intendedResources: '', //意向资源
  884 + auditStatus:'1',
  885 + rentalPeriodStartTime:'',
  886 + rentalPeriodEndTime:'',
  887 + leaseTerm:'',
  888 + rent:'',
  889 + intentionalBusinessType:'',
  890 + intendedArea:'',
  891 + intentionalStoreLocation:'',
  892 + intentionalStoreName:'',
  893 +
  894 + }
  895 + this.rentalPeriodTime = []
  896 + this.ggXin = true;
  897 + this.getAll();
  898 + },
  899 + // 新增确定
  900 + async addCheck() {
  901 + if (this.idCardValidStart.length != 0) {
  902 + this.ruleForm.idCardValidStart = this.idCardValidStart[0]
  903 + this.ruleForm.idCardValidEnd = this.idCardValidStart[1]
  904 + }
  905 + if (this.businessStartTime.length != 0) {
  906 + this.ruleForm.businessStartTime = this.businessStartTime[0]
  907 + this.ruleForm.businessEndTime = this.businessStartTime[1]
  908 + }
  909 + if (this.rentalPeriodTime.length != 0) {
  910 + this.ruleForm.rentalPeriodStartTime = this.rentalPeriodTime[0]
  911 + this.ruleForm.rentalPeriodEndTime = this.rentalPeriodTime[1]
  912 + }
  913 +
  914 + if(this.ziyuanData.length !=0){
  915 + this.ruleForm.intendedResources = this.ziyuanData[0].id
  916 + }
  917 + await rsaManAdd(this.ruleForm)
  918 + this.idCardValidStart = []
  919 + this.businessStartTime = []
  920 + this.rentalPeriodTime = []
  921 + this.getAll();
  922 + this.stepNum = 0;
  923 + this.ggXin = false;
  924 + },
  925 + handleCurrentChange(val) {
  926 + this.currentPage = val;
  927 + },
  928 + handleSizeChange(val) {
  929 + this.pageSize = val;
  930 + },
  931 + // 取消
  932 + closeFn(val) {
  933 + if (val == 1) {
  934 + this.detbox = false;
  935 + this.edit = true;
  936 + } else {
  937 + this.ggXin = false;
  938 + this.stepNum = 0;
  939 + }
  940 + },
  941 + //删除管理列表
  942 + async delGuan(item) {
  943 + const h = this.$createElement;
  944 + this.$msgbox({
  945 + title: '消息',
  946 + message: h('p', null, [
  947 + h('span', null, '是否删除 '),
  948 + ]),
  949 + showCancelButton: true,
  950 + showClose: false,
  951 + confirmButtonText: '确定',
  952 + cancelButtonText: '取消',
  953 + customClass: 'oe-dialog-btn',
  954 + beforeClose: (action, instance, done) => {
  955 + if (action === 'confirm') {
  956 + rsaManDel({
  957 + id: item.id
  958 + }).then(res => {
  959 + this.getAll()
  960 + done();
  961 + })
  962 + } else {
  963 + done();
  964 + }
  965 + }
  966 + })
  967 +
  968 + },
  969 +
  970 + handlePreview(file) {
  971 + console.log(file);
  972 + },
  973 + handleRemove(file, fileList) {
  974 + console.log(file, fileList);
  975 + },
  976 +
  977 + // 重置按钮
  978 + resetting() {
  979 + this.formSel = {
  980 + intentCustomerName:'',
  981 + region:'',
  982 + id:'',
  983 + auditStatus:'',
  984 + pageNumber: 1,
  985 + pageSize: 10,
  986 + };
  987 + this.getAll()
  988 + },
  989 + // 查询
  990 + async onSubmit() {
  991 + const res = await rsaManAll(this.formSel)
  992 + this.tableData = res.data.content
  993 + this.total = res.data.content.length
  994 + this.tableData.map(res=>{
  995 + res.contactPhone = this.$decrypt(res.contactPhone)
  996 + res.idCardNumber = this.$decrypt(res.idCardNumber)
  997 + res.unifiedSocialCreditCode = this.$decrypt(res.unifiedSocialCreditCode)
  998 + res.legalRepresentative = this.$decrypt(res.legalRepresentative)
  999 + res.address = this.$decrypt(res.address)
  1000 + res.emailAddress = this.$decrypt(res.emailAddress)
  1001 + })
  1002 + },
  1003 + mingClose(){
  1004 + this.multipleSelection =[]
  1005 + this.addMing = false
  1006 +
  1007 + },
  1008 + minSev() {
  1009 + this.selshop = this.multipleSelection
  1010 + this.addMing = false
  1011 + this.multipleSelection =[]
  1012 + },
  1013 + pipei(item){
  1014 + this.pip = true
  1015 + this.pipData = []
  1016 + },
  1017 + pipeiBtn(){
  1018 + if(this.pipeiSel.resources.cereRentalPolicies.businessType == 'sp'){
  1019 + this.pipeiSel.resourcesId = 'sp'
  1020 + }else if(this.pipeiSel.resources.cereRentalPolicies.businessType == 'cd'){
  1021 + this.pipeiSel.resourcesId = 'cd'
  1022 + }else{
  1023 + this.pipeiSel.resourcesId = 'gg'
  1024 + }
  1025 + ziyuanduiy(this.pipeiSel).then(res=>{
  1026 + this.pipData = res.data.content
  1027 + })
  1028 + },
  1029 + pipeiClose(){
  1030 + this.pipeiSel ={
  1031 + resources:{
  1032 +         cereRentalPolicies:{
  1033 +             businessType:'',
  1034 +             leaseTerm:'',
  1035 +             rentalPrice:''
  1036 +         }
  1037 +     },
  1038 + resourcesId:'',
  1039 + pageNumber:1,
  1040 + pageSize:10,
  1041 + },
  1042 + this.pipData = []
  1043 + },
  1044 + }
  1045 + }
  1046 +</script>
  1047 +<style src="@wangeditor/editor/dist/css/style.css"></style>
  1048 +<style scoped>
  1049 + /deep/ .first-column-bg {
  1050 + background-color: #f4f4f5 !important;
  1051 + }
  1052 +
  1053 + .zhuti {
  1054 + padding: 0 20px 20px 20px;
  1055 + min-height: calc(100vh - 50px - 20px);
  1056 + background-color: #fff;
  1057 + }
  1058 +
  1059 +
  1060 + .tableBtn {
  1061 + display: inline-block;
  1062 + margin-right: 10px;
  1063 + }
  1064 +
  1065 + .formSearch {
  1066 +
  1067 + display: flex;
  1068 + width: 100%;
  1069 + font-size: 14px;
  1070 + justify-content: space-between;
  1071 +
  1072 + }
  1073 +
  1074 + .greens {
  1075 + color: #3f9b6a;
  1076 + }
  1077 +
  1078 + /deep/ .el-table__row {
  1079 + font-size: 14px;
  1080 + color: #000000e6;
  1081 + height: 42px;
  1082 + }
  1083 +
  1084 + .fenye {
  1085 + margin-top: 20px;
  1086 + display: flex;
  1087 + justify-content: flex-end;
  1088 + position: relative;
  1089 + }
  1090 +
  1091 + /deep/ .el-pagination.is-background .el-pager li:not(.disabled).active {
  1092 + background-color: #3f9b6a;
  1093 + }
  1094 +
  1095 + :last-child {
  1096 + margin-bottom: 0;
  1097 + }
  1098 +
  1099 + .el-col {
  1100 + border-radius: 4px;
  1101 + }
  1102 +
  1103 + .bg-purple-dark {
  1104 + background: #99a9bf;
  1105 + }
  1106 +
  1107 + .bg-purple {
  1108 + /* background: #d3dce6; */
  1109 + }
  1110 +
  1111 + .bg-purple-light {
  1112 + background: #e5e9f2;
  1113 + }
  1114 +
  1115 + .grid-content {
  1116 + border-radius: 4px;
  1117 + min-height: 36px;
  1118 + }
  1119 +
  1120 + .row-bg {
  1121 + padding: 10px 0;
  1122 + background-color: #f9fafc;
  1123 + }
  1124 +
  1125 + /deep/ .bg-purple[data-v-0e3fe4ec] {
  1126 + background: #fff;
  1127 + height: 50px;
  1128 + }
  1129 +
  1130 + /deep/ .el-form--label-top .el-form-item__label {
  1131 + padding: 0;
  1132 + }
  1133 +
  1134 + .demo-input-suffix {
  1135 + display: flex;
  1136 + margin-right: 20px;
  1137 + }
  1138 +
  1139 + .pagination {
  1140 + text-align: right;
  1141 + line-height: 20px;
  1142 + }
  1143 +
  1144 +
  1145 + .dialog_css {
  1146 + padding: 0px;
  1147 + }
  1148 +
  1149 + .dialog_xin {
  1150 + padding: 0px;
  1151 + }
  1152 +
  1153 + /deep/.el-dialog__body {
  1154 + padding: 0px;
  1155 + }
  1156 +
  1157 + /deep/ .el-dialog__header {
  1158 + background-color: #fff;
  1159 + padding: 0;
  1160 + }
  1161 +
  1162 + /deep/.el-dialog__title {
  1163 + color: #000;
  1164 + }
  1165 +
  1166 + .el-row {
  1167 + &:last-child {
  1168 + margin-bottom: 0;
  1169 + }
  1170 + }
  1171 +
  1172 + /deep/ .avatar-uploader .el-upload {
  1173 + border: 1px dashed #d9d9d9;
  1174 + border-radius: 6px;
  1175 + cursor: pointer;
  1176 + position: relative;
  1177 + overflow: hidden;
  1178 + }
  1179 +
  1180 + .avatar-uploader .el-upload:hover {
  1181 + border-color: #409eff;
  1182 + }
  1183 +
  1184 + .avatar-uploader-icon {
  1185 + font-size: 28px;
  1186 + color: #8c939d;
  1187 + width: 108px;
  1188 + height: 108px;
  1189 + line-height: 108px;
  1190 + /*text-align: center;*/
  1191 + }
  1192 +
  1193 + .avatar {
  1194 + width: 108px;
  1195 + height: 108px;
  1196 + display: block;
  1197 + }
  1198 +
  1199 + ::v-deep .el-tabs__item.is-active {
  1200 + color: #3f9b6a;
  1201 + opacity: 1;
  1202 + }
  1203 +
  1204 + /deep/ .el-tabs__nav-wrap::after {
  1205 + background-color: #fff;
  1206 + }
  1207 +
  1208 + ::v-deep .el-tabs__item:hover {
  1209 + color: #3f9b6a;
  1210 + cursor: pointer;
  1211 + opacity: 1;
  1212 + }
  1213 +
  1214 + /deep/ .el-tabs__active-bar {
  1215 + background-color: #389865;
  1216 + }
  1217 +
  1218 + /deep/ .el-table_2_column_13 {
  1219 + font-weight: 100;
  1220 + }
  1221 +
  1222 + ::v-deep .el-input__inner:focus {
  1223 + border: #3f9b6a 1px solid;
  1224 + }
  1225 +
  1226 + ::v-deep .el-input__inner:hover {
  1227 + border: #3f9b6a 1px solid;
  1228 + }
  1229 +
  1230 + ::v-deep .el-select .el-input.is-focus .el-input__inner {
  1231 + border-color: #3f9b6a;
  1232 + }
  1233 +
  1234 +
  1235 + /* ::v-deep .el-steps .el-step__head.is-wait {
  1236 + background-color: red; /* 修改为你想要的颜色 */
  1237 +
  1238 + /* 修改未进行步骤的描述文字颜色 */
  1239 + ::v-deep .el-steps .el-step__description.is-wait {
  1240 + color: #999;
  1241 + /* 修改为你想要的颜色 */
  1242 + }
  1243 +
  1244 + /* 修改未进行步骤的图标颜色 */
  1245 + ::v-deep .el-steps .el-step__icon.is-text.is-wait {
  1246 + color: #999;
  1247 + /* 修改为你想要的颜色 */
  1248 + }
  1249 +
  1250 + /* 修改未进行步骤的边框色 */
  1251 + ::v-deep .el-steps .el-step__line.is-wait {
  1252 + border-color: #eee;
  1253 + /* 修改为你想要的颜色 */
  1254 + }
  1255 +
  1256 + ::v-deep .el-steps .is-process .el-step__line {
  1257 + background-color: #3f9b6a;
  1258 + /* 修改线的颜色 */
  1259 + }
  1260 +
  1261 + ::v-deep .el-steps .is-process .el-step__title {
  1262 + color: #fe7b6a;
  1263 + /* 修改进行中步骤的标题颜色 */
  1264 + }
  1265 +
  1266 + ::v-deep .el-steps .is-process .el-step__icon {
  1267 + color: #fff;
  1268 + /* 修改进行中步骤的图标颜色 */
  1269 + background: #3f9b6a;
  1270 + /* 修改进行中步骤图标的边框颜色 */
  1271 + border: 0px;
  1272 + }
  1273 +
  1274 + ::v-deep .el-step__icon-inner {
  1275 + line-height: 0;
  1276 + }
  1277 +
  1278 + /* 线条长度 */
  1279 + ::v-deep .el-step.is-vertical .el-step__line {
  1280 + top: 30px;
  1281 + height: 60px;
  1282 + }
  1283 +
  1284 + ::v-deep .moren {
  1285 + .el-input__inner {
  1286 + margin-top: 5px;
  1287 + padding: 0 20px;
  1288 + }
  1289 + }
  1290 +
  1291 + /deep/ .el-radio-group {
  1292 + margin-top: 11px;
  1293 + }
  1294 +
  1295 + /deep/ .el-radio__input.is-checked .el-radio__inner {
  1296 + border-color: #3f9b6a;
  1297 + background: #3f9b6a;
  1298 + }
  1299 +
  1300 + ::v-deep .el-col {
  1301 + padding: 0 !important;
  1302 + }
  1303 +
  1304 + /deep/ .el-radio-group {
  1305 + width: 100%;
  1306 + }
  1307 +
  1308 + .radio-right-side {
  1309 + width: 100%;
  1310 + display: flex;
  1311 + justify-content: space-between;
  1312 + }
  1313 +
  1314 + /deep/ .radio-right-side .el-radio__label {
  1315 + display: flex;
  1316 + align-items: center;
  1317 + }
  1318 +
  1319 + /deep/ .radio-right-side .el-radio__inner {
  1320 + order: 1;
  1321 + }
  1322 +
  1323 + /deep/ .radio-right-side .el-radio__input {
  1324 + display: flex;
  1325 + order: 2;
  1326 + }
  1327 +
  1328 + /deep/ .radio-right-side {
  1329 + &:hover {
  1330 + color: #000;
  1331 + }
  1332 + }
  1333 +
  1334 + ::v-deep .el-dialog__wrapper {
  1335 + .dialog_css {
  1336 + margin-right: 12px;
  1337 + margin-top: 61px !important;
  1338 +
  1339 + .el-dialog__title {
  1340 + font-size: 16px !important;
  1341 + font-weight: 600;
  1342 + color: #000;
  1343 + }
  1344 + }
  1345 + }
  1346 +
  1347 + ::v-deep .setup {
  1348 + .el-steps {
  1349 + justify-content: center;
  1350 + }
  1351 + }
  1352 +
  1353 + ::v-deep .el-step__head.is-finish {
  1354 + color: #c0c4cc;
  1355 + border-color: #c0c4cc;
  1356 + }
  1357 +
  1358 + ::v-deep .el-step__title.is-finish {
  1359 + color: #c0c4cc;
  1360 + }
  1361 +
  1362 + ::v-deep .el-step__title.is-process {
  1363 + color: #c0c4cc;
  1364 + }
  1365 +
  1366 + ::v-deep .el-tabs {
  1367 + width: 100%;
  1368 + }
  1369 +
  1370 + ::v-deep .setup {
  1371 + .el-step__main {
  1372 + margin-left: -17px;
  1373 + }
  1374 +
  1375 + .el-step__title.is-process {
  1376 + color: #3f9b6a;
  1377 + }
  1378 +
  1379 + }
  1380 +
  1381 + ::v-deep .el-pagination__jump {
  1382 + margin-top: 5px;
  1383 + }
  1384 +
  1385 + ::v-deep .linClass {
  1386 + .el-dialog__header {
  1387 + padding: 20px 20px 10px;
  1388 + font-size: 14px;
  1389 + }
  1390 + }
  1391 +</style>
  1392 +<style lang="scss" scoped>
  1393 + ::v-deep .bian_css {
  1394 + .el-dialog__header {
  1395 + padding: 0px;
  1396 + }
  1397 + }
  1398 +
  1399 + ::v-deep .buttonHover:hover {
  1400 + color: #3f9b6a !important;
  1401 + border-color: #c5e1d2 !important;
  1402 + background-color: #ecf5f0 !important;
  1403 + outline: none;
  1404 + }
  1405 +
  1406 + ::v-deep .el-pagination__total {
  1407 + position: absolute;
  1408 + left: 10px;
  1409 + }
  1410 +
  1411 + ::v-deep .diaslog_zhong {
  1412 + .el-dialog__body {
  1413 + padding: 10px 20px 20px 20px;
  1414 + }
  1415 +
  1416 + .el-upload--picture-card {
  1417 + width: 130px;
  1418 + height: 130px;
  1419 + }
  1420 + }
  1421 +</style>
yanshouban/src/views/detect/admap.vue
@@ -51,14 +51,20 @@ @@ -51,14 +51,20 @@
51 </el-button> 51 </el-button>
52 </div> 52 </div>
53 </div> 53 </div>
54 - <div style="margin-bottom:20px;"><el-button @click="addbuss" 54 + <div style="margin-bottom: 20px;display:flex;">
  55 + <el-button @click="addbuss"
55 style="background-color: #3F9B6A;color: #fff;padding:8px 15px;" 56 style="background-color: #3F9B6A;color: #fff;padding:8px 15px;"
56 icon="el-icon-circle-plus-outline">新增</el-button> 57 icon="el-icon-circle-plus-outline">新增</el-button>
57 - <!-- <el-button  
58 - style="background-color: #3F9B6A;color: #fff;padding:8px 15px;"  
59 - @click="daoru"  
60 - >导入</el-button  
61 - > --> 58 + <el-upload class="upload-demo" ref="upload"
  59 + :limit="1"
  60 + accept=".xlsx"
  61 + :action="uploadFileUrl"
  62 + :on-success="daoru"
  63 + :file-list="daoData"
  64 + :auto-upload="true"
  65 + :show-file-list="false">
  66 + <el-button style="background-color: #fff;color: #3F9B6A;border: 1px solid #dcdfe6;" class="buttonHover">导入</el-button>
  67 + </el-upload>
62 </div> 68 </div>
63 <!-- 地图 --> 69 <!-- 地图 -->
64 <div style="display: flex;justify-content: space-between;margin-bottom: 20px;"> 70 <div style="display: flex;justify-content: space-between;margin-bottom: 20px;">
@@ -136,6 +142,10 @@ @@ -136,6 +142,10 @@
136 </el-table-column> 142 </el-table-column>
137 <el-table-column prop="detailedLocation" label="详细地址" min-width="300"> 143 <el-table-column prop="detailedLocation" label="详细地址" min-width="300">
138 </el-table-column> 144 </el-table-column>
  145 + <el-table-column label="商户名称" prop="actualUsableArea" min-width="150">
  146 + </el-table-column>
  147 + <el-table-column label="商户电话" prop="belongingDepartment" min-width="150">
  148 + </el-table-column>
139 <el-table-column label="实际使用面积" prop="actualUsableArea" min-width="150"> 149 <el-table-column label="实际使用面积" prop="actualUsableArea" min-width="150">
140 </el-table-column> 150 </el-table-column>
141 <el-table-column label="归属部门" prop="belongingDepartment" min-width="150"> 151 <el-table-column label="归属部门" prop="belongingDepartment" min-width="150">
@@ -1511,6 +1521,7 @@ @@ -1511,6 +1521,7 @@
1511 changadd, 1521 changadd,
1512 changedit, 1522 changedit,
1513 changDel, 1523 changDel,
  1524 +
1514 } from '../../api/information' 1525 } from '../../api/information'
1515 import { 1526 import {
1516 getAlls as getAllMap, 1527 getAlls as getAllMap,
@@ -1765,6 +1776,7 @@ @@ -1765,6 +1776,7 @@
1765 mapData: {}, 1776 mapData: {},
1766 fileData:[], 1777 fileData:[],
1767 uploadFileUrl: uploadUrl, // 请求地址 1778 uploadFileUrl: uploadUrl, // 请求地址
  1779 +daoData:[]
1768 } 1780 }
1769 1781
1770 1782
@@ -2266,6 +2278,14 @@ uploadFileUrl: uploadUrl, // 请求地址 @@ -2266,6 +2278,14 @@ uploadFileUrl: uploadUrl, // 请求地址
2266 // 将文件地址存储在 uploadedFiles 数组中 2278 // 将文件地址存储在 uploadedFiles 数组中
2267 this.fileData.push(fileMsg); 2279 this.fileData.push(fileMsg);
2268 }, 2280 },
  2281 + daoru(response, file, fileList){
  2282 + this.daoData.push(file.raw)
  2283 + const formDate = new FormData()
  2284 + formDate.append('file', this.daoData[0])
  2285 + excelAdd(formDate).then(res => {
  2286 + this.getAll()
  2287 + })
  2288 + },
2269 } 2289 }
2270 } 2290 }
2271 </script> 2291 </script>
yanshouban/src/views/detect/analyse.vue
@@ -5,32 +5,26 @@ @@ -5,32 +5,26 @@
5 <div style="color:#0006"> <span>招商资源监测</span> <span style="padding:0 5px;">></span> <span 5 <div style="color:#0006"> <span>招商资源监测</span> <span style="padding:0 5px;">></span> <span
6 style="color:#000000e6">统计分析</span></div> 6 style="color:#000000e6">统计分析</span></div>
7 </div> 7 </div>
  8 + <div style="display:flex;justify-content: space-between">
  9 + <div style="display:flex;">
  10 + <!-- <div style="margin-right: 10px;line-height:35px;">商铺/广告位资源统计</div> -->
  11 + <el-date-picker v-model="FormTime" value-format="yyyy-MM-dd" type="daterange" range-separator="-" start-placeholder="开始日期"
  12 + end-placeholder="结束日期" style="width: 200px;margin-right: 10px;ma" prefix-icon="none">
  13 + </el-date-picker>
  14 + <el-button @click="onSubmit" style="background-color: #3F9B6A;color: #fff">检索
  15 + </el-button>
  16 + <el-button @click="resetting" class="buttonHover"
  17 + style="color: #000;border: 1px solid #DBDBDB;background-color: #fff;">重置
  18 + </el-button>
  19 + </div>
  20 + <div>
  21 + <el-button @click="gitOut" style="background-color: #3F9B6A;color: #fff">导出
  22 + </el-button>
  23 + </div>
  24 + </div>
  25 + <div ref="tubiao">
8 <div style="width: 100%;margin-bottom:30px;"> 26 <div style="width: 100%;margin-bottom:30px;">
9 - <div style="display:flex;justify-content: space-between">  
10 - <div style="display:flex;">  
11 - <div style="margin-right: 10px;line-height:35px;">商铺/广告位资源统计</div>  
12 - <!-- <el-select v-model="formSel.createDate" placeholder="所属区域" style="width: 150px;margin-right: 10px">  
13 - <el-option label="1" value="1" />  
14 - <el-option label="2" value="2" />  
15 - </el-select>  
16 - <el-select v-model="formSel.createDate" placeholder="经营类型" style="width: 150px;margin-right: 10px">  
17 - <el-option label="1" value="1" />  
18 - <el-option label="2" value="2" />  
19 - </el-select> -->  
20 - <el-date-picker v-model="FormTime" value-format="yyyy-MM-dd" type="daterange" range-separator="-" start-placeholder="开始日期"  
21 - end-placeholder="结束日期" style="width: 200px;margin-right: 10px;ma" prefix-icon="none">  
22 - </el-date-picker>  
23 - <el-button @click="onSubmit" style="background-color: #3F9B6A;color: #fff">检索  
24 - </el-button>  
25 - <el-button @click="resetting" class="buttonHover"  
26 - style="color: #000;border: 1px solid #DBDBDB;background-color: #fff;">重置  
27 - </el-button>  
28 - </div>  
29 - <!-- <div>  
30 - <el-button @click="gitOut" style="background-color: #3F9B6A;color: #fff">导出  
31 - </el-button>  
32 - </div> -->  
33 - </div> 27 +
34 <div style="display:flex;margin-top:10px;"> 28 <div style="display:flex;margin-top:10px;">
35 <div style="width:48%;height: 400px;marigin-right:20px;"> 29 <div style="width:48%;height: 400px;marigin-right:20px;">
36 <div style="display: flex;justify-content: space-between;"> 30 <div style="display: flex;justify-content: space-between;">
@@ -264,6 +258,59 @@ @@ -264,6 +258,59 @@
264 </div> 258 </div>
265 </div> 259 </div>
266 </div> --> 260 </div> -->
  261 +<div style="width: 100%;margin-bottom:20px;">
  262 + <div style="display:flex;justify-content: space-between">
  263 + <div style="display:flex;">
  264 + <div style="margin-right: 10px;line-height:35px;">合同情况统计</div>
  265 + <!-- <el-select v-model="formSel.createDate" placeholder="所属区域" style="width: 150px;margin-right: 10px">
  266 + <el-option label="1" value="1" />
  267 + <el-option label="2" value="2" />
  268 + </el-select>
  269 + <el-select v-model="formSel.createDate" placeholder="经营类型" style="width: 150px;margin-right: 10px">
  270 + <el-option label="1" value="1" />
  271 + <el-option label="2" value="2" />
  272 + </el-select>
  273 + <el-date-picker v-model="value1" type="datetimerange" range-separator="-" start-placeholder="开始日期"
  274 + end-placeholder="结束日期" style="width: 200px;margin-right: 10px;ma" prefix-icon="none">
  275 + </el-date-picker>
  276 + <el-button @click="onSubmit" style="background-color: #3F9B6A;color: #fff">检索
  277 + </el-button>
  278 + <el-button @click="resetting" class="buttonHover"
  279 + style="color: #000;border: 1px solid #DBDBDB;background-color: #fff;">重置
  280 + </el-button> -->
  281 + </div>
  282 + <!-- <div>
  283 + <el-button @click="onSubmit" style="background-color: #3F9B6A;color: #fff">导出
  284 + </el-button>
  285 + </div> -->
  286 + </div>
  287 + <div style="display:flex;margin-top:10px;">
  288 + <div style="width:48%;height: 400px;marigin-right:20px;">
  289 + <div style="display: flex;justify-content: space-between;">
  290 + <div style="line-height:35px;">商铺/广告位整体经营统计</div>
  291 + <!-- <div>
  292 + <el-select v-model="formSel.createDate" placeholder="类型" style="width: 100px;margin-right: 10px">
  293 + <el-option label="1" value="1" />
  294 + <el-option label="2" value="2" />
  295 + </el-select>
  296 + </div> -->
  297 + </div>
  298 + <div ref="shopJing" style="width:100%;height: 400px;"></div>
  299 + </div>
  300 + <div style="width:48%;height: 400px;marigin-right:20px;">
  301 + <div style="display: flex;justify-content: space-between;">
  302 + <div style="line-height:35px;">出租、退租、续租统计</div>
  303 + <!-- <div>
  304 + <el-select v-model="formSel.createDate" placeholder="类型" style="width: 100px;margin-right: 10px">
  305 + <el-option label="1" value="1" />
  306 + <el-option label="2" value="2" />
  307 + </el-select>
  308 + </div> -->
  309 + </div>
  310 + <div ref="tuiTong" style="width:100%;height: 400px;"></div>
  311 + </div>
  312 + </div>
  313 + </div>
267 314
268 <div style="width: 100%;margin-bottom:20px;"> 315 <div style="width: 100%;margin-bottom:20px;">
269 <div style="display:flex;justify-content: space-between"> 316 <div style="display:flex;justify-content: space-between">
@@ -306,7 +353,7 @@ @@ -306,7 +353,7 @@
306 </div> 353 </div>
307 <div style="width:48%;height: 400px;marigin-right:20px;"> 354 <div style="width:48%;height: 400px;marigin-right:20px;">
308 <div style="display: flex;justify-content: space-between;"> 355 <div style="display: flex;justify-content: space-between;">
309 - <div style="line-height:35px;">签约数量占比</div> 356 + <div style="line-height:35px;">合同签约数量占比</div>
310 <!-- <div> 357 <!-- <div>
311 <el-select v-model="formSel.createDate" placeholder="类型" style="width: 100px;margin-right: 10px"> 358 <el-select v-model="formSel.createDate" placeholder="类型" style="width: 100px;margin-right: 10px">
312 <el-option label="1" value="1" /> 359 <el-option label="1" value="1" />
@@ -318,7 +365,20 @@ @@ -318,7 +365,20 @@
318 </div> 365 </div>
319 </div> 366 </div>
320 </div> 367 </div>
  368 + <div style="width: 100%;margin-bottom:20px;">
  369 + <div style="display:flex;justify-content: space-between">
  370 + </div>
  371 + <div style="display:flex;margin-top:10px;">
  372 + <div style="width:48%;height: 400px;marigin-right:20px;">
  373 + <div style="display: flex;justify-content: space-between;">
  374 + <div style="line-height:35px;">合同信息统计分析</div>
  375 + </div>
  376 + <div ref="hetong" style="width:100%;height: 400px;"></div>
  377 + </div>
321 378
  379 + </div>
  380 + </div>
  381 + </div>
322 </div> 382 </div>
323 383
324 </div> 384 </div>
@@ -329,6 +389,8 @@ @@ -329,6 +389,8 @@
329 statistical, 389 statistical,
330 } from '@/api/information' 390 } from '@/api/information'
331 import * as echarts from 'echarts' 391 import * as echarts from 'echarts'
  392 + import html2canvas from 'html2canvas'
  393 + import jsPDF from 'jspdf'
332 export default { 394 export default {
333 name: 'atmosphereGl', 395 name: 'atmosphereGl',
334 data() { 396 data() {
@@ -341,8 +403,8 @@ @@ -341,8 +403,8 @@
341 tableData: [], 403 tableData: [],
342 FormTime:[], 404 FormTime:[],
343 pageindex: { 405 pageindex: {
344 -   startTime: "1990-09-11",  
345 -     endTime: "2024-11-09" 406 +   startTime: "",
  407 +     endTime: ""
346 }, 408 },
347 formSel: { 409 formSel: {
348 410
@@ -351,26 +413,83 @@ @@ -351,26 +413,83 @@
351 }, 413 },
352 computed: {}, 414 computed: {},
353 created() { 415 created() {
354 - this.getAll() 416 +
355 417
356 }, 418 },
357 mounted() { 419 mounted() {
358 -  
359 - // this.charDam1()  
360 - // this.charDam2()  
361 - // this.charDam3()  
362 - // this.charDam4()  
363 - // this.charDam5()  
364 -  
365 - // this.charDam7()  
366 -  
367 - // this.charDam9() 420 + this.getAll()
368 }, 421 },
369 methods: { 422 methods: {
  423 +
370 charDam(datas) { 424 charDam(datas) {
  425 +
371 let Dom = this.$refs.shop2TJ 426 let Dom = this.$refs.shop2TJ
372 let myChart = echarts.init(Dom) 427 let myChart = echarts.init(Dom)
373 let processedData = datas.map(item => ({ 428 let processedData = datas.map(item => ({
  429 + name: item.shopName,
  430 + value: item.price
  431 + }))
  432 + let option = {
  433 + legend: {},
  434 + tooltip: {},
  435 + xAxis: {
  436 + type: 'category',
  437 + data:processedData.map(item => item.name),
  438 + axisLabel: {
  439 + //x轴文字的配置
  440 + show: true,
  441 + interval: 0,//使x轴文字显示全
  442 + textStyle: {
  443 + color: "#000000"
  444 + },
  445 + formatter: function(params) {
  446 + var newParamsName = "";
  447 + var paramsNameNumber = params.length;
  448 + var provideNumber = 4; //一行显示几个字
  449 + var rowNumber = Math.ceil(paramsNameNumber / provideNumber);
  450 + if (paramsNameNumber > provideNumber) {
  451 + for (var p = 0; p < rowNumber; p++) {
  452 + var tempStr = "";
  453 + var start = p * provideNumber;
  454 + var end = start + provideNumber;
  455 + if (p == rowNumber - 1) {
  456 + tempStr = params.substring(start, paramsNameNumber);
  457 + } else {
  458 + tempStr = params.substring(start, end) + "\n";
  459 + }
  460 + newParamsName += tempStr;
  461 + }
  462 + } else {
  463 + newParamsName = params;
  464 + }
  465 + return newParamsName;
  466 + }
  467 + }
  468 +
  469 + },
  470 + yAxis: {
  471 + type: 'value',
  472 + },
  473 + grid: {
  474 + left: '1%',
  475 + right: '1%',
  476 + top: '5%',
  477 + bottom: '6%',
  478 + containLabel: true
  479 + },
  480 + series: [{
  481 + type: 'bar',
  482 + color: '#3f9b6a',
  483 + data: processedData.map(item => item.value),
  484 + }
  485 + ]
  486 + };
  487 + option && myChart.setOption(option);
  488 + },
  489 + hetongDam(datas) {
  490 + let Dom = this.$refs.hetong
  491 + let myChart = echarts.init(Dom)
  492 + let processedData = datas.map(item => ({
374 name: item.trendDate, 493 name: item.trendDate,
375 value: item.trendQuantity 494 value: item.trendQuantity
376 })) 495 }))
@@ -380,6 +499,9 @@ @@ -380,6 +499,9 @@
380 xAxis: { 499 xAxis: {
381 type: 'category', 500 type: 'category',
382 data:processedData.map(item => item.name), 501 data:processedData.map(item => item.name),
  502 + axisLabel: {
  503 + interval: 0,//使x轴文字显示全
  504 + }
383 }, 505 },
384 yAxis: { 506 yAxis: {
385 type: 'value', 507 type: 'value',
@@ -405,9 +527,10 @@ @@ -405,9 +527,10 @@
405 let myChart = echarts.init(Dom); 527 let myChart = echarts.init(Dom);
406 528
407 let processedData = datas.map(item => ({ 529 let processedData = datas.map(item => ({
408 - name: item.trendDate || '11', 530 + name: item.trendDate,
409 value: item.trendQuantity 531 value: item.trendQuantity
410 })) 532 }))
  533 + console.log(processedData)
411 processedData.push({name:'',value:0}) 534 processedData.push({name:'',value:0})
412 let option = { 535 let option = {
413 xAxis: { 536 xAxis: {
@@ -484,106 +607,70 @@ @@ -484,106 +607,70 @@
484 }, 607 },
485 charDam3(datas) { 608 charDam3(datas) {
486 let Dom = this.$refs.shop1TJ 609 let Dom = this.$refs.shop1TJ
487 - let myChart = echarts.init(Dom); 610 + let myChart = echarts.init(Dom)
  611 + let processedData = datas.map(item => ({
  612 + name: item.location,
  613 + value: item.trendQuantity
  614 + }))
  615 + let option = {
  616 + legend: {},
  617 + tooltip: {},
  618 + xAxis: {
  619 + type: 'category',
  620 + data:processedData.map(item => item.name),
  621 + axisLabel: {
  622 + //x轴文字的配置
  623 + show: true,
  624 + interval: 0,//使x轴文字显示全
  625 + textStyle: {
  626 + color: "#000000"
  627 + },
  628 + formatter: function(params) {
  629 + var newParamsName = "";
  630 + var paramsNameNumber = params.length;
  631 + var provideNumber = 4; //一行显示几个字
  632 + var rowNumber = Math.ceil(paramsNameNumber / provideNumber);
  633 + if (paramsNameNumber > provideNumber) {
  634 + for (var p = 0; p < rowNumber; p++) {
  635 + var tempStr = "";
  636 + var start = p * provideNumber;
  637 + var end = start + provideNumber;
  638 + if (p == rowNumber - 1) {
  639 + tempStr = params.substring(start, paramsNameNumber);
  640 + } else {
  641 + tempStr = params.substring(start, end) + "\n";
  642 + }
  643 + newParamsName += tempStr;
  644 + }
  645 + } else {
  646 + newParamsName = params;
  647 + }
  648 + return newParamsName;
  649 + }
  650 + }
  651 +
  652 + },
  653 + yAxis: {
  654 + type: 'value',
  655 + },
  656 + // grid: {
  657 + // left: '1%',
  658 + // right: '1%',
  659 + // top: '5%',
  660 + // bottom: '6%',
  661 + // containLabel: true
  662 + // },
  663 + series: [{
  664 + type: 'bar',
  665 + color: '#3f9b6a',
  666 + data: processedData.map(item => item.value),
  667 + }
  668 + ]
  669 + };
  670 + option && myChart.setOption(option);
  671 +
488 672
489 - let processedData = datas.map(item => ({  
490 - // name: item.trendDate || '11',  
491 - value: item.trendQuantity  
492 - }))  
493 - let option = {  
494 - legend: {},  
495 - tooltip: {},  
496 - xAxis: {  
497 - type: 'category',  
498 - data: ['商铺','场地','广告位'],  
499 - },  
500 - yAxis: {  
501 - type: 'value',  
502 - max: 50  
503 - },  
504 - grid: {  
505 - left: '1%',  
506 - right: '1%',  
507 - top: '5%',  
508 - bottom: '6%',  
509 - containLabel: true  
510 - },  
511 - series: [{  
512 - type: 'bar',  
513 - color: '#3f9b6a',  
514 - data: processedData.map(item => item.value),  
515 - type: 'line'  
516 - },  
517 - ]  
518 - };  
519 - option && myChart.setOption(option);  
520 }, 673 },
521 - // charDam4() {  
522 - // let Dom = this.$refs.shop4ZX  
523 - // let myChart = echarts.init(Dom);  
524 - // let option = {  
525 - // xAxis: {  
526 - // type: 'category',  
527 - // data: ['2024-07', '2024-08', '2024-09', '2024-10', '2024-11', '2024-12', '2024-13']  
528 - // },  
529 - // yAxis: {  
530 - // type: 'value'  
531 - // },  
532 - // grid: {  
533 - // left: '1%',  
534 - // right: '1%',  
535 - // top: '5%',  
536 - // bottom: '6%',  
537 - // containLabel: true  
538 - // },  
539 - // series: [{ // 设置线条颜色  
540 - // lineStyle: {  
541 - // color: '#3f9b6a', // 这里设置为红色  
542 - // width: 2, // 线条宽度  
543 - // },  
544 - // data: [0,0, 0, 1, 0, 0],  
545 - // type: 'line'  
546 - // }]  
547 - // }  
548 - // option && myChart.setOption(option);  
549 -  
550 - // },  
551 - // charDam5() {  
552 - // let Dom = this.$refs.shop4TJ  
553 - // let myChart = echarts.init(Dom);  
554 - // let option = {  
555 - // tooltip: {  
556 - // trigger: 'axis',  
557 - // axisPointer: {  
558 - // type: 'shadow'  
559 - // }  
560 - // },  
561 - // grid: {  
562 - // left: '3%',  
563 - // right: '4%',  
564 - // bottom: '3%',  
565 - // containLabel: true  
566 - // },  
567 - // xAxis: {  
568 - // type: 'value',  
569 - // boundaryGap: [0, 0.01]  
570 - // },  
571 - // yAxis: {  
572 - // type: 'category',  
573 - // data: ['商户A', '商户B', '商户C', '商户D', '商户E', ]  
574 - // },  
575 - // series: [{  
576 - // lineStyle: {  
577 - // color: '#3f9b6a', // 这里设置为红色  
578 - // width: 2, // 线条宽度  
579 - // },  
580 - // name: '2011',  
581 - // type: 'bar',  
582 - // data: [2, 4, 5, 4, 1, 5]  
583 - // }]  
584 - // };  
585 - // option && myChart.setOption(option);  
586 - // },  
587 charDam6(datas) { 674 charDam6(datas) {
588 675
589 let Dom = this.$refs.shop5ZX 676 let Dom = this.$refs.shop5ZX
@@ -668,64 +755,91 @@ @@ -668,64 +755,91 @@
668 } 755 }
669 option && myChart.setOption(option); 756 option && myChart.setOption(option);
670 }, 757 },
  758 + tuichar(datas) {
  759 + let Dom = this.$refs.tuiTong
  760 + let myChart = echarts.init(Dom)
  761 + let processedData = datas.map(item => ({
  762 + name: item.rentalCondition,
  763 + value: item.trendQuantity
  764 + }))
  765 + let option = {
  766 + xAxis: {
  767 + type: 'category',
  768 + data:processedData.map(item => item.name),
  769 + },
  770 + yAxis: {
  771 + type: 'value'
  772 + },
  773 + grid: {
  774 + left: '1%',
  775 + right: '1%',
  776 + top: '5%',
  777 + bottom: '6%',
  778 + containLabel: true
  779 + },
  780 + series: [{ // 设置线条颜色
  781 + lineStyle: {
  782 + color: '#3f9b6a', // 这里设置为红色
  783 + width: 2, // 线条宽度
  784 + },
  785 + data: processedData.map(item => item.value),
  786 + type: 'line'
  787 + }]
  788 + }
  789 + option && myChart.setOption(option);
671 790
672 -// charDam9(){  
673 -  
674 -// let Dom = this.$refs.shop3TJ  
675 -// let myChart = echarts.init(Dom);  
676 -// let option = {  
677 -// tooltip: {  
678 -// trigger: 'axis',  
679 -// axisPointer: {  
680 -// type: 'shadow'  
681 -// }  
682 -// },  
683 -// grid: {  
684 -// left: '3%',  
685 -// right: '4%',  
686 -// bottom: '3%',  
687 -// containLabel: true  
688 -// },  
689 -// xAxis: {  
690 -// type: 'value',  
691 -// boundaryGap: [0, 0.01]  
692 -// },  
693 -// yAxis: {  
694 -// type: 'category',  
695 -// data: ['商户A', '商户B', '商户C', '商户D', '商户E', ]  
696 -// },  
697 -// series: [{  
698 -// lineStyle: {  
699 -// color: '#3f9b6a', // 这里设置为红色  
700 -// width: 2, // 线条宽度  
701 -// },  
702 -// name: '2011',  
703 -// type: 'bar',  
704 -// data: [1, 2, 3, 4, 5, 10]  
705 -// }]  
706 -// };  
707 -// option && myChart.setOption(option);  
708 -  
709 -// },  
710 791
  792 + },
  793 + charJing(datas){
  794 +
  795 + let Dom = this.$refs.shopJing
  796 + let myChart = echarts.init(Dom)
  797 + let processedData = datas.map(item => ({
  798 + name: item.shopName,
  799 + value: item.price
  800 + }))
  801 + let option = {
  802 + legend: {},
  803 + tooltip: {},
  804 + xAxis: {
  805 + type: 'category',
  806 + data:processedData.map(item => item.name),
  807 + },
  808 + yAxis: {
  809 + type: 'value',
  810 + },
  811 + grid: {
  812 + left: '1%',
  813 + right: '1%',
  814 + top: '5%',
  815 + bottom: '6%',
  816 + containLabel: true
  817 + },
  818 + series: [{
  819 + type: 'bar',
  820 + color: '#3f9b6a',
  821 + data: processedData.map(item => item.value),
  822 + }
  823 + ]
  824 + };
  825 + option && myChart.setOption(option);
  826 +
  827 + },
711 async getAll() { 828 async getAll() {
712 const res = await statistical(this.pageindex) 829 const res = await statistical(this.pageindex)
713 830
714 - this.charDam(res.data.seekingIntentionStatistics) 831 + this.charDam(res.data.merchantChargeStatistics)
715 this.charDam2(res.data.seekingIntentionStatistics) 832 this.charDam2(res.data.seekingIntentionStatistics)
716 this.charDam6(res.data.contractTrend) 833 this.charDam6(res.data.contractTrend)
717 - 834 +this.hetongDam(res.data.contractTrend)
718 this.charDam7(res.data.basicQueryTrends) 835 this.charDam7(res.data.basicQueryTrends)
719 let trends=[...res.data.shopTrend,...res.data.venueTrend,...res.data.advertisingTrend] 836 let trends=[...res.data.shopTrend,...res.data.venueTrend,...res.data.advertisingTrend]
720 837
721 this.charDam1(trends) 838 this.charDam1(trends)
722 - this.charDam3(trends)  
723 - },  
724 - handleSizeChange() {  
725 -  
726 - },  
727 - handleCurrentChange() { 839 + this.charDam3(res.data.tollLocationStatistics)
  840 + this.charJing(res.data.operationStatistics)
728 841
  842 + this.tuichar(res.data.rentalStatistics)
729 }, 843 },
730 resetting(){ 844 resetting(){
731 this.FormTime = [] 845 this.FormTime = []
@@ -738,19 +852,40 @@ @@ -738,19 +852,40 @@
738     endTime:this.FormTime[1] 852     endTime:this.FormTime[1]
739 } 853 }
740 const res = await statistical(Msg) 854 const res = await statistical(Msg)
741 - this.charDam(res.data.seekingIntentionStatistics) 855 + this.charDam(res.data.merchantChargeStatistics)
742 this.charDam2(res.data.seekingIntentionStatistics) 856 this.charDam2(res.data.seekingIntentionStatistics)
743 this.charDam6(res.data.contractTrend) 857 this.charDam6(res.data.contractTrend)
  858 + this.hetongDam(res.data.contractTrend)
744 this.charDam7(res.data.basicQueryTrends) 859 this.charDam7(res.data.basicQueryTrends)
745 let trends=[...res.data.shopTrend,...res.data.venueTrend,...res.data.advertisingTrend] 860 let trends=[...res.data.shopTrend,...res.data.venueTrend,...res.data.advertisingTrend]
746 861
747 this.charDam1(trends) 862 this.charDam1(trends)
748 - this.charDam3(trends)  
749 - 863 + this.charDam3(res.data.tollLocationStatistics)
  864 + this.tuichar(res.data.rentalStatistics)
  865 + this.charJing(res.data.operationStatistics)
750 }, 866 },
751 - gitOut(){ 867 + // 下载
  868 + async gitOut() {
  869 + const content = this.$refs.tubiao;
752 870
753 - }, 871 + // 使用 html2canvas 将 div 渲染为画布
  872 + const canvas = await html2canvas(content);
  873 +
  874 + // 获取画布的图像数据
  875 + const imgData = canvas.toDataURL('image/png');
  876 +
  877 + // 创建一个新的 PDF 文档
  878 + const pdf = new jsPDF('p', 'mm', 'a4');
  879 +
  880 + // 添加图像到 PDF,第二个参数是图像格式,第三个参数是缩放比例
  881 + const imgWidth = 190; // 图像的宽度(mm)
  882 + const imgHeight = (canvas.height * imgWidth) / canvas.width; // 保持图像的宽高比
  883 +
  884 + pdf.addImage(imgData, 'PNG', 10, 10, imgWidth, imgHeight); // 10, 10 是图像在 PDF 中的位置(mm)
  885 +
  886 + // 保存 PDF 文件
  887 + pdf.save('统计图.pdf');
  888 + },
754 } 889 }
755 } 890 }
756 </script> 891 </script>
yanshouban/src/views/ipm/followup/index.vue
@@ -658,11 +658,27 @@ @@ -658,11 +658,27 @@
658 const res = await genGetAll(this.pageindex) 658 const res = await genGetAll(this.pageindex)
659 this.tableData = res.data.content 659 this.tableData = res.data.content
660 this.total = res.data.content.length 660 this.total = res.data.content.length
  661 + this.tableData.map(res=>{
  662 + res.contactPhone = this.$decrypt(res.contactPhone)
  663 + res.idCardNumber = this.$decrypt(res.idCardNumber)
  664 + res.unifiedSocialCreditCode = this.$decrypt(res.unifiedSocialCreditCode)
  665 + res.legalRepresentative = this.$decrypt(res.legalRepresentative)
  666 + res.address = this.$decrypt(res.address)
  667 + res.emailAddress = this.$decrypt(res.emailAddress)
  668 + })
661 const ziyuan = await getAlls(this.pageindex) 669 const ziyuan = await getAlls(this.pageindex)
662 const ggw = await map1(this.pageindex) 670 const ggw = await map1(this.pageindex)
663 this.ziyuanData = [...ziyuan.data.content,...ggw.data.content] 671 this.ziyuanData = [...ziyuan.data.content,...ggw.data.content]
664 const kehu = await icManAll(this.pageindex); 672 const kehu = await icManAll(this.pageindex);
665 this.kehuData = kehu.data.content 673 this.kehuData = kehu.data.content
  674 + this.kehuData.map(res=>{
  675 + res.unifiedSocialCreditCode = this.$decrypt(res.unifiedSocialCreditCode)
  676 + res.legalRepresentative = this.$decrypt(res.legalRepresentative)
  677 + res.address = this.$decrypt(res.address)
  678 + res.emailAddress = this.$decrypt(res.emailAddress)
  679 + res.contactName = this.$decrypt(res.contactName)
  680 + res.contactPhone = this.$decrypt(res.contactPhone)
  681 + })
666 }, 682 },
667 683
668 // 新增确定按钮 684 // 新增确定按钮
@@ -796,7 +812,14 @@ @@ -796,7 +812,14 @@
796 const res = await genGetAll(this.formSel) 812 const res = await genGetAll(this.formSel)
797 this.tableData = res.data.content 813 this.tableData = res.data.content
798 this.total = res.data.content.length 814 this.total = res.data.content.length
799 - 815 + this.tableData.map(res=>{
  816 + res.contactPhone = this.$decrypt(res.contactPhone)
  817 + res.idCardNumber = this.$decrypt(res.idCardNumber)
  818 + res.unifiedSocialCreditCode = this.$decrypt(res.unifiedSocialCreditCode)
  819 + res.legalRepresentative = this.$decrypt(res.legalRepresentative)
  820 + res.address = this.$decrypt(res.address)
  821 + res.emailAddress = this.$decrypt(res.emailAddress)
  822 + })
800 }, 823 },
801 //重置按钮 824 //重置按钮
802 resetting() { 825 resetting() {
yanshouban/src/views/ipm/inr/index.vue
@@ -388,6 +388,7 @@ @@ -388,6 +388,7 @@
388 tanAdd, 388 tanAdd,
389 tanEdit, 389 tanEdit,
390 tanDel, 390 tanDel,
  391 + excelQueryByPage
391 } from '../../../api/inr.js' 392 } from '../../../api/inr.js'
392 import upimg from "@/components/ImageUpload/index" 393 import upimg from "@/components/ImageUpload/index"
393 import { 394 import {
@@ -629,23 +630,33 @@ const res = await tanGetAll(this.formSel) @@ -629,23 +630,33 @@ const res = await tanGetAll(this.formSel)
629 await tanDel({id:item.id}) 630 await tanDel({id:item.id})
630 this.getAll() 631 this.getAll()
631 }, 632 },
632 - gitOut(){  
633 - let add =[]  
634 - this.tableData.map(item=>{  
635 -  
636 - let obj ={  
637 - intentCustomerName:'',  
638 - customerLevel:'',  
639 - contactPhone:'',  
640 - nextFollowUpStartTime:''  
641 - }  
642 - obj.intentCustomerName = item.cereFollowDetails.cereCustomerInfo.intentCustomerName  
643 - obj.contactPhone = item.cereFollowDetails.cereCustomerInfo.contactPhone  
644 - obj.customerLevel = item.cereFollowDetails.cereCustomerInfo.customerLevel  
645 - obj.nextFollowUpStartTime = item.nextNegotiationStartTime  
646 - add.push(obj)  
647 -  
648 - }) 633 + async gitOut(){
  634 + let res = await excelQueryByPage(this.pageindex)
  635 + if(!res){
  636 + return
  637 + }
  638 + const blob = new Blob([res], { type: 'application/vnd.ms-excel' })
  639 + const fileName = '谈判列表.xls'
  640 + if ('download' in document.createElement('a')) {
  641 + // 非IE下载
  642 + const elink = document.createElement('a')
  643 + elink.download = fileName
  644 + elink.style.display = 'none'
  645 + elink.href = URL.createObjectURL(blob)
  646 + document.body.appendChild(elink)
  647 + elink.click()
  648 + URL.revokeObjectURL(elink.href) // 释放URL 对象
  649 + document.body.removeChild(elink)
  650 + } else {
  651 + // IE10+下载
  652 + navigator.msSaveBlob(blob, fileName)
  653 + }
  654 + this.$message({
  655 + message: '导出成功',
  656 + type: 'success'
  657 + })
  658 +
  659 +
649 }, 660 },
650 } 661 }
651 } 662 }
yanshouban/src/views/media/mediaMana.vue
@@ -120,7 +120,7 @@ @@ -120,7 +120,7 @@
120 <!-- 详情活动方案 --> 120 <!-- 详情活动方案 -->
121 <el-dialog :title="wangShow==false?'修改页 ':'详情页'" :visible.sync="ggXin" custom-class='bian_css' style="padding: 0;" width="65s%" 121 <el-dialog :title="wangShow==false?'修改页 ':'详情页'" :visible.sync="ggXin" custom-class='bian_css' style="padding: 0;" width="65s%"
122 center :close-on-click-modal="false" :close-on-press-escape="false" :show-close='false'> 122 center :close-on-click-modal="false" :close-on-press-escape="false" :show-close='false'>
123 - <div style="padding: 10px 20px;"> 123 + <div style="padding: 10px 20px;" ref="contentToConvert">
124 <el-form ref="ruleFormInfo" :model="secondData" label-width="120px" 124 <el-form ref="ruleFormInfo" :model="secondData" label-width="120px"
125 style="position: relative"> 125 style="position: relative">
126 <el-form-item label="方案标题" class="grid-content bg-purple device-from" prop="name"> 126 <el-form-item label="方案标题" class="grid-content bg-purple device-from" prop="name">
@@ -145,6 +145,9 @@ @@ -145,6 +145,9 @@
145 <el-button @click="ggXin=false" 145 <el-button @click="ggXin=false"
146 style="color: #000;border: 1px solid #DBDBDB;background-color: #fff;" class="buttonHover">返回 146 style="color: #000;border: 1px solid #DBDBDB;background-color: #fff;" class="buttonHover">返回
147 </el-button> 147 </el-button>
  148 + <el-button @click="daochu" v-if="wangShow"
  149 + style="color: #fff;background-color: #3F9B6A;">生成PDF
  150 + </el-button>
148 <el-button @click="TuiEdit" v-if="!wangShow" 151 <el-button @click="TuiEdit" v-if="!wangShow"
149 style="color: #fff;background-color: #3F9B6A;">确定 152 style="color: #fff;background-color: #3F9B6A;">确定
150 </el-button> 153 </el-button>
@@ -523,6 +526,8 @@ @@ -523,6 +526,8 @@
523 import addAct from "./mediaMannaAdd" 526 import addAct from "./mediaMannaAdd"
524 import wangEditor from "@/components/editor/index"; 527 import wangEditor from "@/components/editor/index";
525 import upimg from "@/components/ImageUpload/index" 528 import upimg from "@/components/ImageUpload/index"
  529 + import html2canvas from 'html2canvas'
  530 + import jsPDF from 'jspdf'
526 export default { 531 export default {
527 components: { addAct,wangEditor,upimg}, 532 components: { addAct,wangEditor,upimg},
528 data() { 533 data() {
@@ -604,6 +609,29 @@ components: { addAct,wangEditor,upimg}, @@ -604,6 +609,29 @@ components: { addAct,wangEditor,upimg},
604 609
605 }, 610 },
606 methods: { 611 methods: {
  612 + async daochu(){
  613 +
  614 + const content = this.$refs.contentToConvert;
  615 +
  616 + // 使用 html2canvas 将 div 渲染为画布
  617 + const canvas = await html2canvas(content);
  618 +
  619 + // 获取画布的图像数据
  620 + const imgData = canvas.toDataURL('image/png');
  621 +
  622 + // 创建一个新的 PDF 文档
  623 + const pdf = new jsPDF('p', 'mm', 'a4');
  624 +
  625 + // 添加图像到 PDF,第二个参数是图像格式,第三个参数是缩放比例
  626 + const imgWidth = 190; // 图像的宽度(mm)
  627 + const imgHeight = (canvas.height * imgWidth) / canvas.width; // 保持图像的宽高比
  628 +
  629 + pdf.addImage(imgData, 'PNG', 10, 10, imgWidth, imgHeight); // 10, 10 是图像在 PDF 中的位置(mm)
  630 +
  631 + // 保存 PDF 文件
  632 + pdf.save('媒体推广.pdf');
  633 +
  634 + },
607 //查询全数据 635 //查询全数据
608 async getAll() { 636 async getAll() {
609 const res = await tuiGetAll(this.pageindex) 637 const res = await tuiGetAll(this.pageindex)
yanshouban/src/views/member/memberList/details.vue
@@ -369,12 +369,17 @@ export default { @@ -369,12 +369,17 @@ export default {
369 if (item.fields === 'sex') { 369 if (item.fields === 'sex') {
370 item.value = item.value === '1' ? '男' : '女' 370 item.value = item.value === '1' ? '男' : '女'
371 } 371 }
  372 +
  373 + item.value = this.$decrypt(item.value)
  374 + console.log(item)
372 }) 375 })
373 }, 376 },
374 // 初始化查询所有标签 377 // 初始化查询所有标签
375 async getSelect (name) { 378 async getSelect (name) {
376 const res = await getLabels(name) 379 const res = await getLabels(name)
377 this.tipsList = res.data 380 this.tipsList = res.data
  381 +
  382 +
378 }, 383 },
379 doCancel () { 384 doCancel () {
380 this.visible = false 385 this.visible = false
yanshouban/src/views/online/QRFunds/index.vue
@@ -182,6 +182,7 @@ export default { @@ -182,6 +182,7 @@ export default {
182 res.emailAddress = this.$decrypt(res.emailAddress) 182 res.emailAddress = this.$decrypt(res.emailAddress)
183 res.shopAdress = this.$decrypt(res.shopAdress) 183 res.shopAdress = this.$decrypt(res.shopAdress)
184 res.legalRepresentative = this.$decrypt(res.legalRepresentative) 184 res.legalRepresentative = this.$decrypt(res.legalRepresentative)
  185 + res.chargePersonPhone = this.$decrypt(res.chargePersonPhone)
185 }) 186 })
186 }, 187 },
187 onSubmit(){ 188 onSubmit(){
yanshouban/src/views/scheme/addressguan.vue 0 → 100644
  1 +<template>
  2 + <div class="zhuti" v-if="addressShow">
  3 + <div style="height:58px;line-height:58px;">
  4 + <div style="color:#0006"> <span>招商方案管理</span> <span style="padding:0 5px;">></span> <span
  5 + style="color:#000000e6">商铺位置管理</span></div>
  6 + </div>
  7 + <div>
  8 + <!-- 搜索 -->
  9 + <div class="formSearch">
  10 + <div class="demo-input-suffix">
  11 + <div style="width:68px;height:36px;line-height:32px;">位置</div>
  12 + <el-input placeholder="请输入" v-model="formSel.policyName" style="width:168px;margin-right: 15px">
  13 + </el-input>
  14 + </div>
  15 + <div>
  16 + <el-button @click="onSubmit" style="background-color: #3F9B6A;color: #fff">检索
  17 + </el-button>
  18 + <el-button @click="resetting" class="buttonHover"
  19 + style="color: #000;border: 1px solid #DBDBDB;background-color: #fff;">重置
  20 + </el-button>
  21 + </div>
  22 + </div>
  23 + <div style="margin:20px 0;">
  24 + <el-button icon="el-icon-circle-plus-outline" @click="addbuss"
  25 + style="background-color: #3F9B6A;color: #fff;padding:8px 15px;">新增</el-button>
  26 + </div>
  27 +
  28 + <!-- 表格 -->
  29 + <el-table :data="tableData.slice((currentPage - 1) * pageSize, currentPage * pageSize)"
  30 + :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}"
  31 + >
  32 + <el-table-column label="序号" min-width="100" >
  33 + <template slot-scope="scope">
  34 + {{scope.$index +1}}
  35 + </template>
  36 + </el-table-column>
  37 + <el-table-column label="位置名称" prop="policyName" min-width="200" >
  38 + </el-table-column>
  39 + <el-table-column label="创建时间" prop="applicableResources" min-width="100" >
  40 + </el-table-column>
  41 + <el-table-column label="操作" min-width="200" >
  42 + <template slot-scope="scope">
  43 + <div @click="handleEditForm(scope.row)" class="tableBtn greens">编辑</div>
  44 + <div @click="handleDelete(scope.row)" class="tableBtn greens">删除</div>
  45 + </template>
  46 + </el-table-column>
  47 + </el-table>
  48 + <div class="fenye">
  49 + <el-pagination class="pagination" :hide-on-single-page="flag" background small :current-page="currentPage"
  50 + layout="total,prev, pager,next" :total="total"
  51 + @current-change="handleCurrentChange" />
  52 + </div>
  53 + </div>
  54 + <el-dialog :title="index == 0?'新增页':'编辑页'" :visible.sync="xinShow" custom-class='bian_css' style="padding: 0;" width="55%" center
  55 + :close-on-click-modal="false" >
  56 + <div style="padding:20px;" class="xinFrom">
  57 + <el-form :model="form" ref="ruleForm" label-width="80px">
  58 + <el-form-item label="商铺位置" prop="policyName">
  59 + <el-input v-model="form.policyName" placeholder="请输入" style="width: 87%;margin-right: 15px" maxlength="50"></el-input>
  60 + </el-form-item>
  61 +
  62 + </el-form>
  63 + <div style="display: flex;justify-content: flex-end;margin-top:20px;">
  64 + <el-button @click="closeFn()" style="background-color: #fff;color: #000;border: 1px solid #B1B1B1;"
  65 + class="buttonHover">取 消</el-button>
  66 + <el-button type="primary" @click="addCheck(index)"
  67 + style="background-color: #3F9B6A;color: #fff;border-color:#3F9B6A;">确 定</el-button>
  68 +
  69 + </div>
  70 + </div>
  71 + </el-dialog>
  72 + </div>
  73 +</template>
  74 +
  75 +<script>
  76 + import {
  77 + ceGetAll,
  78 + ceAdd,
  79 + ceEdit,
  80 + ceDel,
  81 + } from '../../api/sam.js'
  82 + import wangEditor from "@/components/editor/index"
  83 + import upimg from "@/components/ImageUpload/index"
  84 + import {
  85 + uploadUrl
  86 + } from '@/utils/request'
  87 + export default {
  88 + components: { wangEditor ,upimg},
  89 + props: {
  90 + addressShow: {
  91 + type: Boolean,
  92 + default: false
  93 + },
  94 + },
  95 + data() {
  96 + return {
  97 + formSel:{
  98 + policyName:''
  99 + },
  100 + tableData:[],
  101 + currentPage: 1,
  102 + total: 0,
  103 + flag: false,
  104 + pageSize: 10,
  105 + xinShow:false,
  106 + form:{
  107 + policyName:'',
  108 + },
  109 + index:0
  110 +
  111 + }
  112 + },
  113 +
  114 + created() {
  115 +
  116 +
  117 + },
  118 + mounted() {
  119 +this.getAll()
  120 + },
  121 +
  122 + methods: {
  123 + getAll(){
  124 +
  125 + },
  126 + handleCurrentChange(){
  127 +
  128 + },
  129 + onSubmit(){
  130 +
  131 + },
  132 + resetting(){
  133 +
  134 + },
  135 + closeFn(){
  136 +
  137 + this.xinShow = false
  138 + this.getAll()
  139 + },
  140 + addCheck(){
  141 + this.xinShow = false
  142 +this.getAll()
  143 + },
  144 + addbuss(){
  145 + this.index = 0
  146 + this.xinShow = true
  147 + },
  148 + handleEditForm(){
  149 + this.index =1
  150 + this.xinShow = true
  151 + },
  152 + handleDelete(){
  153 +
  154 + },
  155 + }
  156 + }
  157 +</script>
  158 +<style src="@wangeditor/editor/dist/css/style.css"></style>
  159 +<style scoped>
  160 + /deep/ .first-column-bg {
  161 + background-color: #f4f4f5 !important;
  162 + }
  163 +
  164 + .zhuti {
  165 + padding: 0 20px 20px 20px;
  166 + min-height: calc(100vh - 50px - 20px);
  167 + background-color: #Fff;
  168 +
  169 + }
  170 +
  171 + /deep/ .el-form-item__content {
  172 + line-height: 0;
  173 + }
  174 +
  175 + ::v-deep .xinForm .el-form-item__content {
  176 + line-height: 3;
  177 + }
  178 +
  179 + .tableBtn {
  180 + display: inline-block;
  181 + margin-right: 10px;
  182 + cursor: pointer;
  183 + }
  184 +
  185 +
  186 +
  187 + .greens {
  188 + color: #3F9B6A;
  189 + }
  190 +
  191 +
  192 + .fenye {
  193 + margin-top: 20px;
  194 + display: flex;
  195 + justify-content: flex-end;
  196 + position: relative;
  197 + }
  198 +
  199 + /deep/ .el-pagination.is-background .el-pager li:not(.disabled).active {
  200 + background-color: #3F9B6A;
  201 + }
  202 +
  203 + .el-row {
  204 + margin-bottom: 20px;
  205 + }
  206 +
  207 + :last-child {
  208 + margin-bottom: 0;
  209 + }
  210 +
  211 + .el-col {
  212 + border-radius: 4px;
  213 + }
  214 +
  215 + .bg-purple-dark {
  216 + background: #99a9bf;
  217 + }
  218 +
  219 + .bg-purple {
  220 + /* background: #d3dce6; */
  221 + }
  222 +
  223 + .bg-purple-light {
  224 + background: #e5e9f2;
  225 + }
  226 +
  227 + .grid-content {
  228 + border-radius: 4px;
  229 + min-height: 36px;
  230 + }
  231 +
  232 + .row-bg {
  233 + padding: 10px 0;
  234 + background-color: #f9fafc;
  235 + }
  236 +
  237 + /deep/ .bg-purple[data-v-0e3fe4ec] {
  238 + background: #fff;
  239 + height: 50px;
  240 + }
  241 +
  242 + /deep/ .el-form--label-top .el-form-item__label {
  243 + padding: 0;
  244 + }
  245 +
  246 + .demo-input-suffix {
  247 + display: flex;
  248 + margin-right: 20px;
  249 + width: 83%;
  250 + }
  251 +
  252 + .pagination {
  253 + text-align: right;
  254 + line-height: 20px;
  255 + }
  256 +
  257 +
  258 +
  259 + /deep/ .dialog_css {
  260 + margin-top: 11vh;
  261 + margin-left: 13%;
  262 + padding: 0px;
  263 +
  264 + .el-dialog__title {
  265 + font-size: 12px;
  266 + }
  267 + }
  268 +
  269 + /deep/.el-dialog__body {
  270 + padding: 0px;
  271 + }
  272 +
  273 + /deep/ .el-dialog__header {
  274 + background-color: #fff;
  275 + }
  276 +
  277 + /deep/.el-dialog__title {
  278 + color: #000;
  279 + }
  280 +
  281 + .el-row {
  282 + margin-bottom: 20px;
  283 +
  284 + &:last-child {
  285 + margin-bottom: 0;
  286 + }
  287 + }
  288 +
  289 + /deep/ .avatar-uploader .el-upload {
  290 + border: 1px dashed #d9d9d9;
  291 + border-radius: 6px;
  292 + cursor: pointer;
  293 + position: relative;
  294 + overflow: hidden;
  295 + }
  296 +
  297 + .avatar-uploader .el-upload:hover {
  298 + border-color: #409EFF;
  299 + }
  300 +
  301 + .avatar-uploader-icon {
  302 + font-size: 28px;
  303 + color: #8c939d;
  304 + width: 108px;
  305 + height: 108px;
  306 + line-height: 108px;
  307 + /*text-align: center;*/
  308 + }
  309 +
  310 + .avatar {
  311 + width: 108px;
  312 + height: 108px;
  313 + display: block;
  314 + }
  315 +
  316 + ::v-deep .el-tabs__item.is-active {
  317 + color: #3F9B6A;
  318 + opacity: 1;
  319 + }
  320 +
  321 + /deep/ .el-tabs__nav-wrap::after {
  322 + background-color: #fff;
  323 + }
  324 +
  325 + ::v-deep .el-tabs__item:hover {
  326 + color: #3F9B6A;
  327 + cursor: pointer;
  328 + opacity: 1;
  329 + }
  330 +
  331 + /deep/ .el-tabs__active-bar {
  332 + background-color: #389865;
  333 + }
  334 +
  335 + /deep/ .el-table_2_column_13 {
  336 + font-weight: 100;
  337 + }
  338 +
  339 + ::v-deep .el-input__inner:focus {
  340 + border: #3F9B6A 1px solid;
  341 + }
  342 +
  343 + ::v-deep .el-input__inner:hover {
  344 + border: #3F9B6A 1px solid;
  345 + }
  346 +
  347 + ::v-deep .el-select .el-input.is-focus .el-input__inner {
  348 + border-color: #3F9B6A
  349 + }
  350 +
  351 + /* ::v-deep .el-steps .el-step__head.is-wait {
  352 + background-color: red; /* 修改为你想要的颜色 */
  353 +
  354 + /* 修改未进行步骤的描述文字颜色 */
  355 + ::v-deep .el-steps .el-step__description.is-wait {
  356 + color: #999;
  357 + /* 修改为你想要的颜色 */
  358 + }
  359 +
  360 + /* 修改未进行步骤的图标颜色 */
  361 + ::v-deep .el-steps .el-step__icon.is-text.is-wait {
  362 + color: #999;
  363 + /* 修改为你想要的颜色 */
  364 + }
  365 +
  366 + /* 修改未进行步骤的边框色 */
  367 + ::v-deep .el-steps .el-step__line.is-wait {
  368 + border-color: #eee;
  369 + /* 修改为你想要的颜色 */
  370 + }
  371 +
  372 + ::v-deep .el-steps .is-process .el-step__line {
  373 + background-color: #3F9B6A;
  374 + /* 修改线的颜色 */
  375 + }
  376 +
  377 + ::v-deep .el-steps .is-process .el-step__title {
  378 + color: #fe7b6a;
  379 + /* 修改进行中步骤的标题颜色 */
  380 + }
  381 +
  382 + ::v-deep .el-steps .is-process .el-step__icon {
  383 + color: #fff;
  384 + /* 修改进行中步骤的图标颜色 */
  385 + background: #3F9B6A;
  386 + /* 修改进行中步骤图标的边框颜色 */
  387 + border: 0px;
  388 + }
  389 +
  390 + ::v-deep .el-step__icon-inner {
  391 + line-height: 0
  392 + }
  393 +
  394 + /* 线条长度 */
  395 + ::v-deep .el-step.is-vertical .el-step__line {
  396 + top: 30px;
  397 + height: 60px;
  398 + }
  399 +
  400 +
  401 + ::v-deep .el-date-editor .el-range-separator {
  402 + line-height: 24px;
  403 + }
  404 +
  405 +</style>
  406 +<style lang="scss" scoped>
  407 + ::v-deep .xinFrom{
  408 + padding-top:20px;
  409 + .el-input--mini .el-input__inner{
  410 + height:36px;
  411 + line-height:36px;
  412 + }
  413 + .el-range-editor--mini.el-input__inner{
  414 + height:36px;
  415 + width:100%;
  416 + }
  417 + }
  418 + ::v-deep .buttonHover:hover{
  419 + color:#3f9b6a !important;
  420 + border-color: #c5e1d2 !important;
  421 + background-color: #ecf5f0 !important;
  422 + outline: none;
  423 + }
  424 +::v-deep .el-pagination__total {
  425 + position: absolute;
  426 + left: 10px;
  427 + }
  428 + ::v-deep .formSearch {
  429 + display: flex;
  430 + width: 100%;
  431 + font-size: 14px;
  432 + justify-content: space-between;
  433 + }
  434 + ::v-deep .el-radio-group{
  435 + padding-top:14px;
  436 + }
  437 + ::v-deep .el-radio{
  438 + font-weight:100 !important;
  439 + }
  440 + ::v-deep .bian_css{
  441 + overflow-y:initial !important;
  442 + }
  443 +</style>
yanshouban/src/views/scheme/planningBz.vue
@@ -33,9 +33,19 @@ @@ -33,9 +33,19 @@
33 </el-button> 33 </el-button>
34 </div> 34 </div>
35 </div> 35 </div>
36 - <div style="margin:20px 0;"> 36 + <div style="margin:20px 0;display:flex;">
37 <el-button icon="el-icon-circle-plus-outline" @click="addbuss(1)" 37 <el-button icon="el-icon-circle-plus-outline" @click="addbuss(1)"
38 style="background-color: #3F9B6A;color: #fff;padding:8px 15px;">新增</el-button> 38 style="background-color: #3F9B6A;color: #fff;padding:8px 15px;">新增</el-button>
  39 + <el-upload class="upload-demo" ref="upload"
  40 + :limit="1"
  41 + accept=".xlsx"
  42 + :action="upload"
  43 + :on-success="daoru"
  44 + :file-list="fileData"
  45 + :auto-upload="true"
  46 + :show-file-list="false">
  47 + <el-button style="background-color: #fff;color: #3F9B6A;border: 1px solid #dcdfe6;margin-left:15px;" class="buttonHover">导入</el-button>
  48 + </el-upload>
39 </div> 49 </div>
40 50
41 <!-- 表格 --> 51 <!-- 表格 -->
@@ -312,17 +322,20 @@ @@ -312,17 +322,20 @@
312 addList, 322 addList,
313 updateList, 323 updateList,
314 queryById, 324 queryById,
  325 + excelAdd
315 } from '../../api/planningBz.js' 326 } from '../../api/planningBz.js'
316 import wangEditor from "@/components/editor/index" 327 import wangEditor from "@/components/editor/index"
317 import upimg from "@/components/ImageUpload/index" 328 import upimg from "@/components/ImageUpload/index"
318 import { 329 import {
319 uploadUrl 330 uploadUrl
320 } from '@/utils/request' 331 } from '@/utils/request'
  332 +
321 export default { 333 export default {
322 components: { wangEditor ,upimg}, 334 components: { wangEditor ,upimg},
323 data() { 335 data() {
324 return { 336 return {
325 upload:uploadUrl, 337 upload:uploadUrl,
  338 + fileData:[],
326 formSel: { 339 formSel: {
327 planningName:'', 340 planningName:'',
328 planningType:'', 341 planningType:'',
@@ -450,7 +463,7 @@ this.total = res.data.content.length @@ -450,7 +463,7 @@ this.total = res.data.content.length
450 this.fileList = fileList.slice(-3); 463 this.fileList = fileList.slice(-3);
451 }, 464 },
452 handleSuccess(file,fileList) { 465 handleSuccess(file,fileList) {
453 - console.log(file,fileList) 466 +
454 // const fileUrl = response.data.url; 467 // const fileUrl = response.data.url;
455 const fileMsg = { 468 const fileMsg = {
456 name:fileList.name, 469 name:fileList.name,
@@ -493,7 +506,10 @@ this.total = res.data.content.length @@ -493,7 +506,10 @@ this.total = res.data.content.length
493 this.secondData.annex = JSON.parse(item.annex) 506 this.secondData.annex = JSON.parse(item.annex)
494 507
495 } 508 }
496 - this.fileList.push(this.secondData.annex) 509 + if(this.secondData.annex!="" && this.secondData.annex!=''){
  510 + this.fileList.push(this.secondData.annex)
  511 + }
  512 +
497 // this.secondData.annex = JSON.parse(this.secondData.annex) 513 // this.secondData.annex = JSON.parse(this.secondData.annex)
498 514
499 515
@@ -599,7 +615,7 @@ this.total = res.data.content.length @@ -599,7 +615,7 @@ this.total = res.data.content.length
599 console.log(file); 615 console.log(file);
600 }, 616 },
601 handleRemove(file, fileList) { 617 handleRemove(file, fileList) {
602 - console.log(file, fileList); 618 +
603 this.fileList = [] 619 this.fileList = []
604 }, 620 },
605 //重置按钮 621 //重置按钮
@@ -632,6 +648,14 @@ this.total = res.data.content.length @@ -632,6 +648,14 @@ this.total = res.data.content.length
632 const day = ('0' + date.getDate()).slice(-2); 648 const day = ('0' + date.getDate()).slice(-2);
633 return `${year}-${month}-${day}`; 649 return `${year}-${month}-${day}`;
634 }, 650 },
  651 + daoru(response, file, fileList){
  652 + this.fileData.push(file.raw)
  653 + const formDate = new FormData()
  654 + formDate.append('file', this.fileData[0])
  655 + excelAdd(formDate).then(res => {
  656 + this.getAll()
  657 + })
  658 + },
635 } 659 }
636 } 660 }
637 </script> 661 </script>
yanshouban/src/views/scheme/sam.vue
1 <template> 1 <template>
2 <div style="background-color:#f7f7f7;padding:10px 10px;"> 2 <div style="background-color:#f7f7f7;padding:10px 10px;">
3 - <div class="zhuti"> 3 + <div class="zhuti" v-if="addressShow == false">
4 <div style="height:58px;line-height:58px;"> 4 <div style="height:58px;line-height:58px;">
5 <div style="color:#0006"> <span>招商方案管理</span> <span style="padding:0 5px;">></span> <span 5 <div style="color:#0006"> <span>招商方案管理</span> <span style="padding:0 5px;">></span> <span
6 style="color:#000000e6">策略管理</span></div> 6 style="color:#000000e6">策略管理</span></div>
@@ -54,6 +54,8 @@ @@ -54,6 +54,8 @@
54 <div style="margin:20px 0;"> 54 <div style="margin:20px 0;">
55 <el-button icon="el-icon-circle-plus-outline" @click="addbuss(1)" 55 <el-button icon="el-icon-circle-plus-outline" @click="addbuss(1)"
56 style="background-color: #3F9B6A;color: #fff;padding:8px 15px;">新增</el-button> 56 style="background-color: #3F9B6A;color: #fff;padding:8px 15px;">新增</el-button>
  57 + <el-button @click="addressShow =true"
  58 + style="background-color: #3F9B6A;color: #fff;padding:8px 15px;">商铺位置管理</el-button>
57 </div> 59 </div>
58 60
59 <!-- 表格 --> 61 <!-- 表格 -->
@@ -216,6 +218,7 @@ @@ -216,6 +218,7 @@
216 218
217 </el-dialog> 219 </el-dialog>
218 <samXin :xinShow="ggXin" @childClose='childClose'></samXin> 220 <samXin :xinShow="ggXin" @childClose='childClose'></samXin>
  221 + <addressguan :addressShow="addressShow" @addClose='addClose' v-if="addressShow"></addressguan>
219 </div> 222 </div>
220 </template> 223 </template>
221 224
@@ -229,14 +232,16 @@ @@ -229,14 +232,16 @@
229 import wangEditor from "@/components/editor/index" 232 import wangEditor from "@/components/editor/index"
230 import upimg from "@/components/ImageUpload/index" 233 import upimg from "@/components/ImageUpload/index"
231 import samXin from "./samXin" 234 import samXin from "./samXin"
  235 +import addressguan from "./addressguan"
232 import { 236 import {
233 uploadUrl 237 uploadUrl
234 } from '@/utils/request' 238 } from '@/utils/request'
235 export default { 239 export default {
236 - components: { wangEditor ,upimg,samXin}, 240 + components: { wangEditor ,upimg,samXin,addressguan},
237 data() { 241 data() {
238 return { 242 return {
239 formInline: {}, 243 formInline: {},
  244 + addressShow:false,
240 upload:uploadUrl, 245 upload:uploadUrl,
241 plan_Time:[], 246 plan_Time:[],
242 formSel: { 247 formSel: {
@@ -269,7 +274,8 @@ import samXin from &quot;./samXin&quot; @@ -269,7 +274,8 @@ import samXin from &quot;./samXin&quot;
269 }, 274 },
270 fileList: [], 275 fileList: [],
271 paymentDate:[], 276 paymentDate:[],
272 - leaseDate:[] 277 + leaseDate:[],
  278 + modelData:[]
273 } 279 }
274 }, 280 },
275 281
@@ -409,6 +415,10 @@ this.getAll() @@ -409,6 +415,10 @@ this.getAll()
409 this.xiang = false 415 this.xiang = false
410 this.getAll() 416 this.getAll()
411 }, 417 },
  418 + addClose(msg){
  419 + this.addressShow = msg
  420 + this.getAll()
  421 + },
412 } 422 }
413 } 423 }
414 </script> 424 </script>
yanshouban/src/views/serve/MarkActivity/index.vue
@@ -684,6 +684,10 @@ @@ -684,6 +684,10 @@
684 const res = await Registration(page) 684 const res = await Registration(page)
685 this.mingList = res.data 685 this.mingList = res.data
686 this.baoming = true 686 this.baoming = true
  687 + this.mingList.map(res=>{
  688 + res.userName = this.$decrypt(res.userName)
  689 + res.userPhone = this.$decrypt(res.userPhone)
  690 + })
687 } 691 }
688 692
689 } 693 }
yanshouban/src/views/serve/kefuServe/index.vue
@@ -23,7 +23,7 @@ @@ -23,7 +23,7 @@
23 <div> 23 <div>
24 <!-- 搜索 --> 24 <!-- 搜索 -->
25 <div style="margin-bottom:20px;"> 25 <div style="margin-bottom:20px;">
26 - 修记录 26 + 修记录
27 </div> 27 </div>
28 28
29 <!-- 表格 --> 29 <!-- 表格 -->
@@ -39,7 +39,7 @@ @@ -39,7 +39,7 @@
39 {{scope.$index+1}} 39 {{scope.$index+1}}
40 </template> 40 </template>
41 </el-table-column> 41 </el-table-column>
42 - <el-table-column label="修类型" prop="deviceType" width="auto" min-width="12%" /> 42 + <el-table-column label="修类型" prop="deviceType" width="auto" min-width="12%" />
43 <el-table-column label="问题描述" prop="warrantyIssue" width="auto" min-width="12%" /> 43 <el-table-column label="问题描述" prop="warrantyIssue" width="auto" min-width="12%" />
44 <el-table-column label="设备名称" prop="deviceName" width="auto" min-width="12%" /> 44 <el-table-column label="设备名称" prop="deviceName" width="auto" min-width="12%" />
45 <el-table-column label="备注" prop="memo" width="auto" min-width="12%" /> 45 <el-table-column label="备注" prop="memo" width="auto" min-width="12%" />
yanshouban/src/views/setup/user/index.vue
@@ -326,10 +326,14 @@ export default { @@ -326,10 +326,14 @@ export default {
326 userGetById({ platformUserId: row.platformUserId }).then(res => { 326 userGetById({ platformUserId: row.platformUserId }).then(res => {
327 this.addForm = res.data 327 this.addForm = res.data
328 this.addForm.roleIds = res.data.ids 328 this.addForm.roleIds = res.data.ids
329 - console.log(this.addForm)  
330 - console.log(this.roleList) 329 +this.addForm.username = this.$decrypt(this.addForm.username)
  330 + this.addForm.email = this.$decrypt(this.addForm.email)
  331 + this.addForm.password = this.$decrypt(this.addForm.password)
  332 + this.addForm.phone = this.$decrypt(this.addForm.phone)
331 // this.addForm.roleIds = [1]; 333 // this.addForm.roleIds = [1];
332 }) 334 })
  335 +
  336 +
333 }, 337 },
334 // 删除用户 338 // 删除用户
335 async del (row) { 339 async del (row) {
yanshouban/src/views/shopRental/manage/index.vue
@@ -37,10 +37,19 @@ @@ -37,10 +37,19 @@
37 </el-button> 37 </el-button>
38 </div> 38 </div>
39 </div> 39 </div>
40 - <div style="margin-bottom: 20px;">  
41 - <el-button @click="addbuss(1)" style="background-color: #3F9B6A;color: #fff;padding:8px 15px;" 40 + <div style="margin-bottom: 20px;display:flex;">
  41 + <el-button @click="addbuss(1)" style="background-color: #3F9B6A;color: #fff;padding:8px 15px;margin-right:15px;"
42 icon="el-icon-circle-plus-outline">新增</el-button> 42 icon="el-icon-circle-plus-outline">新增</el-button>
43 - <!-- <el-button @click="" style="background-color: #3F9B6A;color: #fff">批量导入</el-button> --> 43 + <el-upload class="upload-demo" ref="upload"
  44 + :limit="5"
  45 + accept=".xlsx"
  46 + :action="uploadFileUrl"
  47 + :on-success="daoru"
  48 + :file-list="fileData"
  49 + :auto-upload="true"
  50 + :show-file-list="false">
  51 + <el-button style="background-color: #fff;color: #3F9B6A;border: 1px solid #dcdfe6;" class="buttonHover">导入</el-button>
  52 + </el-upload>
44 </div> 53 </div>
45 <!-- 表格 --> 54 <!-- 表格 -->
46 55
@@ -1202,9 +1211,7 @@ @@ -1202,9 +1211,7 @@
1202 async 1211 async
1203 } from 'q' 1212 } from 'q'
1204 import axios from 'axios' 1213 import axios from 'axios'
1205 - import {  
1206 - uploadUrl  
1207 - } from '@/utils/request' 1214 +import { uploadUrl,token } from '@/utils/request'
1208 import { 1215 import {
1209 contractGetAll, 1216 contractGetAll,
1210 contractDel, 1217 contractDel,
@@ -1214,13 +1221,15 @@ @@ -1214,13 +1221,15 @@
1214 cereLeasingByPage, 1221 cereLeasingByPage,
1215 cereLeasingEdit, 1222 cereLeasingEdit,
1216 cereLeasingAdd, 1223 cereLeasingAdd,
1217 - cereLeasingDel 1224 + cereLeasingDel,
  1225 + excelAdd
1218 } from '../../../api/manage.js' 1226 } from '../../../api/manage.js'
1219 export default { 1227 export default {
1220 name: 'manage', 1228 name: 'manage',
1221 data() { 1229 data() {
1222 return { 1230 return {
1223 uploadFileUrl: uploadUrl, // 请求地址 1231 uploadFileUrl: uploadUrl, // 请求地址
  1232 + fileData:[],
1224 hetongBox: false, //合同 1233 hetongBox: false, //合同
1225 detbox: false, //详情 1234 detbox: false, //详情
1226 leixing: true, //切换 1235 leixing: true, //切换
@@ -1257,6 +1266,7 @@ @@ -1257,6 +1266,7 @@
1257 promotionVideo: '', 1266 promotionVideo: '',
1258 promotionImage: '', 1267 promotionImage: '',
1259 notes: '', 1268 notes: '',
  1269 + rentalCondition:0,
1260 }, //租赁信息字段 1270 }, //租赁信息字段
1261 tableData: [{ 1271 tableData: [{
1262 id:1, 1272 id:1,
@@ -1383,6 +1393,7 @@ biangengPan:false, @@ -1383,6 +1393,7 @@ biangengPan:false,
1383 this.chengeTatle = val 1393 this.chengeTatle = val
1384 }, 1394 },
1385 async getAll(val) { 1395 async getAll(val) {
  1396 + console.log(this.pageindex)
1386 const res = await cereLeasingByPage(this.pageindex) 1397 const res = await cereLeasingByPage(this.pageindex)
1387 this.tableData = res.data.content 1398 this.tableData = res.data.content
1388 this.total = res.data.content.length 1399 this.total = res.data.content.length
@@ -1521,6 +1532,7 @@ biangengPan:false, @@ -1521,6 +1532,7 @@ biangengPan:false,
1521 promotionVideo: '', 1532 promotionVideo: '',
1522 promotionImage: '', 1533 promotionImage: '',
1523 notes: '', 1534 notes: '',
  1535 + rentalCondition:0,
1524 }//租赁信息字段 1536 }//租赁信息字段
1525 this.heForm={ 1537 this.heForm={
1526 contractNumber: '', //合同对应的ID 1538 contractNumber: '', //合同对应的ID
@@ -1718,6 +1730,14 @@ this.ggXin = true @@ -1718,6 +1730,14 @@ this.ggXin = true
1718 bianDel(index){ 1730 bianDel(index){
1719 this.biangengTab.splice(index, 1); 1731 this.biangengTab.splice(index, 1);
1720 }, 1732 },
  1733 + daoru(response, file, fileList){
  1734 + this.fileData.push(file.raw)
  1735 + const formDate = new FormData()
  1736 + formDate.append('file', this.fileData[0])
  1737 + excelAdd(formDate).then(res => {
  1738 + this.getAll()
  1739 + })
  1740 + },
1721 } 1741 }
1722 } 1742 }
1723 </script> 1743 </script>
yanshouban/src/views/shopRental/renewalMan/index.vue
@@ -39,6 +39,7 @@ @@ -39,6 +39,7 @@
39 <div> 39 <div>
40 <el-button 40 <el-button
41 style="background-color: #3F9B6A;color: #fff;padding:8px 15px;" @click="daochu">导出</el-button> 41 style="background-color: #3F9B6A;color: #fff;padding:8px 15px;" @click="daochu">导出</el-button>
  42 + <el-button @click="dayin" style="background-color: #3F9B6A;color: #fff">打印</el-button>
42 </div> 43 </div>
43 44
44 </div> 45 </div>
@@ -793,7 +794,7 @@ @@ -793,7 +794,7 @@
793 794
794 <div style="justify-content:flex-end;margin:20px 20px 0 0;display:flex;"> 795 <div style="justify-content:flex-end;margin:20px 20px 0 0;display:flex;">
795 <el-button @click="downloadPdf" style="background-color: #3F9B6A;color: #fff">下载</el-button> 796 <el-button @click="downloadPdf" style="background-color: #3F9B6A;color: #fff">下载</el-button>
796 - <!-- <el-button style="background-color: #3F9B6A;color: #fff">打印</el-button> --> 797 +
797 <!-- <el-button style="background-color: #3F9B6A;color: #fff">发送</el-button> --> 798 <!-- <el-button style="background-color: #3F9B6A;color: #fff">发送</el-button> -->
798 799
799 </div> 800 </div>
@@ -817,7 +818,8 @@ @@ -817,7 +818,8 @@
817 updateList, 818 updateList,
818 queryById, 819 queryById,
819 cereLeasingById, 820 cereLeasingById,
820 - cereLeasingEdit 821 + cereLeasingEdit,
  822 + pdfLeaseRenewalManagement
821 } from '../../../api/manage.js' 823 } from '../../../api/manage.js'
822 import { 824 import {
823 rentalGetAll, 825 rentalGetAll,
@@ -874,7 +876,7 @@ @@ -874,7 +876,7 @@
874 }, 876 },
875 pageNumber: 1, 877 pageNumber: 1,
876 pageSize: 10, 878 pageSize: 10,
877 - 879 + rentalCondition:3
878 }, 880 },
879 xiangData:{}, 881 xiangData:{},
880 heData:{}, 882 heData:{},
@@ -890,6 +892,7 @@ @@ -890,6 +892,7 @@
890 pageindex: { 892 pageindex: {
891 pageNumber: 1, 893 pageNumber: 1,
892 pageSize: 10, 894 pageSize: 10,
  895 + rentalCondition:3
893 }, 896 },
894 bianjiBox:1, 897 bianjiBox:1,
895 chengeTatle:1, 898 chengeTatle:1,
@@ -932,6 +935,30 @@ @@ -932,6 +935,30 @@
932 935
933 }, 936 },
934 methods: { 937 methods: {
  938 + async dayin(){
  939 + let res = await pdfLeaseRenewalManagement(this.pageindex)
  940 + if(!res){
  941 + return
  942 + }
  943 + const blob = new Blob([res], { type: 'application/pdf' })
  944 + const fileName = '续租管理.pdf'
  945 + if ('download' in document.createElement('a')) {
  946 + // 非IE下载
  947 + const elink = document.createElement('a')
  948 + elink.download = fileName
  949 + elink.style.display = 'none'
  950 + elink.href = URL.createObjectURL(blob)
  951 + document.body.appendChild(elink)
  952 + elink.click()
  953 + URL.revokeObjectURL(elink.href) // 释放URL 对象
  954 + document.body.removeChild(elink)
  955 + } else {
  956 + // IE10+下载
  957 + navigator.msSaveBlob(blob, fileName)
  958 + }
  959 +
  960 +
  961 + },
935 chenge(val){ 962 chenge(val){
936 this.formSel={ 963 this.formSel={
937 affiliation: '', 964 affiliation: '',
@@ -1057,7 +1084,7 @@ @@ -1057,7 +1084,7 @@
1057 }, 1084 },
1058 pageNumber: 1, 1085 pageNumber: 1,
1059 pageSize: 10, 1086 pageSize: 10,
1060 - 1087 + rentalCondition:3
1061 } 1088 }
1062 this.leaseStartDate = [] 1089 this.leaseStartDate = []
1063 this.getAll() 1090 this.getAll()
yanshouban/src/views/shopRental/rentTermination/index.vue
@@ -41,6 +41,8 @@ @@ -41,6 +41,8 @@
41 </el-button> 41 </el-button>
42 <el-button @click="daochu" style="background-color: #3F9B6A;color: #fff">导出 42 <el-button @click="daochu" style="background-color: #3F9B6A;color: #fff">导出
43 </el-button> 43 </el-button>
  44 + <el-button @click="dayin" style="background-color: #3F9B6A;color: #fff">打印</el-button>
  45 +
44 </div> 46 </div>
45 <!-- 表格 --> 47 <!-- 表格 -->
46 48
@@ -640,8 +642,7 @@ @@ -640,8 +642,7 @@
640 </div> 642 </div>
641 <div style="justify-content:flex-end;margin:20px 20px 0 0;display:flex;"> 643 <div style="justify-content:flex-end;margin:20px 20px 0 0;display:flex;">
642 <el-button @click="downloadPdf" style="background-color: #3F9B6A;color: #fff">下载</el-button> 644 <el-button @click="downloadPdf" style="background-color: #3F9B6A;color: #fff">下载</el-button>
643 - <!-- <el-button style="background-color: #3F9B6A;color: #fff">打印</el-button>  
644 - <el-button style="background-color: #3F9B6A;color: #fff">发送</el-button> --> 645 +
645 646
646 </div> 647 </div>
647 </div> 648 </div>
@@ -662,7 +663,7 @@ @@ -662,7 +663,7 @@
662 contractDel, 663 contractDel,
663 updateList, 664 updateList,
664 queryById, 665 queryById,
665 - 666 + pdfManagementOfFinalAccountsForRentals,
666 cereLeasingEdit 667 cereLeasingEdit
667 } from '../../../api/manage.js' 668 } from '../../../api/manage.js'
668 import { 669 import {
@@ -729,11 +730,12 @@ @@ -729,11 +730,12 @@
729 }, 730 },
730 pageNumber: 1, 731 pageNumber: 1,
731 pageSize: 10, 732 pageSize: 10,
732 - 733 + rentalCondition:2
733 }, 734 },
734 pageindex: { 735 pageindex: {
735 pageNumber: 1, 736 pageNumber: 1,
736 pageSize: 10, 737 pageSize: 10,
  738 + rentalCondition:2
737 }, 739 },
738 bianjiBox: 1, 740 bianjiBox: 1,
739 chengeTatle: 1, 741 chengeTatle: 1,
@@ -794,7 +796,30 @@ @@ -794,7 +796,30 @@
794 this.total = res.data.numberOfElements 796 this.total = res.data.numberOfElements
795 this.tableData = res.data.content 797 this.tableData = res.data.content
796 }, 798 },
  799 + async dayin(){
  800 + let res = await pdfManagementOfFinalAccountsForRentals(this.pageindex)
  801 + if(!res){
  802 + return
  803 + }
  804 + const blob = new Blob([res], { type: 'application/pdf' })
  805 + const fileName = '退租决算管理.pdf'
  806 + if ('download' in document.createElement('a')) {
  807 + // 非IE下载
  808 + const elink = document.createElement('a')
  809 + elink.download = fileName
  810 + elink.style.display = 'none'
  811 + elink.href = URL.createObjectURL(blob)
  812 + document.body.appendChild(elink)
  813 + elink.click()
  814 + URL.revokeObjectURL(elink.href) // 释放URL 对象
  815 + document.body.removeChild(elink)
  816 + } else {
  817 + // IE10+下载
  818 + navigator.msSaveBlob(blob, fileName)
  819 + }
797 820
  821 +
  822 + },
798 // 退租确定按钮 823 // 退租确定按钮
799 addCheck(val) { 824 addCheck(val) {
800 this.ggXin = false 825 this.ggXin = false
@@ -924,7 +949,7 @@ @@ -924,7 +949,7 @@
924 }, 949 },
925 pageNumber: 1, 950 pageNumber: 1,
926 pageSize: 10, 951 pageSize: 10,
927 - 952 + rentalCondition:2
928 } 953 }
929 this.leaseStartDate = [] 954 this.leaseStartDate = []
930 this.getAll() 955 this.getAll()
yanshouban/src/views/shopRental/rentalMan/index.vue
@@ -39,6 +39,7 @@ @@ -39,6 +39,7 @@
39 style="background-color: #3F9B6A;color: #fff;padding:8px 15px;">批量导出</el-button> --> 39 style="background-color: #3F9B6A;color: #fff;padding:8px 15px;">批量导出</el-button> -->
40 <el-button 40 <el-button
41 style="background-color: #3F9B6A;color: #fff;padding:8px 15px;" @click="daochu">导出</el-button> 41 style="background-color: #3F9B6A;color: #fff;padding:8px 15px;" @click="daochu">导出</el-button>
  42 + <el-button @click="dayin" style="background-color: #3F9B6A;color: #fff">打印</el-button>
42 </div> 43 </div>
43 </div> 44 </div>
44 <!-- 表格 --> 45 <!-- 表格 -->
@@ -965,7 +966,7 @@ @@ -965,7 +966,7 @@
965 966
966 <div style="justify-content:flex-end;margin:20px 20px 0 0;display:flex;"> 967 <div style="justify-content:flex-end;margin:20px 20px 0 0;display:flex;">
967 <el-button @click="downloadPdf" style="background-color: #3F9B6A;color: #fff">下载</el-button> 968 <el-button @click="downloadPdf" style="background-color: #3F9B6A;color: #fff">下载</el-button>
968 - <!-- <el-button style="background-color: #3F9B6A;color: #fff">打印</el-button> --> 969 +
969 <!-- <el-button style="background-color: #3F9B6A;color: #fff">发送</el-button> --> 970 <!-- <el-button style="background-color: #3F9B6A;color: #fff">发送</el-button> -->
970 971
971 </div> 972 </div>
@@ -987,10 +988,10 @@ @@ -987,10 +988,10 @@
987 rentalGetAll, 988 rentalGetAll,
988 rentalDel, 989 rentalDel,
989 rentalAdd, 990 rentalAdd,
990 - excelRentOutQueryByPage 991 + excelRentOutQueryByPage,
  992 + pdfRentOutQueryByPage
991 } from '../../../api/rentalMan.js' 993 } from '../../../api/rentalMan.js'
992 import { 994 import {
993 - businessListGetAll,  
994 businessListSave, 995 businessListSave,
995 businessListGetById, 996 businessListGetById,
996 businessListUpdate, 997 businessListUpdate,
@@ -1049,10 +1050,12 @@ import { @@ -1049,10 +1050,12 @@ import {
1049 }, 1050 },
1050 pageNumber: 1, 1051 pageNumber: 1,
1051 pageSize: 10, 1052 pageSize: 10,
  1053 + rentalCondition:1
1052 }, 1054 },
1053 pageindex: { 1055 pageindex: {
1054 pageNumber: 1, 1056 pageNumber: 1,
1055 pageSize: 10, 1057 pageSize: 10,
  1058 + rentalCondition:1
1056 }, 1059 },
1057 zhong:{ 1060 zhong:{
1058 intentionalRent:'', 1061 intentionalRent:'',
@@ -1103,6 +1106,7 @@ import { @@ -1103,6 +1106,7 @@ import {
1103 }, 1106 },
1104 pageNumber: 1, 1107 pageNumber: 1,
1105 pageSize: 10, 1108 pageSize: 10,
  1109 + rentalCondition:1
1106 } 1110 }
1107 this.leixing = !this.leixing 1111 this.leixing = !this.leixing
1108 1112
@@ -1203,6 +1207,7 @@ import { @@ -1203,6 +1207,7 @@ import {
1203 }, 1207 },
1204 pageNumber: 1, 1208 pageNumber: 1,
1205 pageSize: 10, 1209 pageSize: 10,
  1210 + rentalCondition:1
1206 }, 1211 },
1207 this.leaseStartDate = [] 1212 this.leaseStartDate = []
1208 this.getAll() 1213 this.getAll()
@@ -1227,7 +1232,7 @@ import { @@ -1227,7 +1232,7 @@ import {
1227 pdf.addImage(imgData, 'PNG', 10, 10, imgWidth, imgHeight); // 10, 10 是图像在 PDF 中的位置(mm) 1232 pdf.addImage(imgData, 'PNG', 10, 10, imgWidth, imgHeight); // 10, 10 是图像在 PDF 中的位置(mm)
1228 1233
1229 // 保存 PDF 文件 1234 // 保存 PDF 文件
1230 - pdf.save('downloaded.pdf'); 1235 + pdf.save('入住单.pdf');
1231 }, 1236 },
1232 // 出租单查看 1237 // 出租单查看
1233 outlook(item){ 1238 outlook(item){
@@ -1236,7 +1241,6 @@ import { @@ -1236,7 +1241,6 @@ import {
1236 this.outdan = true 1241 this.outdan = true
1237 }, 1242 },
1238 delList(){ 1243 delList(){
1239 -  
1240 const h = this.$createElement; 1244 const h = this.$createElement;
1241 this.$msgbox({ 1245 this.$msgbox({
1242 title: '消息', 1246 title: '消息',
@@ -1286,6 +1290,30 @@ import { @@ -1286,6 +1290,30 @@ import {
1286 }) 1290 })
1287 1291
1288 }, 1292 },
  1293 + async dayin(){
  1294 + let res = await pdfRentOutQueryByPage(this.pageindex)
  1295 + if(!res){
  1296 + return
  1297 + }
  1298 + const blob = new Blob([res], { type: 'application/pdf' })
  1299 + const fileName = '出租管理.pdf'
  1300 + if ('download' in document.createElement('a')) {
  1301 + // 非IE下载
  1302 + const elink = document.createElement('a')
  1303 + elink.download = fileName
  1304 + elink.style.display = 'none'
  1305 + elink.href = URL.createObjectURL(blob)
  1306 + document.body.appendChild(elink)
  1307 + elink.click()
  1308 + URL.revokeObjectURL(elink.href) // 释放URL 对象
  1309 + document.body.removeChild(elink)
  1310 + } else {
  1311 + // IE10+下载
  1312 + navigator.msSaveBlob(blob, fileName)
  1313 + }
  1314 +
  1315 + },
  1316 +
1289 } 1317 }
1290 } 1318 }
1291 </script> 1319 </script>
yanshouban/src/views/shopRental/warning/index.vue
@@ -115,27 +115,18 @@ @@ -115,27 +115,18 @@
115 <div > 115 <div >
116 <div style="margin-bottom: 20px;"> 116 <div style="margin-bottom: 20px;">
117 <el-form ref="form" :model="zhong" label-width="80px"> 117 <el-form ref="form" :model="zhong" label-width="80px">
118 - <el-form-item label="甲方"> 118 + <el-form-item label="甲方" v-if="index != 2">
119 <el-input v-model="zhong.lessorName" disabled></el-input> 119 <el-input v-model="zhong.lessorName" disabled></el-input>
120 </el-form-item> 120 </el-form-item>
121 - <el-form-item label="乙方"> 121 + <el-form-item label="乙方" v-if="index != 2">
122 <el-input v-model="zhong.tenantName" disabled></el-input> 122 <el-input v-model="zhong.tenantName" disabled></el-input>
123 </el-form-item> 123 </el-form-item>
124 - <el-form-item label="合同编号"> 124 + <el-form-item label="合同编号" v-if="index != 2">
125 <el-input v-model="zhong.contractNumber" disabled></el-input> 125 <el-input v-model="zhong.contractNumber" disabled></el-input>
126 </el-form-item> 126 </el-form-item>
127 - <el-form-item label="起止时间"> 127 + <el-form-item label="起止时间" v-if="index != 2">
128 <el-input v-model="zhong.leaseStartDate" disabled></el-input> 128 <el-input v-model="zhong.leaseStartDate" disabled></el-input>
129 </el-form-item> 129 </el-form-item>
130 - <el-form-item label="月租金" v-if="index ==2">  
131 - <el-input v-model="zhong.contractAmount" disabled ></el-input>  
132 - </el-form-item>  
133 - <el-form-item label="缴费日期" v-if="index ==2">  
134 - <el-input v-model="zhong.contractAmount" disabled ></el-input>  
135 - </el-form-item>  
136 - <el-form-item label="逾期" v-if="index ==2">  
137 - <el-input v-model="zhong.name" disabled ></el-input>  
138 - </el-form-item>  
139 <el-form-item label="申请人" v-if="index !=2"> 130 <el-form-item label="申请人" v-if="index !=2">
140 <el-input v-model="zhong.application" ></el-input> 131 <el-input v-model="zhong.application" ></el-input>
141 </el-form-item> 132 </el-form-item>
@@ -728,6 +719,9 @@ @@ -728,6 +719,9 @@
728 cereLeasingByPage, 719 cereLeasingByPage,
729 daoqi 720 daoqi
730 } from '../../../api/manage.js' 721 } from '../../../api/manage.js'
  722 + import {
  723 + ManaAdd
  724 + } from '../../../api/PerWorkstation.js'
731 export default { 725 export default {
732 data() { 726 data() {
733 return { 727 return {
@@ -827,9 +821,36 @@ @@ -827,9 +821,36 @@
827 }, 821 },
828 // 新增确定按钮 822 // 新增确定按钮
829 async addCheck(val) { 823 async addCheck(val) {
830 - this.ggXin = false  
831 824
  825 + if(this.index == 2){
  826 + let pageMsg = {
  827 + content:this.zhong.reasonApplication,
  828 + createdAt:this.nowTime(),
  829 + postType:'立即发布',
  830 + receiverMerchant:'电商商家',
  831 + status:'1',
  832 + title:'到期提醒'
  833 + }
  834 + await ManaAdd(pageMsg)
  835 + this.$message({
  836 + message: '发送成功',
  837 + type: 'success'
  838 + })
  839 + }
  840 + this.ggXin = false
832 }, 841 },
  842 +
  843 + nowTime(){
  844 + const now = new Date();
  845 + const year = now.getFullYear();
  846 + const month = (now.getMonth() + 1).toString().padStart(2, '0');
  847 + const day = now.getDate().toString().padStart(2, '0');
  848 + const hours = now.getHours().toString().padStart(2, '0');
  849 + const minutes = now.getMinutes().toString().padStart(2, '0');
  850 + const seconds = now.getSeconds().toString().padStart(2, '0');
  851 +
  852 + return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
  853 + },
833 // 获取时间 854 // 获取时间
834 currentTime(){ 855 currentTime(){
835 let date = new Date(); 856 let date = new Date();
yanshouban/src/views/stockControl/inventory/index.vue
1 <!-- --> 1 <!-- -->
2 <template> 2 <template>
3 - <div> 3 + <div style="background-color:#f7f7f7;padding:10px 10px;">
4 <div class="pending"> 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 <div class="formSearch"> 9 <div class="formSearch">
7 <el-form :inline="true" :model="formInline" class="demo-form-inline"> 10 <el-form :inline="true" :model="formInline" class="demo-form-inline">
@@ -37,9 +40,10 @@ @@ -37,9 +40,10 @@
37 /> 40 />
38 </el-form-item> 41 </el-form-item>
39 <el-form-item> 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 <!-- <span 47 <!-- <span
44 v-for="(item, index) in btnList" 48 v-for="(item, index) in btnList"
45 :key="index" 49 :key="index"
@@ -58,8 +62,7 @@ @@ -58,8 +62,7 @@
58 ref="multipleTable" 62 ref="multipleTable"
59 v-loading="loading" 63 v-loading="loading"
60 :data="tableData" 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 tooltip-effect="dark" 66 tooltip-effect="dark"
64 style="width: 100%" 67 style="width: 100%"
65 > 68 >
@@ -116,7 +119,32 @@ @@ -116,7 +119,32 @@
116 </el-table-column> 119 </el-table-column>
117 <el-table-column label="操作" width="200"> 120 <el-table-column label="操作" width="200">
118 <template slot-scope="scope"> 121 <template slot-scope="scope">
119 - <div class="btnList"> 122 + <div class="tableBtn greens"
  123 + v-if="scope.row.shelveState == 1"
  124 + slot="reference"
  125 + style="margin-right: 10px"
  126 + type="text"
  127 + @click="OutForced(scope.row)" >
  128 + 强制下架
  129 + </div>
  130 + <div class="tableBtn greens"
  131 + v-if="scope.row.shelveState == 1"
  132 + type="text"
  133 + @click="setFictitious(scope.row)">
  134 + 虚拟销量
  135 + </div>
  136 + <div class="tableBtn greens"
  137 + v-if="scope.row.shelveState == 2"
  138 + type="text"
  139 + @click="examineShow(scope.row)" >
  140 + 审核
  141 + </div>
  142 + <div class="tableBtn greens"
  143 + type="text"
  144 + @click="Godetails(scope.row)" >
  145 + 查看详情
  146 + </div>
  147 + <!-- <div class="btnList">
120 <el-button 148 <el-button
121 v-if="scope.row.shelveState == 1" 149 v-if="scope.row.shelveState == 1"
122 slot="reference" 150 slot="reference"
@@ -138,7 +166,7 @@ @@ -138,7 +166,7 @@
138 type="text" 166 type="text"
139 @click="Godetails(scope.row)" 167 @click="Godetails(scope.row)"
140 >查看详情</el-button> 168 >查看详情</el-button>
141 - </div> 169 + </div> -->
142 </template> 170 </template>
143 </el-table-column> 171 </el-table-column>
144 </el-table> 172 </el-table>
@@ -177,8 +205,9 @@ @@ -177,8 +205,9 @@
177 </el-form-item> 205 </el-form-item>
178 </el-form> 206 </el-form>
179 <span slot="footer" class="dialog-footer"> 207 <span slot="footer" class="dialog-footer">
180 - <el-button @click="examineVisible = false">取 消</el-button>  
181 - <el-button type="primary" @click="submintUs">确 定</el-button> 208 + <el-button class="buttonHover"
  209 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;" @click="examineVisible = false">取 消</el-button>
  210 + <el-button style="background-color: #3F9B6A;color: #fff" @click="submintUs">确 定</el-button>
182 </span> 211 </span>
183 </el-dialog> 212 </el-dialog>
184 <!-- 设置虚拟销量 --> 213 <!-- 设置虚拟销量 -->
@@ -199,8 +228,9 @@ @@ -199,8 +228,9 @@
199 </el-form-item> 228 </el-form-item>
200 </el-form> 229 </el-form>
201 <span slot="footer" class="dialog-footer"> 230 <span slot="footer" class="dialog-footer">
202 - <el-button @click="FictitiousVisible = false">取 消</el-button>  
203 - <el-button type="primary" @click="FicSubmintUs">确 定</el-button> 231 + <el-button class="buttonHover"
  232 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;" @click="FictitiousVisible = false">取 消</el-button>
  233 + <el-button style="background-color: #3F9B6A;color: #fff" @click="FicSubmintUs">确 定</el-button>
204 </span> 234 </span>
205 </el-dialog> 235 </el-dialog>
206 <add-commodity ref="addCommodity" :examine-show="examineShow" @reset="reset" /> 236 <add-commodity ref="addCommodity" :examine-show="examineShow" @reset="reset" />
@@ -402,7 +432,9 @@ export default { @@ -402,7 +432,9 @@ export default {
402 //@import url(); 引入公共css类 432 //@import url(); 引入公共css类
403 @import url("../../../styles/elDialog.scss"); 433 @import url("../../../styles/elDialog.scss");
404 .pending { 434 .pending {
405 - padding: 30px; 435 + padding: 0 20px 20px 20px;
  436 + min-height: calc(100vh - 50px - 20px);
  437 + background-color: #Fff;
406 } 438 }
407 .fenye { 439 .fenye {
408 margin-top: 20px; 440 margin-top: 20px;
@@ -445,4 +477,18 @@ export default { @@ -445,4 +477,18 @@ export default {
445 } 477 }
446 } 478 }
447 } 479 }
  480 + .tableBtn {
  481 + display: inline-block;
  482 + margin-right: 10px;
  483 + }
  484 +
  485 + .greens {
  486 + color: #3F9B6A ;
  487 + }
  488 + ::v-deep .buttonHover:hover{
  489 + color:#3f9b6a !important;
  490 + border-color: #c5e1d2 !important;
  491 + background-color: #ecf5f0 !important;
  492 + outline: none;
  493 + }
448 </style> 494 </style>
yanshouban/src/views/stockControl/stocksForewarn/index.vue
@@ -19,17 +19,24 @@ @@ -19,17 +19,24 @@
19 <div :class="fut?'formSearch':'collapsed'" ref="formSearch"> 19 <div :class="fut?'formSearch':'collapsed'" ref="formSearch">
20 <el-form :inline="true" :model="formSel" label-width="auto"> 20 <el-form :inline="true" :model="formSel" label-width="auto">
21 <el-form-item label="商品名称"> 21 <el-form-item label="商品名称">
22 - <el-input v-model="formSel.shopname" placeholder="请输入方案编号" size="mini" style="width: 178px;margin-right: 5px;"/> 22 + <el-input v-model="formSel.productName" placeholder="请输入方案编号" size="mini" style="width: 178px;margin-right: 5px;"/>
23 </el-form-item> 23 </el-form-item>
24 - <el-form-item label="入库人"> 24 + <!-- <el-form-item label="入库人">
25 <el-input v-model="formSel.rkr" placeholder="请输入方案编号" size="mini" style="width: 178px;margin-right: 5px;"/> 25 <el-input v-model="formSel.rkr" placeholder="请输入方案编号" size="mini" style="width: 178px;margin-right: 5px;"/>
26 - </el-form-item> 26 + </el-form-item> -->
27 <el-form-item label="上架时间"> 27 <el-form-item label="上架时间">
28 - <el-input v-model="formSel.stime" placeholder="请输入方案编号" size="mini" style="width: 178px;margin-right: 5px;"/> 28 + <el-date-picker
  29 + v-model="formSel.createTime"
  30 + type="datetime"
  31 + value-format="yyyy-MM-dd HH:mm:ss"
  32 + prefix-icon="none"
  33 + style="width: 178px;margin-right: 5px;"
  34 + placeholder="选择日期时间">
  35 + </el-date-picker>
29 </el-form-item> 36 </el-form-item>
30 - <el-form-item label="入库时间"> 37 + <!-- <el-form-item label="入库时间">
31 <el-input v-model="formSel.rtime" placeholder="请输入方案编号" size="mini" style="width: 178px;margin-right: 5px;"/> 38 <el-input v-model="formSel.rtime" placeholder="请输入方案编号" size="mini" style="width: 178px;margin-right: 5px;"/>
32 - </el-form-item> 39 + </el-form-item> -->
33 </el-form> 40 </el-form>
34 </div> 41 </div>
35 </div> 42 </div>
@@ -161,10 +168,10 @@ export default { @@ -161,10 +168,10 @@ export default {
161 anNum:'', 168 anNum:'',
162 }, 169 },
163 formSel:{ 170 formSel:{
164 - shopname:'',  
165 - rkr:'',  
166 - sTime:'',  
167 - rTime:'' 171 + productName:'',
  172 + createTime:'',
  173 + page: 1,
  174 + pageSize: 10
168 }, 175 },
169 formInline: { 176 formInline: {
170 searchType: '1', 177 searchType: '1',
@@ -202,7 +209,28 @@ export default { @@ -202,7 +209,28 @@ export default {
202 }, 209 },
203 // 查询 210 // 查询
204 search () { 211 search () {
205 - 212 + this.total = 1;
  213 + this.formSel.page = 1;
  214 + this.getAll(this.formSel);
  215 + },
  216 + resetting(){
  217 + this.formSel = {
  218 + productName:'',
  219 + createTime:'',
  220 + page: 1,
  221 + pageSize: 10
  222 + }
  223 + this.formInline = {
  224 + searchType: '1',
  225 + search: '', // 搜索字段
  226 + state: '',
  227 + // afterState: '', // 售后状态 0-无售后 1-售后中 2-售后成功 3-售后关闭
  228 + dates: [], // 下单时间数组
  229 + page: 1,
  230 + shopName: '',
  231 + pageSize: 10
  232 + }
  233 + this.getAll(this.formInline)
206 }, 234 },
207 async kucunSet(){ 235 async kucunSet(){
208 const yuzhi={ 236 const yuzhi={
yanshouban/vue.config.js
@@ -67,7 +67,7 @@ module.exports = { @@ -67,7 +67,7 @@ module.exports = {
67 // changeOrigin: true, 67 // changeOrigin: true,
68 // }, 68 // },
69 '/meserver/admin-server/':{ 69 '/meserver/admin-server/':{
70 - target: 'https://jy.scjysm.asia:18086/meserver/admin-server/', // 测试 70 + target: 'https://jy.scjysm.asia:18086/admin-server/', // 测试
71 // target: 'http://172.16.61.123:8080/meserver/admin-server/', // 测试 71 // target: 'http://172.16.61.123:8080/meserver/admin-server/', // 测试
72 // https://jy.scjysm.asia:18086/admin-server http://172.16.61.123:8080/meserver/admin-server/ https://wjdc.scjysm.asia1443/cdwlMall/admin-server 72 // https://jy.scjysm.asia:18086/admin-server http://172.16.61.123:8080/meserver/admin-server/ https://wjdc.scjysm.asia1443/cdwlMall/admin-server
73 // target: 'http://localhost:9003/', // 平台端 73 // target: 'http://localhost:9003/', // 平台端