From a4b3ee325c7354579d495bc74a777e494e5ec38c Mon Sep 17 00:00:00 2001
From: quanwei <419654421@qq.com>
Date: Fri, 06 Feb 2026 18:18:44 +0800
Subject: [PATCH] 商品可以价格面议 选择走访时显示输入走访企业名 分会添加活动时要总会审核 分类添加人数限制,添加活动选择了填写人数限制的分类时活动名额下显示该分类人数限制为15 同一个企业30天内只能走访一次,在30天内走访同一个企业时提示该企业已被走访xx天后才可以从新走访

---
 shop_vue/src/views/plus/operations/apply/dialog/Edit.vue |  229 ++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 210 insertions(+), 19 deletions(-)

diff --git a/shop_vue/src/views/plus/operations/apply/dialog/Edit.vue b/shop_vue/src/views/plus/operations/apply/dialog/Edit.vue
index c41fb63..7ec0578 100644
--- a/shop_vue/src/views/plus/operations/apply/dialog/Edit.vue
+++ b/shop_vue/src/views/plus/operations/apply/dialog/Edit.vue
@@ -5,21 +5,77 @@
       	描述:插件中心-分销-代理审核
       -->
   <div v-if="status != 30">
-    <el-dialog title="代理审核" :visible.sync="dialogVisible" @close="dialogFormVisible" :close-on-click-modal="false" :close-on-press-escape="false">
-      <el-form :model="form">
-        <el-form-item label="审核状态" :label-width="formLabelWidth">
-          <div>
-            <el-radio v-model="form.apply_status" label="20">审核通过</el-radio>
-            <el-radio v-model="form.apply_status" label="30">驳回</el-radio>
-          </div>
+    <el-dialog title="代理审核" :visible.sync="dialogVisible" @close="dialogFormVisible" :close-on-click-modal="false" :close-on-press-escape="false" width="600px">
+      <el-form :model="form" ref="formRef" label-width="120px">
+        <el-form-item label="审核状态">
+          <el-radio-group v-model="form.apply_status" @change="handleStatusChange">
+            <el-radio label="20">审核通过</el-radio>
+            <el-radio label="30">驳回</el-radio>
+          </el-radio-group>
         </el-form-item>
+
+        <!-- 审核通过时显示区域和级别选择 -->
+        <div v-if="form.apply_status == 20">
+          <el-form-item label="运营中心级别">
+            <el-select v-model="form.region_level" placeholder="请选择级别" @change="handleLevelChange">
+              <el-option label="省级" :value="1"></el-option>
+              <el-option label="市级" :value="2"></el-option>
+              <el-option label="区县级" :value="3"></el-option>
+            </el-select>
+          </el-form-item>
+
+          <el-form-item label="省/直辖市">
+            <el-select v-model="form.province_id" placeholder="请选择省份" @change="handleProvinceChange">
+              <el-option
+                v-for="item in provinceList"
+                :key="item.id"
+                :label="item.name"
+                :value="item.id">
+              </el-option>
+            </el-select>
+          </el-form-item>
+
+          <el-form-item label="城市" v-if="form.region_level >= 2">
+            <el-select v-model="form.city_id" placeholder="请选择城市" @change="handleCityChange" :disabled="!form.province_id">
+              <el-option
+                v-for="item in cityList"
+                :key="item.id"
+                :label="item.name"
+                :value="item.id">
+              </el-option>
+            </el-select>
+          </el-form-item>
+
+          <el-form-item label="区县" v-if="form.region_level == 3">
+            <el-select v-model="form.area_id" placeholder="请选择区县" :disabled="!form.city_id">
+              <el-option
+                v-for="item in areaList"
+                :key="item.id"
+                :label="item.name"
+                :value="item.id">
+              </el-option>
+            </el-select>
+          </el-form-item>
+
+          <el-form-item label="登录账号" prop="user_name">
+            <el-input type="text" v-model="form.user_name" autocomplete="off" placeholder="请输入登录账号"></el-input>
+          </el-form-item>
+
+          <el-form-item label="登录密码" prop="password">
+            <el-input type="password" v-model="form.password" autocomplete="off" placeholder="请输入登录密码"></el-input>
+          </el-form-item>
+        </div>
+
+        <!-- 驳回时显示驳回原因 -->
         <div v-if="form.apply_status == 30">
-          <el-form-item label="驳回原因" :label-width="formLabelWidth"><el-input v-model="form.reject_reason" autocomplete="off"></el-input></el-form-item>
+          <el-form-item label="驳回原因">
+            <el-input v-model="form.reject_reason" type="textarea" :rows="3" placeholder="请输入驳回原因"></el-input>
+          </el-form-item>
         </div>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button @click="dialogFormVisible">取 消</el-button>
-        <el-button type="primary" @click="editApplyStatus">确 定</el-button>
+        <el-button type="primary" @click="editApplyStatus" :loading="loading">确 定</el-button>
       </div>
     </el-dialog>
   </div>
@@ -27,25 +83,22 @@
   <div v-else>
     <el-dialog title="驳回原因" :visible.sync="dialogVisible" @close="dialogFormVisible" :close-on-click-modal="false" :close-on-press-escape="false">
       <p>{{ reject_reason }}</p>
-      <!-- <div slot="footer" class="dialog-footer">
-        <el-button @click="dialogFormVisible">取 消</el-button>
-        <el-button type="primary" @click="dialogFormVisible">确 定</el-button>
-      </div> -->
     </el-dialog>
   </div>
 </template>
 
 <script>
 import OperationsApi from '@/api/plus/operations.js';
+import DataApi from '@/api/data.js';
+
 export default {
   data() {
     return {
       status: '',
       reject_reason: '',
-      /*左边长度*/
-      formLabelWidth: '120px',
-      /*是否显示*/
-      dialogVisible: false
+      loading: false,
+      /*地区数据*/
+      regionData: []
     };
   },
   props: ['open_edit', 'form'],
@@ -54,13 +107,149 @@
     this.status = this.form.apply_status.value;
     if (this.status == 30) {
       this.reject_reason = this.form.reject_reason;
+    } else {
+      // 如果是待审核状态,默认设置为省级
+      if (!this.form.region_level) {
+        this.form.region_level = 1;
+      }
+      // 加载地区数据
+      this.getRegionData();
+    }
+  },
+  computed: {
+    /*获取省份列表*/
+    provinceList() {
+      return Object.values(this.regionData).filter(item => item.level === 1);
+    },
+    /*获取城市列表*/
+    cityList() {
+      if (this.form.province_id && this.regionData[this.form.province_id]) {
+        const provinceData = this.regionData[this.form.province_id];
+        if (provinceData.city) {
+          return Object.values(provinceData.city);
+        }
+      }
+      return [];
+    },
+    /*获取区/县列表*/
+    areaList() {
+      if (this.form.city_id && this.form.province_id && this.regionData[this.form.province_id]) {
+        const provinceData = this.regionData[this.form.province_id];
+        if (provinceData.city && provinceData.city[this.form.city_id]) {
+          const cityData = provinceData.city[this.form.city_id];
+          if (cityData.region) {
+            return Object.values(cityData.region);
+          }
+        }
+      }
+      return [];
     }
   },
   methods: {
+    /*获取地区数据*/
+    getRegionData() {
+      let self = this;
+      DataApi.getRegion({}, true)
+        .then(res => {
+          self.regionData = res.data.regionData;
+        })
+        .catch(() => {});
+    },
+
+    /*省份改变*/
+    handleProvinceChange(val) {
+      this.form.city_id = 0;
+      this.form.area_id = 0;
+    },
+
+    /*城市改变*/
+    handleCityChange(val) {
+      this.form.area_id = 0;
+    },
+
+    /*级别改变*/
+    handleLevelChange(val) {
+      // 切换级别时清空下级区域
+      if (val < 2) {
+        this.form.city_id = 0;
+        this.form.area_id = 0;
+      }
+      if (val < 3) {
+        this.form.area_id = 0;
+      }
+    },
+
+    /*审核状态改变*/
+    handleStatusChange(val) {
+      // 切换到审核通过时,加载数据
+      if (val == 20) {
+        if (this.regionData.length === 0) {
+          this.getRegionData();
+        }
+      }
+    },
+
     /*修改用户*/
     editApplyStatus() {
+      // 验证审核通过时的必填项
+      if (this.form.apply_status == 20) {
+        if (!this.form.region_level) {
+          this.$message.error('请选择运营中心级别');
+          return;
+        }
+        if (!this.form.province_id) {
+          this.$message.error('请选择省份');
+          return;
+        }
+        if (this.form.region_level >= 2 && !this.form.city_id) {
+          this.$message.error('请选择城市');
+          return;
+        }
+        if (this.form.region_level == 3 && !this.form.area_id) {
+          this.$message.error('请选择区县');
+          return;
+        }
+        if (!this.form.user_name) {
+          this.$message.error('请输入登录账号');
+          return;
+        }
+        if (!this.form.password) {
+          this.$message.error('请输入登录密码');
+          return;
+        }
+        if (this.form.password.length < 6) {
+          this.$message.error('密码长度不能少于6位');
+          return;
+        }
+      } else {
+        // 驳回时必须填写原因
+        if (!this.form.reject_reason) {
+          this.$message.error('请输入驳回原因');
+          return;
+        }
+      }
+
+      this.loading = true;
       let self = this;
-      let params = this.form;
+      let params = {
+        apply_id: this.form.apply_id,
+        apply_status: this.form.apply_status,
+        real_name: this.form.real_name,
+        mobile: this.form.mobile,
+        user_id: this.form.user_id,
+        referee_id: this.form.referee_id,
+        region_level: {
+          value: this.form.region_level,
+          text: this.form.region_level == 1 ? '省级' : (this.form.region_level == 2 ? '市级' : '区县级')
+        },
+        province_id: this.form.province_id,
+        city_id: this.form.city_id || 0,
+        area_id: this.form.area_id || 0,
+        user_name: this.form.user_name || '',
+        password: this.form.password || '',
+        reject_reason: this.form.reject_reason || ''
+      };
+
       OperationsApi.editApplyStatus(params, true)
         .then(data => {
           self.$message({
@@ -69,7 +258,9 @@
           });
           self.dialogFormVisible(true);
         })
-        .catch(error => {});
+        .catch(error => {
+          this.loading = false;
+        });
     },
 
     /*关闭弹窗*/

--
Gitblit v1.9.2