Commit ea4bb3525f5b71f1dbbe45c707f549bf37c5304e
1 parent
eef82803
1
Showing
12 changed files
with
2085 additions
and
321 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/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/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
| ... | ... | @@ -22,7 +22,7 @@ if(host === 'localhost:8080' || host === 'localhost:8081' || host === 'localhost |
| 22 | 22 | // baseURL = process.env.VUE_APP_DOMAIN_PREFIX_1; |
| 23 | 23 | |
| 24 | 24 | |
| 25 | - baseURL = 'http://128.10.249.23:9003'; | |
| 25 | + baseURL = 'http://128.10.249.8:9003'; | |
| 26 | 26 | |
| 27 | 27 | |
| 28 | 28 | } else { | ... | ... |
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/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> |
| ... | ... | @@ -437,7 +437,7 @@ |
| 437 | 437 | this.recordList = res.data.data.detailsVOList.map(item => { |
| 438 | 438 | item.isxl = true |
| 439 | 439 | item.isshowxz = false |
| 440 | - item.detailsVOList = item.detailsVOList.map(item1 => { | |
| 440 | + item.detailsVOList = item.itemDetailsVOList.map(item1 => { | |
| 441 | 441 | item1.isshowxz = false |
| 442 | 442 | return item1 |
| 443 | 443 | }) | ... | ... |
lvdao-miniapp/pagesA/myZiyuan/myZiDetailsnew.vue
| ... | ... | @@ -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/utils/request.js
| ... | ... | @@ -21,7 +21,7 @@ const sendRequest = (url, method = 'GET', data = {}, baseUrl,contentType) => { |
| 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 | 27 | // bases = c1 + 'cdwlMall/meserver/admin-server' + url; |
| ... | ... | @@ -30,8 +30,8 @@ const sendRequest = (url, method = 'GET', data = {}, baseUrl,contentType) => { |
| 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.23: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 = 'GET', data = {}, baseUrl,contentType) => { |
| 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.23: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') || ''; | ... | ... |