需求变更进行调整

This commit is contained in:
2026-01-30 09:01:38 +08:00
parent 44a4b33502
commit 79a21ff0a5
30 changed files with 1482 additions and 1707 deletions

View File

@@ -8,9 +8,9 @@
<!-- 关联合同 -->
<view class="form-item">
<text class="label">关联合同</text>
<picker :range="contracts" range-key="name" @change="onContractChange">
<picker :range="contracts" range-key="contractName" @change="onContractChange">
<view class="picker-value">
{{ selectedContract ? selectedContract.name : '请选择合同' }}
{{ selectedContract ? selectedContract.contractName : '请选择合同' }}
</view>
</picker>
</view>
@@ -20,7 +20,7 @@
<text class="label">关联资产</text>
<view class="picker-value" @click="openAssetsPopup">
{{ selectedAssetsList.length
? selectedAssetsList.map(a => a.name).join('')
? selectedAssetsList.map(a => a.assetsName).join('')
: '请选择资产' }}
<text v-if="selectedAssetsList.length">{{ selectedAssetsList.length }}</text>
</view>
@@ -54,10 +54,10 @@
<input v-model="assetSearch" placeholder="搜索资产" class="search-input" />
</view>
<scroll-view scroll-y style="height:500rpx;">
<checkbox-group v-model="selectedAssetsKeys">
<checkbox-group @change="onAssetsChange">
<label v-for="asset in filteredAssets" :key="asset.assetsNo"
style="display:block;padding:12rpx 20rpx;border-bottom:1rpx solid #f0f0f0;">
<checkbox :value="asset.assetsNo" /> {{ asset.name }}
<checkbox :value="asset.assetsNo" :checked="selectedAssetsKeys.includes(asset.assetsNo)" /> {{ asset.assetsName }}
</label>
</checkbox-group>
</scroll-view>
@@ -99,11 +99,14 @@
onContractChange(e) {
const index = e.detail.value;
this.selectedContract = this.contracts[index];
this.assetsList = this.contracts[index].assets || [];
this.assetsList = this.contracts[index].assetsInfos || [];
// 清空之前选择
this.selectedAssetsKeys = [];
this.selectedAssetsList = [];
},
onAssetsChange(e) {
this.selectedAssetsKeys = e.detail.value
},
openAssetsPopup() {
if (!this.selectedContract) {
uni.showToast({
@@ -115,6 +118,7 @@
this.showAssetsPopup = true;
},
confirmAssets() {
console.log(this.selectedAssetsKeys)
this.selectedAssetsList = this.assetsList.filter(a =>
this.selectedAssetsKeys.includes(a.assetsNo)
);
@@ -139,6 +143,14 @@
});
},
submitForm() {
let userInfo = uni.getStorageSync('userInfo');
if(!userInfo.cusNo) {
uni.showToast({
title: '您还未实名',
icon: 'none'
});
return;
}
if (
!this.selectedContract ||
!this.cancelDate ||
@@ -151,7 +163,7 @@
});
return;
}
const data = {
contractNo: this.selectedContract.contractNo,
cancelDate: this.cancelDate,
@@ -174,7 +186,7 @@
})
}
} else {
this.$mytip.toast('提交退租申请失败')
this.$mytip.toast('提交退租申请失败:' + res.message )
}
})
.catch(err => {
@@ -259,8 +271,8 @@
.popup-btn {
margin: 20rpx;
height: 60rpx;
background: #007aff;
height: 80rpx;
background: #FB392A;
color: #fff;
border-radius: 8rpx;
font-size: 28rpx;

View File

@@ -12,8 +12,8 @@
<!-- 合同名称和状态 -->
<view class="card-header">
<text class="contract-name">{{ item.contractName }}</text>
<text :class="['record-status', item.status]">
{{ statusText(item.status) }}
<text :class="['record-status', statusText(item.status)]">
{{ item.status||'未知' }}
</text>
</view>
@@ -22,13 +22,16 @@
<!-- 预约时间 -->
<view class="info-item">
<text class="info-label">申请时间</text>
<text class="info-value"> {{item.applyTime}} </text>
<text class="info-value"> {{item.applyDate || ''}} </text>
</view>
<view class="info-item">
<text class="info-label">退租资产</text>
<text class="info-value"> {{item.dischargeItem}} </text>
<text class="info-value"> {{item.dischargeItem || ''}} </text>
</view>
<view class="info-item">
<text class="info-label">审批意见</text>
<text class="info-value"> {{item.remark || ''}} </text>
</view>
</view>
</view>
@@ -40,9 +43,9 @@
</view>
</scroll-view>
<!-- 底部新增留言按钮 -->
<view class="add-btn-container">
<!-- <view class="add-btn-container">
<button class="add-btn" @click="toApply()">新增退租申请</button>
</view>
</view> -->
</view>
</template>
@@ -60,12 +63,15 @@
methods: {
statusText(status) {
switch (status) {
case 'pending':
return '待确认';
case 'done':
return '完成';
case '申请中':
case '已批准':
return 'pending';
case '退租完成':
return 'done';
case '已驳回':
return 'reject';
default:
return '未知';
return 'unknown';
}
},
formatDate(dateStr) {
@@ -92,7 +98,6 @@
WT: this.$getToken()
}).then(res => {
const rows = res.data.result || [];
console.log(rows)
if (this.pageNo === 1) this.flowList = [];
this.flowList = this.flowList.concat(rows);
if (rows.length < this.pageSize) {
@@ -188,14 +193,18 @@
border-radius: 4rpx;
&.done {
background: #FCE5E0;
color: #ED7748;
background: #FCE5E0; /* 保持原有浅橙色背景 */
color: #ED7748; /* 保持原有橙色文字 */
}
&.pending {
background: #F2F3F7;
color: #86868C;
}
&.reject {
background: #FFE4E1; /* 浅红色背景 */
color: #DC143C; /* 深红色文字 */
}
}
.card-content {