公司认证表格

This commit is contained in:
chenbo 2023-09-15 14:49:49 +08:00
parent fb21725734
commit bf42ae3ee1
2 changed files with 298 additions and 293 deletions

View File

@ -1,133 +1,143 @@
<template> <template>
<div class="edit-popup"> <div class="edit-popup">
<popup <popup
ref="popupRef" ref="popupRef"
:title="popupTitle" :title="popupTitle"
:async="true" :async="true"
width="550px" width="550px"
@confirm="handleSubmit" @confirm="handleSubmit"
@close="handleClose" @close="handleClose"
> >
<el-form ref="formRef" :model="formData" label-width="90px" :rules="formRules"> <el-form ref="formRef" :model="formData" label-width="90px" :rules="formRules">
<el-form-item label="" prop="company_name"> <el-form-item label="商户名称" prop="company_name">
<el-input v-model="formData.company_name" clearable placeholder="请输入" /> <el-input v-model="formData.company_name" clearable placeholder="请输入商户名称" />
</el-form-item> </el-form-item>
<el-form-item label="" prop="organization_code"> <el-form-item label="社会信用统一代码" prop="organization_code">
<el-input v-model="formData.organization_code" clearable placeholder="请输入" /> <el-input v-model="formData.organization_code" clearable placeholder="请输入社会信用统一代码" />
</el-form-item> </el-form-item>
<el-form-item label="" prop="address"> <el-form-item label="详细地址" prop="address">
<el-input v-model="formData.address" clearable placeholder="请输入" /> <el-input v-model="formData.address" clearable placeholder="请输入详细地址" />
</el-form-item> </el-form-item>
<el-form-item label="" prop="master_name"> <el-form-item label="法人名称" prop="master_name">
<el-input v-model="formData.master_name" clearable placeholder="请输入" /> <el-input v-model="formData.master_name" clearable placeholder="请输入法人名称" />
</el-form-item> </el-form-item>
<el-form-item label="" prop="type"> <el-form-item label="" prop="type">
<el-input v-model="formData.type" clearable placeholder="请输入" /> <el-input v-model="formData.type" clearable placeholder="请输入" />
</el-form-item> </el-form-item>
<el-form-item label="" prop="master_email"> <el-form-item label="法人邮箱" prop="master_email">
<el-input v-model="formData.master_email" clearable placeholder="请输入" /> <el-input v-model="formData.master_email" clearable placeholder="请输入法人邮箱" />
</el-form-item> </el-form-item>
<el-form-item label="" prop="notes"> <el-form-item label="" prop="notes">
<el-input v-model="formData.notes" clearable placeholder="请输入" /> <el-input v-model="formData.notes" clearable placeholder="请输入" />
</el-form-item> </el-form-item>
<el-form-item label="" prop="type_two"> </el-form>
<el-input v-model="formData.type_two" clearable placeholder="请输入" /> </popup>
</el-form-item> </div>
</el-form> </template>
</popup>
</div> <script lang="ts" setup name="companyFormEdit">
</template> import type { FormInstance } from 'element-plus'
import Popup from '@/components/popup/index.vue'
<script lang="ts" setup name="companyFormEdit"> import { apiCompanyFormAdd, apiCompanyFormEdit, apiCompanyFormDetail } from '@/api/company_form'
import type { FormInstance } from 'element-plus' import { timeFormat } from '@/utils/util'
import Popup from '@/components/popup/index.vue' import type { PropType } from 'vue'
import { apiCompanyFormAdd, apiCompanyFormEdit, apiCompanyFormDetail } from '@/api/company_form' defineProps({
import { timeFormat } from '@/utils/util' dictData: {
import type { PropType } from 'vue' type: Object as PropType<Record<string, any[]>>,
defineProps({ default: () => ({})
dictData: { }
type: Object as PropType<Record<string, any[]>>, })
default: () => ({}) const emit = defineEmits(['success', 'close'])
} const formRef = shallowRef<FormInstance>()
}) const popupRef = shallowRef<InstanceType<typeof Popup>>()
const emit = defineEmits(['success', 'close']) const mode = ref('add')
const formRef = shallowRef<FormInstance>()
const popupRef = shallowRef<InstanceType<typeof Popup>>()
const mode = ref('add') //
const popupTitle = computed(() => {
return mode.value == 'edit' ? '编辑公司认证表格' : '新增公司认证表格'
// })
const popupTitle = computed(() => {
return mode.value == 'edit' ? '编辑公司认证表格' : '新增公司认证表格' //
}) const formData = reactive({
id: '',
// company_name: '',
const formData = reactive({ organization_code: '',
id: '', address: '',
company_name: '', master_name: '',
organization_code: '', type: '',
address: '', master_email: '',
master_name: '', notes: '',
type: '', })
master_email: '',
notes: '',
type_two: '', //
}) const formRules = reactive<any>({
company_name: [{
required: true,
// message: '请输入商户名称',
const formRules = reactive<any>({ trigger: ['blur']
}],
}) organization_code: [{
required: true,
message: '请输入社会信用统一代码',
// trigger: ['blur']
const setFormData = async (data: Record<any, any>) => { }],
for (const key in formData) { master_name: [{
if (data[key] != null && data[key] != undefined) { required: true,
//@ts-ignore message: '请输入法人名称',
formData[key] = data[key] trigger: ['blur']
} }],
} })
} //
const setFormData = async (data: Record<any, any>) => {
const getDetail = async (row: Record<string, any>) => { for (const key in formData) {
const data = await apiCompanyFormDetail({ if (data[key] != null && data[key] != undefined) {
id: row.id //@ts-ignore
}) formData[key] = data[key]
setFormData(data) }
} }
// }
const handleSubmit = async () => {
await formRef.value?.validate() const getDetail = async (row: Record<string, any>) => {
const data = { ...formData, } const data = await apiCompanyFormDetail({
mode.value == 'edit' id: row.id
? await apiCompanyFormEdit(data) })
: await apiCompanyFormAdd(data) setFormData(data)
popupRef.value?.close() }
emit('success')
}
//
// const handleSubmit = async () => {
const open = (type = 'add') => { await formRef.value?.validate()
mode.value = type const data = { ...formData, }
popupRef.value?.open() mode.value == 'edit'
} ? await apiCompanyFormEdit(data)
: await apiCompanyFormAdd(data)
// popupRef.value?.close()
const handleClose = () => { emit('success')
emit('close') }
}
//
const open = (type = 'add') => {
mode.value = type
defineExpose({ popupRef.value?.open()
open, }
setFormData,
getDetail //
}) const handleClose = () => {
</script> emit('close')
}
defineExpose({
open,
setFormData,
getDetail
})
</script>

View File

@ -1,160 +1,155 @@
<template> <template>
<div> <div>
<el-card class="!border-none mb-4" shadow="never"> <el-card class="!border-none mb-4" shadow="never">
<el-form <el-form
class="mb-[-16px]" class="mb-[-16px]"
:model="queryParams" :model="queryParams"
inline inline
> >
<el-form-item label="" prop="company_name"> <el-form-item label="商户名称" prop="company_name">
<el-input class="w-[280px]" v-model="queryParams.company_name" clearable placeholder="请输入" /> <el-input class="w-[280px]" v-model="queryParams.company_name" clearable placeholder="请输入商户名称" />
</el-form-item> </el-form-item>
<el-form-item label="" prop="organization_code"> <el-form-item label="社会信用统一代码" prop="organization_code">
<el-input class="w-[280px]" v-model="queryParams.organization_code" clearable placeholder="请输入" /> <el-input class="w-[280px]" v-model="queryParams.organization_code" clearable placeholder="请输入社会信用统一代码" />
</el-form-item> </el-form-item>
<el-form-item label="" prop="address"> <el-form-item label="详细地址" prop="address">
<el-input class="w-[280px]" v-model="queryParams.address" clearable placeholder="请输入" /> <el-input class="w-[280px]" v-model="queryParams.address" clearable placeholder="请输入详细地址" />
</el-form-item> </el-form-item>
<el-form-item label="" prop="master_name"> <el-form-item label="法人名称" prop="master_name">
<el-input class="w-[280px]" v-model="queryParams.master_name" clearable placeholder="请输入" /> <el-input class="w-[280px]" v-model="queryParams.master_name" clearable placeholder="请输入法人名称" />
</el-form-item> </el-form-item>
<el-form-item label="" prop="type"> <el-form-item label="" prop="type">
<el-input class="w-[280px]" v-model="queryParams.type" clearable placeholder="请输入" /> <el-input class="w-[280px]" v-model="queryParams.type" clearable placeholder="请输入" />
</el-form-item> </el-form-item>
<el-form-item label="" prop="master_email"> <el-form-item label="法人邮箱" prop="master_email">
<el-input class="w-[280px]" v-model="queryParams.master_email" clearable placeholder="请输入" /> <el-input class="w-[280px]" v-model="queryParams.master_email" clearable placeholder="请输入法人邮箱" />
</el-form-item> </el-form-item>
<el-form-item label="" prop="notes"> <el-form-item label="" prop="notes">
<el-input class="w-[280px]" v-model="queryParams.notes" clearable placeholder="请输入" /> <el-input class="w-[280px]" v-model="queryParams.notes" clearable placeholder="请输入" />
</el-form-item> </el-form-item>
<el-form-item label="" prop="type_two"> <el-form-item>
<el-input class="w-[280px]" v-model="queryParams.type_two" clearable placeholder="请输入" /> <el-button type="primary" @click="resetPage">查询</el-button>
</el-form-item> <el-button @click="resetParams">重置</el-button>
<el-form-item> </el-form-item>
<el-button type="primary" @click="resetPage">查询</el-button> </el-form>
<el-button @click="resetParams">重置</el-button> </el-card>
</el-form-item> <el-card class="!border-none" v-loading="pager.loading" shadow="never">
</el-form> <el-button v-perms="['company_form/add']" type="primary" @click="handleAdd">
</el-card> <template #icon>
<el-card class="!border-none" v-loading="pager.loading" shadow="never"> <icon name="el-icon-Plus" />
<el-button v-perms="['company_form/add']" type="primary" @click="handleAdd"> </template>
<template #icon> 新增
<icon name="el-icon-Plus" /> </el-button>
</template> <el-button
新增 v-perms="['company_form/delete']"
</el-button> :disabled="!selectData.length"
<el-button @click="handleDelete(selectData)"
v-perms="['company_form/delete']" >
:disabled="!selectData.length" 删除
@click="handleDelete(selectData)" </el-button>
> <div class="mt-4">
删除 <el-table :data="pager.lists" @selection-change="handleSelectionChange">
</el-button> <el-table-column type="selection" width="55" />
<div class="mt-4"> <el-table-column label="商户名称" prop="company_name" show-overflow-tooltip />
<el-table :data="pager.lists" @selection-change="handleSelectionChange"> <el-table-column label="社会信用统一代码" prop="organization_code" show-overflow-tooltip />
<el-table-column type="selection" width="55" /> <el-table-column label="详细地址" prop="address" show-overflow-tooltip />
<el-table-column label="" prop="company_name" show-overflow-tooltip /> <el-table-column label="法人名称" prop="master_name" show-overflow-tooltip />
<el-table-column label="" prop="organization_code" show-overflow-tooltip /> <el-table-column label="" prop="type" show-overflow-tooltip />
<el-table-column label="" prop="address" show-overflow-tooltip /> <el-table-column label="法人邮箱" prop="master_email" show-overflow-tooltip />
<el-table-column label="" prop="master_name" show-overflow-tooltip /> <el-table-column label="" prop="notes" show-overflow-tooltip />
<el-table-column label="" prop="type" show-overflow-tooltip /> <el-table-column label="操作" width="120" fixed="right">
<el-table-column label="" prop="master_email" show-overflow-tooltip /> <template #default="{ row }">
<el-table-column label="" prop="notes" show-overflow-tooltip /> <el-button
<el-table-column label="" prop="type_two" show-overflow-tooltip /> v-perms="['company_form/edit']"
<el-table-column label="操作" width="120" fixed="right"> type="primary"
<template #default="{ row }"> link
<el-button @click="handleEdit(row)"
v-perms="['company_form/edit']" >
type="primary" 编辑
link </el-button>
@click="handleEdit(row)" <el-button
> v-perms="['company_form/delete']"
编辑 type="danger"
</el-button> link
<el-button @click="handleDelete(row.id)"
v-perms="['company_form/delete']" >
type="danger" 删除
link </el-button>
@click="handleDelete(row.id)" </template>
> </el-table-column>
删除 </el-table>
</el-button> </div>
</template> <div class="flex mt-4 justify-end">
</el-table-column> <pagination v-model="pager" @change="getLists" />
</el-table> </div>
</div> </el-card>
<div class="flex mt-4 justify-end"> <edit-popup v-if="showEdit" ref="editRef" :dict-data="dictData" @success="getLists" @close="showEdit = false" />
<pagination v-model="pager" @change="getLists" /> </div>
</div> </template>
</el-card>
<edit-popup v-if="showEdit" ref="editRef" :dict-data="dictData" @success="getLists" @close="showEdit = false" /> <script lang="ts" setup name="companyFormLists">
</div> import { usePaging } from '@/hooks/usePaging'
</template> import { useDictData } from '@/hooks/useDictOptions'
import { apiCompanyFormLists, apiCompanyFormDelete } from '@/api/company_form'
<script lang="ts" setup name="companyFormLists"> import { timeFormat } from '@/utils/util'
import { usePaging } from '@/hooks/usePaging' import feedback from '@/utils/feedback'
import { useDictData } from '@/hooks/useDictOptions' import EditPopup from './edit.vue'
import { apiCompanyFormLists, apiCompanyFormDelete } from '@/api/company_form'
import { timeFormat } from '@/utils/util' const editRef = shallowRef<InstanceType<typeof EditPopup>>()
import feedback from '@/utils/feedback' //
import EditPopup from './edit.vue' const showEdit = ref(false)
const editRef = shallowRef<InstanceType<typeof EditPopup>>()
// //
const showEdit = ref(false) const queryParams = reactive({
company_name: '',
organization_code: '',
// address: '',
const queryParams = reactive({ master_name: '',
company_name: '', type: '',
organization_code: '', master_email: '',
address: '', notes: '',
master_name: '', })
type: '',
master_email: '', //
notes: '', const selectData = ref<any[]>([])
type_two: ''
}) //
const handleSelectionChange = (val: any[]) => {
// selectData.value = val.map(({ id }) => id)
const selectData = ref<any[]>([]) }
// //
const handleSelectionChange = (val: any[]) => { const { dictData } = useDictData('')
selectData.value = val.map(({ id }) => id)
} //
const { pager, getLists, resetParams, resetPage } = usePaging({
// fetchFun: apiCompanyFormLists,
const { dictData } = useDictData('') params: queryParams
})
//
const { pager, getLists, resetParams, resetPage } = usePaging({ //
fetchFun: apiCompanyFormLists, const handleAdd = async () => {
params: queryParams showEdit.value = true
}) await nextTick()
editRef.value?.open('add')
// }
const handleAdd = async () => {
showEdit.value = true //
await nextTick() const handleEdit = async (data: any) => {
editRef.value?.open('add') showEdit.value = true
} await nextTick()
editRef.value?.open('edit')
// editRef.value?.setFormData(data)
const handleEdit = async (data: any) => { }
showEdit.value = true
await nextTick() //
editRef.value?.open('edit') const handleDelete = async (id: number | any[]) => {
editRef.value?.setFormData(data) await feedback.confirm('确定要删除?')
} await apiCompanyFormDelete({ id })
getLists()
// }
const handleDelete = async (id: number | any[]) => {
await feedback.confirm('确定要删除?') getLists()
await apiCompanyFormDelete({ id }) </script>
getLists()
}
getLists()
</script>