From 59bfd0b8bbbf0ee94ec68e4a3a1a6e536d0ad8fd Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期三, 20 五月 2026 23:10:43 +0800
Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/gtzxinglijicun
---
admin/src/components/business/OperaShopApprovalWindow.vue | 130 +++++++++++++++++++++++++++++++++++++------
1 files changed, 111 insertions(+), 19 deletions(-)
diff --git a/admin/src/components/business/OperaShopApprovalWindow.vue b/admin/src/components/business/OperaShopApprovalWindow.vue
index cf67cd7..ee118cb 100644
--- a/admin/src/components/business/OperaShopApprovalWindow.vue
+++ b/admin/src/components/business/OperaShopApprovalWindow.vue
@@ -7,11 +7,12 @@
>
<div class="store-header" v-if="storeInfo">
<div class="store-header-left">
- <el-image :src="storeInfo.payMemberCoverImage ? storeInfo.imgPrefix + storeInfo.payMemberCoverImage : ''" fit="cover" class="store-avatar">
+ <el-image v-if="storeInfo.payMemberCoverImage" :src="storeInfo.payMemberCoverImage ? storeInfo.imgPrefix + storeInfo.payMemberCoverImage : ''" fit="cover" class="store-avatar">
<div slot="error" class="image-slot">
<i class="el-icon-picture-outline"></i>
</div>
</el-image>
+ <img v-if="! storeInfo.payMemberCoverImage" src="@/assets/avatar/man.png" fit="cover" class="store-avatar" />
</div>
<div class="store-header-right">
<div class="store-name">{{ storeInfo.name }}</div>
@@ -79,19 +80,19 @@
<div class="image-section">
<div class="image-item">
<span class="label">娉曚汉韬唤璇佹闈細</span>
- <el-image :src="storeInfo.idcardImg" fit="cover" class="qualification-image" :preview-src-list="[storeInfo.idcardImg]">
+ <el-image :src="storeInfo.idcardImgUrl" fit="cover" class="qualification-image" :preview-src-list="[storeInfo.idcardImgUrl]">
<div slot="error" class="image-slot"><i class="el-icon-picture-outline"></i></div>
</el-image>
</div>
<div class="image-item">
<span class="label">娉曚汉韬唤璇佸弽闈細</span>
- <el-image :src="storeInfo.idcardImgBack" fit="cover" class="qualification-image" :preview-src-list="[storeInfo.idcardImgBack]">
+ <el-image :src="storeInfo.idcardImgBackUrl" fit="cover" class="qualification-image" :preview-src-list="[storeInfo.idcardImgBackUrl]">
<div slot="error" class="image-slot"><i class="el-icon-picture-outline"></i></div>
</el-image>
</div>
<div class="image-item">
<span class="label">钀ヤ笟鎵х収锛�</span>
- <el-image :src="storeInfo.businessImg" fit="cover" class="qualification-image" :preview-src-list="[storeInfo.businessImg]">
+ <el-image :src="storeInfo.businessImgUrl" fit="cover" class="qualification-image" :preview-src-list="[storeInfo.businessImgUrl]">
<div slot="error" class="image-slot"><i class="el-icon-picture-outline"></i></div>
</el-image>
</div>
@@ -100,20 +101,20 @@
<template v-else>
<div class="image-item-row">
<span class="label">韬唤璇佹闈細</span>
- <el-image :src="storeInfo.idcardImg" fit="cover" class="qualification-image" :preview-src-list="[storeInfo.idcardImg]">
+ <el-image :src="storeInfo.idcardImgUrl" fit="cover" class="qualification-image" :preview-src-list="[storeInfo.idcardImgUrl]">
<div slot="error" class="image-slot"><i class="el-icon-picture-outline"></i></div>
</el-image>
</div>
<div class="image-item-row">
<span class="label">韬唤璇佸弽闈細</span>
- <el-image :src="storeInfo.idcardImgBack" fit="cover" class="qualification-image" :preview-src-list="[storeInfo.idcardImgBack]">
+ <el-image :src="storeInfo.idcardImgBackUrl" fit="cover" class="qualification-image" :preview-src-list="[storeInfo.idcardImgBackUrl]">
<div slot="error" class="image-slot"><i class="el-icon-picture-outline"></i></div>
</el-image>
</div>
<div class="image-item-row">
<span class="label">鏈夋晥鍔冲姩鍚堝悓锛�</span>
<div class="image-list">
- <el-image v-for="(img, index) in storeInfo.laborContractImgs" :key="index" :src="img" fit="cover" class="qualification-image" :preview-src-list="storeInfo.laborContractImgs">
+ <el-image v-for="(img, index) in storeInfo.laborContractImgUrls" :key="index" :src="img" fit="cover" class="qualification-image" :preview-src-list="storeInfo.laborContractImgUrls">
<div slot="error" class="image-slot"><i class="el-icon-picture-outline"></i></div>
</el-image>
</div>
@@ -121,7 +122,7 @@
<div class="image-item-row">
<span class="label">绀句繚缂寸撼璇佹槑锛�</span>
<div class="image-list">
- <el-image v-for="(img, index) in storeInfo.socialSecurityImgs" :key="index" :src="img" fit="cover" class="qualification-image" :preview-src-list="storeInfo.socialSecurityImgs">
+ <el-image v-for="(img, index) in storeInfo.socialSecurityImgUrls" :key="index" :src="img" fit="cover" class="qualification-image" :preview-src-list="storeInfo.socialSecurityImgUrls">
<div slot="error" class="image-slot"><i class="el-icon-picture-outline"></i></div>
</el-image>
</div>
@@ -129,12 +130,12 @@
</template>
</div>
- <div class="qualification-section" v-if="storeInfo.companyType === 1">
+ <div class="qualification-section">
<h4 class="section-title">闂ㄥ簵鐓х墖鍙婂叾浠栨潗鏂�</h4>
<div class="image-item-row">
<span class="label">闂ㄥ簵闂ㄥご鐓э細</span>
<div class="image-list">
- <el-image v-for="(img, index) in storeInfo.storeFrontImgs" :key="index" :src="img" fit="cover" class="qualification-image" :preview-src-list="storeInfo.storeFrontImgs">
+ <el-image v-for="(img, index) in storeInfo.storeFrontImgUrls" :key="index" :src="img" fit="cover" class="qualification-image" :preview-src-list="storeInfo.storeFrontImgUrls">
<div slot="error" class="image-slot"><i class="el-icon-picture-outline"></i></div>
</el-image>
</div>
@@ -142,7 +143,7 @@
<div class="image-item-row">
<span class="label">闂ㄥ簵鍐呴儴鐓х墖锛�</span>
<div class="image-list">
- <el-image v-for="(img, index) in storeInfo.storeInteriorImgs" :key="index" :src="img" fit="cover" class="qualification-image" :preview-src-list="storeInfo.storeInteriorImgs">
+ <el-image v-for="(img, index) in storeInfo.storeInteriorImgUrls" :key="index" :src="img" fit="cover" class="qualification-image" :preview-src-list="storeInfo.storeInteriorImgUrls">
<div slot="error" class="image-slot"><i class="el-icon-picture-outline"></i></div>
</el-image>
</div>
@@ -150,7 +151,7 @@
<div class="image-item-row">
<span class="label">鍏跺畠鏉愭枡锛�</span>
<div class="image-list">
- <el-image v-for="(img, index) in storeInfo.otherMaterialImgs" :key="index" :src="img" fit="cover" class="qualification-image" :preview-src-list="storeInfo.otherMaterialImgs">
+ <el-image v-for="(img, index) in storeInfo.otherMaterialImgUrls" :key="index" :src="img" fit="cover" class="qualification-image" :preview-src-list="storeInfo.otherMaterialImgUrls">
<div slot="error" class="image-slot"><i class="el-icon-picture-outline"></i></div>
</el-image>
</div>
@@ -181,7 +182,7 @@
</div>
<div class="approval-form" v-if="storeInfo && storeInfo.auditStatus === 0">
- <el-form ref="approvalForm" :model="approvalForm" :rules="approvalRules">
+ <el-form ref="approvalForm" :model="approvalForm" :rules="approvalForm.auditStatus === 1 ? approvalRules : approvalRules1">
<el-form-item label="瀹℃壒缁撴灉" prop="auditStatus">
<el-radio-group v-model="approvalForm.auditStatus" @change="handleAuditStatusChange">
<el-radio :label="0">閫氳繃</el-radio>
@@ -197,6 +198,31 @@
style="width: 300px"
></el-input>
</el-form-item>
+ <div class="profit-section" v-if="approvalForm.auditStatus === 0">
+ <h4 class="section-title">灏卞湴瀵勫瓨妯″紡</h4>
+ <el-form-item label="鍦ㄨ鍗曚腑浣滀负瀵勪欢鐐规椂锛屽垎鎴愭瘮渚嬩负" prop="localDeposit">
+ <div class="profit-input">
+ <el-input v-model="approvalForm.localDeposit" placeholder="璇疯緭鍏ュ垎鎴愭瘮渚�" style="width: 150px;"></el-input>
+ <span class="unit">%</span>
+ </div>
+ </el-form-item>
+ </div>
+
+ <div class="profit-section" v-if="approvalForm.auditStatus === 0">
+ <h4 class="section-title">鍚屽煄瀵勯�佹ā寮�</h4>
+ <el-form-item label="鍦ㄨ鍗曚腑浣滀负瀵勪欢鐐规椂锛屽垎鎴愭瘮渚嬩负" prop="remoteTake">
+ <div class="profit-input">
+ <el-input v-model="approvalForm.remoteTake" placeholder="璇疯緭鍏ュ垎鎴愭瘮渚�" style="width: 150px;"></el-input>
+ <span class="unit">%</span>
+ </div>
+ </el-form-item>
+ <el-form-item label="鍦ㄨ鍗曚腑浣滀负鏀朵欢鐐规椂锛屽垎鎴愭瘮渚嬩负" prop="remoteDeposit">
+ <div class="profit-input">
+ <el-input v-model="approvalForm.remoteDeposit" placeholder="璇疯緭鍏ュ垎鎴愭瘮渚�" style="width: 150px;"></el-input>
+ <span class="unit">%</span>
+ </div>
+ </el-form-item>
+ </div>
<section class="approval-buttons">
<el-button type="primary" @click="handleSubmit" :loading="isWorking.submit">鎻愪氦</el-button>
<el-button @click="handleCancel">鍙栨秷</el-button>
@@ -221,11 +247,28 @@
approvalForm: {
id: null,
auditStatus: 0,
- auditRemark: ''
+ auditRemark: '',
+ localDeposit: '',
+ remoteTake: '',
+ remoteDeposit: ''
},
approvalRules: {
auditRemark: [
{ required: true, message: '璇疯緭鍏ユ嫆缁濆師鍥�', trigger: 'blur' }
+ ]
+ },
+ approvalRules1: {
+ localDeposit: [
+ { required: true, message: '璇疯緭鍏ュ垎鎴愭瘮渚�', trigger: 'blur' },
+ { validator: this.validateDepositRate, trigger: 'blur' }
+ ],
+ remoteTake: [
+ { required: true, message: '璇疯緭鍏ュ垎鎴愭瘮渚�', trigger: 'blur' },
+ { validator: this.validateDepositRate, trigger: 'blur' }
+ ],
+ remoteDeposit: [
+ { required: true, message: '璇疯緭鍏ュ垎鎴愭瘮渚�', trigger: 'blur' },
+ { validator: this.validateDepositRate, trigger: 'blur' }
]
},
isWorking: {
@@ -240,6 +283,33 @@
})
},
methods: {
+ validateDepositRate (rule, value, callback) {
+ if (value !== null && value !== '' && value !== undefined) {
+ const num = Number(value)
+ if (isNaN(num)) {
+ callback(new Error('璇疯緭鍏ユ湁鏁堟暟瀛�'))
+ } else if (num < 1) {
+ callback(new Error('蹇呴』澶т簬绛変簬1'))
+ } else {
+ const str = String(num)
+ if (str.includes('.')) {
+ const decimal = str.split('.')[1]
+ if (decimal.length > 1) {
+ callback(new Error('鏈�澶氭敮鎸佷竴浣嶅皬鏁�'))
+ } else {
+ callback()
+ }
+ } else {
+ callback()
+ }
+ }
+ } else {
+ callback()
+ }
+ },
+ changeRadio(){
+ this.$refs.approvalForm.clearValidate()
+ },
open (title, row) {
this.title = title
this.approvalForm = {
@@ -257,11 +327,9 @@
})
},
handleAuditStatusChange (val) {
- if (val === 1) {
- this.approvalRules.auditRemark = []
- } else {
- this.approvalRules.auditRemark = [{ required: true, message: '璇疯緭鍏ユ嫆缁濆師鍥�', trigger: 'blur' }]
- }
+ this.$nextTick(() => {
+ this.$refs.approvalForm.clearValidate()
+ })
},
handleSubmit () {
this.$refs.approvalForm.validate(valid => {
@@ -289,6 +357,30 @@
</script>
<style scoped>
+.profit-section {
+ margin-bottom: 30px;
+ background: #f5f7fa;
+ border-radius: 4px;
+}
+
+.profit-section .section-title {
+ font-size: 16px;
+ font-weight: bold;
+ color: #303133;
+ margin-bottom: 20px;
+ padding-bottom: 10px;
+ border-bottom: 1px solid #e4e7ed;
+}
+.profit-input {
+ display: flex;
+ align-items: center;
+ gap: 10px;
+}
+.inline-form /deep/ .el-form-item {
+ display: block;
+ margin-right: 0;
+}
+
.store-header {
display: flex;
background: #f5f7fa;
--
Gitblit v1.9.3