<!-- 测试、校准或检定合格分包方名录 基本信息 -->
<script name="SubpackageDirectoriesBasic" lang="ts" setup>
import type { Ref } from 'vue'
import type { IForm } from '../directories-interface'
import type { IAddress } from '@/components/AddressSelect/address-interface'
import { getInfo } from '@/api/business/subpackage/directories'
const props = defineProps({
pageType: { // 页面类型 add新建 edit编辑 detail详情
type: String,
requre: true,
default: 'detail',
},
id: {
type: String,
requre: true,
},
approvalStatusName: { // 审批状态名称
type: String,
requre: true,
},
})
const emits = defineEmits(['addSuccess', 'submitSuccess'])
const form: Ref<IForm> = ref({ // 表单
outsourcerNo: '', // 分包方编号
outsourcerName: '', // 公司名称
director: '', // 机构负责人
fullAddress: '', // 公司地址-详细地址
addressArea: '', // 公司地址-区编码
addressCity: '', // 公司地址-市编码
addressCountry: '', // 公司地址-国家编码
addressProvince: '', // 公司地址-省编码
addressAreaName: '', // 公司地址-区
addressCityName: '', // 公司地址-市
addressCountryName: '', // 公司地址-国家
addressProvinceName: '', // 公司地址-省
postalCode: '', // 邮编
contacts: '', // 联系人
mobile: '', // 联系电话
fax: '', // 传真
createUserName: '', // 创建人
createTime: '', // 创建时间
testMethod: '', // 测试方法
techniqueAbility: '', // 技术能力
remark: '', // 备注
})
const fullAddress = ref<string[]>([]) // 公司地址
const invoiceFullAddress = ref<string[]>([]) // 开票地址
const ruleFormRef = ref() // 表单ref
const loading = ref(false) // loading
const infoId = ref('') // id
// 获取详情
const fetchInfo = () => {
loading.value = true
getInfo({ id: infoId.value }).then((res) => {
loading.value = false
form.value = res.data
form.value.fullAddress = res.data.addressCountryName + res.data.addressProvinceName + res.data.addressCityName + res.data.addressAreaName + res.data.fullAddress
// if (props.pageType == 'detail') {
// fullAddress.value = [form.value.addressCountryName, form.value.addressProvinceName, form.value.addressCityName, form.value.addressAreaName, form.value.fullAddress]
// invoiceFullAddress.value = [form.value.invoiceCountryName, form.value.invoiceProvinceName, form.value.invoiceCityName, form.value.invoiceAreaName, form.value.invoiceFullAddress]
// }
// else {
// fullAddress.value = [form.value.addressCountry, form.value.addressProvince, form.value.addressCity, form.value.addressArea, form.value.fullAddress]
// invoiceFullAddress.value = [form.value.invoiceCountry, form.value.invoiceProvince, form.value.invoiceCity, form.value.invoiceArea, form.value.invoiceFullAddress]
// }
})
}
// 公司地址变化后给对象赋值
function fullAddressChange(addressObj: IAddress) {
form.value.addressCountry = addressObj.country
form.value.addressProvince = addressObj.province
form.value.addressCity = addressObj.city
form.value.addressArea = addressObj.area
form.value.fullAddress = addressObj.address
form.value.addressCountryName = addressObj.countryName
form.value.addressProvinceName = addressObj.provinceName
form.value.addressCityName = addressObj.cityName
form.value.addressAreaName = addressObj.areaName
}
// ---------------------------------------------钩子----------------------------------------------
watch(() => props.id, (newValue) => {
infoId.value = newValue!
if (infoId.value) {
fetchInfo() // 获取详情信息
}
}, { immediate: true })
onMounted(async () => {
if (infoId.value) {
fetchInfo() // 获取详情信息
}
})
</script>
<template>
<detail-block v-loading="loading" title="">
<el-form
ref="ruleFormRef"
:model="form"
:label-width="120"
label-position="right"
>
<el-row :gutter="24">
<el-col :span="6">
<el-form-item label="分包方编号:" prop="outsourcerNo">
<el-input
v-model="form.outsourcerNo"
:placeholder="pageType === 'detail' ? ' ' : '系统自动生成'"
:class="{ 'detail-input': pageType === 'detail' }"
disabled
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="分包方名称:" prop="outsourcerName">
<el-input
v-model.trim="form.outsourcerName"
:placeholder="pageType === 'detail' ? ' ' : '分包方名称'"
:class="{ 'detail-input': pageType === 'detail' }"
disabled
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="机构负责人:">
<el-input
v-model="form.director"
:placeholder="pageType === 'detail' ? ' ' : '请输入机构负责人'"
:class="{ 'detail-input': pageType === 'detail' }"
disabled
/>
</el-form-item>
</el-col>
<!-- </el-row>
<el-row :gutter="5">
<el-form-item label="地址:">
<address-select :data="fullAddress" :detail="pageType === 'detail'" @on-change="fullAddressChange" />
</el-form-item>
</el-row>
<el-row :gutter="5"> -->
<el-col :span="12">
<el-form-item label="地址:" prop="fullAddress">
<el-input
v-model="form.fullAddress"
:placeholder="pageType === 'detail' ? '' : '地址'"
:disabled="pageType === 'detail'"
type="textarea"
autosize
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="邮政编码:">
<el-input
v-model="form.postalCode"
:placeholder="pageType === 'detail' ? ' ' : '邮政编码'"
disabled
:class="{ 'detail-input': pageType === 'detail' }"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="联系人:">
<el-input
v-model="form.contacts"
:placeholder="pageType === 'detail' ? ' ' : '联系人'"
disabled
:class="{ 'detail-input': pageType === 'detail' }"
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="联系电话:">
<el-input
v-model="form.mobile"
:placeholder="pageType === 'detail' ? ' ' : '联系电话'"
:class="{ 'detail-input': pageType === 'detail' }"
disabled
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="传真:">
<el-input
v-model="form.fax"
:placeholder="pageType === 'detail' ? ' ' : '传真'"
:class="{ 'detail-input': pageType === 'detail' }"
disabled
/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="创建人:">
<el-input v-model="form.createUserName" disabled />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="创建时间:">
<el-date-picker
v-model="form.createTime"
type="datetime"
format="YYYY-MM-DD HH:mm:ss"
value-format="YYYY-MM-DD HH:mm:ss"
disabled
class="full-width-input"
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="测试方法:">
<el-input
v-model="form.testMethod"
:placeholder="pageType === 'detail' ? ' ' : '测试方法'"
:class="{ 'detail-input': pageType === 'detail' }"
disabled
type="textarea"
autosize
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="技术能力:">
<el-input
v-model="form.techniqueAbility"
:placeholder="pageType === 'detail' ? ' ' : '技术能力'"
:class="{ 'detail-input': pageType === 'detail' }"
disabled
type="textarea"
autosize
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="12">
<el-form-item label="备注:">
<el-input
v-model="form.remark"
:placeholder="pageType === 'detail' ? '' : '请输入备注'"
disabled
:class="{ 'detail-input': pageType === 'detail' }"
type="textarea"
autosize
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
</detail-block>
</template>