From e32efeae3180db49c1e2a050300342fa764200e8 Mon Sep 17 00:00:00 2001
From: THK3121 <thk121969318@163.com>
Date: Wed, 19 Jul 2023 09:38:30 +0800
Subject: [PATCH] =?UTF-8?q?=E6=9D=83=E9=99=90=E7=AE=A1=E7=90=86bug?=
 =?UTF-8?q?=E4=BF=AE=E5=A4=8D?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/views/permission/admin/edit.vue | 127 +++++++++++++++++-----------
 1 file changed, 79 insertions(+), 48 deletions(-)

diff --git a/src/views/permission/admin/edit.vue b/src/views/permission/admin/edit.vue
index 8e1cd53..99de529 100644
--- a/src/views/permission/admin/edit.vue
+++ b/src/views/permission/admin/edit.vue
@@ -8,18 +8,31 @@
             @confirm="handleSubmit"
             @close="handleClose"
         >
+ 
             <el-form ref="formRef" :model="formData" label-width="84px" :rules="formRules">
                 <div style="font-size: 1.2rem; margin: 10px 0">基本信息创建</div>
-                <el-form-item label="头像">
-                    <div>
-                        <div>
-                            <material-picker v-model="formData.avatar" :limit="1" />
-                        </div>
-                        <div class="form-tips">建议尺寸:100*100px,支持jpg,jpeg,png格式</div>
-                    </div>
-                </el-form-item>
-                <el-col :span="24" class="pt-6 !border-none">
-                    <el-row>
+              <div style="display: flex;justify-content: space-between;">
+                <p style="flex: 1;"> 
+                    <el-upload
+                                    v-model="formData.avatar"
+                                    class="avatar-uploader-head"
+                                    :data="{ cid: 1 }"
+                                    action="https://worker-task.lihaink.cn/api/upload/image"
+                                    :show-file-list="false"
+                                    :on-success="handleAvatarSuccessAvatar"
+                                >
+                                    <img
+                                        v-if="formData.avatar"
+                                        :src="formData.avatar"
+                                        class="avatar"
+                                    />
+                                    <el-icon v-else class="avatar-uploader-icon">
+                                        <Plus />
+                                    </el-icon>
+                    </el-upload>
+                </p>
+                  <el-col  style="flex: 8;" class="pt-6 !border-none">
+                    <el-row >
                         <el-col :span="12">
                             <el-form-item label="姓名" prop="name">
                                 <el-input
@@ -31,23 +44,16 @@
                                 </el-input>
                             </el-form-item>
                         </el-col>
-                        <el-col :span="12">
+                        <el-col :span="12">  
                             <el-form-item label="性别" prop="sex">
-                                <!-- <el-input
-                                    v-model="formData.sex"
-                                    placeholder="请输入性别"
-                                    clearable
-                                    :style="{ width: '100%' }"
-                                >
-                                </el-input> -->
                                 <el-select v-model="formData.sex" placeholder="请选择性别"  :style="{ width: '100%' }">
-          <el-option label="男" value="1" />
-          <el-option label="女" value="2" />
-    
-        </el-select>
+                                <el-option label="男" value="1" />
+                                <el-option label="女" value="2" />
+                                 </el-select>
                             </el-form-item>
                         </el-col>
-
+                   </el-row>
+                     <el-row>
                         <el-col :span="12">
                             <el-form-item label="身份证号" prop="id_card">
                                 <el-input
@@ -70,8 +76,10 @@
                                 </el-input>
                             </el-form-item>
                         </el-col>
-                        <el-col :span="3">
-                            <el-form-item label="省" prop="province">
+                    </el-row>
+                    <el-row >
+                        <p style="display: flex;">
+                            <el-form-item label="省" prop="province" style="flex: 1;">
                                 <el-select
                                     v-model="formData.province"
                                     placeholder="请选择省"
@@ -87,9 +95,9 @@
                                     ></el-option>
                                 </el-select>
                             </el-form-item>
-                        </el-col>
-                        <el-col :span="3">
-                            <el-form-item label="市" prop="city">
+                    
+          
+                            <el-form-item label="市" prop="city"  style="flex: 1;">
                                 <el-select
                                     v-model="formData.city"
                                     placeholder="请选择市"
@@ -105,9 +113,9 @@
                                     ></el-option>
                                 </el-select>
                             </el-form-item>
-                        </el-col>
-                        <el-col :span="3">
-                            <el-form-item label="区" prop="area">
+       
+       
+                            <el-form-item label="区" prop="area"  style="flex: 1;">
                                 <el-select
                                     v-model="formData.area"
                                     placeholder="请选择区"
@@ -123,9 +131,9 @@
                                     ></el-option>
                                 </el-select>
                             </el-form-item>
-                        </el-col>
-                        <el-col :span="3">
-                            <el-form-item label="镇" prop="street">
+         
+       
+                            <el-form-item  label="镇" prop="street"  style="flex: 1;">
                                 <el-select
                                     v-model="formData.street"
                                     placeholder="请选择镇"
@@ -141,9 +149,7 @@
                                     ></el-option>
                                 </el-select>
                             </el-form-item>
-                        </el-col>
-                        <el-col :span="12">
-                            <el-form-item label="村社小队" prop="address">
+                            <el-form-item label="村社小队" prop="address"  style="flex: 1.5;">
                                 <el-input
                                     v-model="formData.address"
                                     placeholder="请输入村社小队"
@@ -151,17 +157,20 @@
                                     :style="{ width: '100%' }"
                                 >
                                 </el-input>
-                            </el-form-item>
-                        </el-col>
+                            </el-form-item>   
+                        </p>
+                                         
                     </el-row>
                 </el-col>
+
+              </div>
+              
                 <el-col :span="24">
                     <el-form-item label="授权身份" prop="role_id">
                         <el-select
                             v-model="formData.role_id"
                             :disabled="formData.root == 1"
                             class="flex-1"
-    
                             placeholder="请选择授权身份"
                             clearable
                         >
@@ -350,13 +359,14 @@
                         <el-col :span="12">
                         <el-form-item label-width="100px" label="合同类型" prop="contract_type">
                             <el-select
-                                @change="getcontract"
+                                @change="getcontract()"
                                 v-model="formData.contract_type"
                                 placeholder="请选择合同类型"
                                 clearable
                                 :style="{ width: '100%' }"
                             >
                                 <el-option
+                                
                                     v-for="(item, index) in datas.contract_type"
                                     :key="index"
                                     :label="item.name"
@@ -507,7 +517,7 @@ const formData = reactive({
     contract:"",
     file:'',
     is_contract: 0,
-    role_id: '',
+    role_id: "",
     avatar: '',
     multipoint_login: 1,
     root: 0
@@ -528,11 +538,15 @@ const getcontract_type = async () => {
 }
 // 获取合同
 const getcontract=async ()=>{
-    const data=await  dictDataLists({ type_id: 9 })
+    var i= datas['contract_type'].findIndex(item => item.id ===formData.contract_type )
+    //  console.log(  datas['contract_type'][i])
+    const data=await  dictDataLists({ type_value:  datas['contract_type'][i].type_value })
     datas['contract'] = data['lists']
 }
 getcontract_type()
-getcontract()
+
+
+
 // 手机号校验
 const ValidatorPhone = (rule: object, value: string, callback: any) => {
     let rg= /^(?:(?:\+|00)86)?1[3-9]\d{9}$/
@@ -657,7 +671,7 @@ const { optionsData } = useDictOptions<{
 
 const handleSubmit = async () => {
     await formRef.value?.validate()
-    return
+
     mode.value == 'edit' ? await adminEdit(formData) : await adminAdd(formData).then(res=>console.log(res))
     popupRef.value?.close()
     emit('success')
@@ -671,6 +685,9 @@ const open = (type = 'add') => {
 const handleAvatarSuccessIdA: UploadProps['onSuccess'] = (response, uploadFile) => {
     formData.qualification.id_card = response.data.uri
 }
+const handleAvatarSuccessAvatar: UploadProps['onSuccess'] = (response, uploadFile) => {
+    formData.avatar = response.data.uri
+}
 const handleAvatarSuccessIdB: UploadProps['onSuccess'] = (response, uploadFile) => {
     formData.qualification.id_card_b = response.data.uri
 }
@@ -733,15 +750,15 @@ const setFormData = async (row: any) => {
     const data = await adminDetail({
         id: row.id
     })
- 
     for (const key in formData) {
         if (data[key] != null && data[key] != undefined) {
             //@ts-ignore
-            formData[key] = data[key]
+            key=='role_id'? formData[key] = data[key][0]: formData[key]= data[key]     
+            
         }
     }
 }
-
+console.log(formData)
 const handleClose = () => {
     emit('close')
 }
@@ -751,9 +768,23 @@ defineExpose({
     open,
     setFormData
 })
+
 </script>
 
 <style>
+
+.avatar-uploader-head .el-upload{
+    width: 7.5vw;
+    height: 8.5vw;
+    background-color: #fff;
+    border: 1px dashed var(--el-border-color);
+    border-radius: 6px;
+    cursor: pointer;
+    position: relative;
+    overflow: hidden;
+    transition: var(--el-transition-duration-fast);
+  
+}
 .avatar-uploader .el-upload {
     width: 10vw;
     height: 6.3vw;