From cc1ee1fb090b8344faab02537dec80995cec93fe Mon Sep 17 00:00:00 2001
From: 陶杰 <1378534974@qq.com>
Date: 星期四, 09 一月 2025 09:09:21 +0800
Subject: [PATCH] 1.行政区划-修改访问接口地址

---
 pages/partner/list.vue |  176 +++++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 154 insertions(+), 22 deletions(-)

diff --git a/pages/partner/list.vue b/pages/partner/list.vue
index de9cadc..e3fe9df 100644
--- a/pages/partner/list.vue
+++ b/pages/partner/list.vue
@@ -1,5 +1,39 @@
 <template>
-  <el-bus-crud ref="crud" v-bind="tableConfig"></el-bus-crud>
+  <div>
+    <el-bus-crud ref="crud" v-bind="tableConfig"></el-bus-crud>
+    <el-dialog title="注册手机号修改" :visible.sync="dialogVisible" append-to-body :close-on-click-modal="false"
+      class="form-content">
+      <el-form key="sms" ref="smsForm" size="medium" :model="smsForm" :rules="smsRules">
+        <el-form-item prop="username">
+          <div class="input-wrapper">
+            <el-input v-model="smsForm.username" placeholder="请输入手机号"></el-input>
+          </div>
+        </el-form-item>
+        <el-form-item prop="smsCode">
+          <div class="input-wrapper">
+            <el-input v-model="smsForm.smsCode" placeholder="请输入短信验证码">
+            </el-input>
+            <el-bus-countdown-button send-type="login" :extra-body="{ userType: 'admin' }" :number="smsForm.username"
+              type="text" class="sms-button"></el-bus-countdown-button>
+          </div>
+        </el-form-item>
+        <el-form-item prop="code">
+          <div class="input-wrapper">
+            <el-input v-model="smsForm.code" placeholder="请输入图形验证码">
+            </el-input>
+            <img v-if="smsCaptchaCodeImageSrc" :src="smsCaptchaCodeImageSrc" alt="图形验证码"
+              class="cursor-pointer w-auto h-45 object-contain" @click="getSmsCapacha" />
+          </div>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="flex items-center justify-between">
+        <div>
+          <el-button @click="onCancel">取消</el-button>
+          <el-button type="primary" @click="onConfirm">确定</el-button>
+        </div>
+      </div>
+    </el-dialog>
+  </div>
 </template>
 
 <script>
@@ -7,6 +41,18 @@
 export default {
   data() {
     return {
+      dialogVisible: false,
+      smsForm: {},
+      smsCaptchaCodeImageSrc: "",
+      smsRules: {
+        username: { required: true, message: '请输入手机号', trigger: 'blur' },
+        smsCode: {
+          required: true,
+          message: '请输入短信验证码',
+          trigger: 'blur',
+        },
+        code: { required: true, message: '请输入图形验证码', trigger: 'blur' },
+      },
       tableConfig: {
         url: 'flower/api/partner/page',
         hasNew: false,
@@ -24,6 +70,18 @@
           fixed: 'right',
         },
         columns: [
+          {
+            label: 'ID',
+            prop: 'id',
+            minWidth: 60,
+            fixed: 'left',
+          },
+          {
+            label: '注册手机号',
+            prop: 'loginName',
+            minWidth: 150,
+            fixed: 'left',
+          },
           { label: '合伙人名称', prop: 'name', minWidth: 120, fixed: 'left' },
           {
             label: '服务地区',
@@ -63,10 +121,17 @@
             type: 'row',
             items: [
               {
+                label: '注册手机号',
+                id: 'loginName',
+                type: 'input',
+              },
+
+              {
                 label: '合伙人名称',
                 id: 'name',
                 type: 'input',
               },
+
               {
                 label: '手机号',
                 id: 'tel',
@@ -102,9 +167,10 @@
                 },
               },
               {
-                label: '启动/禁用',
+                label: '启用/禁用',
                 id: 'isEnabled',
                 type: 'bus-select-dict',
+                default: '1',
                 el: {
                   code: 'USER_ENABLED_OR_DISABLED',
                   clearable: true,
@@ -115,13 +181,23 @@
           },
         ],
         form: [
-          { label: '合伙人名称:', id: 'name', type: 'input', readonly: true },
+          { label: '合伙人名称:', id: 'name', type: 'input',
+            rules: { required: true, message: '请输入合伙人名称:' },
+           },
+           {
+            label: '联系方式:',id: 'contactTel',type: 'input',
+            rules: [{ required: true, message: '请输入有效的联系方式' ,pattern: /^1[3-9]\d{9}$/},
+            ],
+          },
+          { label: '城市仓名称', id: 'cityWarehouse', type: 'input' ,
+            rules: { required: true, message: '请输入城市仓名称' },
+          },
           {
             label: '服务地区:',
             id: 'district',
             type: 'bus-cascader',
             el: {
-              otherInterfaceUri: 'flower/api/pub/china/area/json',
+              otherInterfaceUri: 'flower/api/pub/china/web/area/json',
               props: {
                 label: 'name',
                 value: 'code',
@@ -139,32 +215,29 @@
               if ('province' in row) {
                 return row.province
                   ? row.province
-                      .split(',')
-                      .map((item, index) => [
-                        item,
-                        row.city.split(',')[index],
-                        row.region.split(',')[index],
-                      ])
+                    .split(',')
+                    .map((item, index) => [
+                      item,
+                      row.city.split(',')[index],
+                      row.region.split(',')[index],
+                    ])
                   : []
               }
             },
             outputFormat: (val) => {
               return Array.isArray(val) && val.length > 0
                 ? {
-                    province: val.map((item) => item[0]).join(','),
-                    city: val.map((item) => item[1]).join(','),
-                    region: val.map((item) => item[2]).join(','),
-                  }
+                  province: val.map((item) => item[0]).join(','),
+                  city: val.map((item) => item[1]).join(','),
+                  region: val.map((item) => item[2]).join(','),
+                }
                 : { province: '', city: '', region: '' }
             },
             str: true,
             rules: { required: true, message: '请选择服务地区' },
           },
-          {
-            label: '联系方式:',
-            id: 'contactTel',
-            type: 'input',
-            readonly: true,
+          { label: '地址', id: 'address', type: 'input' ,
+            rules: { required: true, message: '请输入地址' },
           },
           {
             label: '身份证正反面:',
@@ -175,7 +248,20 @@
             },
             commonFormat: true,
             forceDisabled: true,
-            readonly: true,
+            readonly: false,
+            rules:[
+            { required: true, message: '请上传身份证正反面' },
+            {
+              validator: (rule, value, callback) => {
+                if (!value || value.length < 2) {
+                  callback(new Error('请至少上传两张图片'));
+                } else {
+                  callback();
+                }
+              },
+              trigger: 'change',
+            },
+            ],
           },
           {
             label: '状态:',
@@ -230,6 +316,16 @@
               }
             },
           },
+          {
+            text: '注册手机号修改',
+            atClick: (row) => {
+              this.smsForm={}
+              this.smsForm.id=row.id
+              this.getSmsCapacha()
+              this.dialogVisible = true
+              return false
+            },
+          },
         ],
         extraDialogs: [
           {
@@ -252,6 +348,7 @@
               }
             },
           },
+
         ],
       },
     }
@@ -262,6 +359,31 @@
     }
   },
   methods: {
+    onCancel() {
+      this.$refs.smsForm.resetFields(); // 重置表单
+      this.dialogVisible = false
+    },
+    async onConfirm() {
+      const param=this.smsForm
+      const { code, data } = await this.$elBusHttp.request(
+        'flower/api/partner/phone/update',
+        {
+          method: 'post',
+          data:param,
+        }
+      )
+      if (code === 0) {
+        this.$message.success(`更新成功`)
+        this.$refs.crud.getList()
+        this.onCancel()
+      }
+    },
+    async getSmsCapacha() {
+      const { captchaCodeId, imageSrc } =
+        await this.$services.base.createCaptcha()
+      this.smsForm.codeId = captchaCodeId
+      this.smsCaptchaCodeImageSrc = imageSrc
+    },
     getDistrict(row) {
       if (row.province) {
         return row.province
@@ -293,10 +415,20 @@
             this.$refs.crud.getList()
           }
         })
-        .catch(() => {})
+        .catch(() => { })
     },
   },
 }
 </script>
 
-<style lang="scss" scoped></style>
+<style lang="scss" scoped>
+.input-wrapper {
+  display: flex;
+  align-items: center;
+
+  // border-bottom: 1px solid #cecece;
+  &:hover {
+    border-color: $primary-color;
+  }
+}
+</style>

--
Gitblit v1.9.3