ZaiZai 2 年 前
コミット
2d3a3a7dfb
3 ファイル変更220 行追加254 行削除
  1. 10 0
      src/utils/tools.js
  2. 68 19
      src/views/people/archive/index.vue
  3. 142 235
      src/views/people/archive/info.vue

+ 10 - 0
src/utils/tools.js

@@ -1,3 +1,13 @@
+//获取文件名
+export const getFileName = (url) => {
+    if (url) {
+        let num = url.lastIndexOf('/') + 1
+        return url.substring(num);
+    } else {
+        return ''
+    }
+}
+
 //删除提醒
 export const delMessage = (cbk, title = '') => {
     window?.$messageBox?.alert(title ? title : '请谨慎考虑后,确认是否需要删除?', '删除提醒', {

+ 68 - 19
src/views/people/archive/index.vue

@@ -20,6 +20,26 @@
             </div>
         </template>
         <HcTable :loading="tableLoading" :column="tableColumn" :datas="tableData">
+            <template #conFileUrl="{row}">
+                <span class="text-blue text-hover" @click="rowViewPdf(row.conFileUrl)">
+                    {{getFileName(row.conFileUrl)}}
+                </span>
+            </template>
+            <template #carAimgUrl="{row}">
+                <span class="text-blue text-hover" @click="rowViewImg(row.carAimgUrl)">
+                    {{getFileName(row.carAimgUrl)}}
+                </span>
+            </template>
+            <template #carBimgUrl="{row}">
+                <span class="text-blue text-hover" @click="rowViewImg(row.carBimgUrl)">
+                    {{getFileName(row.carBimgUrl)}}
+                </span>
+            </template>
+            <template #userImgUrl="{row}">
+                <span class="text-blue text-hover" @click="rowViewImg(row.userImgUrl)">
+                    {{getFileName(row.userImgUrl)}}
+                </span>
+            </template>
             <template #action="{row, index}">
                 <el-button type="primary" size="small" @click="editRowClick(row)">编辑</el-button>
                 <el-button type="danger" size="small" @click="delRowClick(row)">删除</el-button>
@@ -28,6 +48,8 @@
         <template #action>
             <HcPages :pages="searchForm" @change="pageChange"/>
         </template>
+        <!--预览图片-->
+        <el-image-viewer v-if="showViewer" :initial-index="initialIndex" :url-list="previewFileList" @close="showViewerClose"/>
     </HcCard>
 </template>
 
@@ -37,7 +59,7 @@ import mainApi from "~api/people/archive";
 import {useRouter} from 'vue-router'
 import {getuserList} from "~api/other";
 import {getArrValue} from "js-fast-way";
-import {delMessage} from "~uti/tools";
+import {delMessage, getFileName} from "~uti/tools";
 
 const router = useRouter()
 
@@ -87,35 +109,35 @@ const tableColumn = [
     {key: 'phone', name: '手机号', width: 120},
     {key: 'entryTime', name: '入职时间', width: 120},
     {key: 'cyear', name: '司龄', width: 100},
-    {key: 'key1', name: '员工类型', width: 100},
-    {key: 'key2', name: '员工状态', width: 100},
-    {key: 'key3', name: '试用期', width: 100},
+    {key: 'userTypeName', name: '员工类型', width: 100},
+    {key: 'userStatusName', name: '员工状态', width: 100},
+    {key: 'periodMoth', name: '试用期(月)', width: 100},
     {key: 'idNumber', name: '身份证号码', width: 120},
     {key: 'carName', name: '身份证姓名', width: 120},
     {key: 'birthday', name: '出生日期', width: 120},
-    {key: 'key4', name: '年龄', width: 90},
+    {key: 'userAge', name: '年龄', width: 90},
     {key: 'sex', name: '性别', width: 90},
     {key: 'nation', name: '民族', width: 90},
-    {key: 'key5', name: '身份证地址', width: 120},
-    {key: 'key6', name: '婚姻状况', width: 100},
-    {key: 'key7', name: '户籍', width: 100},
-    {key: 'key8', name: '政治面貌', width: 100},
+    {key: 'carAddr', name: '身份证地址', width: 120},
+    {key: 'marriageStatusName', name: '婚姻状况', width: 100},
+    {key: 'domicileAddr', name: '户籍', width: 100},
+    {key: 'politicalName', name: '政治面貌', width: 100},
     {key: 'educationName', name: '学历', width: 100},
-    {key: 'key9', name: '专业', width: 100},
-    {key: 'key10', name: '银行卡号', width: 120},
-    {key: 'key11', name: '开户行', width: 120},
+    {key: 'speciality', name: '专业', width: 100},
+    {key: 'bankNum', name: '银行卡号', width: 120},
+    {key: 'bankName', name: '开户行', width: 120},
     {key: 'conTypeName', name: '合同类型', width: 120},
     {key: 'conStartDate', name: '合同开始日期', width: 120},
     {key: 'conEndDate', name: '合同结束日期', width: 120},
-    {key: 'key12', name: '续签次数', width: 100},
+    {key: 'renewalCount', name: '续签次数', width: 100},
     {key: 'key13', name: '合同期限', width: 100},
     {key: 'conFileUrl', name: '合同附件', width: 120},
-    {key: 'key14', name: '紧急联系人姓名', width: 130},
-    {key: 'key15', name: '联系人电话', width: 120},
-    {key: 'key16', name: '联系人关系', width: 100},
-    {key: 'key17', name: '身份证(人面像)', width: 120},
-    {key: 'key18', name: '身份证(国徽)', width: 120},
-    {key: 'key19', name: '员工照片', width: 120},
+    {key: 'emergencyName', name: '紧急联系人姓名', width: 130},
+    {key: 'emergencyPhone', name: '联系人电话', width: 120},
+    {key: 'emergencyRelation', name: '联系人关系', width: 100},
+    {key: 'carAimgUrl', name: '身份证(人面像)', width: 120},
+    {key: 'carBimgUrl', name: '身份证(国徽)', width: 120},
+    {key: 'userImgUrl', name: '员工照片', width: 120},
     {key: 'action', name: '操作', width: 145, align: 'center', fixed: 'right'},
 ]
 
@@ -151,4 +173,31 @@ const delRowClick = (row) => {
         }
     })
 }
+
+//预览Pdf
+const rowViewPdf = (url) => {
+    if (url) {
+        window.open(url, '_blank')
+    } else {
+        window.$message?.error('文件不存在')
+    }
+}
+
+//预览图片
+const showViewer = ref(false)
+const initialIndex = ref(0)
+const previewFileList = ref([])
+const rowViewImg = (url) => {
+    if (url) {
+        previewFileList.value = [url]
+        showViewer.value = true
+    } else {
+        window.$message?.error('文件不存在')
+    }
+}
+
+//关闭预览
+const showViewerClose = () => {
+    showViewer.value = false
+}
 </script>

+ 142 - 235
src/views/people/archive/info.vue

@@ -1,307 +1,203 @@
 <!--  -->
 <template>
     <HcCard scrollbar title="员工档案信息编辑" actionUi="text-center">
-        <el-form ref="formRef" :model="formModel" :rules="formRules" label-position="left" label-width="auto"
-                 size="large">
+        <el-form ref="formRef" :model="formModel" :rules="formRules" label-position="left" label-width="auto" size="large">
             <el-row :gutter="20">
                 <el-col :span="8">
-                    <el-form-item label="姓名:" prop="name">
+                    <el-form-item label="姓名:">
                         <el-input v-model="formModel.name"/>
                     </el-form-item>
                 </el-col>
                 <el-col :span="8">
-                    <el-form-item label="年龄:" prop="location">
-                        <el-input v-model="formModel.age" placeholder=""/>
+                    <el-form-item label="年龄:">
+                        <el-input v-model="formModel.userAge"/>
                     </el-form-item>
                 </el-col>
                 <el-col :span="8">
                     <el-form-item label="手机号:">
-                        <el-select v-model="formModel.phone" class="block" placeholder="请选择" size="large">
-                            <el-input v-model="formModel.phone" placeholder=""/>
-                        </el-select>
+                        <el-input v-model="formModel.phone"/>
                     </el-form-item>
                 </el-col>
                 <el-col :span="8">
-                    <el-form-item label="身份证号码:">
-                        <el-input v-model="formModel.deptId" placeholder=""/>
+                    <el-form-item label="身份证姓名:">
+                        <el-input v-model="formModel.carName"/>
                     </el-form-item>
                 </el-col>
                 <el-col :span="8">
                     <el-form-item label="性别:">
-                        <el-select v-model="formModel.sex" clearable placeholder="请选择" style="width: 100%;">
-                            <el-option
-                                label="男"
-                                value="1"
-                            />
-                            <el-option
-                                label="女"
-                                value="2"
-                            />
+                        <el-select v-model="formModel.sex" block placeholder="请选择">
+                            <el-option label="男" value="1"/>
+                            <el-option label="女" value="2"/>
                         </el-select>
                     </el-form-item>
                 </el-col>
                 <el-col :span="8">
                     <el-form-item label="民族:">
-                        <el-input v-model="formModel.nation" placeholder=""/>
+                        <el-input v-model="formModel.nation"/>
                     </el-form-item>
                 </el-col>
                 <el-col :span="8">
-                    <el-form-item label="身份证号码:" prop="type">
-                        <el-input v-model="formModel.idNumber" placeholder=""/>
+                    <el-form-item label="身份证号码:">
+                        <el-input v-model="formModel.idNumber"/>
                     </el-form-item>
                 </el-col>
                 <el-col :span="8">
                     <el-form-item label="出生日期:">
-                        <el-date-picker
-                            v-model="formModel.birthday"
-                            type="date"
-                            placeholder=""
-                            disabled
-                            style="width: 100%;"
-                        />
+                        <el-date-picker class="block" v-model="formModel.birthday" type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD"/>
                     </el-form-item>
                 </el-col>
                 <el-col :span="8">
                     <el-form-item label="试用期:">
-                        <el-input v-model="formModel.deptId" placeholder=""/>
+                        <el-input v-model="formModel.periodMoth">
+                            <template #append>月</template>
+                        </el-input>
                     </el-form-item>
                 </el-col>
                 <el-col :span="8">
                     <el-form-item label="身份证地址:">
-                        <el-input v-model="formModel.deptId" placeholder=""/>
+                        <el-input v-model="formModel.carAddr"/>
                     </el-form-item>
                 </el-col>
                 <el-col :span="8">
                     <el-form-item label="入职时间:">
-                        <el-date-picker
-                            v-model="formModel.entryTime"
-                            type="date"
-                            placeholder=""
-                            style="width: 100%;"
-                        />
+                        <el-date-picker class="block" v-model="formModel.entryTime" type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD"/>
                     </el-form-item>
                 </el-col>
                 <el-col :span="8">
                     <el-form-item label="合同类型:">
-                        <el-input v-model="formModel.contactType" placeholder="" disabled/>
-                    </el-form-item>
-                </el-col>
-                <el-col :span="8">
-                    <el-form-item label="员工身份证(人像):">
-                        <!-- <el-input v-model="formModel.deptId" placeholder=""/> -->
-                        <HcUploadFile
-                            ref="HcUploadFileRef"
-                            :options="UploadFileOptions"
-                            @progress="HcUploadFileProgress"
-                            @success="HcUploadFileSuccess"
-                            @change="HcUploadFileChange"
-                        >
-                            <el-button size="large" type="primary" hc-btn>
-                                <HcIcon name="upload-cloud-2"/>
-                                <span>上传图像</span>
-                            </el-button>
-                            <span class="hc-form-file-pdf" v-show="infoData?.originalName">
-                              {{ infoData?.originalName }}
-                            </span>
-                        </HcUploadFile>
+                        <el-input v-model="formModel.conTypeName" disabled/>
                     </el-form-item>
                 </el-col>
                 <el-col :span="8">
                     <el-form-item label="司龄:">
-                        <el-input v-model="formModel.deptId" placeholder="" disabled/>
+                        <el-input v-model="formModel.cyear" disabled/>
                     </el-form-item>
                 </el-col>
                 <el-col :span="8">
                     <el-form-item label="合同开始日期:">
-                        <el-date-picker
-                            v-model="formModel.startTime"
-                            type="date"
-                            placeholder=""
-                            style="width: 100%;"
-                        />
-                    </el-form-item>
-                </el-col>
-                <el-col :span="8">
-                    <el-form-item label="员工身份证(国徽):">
-                        <HcUploadFile
-                            ref="HcUploadFileRef"
-                            :options="UploadFileOptions"
-                            @progress="HcUploadFileProgress"
-                            @success="HcUploadFileSuccess"
-                            @change="HcUploadFileChange"
-                        >
-                            <el-button size="large" type="primary" hc-btn>
-                                <HcIcon name="upload-cloud-2"/>
-                                <span>上传图像</span>
-                            </el-button>
-                            <span class="hc-form-file-pdf" v-show="infoData?.originalName">
-                                {{ infoData?.originalName }}
-                                </span>
-                        </HcUploadFile>
+                        <el-date-picker class="block" v-model="formModel.conStartDate" type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD"/>
                     </el-form-item>
                 </el-col>
                 <el-col :span="8">
                     <el-form-item label="职位:">
-                        <el-input v-model="formModel.deptName" placeholder="" disabled/>
+                        <el-input v-model="formModel.postName" disabled/>
                     </el-form-item>
                 </el-col>
                 <el-col :span="8">
                     <el-form-item label="合同结束日期:">
-                        <el-date-picker
-                            v-model="formModel.startTime"
-                            type="date"
-                            placeholder=""
-                            style="width: 100%;"
-                            disabled
-                        />
+                        <el-date-picker class="block" v-model="formModel.conEndDate" type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" disabled/>
                     </el-form-item>
                 </el-col>
                 <el-col :span="8">
                     <el-form-item label="婚姻状况:">
-                        <el-select v-model="formModel.marriage" clearable placeholder="请选择" style="width: 100%;">
-                            <el-option
-                                label="已婚"
-                                value="1"
-                            />
-                            <el-option
-                                label="未婚"
-                                value="2"
-                            />
+                        <el-select block v-model="formModel.marriageStatus" placeholder="请选择">
+                            <el-option v-for="item in dictData.marriage_status" :label="item.dictName" :value="item.dictValue"/>
                         </el-select>
                     </el-form-item>
                 </el-col>
                 <el-col :span="8">
                     <el-form-item label="邮箱:">
-                        <el-input v-model="formModel.deptId" placeholder=""/>
+                        <el-input v-model="formModel.email"/>
                     </el-form-item>
                 </el-col>
                 <el-col :span="8">
                     <el-form-item label="续签次数:">
-                        <el-input v-model="formModel.deptId" placeholder=""/>
+                        <el-input v-model="formModel.renewalCount"/>
                     </el-form-item>
                 </el-col>
                 <el-col :span="8">
                     <el-form-item label="户籍:">
-                        <el-input v-model="formModel.deptId" placeholder=""/>
+                        <el-input v-model="formModel.domicileAddr"/>
                     </el-form-item>
                 </el-col>
                 <el-col :span="8">
                     <el-form-item label="部门:">
-                        <el-input v-model="formModel.deptId" placeholder="" disabled/>
+                        <el-input v-model="formModel.deptName" disabled/>
                     </el-form-item>
                 </el-col>
                 <el-col :span="8">
                     <el-form-item label="合同附件:">
-                        <el-link type="primary" :href="formModel.pdflink">附件.pdf</el-link>
+                        <el-link class="truncate" type="primary" target="_blank" :href="formModel.conFileUrl">
+                            {{getFileName(formModel.conFileUrl)}}
+                        </el-link>
                     </el-form-item>
                 </el-col>
                 <el-col :span="8">
                     <el-form-item label="学历:">
-                        <el-select v-model="formModel.education" class="m-2" placeholder="请选择" size="large"
-                                   style="width: 100%;">
-                            <el-option
-                                v-for="item in educationalOptions"
-                                :key="item.value"
-                                :label="item.label"
-                                :value="item.value"
-                            />
+                        <el-select block v-model="formModel.education">
+                            <el-option v-for="item in dictData.education_type" :label="item.dictName" :value="item.dictValue"/>
                         </el-select>
                     </el-form-item>
                 </el-col>
                 <el-col :span="8">
                     <el-form-item label="直属主管:">
-                        <el-input v-model="formModel.deptId" placeholder="" disabled/>
+                        <el-input v-model="formModel.leaderName" disabled/>
                     </el-form-item>
                 </el-col>
                 <el-col :span="8">
                     <el-form-item label="紧急联系人姓名:">
-                        <el-input v-model="formModel.deptId" placeholder=""/>
+                        <el-input v-model="formModel.emergencyName"/>
                     </el-form-item>
                 </el-col>
                 <el-col :span="8">
                     <el-form-item label="专业:">
-                        <el-input v-model="formModel.deptId" placeholder=""/>
+                        <el-input v-model="formModel.speciality"/>
                     </el-form-item>
                 </el-col>
                 <el-col :span="8">
                     <el-form-item label="政治面貌:">
-                        <el-select v-model="formModel.political" clearable placeholder="请选择" style="width: 100%;">
-                            <el-option
-                                label="党员"
-                                value="1"
-                            />
-                            <el-option
-                                label="非党员"
-                                value="2"
-                            />
+                        <el-select block v-model="formModel.political" placeholder="请选择">
+                            <el-option v-for="item in dictData.political_type" :label="item.dictName" :value="item.dictValue"/>
                         </el-select>
                     </el-form-item>
                 </el-col>
                 <el-col :span="8">
                     <el-form-item label="联系人电话:">
-                        <el-input v-model="formModel.deptId" placeholder=""/>
+                        <el-input v-model="formModel.emergencyPhone"/>
                     </el-form-item>
                 </el-col>
                 <el-col :span="8">
                     <el-form-item label="开户行:">
-                        <el-input v-model="formModel.deptId" placeholder=""/>
+                        <el-input v-model="formModel.bankName"/>
                     </el-form-item>
                 </el-col>
                 <el-col :span="8">
                     <el-form-item label="员工状态:">
-                        <el-select v-model="formModel.staus" clearable placeholder="请选择" style="width: 100%;">
-                            <el-option
-                                label="在职"
-                                value="1"
-                            />
-                            <el-option
-                                label="离职"
-                                value="2"
-                            />
+                        <el-select block v-model="formModel.userStatus" placeholder="请选择">
+                            <el-option v-for="item in dictData.user_status" :label="item.dictName" :value="item.dictValue"/>
                         </el-select>
                     </el-form-item>
                 </el-col>
                 <el-col :span="8">
                     <el-form-item label="联系人关系:">
-                        <el-input v-model="formModel.deptId" placeholder=""/>
+                        <el-input v-model="formModel.emergencyRelation"/>
                     </el-form-item>
                 </el-col>
                 <el-col :span="8">
                     <el-form-item label="银行卡号:">
-                        <el-input v-model="formModel.deptId" placeholder=""/>
+                        <el-input v-model="formModel.bankNum"/>
                     </el-form-item>
                 </el-col>
                 <el-col :span="8">
                     <el-form-item label="员工类型:">
-                        <el-select v-model="formModel.type" class="m-2" placeholder="请选择" size="large"
-                                   style="width: 100%;">
-                            <el-option
-                                v-for="item in typeOptions"
-                                :key="item.value"
-                                :label="item.label"
-                                :value="item.value"
-                            />
+                        <el-select block v-model="formModel.userType" placeholder="请选择">
+                            <el-option v-for="item in dictData.user_type" :label="item.dictName" :value="item.dictValue"/>
                         </el-select>
                     </el-form-item>
                 </el-col>
+                <el-col :span="8">
+                    <el-form-item label="员工身份证(人像):">
+                        <HcFormUpload type="preview" :num="1" :src="formModel.carAimgUrl" @upload="formItemUpload('carAimgUrl')" @change="formItemChange($event,'carAimgUrl')"/>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                    <el-form-item label="员工身份证(国徽):">
+                        <HcFormUpload type="preview" :num="1" :src="formModel.carBimgUrl" @upload="formItemUpload('carBimgUrl')" @change="formItemChange($event,'carBimgUrl')"/>
+                    </el-form-item>
+                </el-col>
                 <el-col :span="8">
                     <el-form-item label="员工照片:">
-                        <HcUploadFile
-                            ref="HcUploadFileRef"
-                            :options="UploadFileOptions"
-                            @progress="HcUploadFileProgress"
-                            @success="HcUploadFileSuccess"
-                            @change="HcUploadFileChange"
-                        >
-                            <el-button size="large" type="primary" hc-btn>
-                                <HcIcon name="upload-cloud-2"/>
-                                <span>上传图像</span>
-                            </el-button>
-                            <span class="hc-form-file-pdf" v-show="infoData?.originalName">
-                                {{ infoData?.originalName }}
-                                </span>
-                        </HcUploadFile>
-
+                        <HcFormUpload type="preview" :num="1" :src="formModel.userImgUrl" @upload="formItemUpload('userImgUrl')" @change="formItemChange($event,'userImgUrl')"/>
                     </el-form-item>
                 </el-col>
             </el-row>
@@ -311,100 +207,111 @@
                 <HcIcon name="arrow-go-back"/>
                 <span>取消并返回</span>
             </el-button>
-            <el-button size="large" type="primary" hc-btn>
+            <el-button size="large" type="primary" hc-btn :loading="submitLoading" @click="formSaveClick">
                 <HcIcon name="check-double"/>
                 <span>提交保存</span>
             </el-button>
         </template>
+
+        <!--上传组件-->
+        <HcUploadFile ref="uploadFileRef" :options="uploadOptions" :echoParams="uploadParams" @success="uploadSuccess"/>
     </HcCard>
 </template>
 
 <script setup>
-import {ref, watch} from 'vue'
+import {onActivated, ref} from 'vue'
+import mainApi from "~api/people/archive";
 import {getTokenHeader} from "~src/api/request/header";
-import {getObjValue} from "js-fast-way"
+import {getArrValue, getObjValue} from "js-fast-way"
 import {useRouter, useRoute} from 'vue-router'
+import {getDictInfo} from "~api/other";
+import {getFileName} from "~uti/tools";
+
+//初始路由数据
+const router = useRouter(), useRoutes = useRoute()
+const dataId = ref(useRoutes?.query?.id ?? '')
+
+//页面被激活
+onActivated(() => {
+    dataId.value = useRoutes?.query?.id ?? ''
+    getDictionaryData()
+    getUserInfo()
+})
+
+//费用类型字典
+const dictData = ref({})
+const getDictionaryData = async () => {
+    let newDict = {}
+    //婚姻 :marriage_status  学历 education_type  政治面貌 political_type  员工状态 user_status  员工类型 user_type
+    const keys = ['marriage_status', 'education_type', 'political_type', 'user_status', 'user_type']
+    for (let i = 0; i < keys.length; i++) {
+        const {data} = await getDictInfo(keys[i])
+        newDict[keys[i]] = getArrValue(data)
+    }
+    dictData.value = newDict
+}
 
-//初始变量
-const router = useRouter()
+//获取用户信息
+const getUserInfo = async () => {
+    const {data} = await mainApi.detail({
+        id: dataId.value
+    })
+    formModel.value = getObjValue(data)
+}
 
+//表单信息
 const formRef = ref(null)
 const formModel = ref({})
 const formRules = {}
-//返回
-const goBackClick = () => {
-    router.back()
-}
-//学历
-const educationalOptions = ref([
-    {
-        value: '1',
-        label: '小学/初中',
-    },
-    {
-        value: '2',
-        label: '高中',
-    },
-    {
-        value: '3',
-        label: '专科',
-    },
-    {
-        value: '4',
-        label: '本科',
-    },
-    {
-        value: '5',
-        label: '硕士',
-    },
-    {
-        value: '6',
-        label: '博士',
-    },
-])
-//员工类型
-const typeOptions = ref([
-    {
-        value: '1',
-        label: '全职'
-    },
-    {
-        value: '2',
-        label: '兼职',
-    },
-    {
-        value: '3',
-        label: '劳务派遣',
-    },
-    {
-        value: '4',
-        label: '实习',
-    },
-])
+
 //上传配置
-const UploadFileOptions = {
-    //此处设置header
+const uploadFileRef = ref(null)
+const uploadParams = ref({})
+const uploadOptions = {
+    url: '/api/blade-resource/oss/endpoint/put-file',
     headers: getTokenHeader(),
+    accept: 'image/png,image/jpg,image/jpeg',
+    accept_tip: '只能上传图片(png、jpg、jpeg)',
+    multiple: false,
+    size: 50
 }
 
-// 文件上传进度
-const HcUploadFileProgress = (res) => {
-    console.log('文件上传进度', res)
+//上传
+const formItemUpload = (key) => {
+    uploadParams.value = {key}
+    uploadFileRef.value?.selectFile();
 }
-const infoData = ref({})
-const HcUploadFileRef = ref(null)
-// 文件上传成功的回调
-const HcUploadFileSuccess = (res) => {
-    const {originalName} = getObjValue(res.resData)
-    infoData.value.originalName = originalName
-    HcUploadFileRef.value?.setModalShow(false);
 
+//文件变化
+const formItemChange = (src, key) => {
+    formModel.value[key] = src
 }
 
-// 文件全部上传成功
-const HcUploadFileChange = () => {
-    console.log('文件全部上传成功')
+//文件上传成功
+const uploadSuccess = ({resData, echoParams}) => {
+    const {key} = echoParams
+    formModel.value[key] = resData.link
+    uploadFileRef.value?.setModalShow(false);
+}
+
+//提交保存
+const submitLoading = ref(false)
+const formSaveClick = async () => {
+    submitLoading.value = true
+    //发起请求
+    const {error, code, msg} = await mainApi.submit(formModel.value)
+    //判断状态
+    submitLoading.value = false
+    if (!error && code === 200) {
+        window.$message?.success('提交保存成功')
+        router.back()
+    } else {
+        window.$message?.error(msg)
+    }
+}
+
+//返回
+const goBackClick = () => {
+    router.back()
 }
 </script>
-<style lang='scss' scoped>
-</style>