Commit e027454648e3b1c1d24338aeea372cc60b81f6fb

Authored by 杨鑫
2 parents 8dca79c8 2210df30

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

Showing 57 changed files with 2457 additions and 611 deletions
admin-web-master/src/api/newly.js
1 1 import request from '@/utils/request'
2 2 // import request from '@/utils/request2'
3   -
4   -
  3 +// 退租决算管理oa
  4 +export function generalBySurrenderTenancy(data) {
  5 + return request({
  6 + url: '/oaInterconnection/generalBySurrenderTenancy',
  7 + method: 'post',
  8 + data
  9 + })
  10 +}
  11 +// 退租决算管理修改
  12 +export function changeContractInformationedit(data) {
  13 + return request({
  14 + url: '/changeContractInformation/edit',
  15 + method: 'post',
  16 + data
  17 + })
  18 +}
5 19 // 退租决算管理
6 20 export function changeContractInformationqueryByPage(data) {
7 21 return request({
... ...
admin-web-master/src/components/add/addmb.vue
... ... @@ -205,7 +205,7 @@ import { Input } from "element-ui";
205 205 value: '',
206 206 },
207 207 {
208   - name: '押金',
  208 + name: '押金(元)',
209 209 key: 'earnestMoney',
210 210 type: '单行数字文本',
211 211 isrequired: '是',
... ... @@ -258,7 +258,7 @@ import { Input } from "element-ui";
258 258 ]
259 259 },
260 260 {
261   - name: '租金',
  261 + name: '租金(元)',
262 262 key: 'contractAmount',
263 263 type: '单行数字文本',
264 264 isrequired: '是',
... ...
admin-web-master/src/components/buscha/busChanew.vue 0 → 100644
  1 +<template>
  2 + <div>
  3 + <div v-show="type == '1'">
  4 + <el-tabs v-model="xiangTab">
  5 + <el-tab-pane label="申请信息" name="one">
  6 + <div style="margin-top: 30px;" class="editcss">
  7 + <TitleWithCircle title="基础信息" />
  8 + <div style="padding: 20px;margin-top: 10px;">
  9 + <el-form :model="newinfo" ref="ruleForm" label-width="140px" class="demo-ruleForm">
  10 + <el-form-item label="类型" prop="contractType">
  11 + <div class="duiqi">{{newinfo.contractType=='0'?'退租':newinfo.contractType=='1'?'续租':'-'}}</div>
  12 + </el-form-item>
  13 + <el-form-item label="申请理由" prop="contractType">
  14 + <div class="duiqi">{{newinfo.reasonForApplication || '-'}}</div>
  15 + </el-form-item>
  16 + <el-form-item label="申请时间" prop="contractNumber">
  17 + <div class="duiqi">{{newinfo.applicationTime || '-'}}</div>
  18 + </el-form-item>
  19 + </el-form>
  20 + </div>
  21 + </div>
  22 + </el-tab-pane>
  23 + <el-tab-pane label="合同信息" name="first">
  24 + <div style="margin-top: 30px;" class="editcss">
  25 + <TitleWithCircle title="合同信息" />
  26 + <div style="padding: 20px;margin-top: 10px;">
  27 + <el-form :model="info" ref="ruleForm" label-width="140px" class="demo-ruleForm">
  28 + <el-row :gutter="20">
  29 + <el-col :span="item.width == '50%(半行)'?12:item.width == '100%(一行)'?24:12" v-for="(item,index) in list1" >
  30 + <el-form-item :label="item.name" prop="appendicesContract" v-if="item.type == '附件'">
  31 + <div class="duiqi greens" @click ="item.value?openfile(item.value):''">{{item.value?'查看详情':'暂无文件'}}</div>
  32 + </el-form-item>
  33 + <el-form-item :label="item.name" prop="paymentDay" v-else-if="item.type != '资源' && item.type != '商家'">
  34 + <div class="duiqi">{{item.value}}<span v-if="item.key == 'earnestMoney' || item.key == 'contractAmount'"> 元</span></div>
  35 + </el-form-item>
  36 + </el-col>
  37 + </el-row>
  38 + <el-form-item label="附件信息" prop="appendicesContract">
  39 + <div class="duiqi greens" @click ="info.appendicesContract?openfile(info.appendicesContract):''">{{info.appendicesContract?'查看详情':'暂无文件'}}</div>
  40 + </el-form-item>
  41 + </el-form>
  42 + </div>
  43 + <TitleWithCircle title="合同修订历史" />
  44 + <div style="padding: 20px;margin-top: 10px;">
  45 + <el-table :data="list"
  46 + :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}">
  47 +
  48 + <el-table-column label="类型">
  49 + <template slot-scope="scope">
  50 + {{scope.row.contractChangeReason}}
  51 +
  52 + </template>
  53 + </el-table-column>
  54 + <el-table-column label="操作时间">
  55 + <template slot-scope="scope">
  56 + {{scope.row.updateDate}}
  57 +
  58 + </template>
  59 + </el-table-column>
  60 + <el-table-column label="操作人">
  61 + <template slot-scope="scope">
  62 + {{scope.row.updateUser}}
  63 +
  64 + </template>
  65 + </el-table-column>
  66 + <el-table-column label="操作">
  67 + <template slot-scope="scope">
  68 + <div @click="open(scope.row)" class="tableBtn greens">查看</div>
  69 + </template>
  70 + </el-table-column>
  71 + </el-table>
  72 +
  73 + </div>
  74 + </div>
  75 + </el-tab-pane>
  76 + <el-tab-pane label="商家信息" name="second">
  77 + <div style="margin-top: 30px;" class="editcss">
  78 + <TitleWithCircle title="基础信息" />
  79 + <div style="padding: 20px;margin-top: 10px;">
  80 + <el-form :model="shop" ref="ruleForm" label-width="140px" class="demo-ruleForm">
  81 + <el-row :gutter="20">
  82 + <el-col :span="9">
  83 + <el-form-item label="姓名" prop="name">
  84 + <div class="duiqi">{{shop.name}}</div>
  85 + </el-form-item>
  86 + </el-col>
  87 + <el-col :span="9">
  88 + <el-form-item label="手机号" prop="phone">
  89 + <div class="duiqi">{{shop.phone}}</div>
  90 + </el-form-item>
  91 + </el-col>
  92 + </el-row>
  93 + <el-row :gutter="20">
  94 + <el-col :span="9">
  95 + <el-form-item label="证件类型" prop="idCardType">
  96 + <div class="duiqi">{{shop.idCardType}}</div>
  97 + </el-form-item>
  98 + </el-col>
  99 + <el-col :span="9">
  100 + <el-form-item label="身份证号码" prop="idCardNumber">
  101 + <div class="duiqi">{{shop.idCardNumber}}</div>
  102 + </el-form-item>
  103 + </el-col>
  104 + </el-row>
  105 + <el-form-item label="身份证照片(正)" prop="idCardFrontImage">
  106 + <!-- <div style="margin-top: 10px;">
  107 + <el-image style="width: 200px;" :src="$baseURL+shop.idCardFrontImage" fit="contain"></el-image>
  108 + </div> -->
  109 + <div style="display: flex;">
  110 + <allimg :src="shop.idCardFrontImage" fit="contain" style="width: 112px;height: 112px;border: 1px dotted #dcdfe6;border-radius: 2px;overflow: hidden;margin: 0 10px 10px 0;"/>
  111 + </div>
  112 + </el-form-item>
  113 + <el-form-item label="身份证照片(反)" prop="idCardBackImage">
  114 + <!-- <div style="margin-top: 10px;">
  115 + <el-image style="width: 200px;" :src="$baseURL+shop.idCardBackImage" fit="contain"></el-image>
  116 + </div> -->
  117 + <div style="display: flex;">
  118 + <allimg :src="shop.idCardBackImage" fit="contain" style="width: 112px;height: 112px;border: 1px dotted #dcdfe6;border-radius: 2px;overflow: hidden;margin: 0 10px 10px 0;"/>
  119 + </div>
  120 + </el-form-item>
  121 + </el-form>
  122 + </div>
  123 + </div>
  124 + </el-tab-pane>
  125 + <el-tab-pane label="商户租赁信息" name="third">
  126 + <div class="editcss">
  127 + <div>
  128 + <el-table :data="tableData"
  129 + :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}">
  130 + <el-table-column label="商铺名称">
  131 + <template slot-scope="scope">
  132 + {{scope.row.shopName ? scope.row.shopName : scope.row.advertisingName?scope.row.advertisingName:scope.row.venueName}}
  133 +
  134 + </template>
  135 + </el-table-column>
  136 + <el-table-column label="实际使用面积" >
  137 + <template slot-scope="scope">
  138 + {{scope.row.actualArea ? scope.row.actualArea : scope.row.actualUsableArea?scope.row.actualUsableArea:'-'}}
  139 +
  140 + </template>
  141 + </el-table-column>
  142 + <el-table-column label="类型" >
  143 + <template slot-scope="scope">
  144 + {{scope.row.shopName ? '商铺' : scope.row.advertisingType?scope.row.advertisingType:'场地'}}
  145 +
  146 + </template>
  147 + </el-table-column>
  148 + <!-- <el-table-column label="状态" min-width="150">
  149 + <template slot-scope="scope">
  150 + {{scope.row.cereContractInformation.tenantName}}
  151 +
  152 + </template>
  153 + </el-table-column> -->
  154 + <el-table-column label="操作" >
  155 + <template slot-scope="scope">
  156 + <div class="tableBtn greens" @click="details(scope.row)">查看</div>
  157 + </template>
  158 + </el-table-column>
  159 + </el-table>
  160 +
  161 + </div>
  162 + </div>
  163 + </el-tab-pane>
  164 + </el-tabs>
  165 + <div v-if="newinfo.status == '1' && issp == '2'" style="margin-top: 20px;">
  166 + <TitleWithCircle title="审核情况"/>
  167 + <div style="padding: 20px;">
  168 + <el-form :model="info" label-width="100px" class="demo-ruleForm">
  169 + <el-form-item label="状态">
  170 + <el-radio v-model="radio" label="2">通过</el-radio>
  171 + <el-radio v-model="radio" label="3">不通过</el-radio>
  172 + </el-form-item>
  173 + <el-form-item label="审核意见">
  174 + <el-input maxlength="200" show-word-limit rows="4" v-model="reviewComments" placeholder="请输入审核意见"
  175 + type="textarea" />
  176 + </el-form-item>
  177 + </el-form>
  178 + </div>
  179 + </div>
  180 + <div v-if="(newinfo.status == '2' || newinfo.status == '3')&& newinfo.isInterior == '1'" style="margin-top: 20px;">
  181 + <TitleWithCircle title="审核结果"/>
  182 + <div style="padding: 20px;">
  183 + <el-form :model="newinfo" label-width="100px" class="demo-ruleForm">
  184 + <el-form-item label="状态">
  185 + <div class="duiqi">{{newinfo.status=='2'?'已同意':newinfo.status=='3'?'已拒绝':'无'}}</div>
  186 + </el-form-item>
  187 + <el-form-item label="审核意见">
  188 + <div class="duiqi">{{newinfo.reviewComments || '无'}}</div>
  189 + </el-form-item>
  190 + </el-form>
  191 + </div>
  192 + </div>
  193 + <div>
  194 + <el-button v-if="newinfo.status == '1' && issp == '2'" @click="minSev"
  195 + style="background-color: #3F9B6A;color: #fff;">确定</el-button>
  196 + <el-button class="buttonHover"
  197 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;margin-top: 20px;"
  198 + @click="changetype">返回</el-button>
  199 + </div>
  200 + </div>
  201 + <div v-show="type == '2'">
  202 + <oneht ref="onhet"></oneht>
  203 + <div>
  204 + <el-button class="buttonHover"
  205 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;margin-top: 20px;"
  206 + @click="changetype">返回</el-button>
  207 + </div>
  208 + </div>
  209 + <div v-show="type == '3'">
  210 + <div v-if="detailstype == '商铺'">
  211 + <resourceCommodity :editbgid="detailsinfo" @removeonaction="removeonaction"></resourceCommodity>
  212 + </div>
  213 + <div v-if="detailstype == '广告位'">
  214 + <chakanmap :editbgid="detailsinfo" @removeonaction="removeonaction"></chakanmap>
  215 + </div>
  216 + <div v-if="detailstype == '场地'">
  217 + <chakancd :editbgid="detailsinfo" @removeonaction="removeonaction"></chakancd>
  218 + </div>
  219 + </div>
  220 +
  221 + </div>
  222 +</template>
  223 +
  224 +<script>
  225 + import oneht from "@/components/chakan/oneht";
  226 + import {
  227 + queryByContractcontractNumber
  228 + } from '../../api/commodityLease.js'
  229 + import {
  230 + businessListGetById
  231 + } from '../../api/business.js'
  232 + import TitleWithCircle from '@/components/top/index';
  233 + import {
  234 + cerePlatformMerchantinfo
  235 + } from '../../api/newly.js'
  236 + import resourceCommodity from '@/components/resourceCommodity/index'
  237 + import chakanmap from '@/components/chakan/map'
  238 + import allimg from '@/components/chakan/allimg.vue';
  239 + import chakancd from '@/components/chakan/cd'
  240 +
  241 + import {
  242 + changeContractInformationedit
  243 + } from '@/api/newly.js'
  244 + export default {
  245 + components: {
  246 + oneht,
  247 + TitleWithCircle,
  248 + chakancd,
  249 + chakanmap,
  250 + resourceCommodity,
  251 + allimg
  252 + },
  253 + props: {
  254 + info: {
  255 + type: Object,
  256 + default: function() {
  257 + return {}; // 返回一个空数组作为默认值
  258 + },
  259 + },
  260 + newinfo: {
  261 + type: Object,
  262 + default: function() {
  263 + return {}; // 返回一个空数组作为默认值
  264 + },
  265 + },
  266 + issp: {
  267 + type: String,
  268 + default: function() {
  269 + return '1';
  270 + },
  271 + },
  272 + },
  273 + data() {
  274 + return {
  275 + reviewComments:'',
  276 + radio: '2',
  277 + url:'',
  278 + type:'1',
  279 + tableData: [],
  280 + xiangTab: 'one',
  281 + siteIds: [],
  282 + list: [],
  283 + advIds: [],
  284 + shopIds: [],
  285 + shop: {},
  286 + newshop:{},
  287 + newinfo:{},
  288 + detailsinfo:{},
  289 + detailstype:'',
  290 + list1:[]
  291 + }
  292 + },
  293 + created() {
  294 + console.log(this.info)
  295 + this.list1 = JSON.parse(this.info.templateInformation)
  296 + console.log(this.list1)
  297 + this.url = process.env.VUE_APP_DOMAIN_PREFIX_1
  298 + queryByContractcontractNumber({
  299 + contractNumber: this.info.contractNumber
  300 + }).then(res => {
  301 + console.error(res)
  302 + // this.shop = res.data.shop
  303 + this.siteIds = res.data.siteIds
  304 + this.shopIds = res.data.shopIds
  305 + this.advIds = res.data.advIds
  306 + this.list = res.data.list
  307 + this.tableData = [...res.data.siteIds, ...res.data.shopIds, ...res.data.advIds]
  308 + })
  309 + cerePlatformMerchantinfo({id:this.info.relatedMerchants}).then(res => {
  310 + console.error(res)
  311 + this.shop = res.data
  312 + })
  313 + },
  314 + computed: {
  315 +
  316 + },
  317 + methods: {
  318 + minSev() {
  319 + changeContractInformationedit({
  320 + ...this.newinfo,
  321 + status: this.radio,
  322 + reviewComments: this.reviewComments?this.reviewComments:null
  323 + }).then(res => {
  324 + console.error(res)
  325 + if (res.code == 200) {
  326 + this.$message({
  327 + message: '处理成功',
  328 + type: 'success'
  329 + })
  330 + this.newinfo.status = this.radio
  331 + this.$emit('removeonaction', '1')
  332 + } else {
  333 + this.$message({
  334 + message: '处理失败',
  335 + type: 'error'
  336 + })
  337 + }
  338 + })
  339 + },
  340 + removeonaction() {
  341 + this.type = '1'
  342 + },
  343 + details(row) {
  344 + this.detailstype = row.shopName?'商铺':row.advertisingType?'广告位':'场地'
  345 + this.detailsinfo = row
  346 + this.type = '3'
  347 + },
  348 + openfile(e) {
  349 + if (e) {
  350 + const fullUrl = this.$baseURL + e;
  351 + try {
  352 + window.open(fullUrl, '_blank'); // 在新标签页中打开文件
  353 + } catch (error) {
  354 + console.error('打开文件失败:', error);
  355 + }
  356 + } else {
  357 + console.error('无文件可查看');
  358 + }
  359 + },
  360 + changetype(){
  361 + this.xiangTab= 'first'
  362 + if(this.type == '1'){
  363 + this.$emit('removeonaction', '1')
  364 + }else{
  365 + this.type = '1'
  366 + }
  367 + },
  368 + open(row) {
  369 + console.error(row)
  370 + this.type = '2'
  371 + this.$refs.onhet.open(row)
  372 + },
  373 + closeFn() {
  374 + this.$emit('change', false);
  375 + },
  376 + }
  377 + }
  378 +</script>
  379 +<style>
  380 + .el-form-item__label {
  381 + color: #a2a2a2;
  382 + }
  383 +
  384 + .greens {
  385 + color: #3F9B6A;
  386 + }
  387 +</style>
... ...
admin-web-master/src/components/chakan/fa.vue
... ... @@ -24,8 +24,8 @@
24 24 <div class="duiqi" v-if="editbgid.summary" v-html="editbgid.summary"></div>
25 25 <div class="duiqi" v-else>无</div>
26 26 </el-form-item>
27   - <el-form-item label="附件信息" prop="mainPurpose" >
28   - <div class="duiqi" :class="editbgid.mainPurpose?'greens':''" @click ="editbgid.mainPurpose?openfile($baseURL+editbgid.mainPurpose):''">{{editbgid.mainPurpose?'查看详情':'无'}}</div>
  27 + <el-form-item label="附件信息" prop="attachmentInfo" >
  28 + <div class="duiqi" :class="editbgid.attachmentInfo?'greens':''" @click ="editbgid.attachmentInfo?openfile($baseURL+editbgid.attachmentInfo):''">{{editbgid.attachmentInfo?'查看详情':'无'}}</div>
29 29 </el-form-item>
30 30 </el-form>
31 31 </div>
... ... @@ -61,7 +61,7 @@
61 61 </el-table-column> -->
62 62 <el-table-column label="状态" prop="publishStatus" show-overflow-tooltip>
63 63 <template slot-scope="scope">
64   - {{scope.row.info.publishStatus=='0'?'空置中':scope.row.info.publishStatus=='1'?'待审核':scope.row.info.publishStatus=='2'?'已发布':scope.row.info.publishStatus=='3'?'不通过':'-'}}
  64 + {{scope.row.info.publishStatus=='0'?'待发布':scope.row.info.publishStatus=='1'?'待审核':scope.row.info.publishStatus=='2'?'已发布':scope.row.info.publishStatus=='3'?'不通过':'-'}}
65 65 </template>
66 66 </el-table-column>
67 67 <el-table-column label="操作" fixed="right" prop="sh">
... ...
admin-web-master/src/components/chakan/sam.vue
... ... @@ -32,7 +32,7 @@
32 32 </el-col> -->
33 33 <el-col :span="8">
34 34 <el-form-item label="租金" prop="rentalPrice">
35   - <div class="duiqi">{{editbgid.rentalPrice?editbgid.rentalPrice+' 元':'无'}} <span v-if="editbgid.applicableResources == '商铺'">/M²</span></div>
  35 + <div class="duiqi">{{editbgid.rentalPrice?editbgid.rentalPrice+' 元':'无'}} <span v-if="editbgid.applicableResources == '商铺'">/m²</span></div>
36 36 </el-form-item>
37 37 </el-col>
38 38 <el-col :span="8">
... ...
admin-web-master/src/components/change/cl.vue
... ... @@ -25,11 +25,12 @@
25 25 </el-table-column>
26 26 <el-table-column label="策略名称" prop="policyName" show-overflow-tooltip></el-table-column>
27 27 <el-table-column label="适用资源" prop="applicableResources" show-overflow-tooltip></el-table-column>
28   - <el-table-column label="租金价格(/M²)" prop="rentalPrice" show-overflow-tooltip>
29   - <template slot-scope="scope">
30   - {{scope.row.rentalPrice}}/M²
31   - </template>
32   - </el-table-column>
  28 + <el-table-column label="租金价格(元/m²)" prop="rentalPrice" show-overflow-tooltip>
  29 + <template slot-scope="scope" >
  30 + <span v-if="scope.row.rentalPrice!=''">{{scope.row.rentalPrice}}元/m²</span>
  31 + <span v-else>无</span>
  32 + </template>
  33 + </el-table-column>
33 34 <el-table-column label="付款周期" prop="leaseTerm" show-overflow-tooltip></el-table-column>
34 35 <!-- <el-table-column label="付款日" prop="payDay" show-overflow-tooltip></el-table-column> -->
35 36 </el-table>
... ...
admin-web-master/src/components/newmap/index.vue
... ... @@ -96,6 +96,12 @@
96 96 });
97 97 },
98 98 initMap() {
  99 + if (this.isx) {
  100 +
  101 + } else {
  102 + this.lat = this.message.split(',')[0]
  103 + this.lng = this.message.split(',')[1]
  104 + }
99 105 // 将经纬度转换为腾讯地图的LatLng对象
100 106 const centerLatLng = new qq.maps.LatLng(this.lat, this.lng);
101 107  
... ...
admin-web-master/src/components/newmap/indexall.vue
... ... @@ -309,7 +309,7 @@ body {
309 309 position: absolute;
310 310 top: 10px;
311 311 left: 10px;
312   - z-index: 99;
  312 + z-index: 1000;
313 313 background: #fff;
314 314 padding: 10px;
315 315 border-radius: 5px;
... ...
admin-web-master/src/components/newmap/map.vue
... ... @@ -95,7 +95,7 @@ export default {
95 95 <div style="padding:10px 0;border-radius: 18px;">
96 96 <p style="padding-top:10px;">资源名称:${item.name}</p>
97 97 <p style="padding-top:10px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;max-width: 200px;">位置:${item.detailedLocation}</p>
98   - <p style="padding-top:10px;">租赁情况:<text style="${item.publishStatus=='4'?"color: #3f9b6a;":"color: #f59a23;"}">${item.publishStatus=='0'?'空置中':item.publishStatus=='1'?'待审核':item.publishStatus=='2'?'已发布':item.publishStatus=='3'?'不通过':item.publishStatus=='4'?'已租赁':'-'}</text></p>
  98 + <p style="padding-top:10px;">租赁情况:<text style="${item.publishStatus=='4'?"color: #3f9b6a;":"color: #f59a23;"}">${item.publishStatus=='0'?'待发布':item.publishStatus=='1'?'待审核':item.publishStatus=='2'?'已发布':item.publishStatus=='3'?'不通过':item.publishStatus=='4'?'已租赁':'-'}</text></p>
99 99 </div>
100 100 `;
101 101 // <div style="background: #fff;padding:5px 15px;border-radius: 18px;">
... ...
admin-web-master/src/components/newmap/map2.vue
... ... @@ -188,7 +188,7 @@ export default {
188 188 <div style="padding:10px 0;border-radius: 18px;">
189 189 <p style="padding-top:10px;">资源名称:${item.name}</p>
190 190 <p style="padding-top:10px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;max-width: 200px;">位置:${item.detailedLocation}</p>
191   - <p style="padding-top:10px;">租赁情况:<text style="${item.publishStatus=='4'?"color: #3f9b6a;":"color: #f59a23;"}">${item.publishStatus=='0'?'空置中':item.publishStatus=='1'?'待审核':item.publishStatus=='2'?'已发布':item.publishStatus=='3'?'不通过':item.publishStatus=='4'?'已租赁':'-'}</text></p>
  191 + <p style="padding-top:10px;">租赁情况:<text style="${item.publishStatus=='4'?"color: #3f9b6a;":"color: #f59a23;"}">${item.publishStatus=='0'?'待发布':item.publishStatus=='1'?'待审核':item.publishStatus=='2'?'已发布':item.publishStatus=='3'?'不通过':item.publishStatus=='4'?'已租赁':'-'}</text></p>
192 192 </div>
193 193 `;
194 194 // <div style="background: #fff;padding:5px 15px;border-radius: 18px;">
... ...
admin-web-master/src/components/resourceCommodity/index.vue
... ... @@ -169,9 +169,9 @@
169 169 <!-- <el-table-column label="经营类型" prop="businessType" min-width="100">
170 170  
171 171 </el-table-column> -->
172   - <el-table-column label="租金价格(/M²)" prop="rentalPrice">
  172 + <el-table-column label="租金价格(元/m²)" prop="rentalPrice">
173 173 <template slot-scope="scope">
174   - {{scope.row.rentalPrice}}/M²
  174 + {{scope.row.rentalPrice}}元/m²
175 175 </template>
176 176 </el-table-column>
177 177 <el-table-column label="付款周期" prop="leaseTerm">
... ...
admin-web-master/src/main.js
... ... @@ -37,15 +37,15 @@ Vue.prototype.$hostUrl =`${window.location.protocol}//${window.location.host}/cd
37 37  
38 38 let host = window.location.host;
39 39 if(host === 'localhost:8080' || host === 'localhost:8081' || host === 'localhost:9528'|| host === '192.168.31.45:9528'|| host === 'localhost:9529' ) {
40   - Vue.prototype.$baseURL ='https://jy.scjysm.asia:18086/cdwlMall'
41   - Vue.prototype.$fontBold = `https://jy.scjysm.asia:18086/cdwlMall/zsfwzxt/assets/Alibaba-PuHuiTi-Bold.ttf`
42   - Vue.prototype.$fontRegular = `https://jy.scjysm.asia:18086/cdwlMall/zsfwzxt/assets/Alibaba-PuHuiTi-Regular.ttf`
43   - Vue.prototype.$API = `https://jy.scjysm.asia:18086/cdwlMall/meserver/api`
  40 + // Vue.prototype.$baseURL ='https://jy.scjysm.asia:18086/cdwlMall'
  41 + // Vue.prototype.$fontBold = `https://jy.scjysm.asia:18086/cdwlMall/zsfwzxt/assets/Alibaba-PuHuiTi-Bold.ttf`
  42 + // Vue.prototype.$fontRegular = `https://jy.scjysm.asia:18086/cdwlMall/zsfwzxt/assets/Alibaba-PuHuiTi-Regular.ttf`
  43 + // Vue.prototype.$API = `https://jy.scjysm.asia:18086/cdwlMall/meserver/api`
44 44  
45   - // Vue.prototype.$baseURL ='https://zhgw-uat.028wlkj.com/cdwlMall'
46   - // Vue.prototype.$fontBold = `https://zhgw-uat.028wlkj.com/cdwlMall/zsfwzxt/assets/Alibaba-PuHuiTi-Bold.ttf`
47   - // Vue.prototype.$fontRegular = `https://zhgw-uat.028wlkj.com/cdwlMall/zsfwzxt/assets/Alibaba-PuHuiTi-Regular.ttf`
48   - // Vue.prototype.$API = `https://zhgw-uat.028wlkj.com/cdwlMall/meserver/api`
  45 + Vue.prototype.$baseURL ='https://zhgw-uat.028wlkj.com/cdwlMall'
  46 + Vue.prototype.$fontBold = `https://zhgw-uat.028wlkj.com/cdwlMall/zsfwzxt/assets/Alibaba-PuHuiTi-Bold.ttf`
  47 + Vue.prototype.$fontRegular = `https://zhgw-uat.028wlkj.com/cdwlMall/zsfwzxt/assets/Alibaba-PuHuiTi-Regular.ttf`
  48 + Vue.prototype.$API = `https://zhgw-uat.028wlkj.com/cdwlMall/meserver/api`
49 49 } else {
50 50 Vue.prototype.$API = `${window.location.protocol}//${window.location.host}/cdwlMall/meserver/api`
51 51 Vue.prototype.$baseURL =`${window.location.protocol}//${window.location.host}/cdwlMall`
... ...
admin-web-master/src/utils/request.js
... ... @@ -17,12 +17,12 @@ let baseURL = &#39;&#39;
17 17 if(host === 'localhost:8080' || host === 'localhost:8081' || host === 'localhost:9528'|| host === '192.168.31.45:9528'|| host === 'localhost:9529' ) {
18 18  
19 19 // baseURL = 'https://jy.scjysm.asia:18086/cdwlMall/meserver/admin-server';
20   - // baseURL = 'https://zhgw-uat.028wlkj.com/cdwlMall/meserver/admin-server';
  20 + baseURL = 'https://zhgw-uat.028wlkj.com/cdwlMall/meserver/admin-server';
21 21  
22 22 // baseURL = process.env.VUE_APP_DOMAIN_PREFIX_1;
23 23  
24 24  
25   - baseURL = 'http://128.10.249.8:9003';
  25 + // baseURL = 'http://128.10.249.8:9003';
26 26  
27 27  
28 28 } else {
... ...
admin-web-master/src/views/detect/admap.vue
... ... @@ -74,7 +74,7 @@
74 74 <el-table-column label="提交时间" prop="createDate"> </el-table-column>
75 75 <el-table-column label="状态" prop="publishStatus" show-overflow-tooltip>
76 76 <template slot-scope="scope">
77   - {{scope.row.publishStatus=='0'?'空置中':scope.row.publishStatus=='1'?'待审核':scope.row.publishStatus=='2'?'已发布':scope.row.publishStatus=='3'?'不通过':'-'}}
  77 + {{scope.row.publishStatus=='0'?'待发布':scope.row.publishStatus=='1'?'待审核':scope.row.publishStatus=='2'?'已发布':scope.row.publishStatus=='3'?'不通过':'-'}}
78 78 </template>
79 79 </el-table-column>
80 80 <el-table-column label="操作" min-width="100" fixed="right">
... ... @@ -107,7 +107,7 @@
107 107 <el-table-column label="提交时间" prop="createDate"> </el-table-column>
108 108 <!-- <el-table-column prop="publishStatus" label="发布状态" >
109 109 <template slot-scope="scope">
110   - {{scope.row.publishStatus=='0'?'待发布':scope.row.publishStatus=='1'?'已发布':scope.row.publishStatus=='2'?'空置中':scope.row.publishStatus=='3'?'待审核':scope.row.publishStatus=='4'?'驳回':'-'}}
  110 + {{scope.row.publishStatus=='0'?'待发布':scope.row.publishStatus=='1'?'已发布':scope.row.publishStatus=='2'?'待发布':scope.row.publishStatus=='3'?'待审核':scope.row.publishStatus=='4'?'驳回':'-'}}
111 111 </template>
112 112 </el-table-column>
113 113 <el-table-column prop="leaseExpirationDate" label="租赁到期时间" >
... ... @@ -126,7 +126,7 @@
126 126 </el-table-column> -->
127 127 <el-table-column label="状态" prop="publishStatus" show-overflow-tooltip>
128 128 <template slot-scope="scope">
129   - {{scope.row.publishStatus=='0'?'空置中':scope.row.publishStatus=='1'?'待审核':scope.row.publishStatus=='2'?'已发布':scope.row.publishStatus=='3'?'不通过':'-'}}
  129 + {{scope.row.publishStatus=='0'?'待发布':scope.row.publishStatus=='1'?'待审核':scope.row.publishStatus=='2'?'已发布':scope.row.publishStatus=='3'?'不通过':'-'}}
130 130 </template>
131 131 </el-table-column>
132 132 <el-table-column label="操作" min-width="100" fixed="right">
... ... @@ -155,9 +155,9 @@
155 155 </el-table-column>
156 156 <el-table-column label="场地类型" prop="venueType" show-overflow-tooltip>
157 157 </el-table-column>
158   - <el-table-column label="实际使用面积(/M²)" prop="actualArea" show-overflow-tooltip>
  158 + <el-table-column label="实际使用面积(元/m²)" prop="actualArea" show-overflow-tooltip>
159 159 <template slot-scope="scope">
160   - {{scope.row.actualArea}}/M²
  160 + {{scope.row.actualArea}}元/m²
161 161 </template>
162 162 </el-table-column>
163 163 <el-table-column label="所属区域" prop="district" show-overflow-tooltip>
... ... @@ -166,7 +166,7 @@
166 166 </el-table-column> -->
167 167 <!-- <el-table-column prop="publishStatus" label="发布状态">
168 168 <template slot-scope="scope">
169   - {{scope.row.publishStatus=='0'?'待发布':scope.row.publishStatus=='1'?'已发布':scope.row.publishStatus=='2'?'空置中':scope.row.publishStatus=='3'?'待审核':scope.row.publishStatus=='4'?'驳回':'-'}}
  169 + {{scope.row.publishStatus=='0'?'待发布':scope.row.publishStatus=='1'?'已发布':scope.row.publishStatus=='2'?'待发布':scope.row.publishStatus=='3'?'待审核':scope.row.publishStatus=='4'?'驳回':'-'}}
170 170 </template>
171 171 </el-table-column>
172 172 <el-table-column label="操作" fixed="right">
... ... @@ -182,7 +182,7 @@
182 182 </el-table-column> -->
183 183 <el-table-column label="状态" prop="publishStatus" show-overflow-tooltip>
184 184 <template slot-scope="scope">
185   - {{scope.row.publishStatus=='0'?'空置中':scope.row.publishStatus=='1'?'待审核':scope.row.publishStatus=='2'?'已发布':scope.row.publishStatus=='3'?'不通过':'-'}}
  185 + {{scope.row.publishStatus=='0'?'待发布':scope.row.publishStatus=='1'?'待审核':scope.row.publishStatus=='2'?'已发布':scope.row.publishStatus=='3'?'不通过':'-'}}
186 186 </template>
187 187 </el-table-column>
188 188 <el-table-column label="操作" min-width="100" fixed="right">
... ...
admin-web-master/src/views/detect/examine/index.vue
... ... @@ -68,7 +68,7 @@
68 68 </el-table-column>
69 69 <el-table-column label="租金/周期" prop="rentalPrice" show-overflow-tooltip>
70 70 <template slot-scope="scope">
71   - <span v-if="scope.row.shopinfo.rentalPrice!=''">{{scope.row.shopinfo.rentalPrice}} /{{ scope.row.shopinfo.leaseTerm }}</span>
  71 + <span v-if="scope.row.shopinfo.rentalPrice!=''">{{scope.row.shopinfo.rentalPrice}} /{{ scope.row.shopinfo.leaseTerm }}</span>
72 72 <span v-else>无</span>
73 73 </template>
74 74 </el-table-column>
... ... @@ -79,7 +79,7 @@
79 79 </el-table-column> -->
80 80 <el-table-column label="状态" prop="publishStatus" show-overflow-tooltip>
81 81 <template slot-scope="scope">
82   - {{scope.row.cereBasicInformationShop.publishStatus=='0'?'空置中':scope.row.cereBasicInformationShop.publishStatus=='1'?'待审核':scope.row.cereBasicInformationShop.publishStatus=='2'?'已发布':scope.row.cereBasicInformationShop.publishStatus=='3'?'不通过':scope.row.publishStatus=='4'?'已租赁':'-'}}
  82 + {{scope.row.cereBasicInformationShop.publishStatus=='0'?'待发布':scope.row.cereBasicInformationShop.publishStatus=='1'?'待审核':scope.row.cereBasicInformationShop.publishStatus=='2'?'已发布':scope.row.cereBasicInformationShop.publishStatus=='3'?'不通过':scope.row.publishStatus=='4'?'已租赁':'-'}}
83 83 </template>
84 84 </el-table-column>
85 85 <el-table-column label="操作" fixed="right" prop="sh">
... ... @@ -114,7 +114,7 @@
114 114 </el-table-column>
115 115 <el-table-column label="租金/周期" prop="rentalPrice" show-overflow-tooltip>
116 116 <template slot-scope="scope">
117   - <span v-if="scope.row.shopinfo.rentalPrice!=''">{{scope.row.shopinfo.rentalPrice}} /{{ scope.row.shopinfo.leaseTerm }}</span>
  117 + <span v-if="scope.row.shopinfo.rentalPrice!=''">{{scope.row.shopinfo.rentalPrice}} /{{ scope.row.shopinfo.leaseTerm }}</span>
118 118 <span v-else>无</span>
119 119 </template>
120 120 </el-table-column>
... ... @@ -125,7 +125,7 @@
125 125 </el-table-column> -->
126 126 <el-table-column label="状态" prop="publishStatus" show-overflow-tooltip>
127 127 <template slot-scope="scope">
128   - {{scope.row.cereAdvertisingInformation.publishStatus=='0'?'空置中':scope.row.cereAdvertisingInformation.publishStatus=='1'?'待审核':scope.row.cereAdvertisingInformation.publishStatus=='2'?'已发布':scope.row.cereAdvertisingInformation.publishStatus=='3'?'不通过':scope.row.publishStatus=='4'?'已租赁':'-'}}
  128 + {{scope.row.cereAdvertisingInformation.publishStatus=='0'?'待发布':scope.row.cereAdvertisingInformation.publishStatus=='1'?'待审核':scope.row.cereAdvertisingInformation.publishStatus=='2'?'已发布':scope.row.cereAdvertisingInformation.publishStatus=='3'?'不通过':scope.row.publishStatus=='4'?'已租赁':'-'}}
129 129 </template>
130 130 </el-table-column>
131 131 <el-table-column label="操作" fixed="right" prop="sh">
... ... @@ -160,7 +160,7 @@
160 160 </el-table-column>
161 161 <el-table-column label="租金/周期" prop="rentalPrice" show-overflow-tooltip>
162 162 <template slot-scope="scope">
163   - <span v-if="scope.row.shopinfo.rentalPrice!=''">{{scope.row.shopinfo.rentalPrice}} /{{ scope.row.shopinfo.leaseTerm }}</span>
  163 + <span v-if="scope.row.shopinfo.rentalPrice!=''">{{scope.row.shopinfo.rentalPrice}} /{{ scope.row.shopinfo.leaseTerm }}</span>
164 164 <span v-else>无</span>
165 165 </template>
166 166 </el-table-column>
... ... @@ -171,7 +171,7 @@
171 171 </el-table-column> -->
172 172 <el-table-column label="状态" prop="publishStatus" show-overflow-tooltip>
173 173 <template slot-scope="scope">
174   - {{scope.row.cereBasicInformationVenue.publishStatus=='0'?'空置中':scope.row.cereBasicInformationVenue.publishStatus=='1'?'待审核':scope.row.cereBasicInformationVenue.publishStatus=='2'?'已发布':scope.row.cereBasicInformationVenue.publishStatus=='3'?'不通过':scope.row.publishStatus=='4'?'已租赁':'-'}}
  174 + {{scope.row.cereBasicInformationVenue.publishStatus=='0'?'待发布':scope.row.cereBasicInformationVenue.publishStatus=='1'?'待审核':scope.row.cereBasicInformationVenue.publishStatus=='2'?'已发布':scope.row.cereBasicInformationVenue.publishStatus=='3'?'不通过':scope.row.publishStatus=='4'?'已租赁':'-'}}
175 175 </template>
176 176 </el-table-column>
177 177 <el-table-column label="操作" fixed="right" prop="sh">
... ...
admin-web-master/src/views/detect/information/index.vue
... ... @@ -68,7 +68,7 @@
68 68 <el-table-column label="提交时间" prop="createDate" > </el-table-column>
69 69 <el-table-column label="状态" prop="publishStatus" show-overflow-tooltip>
70 70 <template slot-scope="scope">
71   - {{scope.row.publishStatus=='0'?'空置中':scope.row.publishStatus=='1'?'待审核':scope.row.publishStatus=='2'?'已发布':scope.row.publishStatus=='3'?'不通过':scope.row.publishStatus=='4'?'已租赁':'-'}}
  71 + {{scope.row.publishStatus=='0'?'待发布':scope.row.publishStatus=='1'?'待审核':scope.row.publishStatus=='2'?'已发布':scope.row.publishStatus=='3'?'不通过':scope.row.publishStatus=='4'?'已租赁':'-'}}
72 72 </template>
73 73 </el-table-column>
74 74 <el-table-column label="操作" min-width="100" fixed="right">
... ...
admin-web-master/src/views/detect/map/index.vue
... ... @@ -70,7 +70,7 @@
70 70  
71 71 <!-- <el-table-column label="状态" prop="publishStatus" show-overflow-tooltip>
72 72 <template slot-scope="scope">
73   - {{scope.row.publishStatus=='0'?'待发布':scope.row.publishStatus=='1'?'已发布':scope.row.publishStatus=='2'?'空置中':scope.row.publishStatus=='3'?'待审核':scope.row.publishStatus=='4'?'驳回':'-'}}
  73 + {{scope.row.publishStatus=='0'?'待发布':scope.row.publishStatus=='1'?'已发布':scope.row.publishStatus=='2'?'待发布':scope.row.publishStatus=='3'?'待审核':scope.row.publishStatus=='4'?'驳回':'-'}}
74 74 </template>
75 75 </el-table-column>
76 76 <el-table-column prop="leaseExpirationDate" label="租赁到期时间" show-overflow-tooltip>
... ... @@ -90,7 +90,7 @@
90 90 <el-table-column label="提交时间" prop="createDate" > </el-table-column>
91 91 <el-table-column label="状态" prop="publishStatus" show-overflow-tooltip>
92 92 <template slot-scope="scope">
93   - {{scope.row.publishStatus=='0'?'空置中':scope.row.publishStatus=='1'?'待审核':scope.row.publishStatus=='2'?'已发布':scope.row.publishStatus=='3'?'不通过':scope.row.publishStatus=='4'?'已租赁':'-'}}
  93 + {{scope.row.publishStatus=='0'?'待发布':scope.row.publishStatus=='1'?'待审核':scope.row.publishStatus=='2'?'已发布':scope.row.publishStatus=='3'?'不通过':scope.row.publishStatus=='4'?'已租赁':'-'}}
94 94 </template>
95 95 </el-table-column>
96 96 <el-table-column label="操作" min-width="100" fixed="right">
... ...
admin-web-master/src/views/scheme/sam.vue
... ... @@ -61,9 +61,10 @@
61 61 <el-table-column label="经营类型" prop="businessType" min-width="100">
62 62  
63 63 </el-table-column>
64   - <el-table-column label="租金价格(/M²)" prop="rentalPrice" min-width="150">
  64 + <el-table-column label="租金价格(元/m²)" prop="rentalPrice" min-width="150">
65 65 <template slot-scope="scope">
66   - {{scope.row.rentalPrice}}/M²
  66 + <span v-if="scope.row.rentalPrice!=''">{{scope.row.rentalPrice}}元/m²</span>
  67 + <span v-else>无</span>
67 68 </template>
68 69 </el-table-column>
69 70 <el-table-column label="租期" prop="leaseTerm" min-width="100">
... ...
admin-web-master/src/views/shopRental/renewalMan/index copy.vue 0 → 100644
  1 +<template>
  2 + <div style="background-color:#f7f7f7;padding:10px 10px;">
  3 + <div class="zhuti" v-if="onaction == '1'">
  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 + <!-- 线上 -->
  9 + <div>
  10 + <!-- 搜索 -->
  11 + <div class="formSearch">
  12 + <el-form :inline="true" :model="pagequery">
  13 + <el-form-item label="合同名称">
  14 + <el-input v-model="pagequery.contractName" placeholder="请输入" style="width:168px;" />
  15 + </el-form-item>
  16 + </el-form>
  17 +
  18 + <div>
  19 + <el-button @click="onSubmit" style="background-color: #3F9B6A;color: #fff">查询
  20 + </el-button>
  21 + <el-button @click="resetting" class="buttonHover"
  22 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;">重置
  23 + </el-button>
  24 + </div>
  25 + </div>
  26 + <div style="margin-bottom: 20px;">
  27 + <el-button @click="openyujingSet()" style="background-color: #3F9B6A;color: #fff;padding:8px 15px;"
  28 + icon="el-icon-circle-plus-outline">预警设置</el-button>
  29 + <!-- <el-button @click="" style="background-color: #3F9B6A;color: #fff">批量导入</el-button> -->
  30 + </div>
  31 + <!-- 表格 -->
  32 +
  33 + <el-table :data="tableData"
  34 + :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}">
  35 + <el-table-column label="承租人名称">
  36 + <template slot-scope="scope">
  37 + {{scope.row.tenantName}}
  38 +
  39 + </template>
  40 + </el-table-column>
  41 + <el-table-column label="租赁类型">
  42 + <template slot-scope="scope">
  43 + {{scope.row.contractType}}
  44 +
  45 + </template>
  46 + </el-table-column>
  47 + <el-table-column label="租金/周期">
  48 + <template slot-scope="scope">
  49 + {{scope.row.contractAmount}} / {{scope.row.paymentCycle}}
  50 +
  51 + </template>
  52 + </el-table-column>
  53 + <el-table-column label="合同编号">
  54 + <template slot-scope="scope">
  55 + {{scope.row.contractNumber}}
  56 +
  57 + </template>
  58 + </el-table-column>
  59 + <el-table-column label="租赁起止时间">
  60 + <template slot-scope="scope">
  61 + {{scope.row.contractSigningDate}}至{{scope.row.contractTerminationDate}}
  62 +
  63 + </template>
  64 + </el-table-column>
  65 + <el-table-column label="到期天数">
  66 + <template slot-scope="scope">
  67 + {{ calculateDaysUntilExpiration(scope.row.contractTerminationDate)}}
  68 +
  69 + </template>
  70 + </el-table-column>
  71 + <el-table-column label="操作" fixed="right">
  72 + <template slot-scope="scope">
  73 + <div @click="details(scope.row)" class="tableBtn greens">查看</div>
  74 + <!-- <div @click="addgzd(scope.row)" class="tableBtn greens">发送提醒</div> -->
  75 + </template>
  76 + </el-table-column>
  77 + </el-table>
  78 + <div style="display: flex;justify-content: space-between;" class="bom">
  79 + <div style="font-size: 14px;">共 <span style="color: #3F9B6A;">{{total}}</span> 项数据</div>
  80 + <el-pagination :current-page="pagequery.pageNumber+1" :page-sizes="[10, 20, 50, 100]" :page-size="10"
  81 + background small layout="prev, pager, next" :total="total" @size-change="handleSizeChange"
  82 + @current-change="handleCurrentChange">
  83 + </el-pagination>
  84 + </div>
  85 +
  86 + </div>
  87 +
  88 + </div>
  89 +
  90 +
  91 +
  92 +
  93 +
  94 +
  95 + <el-dialog title="预警设置" :visible.sync="yujingSet" style="padding: 0;" width="60%" center :close-on-click-modal="false" :show-close="false" top="20vh">
  96 + <div>
  97 + <div style="margin-bottom: 20px;">
  98 + <el-form ref="form" :model="zhong" label-width="120px">
  99 + <el-form-item label="合同剩余天数">
  100 + <el-input v-model="zhong.contractExpirationDays"></el-input>
  101 + </el-form-item>
  102 + <el-form-item label="提醒内容">
  103 + <wang-editor v-model="zhong.reminderContent" ref="editor" :height="200"></wang-editor>
  104 + </el-form-item>
  105 +
  106 +
  107 +
  108 + </el-form>
  109 +
  110 + </div>
  111 + <div style="display: flex;justify-content: flex-end;">
  112 + <el-button @click="yuclose" class="buttonHover"
  113 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;">返回</el-button>
  114 + <el-button @click="yuChenk" style="background-color: #3F9B6A;color: #fff">确定</el-button>
  115 + </div>
  116 + </div>
  117 + </el-dialog>
  118 +
  119 + <div class="zhuti" v-if="onaction == '3'">
  120 + <div style="height:58px;line-height:58px;">
  121 + <div style="color:#0006"> <span>出租管理</span> <span style="padding:0 5px;">></span> <span
  122 + style="color:#000000e6">查看</span></div>
  123 + </div>
  124 + <div>
  125 + <busCha :info="detailsinfo" @removeonaction="removeonaction"></busCha>
  126 + </div>
  127 + <!-- <div>
  128 + <el-button class="buttonHover"
  129 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;margin-top: 20px;"
  130 + @click="removeonaction('1')">返回</el-button>
  131 + </div> -->
  132 + </div>
  133 +
  134 + </div>
  135 + <!-- </div> -->
  136 +
  137 +</template>
  138 +
  139 +<script>
  140 + import {
  141 + contractRenewalReminder,
  142 + } from '@/api/newly.js'
  143 + import {
  144 + cereReminderSet,
  145 + cereReminderSetedit
  146 + } from '../../../api/commodityLease.js'
  147 + // import add from './add'
  148 + import busCha from '../../../components/buscha/busCha'
  149 + import wangEditor from "@/components/editor/index"
  150 + export default {
  151 + data() {
  152 + return {
  153 + zhong: {
  154 +
  155 + },
  156 + yujingSet: false,
  157 + detailsinfo: {},
  158 + pagequery: {
  159 + pageNumber: 0,
  160 + pageSize: 10,
  161 + dataStatus:'1',
  162 + contractName: ''
  163 + },
  164 + tableData: [],
  165 + total: 0,
  166 + onaction: '1',
  167 + info: {}
  168 + }
  169 + },
  170 + components: {
  171 + busCha,
  172 + wangEditor
  173 + },
  174 + created() {
  175 + this.getAll()
  176 +
  177 + },
  178 + methods: {
  179 +
  180 + calculateDaysUntilExpiration(endDateString) {
  181 + const endDate = new Date(endDateString);
  182 + const today = new Date();
  183 + const timeDifference = endDate - today;
  184 + const daysDifference = Math.ceil(timeDifference / (1000 * 60 * 60 * 24));
  185 + return daysDifference >= 0 ? daysDifference : '已过期';
  186 + },
  187 +
  188 + yuclose() {
  189 + this.yujingSet = false
  190 + },
  191 + yuChenk() {
  192 + console.error(this.zhong)
  193 + cereReminderSetedit(this.zhong).then(res => {
  194 + console.error(res)
  195 + if (res.code == 200) {
  196 + this.$message({
  197 + message: '预警设置成功',
  198 + type: 'success'
  199 + })
  200 + this.yujingSet = false
  201 + } else {
  202 + this.$message({
  203 + message: '预警设置失败',
  204 + type: 'error'
  205 + })
  206 + }
  207 + })
  208 +
  209 + },
  210 + openyujingSet() {
  211 + cereReminderSet({
  212 + reminderType: '2'
  213 + }).then(res => {
  214 + console.error(res)
  215 + this.zhong = res.data
  216 + })
  217 + this.yujingSet = true
  218 + },
  219 + addgzd(row) {
  220 + this.detailsinfo = row
  221 + this.onaction = '2'
  222 + },
  223 + details(row) {
  224 + this.detailsinfo = row
  225 + this.onaction = '3'
  226 + },
  227 + biangeng(row) {
  228 + alert(`合同变更 - 店铺ID: ${row.id}`);
  229 + },
  230 + xuyue(row) {
  231 + alert(`合同续约 - 店铺ID: ${row.id}`);
  232 + },
  233 + zhongzhi(row) {
  234 + alert(`合同终止 - 店铺ID: ${row.id}`);
  235 + },
  236 + async getAll() {
  237 + const res = await contractRenewalReminder(this.pagequery)
  238 + this.tableData = res.data.content
  239 + this.total = res.data.totalElements
  240 + },
  241 + removeonaction(e) {
  242 + console.error(e)
  243 + this.onaction = e
  244 + },
  245 + handleCurrentChange(val) {
  246 + this.pagequery.pageNumber = val - 1
  247 + this.getAll()
  248 + },
  249 + handleSizeChange(val) {
  250 + this.pagequery.pageSize = val
  251 + },
  252 + // 查询按钮
  253 + async onSubmit() {
  254 + this.pagequery.pageNumber = 0
  255 + this.getAll()
  256 + },
  257 + //重置按钮
  258 + resetting() {
  259 + this.pagequery = {
  260 + pageNumber: 0,
  261 + pageSize: 10,
  262 + dataStatus:'1',
  263 + contractName: ''
  264 + },
  265 + this.getAll()
  266 + },
  267 + }
  268 +
  269 + }
  270 +</script>
  271 +
  272 +<style scoped>
  273 + .zhuti {
  274 + padding: 0 20px 20px 20px;
  275 + min-height: calc(100vh - 50px - 20px);
  276 + background-color: #Fff;
  277 +
  278 + }
  279 + .chengeXia{
  280 + border-bottom: 6px solid #3F9B6A;padding-bottom: 4px;color: #3F9B6A;
  281 + }
  282 +
  283 + /deep/ .el-form-item__content {
  284 + line-height: 0;
  285 + }
  286 +
  287 +
  288 +
  289 + .formSearch {
  290 + display: flex;
  291 + width: 100%;
  292 + font-size: 14px;
  293 + justify-content: space-between;
  294 + padding-bottom: 10px;
  295 +
  296 + }
  297 +
  298 + .greens {
  299 + color: #3F9B6A;
  300 + }
  301 +
  302 + /deep/ .el-table__row {
  303 + font-size: 14px;
  304 + color:#000000e6;
  305 + height:42px;
  306 + }
  307 +
  308 + .fenye {
  309 + margin-top: 20px;
  310 + display: flex;
  311 + justify-content: flex-end;
  312 + }
  313 +
  314 + /deep/ .el-pagination.is-background .el-pager li:not(.disabled).active {
  315 + background-color: #3F9B6A;
  316 + }
  317 +
  318 + .el-row {
  319 + margin-bottom: 20px;
  320 +
  321 + &:last-child {
  322 + margin-bottom: 0;
  323 + }
  324 + }
  325 +
  326 + .el-col {
  327 + border-radius: 4px;
  328 + }
  329 +
  330 + .bg-purple-dark {
  331 + background: #99a9bf;
  332 + }
  333 +
  334 + .bg-purple {
  335 + background: #d3dce6;
  336 + }
  337 +
  338 + .bg-purple-light {
  339 + background: #e5e9f2;
  340 + }
  341 +
  342 + .grid-content {
  343 + border-radius: 4px;
  344 + min-height: 36px;
  345 + }
  346 +
  347 + .row-bg {
  348 + padding: 10px 0;
  349 + background-color: #f9fafc;
  350 + }
  351 +
  352 + /deep/ .bg-purple[data-v-0e3fe4ec] {
  353 + background: #fff;
  354 + height: 50px;
  355 + }
  356 + /deep/ .bg-purple[data-v-3bebae82]{
  357 + background: #fff;
  358 + height: 50px;
  359 + }
  360 +
  361 +::v-deep .bg-purple{
  362 + background: #fff;
  363 + height: 50px;
  364 + }
  365 + /deep/ .el-form--label-top .el-form-item__label {
  366 + padding: 0;
  367 + }
  368 +::v-deep .el-form-item{
  369 + margin-bottom:16px;
  370 +}
  371 + .device-form .el-form-item__label::after {
  372 + content: "*";
  373 + color: #1A1A1A;
  374 + margin-left: 5px;
  375 + font-size: 16px;
  376 + }
  377 +
  378 +
  379 + ::v-deep .el-dialog__wrapper {
  380 + .el-dialog__header {
  381 + background-color: #FAFAFA;
  382 + }
  383 + }
  384 + ::v-deep .el-input__inner:focus {
  385 + border: #3F9B6A 1px solid;
  386 + }
  387 + .dialog-footer {
  388 + display: flex;
  389 + justify-content: flex-end;
  390 + border-top: solid rgba(209, 209, 209, 0.2) 2px;
  391 + padding-top: 20px;
  392 + }
  393 + ::v-deep .el-input__inner:focus {
  394 + border: #3F9B6A 1px solid;
  395 + }
  396 + ::v-deep .el-input__inner:hover {
  397 + border: #3F9B6A 1px solid;
  398 + }
  399 + ::v-deep .el-select .el-input.is-focus .el-input__inner{
  400 + border-color:#3F9B6A
  401 + }
  402 +::v-deep .btn .el-button:focus,
  403 +.el-button:hover {
  404 + border: 1px solid #3F9B6A;
  405 +}
  406 +.el-select-dropdown__item.selected{
  407 + color: #3F9B6A;
  408 +}
  409 +
  410 +.el-pagination__sizes .el-input .el-input__inner:hover{
  411 + border-color: #3F9B6A;
  412 +}
  413 +::v-deep .el-dialog__wrapper{
  414 +
  415 + .dialog_css{
  416 + margin-right: 12px;
  417 + margin-top:61px !important;
  418 + .el-dialog__title {
  419 + font-size: 16px !important;
  420 + font-weight: 600;
  421 + color: #000;
  422 + }
  423 + }
  424 + .diaslog_zhong{
  425 + margin-left: 20%;
  426 + margin-top:61px !important;
  427 + }
  428 +
  429 +}
  430 + ::v-deep .diaslog_zhong{
  431 + margin-left: 20%;
  432 + margin-top:61px !important;
  433 + .el-dialog__header{
  434 + background-color:#fff;
  435 + border-bottom:1px solid #EFEFEF;
  436 + .el-dialog__title{
  437 + font-size: 14px;
  438 + color: #000000e6;
  439 + }
  440 + }
  441 + .el-dialog__body{
  442 + padding:10px 20px 30px 20px
  443 + }
  444 + }
  445 +
  446 + /deep/ .el-table_1_column_8 .hetong{
  447 + color:#7DBB9A;
  448 + text-decoration: underline;
  449 +}
  450 +/deep/ .first-column-bg {
  451 + background-color: #FAFAFA !important;
  452 + }
  453 +
  454 +.el-table tr{
  455 + height:56px;
  456 +}
  457 +
  458 +::v-deep .table3{
  459 + .el-table__empty-block{
  460 + display:none;
  461 + }
  462 +}
  463 +::v-deep .textarea{
  464 + width: 85%;
  465 + .el-textarea__inner{
  466 + width: 100%;
  467 + }
  468 +}
  469 +::v-deep .el-button--mini{
  470 + padding: 7px 10px;
  471 +}
  472 +::v-deep .pass_input{
  473 + width: 100%;
  474 + .el-input__inner {
  475 + border: none;
  476 + padding:0;
  477 + }
  478 + }
  479 +::v-deep .pass_select{
  480 + width: 100%;
  481 + .el-input__inner {
  482 + border: none;
  483 + padding:0;
  484 + }
  485 + .el-icon-arrow-up:before{
  486 + content:''
  487 + }
  488 +
  489 +}
  490 + /deep/ .el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell{
  491 + background-color: #fff;
  492 +}
  493 +
  494 +
  495 +</style>
  496 +<style lang="scss" scoped>
  497 + ::v-deep .bian_css{
  498 + .el-dialog__header{
  499 + padding:0px;
  500 + }
  501 + }
  502 + ::v-deep .buttonHover:hover{
  503 + color:#3f9b6a !important;
  504 + border-color: #c5e1d2 !important;
  505 + background-color: #ecf5f0 !important;
  506 + outline: none;
  507 + }
  508 + ::v-deep .el-pagination__total{
  509 + position: absolute;
  510 + left: 33px;
  511 + }
  512 +</style>
  513 +
... ...
admin-web-master/src/views/shopRental/renewalMan/index.vue
... ... @@ -3,18 +3,26 @@
3 3 <div class="zhuti" v-if="onaction == '1'">
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   - style="color:#000000e6">续租管理</span></div>
  6 + style="color:#000000e6">退租决算管理</span></div>
7 7 </div>
8 8 <!-- 线上 -->
9 9 <div>
10 10 <!-- 搜索 -->
11 11 <div class="formSearch">
12 12 <el-form :inline="true" :model="pagequery">
13   - <el-form-item label="合同名称">
  13 + <!-- <el-form-item label="合同名称">
14 14 <el-input v-model="pagequery.contractName" placeholder="请输入" style="width:168px;" />
15 15 </el-form-item>
  16 + <el-form-item label="合同状态" prop="status">
  17 + <el-select v-model="pagequery.status" clearable placeholder="请选择" style="width: 168px;margin-right: 15px">
  18 + <el-option label="使用中" value="1"></el-option>
  19 + <el-option label="往期合同" value="2"></el-option>
  20 + <el-option label="已终止" value="3"></el-option>
  21 +
  22 + </el-select>
  23 + </el-form-item> -->
16 24 </el-form>
17   -
  25 +
18 26 <div>
19 27 <el-button @click="onSubmit" style="background-color: #3F9B6A;color: #fff">查询
20 28 </el-button>
... ... @@ -24,54 +32,55 @@
24 32 </div>
25 33 </div>
26 34 <div style="margin-bottom: 20px;">
27   - <el-button @click="openyujingSet()" style="background-color: #3F9B6A;color: #fff;padding:8px 15px;"
28   - icon="el-icon-circle-plus-outline">预警设置</el-button>
29   - <!-- <el-button @click="" style="background-color: #3F9B6A;color: #fff">批量导入</el-button> -->
30 35 </div>
31 36 <!-- 表格 -->
32   -
33 37 <el-table :data="tableData"
34 38 :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}">
35 39 <el-table-column label="承租人名称">
36 40 <template slot-scope="scope">
37   - {{scope.row.tenantName}}
38   -
  41 + {{scope.row.cereContractInformation.tenantName}}
39 42 </template>
40 43 </el-table-column>
41 44 <el-table-column label="租赁类型">
42 45 <template slot-scope="scope">
43   - {{scope.row.contractType}}
44   -
  46 + {{scope.row.cereContractInformation.contractType}}
45 47 </template>
46 48 </el-table-column>
47   - <el-table-column label="租金/周期">
  49 + <el-table-column label="手机号">
48 50 <template slot-scope="scope">
49   - {{scope.row.contractAmount}} / {{scope.row.paymentCycle}}
50   -
  51 + {{scope.row.cereContractInformation.tenantTelephone}}
51 52 </template>
52 53 </el-table-column>
53   - <el-table-column label="合同编号">
  54 + <el-table-column label="资源名称">
54 55 <template slot-scope="scope">
55   - {{scope.row.contractNumber}}
56   -
  56 + {{scope.row.cereContractInformation.cereBasicInformationShop.shopName || scope.row.cereContractInformation.cereAdvertisingInformation.advertisingName || scope.row.cereContractInformation.cereBasicInformationVenue.venueName}}
57 57 </template>
58 58 </el-table-column>
59 59 <el-table-column label="租赁起止时间">
60 60 <template slot-scope="scope">
61   - {{scope.row.contractSigningDate}}至{{scope.row.contractTerminationDate}}
62   -
  61 + {{scope.row.cereContractInformation.contractSigningDate}}至{{scope.row.cereContractInformation.contractTerminationDate}}
63 62 </template>
64 63 </el-table-column>
65   - <el-table-column label="到期天数">
  64 + <el-table-column label="申请时间">
66 65 <template slot-scope="scope">
67   - {{ calculateDaysUntilExpiration(scope.row.contractTerminationDate)}}
68   -
  66 + {{scope.row.createTime}}
69 67 </template>
70 68 </el-table-column>
71   - <el-table-column label="操作" fixed="right">
  69 + <el-table-column prop="status" label="状态">
72 70 <template slot-scope="scope">
73   - <div @click="details(scope.row)" class="tableBtn greens">查看</div>
74   - <!-- <div @click="addgzd(scope.row)" class="tableBtn greens">发送提醒</div> -->
  71 + <span v-if='scope.row.status == 1'>待审核</span>
  72 + <span v-else-if='scope.row.status == 2'>已同意</span>
  73 + <span v-else-if='scope.row.status == 3'>已拒绝</span>
  74 + <span v-else>待发起</span>
  75 + </template>
  76 + </el-table-column>
  77 + <el-table-column label="操作" min-width="150" fixed="right">
  78 + <template slot-scope="scope">
  79 + <div @click="details(scope.row,'1')" class="tableBtn greens">查看</div>
  80 + <!-- <div v-if='scope.row.status == 2' @click="addgzd(scope.row)" class="tableBtn greens">生成退租告知单</div> -->
  81 + <div v-if='scope.row.status == 1 && scope.row.isInterior == 1' @click="details(scope.row,'2')" class="tableBtn greens">审核</div>
  82 + <div v-if="scope.row.status == null || scope.row.status == '0'" @click="remove(scope.row)" class="tableBtn greens">内部审核</div>
  83 + <div v-if="scope.row.status == null || scope.row.status == '0'" @click="openOAitem(scope.row)" class="tableBtn greens">OA审核</div>
75 84 </template>
76 85 </el-table-column>
77 86 </el-table>
... ... @@ -92,37 +101,23 @@
92 101  
93 102  
94 103  
95   - <el-dialog title="预警设置" :visible.sync="yujingSet" style="padding: 0;" width="60%" center :close-on-click-modal="false" :show-close="false" top="20vh">
96   - <div>
97   - <div style="margin-bottom: 20px;">
98   - <el-form ref="form" :model="zhong" label-width="120px">
99   - <el-form-item label="合同剩余天数">
100   - <el-input v-model="zhong.contractExpirationDays"></el-input>
101   - </el-form-item>
102   - <el-form-item label="提醒内容">
103   - <wang-editor v-model="zhong.reminderContent" ref="editor" :height="200"></wang-editor>
104   - </el-form-item>
105   -
106   -
107   -
108   - </el-form>
109   -
110   - </div>
111   - <div style="display: flex;justify-content: flex-end;">
112   - <el-button @click="yuclose" class="buttonHover"
113   - style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;">返回</el-button>
114   - <el-button @click="yuChenk" style="background-color: #3F9B6A;color: #fff">确定</el-button>
115   - </div>
  104 + <div class="zhuti" v-if="onaction == '2'">
  105 + <div style="height:58px;line-height:58px;">
  106 + <div style="color:#0006"> <span>退租决算管理</span> <span style="padding:0 5px;">></span> <span
  107 + style="color:#000000e6">新增</span></div>
116 108 </div>
117   - </el-dialog>
118 109  
  110 + <div style="padding: 20px 20px 20px 0;">
  111 + <add :info="detailsinfo" @removeonaction="removeonaction"></add>
  112 + </div>
  113 + </div>
119 114 <div class="zhuti" v-if="onaction == '3'">
120 115 <div style="height:58px;line-height:58px;">
121   - <div style="color:#0006"> <span>出租管理</span> <span style="padding:0 5px;">></span> <span
  116 + <div style="color:#0006"> <span>退租决算管理</span> <span style="padding:0 5px;">></span> <span
122 117 style="color:#000000e6">查看</span></div>
123 118 </div>
124 119 <div>
125   - <busCha :info="detailsinfo" @removeonaction="removeonaction"></busCha>
  120 + <busCha :issp="issp" :info="detailsinfo.cereContractInformation" :newinfo="detailsinfo" @removeonaction="removeonaction"></busCha>
126 121 </div>
127 122 <!-- <div>
128 123 <el-button class="buttonHover"
... ... @@ -130,117 +125,316 @@
130 125 @click="removeonaction('1')">返回</el-button>
131 126 </div> -->
132 127 </div>
  128 + <div class="zhuti" v-if="onaction == '4'">
  129 + <div style="height:58px;line-height:58px;">
  130 + <div style="color:#0006"> <span>退租决算管理</span> <span style="padding:0 5px;">></span> <span
  131 + style="color:#000000e6">{{contractChangeReason}}</span></div>
  132 + </div>
133 133  
  134 + <div style="padding: 20px 20px 20px 0;">
  135 + <!-- <addremove :info="detailsinfo" :contractChangeReason="contractChangeReason" @removeonaction="removeonaction">
  136 + </addremove> -->
  137 + <!-- <add :info="detailsinfo" :contractChangeReason="contractChangeReason" @removeonaction="removeonaction"></add> -->
  138 + </div>
  139 + </div>
  140 + <el-dialog :visible.sync="openoa" title="OA" width="65%" append-to-body center :close-on-click-modal="false"
  141 + :close-on-press-escape="false" :show-close="false">
  142 + <el-form v-if="openoa" style="padding-right: 50px;padding-top: 20px;" :model="ruleForm" :rules="rulesoa" ref="oaForm" label-width="130px" class="demo-ruleForm">
  143 + <el-form-item label="审核人" prop="reviewers">
  144 + <el-select v-model="ruleForm.reviewers" placeholder="请选择" style="width: 100%;">
  145 + <el-option label="陈阳" value="1858710592190291968"></el-option>
  146 + </el-select>
  147 + </el-form-item>
  148 +
  149 + </el-form>
  150 + <div style="display: flex; justify-content: flex-end; align-items: center;padding: 20px 50px;">
  151 + <el-button @click="openoa =false" class="buttonHover"
  152 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;">取消</el-button>
  153 + <el-button @click="OA" style="background-color: #3F9B6A;color: #fff;">确定</el-button>
  154 + </div>
  155 + </el-dialog>
134 156 </div>
135   - <!-- </div> -->
  157 +
136 158  
137 159 </template>
138 160  
139 161 <script>
140   - import {
141   - contractRenewalReminder,
  162 + import {
  163 + changeContractInformationqueryByPage,changeContractInformationedit,generalBySurrenderTenancy
142 164 } from '@/api/newly.js'
143 165 import {
144   - cereReminderSet,
145   - cereReminderSetedit
146   - } from '../../../api/commodityLease.js'
147   - // import add from './add'
148   - import busCha from '../../../components/buscha/busCha'
149   - import wangEditor from "@/components/editor/index"
  166 + contractGetAllnew,
  167 + edit,
  168 + editById
  169 + } from '@/api/manage.js'
  170 +// import add from './add'
  171 + import addremove from '@/components/add/addremoveht.vue'
  172 + import busCha from '@/components/buscha/busChanew'
  173 + import {
  174 + cereContractInformation
  175 + } from '@/api/commodityLease.js'
  176 + import {
  177 + modifyResourceStatus,general
  178 + } from '@/api/newly.js'
  179 + import axios from 'axios'
150 180 export default {
151 181 data() {
152 182 return {
153   - zhong: {
154   -
  183 + issp:'1',
  184 + rulesoa: {
  185 + reviewers: [{
  186 + required: true,
  187 + message: '请选择审核人',
  188 + trigger: 'blur'
  189 + }, ],
155 190 },
156   - yujingSet: false,
  191 + ruleForm:{
  192 + reviewers:""
  193 + },
  194 + openoa:false,
  195 + contractChangeReason: '',
157 196 detailsinfo: {},
158 197 pagequery: {
  198 + // status:'1',
159 199 pageNumber: 0,
160 200 pageSize: 10,
161   - dataStatus:'1',
  201 + contractType:'1',
162 202 contractName: ''
163 203 },
164 204 tableData: [],
165 205 total: 0,
166 206 onaction: '1',
167   - info: {}
  207 + formInline: {},
  208 + oainfo:{}
168 209 }
169 210 },
170 211 components: {
  212 + // add,
171 213 busCha,
172   - wangEditor
  214 + addremove
173 215 },
174 216 created() {
175 217 this.getAll()
176   -
177 218 },
178 219 methods: {
179   -
180   - calculateDaysUntilExpiration(endDateString) {
181   - const endDate = new Date(endDateString);
182   - const today = new Date();
183   - const timeDifference = endDate - today;
184   - const daysDifference = Math.ceil(timeDifference / (1000 * 60 * 60 * 24));
185   - return daysDifference >= 0 ? daysDifference : '已过期';
186   - },
187   -
188   - yuclose() {
189   - this.yujingSet = false
  220 + addgzd(row) {
  221 + this.detailsinfo = row
  222 + this.onaction = '2'
  223 + },
  224 + remove(row) {
  225 + let that = this
  226 + this.$confirm('是否确定内部审核吗?', '提示', {
  227 + confirmButtonText: '确定',
  228 + cancelButtonText: '取消',
  229 + type: 'warning'
  230 + }).then(() => {
  231 + changeContractInformationedit({
  232 + ...row,
  233 + isInterior:'1',
  234 + status: '1',
  235 + }).then(res => {
  236 + console.error(res)
  237 + if (res.code == 200) {
  238 + this.$message({
  239 + message: '处理成功',
  240 + type: 'success'
  241 + })
  242 + this.resetting()
  243 +
  244 + } else {
  245 + this.$message({
  246 + message: res.msg,
  247 + type: 'error'
  248 + })
  249 + }
  250 +
  251 + })
  252 + })
  253 + },
  254 + openOAitem(row){
  255 + this.oainfo = row
  256 + this.ruleForm.reviewers = ''
  257 + this.openoa = true
  258 + },
  259 + downloadBase64File(base64String, fileName, mimeType) {
  260 + try {
  261 + // 将 Base64 字符串解码为二进制数据
  262 + const byteCharacters = atob(base64String);
  263 + const byteNumbers = new Array(byteCharacters.length);
  264 + for (let i = 0; i < byteCharacters.length; i++) {
  265 + byteNumbers[i] = byteCharacters.charCodeAt(i);
  266 + }
  267 + const byteArray = new Uint8Array(byteNumbers);
  268 +
  269 + // 创建 Blob 对象
  270 + const blob = new Blob([byteArray], { type: mimeType });
  271 +
  272 + // 生成下载链接并触发下载
  273 + const url = window.URL.createObjectURL(blob);
  274 + const link = document.createElement('a');
  275 + link.href = url;
  276 + link.setAttribute('download', fileName); // 设置下载文件名
  277 + document.body.appendChild(link);
  278 + link.click();
  279 +
  280 + // 清理生成的 URL 对象
  281 + window.URL.revokeObjectURL(url);
  282 + document.body.removeChild(link);
  283 +
  284 + console.log('文件下载成功:', fileName);
  285 + } catch (error) {
  286 + console.error('文件下载失败:', error);
  287 + }
190 288 },
191   - yuChenk() {
192   - console.error(this.zhong)
193   - cereReminderSetedit(this.zhong).then(res => {
194   - console.error(res)
195   - if (res.code == 200) {
  289 + async OA(){
  290 + // console.error(row)
  291 + let row = this.oainfo
  292 + await this.$refs.oaForm.validate((valid) => {
  293 +
  294 + })
  295 + if(!this.ruleForm.reviewers) {
  296 + return
  297 + }
  298 + const loading = this.$loading({
  299 + fullscreen: true
  300 + })
  301 + this.openoa = false
  302 + const response = await axios({
  303 + method: 'get',
  304 + url: this.$baseURL + row.cereContractInformation.appendicesContract, // 文件 URL
  305 + responseType: 'arraybuffer' // 指定响应类型为二进制数据
  306 + });
  307 + const file = new File([response.data], 'filename.txt', { type: 'text/plain' });
  308 + let fd = new FormData();
  309 + fd.append('files', file);
  310 + fd.append('reviewers', this.ruleForm.reviewers);
  311 + fd.append('fileNames', '合同.docx');
  312 + fd.append('title', `${row.cereContractInformation.contractName}退租审批`);
  313 + fd.append('changeContractInformationId', row.id);
  314 + // fd.append('sponsor', userData.user.id);
  315 + fd.append('sponsor', 11);
  316 + console.log(fd);
  317 +
  318 + generalBySurrenderTenancy(fd).then(res => {
  319 + console.log(res);
  320 + let data = JSON.parse(res.data)
  321 + if(data.code == '0'){
196 322 this.$message({
197   - message: '预警设置成功',
198   - type: 'success'
  323 + type: 'success',
  324 + message: '发起成功'
199 325 })
200   - this.yujingSet = false
  326 + loading.close();
  327 + this.resetting()
201 328 } else {
202 329 this.$message({
203   - message: '预警设置失败',
204   - type: 'error'
  330 + type: 'error',
  331 + message: data.message
205 332 })
206 333 }
207 334 })
  335 +
208 336  
209 337 },
210   - openyujingSet() {
211   - cereReminderSet({
212   - reminderType: '2'
213   - }).then(res => {
214   - console.error(res)
215   - this.zhong = res.data
216   - })
217   - this.yujingSet = true
  338 + gettime() {
  339 + // 获取当前时间
  340 + let currentTime = new Date();
  341 +
  342 + // 获取年份
  343 + let year = currentTime.getFullYear();
  344 +
  345 + // 获取月份(注意月份是从0开始计数的,所以需要加1)
  346 + let month = currentTime.getMonth() + 1;
  347 +
  348 + // 获取日期
  349 + let day = currentTime.getDate();
  350 +
  351 + // 获取小时
  352 + let hours = currentTime.getHours();
  353 +
  354 + // 获取分钟
  355 + let minutes = currentTime.getMinutes();
  356 +
  357 + // 获取秒数
  358 + let seconds = currentTime.getSeconds();
  359 +
  360 + // 获取毫秒数
  361 + let milliseconds = currentTime.getMilliseconds();
  362 +
  363 + // 格式化时间为 YYYY-MM-DD
  364 + let formattedDate = `${year}-${month.toString().padStart(2, '0')}-${day.toString().padStart(2, '0')}`;
  365 +
  366 + // 格式化时间为 HH:MM:SS
  367 + let formattedTime =
  368 + `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`;
  369 +
  370 + // 格式化时间为 YYYY-MM-DD HH:MM:SS
  371 + let formattedDateTime = `${formattedDate} ${formattedTime}`;
  372 + return formattedDateTime
  373 +
218 374 },
219   - addgzd(row) {
220   - this.detailsinfo = row
221   - this.onaction = '2'
  375 + removeinfozz(row, e) {
  376 + let that = this
  377 + this.$confirm('确定要终止合同吗?', '提示', {
  378 + confirmButtonText: '确定',
  379 + cancelButtonText: '取消',
  380 + type: 'warning'
  381 + }).then(() => {
  382 + cereContractInformation({
  383 + ...row,
  384 + contractChangeReason: e,
  385 + status: '3',
  386 + originalContractCode: row.contractNumber,
  387 + updateDate: that.gettime(),
  388 + createDate: that.gettime(),
  389 + contractChangeTime: that.gettime(),
  390 + updateUser:localStorage.getItem('roleName')
  391 + }).then(res => {
  392 + console.error(res)
  393 + if (res.code == 200) {
  394 + this.$message({
  395 + message: '终止成功',
  396 + type: 'success'
  397 + })
  398 + let c1 = row.shopNumber
  399 + modifyResourceStatus({
  400 + resourcesId: c1,
  401 + status:"0"
  402 + }).then(res => {
  403 + console.error(res)
  404 + })
  405 + // this.$emit('removeonaction', '1')
  406 + this.getAll()
  407 + } else {
  408 + this.$message({
  409 + message: res.msg,
  410 + type: 'error'
  411 + })
  412 + }
  413 +
  414 + })
  415 + })
222 416 },
223   - details(row) {
  417 + details(row,e) {
  418 + this.issp = e
224 419 this.detailsinfo = row
225 420 this.onaction = '3'
226 421 },
227   - biangeng(row) {
228   - alert(`合同变更 - 店铺ID: ${row.id}`);
229   - },
230   - xuyue(row) {
231   - alert(`合同续约 - 店铺ID: ${row.id}`);
232   - },
233   - zhongzhi(row) {
234   - alert(`合同终止 - 店铺ID: ${row.id}`);
  422 + removeinfo(row, e) {
  423 + this.contractChangeReason = e
  424 + // console.error(this.contractChangeReason)
  425 + this.detailsinfo = row
  426 + this.onaction = '4'
235 427 },
236 428 async getAll() {
237   - const res = await contractRenewalReminder(this.pagequery)
  429 + const res = await changeContractInformationqueryByPage(this.pagequery)
238 430 this.tableData = res.data.content
239 431 this.total = res.data.totalElements
240 432 },
241 433 removeonaction(e) {
242 434 console.error(e)
243 435 this.onaction = e
  436 + this.pagequery.pageNumber = 0
  437 + this.getAll()
244 438 },
245 439 handleCurrentChange(val) {
246 440 this.pagequery.pageNumber = val - 1
... ... @@ -259,7 +453,8 @@
259 453 this.pagequery = {
260 454 pageNumber: 0,
261 455 pageSize: 10,
262   - dataStatus:'1',
  456 + status:'',
  457 + contractType:'1',
263 458 contractName: ''
264 459 },
265 460 this.getAll()
... ... @@ -270,29 +465,38 @@
270 465 </script>
271 466  
272 467 <style scoped>
  468 + .el-table {
  469 + /* height: calc(100vh - 330px); */
  470 + }
  471 +
273 472 .zhuti {
274   - padding: 0 20px 20px 20px;
  473 + padding: 0 20px 20px 20px;
275 474 min-height: calc(100vh - 50px - 20px);
276 475 background-color: #Fff;
277 476  
278 477 }
279   - .chengeXia{
280   - border-bottom: 6px solid #3F9B6A;padding-bottom: 4px;color: #3F9B6A;
  478 +
  479 + .chengeXia {
  480 + border-bottom: 6px solid #3F9B6A;
  481 + padding-bottom: 4px;
  482 + color: #3F9B6A;
281 483 }
282 484  
283   - /deep/ .el-form-item__content {
  485 + /* /deep/ .el-form-item__content {
284 486 line-height: 0;
285   - }
  487 + } */
286 488  
287   -
  489 + .tableBtn {
  490 + display: inline-block;
  491 + margin-right: 10px;
  492 + color: #ACACAC;
  493 + }
288 494  
289 495 .formSearch {
290 496 display: flex;
291 497 width: 100%;
292 498 font-size: 14px;
293 499 justify-content: space-between;
294   - padding-bottom: 10px;
295   -
296 500 }
297 501  
298 502 .greens {
... ... @@ -301,27 +505,21 @@
301 505  
302 506 /deep/ .el-table__row {
303 507 font-size: 14px;
304   - color:#000000e6;
305   - height:42px;
  508 + color: #000000e6;
  509 + height: 42px;
306 510 }
307 511  
308 512 .fenye {
309 513 margin-top: 20px;
310 514 display: flex;
311   - justify-content: flex-end;
  515 + justify-content: space-between;
312 516 }
313 517  
314 518 /deep/ .el-pagination.is-background .el-pager li:not(.disabled).active {
315 519 background-color: #3F9B6A;
316 520 }
317 521  
318   - .el-row {
319   - margin-bottom: 20px;
320 522  
321   - &:last-child {
322   - margin-bottom: 0;
323   - }
324   - }
325 523  
326 524 .el-col {
327 525 border-radius: 4px;
... ... @@ -353,161 +551,124 @@
353 551 background: #fff;
354 552 height: 50px;
355 553 }
356   - /deep/ .bg-purple[data-v-3bebae82]{
  554 +
  555 + /deep/ .bg-purple[data-v-3bebae82] {
357 556 background: #fff;
358 557 height: 50px;
359 558 }
360 559  
361   -::v-deep .bg-purple{
  560 + ::v-deep .bg-purple {
362 561 background: #fff;
363 562 height: 50px;
364 563 }
  564 +
365 565 /deep/ .el-form--label-top .el-form-item__label {
366 566 padding: 0;
367 567 }
368   -::v-deep .el-form-item{
369   - margin-bottom:16px;
370   -}
371   - .device-form .el-form-item__label::after {
372   - content: "*";
373   - color: #1A1A1A;
374   - margin-left: 5px;
375   - font-size: 16px;
376   - }
377   -
378 568  
379 569 ::v-deep .el-dialog__wrapper {
380 570 .el-dialog__header {
381   - background-color: #FAFAFA;
  571 + background-color: #fff;
382 572 }
383 573 }
384   - ::v-deep .el-input__inner:focus {
385   - border: #3F9B6A 1px solid;
386   - }
  574 +
  575 +
  576 +
387 577 .dialog-footer {
388 578 display: flex;
389 579 justify-content: flex-end;
390 580 border-top: solid rgba(209, 209, 209, 0.2) 2px;
391 581 padding-top: 20px;
392 582 }
393   - ::v-deep .el-input__inner:focus {
394   - border: #3F9B6A 1px solid;
395   - }
396   - ::v-deep .el-input__inner:hover {
397   - border: #3F9B6A 1px solid;
398   - }
399   - ::v-deep .el-select .el-input.is-focus .el-input__inner{
400   - border-color:#3F9B6A
401   - }
402   -::v-deep .btn .el-button:focus,
403   -.el-button:hover {
404   - border: 1px solid #3F9B6A;
405   -}
406   -.el-select-dropdown__item.selected{
  583 +
  584 +
  585 +
  586 +
  587 + .el-select-dropdown__item.selected {
407 588 color: #3F9B6A;
408   -}
  589 + }
  590 +
  591 + ::v-deep .el-dialog__title {
  592 + color: #000;
  593 + }
409 594  
410   -.el-pagination__sizes .el-input .el-input__inner:hover{
411   - border-color: #3F9B6A;
412   -}
413   -::v-deep .el-dialog__wrapper{
  595 + ::v-deep .el-dialog__wrapper {
414 596  
415   - .dialog_css{
  597 + .dialog_css {
416 598 margin-right: 12px;
417   - margin-top:61px !important;
418   - .el-dialog__title {
419   - font-size: 16px !important;
420   - font-weight: 600;
421   - color: #000;
422   - }
  599 + margin-top: 61px !important;
  600 +
  601 + }
  602 +
  603 + .diaslog_zhong {
  604 + margin-left: 222px;
  605 + margin-top: 61px !important;
  606 + }
  607 +
  608 + }
  609 +
  610 + /deep/ .el-table_1_column_8 .hetong {
  611 + color: #7DBB9A;
  612 + text-decoration: underline;
423 613 }
424   - .diaslog_zhong{
425   - margin-left: 20%;
426   - margin-top:61px !important;
427   - }
428   -
429   -}
430   - ::v-deep .diaslog_zhong{
431   - margin-left: 20%;
432   - margin-top:61px !important;
433   - .el-dialog__header{
434   - background-color:#fff;
435   - border-bottom:1px solid #EFEFEF;
436   - .el-dialog__title{
437   - font-size: 14px;
438   - color: #000000e6;
439   - }
440   - }
441   - .el-dialog__body{
442   - padding:10px 20px 30px 20px
443   - }
444   - }
445   -
446   - /deep/ .el-table_1_column_8 .hetong{
447   - color:#7DBB9A;
448   - text-decoration: underline;
449   -}
450   -/deep/ .first-column-bg {
  614 +
  615 + /deep/ .first-column-bg {
451 616 background-color: #FAFAFA !important;
452 617 }
453 618  
454   -.el-table tr{
455   - height:56px;
456   -}
  619 + .el-table tr {
  620 + height: 56px;
  621 + }
457 622  
458   -::v-deep .table3{
459   - .el-table__empty-block{
460   - display:none;
  623 + ::v-deep .table3 {
  624 + .el-table__empty-block {
  625 + display: none;
  626 + }
461 627 }
462   -}
463   -::v-deep .textarea{
464   - width: 85%;
465   - .el-textarea__inner{
466   - width: 100%;
  628 +
  629 + ::v-deep .textarea {
  630 + width: 85%;
  631 +
  632 + .el-textarea__inner {
  633 + width: 100%;
  634 + }
467 635 }
468   -}
469   -::v-deep .el-button--mini{
470   - padding: 7px 10px;
471   -}
472   -::v-deep .pass_input{
  636 +
  637 + ::v-deep .el-button--mini {
  638 + padding: 7px 10px;
  639 + }
  640 +
  641 + ::v-deep .pass_input {
473 642 width: 100%;
  643 +
474 644 .el-input__inner {
475 645 border: none;
476   - padding:0;
477   - }
478   - }
479   -::v-deep .pass_select{
480   - width: 100%;
481   - .el-input__inner {
482   - border: none;
483   - padding:0;
  646 + padding: 0;
484 647 }
485   - .el-icon-arrow-up:before{
486   - content:''
487 648 }
488 649  
489   -}
490   - /deep/ .el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell{
491   - background-color: #fff;
492   -}
  650 + ::v-deep .pass_select {
  651 + width: 100%;
493 652  
  653 + .el-input__inner {
  654 + border: none;
  655 + padding: 0;
  656 + }
494 657  
495   -</style>
496   -<style lang="scss" scoped>
497   - ::v-deep .bian_css{
498   - .el-dialog__header{
499   - padding:0px;
  658 + .el-icon-arrow-up:before {
  659 + content: ''
500 660 }
  661 +
501 662 }
502   - ::v-deep .buttonHover:hover{
503   - color:#3f9b6a !important;
504   - border-color: #c5e1d2 !important;
505   - background-color: #ecf5f0 !important;
506   - outline: none;
507   - }
508   - ::v-deep .el-pagination__total{
509   - position: absolute;
510   - left: 33px;
  663 +
  664 + /deep/ .el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell {
  665 + background-color: #fff;
511 666 }
512 667 </style>
  668 +<style lang="scss" scoped>
  669 + ::v-deep .el-dialog__body {
  670 + padding: 0 0 !important;
  671 + }
513 672  
  673 +
  674 +</style>
... ...
admin-web-master/src/views/shopRental/rentTermination/index copy 3.vue 0 → 100644
  1 +<template>
  2 + <div style="background-color:#f7f7f7;padding:10px 10px;">
  3 + <div class="zhuti" v-if="onaction == '1'">
  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 + <!-- 线上 -->
  9 + <div>
  10 + <!-- 搜索 -->
  11 + <div class="formSearch">
  12 + <el-form :inline="true" :model="pagequery">
  13 + <el-form-item label="合同名称">
  14 + <el-input v-model="pagequery.contractName" placeholder="请输入" style="width:168px;" />
  15 + </el-form-item>
  16 + </el-form>
  17 +
  18 + <div>
  19 + <el-button @click="onSubmit" style="background-color: #3F9B6A;color: #fff">查询
  20 + </el-button>
  21 + <el-button @click="resetting" class="buttonHover"
  22 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;">重置
  23 + </el-button>
  24 + </div>
  25 + </div>
  26 + <!-- <div style="margin-bottom: 20px;">
  27 + <el-button @click="removeonaction('2')" style="background-color: #3F9B6A;color: #fff;padding:8px 15px;"
  28 + icon="el-icon-circle-plus-outline">新增</el-button>
  29 + <el-button @click="" style="background-color: #3F9B6A;color: #fff">批量导入</el-button>
  30 + </div> -->
  31 + <!-- 表格 -->
  32 +
  33 + <el-table :data="tableData"
  34 + :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}">
  35 + <el-table-column label="承租人名称">
  36 + <template slot-scope="scope">
  37 + {{scope.row.cereContractInformation.tenantName}}
  38 +
  39 + </template>
  40 + </el-table-column>
  41 + <el-table-column label="租赁类型">
  42 + <template slot-scope="scope">
  43 + {{scope.row.cereContractInformation.contractType}}
  44 +
  45 + </template>
  46 + </el-table-column>
  47 + <el-table-column label="手机号">
  48 + <template slot-scope="scope">
  49 + {{scope.row.cereContractInformation.tenantTelephone}}
  50 +
  51 + </template>
  52 + </el-table-column>
  53 + <el-table-column label="资源名称">
  54 + <template slot-scope="scope">
  55 + {{scope.row.cereContractInformation.cereBasicInformationShop.shopName || scope.row.cereContractInformation.cereAdvertisingInformation.advertisingName || scope.row.cereContractInformation.cereBasicInformationVenue.venueName}}
  56 +
  57 + </template>
  58 + </el-table-column>
  59 + <el-table-column label="租赁起止时间">
  60 + <template slot-scope="scope">
  61 + {{scope.row.cereContractInformation.contractSigningDate}}至{{scope.row.cereContractInformation.contractTerminationDate}}
  62 +
  63 + </template>
  64 + </el-table-column>
  65 + <el-table-column label="申请时间">
  66 + <template slot-scope="scope">
  67 + {{scope.row.createTime}}
  68 +
  69 + </template>
  70 + </el-table-column>
  71 + <el-table-column label="操作" fixed="right">
  72 + <template slot-scope="scope">
  73 + <div @click="details(scope.row)" class="tableBtn greens">查看</div>
  74 + <div @click="addgzd(scope.row)" class="tableBtn greens">生成退租告知单</div>
  75 + </template>
  76 + </el-table-column>
  77 + </el-table>
  78 + <div style="display: flex;justify-content: space-between;" class="bom">
  79 + <div style="font-size: 14px;">共 <span style="color: #3F9B6A;">{{total}}</span> 项数据</div>
  80 + <el-pagination :current-page="pagequery.pageNumber+1" :page-sizes="[10, 20, 50, 100]" :page-size="10" background
  81 + small layout="prev, pager, next" :total="total" @size-change="handleSizeChange"
  82 + @current-change="handleCurrentChange">
  83 + </el-pagination>
  84 + </div>
  85 +
  86 + </div>
  87 +
  88 + </div>
  89 +
  90 +
  91 +
  92 +
  93 +
  94 +
  95 + <div class="zhuti" v-if="onaction == '2'">
  96 + <div style="height:58px;line-height:58px;">
  97 + <div style="color:#0006"> <span>退租决算管理</span> <span style="padding:0 5px;">></span> <span
  98 + style="color:#000000e6">新增</span></div>
  99 + </div>
  100 +
  101 + <div style="padding: 20px 20px 20px 0;">
  102 + <add :info="detailsinfo" @removeonaction="removeonaction"></add>
  103 + </div>
  104 + </div>
  105 + <div class="zhuti" v-if="onaction == '3'">
  106 + <div style="height:58px;line-height:58px;">
  107 + <div style="color:#0006"> <span>退租决算管理</span> <span style="padding:0 5px;">></span> <span
  108 + style="color:#000000e6">查看</span></div>
  109 + </div>
  110 + <div>
  111 + <busCha :info="detailsinfo" @removeonaction="removeonaction"></busCha>
  112 + </div>
  113 + <!-- <div>
  114 + <el-button class="buttonHover"
  115 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;margin-top: 20px;"
  116 + @click="removeonaction('1')">返回</el-button>
  117 + </div> -->
  118 + </div>
  119 + </div>
  120 +
  121 +
  122 +</template>
  123 +
  124 +<script>
  125 + import {
  126 + changeContractInformationqueryByPage,
  127 + } from '@/api/newly.js'
  128 + import add from './add'
  129 + import busCha from '../../../components/buscha/busCha'
  130 + export default {
  131 + data() {
  132 + return {
  133 + detailsinfo:{},
  134 + pagequery: {
  135 + pageNumber: 0,
  136 + pageSize: 10,
  137 + contractName: '',
  138 + dataStatus:'1',
  139 + },
  140 + tableData: [],
  141 + total: 0,
  142 + onaction: '1',
  143 + info:{}
  144 + }
  145 + },
  146 + components: {
  147 + add,busCha
  148 + },
  149 + created() {
  150 + this.getAll()
  151 +
  152 + },
  153 + methods: {
  154 + addgzd(row) {
  155 + this.detailsinfo = row
  156 + this.onaction = '2'
  157 + },
  158 + details(row) {
  159 + this.detailsinfo = row
  160 + this.onaction = '3'
  161 + },
  162 + biangeng(row) {
  163 + alert(`合同变更 - 店铺ID: ${row.id}`);
  164 + },
  165 + xuyue(row) {
  166 + alert(`合同续约 - 店铺ID: ${row.id}`);
  167 + },
  168 + zhongzhi(row) {
  169 + alert(`合同终止 - 店铺ID: ${row.id}`);
  170 + },
  171 + async getAll() {
  172 + const res = await changeContractInformationqueryByPage(this.pagequery)
  173 + this.tableData = res.data.content
  174 + this.total = res.data.totalElements
  175 + },
  176 + removeonaction(e) {
  177 + console.error(e)
  178 + this.onaction = e
  179 + },
  180 + handleCurrentChange(val) {
  181 + this.pagequery.pageNumber = val-1
  182 + this.getAll()
  183 + },
  184 + handleSizeChange(val) {
  185 + this.pagequery.pageSize = val
  186 + },
  187 + // 查询按钮
  188 + async onSubmit() {
  189 + this.pagequery.pageNumber = 0
  190 + this.getAll()
  191 + },
  192 + //重置按钮
  193 + resetting() {
  194 + this.pagequery = {
  195 + pageNumber: 0,
  196 + pageSize: 10,
  197 + contractName: '',
  198 + dataStatus:'1',
  199 + },
  200 + this.getAll()
  201 + },
  202 + }
  203 +
  204 + }
  205 +</script>
  206 +
  207 +<style scoped>
  208 + .el-table {
  209 + /* height: calc(100vh - 330px); */
  210 + }
  211 +
  212 + .zhuti {
  213 + padding: 0 20px 20px 20px;
  214 + min-height: calc(100vh - 50px - 20px);
  215 + background-color: #Fff;
  216 +
  217 + }
  218 +
  219 + .chengeXia {
  220 + border-bottom: 6px solid #3F9B6A;
  221 + padding-bottom: 4px;
  222 + color: #3F9B6A;
  223 + }
  224 +
  225 + /* /deep/ .el-form-item__content {
  226 + line-height: 0;
  227 + } */
  228 +
  229 + .tableBtn {
  230 + display: inline-block;
  231 + margin-right: 10px;
  232 + color: #ACACAC;
  233 + }
  234 +
  235 + .formSearch {
  236 + display: flex;
  237 + width: 100%;
  238 + font-size: 14px;
  239 + justify-content: space-between;
  240 + }
  241 +
  242 + .greens {
  243 + color: #3F9B6A;
  244 + }
  245 +
  246 + /deep/ .el-table__row {
  247 + font-size: 14px;
  248 + color: #000000e6;
  249 + height: 42px;
  250 + }
  251 +
  252 + .fenye {
  253 + margin-top: 20px;
  254 + display: flex;
  255 + justify-content: space-between;
  256 + }
  257 +
  258 + /deep/ .el-pagination.is-background .el-pager li:not(.disabled).active {
  259 + background-color: #3F9B6A;
  260 + }
  261 +
  262 +
  263 +
  264 + .el-col {
  265 + border-radius: 4px;
  266 + }
  267 +
  268 + .bg-purple-dark {
  269 + background: #99a9bf;
  270 + }
  271 +
  272 + .bg-purple {
  273 + background: #d3dce6;
  274 + }
  275 +
  276 + .bg-purple-light {
  277 + background: #e5e9f2;
  278 + }
  279 +
  280 + .grid-content {
  281 + border-radius: 4px;
  282 + min-height: 36px;
  283 + }
  284 +
  285 + .row-bg {
  286 + padding: 10px 0;
  287 + background-color: #f9fafc;
  288 + }
  289 +
  290 + /deep/ .bg-purple[data-v-0e3fe4ec] {
  291 + background: #fff;
  292 + height: 50px;
  293 + }
  294 +
  295 + /deep/ .bg-purple[data-v-3bebae82] {
  296 + background: #fff;
  297 + height: 50px;
  298 + }
  299 +
  300 + ::v-deep .bg-purple {
  301 + background: #fff;
  302 + height: 50px;
  303 + }
  304 +
  305 + /deep/ .el-form--label-top .el-form-item__label {
  306 + padding: 0;
  307 + }
  308 +
  309 + ::v-deep .el-dialog__wrapper {
  310 + .el-dialog__header {
  311 + background-color: #fff;
  312 + }
  313 + }
  314 +
  315 +
  316 +
  317 + .dialog-footer {
  318 + display: flex;
  319 + justify-content: flex-end;
  320 + border-top: solid rgba(209, 209, 209, 0.2) 2px;
  321 + padding-top: 20px;
  322 + }
  323 +
  324 +
  325 +
  326 +
  327 + .el-select-dropdown__item.selected {
  328 + color: #3F9B6A;
  329 + }
  330 +
  331 + ::v-deep .el-dialog__title {
  332 + color: #000;
  333 + }
  334 +
  335 + ::v-deep .el-dialog__wrapper {
  336 +
  337 + .dialog_css {
  338 + margin-right: 12px;
  339 + margin-top: 61px !important;
  340 +
  341 + }
  342 +
  343 + .diaslog_zhong {
  344 + margin-left: 222px;
  345 + margin-top: 61px !important;
  346 + }
  347 +
  348 + }
  349 +
  350 + /deep/ .el-table_1_column_8 .hetong {
  351 + color: #7DBB9A;
  352 + text-decoration: underline;
  353 + }
  354 +
  355 + /deep/ .first-column-bg {
  356 + background-color: #FAFAFA !important;
  357 + }
  358 +
  359 + .el-table tr {
  360 + height: 56px;
  361 + }
  362 +
  363 + ::v-deep .table3 {
  364 + .el-table__empty-block {
  365 + display: none;
  366 + }
  367 + }
  368 +
  369 + ::v-deep .textarea {
  370 + width: 85%;
  371 +
  372 + .el-textarea__inner {
  373 + width: 100%;
  374 + }
  375 + }
  376 +
  377 + ::v-deep .el-button--mini {
  378 + padding: 7px 10px;
  379 + }
  380 +
  381 + ::v-deep .pass_input {
  382 + width: 100%;
  383 +
  384 + .el-input__inner {
  385 + border: none;
  386 + padding: 0;
  387 + }
  388 + }
  389 +
  390 + ::v-deep .pass_select {
  391 + width: 100%;
  392 +
  393 + .el-input__inner {
  394 + border: none;
  395 + padding: 0;
  396 + }
  397 +
  398 + .el-icon-arrow-up:before {
  399 + content: ''
  400 + }
  401 +
  402 + }
  403 +
  404 + /deep/ .el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell {
  405 + background-color: #fff;
  406 + }
  407 +</style>
  408 +<style lang="scss" scoped>
  409 + ::v-deep .el-dialog__body {
  410 + padding: 0 0 !important;
  411 + }
  412 +
  413 + ::v-deep .buttonHover:hover {
  414 + color: #3f9b6a !important;
  415 + border-color: #c5e1d2 !important;
  416 + background-color: #ecf5f0 !important;
  417 + outline: none;
  418 + }
  419 +</style>
... ...
admin-web-master/src/views/shopRental/rentTermination/index.vue
... ... @@ -10,11 +10,19 @@
10 10 <!-- 搜索 -->
11 11 <div class="formSearch">
12 12 <el-form :inline="true" :model="pagequery">
13   - <el-form-item label="合同名称">
  13 + <!-- <el-form-item label="合同名称">
14 14 <el-input v-model="pagequery.contractName" placeholder="请输入" style="width:168px;" />
15 15 </el-form-item>
  16 + <el-form-item label="合同状态" prop="status">
  17 + <el-select v-model="pagequery.status" clearable placeholder="请选择" style="width: 168px;margin-right: 15px">
  18 + <el-option label="使用中" value="1"></el-option>
  19 + <el-option label="往期合同" value="2"></el-option>
  20 + <el-option label="已终止" value="3"></el-option>
  21 +
  22 + </el-select>
  23 + </el-form-item> -->
16 24 </el-form>
17   -
  25 +
18 26 <div>
19 27 <el-button @click="onSubmit" style="background-color: #3F9B6A;color: #fff">查询
20 28 </el-button>
... ... @@ -23,62 +31,63 @@
23 31 </el-button>
24 32 </div>
25 33 </div>
26   - <!-- <div style="margin-bottom: 20px;">
27   - <el-button @click="removeonaction('2')" style="background-color: #3F9B6A;color: #fff;padding:8px 15px;"
28   - icon="el-icon-circle-plus-outline">新增</el-button>
29   - <el-button @click="" style="background-color: #3F9B6A;color: #fff">批量导入</el-button>
30   - </div> -->
  34 + <div style="margin-bottom: 20px;">
  35 + </div>
31 36 <!-- 表格 -->
32   -
33 37 <el-table :data="tableData"
34 38 :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}">
35 39 <el-table-column label="承租人名称">
36 40 <template slot-scope="scope">
37 41 {{scope.row.cereContractInformation.tenantName}}
38   -
39 42 </template>
40 43 </el-table-column>
41 44 <el-table-column label="租赁类型">
42 45 <template slot-scope="scope">
43 46 {{scope.row.cereContractInformation.contractType}}
44   -
45 47 </template>
46 48 </el-table-column>
47 49 <el-table-column label="手机号">
48 50 <template slot-scope="scope">
49 51 {{scope.row.cereContractInformation.tenantTelephone}}
50   -
51 52 </template>
52 53 </el-table-column>
53 54 <el-table-column label="资源名称">
54 55 <template slot-scope="scope">
55   - {{scope.row.cereContractInformation.tenantTelephone}}
56   -
  56 + {{scope.row.cereContractInformation.cereBasicInformationShop.shopName || scope.row.cereContractInformation.cereAdvertisingInformation.advertisingName || scope.row.cereContractInformation.cereBasicInformationVenue.venueName}}
57 57 </template>
58 58 </el-table-column>
59 59 <el-table-column label="租赁起止时间">
60 60 <template slot-scope="scope">
61 61 {{scope.row.cereContractInformation.contractSigningDate}}至{{scope.row.cereContractInformation.contractTerminationDate}}
62   -
63 62 </template>
64 63 </el-table-column>
65 64 <el-table-column label="申请时间">
66 65 <template slot-scope="scope">
67 66 {{scope.row.createTime}}
68   -
69 67 </template>
70 68 </el-table-column>
71   - <el-table-column label="操作" fixed="right">
  69 + <el-table-column prop="status" label="状态">
  70 + <template slot-scope="scope">
  71 + <span v-if='scope.row.status == 1'>待审核</span>
  72 + <span v-else-if='scope.row.status == 2'>已同意</span>
  73 + <span v-else-if='scope.row.status == 3'>已拒绝</span>
  74 + <span v-else>待发起</span>
  75 + </template>
  76 + </el-table-column>
  77 + <el-table-column label="操作" min-width="150" fixed="right">
72 78 <template slot-scope="scope">
73   - <div @click="details(scope.row)" class="tableBtn greens">查看</div>
74   - <div @click="addgzd(scope.row)" class="tableBtn greens">生成退租告知单</div>
  79 + <div @click="details(scope.row,'1')" class="tableBtn greens">查看</div>
  80 + <div v-if='scope.row.status == 2' @click="addgzd(scope.row)" class="tableBtn greens">生成退租告知单</div>
  81 + <div v-if='scope.row.status == 1 && scope.row.isInterior == 1' @click="details(scope.row,'2')" class="tableBtn greens">审核</div>
  82 + <div v-if="scope.row.status == null || scope.row.status == '0'" @click="remove(scope.row)" class="tableBtn greens">内部审核</div>
  83 + <div v-if="scope.row.status == null || scope.row.status == '0'" @click="openOAitem(scope.row)" class="tableBtn greens">OA审核</div>
75 84 </template>
76 85 </el-table-column>
77 86 </el-table>
78 87 <div style="display: flex;justify-content: space-between;" class="bom">
79 88 <div style="font-size: 14px;">共 <span style="color: #3F9B6A;">{{total}}</span> 项数据</div>
80   - <el-pagination :current-page="pagequery.pageNumber+1" :page-sizes="[10, 20, 50, 100]" :page-size="10" background
81   - small layout="prev, pager, next" :total="total" @size-change="handleSizeChange"
  89 + <el-pagination :current-page="pagequery.pageNumber+1" :page-sizes="[10, 20, 50, 100]" :page-size="10"
  90 + background small layout="prev, pager, next" :total="total" @size-change="handleSizeChange"
82 91 @current-change="handleCurrentChange">
83 92 </el-pagination>
84 93 </div>
... ... @@ -108,7 +117,7 @@
108 117 style="color:#000000e6">查看</span></div>
109 118 </div>
110 119 <div>
111   - <busCha :info="detailsinfo" @removeonaction="removeonaction"></busCha>
  120 + <busCha :issp="issp" :info="detailsinfo.cereContractInformation" :newinfo="detailsinfo" @removeonaction="removeonaction"></busCha>
112 121 </div>
113 122 <!-- <div>
114 123 <el-button class="buttonHover"
... ... @@ -116,57 +125,305 @@
116 125 @click="removeonaction('1')">返回</el-button>
117 126 </div> -->
118 127 </div>
  128 + <div class="zhuti" v-if="onaction == '4'">
  129 + <div style="height:58px;line-height:58px;">
  130 + <div style="color:#0006"> <span>退租决算管理</span> <span style="padding:0 5px;">></span> <span
  131 + style="color:#000000e6">{{contractChangeReason}}</span></div>
  132 + </div>
  133 +
  134 + <div style="padding: 20px 20px 20px 0;">
  135 + <!-- <addremove :info="detailsinfo" :contractChangeReason="contractChangeReason" @removeonaction="removeonaction">
  136 + </addremove> -->
  137 + <add :info="detailsinfo" :contractChangeReason="contractChangeReason" @removeonaction="removeonaction"></add>
  138 + </div>
  139 + </div>
  140 + <el-dialog :visible.sync="openoa" title="OA" width="65%" append-to-body center :close-on-click-modal="false"
  141 + :close-on-press-escape="false" :show-close="false">
  142 + <el-form v-if="openoa" style="padding-right: 50px;padding-top: 20px;" :model="ruleForm" :rules="rulesoa" ref="oaForm" label-width="130px" class="demo-ruleForm">
  143 + <el-form-item label="审核人" prop="reviewers">
  144 + <el-select v-model="ruleForm.reviewers" placeholder="请选择" style="width: 100%;">
  145 + <el-option label="陈阳" value="1858710592190291968"></el-option>
  146 + </el-select>
  147 + </el-form-item>
  148 +
  149 + </el-form>
  150 + <div style="display: flex; justify-content: flex-end; align-items: center;padding: 20px 50px;">
  151 + <el-button @click="openoa =false" class="buttonHover"
  152 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;">取消</el-button>
  153 + <el-button @click="OA" style="background-color: #3F9B6A;color: #fff;">确定</el-button>
  154 + </div>
  155 + </el-dialog>
119 156 </div>
120 157  
121 158  
122 159 </template>
123 160  
124 161 <script>
  162 + import {
  163 + changeContractInformationqueryByPage,changeContractInformationedit,generalBySurrenderTenancy
  164 + } from '@/api/newly.js'
  165 + import {
  166 + contractGetAllnew,
  167 + edit,
  168 + editById
  169 + } from '@/api/manage.js'
  170 + import add from './add'
  171 + import addremove from '@/components/add/addremoveht.vue'
  172 + import busCha from '@/components/buscha/busChanew'
125 173 import {
126   - changeContractInformationqueryByPage,
  174 + cereContractInformation
  175 + } from '@/api/commodityLease.js'
  176 + import {
  177 + modifyResourceStatus,general
127 178 } from '@/api/newly.js'
128   - import add from './add'
129   - import busCha from '../../../components/buscha/busCha'
  179 + import axios from 'axios'
130 180 export default {
131 181 data() {
132 182 return {
133   - detailsinfo:{},
  183 + issp:'1',
  184 + rulesoa: {
  185 + reviewers: [{
  186 + required: true,
  187 + message: '请选择审核人',
  188 + trigger: 'blur'
  189 + }, ],
  190 + },
  191 + ruleForm:{
  192 + reviewers:""
  193 + },
  194 + openoa:false,
  195 + contractChangeReason: '',
  196 + detailsinfo: {},
134 197 pagequery: {
  198 + // status:'1',
135 199 pageNumber: 0,
136 200 pageSize: 10,
137   - contractName: '',
138   - dataStatus:'1',
  201 + contractType:'0',
  202 + contractName: ''
139 203 },
140 204 tableData: [],
141 205 total: 0,
142 206 onaction: '1',
143   - info:{}
  207 + formInline: {},
  208 + oainfo:{}
144 209 }
145 210 },
146 211 components: {
147   - add,busCha
  212 + add,
  213 + busCha,
  214 + addremove
148 215 },
149 216 created() {
150 217 this.getAll()
151   -
152 218 },
153 219 methods: {
154 220 addgzd(row) {
155 221 this.detailsinfo = row
156 222 this.onaction = '2'
157 223 },
158   - details(row) {
159   - this.detailsinfo = row
160   - this.onaction = '3'
  224 + remove(row) {
  225 + let that = this
  226 + this.$confirm('是否确定内部审核吗?', '提示', {
  227 + confirmButtonText: '确定',
  228 + cancelButtonText: '取消',
  229 + type: 'warning'
  230 + }).then(() => {
  231 + changeContractInformationedit({
  232 + ...row,
  233 + isInterior:'1',
  234 + status: '1',
  235 + }).then(res => {
  236 + console.error(res)
  237 + if (res.code == 200) {
  238 + this.$message({
  239 + message: '处理成功',
  240 + type: 'success'
  241 + })
  242 + this.resetting()
  243 +
  244 + } else {
  245 + this.$message({
  246 + message: res.msg,
  247 + type: 'error'
  248 + })
  249 + }
  250 +
  251 + })
  252 + })
161 253 },
162   - biangeng(row) {
163   - alert(`合同变更 - 店铺ID: ${row.id}`);
  254 + openOAitem(row){
  255 + this.oainfo = row
  256 + this.ruleForm.reviewers = ''
  257 + this.openoa = true
164 258 },
165   - xuyue(row) {
166   - alert(`合同续约 - 店铺ID: ${row.id}`);
  259 + downloadBase64File(base64String, fileName, mimeType) {
  260 + try {
  261 + // 将 Base64 字符串解码为二进制数据
  262 + const byteCharacters = atob(base64String);
  263 + const byteNumbers = new Array(byteCharacters.length);
  264 + for (let i = 0; i < byteCharacters.length; i++) {
  265 + byteNumbers[i] = byteCharacters.charCodeAt(i);
  266 + }
  267 + const byteArray = new Uint8Array(byteNumbers);
  268 +
  269 + // 创建 Blob 对象
  270 + const blob = new Blob([byteArray], { type: mimeType });
  271 +
  272 + // 生成下载链接并触发下载
  273 + const url = window.URL.createObjectURL(blob);
  274 + const link = document.createElement('a');
  275 + link.href = url;
  276 + link.setAttribute('download', fileName); // 设置下载文件名
  277 + document.body.appendChild(link);
  278 + link.click();
  279 +
  280 + // 清理生成的 URL 对象
  281 + window.URL.revokeObjectURL(url);
  282 + document.body.removeChild(link);
  283 +
  284 + console.log('文件下载成功:', fileName);
  285 + } catch (error) {
  286 + console.error('文件下载失败:', error);
  287 + }
167 288 },
168   - zhongzhi(row) {
169   - alert(`合同终止 - 店铺ID: ${row.id}`);
  289 + async OA(){
  290 + // console.error(row)
  291 + let row = this.oainfo
  292 + await this.$refs.oaForm.validate((valid) => {
  293 +
  294 + })
  295 + if(!this.ruleForm.reviewers) {
  296 + return
  297 + }
  298 + const loading = this.$loading({
  299 + fullscreen: true
  300 + })
  301 + this.openoa = false
  302 + const response = await axios({
  303 + method: 'get',
  304 + url: this.$baseURL + row.cereContractInformation.appendicesContract, // 文件 URL
  305 + responseType: 'arraybuffer' // 指定响应类型为二进制数据
  306 + });
  307 + const file = new File([response.data], 'filename.txt', { type: 'text/plain' });
  308 + let fd = new FormData();
  309 + fd.append('files', file);
  310 + fd.append('reviewers', this.ruleForm.reviewers);
  311 + fd.append('fileNames', '合同.docx');
  312 + fd.append('title', `${row.cereContractInformation.contractName}退租审批`);
  313 + fd.append('changeContractInformationId', row.id);
  314 + // fd.append('sponsor', userData.user.id);
  315 + fd.append('sponsor', 11);
  316 + console.log(fd);
  317 +
  318 + generalBySurrenderTenancy(fd).then(res => {
  319 + console.log(res);
  320 + let data = JSON.parse(res.data)
  321 + if(data.code == '0'){
  322 + this.$message({
  323 + type: 'success',
  324 + message: '发起成功'
  325 + })
  326 + loading.close();
  327 + this.resetting()
  328 + } else {
  329 + this.$message({
  330 + type: 'error',
  331 + message: data.message
  332 + })
  333 + }
  334 + })
  335 +
  336 +
  337 + },
  338 + gettime() {
  339 + // 获取当前时间
  340 + let currentTime = new Date();
  341 +
  342 + // 获取年份
  343 + let year = currentTime.getFullYear();
  344 +
  345 + // 获取月份(注意月份是从0开始计数的,所以需要加1)
  346 + let month = currentTime.getMonth() + 1;
  347 +
  348 + // 获取日期
  349 + let day = currentTime.getDate();
  350 +
  351 + // 获取小时
  352 + let hours = currentTime.getHours();
  353 +
  354 + // 获取分钟
  355 + let minutes = currentTime.getMinutes();
  356 +
  357 + // 获取秒数
  358 + let seconds = currentTime.getSeconds();
  359 +
  360 + // 获取毫秒数
  361 + let milliseconds = currentTime.getMilliseconds();
  362 +
  363 + // 格式化时间为 YYYY-MM-DD
  364 + let formattedDate = `${year}-${month.toString().padStart(2, '0')}-${day.toString().padStart(2, '0')}`;
  365 +
  366 + // 格式化时间为 HH:MM:SS
  367 + let formattedTime =
  368 + `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`;
  369 +
  370 + // 格式化时间为 YYYY-MM-DD HH:MM:SS
  371 + let formattedDateTime = `${formattedDate} ${formattedTime}`;
  372 + return formattedDateTime
  373 +
  374 + },
  375 + removeinfozz(row, e) {
  376 + let that = this
  377 + this.$confirm('确定要终止合同吗?', '提示', {
  378 + confirmButtonText: '确定',
  379 + cancelButtonText: '取消',
  380 + type: 'warning'
  381 + }).then(() => {
  382 + cereContractInformation({
  383 + ...row,
  384 + contractChangeReason: e,
  385 + status: '3',
  386 + originalContractCode: row.contractNumber,
  387 + updateDate: that.gettime(),
  388 + createDate: that.gettime(),
  389 + contractChangeTime: that.gettime(),
  390 + updateUser:localStorage.getItem('roleName')
  391 + }).then(res => {
  392 + console.error(res)
  393 + if (res.code == 200) {
  394 + this.$message({
  395 + message: '终止成功',
  396 + type: 'success'
  397 + })
  398 + let c1 = row.shopNumber
  399 + modifyResourceStatus({
  400 + resourcesId: c1,
  401 + status:"0"
  402 + }).then(res => {
  403 + console.error(res)
  404 + })
  405 + // this.$emit('removeonaction', '1')
  406 + this.getAll()
  407 + } else {
  408 + this.$message({
  409 + message: res.msg,
  410 + type: 'error'
  411 + })
  412 + }
  413 +
  414 + })
  415 + })
  416 + },
  417 + details(row,e) {
  418 + this.issp = e
  419 + this.detailsinfo = row
  420 + this.onaction = '3'
  421 + },
  422 + removeinfo(row, e) {
  423 + this.contractChangeReason = e
  424 + // console.error(this.contractChangeReason)
  425 + this.detailsinfo = row
  426 + this.onaction = '4'
170 427 },
171 428 async getAll() {
172 429 const res = await changeContractInformationqueryByPage(this.pagequery)
... ... @@ -176,9 +433,11 @@
176 433 removeonaction(e) {
177 434 console.error(e)
178 435 this.onaction = e
  436 + this.pagequery.pageNumber = 0
  437 + this.getAll()
179 438 },
180 439 handleCurrentChange(val) {
181   - this.pagequery.pageNumber = val-1
  440 + this.pagequery.pageNumber = val - 1
182 441 this.getAll()
183 442 },
184 443 handleSizeChange(val) {
... ... @@ -194,8 +453,9 @@
194 453 this.pagequery = {
195 454 pageNumber: 0,
196 455 pageSize: 10,
197   - contractName: '',
198   - dataStatus:'1',
  456 + status:'',
  457 + contractType:'0',
  458 + contractName: ''
199 459 },
200 460 this.getAll()
201 461 },
... ... @@ -410,10 +670,5 @@
410 670 padding: 0 0 !important;
411 671 }
412 672  
413   - ::v-deep .buttonHover:hover {
414   - color: #3f9b6a !important;
415   - border-color: #c5e1d2 !important;
416   - background-color: #ecf5f0 !important;
417   - outline: none;
418   - }
  673 +
419 674 </style>
... ...
lvdao-miniapp/pages.json
... ... @@ -448,6 +448,13 @@
448 448 }
449 449 },
450 450 {
  451 + "path": "weball/web",
  452 + "style": {
  453 + "navigationBarBackgroundColor": "#FFFFFF",
  454 + "navigationBarTitleText": ""
  455 + }
  456 + },
  457 + {
451 458 "path": "tishi/tishi",
452 459 "style": {
453 460 "navigationBarBackgroundColor": "#FFFFFF",
... ...
lvdao-miniapp/pages/activityAdd/activityAdd.vue
... ... @@ -2,36 +2,36 @@
2 2 <view class="page">
3 3 <u-form :model="form" ref="uForm" label-position="left" :label-width="180">
4 4 <view class="add-list" style="padding-bottom: 0;">
5   - <u-form-item label="*封面图片" borderBottom labelPosition="top">
  5 + <u-form-item :required="true" label="封面图片" borderBottom labelPosition="top">
6 6 <!-- <u-upload :action="$upload" :auto-upload="true" ref="uUpload" :max-count="1" ></u-upload> -->
7 7 <u-upload :action="$upload" :auto-upload="false" ref="coverImage" :max-count="1" :file-list="fist"
8 8 @on-choose-complete="(response, file, fileList) => onsuccess1(response, file, fileList, 'coverImage')"></u-upload>
9 9 </u-form-item>
10 10 </view>
11 11 <view class="add-list" style="padding-bottom: 0;">
12   - <u-form-item label="*活动名称" borderBottom>
  12 + <u-form-item :required="true" label="活动名称" borderBottom>
13 13 <u-input v-model="form.activityName" />
14 14 </u-form-item>
15   - <u-form-item label="*开始时间" borderBottom>
  15 + <u-form-item :required="true" label="开始时间" borderBottom>
16 16 <u-input v-model="form.startTime" type="select" @click="startShow = true" placeholder="请选择"/>
17 17 <u-picker mode="time" v-model="startShow" :params="params" @confirm="startTimeChange"></u-picker>
18 18 </u-form-item>
19   - <u-form-item label="*结束时间" borderBottom>
  19 + <u-form-item :required="true" label="结束时间" borderBottom>
20 20 <u-input v-model="form.endTime" type="select" @click="endShow = true" placeholder="请选择"/>
21 21 <u-picker mode="time" v-model="endShow" :params="params" @confirm="endTimeChange"></u-picker>
22 22 </u-form-item>
23   - <u-form-item label="*活动类型" borderBottom>
  23 + <u-form-item :required="true" label="活动类型" borderBottom>
24 24 <u-input v-model="form.activityType" type="select" @click="typeShow = true" placeholder="请选择"/>
25 25 <u-select v-model="typeShow" :list="typeList" @confirm="typeChange"></u-select>
26 26 </u-form-item>
27   - <u-form-item label="*可参与人数" borderBottom>
  27 + <u-form-item :required="true" label="可参与人数" borderBottom>
28 28 <u-number-box v-model="form.maxParticipants" :input-width="'100%'" :min="0"></u-number-box>
29 29 </u-form-item>
30   - <u-form-item label="*举办区域" borderBottom>
  30 + <u-form-item :required="true" label="举办区域" borderBottom>
31 31 <u-input v-model="form.region" />
32 32 </u-form-item>
33   - <u-form-item label="*活动内容" type = 'textarea' borderBottom auto-height="100">
34   - <u-input v-model="form.content" />
  33 + <u-form-item :required="true" label="活动内容" borderBottom label-position="top">
  34 + <u-input border type="textarea" height="150" v-model="form.content" />
35 35 </u-form-item>
36 36 </view>
37 37  
... ...
lvdao-miniapp/pages/advertisement/advertisement.vue
... ... @@ -42,7 +42,7 @@
42 42 <view>
43 43 <view class="goods-list-text">
44 44 <view class="goods-list-txt">广告位类型:{{item.advertisingType}}</view>
45   - <view class="goods-list-txt">广告尺寸:{{item.dimensions}}</view>
  45 + <view class="goods-list-txt">广告尺寸:{{item.dimensions || '--'}}</view>
46 46 </view>
47 47 <view class="goods-list-text" v-if="item.advertisingType == '线上广告位'">
48 48 <view class="goods-list-txt">轮播顺序:<text>{{item.rotationOrder}}</text></view>
... ... @@ -139,7 +139,7 @@
139 139 let items = JSON.stringify(item)
140 140 console.log(items)
141 141 uni.navigateTo({
142   - url: `/pages/advertisementDetail/advertisementDetail?item=${items}`
  142 + url: `/pages/advertisementDetail/advertisementDetail?item=${encodeURIComponent(items)}`
143 143 })
144 144 },
145 145  
... ...
lvdao-miniapp/pages/advertisementDetail/advertisementDetail.vue
... ... @@ -57,7 +57,7 @@
57 57 <text>{{tableData.playDuration || '--'}}</text>
58 58 </view>
59 59 </u-col>
60   - <u-col span="5" >
  60 + <u-col span="12" >
61 61 <view class="form-item">
62 62 <view class="label">推送地址:</view>
63 63 <text>{{tableData.pushAddress || '--'}}</text>
... ... @@ -66,10 +66,11 @@
66 66 <u-col span="12">
67 67 <view class="form-item">
68 68 <view class="label">介绍:</view>
69   - <view style='flex: 1;'>
70   - <rich-text v-if="tableData.memo" :nodes="tableData.memo"></rich-text>
71   - <text v-else>无</text>
72   - </view>
  69 + <text v-if="!tableData.memo">无</text>
  70 + </view>
  71 + <view style='flex: 1;'>
  72 + <rich-text v-if="tableData.memo" :nodes="tableData.memo"></rich-text>
  73 +
73 74 </view>
74 75 </u-col>
75 76 </view>
... ... @@ -196,7 +197,7 @@
196 197 },
197 198 onLoad(option) {
198 199 this.imgurl = this.$img
199   - let data = JSON.parse(option.item)
  200 + let data = JSON.parse(decodeURIComponent(option.item))
200 201 console.log(data)
201 202 this.tableData = data
202 203 this.resourcesId = `gg${data.id}`
... ...
lvdao-miniapp/pages/field/field.vue
... ... @@ -96,7 +96,7 @@
96 96 <view class="retail-price">
97 97 <text>面积:</text>
98 98 <text class="max">{{item.actualArea}}</text>
99   - <text class="min">/m²</text>
  99 + <text class="min">m²</text>
100 100 </view>
101 101 </view>
102 102 </view>
... ...
lvdao-miniapp/pages/home/home.scss
... ... @@ -183,6 +183,7 @@
183 183 padding: 30rpx 0;
184 184 margin-top: 20rpx;
185 185 flex-wrap: wrap;
  186 + justify-content: space-around;
186 187 // justify-content: center;
187 188 .list{
188 189 display: flex;
... ...
lvdao-miniapp/pages/home/home.vue
... ... @@ -65,14 +65,22 @@
65 65 <text>租广告</text>
66 66 </view>
67 67 </view>
68   - <view class="list" @click="wuye">
  68 + <!-- <view class="list" @click="wuye">
  69 + <view class="icon">
  70 + <image :src="$imgUrl('/gouwulan.png')"></image>
  71 + </view>
  72 + <view class="title">
  73 + <text>商城</text>
  74 + </view>
  75 + </view> -->
  76 + <!-- <view class="list" @click="wuye">
69 77 <view class="icon">
70 78 <image :src="$imgUrl('/home4.png')"></image>
71 79 </view>
72 80 <view class="title">
73 81 <text>物业缴费</text>
74 82 </view>
75   - </view>
  83 + </view> -->
76 84 <!-- <view class="list" @click="gopath('/pagesA/hxlist/hxlist')">
77 85 <view class="icon">
78 86 <image :src="$imgUrl('/home4.png')"></image>
... ... @@ -635,7 +643,7 @@
635 643 })
636 644 } else {
637 645 uni.navigateTo({
638   - url: `/pages/advertisementDetail/advertisementDetail?item=${items}`
  646 + url: `/pages/advertisementDetail/advertisementDetail?item=${encodeURIComponent(items)}`
639 647 })
640 648 }
641 649  
... ... @@ -685,15 +693,18 @@
685 693  
686 694 },
687 695 wuye() {
688   - if(uni.getStorageSync('user').phone&& uni.getStorageSync('user').phone!=''){
689   - uni.navigateTo({
690   - url: `/pages/propertyPay/propertyPayList/propertyPayList`
691   - })
692   - }else{
693   - uni.navigateTo({
694   - url: `/pages/login/login`
695   - })
696   - }
  696 + uni.navigateTo({
  697 + url: `/pagesA/weball/web?url=https://zhgw-uat.028wlkj.com/cdwlMall/meh5/`
  698 + })
  699 + // if(uni.getStorageSync('user').phone&& uni.getStorageSync('user').phone!=''){
  700 + // uni.navigateTo({
  701 + // url: `/pages/propertyPay/propertyPayList/propertyPayList`
  702 + // })
  703 + // }else{
  704 + // uni.navigateTo({
  705 + // url: `/pages/login/login`
  706 + // })
  707 + // }
697 708  
698 709  
699 710 },
... ...
lvdao-miniapp/pages/marketing/marketingList/marketingList.vue
... ... @@ -23,7 +23,7 @@
23 23 <u-image :src="imgurl+item.coverImage" border-radius="10" height="110px" width="100%" style="margin-top:8px;margin-right:8px;" ></u-image>
24 24 <!-- <u-image :src="$img+item.coverImage" border-radius="10" mode="heightFix" style="margin-right:8px;height:110px" ></u-image> -->
25 25 <view class="info">
26   - <view class="title">{{item.title}}</view>
  26 + <view class="title one-omit">{{item.title}}</view>
27 27 <view class="name">活动时间:{{item.startTime}}至{{item.endTime}}</view>
28 28 <view style="margin-top: 5px;height:23px;">
29 29 <u-tag text="进行中" type="success" mode="dark" v-if="item.activeState==1"/>
... ...
lvdao-miniapp/pages/my/my.vue
... ... @@ -50,12 +50,12 @@
50 50 <text>我的问卷</text>
51 51 </view>
52 52 </view> -->
53   - <view class="service-list-list">
  53 + <view class="service-list-list" @click="myativity">
54 54 <view class="thumb">
55 55 <text v-if="Islogin">0</text>
56 56 <text v-else>{{activityNum}}</text>
57 57 </view>
58   - <view class="name" @click="myativity">
  58 + <view class="name" >
59 59 <text>我的活动</text>
60 60 </view>
61 61 </view>
... ...
lvdao-miniapp/pages/participation/participation.scss
... ... @@ -170,10 +170,6 @@
170 170 }
171 171 }
172 172 .huo-card-item{
173   - font-size: 20rpx;
174   - line-height: 1.5;
175   - white-space: nowrap; /* 防止文本换行 */
176   - text-overflow: ellipsis; /* 显示省略号 */
177   - /* 如果需要设置宽度,可以添加 width 属性 */
178   - overflow:hidden;
179   - }
180 173 \ No newline at end of file
  174 + font-size: 20rpx;
  175 +}
  176 +
181 177 \ No newline at end of file
... ...
lvdao-miniapp/pages/participation/participation.vue
... ... @@ -2,48 +2,54 @@
2 2 <!-- 活动参与 -->
3 3 <view class="page">
4 4 <view class="more page-box" @click="toMyAdd">
5   - <u-section :bold="false" title="我的活动申请" sub-title='' :show-line="false" color="#0FBB59" >
  5 + <u-section :bold="false" title="我的活动申请" sub-title='' :show-line="false" color="#0FBB59">
6 6 <view slot="right">
7 7 <u-icon name="arrow-rightward" color="#0FBB59" size="28"></u-icon>
8 8 </view>
9 9 </u-section>
10 10 </view>
11 11 <!-- 搜索 -->
12   - <!-- <view class="head-search">
  12 + <!-- <view class="head-search">
13 13 <u-search bg-color="#fff" placeholder="请输入关键词" v-model="pageIndex.activityName" :show-action="false" @search="search"></u-search>
14 14 <u-button type="success" @click="search">搜索</u-button>
15 15 </view> -->
16   - <view style="margin: 20rpx 0;background-color: #FFFFFF;border-radius: 18rpx;border: 2rpx solid #E8E8E8; margin: 22rpx 24rpx;overflow: hidden;" >
17   - <u-search :action-style="{'background':'#19be6b','color':'#fff','height':'32px','line-height':'32px','border-radius':'18rpx'}" bg-color="#fff" placeholder="请输入关键词" v-model="pageIndex.activityName" action-text="搜索" @clear="search" @search="search" @custom="search"></u-search>
  16 + <view
  17 + style="margin: 20rpx 0;background-color: #FFFFFF;border-radius: 18rpx;border: 2rpx solid #E8E8E8; margin: 22rpx 24rpx;overflow: hidden;">
  18 + <u-search
  19 + :action-style="{'background':'#19be6b','color':'#fff','height':'32px','line-height':'32px','border-radius':'18rpx'}"
  20 + bg-color="#fff" placeholder="请输入关键词" v-model="pageIndex.activityName" action-text="搜索" @clear="search"
  21 + @search="search" @custom="search"></u-search>
18 22 </view>
19 23 <view class="screen-list">
20 24 <u-dropdown menu-icon="arrow-down-fill" :title-size="24" :height="40">
21   - <u-dropdown-item v-model="pageIndex.orderingRule" title="时间排序" :options="sortTypeOptions" @change="search"></u-dropdown-item>
22   - <u-dropdown-item v-model="pageIndex.activeState" title="活动状态" :options="statusOptions" @change="search"></u-dropdown-item>
  25 + <u-dropdown-item v-model="pageIndex.orderingRule" title="时间排序" :options="sortTypeOptions"
  26 + @change="search"></u-dropdown-item>
  27 + <u-dropdown-item v-model="pageIndex.activeState" title="活动状态" :options="statusOptions"
  28 + @change="search"></u-dropdown-item>
23 29 </u-dropdown>
24 30 </view>
25   - <!-- 订单列表 -->
26 31 <view class="goods-data">
27   - <u-row gutter="16" class="goods-list">
28   - <u-col span="6" v-for="(item,index) in datalist" :key="index" @click="toDetail(item.id, '/pages/activityDetail/activityDetail')" >
29   - <view class="demo-layout good-item" style="margin-bottom: 30rpx;">
30   - <u-image :src="imgurl+item.coverImage" border-radius="10" mode="heightFix" height="110px" style="margin-top:8px;margin-right:8px;" ></u-image>
  32 + <view style="width: 100%;display: flex;flex-wrap: wrap;">
  33 + <view style="width: 47%;margin-left: 2%;background: #fff;margin-bottom: 30rpx;padding: 20rpx;border-radius: 18rpx;" v-for="(item,index) in datalist" :key="index" @click="toDetail(item.id)">
  34 + <view class="demo-layout good-item">
  35 + <u-image :src="imgurl+item.coverImage" border-radius="10" height="110px" width="100%"
  36 + style="margin-top:8px;margin-right:8px;"></u-image>
  37 + <!-- <u-image :src="$img+item.coverImage" border-radius="10" mode="heightFix" style="margin-right:8px;height:110px" ></u-image> -->
31 38 <view class="info">
32   - <view class="title">{{item.activityName}}</view>
33   - <view class="huo-card-item">活动日期:<span>{{item.startTime}}至{{item.endTime}}</span></view>
  39 + <view class="title one-omit" >{{item.activityName}}</view>
  40 + <view class="huo-card-item one-omit" style="margin: 14rpx 0;">活动日期:<span>{{item.startTime}}至{{item.endTime}}</span></view>
34 41 <view class="huo-card-item">参与人数:<span>{{item.maxParticipants}}</span></view>
35   - <view style="margin-top: 5px;height:23px">
36   - <u-tag text="进行中" type="success" mode="dark" v-if="item.activeState==1"/>
37   - <u-tag text="未开始" type="info" mode="dark" v-if="item.activeState==0"/>
38   - <u-tag text="已结束" type="warning" mode="dark" v-if="item.activeState==2"/>
39   - </view>
  42 + <view style="margin-top: 5px;height:23px">
  43 + <u-tag text="进行中" type="success" mode="dark" v-if="item.activeState==1" />
  44 + <u-tag text="未开始" type="info" mode="dark" v-if="item.activeState==0" />
  45 + <u-tag text="已结束" type="warning" mode="dark" v-if="item.activeState==2" />
  46 + </view>
40 47 </view>
41 48 </view>
42   - </u-col>
43   -
44   - </u-row>
45   - <!-- <u-loadmore :status="status" @loadmore='loading'/> -->
  49 + </view>
  50 + </view>
46 51 </view>
  52 +
47 53 <view style="height: 120rpx;"></view>
48 54 <view class="page-footer">
49 55 <u-button type="success" @click="toAdd">活动申请</u-button>
... ... @@ -59,24 +65,37 @@
59 65 datalist: [],
60 66 total: 1,
61 67  
62   - sortTypeOptions: [
63   - { label: '正序', value: 1 },
64   - { label: '倒序', value: 2 },
  68 + sortTypeOptions: [{
  69 + label: '正序',
  70 + value: 1
  71 + },
  72 + {
  73 + label: '倒序',
  74 + value: 2
  75 + },
65 76 ],
66   - statusOptions: [
67   - { label: '进行中', value: 1 },
68   - { label: '已结束', value: 2 },
69   - { label: '未开始', value: 0 },
  77 + statusOptions: [{
  78 + label: '进行中',
  79 + value: 1
  80 + },
  81 + {
  82 + label: '已结束',
  83 + value: 2
  84 + },
  85 + {
  86 + label: '未开始',
  87 + value: 0
  88 + },
70 89 ],
71   - pageIndex :{
  90 + pageIndex: {
72 91 activityName: '', // 搜索项
73 92 orderingRule: 1, // 排序方式
74   - activeState:null, // 活动状态
  93 + activeState: null, // 活动状态
75 94 pageNumber: 1,
76 95 pageSize: 10,
77   - auditStatus:'3',
  96 + auditStatus: '3',
78 97 },
79   - imgurl:''
  98 + imgurl: ''
80 99 }
81 100 },
82 101 onLoad() {
... ... @@ -100,9 +119,9 @@
100 119 this.getAll()
101 120 },
102 121 methods: {
103   - getAll(val){
104   - this.$http.sendRequest('/cereActivityApplication/queryByPage', 'POST',this.pageIndex,1).then(res => {
105   - this.datalist = res.data.data.content
  122 + getAll(val) {
  123 + this.$http.sendRequest('/cereActivityApplication/queryByPage', 'POST', this.pageIndex, 1).then(res => {
  124 + this.datalist = res.data.data.content
106 125 }).catch(err => {
107 126 console.log(err)
108 127 //请求失败
... ... @@ -115,13 +134,13 @@
115 134 })
116 135 },
117 136 search() {
118   -
119   - this.getAll()
  137 +
  138 + this.getAll()
120 139 },
121   -
  140 +
122 141 loading() {
123 142 let that = this
124   - if(that.status == 'nomore') return;
  143 + if (that.status == 'nomore') return;
125 144 that.status = 'loading';
126 145 that.page = ++that.page;
127 146 setTimeout(() => {
... ... @@ -129,22 +148,22 @@
129 148 that.status = that.list >= that.total ? 'nomore' : 'loadmore';
130 149 }, 300)
131 150 },
132   - join(){
  151 + join() {
133 152 uni.navigateTo({
134 153 url: '/pages/mycreated/mycreated?id=1'
135 154 })
136 155 },
137 156 toAdd() {
138   - uni.navigateTo({
  157 + uni.navigateTo({
139 158 url: '/pages/activityAdd/activityAdd'
140 159 })
141 160 },
142 161 toDetail(item, path) {
143   -
  162 +
144 163 uni.navigateTo({
145 164 url: `${path}?item=${item}`
146 165 })
147   -
  166 +
148 167 },
149 168 }
150 169 }
... ... @@ -152,4 +171,4 @@
152 171  
153 172 <style scoped lang="scss">
154 173 @import 'participation.scss';
155 174 -</style>
  175 +</style>
156 176 \ No newline at end of file
... ...
lvdao-miniapp/pages/propertyPay/payDetail/payDetail.vue
... ... @@ -13,14 +13,14 @@
13 13 <view class="info-items">
14 14 <view class="info-item">
15 15 <view class="title">{{item.itemName}}</view>
16   - <view class="right"><text class="price"><u-icon name="rmb" style="font-size: 24rpx;" />{{item.payPrice}}</text></view>
  16 + <view class="right"><text class="price"><u-icon name="rmb" style="font-size: 24rpx;" />{{ item.detailsVOList | jsitem}}</text></view>
17 17 </view>
18 18 <view class="info-item" style="color: #808080;">
19 19 <view class="left">单价:¥{{item.itemStandard}}</view>
20 20 <view class="right">费率:{{item.cheapRate}}%</view>
21 21 </view>
22 22 <view v-if="item.itemDetailsVOList&& item.itemDetailsVOList.length>0">
23   - <view class="list" v-for="(item1,index1) in item.itemDetailsVOList">
  23 + <view v-if="item1.isshowxz" class="list" v-for="(item1,index1) in item.itemDetailsVOList">
24 24 <view class="info-item">周期:{{item1.startDate}} - {{item1.endDate}}</view>
25 25 <view class="info-item" style="margin-top: 6rpx;">
26 26 <text style="margin-right: 20rpx;">数量:{{item1.number}}{{item1.itemUnit}}</text>
... ... @@ -103,6 +103,20 @@
103 103 cent:{}
104 104 }
105 105 },
  106 + filters: {
  107 +
  108 + jsitem(e) {
  109 + // console.error(e)
  110 + let num = 0
  111 + for (let n = 0; n < e.length; n++) {
  112 + // num = num + Number(e[n].payPrice)
  113 + if(e[n].isshowxz){
  114 + num = num + Number(e[n].payPrice)
  115 + }
  116 + }
  117 + return num.toFixed(2)
  118 + }
  119 + },
106 120 onLoad(e) {
107 121 this.cent = JSON.parse(e.cent)
108 122 console.error(this.cent)
... ...
lvdao-miniapp/pages/propertyPay/propertyPayList/propertyPayList.vue
... ... @@ -45,7 +45,7 @@
45 45 </view>
46 46 <view class="info-item">
47 47 <text style="margin-right: 20rpx;">单价:¥{{item.itemStandard}}</text>
48   - <text>费率:{{item.cheapRate}}%</text>
  48 + <text>费率:{{item.cheapRate || 0}}%</text>
49 49 </view>
50 50 </view>
51 51 </view>
... ... @@ -123,6 +123,7 @@
123 123 </template>
124 124  
125 125 <script>
  126 + import { toMiniPay } from "@/utils/tool.js"
126 127 export default {
127 128 data() {
128 129 return {
... ... @@ -313,7 +314,7 @@
313 314  
314 315 // })
315 316 },
316   - submit() {
  317 + async submit() {
317 318  
318 319 // console.log(this.recordList)
319 320 let c1 = []
... ... @@ -350,80 +351,21 @@
350 351 "paymentContent": JSON.stringify(c1)
351 352 }
352 353 console.log(info)
353   - this.$http.sendRequest('/cerePaymentInfo/payWy', 'POST',info, 1).then(res => {
  354 + const payId = await this.$http.sendRequest('/cerePaymentInfo/payWy', 'POST',info, 1).then(res => {
354 355 console.error(res.data)
  356 + let c1 = res.data.data.split('=')[1]
  357 + console.error(c1)
355 358 if(res.data.code =='200') {
356   - uni.navigateTo({
357   - url:'/pagesA/payweb/payweb?url='+escape(res.data.data)
358   - })
  359 + return c1
  360 +
  361 + // uni.navigateTo({
  362 + // url:'/pagesA/payweb/payweb?url='+escape(res.data.data)
  363 + // })
359 364 }
360 365 })
361   - return
362   - // this.loadShow = true
363   - // setTimeout(()=>{
364   - // this.loadShow = false
365   - // },2000)
366   - if (this.fangshi == '付款码扫码支付') {
367   - this.joinShow = false
368   -
369   - } else {
370   - let payList = {
371   - additional: "附加交易授权",
372   - backUrl: "",
373   - channelId: "",
374   - expireTime: 1800,
375   - finishUrl: "",
376   - latitude: "1",
377   - longitude: "1",
378   - orderNo: "",
379   - payId: "",
380   - payMerData: [{
381   - amount: 1,
382   - body: "物业缴费",
383   - }],
384   - payType: "Online",
385   - returnUrl: "",
386   - showBtn: "1",
387   - siteId: "",
388   - toApp: "0",
389   - totalAmount: 1,
390   - uid: "1693617316237021185",
391   - universalLink: ""
392   - }
393   - const randomNumber = Math.floor(Math.random() * 10000); // 生成一个0到9999之间的随机数
394   - const timestamp = new Date().getTime(); // 获取当前时间的时间戳
395   - payList.orderNo = `${randomNumber}${timestamp}`
396   -
397   - payList.uid = uni.getStorageSync('shopId')
398   - this.$http.sendRequest('/aggregationPayment/createOrder', 'POST', payList, 1).then(res => {
399   - console.log(JSON.parse(res.data.data).data.codeUrl)
400   - let url = JSON.parse(res.data.data).data.codeUrl
401   -
402   - // window.location.href = url
403   - // plus.runtime.openURL(url , function(e) {console.log(e)})
404   - uni.showModal({
405   - title: res.data.message,
406   - showCancel: false,
407   - success: ress => {
408   - uni.switchTab({
409   - url: '/pages/home/home'
410   - })
411   - }
412   - })
413   - })
414   -
415   - this.joinShow = false
416   - // uni.showModal({
417   - // title: '支付成功 ',
418   - // showCancel:false,
419   - // success:ress => {
420   - // uni.switchTab({
421   - // url: '/pages/home/home'
422   - // })
423   - // }
424   - // })
425   - }
426   -
  366 + const payIdbackPath= '/pages/home/home'
  367 + await toMiniPay(payId,payIdbackPath)
  368 +
427 369 },
428 370 confirm(e) {
429 371 console.log(e)
... ... @@ -437,7 +379,7 @@
437 379 this.recordList = res.data.data.detailsVOList.map(item => {
438 380 item.isxl = true
439 381 item.isshowxz = false
440   - item.detailsVOList = item.detailsVOList.map(item1 => {
  382 + item.detailsVOList = item.itemDetailsVOList.map(item1 => {
441 383 item1.isshowxz = false
442 384 return item1
443 385 })
... ...
lvdao-miniapp/pages/shops/shops.vue
... ... @@ -67,7 +67,7 @@
67 67 <text class="line"></text> -->
68 68 <text>面积:</text>
69 69 <text class="max">{{item.actualUsableArea}}</text>
70   - <text class="min">/m²</text>
  70 + <text class="min">m²</text>
71 71 </view>
72 72 </view>
73 73 </view>
... ...
lvdao-miniapp/pages/workbench/workbench.vue
... ... @@ -190,7 +190,7 @@
190 190 path: '/pages/activityAdd/activityAdd'
191 191 },
192 192 {
193   - name: '意向申请',
  193 + name: '寻租申请',
194 194 img: '/yxsq.png',
195 195 path: '/pages/rsaManagement/rsaManagement'
196 196 },
... ... @@ -252,9 +252,14 @@
252 252 img: '/zjjf.png',
253 253 path: '/pagesA/rentPay/rentPay'
254 254 },
  255 + {
  256 + name: '物业缴费',
  257 + img: '/shuidichou.png',
  258 + path: '/pages/propertyPay/propertyPayList/propertyPayList'
  259 + },
255 260 ]
256 261 }, ],
257   -pageList6: [{
  262 + pageList6: [{
258 263 id: 5,
259 264 title: '推广管理',
260 265 children: [{
... ... @@ -305,8 +310,13 @@ pageList6: [{
305 310 async toPath1(path) {
306 311 let c1 = uni.getStorageSync('user').phone
307 312 // let c1 = '18188305496'
308   - await this.$http.sendRequest('/check/getAll','POST',{"shopPhone":c1,"checkState":"1","page":1,"pageSize":1}, 1).then(res => {
309   - if(res.data.data.list.length>0) {
  313 + await this.$http.sendRequest('/check/getAll', 'POST', {
  314 + "shopPhone": c1,
  315 + "checkState": "1",
  316 + "page": 1,
  317 + "pageSize": 1
  318 + }, 1).then(res => {
  319 + if (res.data.data.list.length > 0) {
310 320 uni.setStorageSync('shopId', res.data.data.list[0].shopId);
311 321 } else {
312 322 // uni.show
... ...
lvdao-miniapp/pagesA/addsb/addsb.vue
... ... @@ -2,23 +2,23 @@
2 2 <view class="appbox">
3 3  
4 4 <view style="display: flex;" v-if="type == '1'">
5   - <view @click="changeonindex('意见反馈')" :class="onindex == '意见反馈'?'onclasst1':'classt1'">
6   - 意见反馈
  5 + <view @click="changeonindex('事件上报')" :class="onindex == '事件上报'?'onclasst1':'classt1'">
  6 + 事件上报
7 7 <view class="onindex"></view>
8 8 </view>
9   - <view @click="changeonindex('我的反馈')" :class="onindex == '我的反馈'?'onclasst1':'classt1'">
10   - 我的反馈
  9 + <view @click="changeonindex('我的上报')" :class="onindex == '我的上报'?'onclasst1':'classt1'">
  10 + 我的上报
11 11 <view class="onindex"></view>
12 12 </view>
13 13 </view>
14 14 <view style="display: flex;" v-if="type == '2'">
15   - <view :class="onindex == '意见反馈编辑'?'onclasst1':'classt1'">
16   - 意见反馈编辑
  15 + <view :class="onindex == '事件上报编辑'?'onclasst1':'classt1'">
  16 + 事件上报编辑
17 17 <view class="onindex"></view>
18 18 </view>
19 19 </view>
20 20 <view style="flex: 1;overflow-y: scroll;">
21   - <view v-if="onindex == '意见反馈'" style="overflow-y: scroll;height: 100%;">
  21 + <view v-if="onindex == '事件上报'" style="overflow-y: scroll;height: 100%;">
22 22 <view class="fromitem">
23 23 <view class="t1 tit1">
24 24 上报位置
... ... @@ -54,7 +54,7 @@
54 54 <u-button style="width: 100%;" type="success" @click="submit">提交</u-button>
55 55 </view>
56 56 </view>
57   - <scroll-view style="height: 100%;" scroll-y v-if="onindex == '我的反馈'" @scrolltolower="scrolltolower">
  57 + <scroll-view style="height: 100%;" scroll-y v-if="onindex == '我的上报'" @scrolltolower="scrolltolower">
58 58 <view v-if="mylist.length == 0" style="text-align: center;margin-top: 50rpx;" class="tit1">暂无数据</view>
59 59 <view style="background: #fff;border-radius: 18rpx;padding: 30rpx;margin-top: 30rpx;"
60 60 v-for="(item,index) in mylist">
... ... @@ -86,7 +86,7 @@
86 86 </view>
87 87 </view>
88 88 </scroll-view>
89   - <view v-if="onindex == '意见反馈编辑'">
  89 + <view v-if="onindex == '事件上报编辑'">
90 90 <view class="fromitem">
91 91 <view class="t1 tit1">
92 92 上报位置
... ... @@ -142,7 +142,7 @@
142 142 typeShow: false,
143 143 typeList: [],
144 144 ontype: null,
145   - onindex: '意见反馈',
  145 + onindex: '事件上报',
146 146 form: {
147 147 problemDescribe: '',
148 148 reportLocation: '',
... ... @@ -190,7 +190,7 @@
190 190 },
191 191 qux() {
192 192 this.type = '1'
193   - this.changeonindex('我的反馈')
  193 + this.changeonindex('我的上报')
194 194 },
195 195 remove(e) {
196 196 this.removeinfo = e
... ... @@ -202,7 +202,7 @@
202 202 })
203 203 this.ontype = this.removeinfo.eventTypeName;
204 204 console.error(this.fist)
205   - this.onindex = '意见反馈编辑'
  205 + this.onindex = '事件上报编辑'
206 206 this.type = '2'
207 207 },
208 208 removeonfo() {
... ... @@ -219,7 +219,7 @@
219 219 })
220 220 setTimeout(() => {
221 221 this.type = '1'
222   - this.changeonindex('我的反馈')
  222 + this.changeonindex('我的上报')
223 223 }, 1000);
224 224 } else{
225 225 uni.showToast({
... ... @@ -253,9 +253,9 @@
253 253 this.mylist = []
254 254 this.ontype = null
255 255 this.page = 0
256   - if (this.onindex == '意见反馈') {
  256 + if (this.onindex == '事件上报') {
257 257  
258   - } else if (this.onindex == '我的反馈') {
  258 + } else if (this.onindex == '我的上报') {
259 259 this.gain()
260 260 }
261 261 },
... ... @@ -291,7 +291,7 @@
291 291 userPhone: uni.getStorageSync('user').phone,
292 292 }
293 293 setTimeout(() => {
294   - this.changeonindex('我的反馈')
  294 + this.changeonindex('我的上报')
295 295 }, 1000);
296 296 } else{
297 297 uni.showToast({
... ...
lvdao-miniapp/pagesA/myZiyuan/myZiDetailsnew.vue
... ... @@ -49,12 +49,12 @@
49 49  
50 50 <view class="form-item">
51 51 <view class="label">实际使用面积</view>
52   - <text v-if='record.cereBasicInformationShop.actualUsableArea'>{{record.cereBasicInformationShop.actualUsableArea}}/M²</text>
  52 + <text v-if='record.cereBasicInformationShop.actualUsableArea'>{{record.cereBasicInformationShop.actualUsableArea}}m²</text>
53 53 <text v-else>无</text>
54 54 </view>
55 55 <view class="form-item">
56 56 <view class="label">产权面积</view>
57   - <text v-if='record.cereBasicInformationShop.propertyArea'>{{record.cereBasicInformationShop.propertyArea}}/M²</text>
  57 + <text v-if='record.cereBasicInformationShop.propertyArea'>{{record.cereBasicInformationShop.propertyArea}}m²</text>
58 58 <text v-else>无</text>
59 59 </view>
60 60 <view class="form-item">
... ... @@ -179,8 +179,9 @@
179 179 :custom-style="hoverStyle" hover-class="none" :plain="true">添加我的店铺信息</u-button></view>
180 180 <view class="page-footer" v-if="record.dataStatus =='1' ">
181 181 <u-button style="background-color: #DFE0E4; flex: 1; margin: 0 10px;"
182   - @click="getQuit('/pagesA/myZiyuan/myZiyuanQuit')">申请退租</u-button>
183   - <u-button type="success" style="flex: 1; margin: 0 10px;" @click="xuShow = true">申请续租</u-button>
  182 + @click="getQuit('/pagesA/myZiyuan/myZiyuanQuit','0')">申请退租</u-button>
  183 + <!-- <u-button type="success" style="flex: 1; margin: 0 10px;" @click="xuShow = true">申请续租</u-button> -->
  184 + <u-button type="success" style="flex: 1; margin: 0 10px;" @click="getQuit('/pagesA/myZiyuan/myZiyuanQuit','1')">申请续租</u-button>
184 185 <u-button type="success" style="flex: 1; margin: 0 10px;" @click="xiuMsg(2)"
185 186 v-if="btnShow == false&&mapType == '商铺'">修改资料</u-button>
186 187 </view>
... ... @@ -277,9 +278,9 @@
277 278  
278 279 },
279 280 methods: {
280   - getQuit(urls) {
  281 + getQuit(urls,type) {
281 282 uni.navigateTo({
282   - url: urls + `?ids=${this.heData.id}`
  283 + url: urls + `?ids=${this.heData.id}` + `&type=${type}`
283 284 })
284 285 },
285 286 xufirm() {
... ...
lvdao-miniapp/pagesA/myZiyuan/myZiyuanQuit.vue
1 1 <template>
2 2 <view class="page">
3 3  
4   - <view class="add-list">
  4 + <view class="add-list" >
5 5 <u-form labelPosition="left" :model="ruleForm" ref="uForm" :labelWidth="250">
6 6 <u-form-item label="*申请原因" prop="reasonForApplication" borderBottom>
7 7 </u-form-item>
... ... @@ -10,7 +10,7 @@
10 10 </view>
11 11 <view class="add-list">
12 12 <u-form labelPosition="left" :model="ruleForm" ref="uForm" :labelWidth="250">
13   - <u-form-item label="*申请退租时间" prop="applicationTime" borderBottom>
  13 + <u-form-item label="*申请时间" prop="applicationTime" borderBottom>
14 14 <u-input v-model="ruleForm.applicationTime" type="select" @click="busStartshow = true"
15 15 placeholder="请选择" :custom-style="selStyle" />
16 16 <u-picker mode="time" v-model="busStartshow" :params="params" @confirm="busStTimeChange"></u-picker>
... ... @@ -59,6 +59,9 @@
59 59 if (option.ids) {
60 60 this.ruleForm.contractId = Number(option.ids)
61 61 }
  62 + if (option.type) {
  63 + this.ruleForm.contractType = option.type
  64 + }
62 65 },
63 66 onShow() {},
64 67 methods: {
... ... @@ -79,29 +82,40 @@
79 82 icon: 'none',
80 83 title: '请输入申请原因'
81 84 });
82   - return;
  85 + return false;
83 86 }
84 87 if (!this.ruleForm.applicationTime) {
85 88 uni.showToast({
86 89 icon: 'none',
87 90 title: '请选择退租申请时间'
88 91 });
89   - return;
  92 + return false;
90 93 }
91   -
  94 + return true;
92 95 },
93 96 go() {
94 97 this.ruleForm.createUser = uni.getStorageSync('user').phone
95 98 this.ruleForm.createTime = this.getCurrentTime()
96   - this.chek()
  99 + let c1 = this.chek()
  100 + if(!c1) {
  101 + return
  102 + }
97 103 this.$http.sendRequest('/changeContractInformation/add', 'POST', this.ruleForm, 1).then(res => {
98   - uni.showToast({
99   - title: '提交成功',
100   - icon: 'none',
101   - });
102   - uni.switchTab({
103   - url: '/pages/my/my'
104   - });
  104 +
  105 + if(res.data.code == '200') {
  106 + uni.showToast({
  107 + title: '提交成功',
  108 + icon: 'none',
  109 + });
  110 + setTimeout(()=>{
  111 + uni.navigateBack()
  112 + },1000)
  113 + } else {
  114 + uni.showToast({
  115 + title: res.data.message,
  116 + icon: 'none',
  117 + });
  118 + }
105 119  
106 120 })
107 121 },
... ...
lvdao-miniapp/pagesA/rentPay/goPay.vue
... ... @@ -9,7 +9,7 @@
9 9 </view>
10 10 <view style="height: 120rpx;"></view>
11 11 <view class="page-footer">
12   - <u-button style="width: 100%;border-radius: 15px;" type="success" @click="submit">支付</u-button>
  12 + <u-button style="width: 100%;border-radius: 15px;" type="success" @click="submit">支付</u-button>
13 13 </view>
14 14 </view>
15 15 </template>
... ... @@ -18,68 +18,71 @@
18 18 export default {
19 19 data() {
20 20 return {
21   - receivedMsg:[],
22   - allPay:0
23   - }
  21 + receivedMsg: [],
  22 + allPay: 0
  23 + }
24 24 },
25 25 onLoad(options) {
26   - if(options.msg){
27   - let receivedMsg = JSON.parse(options.msg)
28   - this.receivedMsg = receivedMsg
29   - receivedMsg.map(item=>{
30   - this.allPay += item.paymentAmount
31   - })
32   - }
  26 + if (options.msg) {
  27 + let receivedMsg = JSON.parse(options.msg)
  28 + this.receivedMsg = receivedMsg
  29 + receivedMsg.map(item => {
  30 + this.allPay += item.paymentAmount
  31 + })
  32 + }
33 33 },
34 34 onShow() {
35   - const isLogin = uni.getStorageSync('token');
36   - if (isLogin == '') {
37   - // 如果未登录,跳转到登录页面
38   - uni.navigateTo({
39   - url: '/pages/login/login'
40   - })
41   - } else {
42   -
43   - this.$http.sendRequest('/cerePlatformMerchant/queryByPage', 'POST',{"pageSize":10,pageNumber:0,phone:uni.getStorageSync('user').phone}).then(res => {
44   - if(res.data.code == '20004' || res.data.code == '20003'){
45   - uni.navigateTo({
46   - url: '/pages/login/login'
47   - })
48   - }
49   - })
50   - }
51   -
52   - },
53   - methods: {
54   - submit(){
55   -
56   - let arr = []
57   - this.receivedMsg.map(item=>{
58   - let obj = {
59   - orderId:item.tenementOrder,
60   - money:item.paymentAmount,
61   - }
62   - arr.push(obj)
  35 + const isLogin = uni.getStorageSync('token');
  36 + if (isLogin == '') {
  37 + // 如果未登录,跳转到登录页面
  38 + uni.navigateTo({
  39 + url: '/pages/login/login'
  40 + })
  41 + } else {
  42 +
  43 + this.$http.sendRequest('/cerePlatformMerchant/queryByPage', 'POST', {
  44 + "pageSize": 10,
  45 + pageNumber: 0,
  46 + phone: uni.getStorageSync('user').phone
  47 + }).then(res => {
  48 + if (res.data.code == '20004' || res.data.code == '20003') {
  49 + uni.navigateTo({
  50 + url: '/pages/login/login'
63 51 })
64   -
65   - // return
66   - this.$http.sendRequest('/order/rentAggregatePayment','POST',arr,3).then(res => {
67   - console.log(JSON.parse(res.data.data).data.codeUrl)
68   - if(res.data.data){
69   - uni.redirectTo({
70   - url: `/pagesA/rentPay/webView?urls=${JSON.parse(res.data.data).data.codeUrl}`
71   - })
72   - }
  52 + }
  53 + })
  54 + }
  55 +
  56 + },
  57 + methods: {
  58 + submit() {
  59 +
  60 + let arr = []
  61 + this.receivedMsg.map(item => {
  62 + let obj = {
  63 + orderId: item.tenementOrder,
  64 + money: item.paymentAmount,
  65 + }
  66 + arr.push(obj)
  67 + })
  68 +
  69 + // return
  70 + this.$http.sendRequest('/order/rentAggregatePayment', 'POST', arr, 3).then(res => {
  71 + console.log(JSON.parse(res.data.data).data.codeUrl)
  72 + if (res.data.data) {
  73 + uni.redirectTo({
  74 + url: `/pagesA/rentPay/webView?urls=${JSON.parse(res.data.data).data.codeUrl}`
73 75 })
74   -
75 76 }
76   - }
77   -}
78   -
  77 + })
  78 +
  79 + }
  80 + }
  81 + }
79 82 </script>
80 83  
81 84 <style scoped lang="scss">
82   - .page{
  85 + .page {
83 86 position: absolute;
84 87 left: 0;
85 88 top: 0;
... ... @@ -87,32 +90,36 @@
87 90 height: 100%;
88 91 padding: 0 20rpx;
89 92 }
90   - .timsg{
91   - height:20vh;
  93 +
  94 + .timsg {
  95 + height: 20vh;
92 96 text-align: center;
93 97 padding: 50px 0;
94   - .msgtitle{
  98 +
  99 + .msgtitle {
95 100 margin-bottom: 20px;
96 101 font-size: 30rpx;
97 102 color: #A4A4A4;
98 103 }
  104 +
99 105 .price {
100 106 color: #0FBB59;
101 107 font-size: 50rpx;
102 108 font-weight: 700;
103 109 }
104 110 }
105   - .page-footer{
  111 +
  112 + .page-footer {
106 113 position: fixed;
107 114 left: 0;
108 115 bottom: 0;
109 116 width: 100%;
110   -
  117 +
111 118 background-color: #FFFFFF;
112 119 padding: 20rpx 20rpx;
113 120 padding-bottom: constant(safe-area-inset-bottom);
114 121 padding-bottom: env(safe-area-inset-bottom);
115 122 z-index: 999;
116   -
117   - }
  123 +
  124 + }
118 125 </style>
119 126 \ No newline at end of file
... ...
lvdao-miniapp/pagesA/rentPay/rentPay.scss
... ... @@ -96,10 +96,9 @@
96 96 bottom: 0;
97 97 width: 100%;
98 98 background-color: #FFFFFF;
99   - padding: 10rpx 20rpx;
100   - padding-bottom: constant(safe-area-inset-bottom);
101   - padding-bottom: env(safe-area-inset-bottom);
  99 + padding: 30rpx;
102 100 z-index: 999;
  101 + box-sizing: border-box;
103 102 .footer-buy{
104 103 display: flex;
105 104 align-items: center;
... ... @@ -112,14 +111,7 @@
112 111 min-width: 20%;
113 112 height: 70rpx;
114 113 }
115   - .buttons{
116   - font-size: 30rpx;
117 114  
118   - margin: 0 10rpx !important;
119   - height: 32px !important;
120   - border-radius: 10rpx !important;
121   - margin-top: 20rpx !important;
122   -}
123 115 .u-size-default.data-v-3bf2dba7 {
124 116 font-size: 30rpx;
125 117 height: 100% !important;
... ...
lvdao-miniapp/pagesA/rentPay/rentPay.vue
... ... @@ -219,10 +219,32 @@
219 219 payArr.push(item)
220 220 }
221 221 })
222   - const msg = JSON.stringify(payArr)
223   - uni.navigateTo({
224   - url: `/pagesA/rentPay/goPay?msg=${msg}`
  222 +
  223 + let arr = []
  224 + payArr.map(item => {
  225 + let obj = {
  226 + orderId: item.tenementOrder,
  227 + money: item.paymentAmount,
  228 + }
  229 + arr.push(obj)
  230 + })
  231 +
  232 + // return
  233 + this.$http.sendRequest('/order/rentAggregatePayment', 'POST', arr, 3).then(res => {
  234 + console.log(res.data)
  235 + if (res.data.data) {
  236 + // uni.redirectTo({
  237 + // url: `/pagesA/rentPay/webView?urls=${JSON.parse(res.data.data).data.codeUrl}`
  238 + // })
  239 + }
225 240 })
  241 +
  242 +
  243 +
  244 + // const msg = JSON.stringify(payArr)
  245 + // uni.navigateTo({
  246 + // url: `/pagesA/rentPay/goPay?msg=${msg}`
  247 + // })
226 248 }
227 249 },
228 250 confirm(e) {
... ...
lvdao-miniapp/pagesA/weball/web.vue 0 → 100644
  1 +<template>
  2 + <view>
  3 + <web-view :src="url"></web-view>
  4 + </view>
  5 +</template>
  6 +
  7 +<script>
  8 + export default {
  9 + data() {
  10 + return {
  11 + url:''
  12 + }
  13 + },
  14 + onLoad(e) {
  15 + if(e.url) {
  16 + this.url = e.url
  17 + }
  18 + },
  19 + methods: {
  20 +
  21 + }
  22 + }
  23 +</script>
  24 +
  25 +<style>
  26 +
  27 +</style>
... ...
lvdao-miniapp/static/icon/icon1.png

637 Bytes | W: | H:

632 Bytes | W: | H:

  • 2-up
  • Swipe
  • Onion skin
lvdao-miniapp/static/icon/icon11.png

1.11 KB | W: | H:

881 Bytes | W: | H:

  • 2-up
  • Swipe
  • Onion skin
lvdao-miniapp/static/icon/icon12.png

1.37 KB | W: | H:

1.08 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
lvdao-miniapp/static/icon/icon13.png

1.32 KB | W: | H:

1.05 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
lvdao-miniapp/static/icon/icon14.png

1.2 KB | W: | H:

1 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
lvdao-miniapp/static/icon/icon15.png

1.11 KB | W: | H:

955 Bytes | W: | H:

  • 2-up
  • Swipe
  • Onion skin
lvdao-miniapp/static/icon/icon16.png

4.14 KB | W: | H:

2 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
lvdao-miniapp/static/icon/icon2.png

457 Bytes | W: | H:

446 Bytes | W: | H:

  • 2-up
  • Swipe
  • Onion skin
lvdao-miniapp/static/icon/icon4.png

471 Bytes | W: | H:

467 Bytes | W: | H:

  • 2-up
  • Swipe
  • Onion skin
lvdao-miniapp/static/icon/icon6.png

497 Bytes | W: | H:

492 Bytes | W: | H:

  • 2-up
  • Swipe
  • Onion skin
lvdao-miniapp/static/icon/icon7.png

1.3 KB | W: | H:

563 Bytes | W: | H:

  • 2-up
  • Swipe
  • Onion skin
lvdao-miniapp/utils/request.js
... ... @@ -21,17 +21,17 @@ const sendRequest = (url, method = &#39;GET&#39;, data = {}, baseUrl,contentType) =&gt; {
21 21 // bases = 'https://zhgw.028wlkj.com:20443/cdwlMall/meserver/admin-server' + url;
22 22 // bases = 'https://jy.scjysm.asia:18086/cdwlMall/meserver/admin-server' + url;
23 23  
24   - bases = 'http://128.10.249.23:9003'+ url;
  24 + // bases = 'http://128.10.249.8:9003'+ url;
25 25 // bases = 'https://zhld.028wlkj.com:49008/cdwlMall/admin-server' + url;
26 26  
27   - // bases = c1 + 'cdwlMall/meserver/admin-server' + url;
  27 + bases = c1 + 'cdwlMall/meserver/admin-server' + url;
28 28  
29 29 }else if(baseUrl == 3){
30 30 // bases = 'https://jy.scjysm.asia:18086/cdwlMall/meserver/api' + url;
31 31 // bases = 'https://zhgw.028wlkj.com:20443/cdwlMall/meserver/api' + url;
32 32 // bases = 'http://128.10.249.22:9003:9007' + url;
33   - bases = 'http://128.10.249.23:9007' + url;
34   - // bases = c1 + 'cdwlMall/meserver/api' + url;
  33 + // bases = 'http://128.10.249.8:9007' + url;
  34 + bases = c1 + 'cdwlMall/meserver/api' + url;
35 35  
36 36 }else{
37 37 // bases = 'http://128.10.249.22:9004' + url;
... ... @@ -39,9 +39,9 @@ const sendRequest = (url, method = &#39;GET&#39;, data = {}, baseUrl,contentType) =&gt; {
39 39 // bases = 'http://172.16.61.123/cdwlMall/business-server' + url;
40 40 // bases = 'https://jy.scjysm.asia:18086/cdwlMall/business-server' + url;
41 41 // bases = 'https://zhgw.028wlkj.com:20443/cdwlMall/business-server' + url;
42   - bases = 'http://128.10.249.23:9004' + url;
  42 + // bases = 'http://128.10.249.8:9004' + url;
43 43 // bases = 'https://zhld.028wlkj.com:49008/cdwlMall/business-server' + url;
44   - // bases = c1 + 'cdwlMall/business-server' + url;
  44 + bases = c1 + 'cdwlMall/business-server' + url;
45 45  
46 46 }
47 47 var token = uni.getStorageSync('token') || '';
... ...
lvdao-miniapp/utils/tool.js 0 → 100644
  1 +export function toMiniPay(payId, backPath) {
  2 + return new Promise((resolve, reject) =>{
  3 + console.error(payId, backPath)
  4 + uni.navigateToMiniProgram({
  5 + appId: "wxf0f8b911ac324457", //支付小程序的
  6 + path:`pages/common/travelMini?payId=${payId}`, // 打开支付小程序的指定页面
  7 + extraData: {}, //需要传递给目标小程序的数据
  8 + envVersion: "trial", //打开的对应小程序环境:开发 develop、体验 tria1、生产 release
  9 + success: function() {
  10 + resolve(); //成功回调
  11 + },
  12 + fail: function(res) {
  13 + console.log(res);
  14 + if (backPath) {
  15 + uni.reLaunch({
  16 + ur1: `${backPath}?paystate=CANCEL PAY`
  17 + });
  18 + } else {
  19 + console.log("取消支付就停留在当前页");
  20 + }
  21 + reject("跳转失败");
  22 + }
  23 + })
  24 + })
  25 +}
0 26 \ No newline at end of file
... ...