From 04be125365bfd254166072f75da87e406f633ba3 Mon Sep 17 00:00:00 2001 From: cloudroam <cloudroam> Date: 星期四, 09 一月 2025 18:36:56 +0800 Subject: [PATCH] Merge branch 'master' of http://47.96.225.205:8888/r/operation_pc-v2 --- pages/partner/list.vue | 172 ++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 152 insertions(+), 20 deletions(-) diff --git a/pages/partner/list.vue b/pages/partner/list.vue index 35d893c..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', @@ -116,13 +181,23 @@ }, ], form: [ - { label: '合伙人名称:', id: 'name', type: 'input' }, + { 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', @@ -140,31 +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', + { 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