Commit cc312afb2e2bddd7eed46cb9666089b4318a177c

Authored by 杨鑫
1 parent 4f415990

'最新'

admin-web-master/src/api/inr.js
... ... @@ -28,3 +28,12 @@ export function tanDel(data) {
28 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 626 await tanDel({id:item.id})
627 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 635 </script>
... ...
wenjuan/.env.development
... ... @@ -3,12 +3,12 @@ ENV = &#39;development&#39;
3 3  
4 4 # base api
5 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 8 # VUE_APP_DOMAIN_PREFIX_1='https://h5.028wlkj.com/cdwlMall/meserver/admin-server/'
9 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 14 # VUE_APP_DOMAIN_PREFIX = '/api'
... ...
yanshouban/src/api/activityBz.js
... ... @@ -205,3 +205,35 @@ export function copy(data) {
205 205 data
206 206 })
207 207 }
  208 +
  209 +
  210 +// 审核流程导出
  211 +export function excelQueryByPage(data) {
  212 + return request({
  213 + url: '/cereEventDetails/excelQueryByPage',
  214 + method: 'post',
  215 + data,
  216 + responseType: 'blob'
  217 + })
  218 +}
  219 +
  220 +// 导入
  221 +export function excelAdd(data) {
  222 + return request({
  223 + url: '/cereEventDetails/excelAdd',
  224 + method: 'post',
  225 + data,
  226 + headers: {
  227 + 'Content-type': 'multipart/form-data'
  228 + }
  229 + })
  230 +}
  231 +
  232 +// 效果评估
  233 +export function effectEvaluation(data) {
  234 + return request({
  235 + url: `/cereEventDetails/effectEvaluation/${data.id}`,
  236 + method: 'get',
  237 + data
  238 + })
  239 +}
... ...
yanshouban/src/api/business.js
... ... @@ -145,3 +145,16 @@ export function wordDelete(data) {
145 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/inr.js
... ... @@ -28,3 +28,12 @@ export function tanDel(data) {
28 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
... ... @@ -105,3 +105,16 @@ export function pdfLeaseRenewalManagement(data) {
105 105 responseType: 'blob'
106 106 })
107 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 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/views/activity/activitySp.vue
... ... @@ -57,7 +57,7 @@
57 57 {{scope.row.state == ''?'待提交':scope.row.state == '1'?'待审批':scope.row.state == '2'?'部门领导审批':scope.row.state == '3'?'公司领导审批':scope.row.state == '4'?'其他审批':scope.row.state == '5'?'审核通过':'已驳回'}}
58 58 </template>
59 59 </el-table-column>
60   - <el-table-column label="修改时间" prop="createDate" min-width="250" >
  60 + <el-table-column label="创建时间" prop="createDate" min-width="250" >
61 61 </el-table-column>
62 62 <el-table-column prop="createUser" label="上传人员" min-width="80">
63 63  
... ...
yanshouban/src/views/activity/index.vue
... ... @@ -22,14 +22,24 @@
22 22 </div>
23 23 </div>
24 24 <div style="margin: 20px 0;">
25   - <div>
  25 + <div style="display:flex;">
26 26 <el-button icon="el-icon-circle-plus-outline" @click="create"
27 27 style="background-color: #3F9B6A;color: #fff;padding:8px 15px;">新增</el-button>
28 28 <el-button style="background-color: #E24E5A;color: #fff;" icon="el-icon-delete"
29 29 @click="handleDelete" class="DelBtnHover">删除</el-button>
30 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 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 43 <!-- <el-button style="background-color: #fff;color: #000;border: 1px solid #B1B1B1;"
34 44 icon="el-icon-folder-add" class="buttonHover" @click="xinFenlei">活动分类管理</el-button> -->
35 45 </div>
... ... @@ -54,7 +64,7 @@
54 64 <div class="custom-tree-node" slot-scope="{ node, data }">
55 65 <span>{{ node.label }}</span>
56 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 68 <i class="el-icon-delete-solid" @click="() => fenDelete(node, data)"></i>
59 69 </span>
60 70 </div>
... ... @@ -84,7 +94,7 @@
84 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 95 </template>
86 96 </el-table-column>
87   - <el-table-column label="修改时间" prop="createDate"width="250" >
  97 + <el-table-column label="创建时间" prop="createDate"width="250" >
88 98 </el-table-column>
89 99 <el-table-column prop="createUser" label="上传人员" width="80">
90 100  
... ... @@ -95,7 +105,7 @@
95 105 <!-- <div class="tableBtn greens">发布</div> -->
96 106 <div class="tableBtn greens" @click="handleEditForm(scope.row)">执行情况</div>
97 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 109 <!-- <div class="tableBtn greens">策略调整</div> -->
100 110 <div class="tableBtn greens" @click="koop(scope.row)">复制</div>
101 111 </template>
... ... @@ -124,7 +134,7 @@
124 134 <!-- 详情活动方案 -->
125 135 <el-dialog title="活动方案详情" :visible.sync="ggXin" custom-class='xiang_css' style="padding: 0;" width="80%" center
126 136 :close-on-click-modal="false" :close-on-press-escape="false" @close="refreshData">
127   - <div>
  137 + <div ref="actXiang">
128 138 <div style="width: 100%;">
129 139 <div style="display: flex;padding:0px 20px 20px 20px; ">
130 140 <div style="width: 150px;height: 80px;" v-if="secondData.coverPoster">
... ... @@ -277,77 +287,6 @@
277 287 </div>
278 288 </div>
279 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 290 </div>
352 291 <div v-if="activeName=='second'">
353 292 <div style="padding: 20px">
... ... @@ -572,6 +511,9 @@
572 511 </div>
573 512 </div>
574 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>
575 517 </el-dialog>
576 518 </div>
577 519 </div>
... ... @@ -792,37 +734,37 @@
792 734 <div style="display:flex;padding:10px 0;">
793 735 <div style="margin-right:40px;width:17%">
794 736 <div style="color:#BBBBBB;font-size:10px;">吸引游客流量</div>
795   - <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">4289</span>人</div>
796   - <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>
797 739 <div style="height:5px;background-color:#FEC03D;"></div>
798 740 </div>
799 741 <div style="margin-right:40px;width:17%">
800 742 <div style="color:#BBBBBB;font-size:10px;">参与人数</div>
801   - <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">4289</span>人</div>
802   - <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>
803 745 <div style="height:5px;background-color:#58A3F7;"></div>
804 746 </div>
805 747 <div style="margin-right:40px;width:17%">
806 748 <div style="color:#BBBBBB;font-size:10px;">直接收益</div>
807   - <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">4289</span>人</div>
808   - <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>
809 751 <div style="height:5px;background-color:#4BCED0;"></div>
810 752 </div>
811 753 <div style="margin-right:40px;width:17%">
812 754 <div style="color:#BBBBBB;font-size:10px;">间接收益</div>
813   - <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">4289</span>人</div>
814   - <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>
815 757 <div style="height:5px;background-color:#3F9B6A;"></div>
816 758 </div>
817 759 <div style="margin-right:40px;width:17%">
818 760 <div style="color:#BBBBBB;font-size:10px;">投入生产比</div>
819   - <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">4289</span>人</div>
820   - <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>
821 763 <div style="height:5px;background-color:#8167F5;"></div>
822 764 </div>
823 765 </div>
824   - <div style="font-size:12px;margin:10px 0;">效果分析</div>
825   - <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;">
826 768 <div style="margin-right:40px;width:17%">
827 769 <div style="color:#BBBBBB;font-size:10px;">吸引游客流量</div>
828 770 <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">4289</span>人</div>
... ... @@ -849,11 +791,11 @@
849 791 </div>
850 792 <div style="margin-right:40px;width:17%">
851 793 <div style="color:#BBBBBB;font-size:10px;">投入生产比</div>
852   - <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;">4289</span>人</div>
853   - <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>
854 796 <div style="height:5px;background-color:#8167F5;"></div>
855 797 </div>
856   - </div>
  798 + </div> -->
857 799 </div>
858 800 <div style="padding:0 20px;margin-top:20px;">
859 801 <div style="border:1px solid #EFEFEF;padding:20px 15px">
... ... @@ -1148,12 +1090,17 @@
1148 1090 cereAdd,
1149 1091 cereEdit,
1150 1092 cereDel,
1151   - copy
  1093 + copy,
  1094 + excelQueryByPage,
  1095 + excelAdd,
  1096 + effectEvaluation
1152 1097 } from '../../api/activityBz'
1153 1098 import addAct from "./activityBz"
1154 1099 import actbians from "./activityBian"
1155 1100 import * as echarts from 'echarts'
1156 1101 import Vue from 'vue'
  1102 + import html2canvas from 'html2canvas'
  1103 + import jsPDF from 'jspdf'
1157 1104 import {
1158 1105 uploadUrl
1159 1106 } from '@/utils/request'
... ... @@ -1165,6 +1112,8 @@
1165 1112 data() {
1166 1113 return {
1167 1114 uploadFileUrl: uploadUrl, // 请求地址
  1115 + daoData:[],
  1116 + fenxiData:{},
1168 1117 fileData:[],
1169 1118 addAct: false, //新增页
1170 1119 actbianMsg: {
... ... @@ -1899,6 +1848,9 @@
1899 1848  
1900 1849 },
1901 1850 xiaoguo(item) {
  1851 + effectEvaluation({id:item.id}).then(res=>{
  1852 + this.fenxiData = res.data
  1853 + })
1902 1854 this.xiaoguoBox = true
1903 1855 this.$nextTick(() => {
1904 1856 this.shopLiu(this.$refs.shopL);
... ... @@ -2137,9 +2089,14 @@
2137 2089 handleRemove(){
2138 2090 this.fileData = []
2139 2091 },
2140   - daoru(){
2141   -
2142   - },
  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 + },
2143 2100 caogao(){
2144 2101  
2145 2102  
... ... @@ -2186,6 +2143,56 @@
2186 2143  
2187 2144  
2188 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 + },
2189 2196 }
2190 2197 }
2191 2198 </script>
... ...
yanshouban/src/views/ads/fangli/index.vue
... ... @@ -38,17 +38,22 @@
38 38 </div>
39 39  
40 40 </div>
41   - <div style="margin-bottom:20px;">
  41 + <div style="margin-bottom: 20px;display:flex;">
42 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 44 @click="addbuss"
45 45 >新增</el-button
46 46 >
47   - <!-- <el-upload class="upload-demo" ref="upload"
48   - :action="action" :on-success="daoru" :file-list="fileData"
49   - :auto-upload="true">
  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">
50 55 <el-button style="background-color: #fff;color: #3F9B6A;border: 1px solid #dcdfe6;" class="buttonHover">导入</el-button>
51   - </el-upload> -->
  56 + </el-upload>
52 57 <!-- <el-button
53 58 style="background-color: #3F9B6A;color: #fff;padding:8px 15px;"
54 59 @click="daoru"
... ... @@ -555,12 +560,14 @@ export default {
555 560 this.peiShow = true
556 561 this.peiId = item.id
557 562 },
558   - daoru(file){
559   - // const fileMsg = {
560   - // name:file.name,
561   - // url: file.response.data.url,
562   - // }
563   - },
  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 + },
564 571 }
565 572 }
566 573 </script>
... ...
yanshouban/src/views/advertisement/index.vue
... ... @@ -99,6 +99,9 @@
99 99 <div @click="xiajia(scope.row)" class="tableBtn greens" v-if="leixing ==1 && scope.row.auditStatus =='4'">下架</div> -->
100 100 <div @click="toufang(scope.row)" class="tableBtn greens" v-if="leixing == 1 && scope.row.auditStatus =='2'">投放</div>
101 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 105 <div @click="gengGai(scope.row)" class="tableBtn greens" v-if="leixing == 1&& scope.row.auditStatus !='5'">更改状态</div>
103 106 <div @click="handleDelete(scope.row)" class="tableBtn greens" v-if="scope.row.auditStatus =='1'">删除</div>
104 107 <!-- <div @click="handleDelete(scope.row)" class="tableBtn greens" >删除</div> -->
... ... @@ -753,8 +756,30 @@
753 756 </div>
754 757 </el-dialog>
755 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 781 </div>
  782 +
758 783 </div>
759 784  
760 785 </div>
... ... @@ -864,7 +889,12 @@
864 889 xsNum:0,
865 890 stNum:0,
866 891 hetongList:{},
867   - auditStatusNum:''
  892 + auditStatusNum:'',
  893 + peiForm:{
  894 + auditTime:''
  895 + },
  896 + peiShow:false,
  897 + peiId:''
868 898 }
869 899 },
870 900 created() {
... ... @@ -1163,7 +1193,25 @@
1163 1193 await updateList({id:this.secondData.id,auditStatus:'5'})
1164 1194 this.steatShow = false
1165 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 1217 </script>
... ...
yanshouban/src/views/atmosphere/atmosphereGl.vue
... ... @@ -22,13 +22,23 @@
22 22 </div>
23 23 </div>
24 24 <div style="margin:20px 0;">
25   - <div>
  25 + <div style="display:flex;">
26 26 <el-button icon="el-icon-circle-plus-outline" @click="create"
27 27 style="background-color: #3F9B6A;color: #fff;">新增</el-button>
28 28 <el-button style="background-color: #E24E5A;color: #fff;" icon="el-icon-delete" @click="handleDelete" class="DelBtnHover">删除</el-button>
29 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 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 42 <!-- <el-button style="background-color: #fff;color: #000;border: 1px solid #B1B1B1;"
33 43 icon="el-icon-folder-add" class="buttonHover" @click="xinFenlei">氛围分类管理</el-button> -->
34 44 </div>
... ... @@ -82,7 +92,7 @@
82 92 {{scope.row.state == ''?'待提交':scope.row.state == '1'?'待审批':scope.row.state == '2'?'部门领导审批':scope.row.state == '3'?'公司领导审批':scope.row.state == '4'?'其他审批':scope.row.state == '5'?'审核通过':'已驳回'}}
83 93 </template>
84 94 </el-table-column>
85   - <el-table-column label="修改时间" prop="createDate"width="250" >
  95 + <el-table-column label="创建时间" prop="createDate"width="250" >
86 96 </el-table-column>
87 97 <el-table-column prop="createUser" label="上传人员" width="80">
88 98  
... ... @@ -93,7 +103,7 @@
93 103 <!-- <div class="tableBtn greens">发布</div> -->
94 104 <div class="tableBtn greens" @click="handleEditForm(scope.row)">执行情况</div>
95 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 107 <!-- <div class="tableBtn greens">策略调整</div> -->
98 108 <div class="tableBtn greens" @click="koop(scope.row)">复制</div>
99 109 </template>
... ... @@ -123,7 +133,7 @@
123 133 <!-- 详情活动方案 -->
124 134 <el-dialog title="氛围方案详情" :visible.sync="ggXin" custom-class='xiang_css' style="padding: 0;" width="80%"
125 135 center :close-on-click-modal="false" :close-on-press-escape="false" @close="refreshData">
126   - <div>
  136 + <div ref="actXiang">
127 137 <div style="width: 100%;">
128 138 <div style="display: flex;padding:0px 20px 20px 20px; ">
129 139 <div style="width: 150px;height: 80px;" v-if="secondData.coverPoster">
... ... @@ -562,9 +572,11 @@
562 572 <el-button plain @click="bianji" style="background-color: #3F9B6A;color: #fff" v-if="zhixingBian">保存
563 573 </el-button>
564 574 </div>
565   -
566 575 </div>
567 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>
568 580 </el-dialog>
569 581 </div>
570 582 </div>
... ... @@ -613,37 +625,37 @@
613 625 <div style="display:flex;padding:10px 0;">
614 626 <div style="margin-right:40px;width:17%">
615 627 <div style="color:#BBBBBB;font-size:10px;">吸引游客流量</div>
616   - <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">4289</span>人</div>
617   - <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>
618 630 <div style="height:5px;background-color:#FEC03D;"></div>
619 631 </div>
620 632 <div style="margin-right:40px;width:17%">
621 633 <div style="color:#BBBBBB;font-size:10px;">参与人数</div>
622   - <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">4289</span>人</div>
623   - <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>
624 636 <div style="height:5px;background-color:#58A3F7;"></div>
625 637 </div>
626 638 <div style="margin-right:40px;width:17%">
627 639 <div style="color:#BBBBBB;font-size:10px;">直接收益</div>
628   - <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">4289</span>人</div>
629   - <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>
630 642 <div style="height:5px;background-color:#4BCED0;"></div>
631 643 </div>
632 644 <div style="margin-right:40px;width:17%">
633 645 <div style="color:#BBBBBB;font-size:10px;">间接收益</div>
634   - <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">4289</span>人</div>
635   - <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>
636 648 <div style="height:5px;background-color:#3F9B6A;"></div>
637 649 </div>
638 650 <div style="margin-right:40px;width:17%">
639 651 <div style="color:#BBBBBB;font-size:10px;">投入生产比</div>
640   - <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">4289</span>人</div>
641   - <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>
642 654 <div style="height:5px;background-color:#8167F5;"></div>
643 655 </div>
644 656 </div>
645   - <div style="font-size:12px;margin:10px 0;">效果分析</div>
646   - <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;">
647 659 <div style="margin-right:40px;width:17%">
648 660 <div style="color:#BBBBBB;font-size:10px;">吸引游客流量</div>
649 661 <div style="font-size:14px;padding:10px 0"><span style="font-size:20px;font-weight:600;">4289</span>人</div>
... ... @@ -674,7 +686,7 @@
674 686 <div style="color:#BBBBBB;font-size:10px;margin-bottom:10px">+45%</div>
675 687 <div style="height:5px;background-color:#8167F5;"></div>
676 688 </div>
677   - </div>
  689 + </div> -->
678 690 </div>
679 691 <div style="padding:0 20px;margin-top:20px;">
680 692 <div style="border:1px solid #EFEFEF;padding:20px 15px">
... ... @@ -1143,12 +1155,17 @@
1143 1155 cereGet,
1144 1156 cereAdd,
1145 1157 cereEdit,
1146   - cereDel
  1158 + cereDel,
  1159 + excelQueryByPage,
  1160 + excelAdd,
  1161 + effectEvaluation
1147 1162 } from '../../api/activityBz'
1148 1163 import addAct from "./atmosphereBz"
1149 1164 import atmbians from "./atmosphereBian"
1150 1165 import * as echarts from 'echarts'
1151 1166 import Vue from 'vue'
  1167 + import html2canvas from 'html2canvas'
  1168 + import jsPDF from 'jspdf'
1152 1169 import {
1153 1170 uploadUrl
1154 1171 } from '@/utils/request'
... ... @@ -1162,6 +1179,7 @@ components: { addAct,atmbians},
1162 1179 acBian:'',//编辑数据
1163 1180 bianshow:false,//编辑页
1164 1181 },
  1182 + fenxiData:{},
1165 1183 planName:'',
1166 1184 planFen:'',
1167 1185 eventTheme:'',
... ... @@ -1346,6 +1364,7 @@ components: { addAct,atmbians},
1346 1364 duibiOne:{},
1347 1365 duibiTwo:{},
1348 1366 uploadFileUrl: uploadUrl, // 请求地址
  1367 + daoData:[],
1349 1368 fileData:[],
1350 1369 caoList:[],
1351 1370 caogaoshow:false
... ... @@ -1472,13 +1491,13 @@ components: { addAct,atmbians},
1472 1491 //查询
1473 1492 async onSubmit(){
1474 1493 if(this.planName != '' && this.eventTheme == ''){
1475   - 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})
1476 1495 this.tableData = res.data.content
1477 1496 }else if(this.planName == '' && this.eventTheme != ''){
1478   - 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})
1479 1498 this.tableData = res.data.content
1480 1499 }else{
1481   - 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 })
1482 1501 this.tableData = res.data.content
1483 1502 }
1484 1503  
... ... @@ -1817,6 +1836,9 @@ that.expectedAttractTraffic=res.data.content[0].expectedAttractTraffic
1817 1836 }
1818 1837 },
1819 1838 xiaoguo(item) {
  1839 + effectEvaluation({id:item.id}).then(res=>{
  1840 + this.fenxiData = res.data
  1841 + })
1820 1842 this.xiaoguoBox = true
1821 1843 this.$nextTick(() => {
1822 1844 this.shopLiu(this.$refs.shopL);
... ... @@ -2095,9 +2117,14 @@ that.expectedAttractTraffic=res.data.content[0].expectedAttractTraffic
2095 2117 handleRemove(){
2096 2118 this.fileData=[]
2097 2119 },
2098   - daoru(){
2099   -
2100   - },
  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 + })
  2127 + },
2101 2128 caogao(){
2102 2129 let pageindex = {
2103 2130 pageNumber: 1,
... ... @@ -2143,6 +2170,56 @@ this.fileData=[]
2143 2170  
2144 2171  
2145 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 + },
2146 2223 }
2147 2224 }
2148 2225 </script>
... ...
yanshouban/src/views/atmosphere/atmosphereSp.vue
... ... @@ -59,7 +59,7 @@
59 59 {{scope.row.state == ''?'待提交':scope.row.state == '1'?'待审批':scope.row.state == '2'?'部门领导审批':scope.row.state == '3'?'公司领导审批':scope.row.state == '4'?'其他审批':scope.row.state == '5'?'审核通过':'已驳回'}}
60 60 </template>
61 61 </el-table-column>
62   - <el-table-column label="修改时间" prop="createDate" min-width="250" >
  62 + <el-table-column label="创建时间" prop="createDate" min-width="250" >
63 63 </el-table-column>
64 64 <el-table-column prop="createUser" label="上传人员" min-width="80">
65 65  
... ...
yanshouban/src/views/business/businessList/index.vue
... ... @@ -64,14 +64,23 @@
64 64 </el-button>
65 65 </div>
66 66 </div>
67   - <div style="margin-bottom:20px;">
  67 + <div style="margin-bottom: 20px;display:flex;">
68 68 <el-button
69 69 @click="addbuss"
70 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 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 84 </div>
76 85 <!-- 表格 -->
77 86 <div class="tableBox">
... ... @@ -659,7 +668,8 @@ import {
659 668 businessListGetById,
660 669 businessListUpdate,
661 670 businessListStart,
662   - delBusinessById
  671 + delBusinessById,
  672 + excelAdd
663 673 } from '@/api/business'
664 674 import upimg from "@/components/ImageUpload/index";
665 675 import {
... ... @@ -668,11 +678,14 @@ import upimg from &quot;@/components/ImageUpload/index&quot;;
668 678 import {
669 679 getAlls as map1
670 680 } from '@/api/map1'
  681 + import { uploadUrl,token } from '@/utils/request'
671 682 export default {
672 683 components: {upimg},
673 684 data () {
674 685 // 这里存放数据
675 686 return {
  687 + action:uploadUrl,
  688 + fileData:[],
676 689 // 新建商家弹框
677 690 dialogVisible: false,
678 691 activeName: 0,
... ... @@ -931,6 +944,15 @@ export default {
931 944 }
932 945  
933 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 +
934 956 businessListSave(this.ruleForm).then(res => {
935 957  
936 958 if (res.code === '') {
... ... @@ -1055,11 +1077,11 @@ export default {
1055 1077 // 初始化查询所有数据
1056 1078 async getAll(formInline) {
1057 1079 const res = await businessListGetAll(formInline)
  1080 +
1058 1081 this.total = res.data.total
1059 1082 this.tableData = res.data.list
1060 1083  
1061 1084 this.tableData.map(item=>{
1062   -
1063 1085 item.shopPhone = this.$decrypt(item.shopPhone)
1064 1086 item.shopPassword = this.$decrypt(item.shopPassword)
1065 1087 item.idCardNum = this.$decrypt(item.idCardNum)
... ... @@ -1067,7 +1089,6 @@ export default {
1067 1089 item.shopAdress = this.$decrypt(item.shopAdress)
1068 1090 item.legalRepresentative = this.$decrypt(item.legalRepresentative)
1069 1091 item.chargePersonPhone = this.$decrypt(item.chargePersonPhone)
1070   -
1071 1092 })
1072 1093  
1073 1094 },
... ... @@ -1125,6 +1146,14 @@ export default {
1125 1146 MingDelete(index){
1126 1147 this.ziyuanData.splice(index, 1);
1127 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 + },
1128 1157 }
1129 1158 }
1130 1159 </script>
... ...
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 51 </el-button>
52 52 </div>
53 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 56 style="background-color: #3F9B6A;color: #fff;padding:8px 15px;"
56 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 68 </div>
63 69 <!-- 地图 -->
64 70 <div style="display: flex;justify-content: space-between;margin-bottom: 20px;">
... ... @@ -136,6 +142,10 @@
136 142 </el-table-column>
137 143 <el-table-column prop="detailedLocation" label="详细地址" min-width="300">
138 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 149 <el-table-column label="实际使用面积" prop="actualUsableArea" min-width="150">
140 150 </el-table-column>
141 151 <el-table-column label="归属部门" prop="belongingDepartment" min-width="150">
... ... @@ -1511,6 +1521,7 @@
1511 1521 changadd,
1512 1522 changedit,
1513 1523 changDel,
  1524 +
1514 1525 } from '../../api/information'
1515 1526 import {
1516 1527 getAlls as getAllMap,
... ... @@ -1765,6 +1776,7 @@
1765 1776 mapData: {},
1766 1777 fileData:[],
1767 1778 uploadFileUrl: uploadUrl, // 请求地址
  1779 +daoData:[]
1768 1780 }
1769 1781  
1770 1782  
... ... @@ -2266,6 +2278,14 @@ uploadFileUrl: uploadUrl, // 请求地址
2266 2278 // 将文件地址存储在 uploadedFiles 数组中
2267 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 2291 </script>
... ...
yanshouban/src/views/detect/analyse.vue
... ... @@ -5,32 +5,26 @@
5 5 <div style="color:#0006"> <span>招商资源监测</span> <span style="padding:0 5px;">></span> <span
6 6 style="color:#000000e6">统计分析</span></div>
7 7 </div>
  8 + <div 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 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 28 <div style="display:flex;margin-top:10px;">
35 29 <div style="width:48%;height: 400px;marigin-right:20px;">
36 30 <div style="display: flex;justify-content: space-between;">
... ... @@ -264,6 +258,59 @@
264 258 </div>
265 259 </div>
266 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 315 <div style="width: 100%;margin-bottom:20px;">
269 316 <div style="display:flex;justify-content: space-between">
... ... @@ -306,7 +353,7 @@
306 353 </div>
307 354 <div style="width:48%;height: 400px;marigin-right:20px;">
308 355 <div style="display: flex;justify-content: space-between;">
309   - <div style="line-height:35px;">签约数量占比</div>
  356 + <div style="line-height:35px;">合同签约数量占比</div>
310 357 <!-- <div>
311 358 <el-select v-model="formSel.createDate" placeholder="类型" style="width: 100px;margin-right: 10px">
312 359 <el-option label="1" value="1" />
... ... @@ -318,7 +365,20 @@
318 365 </div>
319 366 </div>
320 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 382 </div>
323 383  
324 384 </div>
... ... @@ -329,6 +389,8 @@
329 389 statistical,
330 390 } from '@/api/information'
331 391 import * as echarts from 'echarts'
  392 + import html2canvas from 'html2canvas'
  393 + import jsPDF from 'jspdf'
332 394 export default {
333 395 name: 'atmosphereGl',
334 396 data() {
... ... @@ -341,8 +403,8 @@
341 403 tableData: [],
342 404 FormTime:[],
343 405 pageindex: {
344   -   startTime: "1990-09-11",
345   -     endTime: "2024-11-09"
  406 +   startTime: "",
  407 +     endTime: ""
346 408 },
347 409 formSel: {
348 410  
... ... @@ -351,26 +413,83 @@
351 413 },
352 414 computed: {},
353 415 created() {
354   - this.getAll()
  416 +
355 417  
356 418 },
357 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 422 methods: {
  423 +
370 424 charDam(datas) {
  425 +
371 426 let Dom = this.$refs.shop2TJ
372 427 let myChart = echarts.init(Dom)
373 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 493 name: item.trendDate,
375 494 value: item.trendQuantity
376 495 }))
... ... @@ -380,6 +499,9 @@
380 499 xAxis: {
381 500 type: 'category',
382 501 data:processedData.map(item => item.name),
  502 + axisLabel: {
  503 + interval: 0,//使x轴文字显示全
  504 + }
383 505 },
384 506 yAxis: {
385 507 type: 'value',
... ... @@ -405,9 +527,10 @@
405 527 let myChart = echarts.init(Dom);
406 528  
407 529 let processedData = datas.map(item => ({
408   - name: item.trendDate || '11',
  530 + name: item.trendDate,
409 531 value: item.trendQuantity
410 532 }))
  533 + console.log(processedData)
411 534 processedData.push({name:'',value:0})
412 535 let option = {
413 536 xAxis: {
... ... @@ -484,106 +607,70 @@
484 607 },
485 608 charDam3(datas) {
486 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 674 charDam6(datas) {
588 675  
589 676 let Dom = this.$refs.shop5ZX
... ... @@ -668,64 +755,91 @@
668 755 }
669 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 828 async getAll() {
712 829 const res = await statistical(this.pageindex)
713 830  
714   - this.charDam(res.data.seekingIntentionStatistics)
  831 + this.charDam(res.data.merchantChargeStatistics)
715 832 this.charDam2(res.data.seekingIntentionStatistics)
716 833 this.charDam6(res.data.contractTrend)
717   -
  834 +this.hetongDam(res.data.contractTrend)
718 835 this.charDam7(res.data.basicQueryTrends)
719 836 let trends=[...res.data.shopTrend,...res.data.venueTrend,...res.data.advertisingTrend]
720 837  
721 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 844 resetting(){
731 845 this.FormTime = []
... ... @@ -738,19 +852,40 @@
738 852     endTime:this.FormTime[1]
739 853 }
740 854 const res = await statistical(Msg)
741   - this.charDam(res.data.seekingIntentionStatistics)
  855 + this.charDam(res.data.merchantChargeStatistics)
742 856 this.charDam2(res.data.seekingIntentionStatistics)
743 857 this.charDam6(res.data.contractTrend)
  858 + this.hetongDam(res.data.contractTrend)
744 859 this.charDam7(res.data.basicQueryTrends)
745 860 let trends=[...res.data.shopTrend,...res.data.venueTrend,...res.data.advertisingTrend]
746 861  
747 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 891 </script>
... ...
yanshouban/src/views/ipm/inr/index.vue
... ... @@ -388,6 +388,7 @@
388 388 tanAdd,
389 389 tanEdit,
390 390 tanDel,
  391 + excelQueryByPage
391 392 } from '../../../api/inr.js'
392 393 import upimg from "@/components/ImageUpload/index"
393 394 import {
... ... @@ -629,23 +630,33 @@ const res = await tanGetAll(this.formSel)
629 630 await tanDel({id:item.id})
630 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/member/memberList/details.vue
... ... @@ -369,12 +369,17 @@ export default {
369 369 if (item.fields === 'sex') {
370 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 378 async getSelect (name) {
376 379 const res = await getLabels(name)
377 380 this.tipsList = res.data
  381 +
  382 +
378 383 },
379 384 doCancel () {
380 385 this.visible = false
... ...
yanshouban/src/views/online/QRCode/index.vue
... ... @@ -177,7 +177,7 @@ export default {
177 177 this.tableData = res.data.list
178 178 this.tableData.map(res=>{
179 179 res.shopPhone = this.$decrypt(res.shopPhone)
180   - // res.shopPassword = this.$decrypt(res.shopPassword)
  180 + res.shopPassword = this.$decrypt(res.shopPassword)
181 181 res.idCardNum = this.$decrypt(res.idCardNum)
182 182 res.emailAddress = this.$decrypt(res.emailAddress)
183 183 res.shopAdress = this.$decrypt(res.shopAdress)
... ...
yanshouban/src/views/online/QRFunds/index.vue
... ... @@ -177,11 +177,12 @@ export default {
177 177 this.tableData = res.data.list
178 178 this.tableData.map(res=>{
179 179 res.shopPhone = this.$decrypt(res.shopPhone)
180   - // res.shopPassword = this.$decrypt(res.shopPassword)
  180 + res.shopPassword = this.$decrypt(res.shopPassword)
181 181 res.idCardNum = this.$decrypt(res.idCardNum)
182 182 res.emailAddress = this.$decrypt(res.emailAddress)
183 183 res.shopAdress = this.$decrypt(res.shopAdress)
184 184 res.legalRepresentative = this.$decrypt(res.legalRepresentative)
  185 + res.chargePersonPhone = this.$decrypt(res.chargePersonPhone)
185 186 })
186 187 },
187 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 33 </el-button>
34 34 </div>
35 35 </div>
36   - <div style="margin:20px 0;">
  36 + <div style="margin:20px 0;display:flex;">
37 37 <el-button icon="el-icon-circle-plus-outline" @click="addbuss(1)"
38 38 style="background-color: #3F9B6A;color: #fff;padding:8px 15px;">新增</el-button>
  39 + <el-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 49 </div>
40 50  
41 51 <!-- 表格 -->
... ... @@ -312,17 +322,20 @@
312 322 addList,
313 323 updateList,
314 324 queryById,
  325 + excelAdd
315 326 } from '../../api/planningBz.js'
316 327 import wangEditor from "@/components/editor/index"
317 328 import upimg from "@/components/ImageUpload/index"
318 329 import {
319 330 uploadUrl
320 331 } from '@/utils/request'
  332 +
321 333 export default {
322 334 components: { wangEditor ,upimg},
323 335 data() {
324 336 return {
325 337 upload:uploadUrl,
  338 + fileData:[],
326 339 formSel: {
327 340 planningName:'',
328 341 planningType:'',
... ... @@ -450,7 +463,7 @@ this.total = res.data.content.length
450 463 this.fileList = fileList.slice(-3);
451 464 },
452 465 handleSuccess(file,fileList) {
453   - console.log(file,fileList)
  466 +
454 467 // const fileUrl = response.data.url;
455 468 const fileMsg = {
456 469 name:fileList.name,
... ... @@ -493,7 +506,10 @@ this.total = res.data.content.length
493 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 513 // this.secondData.annex = JSON.parse(this.secondData.annex)
498 514  
499 515  
... ... @@ -599,7 +615,7 @@ this.total = res.data.content.length
599 615 console.log(file);
600 616 },
601 617 handleRemove(file, fileList) {
602   - console.log(file, fileList);
  618 +
603 619 this.fileList = []
604 620 },
605 621 //重置按钮
... ... @@ -632,6 +648,14 @@ this.total = res.data.content.length
632 648 const day = ('0' + date.getDate()).slice(-2);
633 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 661 </script>
... ...
yanshouban/src/views/scheme/sam.vue
1 1 <template>
2 2 <div style="background-color:#f7f7f7;padding:10px 10px;">
3   - <div class="zhuti">
  3 + <div class="zhuti" v-if="addressShow == false">
4 4 <div style="height:58px;line-height:58px;">
5 5 <div style="color:#0006"> <span>招商方案管理</span> <span style="padding:0 5px;">></span> <span
6 6 style="color:#000000e6">策略管理</span></div>
... ... @@ -54,6 +54,8 @@
54 54 <div style="margin:20px 0;">
55 55 <el-button icon="el-icon-circle-plus-outline" @click="addbuss(1)"
56 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 59 </div>
58 60  
59 61 <!-- 表格 -->
... ... @@ -216,6 +218,7 @@
216 218  
217 219 </el-dialog>
218 220 <samXin :xinShow="ggXin" @childClose='childClose'></samXin>
  221 + <addressguan :addressShow="addressShow" @addClose='addClose' v-if="addressShow"></addressguan>
219 222 </div>
220 223 </template>
221 224  
... ... @@ -229,14 +232,16 @@
229 232 import wangEditor from "@/components/editor/index"
230 233 import upimg from "@/components/ImageUpload/index"
231 234 import samXin from "./samXin"
  235 +import addressguan from "./addressguan"
232 236 import {
233 237 uploadUrl
234 238 } from '@/utils/request'
235 239 export default {
236   - components: { wangEditor ,upimg,samXin},
  240 + components: { wangEditor ,upimg,samXin,addressguan},
237 241 data() {
238 242 return {
239 243 formInline: {},
  244 + addressShow:false,
240 245 upload:uploadUrl,
241 246 plan_Time:[],
242 247 formSel: {
... ... @@ -269,7 +274,8 @@ import samXin from &quot;./samXin&quot;
269 274 },
270 275 fileList: [],
271 276 paymentDate:[],
272   - leaseDate:[]
  277 + leaseDate:[],
  278 + modelData:[]
273 279 }
274 280 },
275 281  
... ... @@ -409,6 +415,10 @@ this.getAll()
409 415 this.xiang = false
410 416 this.getAll()
411 417 },
  418 + addClose(msg){
  419 + this.addressShow = msg
  420 + this.getAll()
  421 + },
412 422 }
413 423 }
414 424 </script>
... ...
yanshouban/src/views/serve/kefuServe/index.vue
... ... @@ -23,7 +23,7 @@
23 23 <div>
24 24 <!-- 搜索 -->
25 25 <div style="margin-bottom:20px;">
26   - 修记录
  26 + 修记录
27 27 </div>
28 28  
29 29 <!-- 表格 -->
... ... @@ -39,7 +39,7 @@
39 39 {{scope.$index+1}}
40 40 </template>
41 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 43 <el-table-column label="问题描述" prop="warrantyIssue" width="auto" min-width="12%" />
44 44 <el-table-column label="设备名称" prop="deviceName" width="auto" min-width="12%" />
45 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 326 userGetById({ platformUserId: row.platformUserId }).then(res => {
327 327 this.addForm = res.data
328 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 333 // this.addForm.roleIds = [1];
332 334 })
  335 +
  336 +
333 337 },
334 338 // 删除用户
335 339 async del (row) {
... ...
yanshouban/src/views/shopRental/manage/index.vue
... ... @@ -37,10 +37,19 @@
37 37 </el-button>
38 38 </div>
39 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 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 53 </div>
45 54 <!-- 表格 -->
46 55  
... ... @@ -1202,9 +1211,7 @@
1202 1211 async
1203 1212 } from 'q'
1204 1213 import axios from 'axios'
1205   - import {
1206   - uploadUrl
1207   - } from '@/utils/request'
  1214 +import { uploadUrl,token } from '@/utils/request'
1208 1215 import {
1209 1216 contractGetAll,
1210 1217 contractDel,
... ... @@ -1214,13 +1221,15 @@
1214 1221 cereLeasingByPage,
1215 1222 cereLeasingEdit,
1216 1223 cereLeasingAdd,
1217   - cereLeasingDel
  1224 + cereLeasingDel,
  1225 + excelAdd
1218 1226 } from '../../../api/manage.js'
1219 1227 export default {
1220 1228 name: 'manage',
1221 1229 data() {
1222 1230 return {
1223 1231 uploadFileUrl: uploadUrl, // 请求地址
  1232 + fileData:[],
1224 1233 hetongBox: false, //合同
1225 1234 detbox: false, //详情
1226 1235 leixing: true, //切换
... ... @@ -1257,6 +1266,7 @@
1257 1266 promotionVideo: '',
1258 1267 promotionImage: '',
1259 1268 notes: '',
  1269 + rentalCondition:0,
1260 1270 }, //租赁信息字段
1261 1271 tableData: [{
1262 1272 id:1,
... ... @@ -1383,6 +1393,7 @@ biangengPan:false,
1383 1393 this.chengeTatle = val
1384 1394 },
1385 1395 async getAll(val) {
  1396 + console.log(this.pageindex)
1386 1397 const res = await cereLeasingByPage(this.pageindex)
1387 1398 this.tableData = res.data.content
1388 1399 this.total = res.data.content.length
... ... @@ -1521,6 +1532,7 @@ biangengPan:false,
1521 1532 promotionVideo: '',
1522 1533 promotionImage: '',
1523 1534 notes: '',
  1535 + rentalCondition:0,
1524 1536 }//租赁信息字段
1525 1537 this.heForm={
1526 1538 contractNumber: '', //合同对应的ID
... ... @@ -1718,6 +1730,14 @@ this.ggXin = true
1718 1730 bianDel(index){
1719 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 1743 </script>
... ...
yanshouban/src/views/shopRental/renewalMan/index.vue
... ... @@ -876,7 +876,7 @@
876 876 },
877 877 pageNumber: 1,
878 878 pageSize: 10,
879   -
  879 + rentalCondition:3
880 880 },
881 881 xiangData:{},
882 882 heData:{},
... ... @@ -892,6 +892,7 @@
892 892 pageindex: {
893 893 pageNumber: 1,
894 894 pageSize: 10,
  895 + rentalCondition:3
895 896 },
896 897 bianjiBox:1,
897 898 chengeTatle:1,
... ... @@ -1083,7 +1084,7 @@
1083 1084 },
1084 1085 pageNumber: 1,
1085 1086 pageSize: 10,
1086   -
  1087 + rentalCondition:3
1087 1088 }
1088 1089 this.leaseStartDate = []
1089 1090 this.getAll()
... ...
yanshouban/src/views/shopRental/rentTermination/index.vue
... ... @@ -730,11 +730,12 @@
730 730 },
731 731 pageNumber: 1,
732 732 pageSize: 10,
733   -
  733 + rentalCondition:2
734 734 },
735 735 pageindex: {
736 736 pageNumber: 1,
737 737 pageSize: 10,
  738 + rentalCondition:2
738 739 },
739 740 bianjiBox: 1,
740 741 chengeTatle: 1,
... ... @@ -948,7 +949,7 @@
948 949 },
949 950 pageNumber: 1,
950 951 pageSize: 10,
951   -
  952 + rentalCondition:2
952 953 }
953 954 this.leaseStartDate = []
954 955 this.getAll()
... ...
yanshouban/src/views/shopRental/rentalMan/index.vue
... ... @@ -1050,10 +1050,12 @@ import {
1050 1050 },
1051 1051 pageNumber: 1,
1052 1052 pageSize: 10,
  1053 + rentalCondition:1
1053 1054 },
1054 1055 pageindex: {
1055 1056 pageNumber: 1,
1056 1057 pageSize: 10,
  1058 + rentalCondition:1
1057 1059 },
1058 1060 zhong:{
1059 1061 intentionalRent:'',
... ... @@ -1104,6 +1106,7 @@ import {
1104 1106 },
1105 1107 pageNumber: 1,
1106 1108 pageSize: 10,
  1109 + rentalCondition:1
1107 1110 }
1108 1111 this.leixing = !this.leixing
1109 1112  
... ... @@ -1204,6 +1207,7 @@ import {
1204 1207 },
1205 1208 pageNumber: 1,
1206 1209 pageSize: 10,
  1210 + rentalCondition:1
1207 1211 },
1208 1212 this.leaseStartDate = []
1209 1213 this.getAll()
... ...