生产经营主体接口对接

This commit is contained in:
13713575202 2025-04-27 14:48:36 +08:00
parent bcbea002c7
commit 30fdd2100c
7 changed files with 687 additions and 564 deletions

View File

@ -18,7 +18,7 @@ export function saveBuiness(data = {}) {
export function editBuiness(data = {}) { export function editBuiness(data = {}) {
return request('/product-business/business/businessEdit', { return request('/product-business/business/businessEdit', {
method: 'POST', method: 'PUT',
data, data,
}); });
} }

View File

@ -13,7 +13,7 @@
<el-icon class="custom-form__uploader__icon"><Plus /></el-icon> <el-icon class="custom-form__uploader__icon"><Plus /></el-icon>
</el-upload> </el-upload>
<div v-for="(item, i) in attrs_" :key="`attr_${item.uid}`" class="attrs_content__item"> <div v-for="(item, i) in attrs_" :key="`attr_${item.uid}`" class="attrs_content__item">
<img :src="item.url" :alt="item.name" @click="handlePreview(i)" /> <img :src="item.url" @click="handlePreview(i)" />
<el-icon v-if="props.type != 'view'" class="clear_btn" @click.stop="handleClearAttr(item.uid)"><CircleCloseFilled /></el-icon> <el-icon v-if="props.type != 'view'" class="clear_btn" @click.stop="handleClearAttr(item.uid)"><CircleCloseFilled /></el-icon>
</div> </div>
<el-image-viewer v-if="previewShow" :url-list="srcList" :initial-index="index" @close="previewShow = false" /> <el-image-viewer v-if="previewShow" :url-list="srcList" :initial-index="index" @close="previewShow = false" />

View File

@ -110,6 +110,7 @@ const state = reactive({
searchSpan: 6, searchSpan: 6,
searchGutter: 80, searchGutter: 80,
searchMenuPosition: 'center', searchMenuPosition: 'center',
selection: true,
column: [ column: [
{ {
label: '地块名', label: '地块名',

View File

@ -31,6 +31,13 @@
<!-- <el-button type="primary" icon="Upload" @click="onImport">导入</el-button> --> <!-- <el-button type="primary" icon="Upload" @click="onImport">导入</el-button> -->
<el-button type="danger" icon="Delete" @click="onBatchDel">批量删除</el-button> <el-button type="danger" icon="Delete" @click="onBatchDel">批量删除</el-button>
</template> </template>
<template #businessLicense-form="{ column, value, type }">
<Attrs v-model:attrs="attrs" :type="type" :limit="1" />
</template>
<template #businessPermitUrl-form="{ column, value, type }">
<Attrs v-model:attrs="permitUrl" :type="type" :limit="1" />
</template>
<template #status="{ row }"> <template #status="{ row }">
<el-tag v-if="row.status == '0'" type="warning" size="small">待审核</el-tag> <el-tag v-if="row.status == '0'" type="warning" size="small">待审核</el-tag>
<el-tag v-if="row.status == '1'" type="success" size="small">通过</el-tag> <el-tag v-if="row.status == '1'" type="success" size="small">通过</el-tag>
@ -43,20 +50,20 @@
</div> </div>
</template> </template>
<script setup> <script setup>
import { computed, reactive, ref } from 'vue'; import { computed, reactive, ref, watch } from 'vue';
import { useApp } from '@/hooks'; import { useApp } from '@/hooks';
import { CRUD_OPTIONS, pageData } from '@/config'; import { CRUD_OPTIONS, pageData } from '@/config';
import { isEmpty, downloadFile } from '@/utils'; import { isEmpty, downloadFile } from '@/utils';
import { useUserStore } from '@/store/modules/user'; import { useUserStore } from '@/store/modules/user';
import { getBuinessList, saveBuiness, editBuiness, delBuiness } from '@/apis/productOperateMain'; import { getBuinessList, saveBuiness, editBuiness, delBuiness } from '@/apis/productOperateMain';
import Attrs from '@/views/inputSuppliesManage/common/Attrs.vue';
const { VITE_APP_BASE_API } = import.meta.env; const { VITE_APP_BASE_API } = import.meta.env;
const app = useApp(); const app = useApp();
const UserStore = useUserStore(); const UserStore = useUserStore();
const crudRef = ref(null); const crudRef = ref(null);
let timeVal = ref([]);
const searchCondition = ref({ const searchCondition = ref({
businessType: null, businessType: null,
businessId: '', businessId: '',
@ -67,20 +74,71 @@ const searchCondition = ref({
}); });
// :0->,1->,2->,3-> // :0->,1->,2->,3->
const column0 = [];
const column1 = []; let columnHide = reactive({
addDisplay: false,
editDisplay: false,
viewDisplay: false,
});
const column2 = []; let typeVal = ref(0);
const column3 = []; let businessType = reactive({
label: '主体类型',
prop: 'businessType',
type: 'radio',
className: 'el-col-md-24',
props: {
label: 'dictLabel',
value: 'dictValue',
},
dicUrl: `${VITE_APP_BASE_API}/system/dict/data/list`,
dicQuery: {
dictType: 'sys_business_type',
current: 1,
size: 10,
},
dicHeaders: {
authorization: UserStore.token,
},
dicFormatter: (res) => {
return (res.data.records ?? []).map((item) => ({
...item,
dictValue: Number(item.dictValue),
}));
},
});
const attrs = ref([]);
const permitUrl = ref([]);
const bTypeChange = (val) => {
beforeOpen(val);
};
const searchDateChange = (val) => {
// console.info('searchDateChange', val);
searchCondition.value.createStartTime = val[0] || '';
searchCondition.value.createEndTime = val[1] || '';
};
const filterByLevel = (data, maxLevel = 3) => {
return data
.filter((item) => item.level <= maxLevel) //
.map((item) => ({
...item,
areaChildVOS: item.areaChildVOS
? filterByLevel(item.areaChildVOS, maxLevel) //
: [],
}));
};
const state = reactive({ const state = reactive({
loading: false, loading: false,
form: {}, form: {},
selection: [], selection: [],
options: { options: {
...CRUD_OPTIONS, ...CRUD_OPTIONS,
selection: true,
addBtnText: '添加', addBtnText: '添加',
searchLabelWidth: '150px', searchLabelWidth: '150px',
searchGutter: 100, searchGutter: 100,
@ -88,26 +146,11 @@ const state = reactive({
searchMenuPosition: 'center', searchMenuPosition: 'center',
column: [ column: [
{ {
label: '主体类型', ...businessType,
prop: 'businessType', ...columnHide,
type: 'radio',
search: true,
width: '80px',
ellipsis: true,
showOverflowTooltip: true, showOverflowTooltip: true,
addDisplay: false,
editDisplay: false,
span: 24, span: 24,
props: { type: 'select',
label: 'dictLabel',
value: 'dictValue',
},
dicUrl: `${VITE_APP_BASE_API}/system/dict/data/list?dictType=sys_business_type&current=1&size=10`,
dicHeaders: {
authorization: UserStore.token,
},
dicFormatter: (res) => res.data.records ?? [],
rules: { required: true, message: '请选择', trigger: 'blur' },
}, },
{ {
label: '主体代码', label: '主体代码',
@ -115,10 +158,9 @@ const state = reactive({
width: '120px', width: '120px',
ellipsis: true, ellipsis: true,
showOverflowTooltip: true, showOverflowTooltip: true,
addDisplay: false, ...columnHide,
editDisplay: false,
search: true, search: true,
rules: { required: true, message: '请输入', trigger: 'blur' }, rules: [{ required: true, message: '请输入', trigger: 'blur' }],
}, },
{ {
label: '主体名称', label: '主体名称',
@ -126,10 +168,9 @@ const state = reactive({
width: '160px', width: '160px',
ellipsis: true, ellipsis: true,
showOverflowTooltip: true, showOverflowTooltip: true,
addDisplay: false, ...columnHide,
editDisplay: false,
search: true, search: true,
rules: { required: true, message: '请输入', trigger: 'blur' }, rules: [{ required: true, message: '请输入', trigger: 'blur' }],
}, },
{ {
label: '经营产品种类', label: '经营产品种类',
@ -138,8 +179,7 @@ const state = reactive({
width: '120px', width: '120px',
remote: false, remote: false,
search: true, search: true,
addDisplay: false, ...columnHide,
editDisplay: false,
props: { props: {
label: 'dictLabel', label: 'dictLabel',
value: 'dictValue', value: 'dictValue',
@ -162,13 +202,8 @@ const state = reactive({
width: '120px', width: '120px',
showOverflowTooltip: true, showOverflowTooltip: true,
search: false, search: false,
addDisplay: false, ...columnHide,
editDisplay: false, rules: [{ required: true, message: '请输入', trigger: 'blur' }],
rules: {
required: true,
message: '请输入',
trigger: 'blur',
},
}, },
{ {
label: '统一信用代码/证件号码', label: '统一信用代码/证件号码',
@ -176,9 +211,8 @@ const state = reactive({
search: false, search: false,
width: '200px', width: '200px',
labelWidth: '160px', labelWidth: '160px',
addDisplay: false, ...columnHide,
editDisplay: false, rules: [{ required: true, message: '请输入', trigger: 'blur' }],
rules: { required: true, message: '请输入', trigger: 'blur' },
}, },
{ {
label: '规模', label: '规模',
@ -186,9 +220,8 @@ const state = reactive({
search: false, search: false,
width: '200px', width: '200px',
labelWidth: '160px', labelWidth: '160px',
addDisplay: false, ...columnHide,
editDisplay: false, rules: [{ required: true, message: '请输入', trigger: 'blur' }],
rules: { required: true, message: '请输入', trigger: 'blur' },
}, },
{ {
label: '负责人', label: '负责人',
@ -196,9 +229,8 @@ const state = reactive({
search: false, search: false,
width: '200px', width: '200px',
labelWidth: '160px', labelWidth: '160px',
addDisplay: false, ...columnHide,
editDisplay: false, rules: [{ required: true, message: '请输入', trigger: 'blur' }],
rules: { required: true, message: '请输入', trigger: 'blur' },
}, },
{ {
label: '联系地址', label: '联系地址',
@ -208,8 +240,7 @@ const state = reactive({
width: '200px', width: '200px',
ellipsis: true, ellipsis: true,
showOverflowTooltip: true, showOverflowTooltip: true,
addDisplay: false, ...columnHide,
editDisplay: false,
search: true, search: true,
props: { props: {
label: 'areaName', label: 'areaName',
@ -220,7 +251,7 @@ const state = reactive({
dicHeaders: { dicHeaders: {
authorization: UserStore.token, authorization: UserStore.token,
}, },
dicFormatter: (res) => res.data ?? [], dicFormatter: (res) => filterByLevel(res.data ?? []),
rules: [{ required: true, message: '请选择', trigger: 'blur' }], rules: [{ required: true, message: '请选择', trigger: 'blur' }],
}, },
{ {
@ -229,73 +260,46 @@ const state = reactive({
search: false, search: false,
ellipsis: true, ellipsis: true,
showOverflowTooltip: true, showOverflowTooltip: true,
addDisplay: false, ...columnHide,
editDisplay: false, rules: [{ required: true, message: '请输入', trigger: 'blur' }],
rules: { required: true, message: '请输入', trigger: 'blur' },
}, },
{ {
label: '联系电话', label: '联系电话',
prop: 'phone', prop: 'phone',
width: '160px', width: '160px',
search: false, search: false,
addDisplay: false, ...columnHide,
editDisplay: false, rules: [{ required: true, message: '请输入', trigger: 'blur' }],
rules: { required: true, message: '请输入', trigger: 'blur' },
}, },
{ {
label: '审核状态', label: '审核状态',
prop: 'status', prop: 'status',
width: '80px', width: '80px',
addDisplay: false, ...columnHide,
editDisplay: false,
search: false, search: false,
rules: { rules: [{ required: true, message: '请输入', trigger: 'blur' }],
required: true,
message: '请输入',
trigger: 'blur',
},
}, },
{ {
label: '审核意见', label: '审核意见',
prop: 'remark', prop: 'reviewSuggestion',
addDisplay: false, addDisplay: false,
editDisplay: false, editDisplay: false,
width: '200px', width: '200px',
ellipsis: true, ellipsis: true,
showOverflowTooltip: true, showOverflowTooltip: true,
rules: { ...columnHide,
required: true, rules: [{ required: true, message: '请输入', trigger: 'blur' }],
message: '请输入',
trigger: 'blur',
},
}, },
{ label: '创建时间', prop: 'createTime', addDisplay: false, editDisplay: false, search: false }, { label: '创建时间', prop: 'createTime', ...columnHide, width: '160px', search: false },
], ],
searchColumn: [ searchColumn: [
{ {
label: '主体类型', ...businessType,
prop: 'businessType',
type: 'radio',
className: 'el-col-md-24',
button: true, button: true,
props: {
label: 'dictLabel',
value: 'dictValue',
},
dicUrl: `${VITE_APP_BASE_API}/system/dict/data/list`,
dicQuery: {
dictType: 'sys_business_type',
current: 1,
size: 10,
},
dicHeaders: {
authorization: UserStore.token,
},
dicFormatter: (res) => res.data.records ?? [],
searchSpan: 24, searchSpan: 24,
}, },
{ label: '主体代码', prop: 'businessId', search: true }, { label: '主体代码', prop: 'id', search: true },
{ label: '主体名称', prop: 'crop', search: true }, { label: '主体名称', prop: 'businessName', search: true },
{ {
label: '经营产品种类', label: '经营产品种类',
prop: 'productType', prop: 'productType',
@ -324,6 +328,7 @@ const state = reactive({
valueFormat: 'YYYY-MM-DD', valueFormat: 'YYYY-MM-DD',
width: 200, width: 200,
search: true, search: true,
change: (val) => searchDateChange(val.value),
}, },
], ],
group: [ group: [
@ -331,34 +336,14 @@ const state = reactive({
label: '基本信息>', label: '基本信息>',
prop: 'caseInfo', prop: 'caseInfo',
column: [ column: [
{
label: '主体代码',
prop: 'taskCode',
rules: { required: true, message: '请输入', trigger: 'blur' },
},
{ {
label: '主体名称', label: '主体名称',
prop: 'taskCode', prop: 'businessName',
rules: { required: true, message: '请输入', trigger: 'blur' }, rules: [{ required: true, message: '请输入', trigger: 'blur' }],
}, },
{ {
label: '主体类型', ...businessType,
prop: 'businessType', change: (val) => bTypeChange(val.value),
type: 'radio',
width: '80px',
ellipsis: true,
showOverflowTooltip: true,
span: 24,
props: {
label: 'dictLabel',
value: 'dictValue',
},
dicUrl: `${VITE_APP_BASE_API}/system/dict/data/list?dictType=sys_business_type&current=1&size=10`,
dicHeaders: {
authorization: UserStore.token,
},
dicFormatter: (res) => res.data.records ?? [],
rules: { required: true, message: '请选择', trigger: 'blur' },
}, },
{ {
label: '经营产品种类', label: '经营产品种类',
@ -381,23 +366,28 @@ const state = reactive({
}, },
{ {
label: '主要产品', label: '主要产品',
prop: 'product', prop: 'primaryProduct',
rules: { required: false, message: '请输入', trigger: 'blur' }, rules: [{ required: false, message: '请输入', trigger: 'blur' }],
}, },
{ {
label: '规模', label: '规模',
prop: 'villageCount', prop: 'villageCount',
rules: { required: false, message: '请选择', trigger: 'blur' }, rules: [{ required: false, message: '请选择', trigger: 'blur' }],
},
{
label: '户主身份证号',
prop: 'idCard',
rules: [{ required: false, message: '请输入', trigger: 'blur' }],
}, },
{ {
label: '负责人', label: '负责人',
prop: 'headName', prop: 'headName',
rules: { required: false, message: '请输入', trigger: 'blur' }, rules: [{ required: false, message: '请输入', trigger: 'blur' }],
}, },
{ {
label: '负责人电话', label: '负责人电话',
prop: 'phone', prop: 'phone',
rules: { required: false, message: '请输入', trigger: 'blur' }, rules: [{ required: false, message: '请输入', trigger: 'blur' }],
}, },
{ {
label: '联系地址', label: '联系地址',
@ -407,8 +397,6 @@ const state = reactive({
width: '200px', width: '200px',
ellipsis: true, ellipsis: true,
showOverflowTooltip: true, showOverflowTooltip: true,
addDisplay: false,
editDisplay: false,
search: true, search: true,
props: { props: {
label: 'areaName', label: 'areaName',
@ -419,101 +407,109 @@ const state = reactive({
dicHeaders: { dicHeaders: {
authorization: UserStore.token, authorization: UserStore.token,
}, },
dicFormatter: (res) => res.data ?? [], dicFormatter: (res) => filterByLevel(res.data ?? []),
rules: [{ required: true, message: '请选择', trigger: 'blur' }], rules: [{ required: true, message: '请选择', trigger: 'blur' }],
}, },
{ {
label: '详细地址', label: '详细地址',
prop: 'detailAddress', prop: 'detailAddress',
rules: { required: true, message: '请输入', trigger: 'blur' }, rules: [{ required: true, message: '请输入', trigger: 'blur' }],
}, },
], ],
}, },
{ {
label: '营业执照>', label: '营业执照>',
prop: 'caseInfo', prop: 'license1',
display: typeVal.value == 2 || typeVal.value == 3 ? true : false,
column: [ column: [
{ {
label: '统一社会信用代码', label: '统一社会信用代码',
prop: 'notes', prop: 'unifiedSocialCreditCode',
rules: { required: true, message: '请输入', trigger: 'blur' }, rules: [{ required: false, message: '请输入', trigger: 'blur' }],
}, },
{ {
label: '营业执照', label: '营业执照',
prop: 'license', prop: 'businessLicense',
hide: true,
formslot: true,
span: 24,
rules: { required: false, message: '请输入', trigger: 'blur' },
}, },
{ {
label: '有效期至', label: '有效期至',
prop: 'operationDate', prop: 'businessLicenseExpiryDate',
type: 'date', type: 'date',
format: 'YYYY-MM-DD', format: 'YYYY-MM-DD',
valueFormat: 'YYYY-MM-DD', valueFormat: 'YYYY-MM-DD',
width: 200, width: 200,
rules: { required: true, message: '请输入', trigger: 'blur' }, rules: [{ required: false, message: '请输入', trigger: 'blur' }],
}, },
{ {
label: '经营项目', label: '经营项目',
prop: 'inspectionSituation', prop: 'businessProject',
rules: { required: true, message: '请输入', trigger: 'blur' }, rules: [{ required: false, message: '请输入', trigger: 'blur' }],
}, },
], ],
}, },
{ {
label: '经营许可证>', label: '经营许可证>',
prop: 'caseInfo', prop: 'license2',
display: typeVal.value == 2 || typeVal.value == 3 ? true : false,
column: [ column: [
{ {
label: '经营许可证编号', label: '经营许可证编号',
prop: 'operationType', prop: 'businessPermitNumber',
rules: { required: false, message: '请输入', trigger: 'blur' }, rules: [{ required: false, message: '请输入', trigger: 'blur' }],
}, },
{ {
label: '经营许可证', label: '经营许可证',
prop: 'permit', prop: 'businessPermitUrl',
rules: { required: false, message: '请选择', trigger: 'blur' }, hide: true,
formslot: true,
span: 24,
rules: [{ required: false, message: '请选择', trigger: 'blur' }],
}, },
{ {
label: '有效期至', label: '有效期至',
prop: 'operationDate', prop: 'businessPermitExpiryDate',
type: 'date', type: 'date',
format: 'YYYY-MM-DD', format: 'YYYY-MM-DD',
valueFormat: 'YYYY-MM-DD', valueFormat: 'YYYY-MM-DD',
width: 200, width: 200,
rules: { required: true, message: '请输入', trigger: 'blur' }, rules: [{ required: false, message: '请输入', trigger: 'blur' }],
}, },
], ],
}, },
{ {
label: '审核操作>', label: '审核信息>',
prop: 'caseInfo', prop: 'caseInfo3',
addDisplay: false,
column: [ column: [
{ {
label: '是否通过', label: '是否通过',
prop: 'isIllegal', prop: 'status',
span: 24, span: 24,
display: true, display: true,
type: 'radio', type: 'radio',
editDisplay: true, editDisplay: true,
addDisplay: false, addDisplay: false,
editDisabled: true,
viewDisabled: true,
dicData: [ dicData: [
{ { label: '是', value: '1' },
label: '是', { label: '否', value: '0' },
value: '1',
},
{
label: '否',
value: '0',
},
], ],
}, },
{ {
label: '审核意见', label: '审核意见',
prop: 'note', prop: 'reviewSuggestion',
type: 'textarea', type: 'textarea',
span: 24, span: 24,
minRows: 3, // minRows: 3, //
maxRows: 5, // maxRows: 5, //
overHidden: true, overHidden: true,
editDisabled: true,
viewDisabled: true,
width: 200, width: 200,
}, },
], ],
@ -542,16 +538,48 @@ const state = reactive({
currentRow: {}, currentRow: {},
}); });
const beforeOpen = (val) => {
state.options.group[1].display = state.options.group[2].display = val == 2 || val == 3 ? true : false;
setDisplay('villageCount', state.options.group[0].column, val == 2 || val == 3 ? true : false);
setDisplay('idCard', state.options.group[0].column, val == 0 ? true : false);
// console.info('state.options.group[0].column', state.options.group[0].column);
};
const setDisplay = (field, target, val) => {
let index = target.findIndex((m) => {
return m.prop == field;
});
console.info('setDisplay', field);
if (index > -1) {
target[index].display = val;
console.info('target[index].display', target[index].display);
}
};
watch(
() => searchCondition,
(newVal) => {
// console.info('searchCondition', searchCondition);
let val = newVal.businessType;
beforeOpen(val);
},
{ immediate: true, deep: true }
);
// //
const loadData = (resetPage) => { const loadData = (resetPage) => {
resetPage === 1 && (pageData.value.currentPage = 1); resetPage === 1 && (pageData.value.currentPage = 1);
state.loading = true; state.loading = true;
let searchParmer = {
...searchCondition.value,
};
delete searchParmer.operationDate;
let params = Object.assign( let params = Object.assign(
{ {
current: pageData.value.currentPage, current: pageData.value.currentPage,
size: pageData.value.size, size: pageData.value.size,
}, },
searchCondition.value searchParmer
); );
getBuinessList(params) getBuinessList(params)
.then((res) => { .then((res) => {
@ -601,16 +629,18 @@ function uniqueObjects(arr, key) {
} }
// //
const rowSave = (row, done, loading) => { const rowSave = (row, done, loading) => {
// console.info('', row); let codeList = row.addressCode;
let codeList = row.addressCode.split(',');
let params = { let params = {
...row, ...row,
provinceCode: codeList[0] || '', provinceCode: codeList[0] || '',
cityCode: codeList[1] || '', cityCode: codeList[1] || '',
countyCode: codeList[2] || '', countyCode: codeList[2] || '',
townCode: codeList[3] || '', townCode: codeList[3] || '',
businessLicense: getImgUrl(attrs.value),
businessPermitUrl: getImgUrl(permitUrl.value),
}; };
delete params.addressCode; delete params.addressCode;
saveBuiness(params) saveBuiness(params)
.then((res) => { .then((res) => {
if (res.code === 200) { if (res.code === 200) {
@ -629,17 +659,32 @@ const rowSave = (row, done, loading) => {
// //
const rowEdit = (row) => { const rowEdit = (row) => {
// row.addressCode = row.provinceCode + ',' + row.cityCode + ',' + row.countyCode + ',' + row.townCode; row.addressCode = [row.provinceCode, row.cityCode, row.countyCode, row.townCode];
// console.info('', row); attrs.value = [row.businessLicense] || [];
permitUrl.value = [row.businessPermitUrl] || [];
beforeOpen(row.businessType);
crudRef.value.rowEdit(row); crudRef.value.rowEdit(row);
}; };
const doDetail = (row) => { const doDetail = (row) => {
row.addressCode = [row.provinceCode, row.cityCode, row.countyCode, row.townCode];
attrs.value = [row.businessLicense] || [];
permitUrl.value = [row.businessPermitUrl] || [];
beforeOpen(row.businessType);
crudRef.value.rowView(row); crudRef.value.rowView(row);
}; };
const getImgUrl = (data) => {
let url = '';
if (data && data.length) {
url = data.map((m) => {
return m.url;
});
}
return url.toString();
};
const rowUpdate = (row, index, done, loading) => { const rowUpdate = (row, index, done, loading) => {
console.info('更新'); // console.info('', row.addressCode);
let codeList = row.addressCode.split(','); let codeList = row.addressCode;
let params = { let params = {
...row, ...row,
provinceCode: codeList[0] || '', provinceCode: codeList[0] || '',
@ -680,7 +725,7 @@ const rowDel = (row, index, done) => {
if (res.code === 200) { if (res.code === 200) {
app.$message.success('删除成功!'); app.$message.success('删除成功!');
loadData(); loadData();
done(); // done();
} }
}) })
.catch((err) => { .catch((err) => {

View File

@ -8,20 +8,37 @@
:table-loading="state.loading" :table-loading="state.loading"
:data="state.data" :data="state.data"
:option="state.options" :option="state.options"
@refresh-change="refreshChange" @refresh-change="loadData"
@search-reset="searchChange" @search-reset="
@search-change="searchChange" () => {
loadData(1);
}
"
@search-change="
(form, done) => {
loadData(1);
done();
}
"
@selection-change="selectionChange" @selection-change="selectionChange"
@current-change="currentChange" @current-change="currentChange"
@size-change="sizeChange" @size-change="sizeChange"
@row-save="rowSave"
@row-update="rowUpdate" @row-update="rowUpdate"
@row-del="rowDel"
> >
<template #menu-left> <template #menu-left>
<el-button type="success" icon="download" @click="onExport">导出</el-button> <el-button type="success" icon="download" @click="onExport">导出</el-button>
</template> </template>
<template #businessLicense-form="{ column, value, type }">
<Attrs v-model:attrs="attrs" :type="'view'" :limit="1" />
</template>
<template #businessPermitUrl-form="{ column, value, type }">
<Attrs v-model:attrs="permitUrl" :type="'view'" :limit="1" />
</template>
<template #status="{ row }">
<el-tag v-if="row.status == '0'" type="warning" size="small">待审核</el-tag>
<el-tag v-if="row.status == '1'" type="success" size="small">通过</el-tag>
<el-tag v-if="row.status == '2'" type="danger" size="small">拒绝</el-tag>
</template>
<template #menu="scope"> <template #menu="scope">
<custom-table-operate :actions="state.options.actions" :data="scope" /> <custom-table-operate :actions="state.options.actions" :data="scope" />
</template> </template>
@ -34,33 +51,25 @@ import { useApp } from '@/hooks';
import { CRUD_OPTIONS } from '@/config'; import { CRUD_OPTIONS } from '@/config';
import { isEmpty, downloadFile } from '@/utils'; import { isEmpty, downloadFile } from '@/utils';
import { useUserStore } from '@/store/modules/user'; import { useUserStore } from '@/store/modules/user';
import {
getOperationRecord,
saveOperationRecord,
editOperationRecord,
delOperationRecord,
exportOperationRecord,
getAddrCropByLand,
importOperationRecord,
} from '@/apis/land';
import { getBuinesCheckList, doBusinessCheck, exportBusinessCheck } from '@/apis/productOperateMain'; import { getBuinesCheckList, doBusinessCheck, exportBusinessCheck } from '@/apis/productOperateMain';
import Attrs from '@/views/inputSuppliesManage/common/Attrs.vue';
const { VITE_APP_BASE_API } = import.meta.env; const { VITE_APP_BASE_API } = import.meta.env;
const app = useApp(); const app = useApp();
const UserStore = useUserStore(); const UserStore = useUserStore();
const crudRef = ref(null); const crudRef = ref(null);
const jobTypeOptions = reactive([ let typeVal = ref(null);
{ label: '蔬菜', value: '0' }, let columnHide = reactive({
{ label: '水果', value: '1' }, addDisplay: false,
]); editDisplay: false,
viewDisplay: false,
});
const bTypeOptions = reactive([ let groupDisabled = reactive({
{ label: '个体', value: '0' }, editDisabled: true,
{ label: '村集体', value: '1' }, viewDisabled: true,
{ label: '合作社', value: '2' }, });
{ label: '企业', value: '3' },
]);
const auditStatusOptions = reactive([ const auditStatusOptions = reactive([
{ label: '待审核', value: '0' }, { label: '待审核', value: '0' },
@ -68,31 +77,63 @@ const auditStatusOptions = reactive([
{ label: '已拒绝', value: '2' }, { label: '已拒绝', value: '2' },
]); ]);
const productTypeOptions = reactive([ const attrs = ref([]);
{ label: '蔬菜', value: '0' }, const permitUrl = ref([]);
{ label: '水果', value: '1' },
]);
let bTypeVal = ref('0'); const filterByLevel = (data, maxLevel = 3) => {
const baseColumn = reactive([]); return data
const individualBase = [ .filter((item) => item.level <= maxLevel) //
{ label: '身份证号', prop: 'crop' }, .map((item) => ({
{ label: '联系电话', prop: 'crop' }, ...item,
{ label: '联系地址', prop: 'crop' }, areaChildVOS: item.areaChildVOS
]; ? filterByLevel(item.areaChildVOS, maxLevel) //
: [],
}));
};
const collectiveBase = [ const beforeOpen = (val) => {
{ label: '负责人', prop: 'crop' }, state.options.group[1].display = state.options.group[2].display = val == 2 || val == 3 ? true : false;
{ label: '负责人电话', prop: 'crop' }, setDisplay('villageCount', state.options.group[0].column, val == 2 || val == 3 ? true : false);
{ label: '联系地址', prop: 'crop' }, setDisplay('idCard', state.options.group[0].column, val == 0 ? true : false);
]; // console.info('state.options.group[0].column', state.options.group[0].column);
};
const enterpriseBase = [ const setDisplay = (field, target, val) => {
{ label: '企业规模', prop: 'crop' }, let index = target.findIndex((m) => {
{ label: '负责人', prop: 'crop' }, return m.prop == field;
{ label: '负责人电话', prop: 'crop' }, });
{ label: '公司地址', prop: 'crop' }, console.info('setDisplay', field);
]; if (index > -1) {
target[index].display = val;
console.info('target[index].display', target[index].display);
}
};
let businessType = reactive({
label: '主体类型',
prop: 'businessType',
type: 'radio',
className: 'el-col-md-24',
props: {
label: 'dictLabel',
value: 'dictValue',
},
dicUrl: `${VITE_APP_BASE_API}/system/dict/data/list`,
dicQuery: {
dictType: 'sys_business_type',
current: 1,
size: 10,
},
dicHeaders: {
authorization: UserStore.token,
},
dicFormatter: (res) => {
return (res.data.records ?? []).map((item) => ({
...item,
dictValue: Number(item.dictValue),
}));
},
});
const state = reactive({ const state = reactive({
loading: false, loading: false,
@ -110,107 +151,154 @@ const state = reactive({
searchSpan: 8, searchSpan: 8,
searchGutter: 100, searchGutter: 100,
searchMenuPosition: 'center', searchMenuPosition: 'center',
updateBtnText: '审核',
column: [ column: [
{
...businessType,
...columnHide,
showOverflowTooltip: true,
span: 24,
type: 'select',
},
{ {
label: '主体代码', label: '主体代码',
prop: 'executor', prop: 'id',
addDisplay: false, width: '120px',
editDisplay: false, ellipsis: true,
showOverflowTooltip: true,
...columnHide,
search: true, search: true,
rules: { rules: [{ required: true, message: '请输入', trigger: 'blur' }],
required: true,
message: '请输入',
trigger: 'blur',
},
}, },
{ {
label: '主体名称', label: '主体名称',
prop: 'executor', prop: 'businessName',
width: '160px',
ellipsis: true,
showOverflowTooltip: true,
...columnHide,
search: true, search: true,
addDisplay: false, rules: [{ required: true, message: '请输入', trigger: 'blur' }],
editDisplay: false,
rules: {
required: true,
message: '请输入',
trigger: 'blur',
},
},
{
label: '主体类型',
prop: 'BType',
type: 'select',
remote: false,
search: true,
addDisplay: false,
editDisplay: false,
props: {
label: 'landName',
value: 'id',
},
dicData: bTypeOptions,
// dicHeaders: {
// authorization: UserStore.token,
// },
// dicUrl: `${VITE_APP_BASE_API}/land-resource/landManage/page?current=1&size=9999&draftsSaveType=0&landName=&gridName=&owner=`,
// dicFormatter: (res) => res.data.records ?? [],
rules: [
{
required: true,
message: '请选择主体类型',
trigger: 'blur',
},
],
},
{
label: '经营许可证有效期',
prop: 'operationDate',
type: 'date',
format: 'YYYY-MM-DD',
valueFormat: 'YYYY-MM-DD',
width: 200,
search: true,
addDisplay: false,
editDisplay: false,
}, },
{ {
label: '经营产品种类', label: '经营产品种类',
showOverflowTooltip: true, prop: 'productType',
search: false, type: 'select',
addDisplay: false, width: '120px',
editDisplay: false, remote: false,
rules: { search: true,
required: true, ...columnHide,
message: '请输入', props: {
trigger: 'blur', label: 'dictLabel',
value: 'dictValue',
}, },
dicUrl: `${VITE_APP_BASE_API}/system/dict/data/list`,
dicQuery: {
dictType: 'sys_business_product_type',
current: 1,
size: 100,
},
dicHeaders: {
authorization: UserStore.token,
},
dicFormatter: (res) => res.data.records ?? [],
rules: [{ required: true, message: '请选择', trigger: 'blur' }],
}, },
{ {
label: '主要产品', label: '主要经营产品',
prop: 'crop', prop: 'primaryProduct',
width: '120px',
showOverflowTooltip: true,
search: false, search: false,
addDisplay: false, ...columnHide,
editDisplay: false, rules: [{ required: true, message: '请输入', trigger: 'blur' }],
rules: { },
required: true, {
message: '请输入', label: '统一信用代码/证件号码',
trigger: 'blur', prop: 'idCard',
search: false,
width: '200px',
labelWidth: '160px',
...columnHide,
rules: [{ required: true, message: '请输入', trigger: 'blur' }],
},
{
label: '规模',
prop: 'villageCount',
search: false,
width: '200px',
labelWidth: '160px',
...columnHide,
rules: [{ required: true, message: '请输入', trigger: 'blur' }],
},
{
label: '负责人',
prop: 'headName',
search: false,
width: '200px',
labelWidth: '160px',
...columnHide,
rules: [{ required: true, message: '请输入', trigger: 'blur' }],
},
{
label: '联系地址',
prop: 'addressCode',
type: 'cascader',
checkStrictly: false,
width: '200px',
ellipsis: true,
showOverflowTooltip: true,
...columnHide,
search: true,
props: {
label: 'areaName',
value: 'areaCode',
children: 'areaChildVOS',
}, },
dicUrl: `${VITE_APP_BASE_API}/system/area/region?areaCode=530000`,
dicHeaders: {
authorization: UserStore.token,
},
dicFormatter: (res) => filterByLevel(res.data ?? []),
rules: [{ required: true, message: '请选择', trigger: 'blur' }],
},
{
label: '详细地址',
prop: 'detailAddress',
search: false,
ellipsis: true,
showOverflowTooltip: true,
...columnHide,
rules: [{ required: true, message: '请输入', trigger: 'blur' }],
},
{
label: '联系电话',
prop: 'phone',
width: '160px',
search: false,
...columnHide,
rules: [{ required: true, message: '请输入', trigger: 'blur' }],
}, },
{ {
label: '审核状态', label: '审核状态',
prop: 'crop', prop: 'status',
addDisplay: false, width: '80px',
editDisplay: false, ...columnHide,
search: false, search: false,
rules: [{ required: true, message: '请输入', trigger: 'blur' }],
}, },
{ {
label: '审核意见', label: '审核意见',
prop: 'crop', prop: 'reviewSuggestion',
addDisplay: false, addDisplay: false,
editDisplay: false, editDisplay: false,
width: '200px',
ellipsis: true,
showOverflowTooltip: true,
...columnHide,
rules: [{ required: true, message: '请输入', trigger: 'blur' }],
}, },
{ label: '审核时间', prop: 'crop', addDisplay: false, editDisplay: false, search: false }, { label: '创建时间', prop: 'createTime', ...columnHide, width: '160px', search: false },
{ label: '创建时间', prop: 'crop', addDisplay: false, editDisplay: false, search: false },
], ],
searchColumn: [ searchColumn: [
{ label: '主体代码', prop: 'landName', search: true }, { label: '主体代码', prop: 'landName', search: true },
@ -227,7 +315,25 @@ const state = reactive({
prop: 'operationType', prop: 'operationType',
type: 'select', type: 'select',
search: true, search: true,
dicData: bTypeOptions, props: {
label: 'dictLabel',
value: 'dictValue',
},
dicUrl: `${VITE_APP_BASE_API}/system/dict/data/list`,
dicQuery: {
dictType: 'sys_business_type',
current: 1,
size: 10,
},
dicHeaders: {
authorization: UserStore.token,
},
dicFormatter: (res) => {
return (res.data.records ?? []).map((item) => ({
...item,
dictValue: Number(item.dictValue),
}));
},
}, },
{ {
label: '创建日期', label: '创建日期',
@ -244,54 +350,76 @@ const state = reactive({
label: '基本信息>', label: '基本信息>',
prop: 'caseInfo', prop: 'caseInfo',
column: [ column: [
{
label: '主体代码',
prop: 'taskCode',
rules: { required: true, message: '请输入', trigger: 'blur' },
},
{ {
label: '主体名称', label: '主体名称',
prop: 'taskCode', prop: 'businessName',
rules: { required: true, message: '请输入', trigger: 'blur' }, ...groupDisabled,
rules: [{ required: true, message: '请输入', trigger: 'blur' }],
}, },
{ {
label: '主体类型', ...businessType,
prop: 'bType', ...groupDisabled,
type: 'select',
dicData: bTypeOptions,
rules: { required: true, message: '请选择', trigger: 'blur' },
}, },
{ {
label: '经营产品种类', label: '经营产品种类',
prop: 'productType',
type: 'select', type: 'select',
dicData: productTypeOptions, ...groupDisabled,
rules: { required: true, message: '请选择', trigger: 'blur' }, props: {
label: 'dictLabel',
value: 'dictValue',
},
dicUrl: `${VITE_APP_BASE_API}/system/dict/data/list`,
dicQuery: {
dictType: 'sys_business_product_type',
current: 1,
size: 100,
},
dicHeaders: {
authorization: UserStore.token,
},
dicFormatter: (res) => res.data.records ?? [],
}, },
{ {
label: '主要产品', label: '主要产品',
prop: 'product', prop: 'primaryProduct',
rules: { required: false, message: '请输入', trigger: 'blur' }, ...groupDisabled,
rules: [{ required: false, message: '请输入', trigger: 'blur' }],
}, },
{ {
label: '合作社规模', label: '规模',
prop: 'inspectionType', prop: 'villageCount',
rules: { required: false, message: '请选择', trigger: 'blur' }, ...groupDisabled,
rules: [{ required: false, message: '请选择', trigger: 'blur' }],
},
{
label: '户主身份证号',
prop: 'idCard',
...groupDisabled,
rules: [{ required: false, message: '请输入', trigger: 'blur' }],
}, },
{ {
label: '负责人', label: '负责人',
prop: 'inspectionTarget', prop: 'headName',
rules: { required: false, message: '请输入', trigger: 'blur' }, ...groupDisabled,
rules: [{ required: false, message: '请输入', trigger: 'blur' }],
}, },
{ {
label: '负责人电话', label: '负责人电话',
prop: 'inspectionTarget', prop: 'phone',
rules: { required: false, message: '请输入', trigger: 'blur' }, ...groupDisabled,
rules: [{ required: false, message: '请输入', trigger: 'blur' }],
}, },
{ {
label: '联系地址', label: '联系地址',
prop: 'inspectionTarget', prop: 'addressCode',
rules: { required: true, message: '请输入', trigger: 'blur' }, ...groupDisabled,
type: 'select', type: 'cascader',
checkStrictly: false,
width: '200px',
ellipsis: true,
showOverflowTooltip: true,
search: true,
props: { props: {
label: 'areaName', label: 'areaName',
value: 'areaCode', value: 'areaCode',
@ -301,95 +429,108 @@ const state = reactive({
dicHeaders: { dicHeaders: {
authorization: UserStore.token, authorization: UserStore.token,
}, },
dicFormatter: (res) => res.data ?? [], dicFormatter: (res) => filterByLevel(res.data ?? []),
rules: [{ required: true, message: '请选择', trigger: 'blur' }],
}, },
{ {
label: '详细地址', label: '详细地址',
prop: 'notes', prop: 'detailAddress',
rules: { required: true, message: '请输入', trigger: 'blur' }, ...groupDisabled,
rules: [{ required: true, message: '请输入', trigger: 'blur' }],
}, },
], ],
}, },
{ {
label: '营业执照>', label: '营业执照>',
prop: 'caseInfo', prop: 'license1',
display: typeVal.value == 2 || typeVal.value == 3 ? true : false,
column: [ column: [
{ {
label: '统一社会信用代码', label: '统一社会信用代码',
prop: 'notes', prop: 'unifiedSocialCreditCode',
rules: { required: true, message: '请输入', trigger: 'blur' }, ...groupDisabled,
rules: [{ required: false, message: '请输入', trigger: 'blur' }],
}, },
{ {
label: '营业执照', label: '营业执照',
prop: 'license', prop: 'businessLicense',
hide: true,
formslot: true,
...groupDisabled,
span: 24,
rules: { required: false, message: '请输入', trigger: 'blur' },
}, },
{ {
label: '有效期至', label: '有效期至',
prop: 'operationDate', prop: 'businessLicenseExpiryDate',
type: 'date', type: 'date',
format: 'YYYY-MM-DD', format: 'YYYY-MM-DD',
valueFormat: 'YYYY-MM-DD', valueFormat: 'YYYY-MM-DD',
...groupDisabled,
width: 200, width: 200,
rules: { required: true, message: '请输入', trigger: 'blur' }, rules: [{ required: false, message: '请输入', trigger: 'blur' }],
}, },
{ {
label: '经营项目', label: '经营项目',
prop: 'inspectionSituation', prop: 'businessProject',
rules: { required: true, message: '请输入', trigger: 'blur' }, ...groupDisabled,
rules: [{ required: false, message: '请输入', trigger: 'blur' }],
}, },
], ],
}, },
{ {
label: '经营许可证>', label: '经营许可证>',
prop: 'caseInfo', prop: 'license2',
display: typeVal.value == 2 || typeVal.value == 3 ? true : false,
column: [ column: [
{ {
label: '经营许可证编号', label: '经营许可证编号',
prop: 'operationType', prop: 'businessPermitNumber',
rules: { required: false, message: '请输入', trigger: 'blur' }, ...groupDisabled,
rules: [{ required: false, message: '请输入', trigger: 'blur' }],
}, },
{ {
label: '经营许可证', label: '经营许可证',
prop: 'permit', prop: 'businessPermitUrl',
rules: { required: false, message: '请选择', trigger: 'blur' }, hide: true,
formslot: true,
...groupDisabled,
span: 24,
rules: [{ required: false, message: '请选择', trigger: 'blur' }],
}, },
{ {
label: '有效期至', label: '有效期至',
prop: 'operationDate', prop: 'businessPermitExpiryDate',
type: 'date', type: 'date',
format: 'YYYY-MM-DD', format: 'YYYY-MM-DD',
valueFormat: 'YYYY-MM-DD', valueFormat: 'YYYY-MM-DD',
...groupDisabled,
width: 200, width: 200,
rules: { required: true, message: '请输入', trigger: 'blur' }, rules: [{ required: false, message: '请输入', trigger: 'blur' }],
}, },
], ],
}, },
{ {
label: '审核操作>', label: '审核信息>',
prop: 'caseInfo', prop: 'caseInfo3',
addDisplay: false,
column: [ column: [
{ {
label: '是否通过', label: '是否通过',
prop: 'isIllegal', prop: 'status',
span: 24, span: 24,
display: true, display: true,
type: 'radio', type: 'radio',
editDisplay: true, editDisplay: true,
addDisplay: false, addDisplay: false,
dicData: [ dicData: [
{ { label: '是', value: '1' },
label: '是', { label: '否', value: '0' },
value: '1',
},
{
label: '否',
value: '0',
},
], ],
}, },
{ {
label: '审核意见', label: '审核意见',
prop: 'note', prop: 'reviewSuggestion',
type: 'textarea', type: 'textarea',
span: 24, span: 24,
minRows: 3, // minRows: 3, //
@ -419,26 +560,26 @@ const state = reactive({
// //
const loadData = () => { const loadData = () => {
// state.loading = true; state.loading = true;
// getOperationRecord(state.query) getBuinesCheckList(state.query)
// .then((res) => { .then((res) => {
// if (res.code === 200) { if (res.code === 200) {
// const { current, size, total, records } = res.data; const { current, size, total, records } = res.data;
// state.data = records; state.data = records;
// state.pageData = { state.pageData = {
// currentPage: current || 1, currentPage: current || 1,
// pageSize: size || 10, pageSize: size || 10,
// total: total, total: total,
// }; };
// } }
// }) })
// .catch((err) => { .catch((err) => {
// app.$message.error(err.msg); app.$message.error(err.msg);
// state.data = []; state.data = [];
// }) })
// .finally(() => { .finally(() => {
// state.loading = false; state.loading = false;
// }); });
}; };
loadData(); loadData();
@ -496,13 +637,50 @@ function uniqueObjects(arr, key) {
return acc; return acc;
}, []); }, []);
} }
//
const rowSave = (row, done, loading) => { const onExport = () => {
// console.info('', row); if (isEmpty(state.data)) {
saveOperationRecord(row) app.$message.error('当前暂时没有可供导出的数据!');
return;
}
state.loading = true;
const fileName = '经营主体审核列表';
exportBusinessCheck(state.query)
.then((res) => {
if (res.status === 200) {
downloadFile(res.data, `${fileName}.xlsx`, 'blob');
app.$message.success('导出成功!');
}
})
.catch((err) => {
app.$message.error('导出失败!');
})
.finally(() => {
state.loading = false;
});
};
const doExam = (row) => {
row.addressCode = [row.provinceCode, row.cityCode, row.countyCode, row.townCode];
attrs.value = [row.businessLicense] || [];
permitUrl.value = [row.businessPermitUrl] || [];
beforeOpen(row.businessType);
crudRef.value && crudRef.value.rowEdit(row);
};
const rowUpdate = (row, index, done, loading) => {
let params = {
checkId: row.checkId || '',
businessId: row.id || '',
status: row.status,
reviewSuggestion: row.reviewSuggestion,
};
console.info('审核params', params);
doBusinessCheck(params)
.then((res) => { .then((res) => {
if (res.code === 200) { if (res.code === 200) {
app.$message.success('添加成功!'); app.$message.success('审核成功!');
done(); done();
loadData(); loadData();
} }
@ -514,63 +692,4 @@ const rowSave = (row, done, loading) => {
loading(); loading();
}); });
}; };
//
const rowDel = (row, index, done) => {
if (isEmpty(row)) return;
app
.$confirm(`删除后信息将不可查看,确认要删除吗?`, '确定删除', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
})
.then(() => {
console.info('删除', row.recordId);
delOperationRecord(row.recordId || '')
.then((res) => {
if (res.code === 200) {
app.$message.success('删除成功!');
loadData();
done();
}
})
.catch((err) => {
app.$message.error(err.msg);
});
})
.catch(() => {});
};
const onBatchDel = () => {
let ids = handleIds();
if (!ids.length || ids.length <= 0) {
return app.$message.error('请先选择要删除的数据');
}
};
const onExport = () => {
// if (isEmpty(state.data)) {
// app.$message.error('');
// return;
// }
// state.loading = true;
// const fileName = '';
// ExportEntity(state.query)
// .then((res) => {
// if (res.status === 200) {
// downloadFile(res.data, `${fileName}.xlsx`, 'blob');
// app.$message.success('');
// }
// })
// .catch((err) => {
// app.$message.error('');
// })
// .finally(() => {
// state.loading = false;
// });
};
const doExam = (row) => {
crudRef.value && crudRef.value.rowEdit(row);
};
</script> </script>

View File

@ -35,15 +35,6 @@ import { useApp } from '@/hooks';
import { CRUD_OPTIONS } from '@/config'; import { CRUD_OPTIONS } from '@/config';
import { isEmpty, downloadFile } from '@/utils'; import { isEmpty, downloadFile } from '@/utils';
import { useUserStore } from '@/store/modules/user'; import { useUserStore } from '@/store/modules/user';
import {
getOperationRecord,
saveOperationRecord,
editOperationRecord,
delOperationRecord,
exportOperationRecord,
getAddrCropByLand,
importOperationRecord,
} from '@/apis/land';
import { getBuinesCheckRecord, exportBusinessCheckRecord } from '@/apis/productOperateMain'; import { getBuinesCheckRecord, exportBusinessCheckRecord } from '@/apis/productOperateMain';
const { VITE_APP_BASE_API } = import.meta.env; const { VITE_APP_BASE_API } = import.meta.env;
@ -51,11 +42,6 @@ const app = useApp();
const UserStore = useUserStore(); const UserStore = useUserStore();
const crudRef = ref(null); const crudRef = ref(null);
const jobTypeOptions = reactive([
{ label: '蔬菜', value: '0' },
{ label: '水果', value: '1' },
]);
const bTypeOptions = reactive([ const bTypeOptions = reactive([
{ label: '个体', value: '0' }, { label: '个体', value: '0' },
{ label: '村集体', value: '1' }, { label: '村集体', value: '1' },
@ -74,27 +60,6 @@ const productTypeOptions = reactive([
{ label: '水果', value: '1' }, { label: '水果', value: '1' },
]); ]);
let bTypeVal = ref('0');
const baseColumn = reactive([]);
const individualBase = [
{ label: '身份证号', prop: 'crop' },
{ label: '联系电话', prop: 'crop' },
{ label: '联系地址', prop: 'crop' },
];
const collectiveBase = [
{ label: '负责人', prop: 'crop' },
{ label: '负责人电话', prop: 'crop' },
{ label: '联系地址', prop: 'crop' },
];
const enterpriseBase = [
{ label: '企业规模', prop: 'crop' },
{ label: '负责人', prop: 'crop' },
{ label: '负责人电话', prop: 'crop' },
{ label: '公司地址', prop: 'crop' },
];
const state = reactive({ const state = reactive({
loading: false, loading: false,
query: { query: {
@ -111,6 +76,7 @@ const state = reactive({
searchSpan: 8, searchSpan: 8,
searchGutter: 100, searchGutter: 100,
searchMenuPosition: 'center', searchMenuPosition: 'center',
menu: false,
column: [ column: [
{ {
label: '主体类型', label: '主体类型',
@ -152,91 +118,91 @@ const state = reactive({
search: true, search: true,
rules: { required: true, message: '请输入', trigger: 'blur' }, rules: { required: true, message: '请输入', trigger: 'blur' },
}, },
{ // {
label: '经营产品种类', // label: '',
prop: 'productType', // prop: 'productType',
type: 'select', // type: 'select',
width: '120px', // width: '120px',
remote: false, // remote: false,
search: true, // search: true,
props: { // props: {
label: 'dictLabel', // label: 'dictLabel',
value: 'dictValue', // value: 'dictValue',
}, // },
dicUrl: `${VITE_APP_BASE_API}/system/dict/data/list`, // dicUrl: `${VITE_APP_BASE_API}/system/dict/data/list`,
dicQuery: { // dicQuery: {
dictType: 'sys_business_product_type', // dictType: 'sys_business_product_type',
current: 1, // current: 1,
size: 100, // size: 100,
}, // },
dicHeaders: { // dicHeaders: {
authorization: UserStore.token, // authorization: UserStore.token,
}, // },
dicFormatter: (res) => res.data.records ?? [], // dicFormatter: (res) => res.data.records ?? [],
rules: [{ required: true, message: '请选择', trigger: 'blur' }], // rules: [{ required: true, message: '', trigger: 'blur' }],
}, // },
{ // {
label: '主要经营产品', // label: '',
prop: 'primaryProduct', // prop: 'primaryProduct',
width: '120px', // width: '120px',
showOverflowTooltip: true, // showOverflowTooltip: true,
search: false, // search: false,
rules: { // rules: {
required: true, // required: true,
message: '请输入', // message: '',
trigger: 'blur', // trigger: 'blur',
}, // },
}, // },
{ // {
label: '统一信用代码/证件号码', // label: '/',
prop: 'idCard', // prop: 'idCard',
search: false, // search: false,
width: '200px', // width: '200px',
labelWidth: '160px', // labelWidth: '160px',
rules: { required: true, message: '请输入', trigger: 'blur' }, // rules: { required: true, message: '', trigger: 'blur' },
}, // },
{ // {
label: '联系地址', // label: '',
prop: 'addressCode', // prop: 'addressCode',
type: 'cascader', // type: 'cascader',
checkStrictly: false, // checkStrictly: false,
width: '200px', // width: '200px',
ellipsis: true, // ellipsis: true,
showOverflowTooltip: true, // showOverflowTooltip: true,
addDisplay: true, // addDisplay: true,
editDisplay: true, // editDisplay: true,
search: true, // search: true,
props: { // props: {
label: 'areaName', // label: 'areaName',
value: 'areaCode', // value: 'areaCode',
children: 'areaChildVOS', // children: 'areaChildVOS',
}, // },
dicUrl: `${VITE_APP_BASE_API}/system/area/region?areaCode=530000`, // dicUrl: `${VITE_APP_BASE_API}/system/area/region?areaCode=530000`,
dicHeaders: { // dicHeaders: {
authorization: UserStore.token, // authorization: UserStore.token,
}, // },
dicFormatter: (res) => res.data ?? [], // dicFormatter: (res) => res.data ?? [],
rules: [{ required: true, message: '请选择', trigger: 'blur' }], // rules: [{ required: true, message: '', trigger: 'blur' }],
}, // },
{ // {
label: '详细地址', // label: '',
prop: 'detailAddress', // prop: 'detailAddress',
search: false, // search: false,
ellipsis: true, // ellipsis: true,
showOverflowTooltip: true, // showOverflowTooltip: true,
rules: { required: true, message: '请输入', trigger: 'blur' }, // rules: { required: true, message: '', trigger: 'blur' },
}, // },
{ // {
label: '联系电话', // label: '',
prop: 'phone', // prop: 'phone',
width: '160px', // width: '160px',
search: false, // search: false,
rules: { // rules: {
required: true, // required: true,
message: '请输入', // message: '',
trigger: 'blur', // trigger: 'blur',
}, // },
}, // },
{ {
label: '审核状态', label: '审核状态',
prop: 'status', prop: 'status',
@ -244,11 +210,7 @@ const state = reactive({
addDisplay: false, addDisplay: false,
editDisplay: false, editDisplay: false,
search: false, search: false,
rules: { rules: { required: true, message: '请输入', trigger: 'blur' },
required: true,
message: '请输入',
trigger: 'blur',
},
}, },
{ {
label: '审核意见', label: '审核意见',
@ -264,7 +226,7 @@ const state = reactive({
trigger: 'blur', trigger: 'blur',
}, },
}, },
{ label: '创建时间', prop: 'createTime', addDisplay: false, editDisplay: false, search: false }, { label: '创建时间', prop: 'createTime', width: '180px', addDisplay: false, editDisplay: false, search: false },
], ],
searchColumn: [ searchColumn: [
{ label: '主体代码', prop: 'landName', search: true }, { label: '主体代码', prop: 'landName', search: true },
@ -440,26 +402,20 @@ const state = reactive({
column: [ column: [
{ {
label: '是否通过', label: '是否通过',
prop: 'isIllegal', prop: 'status',
span: 24, span: 24,
display: true, display: true,
type: 'radio', type: 'radio',
editDisplay: true, editDisplay: true,
addDisplay: false, addDisplay: false,
dicData: [ dicData: [
{ { label: '是', value: 1 },
label: '是', { label: '否', value: 0 },
value: '1',
},
{
label: '否',
value: '0',
},
], ],
}, },
{ {
label: '审核意见', label: '审核意见',
prop: 'note', prop: 'reviewSuggestion',
type: 'textarea', type: 'textarea',
span: 24, span: 24,
minRows: 3, // minRows: 3, //
@ -538,7 +494,7 @@ const onExport = () => {
return; return;
} }
state.loading = true; state.loading = true;
const fileName = '网格明细表'; const fileName = '经营主体审核历史列表';
exportBusinessCheckRecord(state.query) exportBusinessCheckRecord(state.query)
.then((res) => { .then((res) => {
if (res.status === 200) { if (res.status === 200) {

View File

@ -1,12 +1,14 @@
<template> <template>
<div> <div>
<mapSplashed></mapSplashed> <iframe :src="iframeUrl" :style="iframeStyle"></iframe>
</div> </div>
</template> </template>
<script setup> <script setup>
// import { reactive, ref } from 'vue'; import { reactive, ref } from 'vue';
// import { useApp } from '@/hooks';
import mapSplashed from '../home/components/mapSplashed.vue'; import mapSplashed from '../home/components/mapSplashed.vue';
const iframeUrl = ref('http://192.168.18.41:9000/v2/entities');
const iframeStyle = ref({ width: '100%', height: ' calc(100vh - 120px)' });
</script> </script>
<style></style> <style></style>