|
|
|
@ -1,6 +1,6 @@
|
|
|
|
|
<template> |
|
|
|
|
<content-wrap> |
|
|
|
|
<section class="view-wrapper"> |
|
|
|
|
<section class="view-wrapper" v-loading="loading"> |
|
|
|
|
<section class="flex-1"> |
|
|
|
|
<section class="mb-40px"> |
|
|
|
|
<section class="title-wrapper"> 基本信息</section> |
|
|
|
@ -31,9 +31,9 @@
|
|
|
|
|
</template> |
|
|
|
|
</el-input> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item label="行业类别" prop="tags"> |
|
|
|
|
<el-form-item label="行业类别" prop="tagIds"> |
|
|
|
|
<el-select |
|
|
|
|
v-model="formData.tags" |
|
|
|
|
v-model="formData.tagIds" |
|
|
|
|
placeholder="请选择行业类型" |
|
|
|
|
clearable |
|
|
|
|
multiple |
|
|
|
@ -116,7 +116,12 @@
|
|
|
|
|
<section> |
|
|
|
|
<section class="title-wrapper"> 相关资质 </section> |
|
|
|
|
<section class="prove-wrapper"> |
|
|
|
|
<section class="prove" v-for="(prove, index) in proveList" :key="index"> |
|
|
|
|
<section |
|
|
|
|
class="prove" |
|
|
|
|
v-for="(prove, index) in proveList" |
|
|
|
|
:key="index" |
|
|
|
|
@click="editProve(prove.id)" |
|
|
|
|
> |
|
|
|
|
<el-image |
|
|
|
|
:src="prove.files[0].url" |
|
|
|
|
:preview-src-list="prove.files[0]" |
|
|
|
@ -140,14 +145,15 @@
|
|
|
|
|
</section> |
|
|
|
|
</section> |
|
|
|
|
</section> |
|
|
|
|
<section> |
|
|
|
|
<el-button @click="submit">保存</el-button> |
|
|
|
|
<section class="flex items-center justify-center gap-20px"> |
|
|
|
|
<el-button @click="submit" type="primary">保存信息</el-button> |
|
|
|
|
<el-button @click="router.go(-1)">返回列表</el-button> |
|
|
|
|
</section> |
|
|
|
|
</content-wrap> |
|
|
|
|
|
|
|
|
|
<GpsDialog ref="GpsDialogRef" @success="setGps" /> |
|
|
|
|
<ProveForm ref="proveFormRef" @add-prove="setProve" /> |
|
|
|
|
<ProveForm ref="proveFormRef" @add-prove="setProve" @success="getProveList" /> |
|
|
|
|
</template> |
|
|
|
|
|
|
|
|
|
<script setup lang="ts"> |
|
|
|
|
import { getStrDictOptions, DICT_TYPE, getDictLabel } from '@/utils/dict' |
|
|
|
|
import { TagLibraryApi } from '@/api/system/taglibrary' |
|
|
|
@ -156,13 +162,19 @@ import GpsDialog from './components/getGpsByAmap.vue'
|
|
|
|
|
import ProveForm from '@/views/qualification/prove.vue' |
|
|
|
|
import { formatDate } from '@/utils/formatTime' |
|
|
|
|
import { EnterprisesApi } from '@/api/enterprises' |
|
|
|
|
import { EnterpriseQualificationApi } from '@/api/qualification' |
|
|
|
|
|
|
|
|
|
/** 企业 表单 */ |
|
|
|
|
defineOptions({ name: 'UpdateEnterprises' }) |
|
|
|
|
//行业类别 |
|
|
|
|
const typeList = ref([] as any) |
|
|
|
|
const userList = ref([] as any) |
|
|
|
|
const message = useMessage() |
|
|
|
|
const GpsDialogRef = ref() |
|
|
|
|
const router = useRouter() |
|
|
|
|
const proveFormRef = ref() |
|
|
|
|
const route = useRoute() |
|
|
|
|
const loading = ref(false) |
|
|
|
|
const formRef = ref() |
|
|
|
|
const formData = ref({ |
|
|
|
|
id: undefined, |
|
|
|
@ -184,7 +196,7 @@ const formData = ref({
|
|
|
|
|
ides: undefined, |
|
|
|
|
startUserSelectAssignees: undefined, |
|
|
|
|
enterpriseUserId: undefined, |
|
|
|
|
tags: undefined, |
|
|
|
|
tagIds: undefined, |
|
|
|
|
photo: [] as any, |
|
|
|
|
signRadius: 30 |
|
|
|
|
} as any) |
|
|
|
@ -236,7 +248,7 @@ const formRules = reactive({
|
|
|
|
|
trigger: 'change' |
|
|
|
|
} |
|
|
|
|
], |
|
|
|
|
tags: [ |
|
|
|
|
tagIds: [ |
|
|
|
|
{ |
|
|
|
|
required: true, |
|
|
|
|
message: '请选择行业类别', |
|
|
|
@ -250,7 +262,7 @@ const formRules = reactive({
|
|
|
|
|
trigger: 'change' |
|
|
|
|
} |
|
|
|
|
] |
|
|
|
|
}) |
|
|
|
|
} as any) |
|
|
|
|
const fileUploadRef = ref() |
|
|
|
|
const proveList: any = ref([]) |
|
|
|
|
/** 查询搜索项列表 */ |
|
|
|
@ -286,21 +298,30 @@ const getGaps = () => {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
const addProve = () => { |
|
|
|
|
unref(proveFormRef).open() |
|
|
|
|
unref(proveFormRef).open({ enterpriseId: formData.value.id }) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
const submit = async () => { |
|
|
|
|
const validate = await unref(formRef).validate() |
|
|
|
|
if (!validate) return |
|
|
|
|
loading.value = true |
|
|
|
|
await unref(fileUploadRef).handlerUpload() |
|
|
|
|
console.log(formData.value, proveList.value) |
|
|
|
|
if (formData.value.id) { |
|
|
|
|
await EnterprisesApi.updateEnterprises(formData.value) |
|
|
|
|
const data = { |
|
|
|
|
...formData.value, |
|
|
|
|
fileIds: formData.value.photo.map((i) => i.id), |
|
|
|
|
gpsLocation: formData.value.gpsLocation.join(',') |
|
|
|
|
} |
|
|
|
|
EnterprisesApi.updateEnterprises(data).then(() => { |
|
|
|
|
message.success('保存成功') |
|
|
|
|
loading.value = false |
|
|
|
|
getDetail() |
|
|
|
|
}) |
|
|
|
|
} else { |
|
|
|
|
const data = { |
|
|
|
|
...formData.value, |
|
|
|
|
fileIds: formData.value.photo.map((i) => i.id), |
|
|
|
|
gpsLocation:formData.value.gpsLocation.join(','), |
|
|
|
|
fileIds: formData.value.photo.map((i) => i.id), |
|
|
|
|
gpsLocation: formData.value.gpsLocation.join(','), |
|
|
|
|
qualis: proveList.value.map((p) => { |
|
|
|
|
return { |
|
|
|
|
...p, |
|
|
|
@ -308,7 +329,11 @@ const submit = async () => {
|
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
await EnterprisesApi.createEnterprises(data) |
|
|
|
|
EnterprisesApi.createEnterprises(data).then((res) => { |
|
|
|
|
formData.value.id = res |
|
|
|
|
message.success('保存成功') |
|
|
|
|
loading.value = false |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -316,8 +341,41 @@ const setProve = (prove) => {
|
|
|
|
|
proveList.value.push(prove) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
const editProve = (id) => { |
|
|
|
|
unref(proveFormRef).open({ id }) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
const getDetail = () => { |
|
|
|
|
EnterprisesApi.enterpriseDetail(formData.value.id).then((res) => { |
|
|
|
|
formData.value = res |
|
|
|
|
formData.value.photo = formData.value.files |
|
|
|
|
formData.value.gpsLocation = formData.value.gpsLocation.split(',') |
|
|
|
|
formData.value.tagIds = res.tagObjList.map((i) => i.id) |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
const getProveList = () => { |
|
|
|
|
EnterpriseQualificationApi.getEnterpriseQualificationPage({ |
|
|
|
|
pageSize: -1, |
|
|
|
|
enterpriseId: formData.value.id |
|
|
|
|
}).then((res) => { |
|
|
|
|
proveList.value = res.list.map((i) => { |
|
|
|
|
return { |
|
|
|
|
...i, |
|
|
|
|
files: i.qualificationFiles |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
getSelectOption() |
|
|
|
|
onMounted(() => {}) |
|
|
|
|
onMounted(() => { |
|
|
|
|
if (route.query.id) { |
|
|
|
|
formData.value.id = route.query.id |
|
|
|
|
getDetail() |
|
|
|
|
getProveList() |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
</script> |
|
|
|
|
|
|
|
|
|
<style lang="scss" scoped> |
|
|
|
@ -381,6 +439,9 @@ onMounted(() => {})
|
|
|
|
|
:deep(.el-input__suffix-inner > :first-child) { |
|
|
|
|
margin-right: 8px; |
|
|
|
|
} |
|
|
|
|
:deep(.el-input-number .el-input__inner) { |
|
|
|
|
text-align: left; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
.prove-wrapper { |
|
|
|
|
display: grid; |
|
|
|
|