Compare commits

..

5 Commits

Author SHA1 Message Date
赵毅
bb54f833d3 新增功能 -- 合同申请之后弹窗提醒用户跳转页面输入信息 2025-12-05 14:04:51 +08:00
赵毅
57cfbe00d7 修改湖畔好店类目详情中搜索不起作用的问题 2025-12-05 10:56:31 +08:00
赵毅
2f2e11cc6b 完成商户分账信息查询功能 2025-12-05 10:09:05 +08:00
赵毅
61b44c2e5f 完成商户进件查询功能 2025-12-05 10:01:45 +08:00
赵毅
b9ce0ed741 修改合同查询操作 2025-12-05 09:56:37 +08:00
7 changed files with 401 additions and 186 deletions

View File

@ -218,12 +218,13 @@ page {
.submit-section { .submit-section {
margin-top: 40rpx; margin-top: 40rpx;
margin-bottom: 20rpx; margin-bottom: 20rpx;
display: flex;
} }
.submit-btn { .submit-btn,
.submit-btn1 {
width: 100%; width: 100%;
height: 80rpx; height: 80rpx;
background-color: #007aff;
color: #fff; color: #fff;
font-size: 28rpx; font-size: 28rpx;
border-radius: 8rpx; border-radius: 8rpx;
@ -232,6 +233,16 @@ page {
box-shadow: 0 4rpx 12rpx rgba(0, 122, 255, 0.3); box-shadow: 0 4rpx 12rpx rgba(0, 122, 255, 0.3);
} }
.submit-btn {
background-color: #007aff;
margin-left: 5rpx;
}
.submit-btn1 {
background-color: #ff4016;
margin-right: 5rpx;
}
.submit-btn:active { .submit-btn:active {
background-color: #0051d5; background-color: #0051d5;
transform: scale(0.98); transform: scale(0.98);

View File

@ -173,6 +173,7 @@
<!-- 提交按钮 --> <!-- 提交按钮 -->
<view class="form-section submit-section"> <view class="form-section submit-section">
<button type="button" class="submit-btn1" @click="ecQuery">结果查询</button>
<button type="submit" class="submit-btn" @click="submitForm">提交申请</button> <button type="submit" class="submit-btn" @click="submitForm">提交申请</button>
</view> </view>
</form> </form>
@ -635,6 +636,40 @@ export default {
return true; return true;
}, },
ecQuery() {
const storeValue = uni.getStorageSync('storeValue');
if (!storeValue || !storeValue.contractId) {
uni.showToast({
title: '请先提交申请',
icon: 'none'
});
return;
}
const params = {
contractId: storeValue.contractId
}
request(apiArr.queryMerchant, "POST", params).then(res => {
if (res.respData.contractStatus === 'REVIEW_ING') {
uni.showToast({
title: '审核通过',
icon: 'success'
});
uni.setStorageSync('storeValue', { merInnerNo: res.respData.merInnerNo });
uni.setStorageSync('storeValue', { merCupNo: res.respData.merCupNo });
} else if (res.respData.contractStatus === 'WAIT_FOR_CONTACT') {
uni.showToast({
title: '审核驳回',
icon: 'none'
});
} else if (res.respData.contractStatus === 'MANUAL_AUDIT') {
uni.showToast({
title: '审核中',
icon: 'none'
});
}
})
},
// //
submitForm() { submitForm() {
// //
@ -691,22 +726,11 @@ export default {
// addMer // addMer
request(apiArr.addMer, "POST", submitData).then(res => { request(apiArr.addMer, "POST", submitData).then(res => {
uni.hideLoading(); uni.hideLoading();
uni.showToast({
if (res && res.cmdRetCode === 'SUCCESS') { title: '提交成功',
uni.showToast({ icon: 'success'
title: '提交成功', });
icon: 'success' uni.setStorageSync('storeValue', { contractId: res.respData.contractId });
});
setTimeout(() => {
uni.navigateBack();
}, 1500);
} else {
uni.showToast({
title: res?.retMsg || '提交失败',
icon: 'none'
});
}
}).catch(error => { }).catch(error => {
uni.hideLoading(); uni.hideLoading();
console.error('提交失败:', error); console.error('提交失败:', error);

View File

@ -218,12 +218,13 @@ page {
.submit-section { .submit-section {
margin-top: 40rpx; margin-top: 40rpx;
margin-bottom: 20rpx; margin-bottom: 20rpx;
display: flex;
} }
.submit-btn { .submit-btn,
.submit-btn1 {
width: 100%; width: 100%;
height: 80rpx; height: 80rpx;
background-color: #007aff;
color: #fff; color: #fff;
font-size: 28rpx; font-size: 28rpx;
border-radius: 8rpx; border-radius: 8rpx;
@ -232,6 +233,16 @@ page {
box-shadow: 0 4rpx 12rpx rgba(0, 122, 255, 0.3); box-shadow: 0 4rpx 12rpx rgba(0, 122, 255, 0.3);
} }
.submit-btn {
background-color: #007aff;
margin-left: 5rpx;
}
.submit-btn1 {
background-color: #ff4016;
margin-right: 5rpx;
}
.submit-btn:active { .submit-btn:active {
background-color: #0051d5; background-color: #0051d5;
transform: scale(0.98); transform: scale(0.98);

View File

@ -5,7 +5,8 @@
<view class="form-section"> <view class="form-section">
<view class="form-item"> <view class="form-item">
<label class="form-label required">商户号</label> <label class="form-label required">商户号</label>
<input type="number" class="form-input" v-model.number="formData.mch_id" placeholder="请输入商户号" required> <input type="number" class="form-input" v-model.number="formData.mch_id" placeholder="请输入商户号"
required>
</view> </view>
<view class="form-item"> <view class="form-item">
@ -20,7 +21,8 @@
<view class="form-item"> <view class="form-item">
<label class="form-label required">联系手机号</label> <label class="form-label required">联系手机号</label>
<input type="number" class="form-input" v-model="formData.contactMobile" placeholder="请输入联系手机号" required> <input type="number" class="form-input" v-model="formData.contactMobile" placeholder="请输入联系手机号"
required>
</view> </view>
<view class="form-item"> <view class="form-item">
@ -52,6 +54,7 @@
<!-- 提交按钮 --> <!-- 提交按钮 -->
<view class="form-section submit-section"> <view class="form-section submit-section">
<button type="button" class="submit-btn1" @click="ecQuery">结果查询</button>
<button type="submit" class="submit-btn" @click="submitForm">提交申请</button> <button type="submit" class="submit-btn" @click="submitForm">提交申请</button>
</view> </view>
</form> </form>
@ -61,7 +64,8 @@
<view class="popup-content"> <view class="popup-content">
<view class="popup-title">选择附件类型</view> <view class="popup-title">选择附件类型</view>
<view class="popup-list"> <view class="popup-list">
<view class="popup-item" v-for="type in fileAttachTypeOptions" :key="type.value" @click="selectFileAttachType(showFileAttachTypePopup, type)"> <view class="popup-item" v-for="type in fileAttachTypeOptions" :key="type.value"
@click="selectFileAttachType(showFileAttachTypePopup, type)">
{{ type.label }} {{ type.label }}
</view> </view>
</view> </view>
@ -113,108 +117,108 @@ export default {
methods: { methods: {
// //
addFile() { addFile() {
this.formData.fileData.push({ this.formData.fileData.push({
attType: '', attType: '',
attFileId: '', attFileId: '',
attachName: '' attachName: ''
});
},
//
selectFileAttachType(index, type) {
this.formData.fileData[index].attType = type.value;
this.showFileAttachTypePopup = -1;
},
//
getAttachTypeLabel(typeValue) {
if (!typeValue) return '';
const option = this.fileAttachTypeOptions.find(type => type.value === typeValue);
return option ? option.label : '';
},
//
removeFile(index) {
this.formData.fileData.splice(index, 1);
},
//
uploadFile(index) {
const fileData = this.formData.fileData[index];
//
if (!fileData.attType) {
uni.showToast({
title: '请先选择附件类型',
icon: 'none'
}); });
}, return;
}
// // uni.chooseMessageFile API
selectFileAttachType(index, type) { uni.chooseMessageFile({
this.formData.fileData[index].attType = type.value; count: 1,
this.showFileAttachTypePopup = -1; type: 'file',
}, extension: ['pdf', 'doc', 'docx', 'jpg', 'jpeg', 'png'], //
success: (res) => {
const tempFile = res.tempFiles[0];
console.log("选择的文件:", tempFile);
// //
getAttachTypeLabel(typeValue) { fileData.attachName = tempFile.name;
if (!typeValue) return '';
const option = this.fileAttachTypeOptions.find(type => type.value === typeValue);
return option ? option.label : '';
},
// //
removeFile(index) { uni.showLoading({
this.formData.fileData.splice(index, 1); title: '上传中',
}, mask: true
});
// // 使uni.uploadFile
uploadFile(index) { uni.uploadFile({
const fileData = this.formData.fileData[index]; url: RequsetUrl + apiArr.upload, // URL
filePath: tempFile.path, //
name: 'file', // key
formData: {
attType: fileData.attType //
},
header: {
Authorization: uni.getStorageSync("ctoken") //
},
success: (uploadRes) => {
//
const res = JSON.parse(uploadRes.data);
// //
if (!fileData.attType) { fileData.attFileId = res.data.respData.attFileId;
fileData.attachName = tempFile.name; //
uni.showToast({
title: '上传成功',
icon: 'success'
});
},
fail: (error) => {
console.error('文件上传失败:', error);
uni.showToast({
title: '上传失败',
icon: 'none'
});
},
complete: () => {
uni.hideLoading(); //
}
});
},
fail: (err) => {
console.error('选择文件失败:', err);
uni.showToast({ uni.showToast({
title: '请先选择附件类型', title: '选择文件失败',
icon: 'none' icon: 'none'
}); });
return;
} }
});
// uni.chooseMessageFile API },
uni.chooseMessageFile({
count: 1,
type: 'file',
extension: ['pdf', 'doc', 'docx', 'jpg', 'jpeg', 'png'], //
success: (res) => {
const tempFile = res.tempFiles[0];
console.log("选择的文件:", tempFile);
//
fileData.attachName = tempFile.name;
//
uni.showLoading({
title: '上传中',
mask: true
});
// 使uni.uploadFile
uni.uploadFile({
url: RequsetUrl + apiArr.upload, // URL
filePath: tempFile.path, //
name: 'file', // key
formData: {
attType: fileData.attType //
},
header: {
Authorization: uni.getStorageSync("ctoken") //
},
success: (uploadRes) => {
//
const res = JSON.parse(uploadRes.data);
//
fileData.attFileId = res.data.respData.attFileId;
fileData.attachName = tempFile.name; //
uni.showToast({
title: '上传成功',
icon: 'success'
});
},
fail: (error) => {
console.error('文件上传失败:', error);
uni.showToast({
title: '上传失败',
icon: 'none'
});
},
complete: () => {
uni.hideLoading(); //
}
});
},
fail: (err) => {
console.error('选择文件失败:', err);
uni.showToast({
title: '选择文件失败',
icon: 'none'
});
}
});
},
// //
validateForm() { validateForm() {
@ -237,6 +241,33 @@ export default {
return true; return true;
}, },
ecQuery() {
// const storeValue = uni.getStorageSync('storeValue');
// if (!storeValue || !storeValue.contractId) {
// uni.showToast({
// title: '',
// icon: 'none'
// });
// return;
// }
// const params = {
// contractId: storeValue.contractId
// }
request(apiArr.queryLedgerMer, "POST", {}).then(res => {
if (res.respData.splitStatus === 'VALID') {
uni.showToast({
title: '审核通过',
icon: 'success'
});
} else if (res.respData.contractStatus === 'INVALID') {
uni.showToast({
title: '审核未通过',
icon: 'none'
});
}
})
},
// //
submitForm() { submitForm() {
// //
@ -271,25 +302,13 @@ export default {
console.log('提交的数据:', submitData); console.log('提交的数据:', submitData);
// applyLedgerMer
request(apiArr.applyLedgerMer, "POST", submitData).then(res => { request(apiArr.applyLedgerMer, "POST", submitData).then(res => {
uni.hideLoading(); uni.hideLoading();
uni.showToast({
if (res && res.cmdRetCode === 'SUCCESS') { title: '提交成功',
uni.showToast({ icon: 'success'
title: '提交成功', });
icon: 'success' uni.setStorageSync('storeValue', { fz_apply_id: res.resp_data.ec_apply_id });
});
setTimeout(() => {
uni.navigateBack();
}, 1500);
} else {
uni.showToast({
title: res?.retMsg || '提交失败',
icon: 'none'
});
}
}).catch(error => { }).catch(error => {
uni.hideLoading(); uni.hideLoading();
console.error('提交失败:', error); console.error('提交失败:', error);

View File

@ -139,3 +139,108 @@ page {
padding: 20rpx; padding: 20rpx;
} }
} }
/* 自定义弹窗样式 */
.custom-modal-overlay {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: rgba(0, 0, 0, 0.5);
display: flex;
justify-content: center;
align-items: center;
z-index: 9999;
}
.custom-modal {
width: 100%;
max-width: 650rpx;
background-color: #fff;
border-radius: 12rpx;
overflow: hidden;
box-shadow: 0 4rpx 20rpx rgba(0, 0, 0, 0.15);
}
.modal-header {
padding: 30rpx;
border-bottom: 2rpx solid #f0f0f0;
display: flex;
justify-content: space-between;
align-items: center;
}
.modal-header h3 {
margin: 0;
font-size: 32rpx;
font-weight: 600;
color: #333;
}
.close-btn {
background: none;
border: none;
font-size: 40rpx;
color: #999;
cursor: pointer;
padding: 0;
width: 40rpx;
height: 40rpx;
display: flex;
justify-content: center;
align-items: center;
}
.modal-content {
padding: 40rpx 30rpx;
}
.modal-content p {
margin: 0 0 30rpx 0;
font-size: 28rpx;
color: #666;
line-height: 1.5;
}
.link-container {
background-color: #f5f5f5;
padding: 20rpx;
border-radius: 8rpx;
word-break: break-all;
}
.link-text {
color: #007aff;
font-size: 26rpx;
text-decoration: underline;
cursor: pointer;
}
.modal-footer {
padding: 0 30rpx 30rpx;
display: flex;
justify-content: center;
}
.confirm-btn {
background-color: #007aff;
color: #fff;
border: none;
line-height: 80rpx;
border-radius: 8rpx;
font-size: 28rpx;
cursor: pointer;
min-width: 200rpx;
height: 80rpx;
}
.confirm-btn2 {
border: none;
line-height: 80rpx;
border-radius: 8rpx;
font-size: 28rpx;
cursor: pointer;
min-width: 200rpx;
height: 80rpx;
}

View File

@ -108,6 +108,22 @@
<button type="button" class="submit-btn" @click="submitApplication">提交申请</button> <button type="button" class="submit-btn" @click="submitApplication">提交申请</button>
</view> </view>
</form> </form>
<!-- 自定义弹窗 -->
<view v-if="showCustomModal" class="custom-modal-overlay" @click="closeModal">
<view class="custom-modal" @click.stop>
<view class="modal-content">
<p>查询结果前请先确认是否在以下页面中填写信息</p>
<view class="link-container">
<text class="link-text" @click="openApplyUrl">{{ applyUrl || '暂无链接' }}</text>
</view>
</view>
<view class="modal-footer">
<button type="button" class="confirm-btn2" @click="closeModal">取消</button>
<button type="button" class="confirm-btn" @click="confirmQuery">确认</button>
</view>
</view>
</view>
</view> </view>
</template> </template>
@ -149,7 +165,10 @@ export default {
acctTypeOptions: [ acctTypeOptions: [
{ label: '对公', value: '57' }, { label: '对公', value: '57' },
{ label: '对私', value: '58' } { label: '对私', value: '58' }
] ],
//
showCustomModal: false,
applyUrl: ''
}; };
}, },
onLoad(options) { onLoad(options) {
@ -243,6 +262,30 @@ export default {
}, },
// //
ecQuery() { ecQuery() {
//
this.applyUrl = uni.getStorageSync('applyUrl');
this.showCustomModal = true;
},
//
closeModal() {
this.showCustomModal = false;
},
//
openApplyUrl() {
if (this.applyUrl) {
uni.navigateTo({
url: `/pages/webview/webview?url=${encodeURIComponent(this.applyUrl)}`
});
}
},
//
confirmQuery() {
this.showCustomModal = false;
//
const storeValue = uni.getStorageSync('storeValue'); const storeValue = uni.getStorageSync('storeValue');
if (!storeValue || !storeValue.ec_apply_id) { if (!storeValue || !storeValue.ec_apply_id) {
uni.showToast({ uni.showToast({
@ -255,8 +298,20 @@ export default {
ec_apply_id: storeValue.ec_apply_id ec_apply_id: storeValue.ec_apply_id
} }
request(apiArr.ecQuery, "POST", params).then(res => { request(apiArr.ecQuery, "POST", params).then(res => {
if (res.resp_data.ec_status === 'COMPLETED') {
uni.showToast({
title: '申请通过',
icon: 'success'
});
} else {
uni.showToast({
title: '申请未通过',
icon: 'none'
});
}
}) })
}, },
// //
getEcTypeLabel(code) { getEcTypeLabel(code) {
// valuevalue // valuevalue
@ -271,24 +326,16 @@ export default {
}, },
// //
handleEcTypeClick() { handleEcTypeClick() {
console.log('点击了合同类别,当前状态:', this.showEcTypePicker);
this.showEcTypePicker = true; this.showEcTypePicker = true;
console.log('设置后状态:', this.showEcTypePicker);
}, },
handleCertTypeClick() { handleCertTypeClick() {
console.log('点击了证件类型,当前状态:', this.showCertTypePicker);
this.showCertTypePicker = true; this.showCertTypePicker = true;
console.log('设置后状态:', this.showCertTypePicker);
}, },
handleAcctTypeClick() { handleAcctTypeClick() {
console.log('点击了结算卡性质,当前状态:', this.showAcctTypePicker);
this.showAcctTypePicker = true; this.showAcctTypePicker = true;
console.log('设置后状态:', this.showAcctTypePicker);
}, },
// //
onEcTypeConfirm(e) { onEcTypeConfirm(e) {
console.log('合同类别确认事件:', e);
// uview-uiu-picker
const selectedValue = e.value[0]; const selectedValue = e.value[0];
// //
const selectedOption = this.ecTypeOptions.find(item => item.value === selectedValue); const selectedOption = this.ecTypeOptions.find(item => item.value === selectedValue);
@ -297,7 +344,6 @@ export default {
}, },
// //
onCertTypeConfirm(e) { onCertTypeConfirm(e) {
console.log('证件类型确认事件:', e);
const selectedValue = e.value[0]; const selectedValue = e.value[0];
const selectedOption = this.certTypeOptions.find(item => item.value === selectedValue.value); const selectedOption = this.certTypeOptions.find(item => item.value === selectedValue.value);
this.formData.cert_type = selectedOption ? selectedOption.value : selectedValue; this.formData.cert_type = selectedOption ? selectedOption.value : selectedValue;
@ -305,7 +351,6 @@ export default {
}, },
// //
onAcctTypeConfirm(e) { onAcctTypeConfirm(e) {
console.log('结算卡性质确认事件:', e);
const selectedValue = e.value[0]; const selectedValue = e.value[0];
const selectedOption = this.acctTypeOptions.find(item => item.value === selectedValue.value); const selectedOption = this.acctTypeOptions.find(item => item.value === selectedValue.value);
this.formData.acct_type_code = selectedOption ? selectedOption.value : selectedValue; this.formData.acct_type_code = selectedOption ? selectedOption.value : selectedValue;
@ -330,15 +375,13 @@ export default {
if (!this.validateForm()) { if (!this.validateForm()) {
return; return;
} }
//
console.log('提交的合同申请参数:', this.formData);
request(apiArr.ecApply, "POST", this.formData).then(res => { request(apiArr.ecApply, "POST", this.formData).then(res => {
uni.showToast({ uni.showToast({
title: '提交成功', title: '提交成功',
icon: 'success' icon: 'success'
}); });
// ID
uni.setStorageSync('storeValue', { ec_apply_id: res.resp_data.ec_apply_id }); uni.setStorageSync('storeValue', { ec_apply_id: res.resp_data.ec_apply_id });
uni.setStorageSync('applyUrl', res.resp_data.result_url);
}) })
}, },

View File

@ -7,19 +7,17 @@
<view class="localBox"> <view class="localBox">
<view class="localBoxItem"> <view class="localBoxItem">
<view class="local"> <view class="local">
<image id="local" <image id="local" src="https://static.hshuishang.com/property-img-file/local_localIcon.png" mode="aspectFill">
src="https://static.hshuishang.com/property-img-file/local_localIcon.png" </image>
mode="aspectFill"></image>
{{ address }} {{ address }}
<u-icon name="arrow-down" color="#999999" size="28"></u-icon> <u-icon name="arrow-down" color="#999999" size="28"></u-icon>
</view> </view>
<view class="search"> <view class="search">
<view class="searchBox"> <view class="searchBox">
<image <image src="https://static.hshuishang.com/property-img-file/com_communitySearchIcon.png" mode="aspectFill">
src="https://static.hshuishang.com/property-img-file/com_communitySearchIcon.png" </image>
mode="aspectFill"></image> <input type="text" v-model="searchText" placeholder="请输入您想搜索的内容" @confirm="handleSearch" />
<input type="text" placeholder="请输入您想搜索的内容" />
</view> </view>
</view> </view>
</view> </view>
@ -54,8 +52,7 @@
</view> </view>
</view> </view>
<view class="merchantItem_right_con_right" @click="toJump(item)"> <view class="merchantItem_right_con_right" @click="toJump(item)">
<image src="https://static.hshuishang.com/property-img-file/local_review.png" <image src="https://static.hshuishang.com/property-img-file/local_review.png" mode="aspectFill"></image>
mode="aspectFill"></image>
点评 点评
</view> </view>
</view> </view>
@ -67,8 +64,7 @@
</view> </view>
<view v-else> <view v-else>
<view class="empty"> <view class="empty">
<image src="https://static.hshuishang.com/property-img-file/com_nearbyList_empty.png" <image src="https://static.hshuishang.com/property-img-file/com_nearbyList_empty.png" mode="aspectFill"></image>
mode="aspectFill"></image>
暂无数据 暂无数据
</view> </view>
</view> </view>
@ -82,8 +78,7 @@
</view> --> </view> -->
<view class="line"></view> <view class="line"></view>
<view class="btn_right" @click="toPayInfo"> <view class="btn_right" @click="toPayInfo">
<image src="https://static.hshuishang.com/property-img-file/lcoal_payIcon.png" <image src="https://static.hshuishang.com/property-img-file/lcoal_payIcon.png" mode="aspectFill"></image>
mode="aspectFill"></image>
快捷支付记录 快捷支付记录
</view> </view>
</view> </view>
@ -122,7 +117,7 @@ export default {
merchatList: [], merchatList: [],
changeId: "", changeId: "",
searchText: ''
}; };
}, },
onLoad(options) { onLoad(options) {
@ -146,7 +141,7 @@ export default {
methods: { methods: {
// //
toPayInfo(){ toPayInfo() {
NavgateTo("/packages/localLife/payInfo/index") NavgateTo("/packages/localLife/payInfo/index")
}, },
back() { back() {
@ -165,7 +160,7 @@ export default {
const params = { const params = {
isShop: 1, isShop: 1,
} }
await request(apiArr.getMerChantCateList, "POST",params).then((res) => { await request(apiArr.getMerChantCateList, "POST", params).then((res) => {
res.rows = res.rows.filter((item) => item.is_visible == 1) res.rows = res.rows.filter((item) => item.is_visible == 1)
console.log(res); console.log(res);
// 10 // 10
@ -176,6 +171,12 @@ export default {
} }
}); });
}, },
//
handleSearch() {
this.page_num = 1;
this.merchatList = [];
this.getMechantList();
},
// //
async getMechantList() { async getMechantList() {
let that = this; let that = this;
@ -183,6 +184,7 @@ export default {
merchant_cate_id: this.changeId, merchant_cate_id: this.changeId,
page_num: that.page_num, page_num: that.page_num,
page_size: that.page_size, page_size: that.page_size,
merchant_name: that.searchText
} }
await request(apiArr.getMerchantList, "POST", params).then((res) => { await request(apiArr.getMerchantList, "POST", params).then((res) => {
let latitude = uni.getStorageSync("location").lat; let latitude = uni.getStorageSync("location").lat;